diff --git a/src/main/java/com/example/demo/controller/bean/BeanConsumeController.java b/src/main/java/com/example/demo/controller/bean/BeanConsumeController.java index f3c87d7..232fb5b 100644 --- a/src/main/java/com/example/demo/controller/bean/BeanConsumeController.java +++ b/src/main/java/com/example/demo/controller/bean/BeanConsumeController.java @@ -1,13 +1,25 @@ package com.example.demo.controller.bean; +import com.example.demo.Util.JWTUtil; +import com.example.demo.domain.entity.Admin; +import com.example.demo.domain.vo.bean.BeanConsumeGold; +import com.example.demo.domain.vo.bean.BeanConsumeLive; import com.example.demo.domain.vo.bean.BeanPage; +import com.example.demo.domain.vo.coin.Gold; +import com.example.demo.domain.vo.coin.Page; +import com.example.demo.domain.vo.coin.RechargeAudit; import com.example.demo.domain.vo.coin.Result; import com.example.demo.service.bean.BeanConsumeService; +import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import java.util.Arrays; import java.util.List; /** @@ -27,7 +39,7 @@ public class BeanConsumeController { @Autowired private BeanConsumeService beanConsumeService; - //获取用户分布信息 + //获取消费用户分部信息 @PostMapping("/getDept") public Result getDept(){ @@ -35,9 +47,45 @@ public class BeanConsumeController { return Result.success(deptList); } - @PostMapping("/selectBy") + //筛选查询直播消费记录 + @PostMapping("/selectLiveBy") public Result selectBy(@RequestBody BeanPage beanPage){ - return null; - } + try { + if (ObjectUtils.isEmpty(beanPage.getPageNum())) { + return Result.error("页码数为空!"); + } + if (ObjectUtils.isEmpty(beanPage.getPageSize())) { + return Result.error("页大小为空!"); + } else { + //解token权限 + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String token = request.getHeader("token"); + Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); + if (admin != null) { + // List list = Arrays.asList(admin.getMarkets().split(",")); + // beanPage.XXXX.setMarkets(list); + } + else{ + return Result.error("角色为空"); + } + return Result.success(beanConsumeService.selectLiveBy(beanPage.getPageNum(), beanPage.getPageSize(), beanPage.getBeanConsumeLive())); + } + } catch (Exception e) { + e.printStackTrace(); + return Result.error("请检查筛选数据的格式"); + }} + //消费合计数 + @PostMapping("sumConsumeGold") + public BeanConsumeGold sumConsumeGold(@RequestBody BeanPage beanPage) throws Exception { + //解token权限 + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String token = request.getHeader("token"); + Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); + if (admin != null) { + //List list = Arrays.asList(admin.getMarkets().split(",")); + //.setMarkets(list); + } + return beanConsumeService.sumConsumeGold( beanPage); + } } diff --git a/src/main/java/com/example/demo/domain/vo/bean/BeanConsumeGold.java b/src/main/java/com/example/demo/domain/vo/bean/BeanConsumeGold.java new file mode 100644 index 0000000..2e9f885 --- /dev/null +++ b/src/main/java/com/example/demo/domain/vo/bean/BeanConsumeGold.java @@ -0,0 +1,23 @@ +package com.example.demo.domain.vo.bean; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @program: gold-java + * @ClassName BeanConsumeGold + * @description: + * @author: Ethan + * @create: 2025−07-30 16:12 + * @Version 1.0 + **/ +@Data +@NoArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class BeanConsumeGold { + private static final long serialVersionUID = 1L; + private Integer permanentBean ; //付费金豆 + private Integer freeBean ; //免费金豆 + private Integer totalNum; //总条数 +} diff --git a/src/main/java/com/example/demo/domain/vo/bean/BeanConsumeLive.java b/src/main/java/com/example/demo/domain/vo/bean/BeanConsumeLive.java index d2c7a5c..3820534 100644 --- a/src/main/java/com/example/demo/domain/vo/bean/BeanConsumeLive.java +++ b/src/main/java/com/example/demo/domain/vo/bean/BeanConsumeLive.java @@ -23,7 +23,7 @@ public class BeanConsumeLive { private static final long serialVersionUID = 1L; private String name; //姓名 private Integer jwcode; //精网号 - private List dept; //地区/分部 + private String dept; //地区/分部 //类型 直播: 1. 发礼物2. 发红包3. 发福袋4. 付费直播5. 加入粉丝团6. 发弹幕 //文章: 1. 打赏2. 付费 private String type; //类型 @@ -32,7 +32,8 @@ public class BeanConsumeLive { private String channel; //频道名称(截取content) private String liveName; //直播间名称 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") - private Date time; // 消费时间 (时间戳转化) + private Date consumeTime; // 消费时间 (时间戳转化) private Integer payType; //支付方式(直播:12345,铁粉:7,文章:8) - + private String sortField; //排序字段 + private String sortOrder; //排序顺序 } diff --git a/src/main/java/com/example/demo/domain/vo/bean/BeanPage.java b/src/main/java/com/example/demo/domain/vo/bean/BeanPage.java index 7276efb..0466660 100644 --- a/src/main/java/com/example/demo/domain/vo/bean/BeanPage.java +++ b/src/main/java/com/example/demo/domain/vo/bean/BeanPage.java @@ -21,4 +21,5 @@ public class BeanPage { private Integer pageSize; private BeanConsumeLive beanConsumeLive; + private BeanConsumeGold beanConsumeGold; } diff --git a/src/main/java/com/example/demo/mapper/bean/BeanConsumeMapper.java b/src/main/java/com/example/demo/mapper/bean/BeanConsumeMapper.java index 33148dd..371485b 100644 --- a/src/main/java/com/example/demo/mapper/bean/BeanConsumeMapper.java +++ b/src/main/java/com/example/demo/mapper/bean/BeanConsumeMapper.java @@ -1,6 +1,10 @@ package com.example.demo.mapper.bean; +import com.example.demo.domain.vo.bean.BeanConsumeGold; +import com.example.demo.domain.vo.bean.BeanConsumeLive; +import com.example.demo.domain.vo.coin.RechargeAudit; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -14,5 +18,15 @@ import java.util.List; **/ @Mapper public interface BeanConsumeMapper { + //获取消费用户分部 List getDept(); + //筛选查询直播消费 + List selectLiveBy(@Param("beanConsumeLive") BeanConsumeLive beanConsumeLive); + //查询消费订单金额 + List selectConsumeGoldsBy(@Param("pageNum") Integer pageNum, + @Param("pageSize") Integer pageSize, + @Param("beanConsumeGold") BeanConsumeGold beanConsumeGold); + + BeanConsumeGold selectSumLiveBy(@Param("beanConsumeLive") BeanConsumeLive beanConsumeLive); } + diff --git a/src/main/java/com/example/demo/service/bean/BeanConsumeService.java b/src/main/java/com/example/demo/service/bean/BeanConsumeService.java index 2419e1d..736ccdf 100644 --- a/src/main/java/com/example/demo/service/bean/BeanConsumeService.java +++ b/src/main/java/com/example/demo/service/bean/BeanConsumeService.java @@ -1,5 +1,10 @@ package com.example.demo.service.bean; +import com.example.demo.domain.vo.bean.BeanConsumeGold; +import com.example.demo.domain.vo.bean.BeanConsumeLive; +import com.example.demo.domain.vo.bean.BeanPage; +import com.example.demo.domain.vo.coin.Gold; + import java.util.List; /** @@ -12,6 +17,10 @@ import java.util.List; **/ public interface BeanConsumeService { - //获取用户分部 + //获取消费用户的分部 List getDept(); + //筛选查询消费 + Object selectLiveBy(Integer pageNum, Integer pageSize, BeanConsumeLive beanConsumeLive); + //消费金币合计数 + BeanConsumeGold sumConsumeGold(BeanPage beanPage); } diff --git a/src/main/java/com/example/demo/serviceImpl/bean/BeanConsumeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/bean/BeanConsumeServiceImpl.java index 8a7fba7..c7cebcb 100644 --- a/src/main/java/com/example/demo/serviceImpl/bean/BeanConsumeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/bean/BeanConsumeServiceImpl.java @@ -1,7 +1,15 @@ package com.example.demo.serviceImpl.bean; +import com.example.demo.domain.vo.bean.BeanConsumeGold; +import com.example.demo.domain.vo.bean.BeanConsumeLive; +import com.example.demo.domain.vo.bean.BeanPage; +import com.example.demo.domain.vo.coin.Gold; +import com.example.demo.domain.vo.coin.RechargeAudit; +import com.example.demo.domain.vo.coin.RechargeUser; import com.example.demo.mapper.bean.BeanConsumeMapper; import com.example.demo.service.bean.BeanConsumeService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -20,9 +28,30 @@ public class BeanConsumeServiceImpl implements BeanConsumeService { @Autowired private BeanConsumeMapper BeanConsumeMapper; + //获取消费用户分部 @Override public List getDept() { List deptList = BeanConsumeMapper.getDept(); return deptList; } + //筛选查询直播消费 + @Override + public Object selectLiveBy(Integer pageNum, Integer pageSize, BeanConsumeLive beanConsumeLive) { + PageHelper.startPage(pageNum, pageSize); + List beanConsumeLives = BeanConsumeMapper.selectLiveBy(beanConsumeLive); + return new PageInfo<>(beanConsumeLives); + } + + @Override + public BeanConsumeGold sumConsumeGold(BeanPage beanPage) { + BeanConsumeGold gold = new BeanConsumeGold(); + BeanConsumeLive beanConsumeLive = beanPage.getBeanConsumeLive(); + //直播消费合计 + BeanConsumeGold BeanConsumeGolds = BeanConsumeMapper.selectSumLiveBy( beanConsumeLive); + + gold.setTotalNum(BeanConsumeGolds.getTotalNum()); + gold.setPermanentBean(BeanConsumeGolds.getPermanentBean()); + gold.setFreeBean(BeanConsumeGolds.getFreeBean()); + return gold; + } } diff --git a/src/main/resources/jindouMapper/BeanConsumeMapper.xml b/src/main/resources/jindouMapper/BeanConsumeMapper.xml index 4ed16e3..758901f 100644 --- a/src/main/resources/jindouMapper/BeanConsumeMapper.xml +++ b/src/main/resources/jindouMapper/BeanConsumeMapper.xml @@ -2,8 +2,116 @@ - + + + + + + \ No newline at end of file