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 03f40b4..66b0328 100644 --- a/src/main/java/com/example/demo/controller/bean/BeanConsumeController.java +++ b/src/main/java/com/example/demo/controller/bean/BeanConsumeController.java @@ -49,7 +49,7 @@ public class BeanConsumeController { //筛选查询直播消费记录 @PostMapping("/selectLiveBy") - public Result selectBy(@RequestBody BeanPage beanPage){ + public Result selectLiveBy(@RequestBody BeanPage beanPage){ try { if (ObjectUtils.isEmpty(beanPage.getPageNum())) { return Result.error("页码数为空!"); @@ -62,8 +62,27 @@ public class BeanConsumeController { } } catch (Exception e) { e.printStackTrace(); - return Result.error("请检查筛选数据的格式"); + return Result.error(e.toString()); }} + //筛选查询直播消费记录 + @PostMapping("/selectFanBy") + public Result selectFanBy(@RequestBody BeanPage beanPage){ + try { + if (ObjectUtils.isEmpty(beanPage.getPageNum())) { + return Result.error("页码数为空!"); + } + if (ObjectUtils.isEmpty(beanPage.getPageSize())) { + return Result.error("页大小为空!"); + } else { + + return Result.success(beanConsumeService.selectFanBy(beanPage.getPageNum(), beanPage.getPageSize(), beanPage.getBeanConsumeFan())); + } + } catch (Exception e) { + e.printStackTrace(); + return Result.error(e.toString()); + }} + + //消费合计数 @PostMapping("sumConsumeGold") public BeanConsumeGold sumConsumeGold(@RequestBody BeanPage beanPage) { diff --git a/src/main/java/com/example/demo/domain/vo/bean/BeanConsumeFan.java b/src/main/java/com/example/demo/domain/vo/bean/BeanConsumeFan.java new file mode 100644 index 0000000..636a00c --- /dev/null +++ b/src/main/java/com/example/demo/domain/vo/bean/BeanConsumeFan.java @@ -0,0 +1,38 @@ +package com.example.demo.domain.vo.bean; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @program: gold-java + * @ClassName BeanConsumeFan + * @description: + * @author: Ethan + * @create: 2025−07-31 11:30 + * @Version 1.0 + **/ +@Data +@NoArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class BeanConsumeFan { + private static final long serialVersionUID = 1L; + private String name; //姓名 + private Integer jwcode; //精网号 + private String dept; //地区/分部 + private String beanNum; //金豆数量 + private String channel; //频道名称(source_name) + private String type; //类型source_type 单月,连续包月 + private Integer payType; //支付方式(直播:12345,铁粉:7,文章:8) + private String sortField; //排序字段 + private String sortOrder; //排序顺序 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private Date consumeTime; // 消费时间 (时间戳转化) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private Date startTime; // 开始时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private Date endTime; // 结束时间 +} 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 0af90f9..9dc736f 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 @@ -29,7 +29,7 @@ public class BeanConsumeLive { private String type; //类型 private String gift; //礼物名称 private String beanNum; //金豆数量 - private String channel; //频道名称(截取content) + private String liveChannel; //频道名称(截取content) private String liveName; //直播间名称 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date consumeTime; // 消费时间 (时间戳转化) 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 156311a..b04fcde 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,6 +21,7 @@ public class BeanPage { private Integer pageSize; //每页大小 private Integer payType; //支付方式(直播:12345,铁粉:7,文章:8) private BeanConsumeLive beanConsumeLive; //直播金豆消费 + private BeanConsumeFan beanConsumeFan; //铁粉金豆消费 private BeanRechargeInfo beanRechargeInfo; //金豆充值信息 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 7b0093f..91b4279 100644 --- a/src/main/java/com/example/demo/mapper/bean/BeanConsumeMapper.java +++ b/src/main/java/com/example/demo/mapper/bean/BeanConsumeMapper.java @@ -1,5 +1,6 @@ package com.example.demo.mapper.bean; +import com.example.demo.domain.vo.bean.BeanConsumeFan; import com.example.demo.domain.vo.bean.BeanConsumeGold; import com.example.demo.domain.vo.bean.BeanConsumeLive; import com.example.demo.domain.vo.bean.BeanPage; @@ -23,14 +24,16 @@ public interface BeanConsumeMapper { List getDept(); //筛选查询直播消费 List selectLiveBy(@Param("beanConsumeLive") BeanConsumeLive beanConsumeLive); - + //筛选查询铁粉消费 + List selectFanBy(@Param("beanConsumeFan") BeanConsumeFan beanConsumeFan); //查询金豆直播消费金额 BeanConsumeGold selectSumLiveBy(@Param("beanConsumeLive") BeanConsumeLive beanConsumeLive); //查询金豆铁粉消费金额 - // BeanConsumeGold selectSumFansBy(BeanPage beanPage); + BeanConsumeGold selectSumFansBy(@Param("beanConsumeFan") BeanConsumeFan beanConsumeFan); //查询直播礼物 List getLiveGift(); //查询直播全部频道 List getLiveChannel(); + } 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 d04e80d..993a471 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,6 @@ package com.example.demo.service.bean; +import com.example.demo.domain.vo.bean.BeanConsumeFan; import com.example.demo.domain.vo.bean.BeanConsumeGold; import com.example.demo.domain.vo.bean.BeanConsumeLive; import com.example.demo.domain.vo.bean.BeanPage; @@ -19,12 +20,15 @@ import java.util.List; public interface BeanConsumeService { //获取消费用户的分部 List getDept(); - //筛选查询消费 + //筛选查询直播消费 Object selectLiveBy(Integer pageNum, Integer pageSize, BeanConsumeLive beanConsumeLive); + //筛选查询铁粉消费 + Object selectFanBy(Integer pageNum, Integer pageSize, BeanConsumeFan beanConsumeFan); //消费金币合计数 BeanConsumeGold sumConsumeGold(BeanPage beanPage); //查询直播礼物 List getLiveGift(); - + //获取直播频道 List getLiveChannel(); + } 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 8627347..2dc1233 100644 --- a/src/main/java/com/example/demo/serviceImpl/bean/BeanConsumeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/bean/BeanConsumeServiceImpl.java @@ -1,5 +1,6 @@ package com.example.demo.serviceImpl.bean; +import com.example.demo.domain.vo.bean.BeanConsumeFan; import com.example.demo.domain.vo.bean.BeanConsumeGold; import com.example.demo.domain.vo.bean.BeanConsumeLive; import com.example.demo.domain.vo.bean.BeanPage; @@ -41,6 +42,13 @@ public class BeanConsumeServiceImpl implements BeanConsumeService { List beanConsumeLives = BeanConsumeMapper.selectLiveBy(beanConsumeLive); return new PageInfo<>(beanConsumeLives); } + //筛选查询铁粉消费 + @Override + public Object selectFanBy(Integer pageNum, Integer pageSize, BeanConsumeFan beanConsumeFan) { + PageHelper.startPage(pageNum, pageSize); + List beanConsumeFans = BeanConsumeMapper.selectFanBy(beanConsumeFan); + return new PageInfo<>(beanConsumeFans); + } @Override public BeanConsumeGold sumConsumeGold(BeanPage beanPage) { @@ -51,7 +59,7 @@ public class BeanConsumeServiceImpl implements BeanConsumeService { gold = BeanConsumeMapper.selectSumLiveBy(beanPage.getBeanConsumeLive()); }else if (payType==7) { //充值消费合计 - // gold = BeanConsumeMapper.selectSumFansBy(beanPage); + gold = BeanConsumeMapper.selectSumFansBy(beanPage.getBeanConsumeFan()); } return gold; diff --git a/src/main/resources/jindouMapper/BeanConsumeMapper.xml b/src/main/resources/jindouMapper/BeanConsumeMapper.xml index e222d34..c0f17f2 100644 --- a/src/main/resources/jindouMapper/BeanConsumeMapper.xml +++ b/src/main/resources/jindouMapper/BeanConsumeMapper.xml @@ -27,7 +27,7 @@ WHEN LOCATE('直播间', content) > 0 AND LOCATE('送礼物', content) > 0 THEN SUBSTRING_INDEX(SUBSTRING(content, LOCATE('直播间', content) + CHAR_LENGTH('直播间')), '送礼物', 1) ELSE NULL - END AS channel, + END AS liveChannel, fyr.source_name AS liveName, FROM_UNIXTIME(fyr.time, '%Y-%m-%d %H:%i:%s') AS consumeTime, fyr.pay_type AS payType @@ -54,8 +54,8 @@ AND t.gift = #{beanConsumeLive.gift} - - AND t.channel= #{beanConsumeLive.channel} + + AND t.liveChannel= #{beanConsumeLive.liveChannel} AND t.liveName LIKE CONCAT('%', #{beanConsumeLive.liveName}, '%') @@ -105,12 +105,12 @@ ELSE NULL END = #{beanConsumeLive.gift} - + AND CASE WHEN LOCATE('直播间', fyr.content) > 0 AND LOCATE('送礼物', fyr.content) > 0 THEN SUBSTRING_INDEX(SUBSTRING(fyr.content, LOCATE('直播间', fyr.content) + CHAR_LENGTH('直播间')), '送礼物', 1) ELSE NULL - END = #{beanConsumeLive.channel} + END = #{beanConsumeLive.liveChannel} AND fyr.time BETWEEN UNIX_TIMESTAMP(#{beanConsumeLive.startTime}) @@ -122,6 +122,78 @@ ) AS t + + + + + \ No newline at end of file