diff --git a/pom.xml b/pom.xml index 802c7bc..e813b18 100644 --- a/pom.xml +++ b/pom.xml @@ -84,7 +84,11 @@ mybatis-spring-boot-starter 3.0.4 - + + com.alibaba + easyexcel + 3.1.3 + org.springframework.boot spring-boot-devtools diff --git a/src/main/java/com/example/demo/controller/AuditController.java b/src/main/java/com/example/demo/controller/AuditController.java index 22f7173..95b48e5 100644 --- a/src/main/java/com/example/demo/controller/AuditController.java +++ b/src/main/java/com/example/demo/controller/AuditController.java @@ -83,15 +83,15 @@ public class AuditController { } else { user.setFree12(user.getFree12().add(freeCoin)); // 在7月到12月时返回的值 } - + refundMapper.inserty(detail); userMapper.update(user); } // 充值驳回 // if (audit.getStatus() == 2 && audit.getRechargeId() != null) { // // 获取 detail1 对象 -// Detail detail1 = detailMapper.selectByDetailId(audit.getDetailId()); +// DetailY detail1 = detailMapper.selectByDetailId(audit.getDetailId()); // if (detail1 == null) { -// throw new RuntimeException("驳回失败!未找到对应的 Detail 信息,audit.getDetailId() = " + audit.getDetailId()); +// throw new RuntimeException("驳回失败!未找到对应的 DetailY 信息,audit.getDetailId() = " + audit.getDetailId()); // } // // // 获取金币数据 diff --git a/src/main/java/com/example/demo/domain/entity/Detail.java b/src/main/java/com/example/demo/domain/entity/Detail.java index 8096b95..a315597 100644 --- a/src/main/java/com/example/demo/domain/entity/Detail.java +++ b/src/main/java/com/example/demo/domain/entity/Detail.java @@ -14,6 +14,7 @@ import java.util.Date; @NoArgsConstructor public class Detail implements Serializable { private Integer detailId; + private Integer detailyId; private String name; private String jwcode; private String area; @@ -50,7 +51,7 @@ public class Detail implements Serializable { private String auditReson; private String orderCode; private Integer refundFlag; - + private String reson; // @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") // @DateTimeFormat(pattern = "yyyy-MM-dd") diff --git a/src/main/java/com/example/demo/domain/entity/UserDetailExport.java b/src/main/java/com/example/demo/domain/entity/UserDetailExport.java new file mode 100644 index 0000000..6c922a5 --- /dev/null +++ b/src/main/java/com/example/demo/domain/entity/UserDetailExport.java @@ -0,0 +1,48 @@ +package com.example.demo.domain.entity; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +import java.math.BigDecimal; + +@Data + +public class UserDetailExport { + @ExcelProperty("用户序号") + @ColumnWidth(20) + private int Id; + @ExcelProperty("用户名") + @ColumnWidth(20) + private String Name; + @ExcelProperty("精网号") + @ColumnWidth(20) + private String jwcode; + @ExcelProperty("所属地区") + @ColumnWidth(20) + private String area; + @ExcelProperty("平台信息") + @ColumnWidth(20) + private String platformInfo; + @ExcelProperty("更新数量") + @ColumnWidth(20) + private BigDecimal count; + @ExcelProperty("更新类型") + @ColumnWidth(20) + private int update_type; + @ExcelProperty("充值金币") + @ColumnWidth(20) + private BigDecimal rechargeCoin; + @ExcelProperty("免费金币") + @ColumnWidth(20) + private BigDecimal freeCoin; + @ExcelProperty("任务金币") + @ColumnWidth(20) + private BigDecimal taskCoin; + @ExcelProperty("提交人") + @ColumnWidth(20) + private String submitName; + @ExcelProperty("更新时间") + @ColumnWidth(20) + private String updateTime; +} diff --git a/src/main/java/com/example/demo/domain/vo/Statistics.java b/src/main/java/com/example/demo/domain/vo/Statistics.java index 7ae253b..165b0bc 100644 --- a/src/main/java/com/example/demo/domain/vo/Statistics.java +++ b/src/main/java/com/example/demo/domain/vo/Statistics.java @@ -12,6 +12,8 @@ import java.math.BigDecimal; public class Statistics { private BigDecimal rechargeSumCoin; + private BigDecimal free6SumCoin; + private BigDecimal free12SumCoin; private BigDecimal freeSumCoin; private BigDecimal taskSumCoin; private BigDecimal totalSumCoin; diff --git a/src/main/java/com/example/demo/mapper/RefundMapper.java b/src/main/java/com/example/demo/mapper/RefundMapper.java index 3071b1f..4486936 100644 --- a/src/main/java/com/example/demo/mapper/RefundMapper.java +++ b/src/main/java/com/example/demo/mapper/RefundMapper.java @@ -2,6 +2,7 @@ package com.example.demo.mapper; import com.example.demo.domain.entity.Detail; +import com.example.demo.domain.entity.Detail; import org.apache.ibatis.annotations.*; import java.util.List; @@ -19,10 +20,18 @@ public interface RefundMapper { int insert(Detail detail); @Insert({ + "insert into detail_y", + "(jwcode,refund_type,refund_goods,contact_id,recharge_coin,free_coin,task_coin,remark,admin_id,create_time,update_type,order_code)", + "values", + "(#{jwcode},#{refundType},#{refundGoods},#{contactId},#{rechargeCoin},#{freeCoin},#{taskCoin},#{remark},#{adminId},now(),2,#{orderCode})" + }) + @Options(useGeneratedKeys = true, keyColumn = "detaily_id", keyProperty = "detailyId") + int inserty(Detail detail); + @Insert({ "insert into audit", - "(jwcode,refund_id,admin_id,create_time,detail_id)", + "(jwcode,refund_id,admin_id,create_time,detail_id,status,reson,audit_flag)", "values", - "(#{jwcode},#{detailId},#{adminId},now(),#{detailId})" + "(#{jwcode},#{detailId},#{adminId},now(),#{detailId},0,#{reson},1)" }) int insertAudit(Detail detail); @@ -33,7 +42,7 @@ public interface RefundMapper { //根据订单号查询 // @Select("select d.* " + // " p.name AS productName" + -// "FROM detail where order_code = #{orderCode} and detail_flag = 1" + +// "FROM detaily where order_code = #{orderCode} and detail_flag = 1" + // "LEFT JOIN product p ON d.product_id = p.id" ) // Detail selectByOrderCode(@Param("orderCode") String orderCode); @@ -56,7 +65,7 @@ public interface RefundMapper { @Update("update detail set detail_flag = 0 where detail_id = #{detailId}") int update(@Param("detailId") Integer detailId); - //是否退款 + //退款成功,将detail表中的的记录退款状态改为已退款 @Update("update detail set refund_flag = 0 where detail_id = #{contactId}") int updateOrderCode(Integer contactId); diff --git a/src/main/java/com/example/demo/mapper/StatisticsMapper.java b/src/main/java/com/example/demo/mapper/StatisticsMapper.java index a708181..328b48c 100644 --- a/src/main/java/com/example/demo/mapper/StatisticsMapper.java +++ b/src/main/java/com/example/demo/mapper/StatisticsMapper.java @@ -27,7 +27,9 @@ public interface StatisticsMapper { " AND create_time >= '2024-01-01' " + " AND create_time < NOW()") Statistics getTotalYearCoin(); - + //免费金币分类 + @Select("SELECT SUM(free_6) AS free6SumCoin,SUM(free_12) AS free12SumCoin From user_gold") + Statistics getFreeCoinTotal(); //昨日新增 @Select("SELECT SUM(recharge_coin) AS rechargeYesterdaySumCoin, " + " SUM(free_coin) AS freeYesterdaySumCoin, " + @@ -40,7 +42,7 @@ public interface StatisticsMapper { Statistics getYesterdayNewCoin(); //全年累计0人数 - @Select("SELECT COUNT(jwcode) AS rechargeCount " + + @Select("SELECT COUNT(DISTINCT jwcode) AS rechargeCount " + "FROM `detail_y` " + "WHERE update_type = '0' " + " AND create_time >= '2024-01-01' " + @@ -48,27 +50,27 @@ public interface StatisticsMapper { int getYearRechargeCount(); //这周0数量 - @Select("SELECT COUNT(jwcode) AS rechargeCountThisWeek " + + @Select("SELECT COUNT(DISTINCT jwcode) AS rechargeCountThisWeek " + "FROM `detail_y` WHERE update_type = '0' AND YEARWEEK(create_time, 1) = YEARWEEK(CURDATE(), 1)") int getRechargeCountThisWeek(); //上周0数量 - @Select("SELECT COUNT(jwcode) AS rechargeCountLastWeek " + + @Select("SELECT COUNT(DISTINCT jwcode) AS rechargeCountLastWeek " + "FROM `detail_y` WHERE update_type = '0' AND YEARWEEK(create_time, 1) = YEARWEEK(CURDATE() - INTERVAL 1 WEEK, 1)") int getRechargeCountLastWeek(); //今天的0数量 - @Select("SELECT COUNT(jwcode) AS rechargeCountToday " + + @Select("SELECT COUNT(DISTINCT jwcode) AS rechargeCountToday " + "FROM `detail_y` WHERE update_type = '0' AND create_time >= CURDATE()") int getRechargeCountToday(); //昨天的0数量 - @Select("SELECT COUNT(jwcode) AS rechargeCountYesterday " + + @Select("SELECT COUNT(DISTINCT jwcode) AS rechargeCountYesterday " + "FROM `detail_y` WHERE update_type = '0' AND create_time >=CURDATE() - INTERVAL 1 DAY AND create_time < CURDATE();") int getRechargeCountYesterday(); //昨日新增首充 - @Select("SELECT COUNT(jwcode) AS firstRechargeCountYesterday "+ + @Select("SELECT COUNT(DISTINCT jwcode) AS firstRechargeCountYesterday "+ "FROM `detail_y` WHERE update_type = '0' AND create_time >=CURDATE() - INTERVAL 1 DAY AND create_time < CURDATE() AND first_recharge = 1") int getFirstRechargeCountYesterday(); @@ -200,15 +202,15 @@ public interface StatisticsMapper { @Select({ "" }) @@ -250,7 +252,7 @@ public interface StatisticsMapper { @Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) AS rechargeSumCoin,sum(free_coin) as freeSumCoin ,sum(task_coin) as taskSumCoin " + "from detail_y where datediff(create_time,#{searchStartTime})>=0 " + - "and datediff(create_time,#{searchEndTime})<=0 and update_type = 1 group by DATE_FORMAT(create_time,'%m-%d')" + "and datediff(create_time,#{searchEndTime})<=0 and update_type = 1 group by DATE_FORMAT(create_time,'%m-%d')" }) List getMediuCounsumeCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @@ -404,7 +406,7 @@ public interface StatisticsMapper { " SUM(d.recharge_coin) AS rechargeSumCoin,", " SUM(d.free_coin) AS freeSumCoin,", " SUM(d.task_coin) AS taskSumCoin,", - " (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.task_coin)) AS totalRechargeSum", + " (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.task_coin)) AS totalRechargeSum", "FROM detail_y d", "left JOIN user u ON u.jwcode = d.jwcode", "WHERE update_type = 0 ", @@ -440,7 +442,7 @@ public interface StatisticsMapper { " SUM(d.recharge_coin) AS rechargeSumCoin,", " SUM(d.free_coin) AS freeSumCoin,", " SUM(d.task_coin) AS taskSumCoin,", - " (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.task_coin)) AS totalRechargeSum", + " (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.task_coin)) AS totalRechargeSum", "FROM detail_y d", "left JOIN user u ON u.jwcode = d.jwcode", "WHERE update_type = 0 ", diff --git a/src/main/java/com/example/demo/mapper/UserMapper.java b/src/main/java/com/example/demo/mapper/UserMapper.java index 9406178..85e3578 100644 --- a/src/main/java/com/example/demo/mapper/UserMapper.java +++ b/src/main/java/com/example/demo/mapper/UserMapper.java @@ -74,13 +74,13 @@ public interface UserMapper { }) User selectByName(String name); @Select({ - "select * from user where jwcode=#{jwcode}" + "select * from user_gold where jwcode=#{jwcode}" }) User selectByJwcode(String jwcode); @Update({ "", diff --git a/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java index 3513d6b..2ee1323 100644 --- a/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java @@ -44,6 +44,11 @@ public class StatisticsServiceImpl implements StatisticsService { statistics.setTaskSumCoin(yearStats.getTaskSumCoin()); statistics.setTotalSumCoin(yearStats.getTotalSumCoin()); + //免费金币6/12到期数量 + Statistics free =CheckIfNullUtil.defaultIfNull(statisticsMapper.getFreeCoinTotal(), new Statistics()); + statistics.setFree6SumCoin(free.getFree6SumCoin()); + statistics.setFree12SumCoin(free.getFree12SumCoin()); + // 昨日新增数据 Statistics yesterdayStats = CheckIfNullUtil.defaultIfNull(statisticsMapper.getYesterdayNewCoin(), new Statistics()); statistics.setRechargeYesterdaySumCoin(yesterdayStats.getRechargeYesterdaySumCoin());