This commit is contained in:
777
2025-10-21 16:50:45 +08:00
parent e368d333ef
commit 30f25788cc
17 changed files with 309 additions and 39 deletions

View File

@@ -48,7 +48,10 @@ public class OrderLogsController extends BaseController {
*/
@GetMapping("/list")
public TableDataInfo<OrderLogs> list(OrderLogs bo, PageQuery pageQuery) {
Page<OrderLogs> page = orderLogsService.page(pageQuery.build(), Wrappers.lambdaQuery(OrderLogs.class).orderByDesc(OrderLogs::getCreateTime));
Page<OrderLogs> page = orderLogsService.page(pageQuery.build(), Wrappers.lambdaQuery(bo)
.ge(bo.getCreateTimeMin() != null, OrderLogs::getCreateTime, bo.getCreateTimeMin())
.le(bo.getCreateTimeMax() != null,OrderLogs::getCreateTime, bo.getCreateTimeMax())
.orderByDesc(OrderLogs::getCreateTime));
return TableDataInfo.build(page);
}

View File

@@ -1,8 +1,10 @@
package com.ruoyi.cai.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.joda.time.LocalDate;
import java.io.Serializable;
import java.time.LocalDateTime;
@@ -50,5 +52,9 @@ public class OrderLogs implements Serializable {
private String success;
private LocalDateTime createTime;
@TableField(exist = false)
private LocalDateTime createTimeMin;
@TableField(exist = false)
private LocalDateTime createTimeMax;
}

View File

@@ -0,0 +1,16 @@
package com.ruoyi.cai.dto.proxy;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class BindUserListDTO {
private String usercode;
private String nickname;
private String avatar;
private Integer gender;
private LocalDateTime inviteTime;
private LocalDateTime inviteTimeMin;
private LocalDateTime inviteTimeMax;
}

View File

@@ -0,0 +1,46 @@
package com.ruoyi.cai.dto.proxy;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class OrderListDTO {
/**
* 价格
*/
private BigDecimal price;
/**
* 商品名称
*/
private String rechargeName;
/**
* 订单号
*/
private String orderNo;
/**
* 昵称
*/
private String nickname;
/**
* 头像
*/
private String avatar;
/**
* 用户号/ID号
*/
private String usercode;
private LocalDateTime payTime;
private LocalDateTime payTimeMin;
private LocalDateTime payTimeMax;
}

View File

@@ -0,0 +1,12 @@
package com.ruoyi.cai.dto.proxy;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class ProxyTotalDTO {
private Long bindUserCount;
private BigDecimal priceSum;
}

View File

@@ -75,6 +75,9 @@ public class CurrentUserManager {
public CurrentUserInfoVo currentInfo() {
Long userId = LoginHelper.getUserId();
User user = userService.getById(userId);
if(user == null) {
return null;
}
CurrentUserInfoVo res = BeanConvertUtil.convertTo(user, CurrentUserInfoVo::new);
res.setUserId(userId);
Anchor anchor = anchorService.getByUserId(userId);

View File

@@ -0,0 +1,56 @@
package com.ruoyi.cai.manager;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.dto.proxy.BindUserListDTO;
import com.ruoyi.cai.dto.proxy.OrderListDTO;
import com.ruoyi.cai.dto.proxy.ProxyTotalDTO;
import com.ruoyi.cai.mapper.ConsumeLogMapper;
import com.ruoyi.cai.mapper.UserInviteMapper;
import com.ruoyi.cai.service.UserService;
import com.ruoyi.common.core.domain.PageQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.math.BigDecimal;
@Component
public class ProxyUserManager {
@Autowired
private UserService userService;
@Resource
private ConsumeLogMapper consumeLogMapper;
@Resource
private UserInviteMapper userInviteMapper;
public IPage<OrderListDTO> orderLogList(String usercode,PageQuery pageQuery, OrderListDTO query){
User user = getUser(usercode);
return consumeLogMapper.selectProxyUserOrderPage(pageQuery.build(),user.getUsercode(), query);
}
public IPage<BindUserListDTO> bindUserList(String userCode, PageQuery pageQuery, BindUserListDTO query) {
User user = getUser(userCode);
return userInviteMapper.selectProxyBindUserPage(pageQuery.build(),user.getId(),query);
}
public ProxyTotalDTO total(String userCode) {
User user = getUser(userCode);
BigDecimal priceSum = consumeLogMapper.sumProxyUserOrder(user.getUsercode());
Long userCount = userInviteMapper.countProxyBindUser(user.getId());
ProxyTotalDTO proxyTotalDTO = new ProxyTotalDTO();
proxyTotalDTO.setBindUserCount(userCount == null ? 0 : userCount);
proxyTotalDTO.setPriceSum(priceSum == null ? BigDecimal.ZERO : priceSum);
return proxyTotalDTO;
}
private User getUser(String usercode){
User user = userService.getByUserCode(usercode);
if(user == null){
throw new RuntimeException("您的后台账户未绑定APP账户请联系管理员操作");
}
return user;
}
}

View File

@@ -1,7 +1,12 @@
package com.ruoyi.cai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.cai.domain.ConsumeLog;
import com.ruoyi.cai.dto.proxy.OrderListDTO;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
/**
* 消费记录Mapper接口
@@ -10,5 +15,9 @@ import com.ruoyi.cai.domain.ConsumeLog;
* @date 2023-12-24
*/
public interface ConsumeLogMapper extends BaseMapper<ConsumeLog> {
IPage<OrderListDTO> selectProxyUserOrderPage(@Param("page") IPage<OrderListDTO> page,
@Param("proxyUserCode") String proxyUserCode,
@Param("query") OrderListDTO query);
BigDecimal sumProxyUserOrder(@Param("userCode") String userCode);
}

View File

@@ -1,11 +1,13 @@
package com.ruoyi.cai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserInvite;
import com.ruoyi.cai.dto.admin.vo.UserInviteAdminVo;
import com.ruoyi.cai.dto.app.dto.InviteCountDTO;
import com.ruoyi.cai.dto.app.vo.user.UserListVo;
import com.ruoyi.cai.dto.proxy.BindUserListDTO;
import org.apache.ibatis.annotations.Param;
/**
@@ -24,4 +26,8 @@ public interface UserInviteMapper extends BaseMapper<UserInvite> {
Page<UserInviteAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UserInviteAdminVo bo);
void incsCoinTotal(@Param("id") Long id, @Param("amount") Long amount);
IPage<BindUserListDTO> selectProxyBindUserPage(Page<Object> build, @Param("userId") Long userId, @Param("query") BindUserListDTO query);
Long countProxyBindUser(@Param("userId") Long userId);
}