From 6d52bf6d44b2bc510d061bff8b543f29cb4e13d1 Mon Sep 17 00:00:00 2001
From: zhangluping <1801075613@qq.com>
Date: Wed, 25 Dec 2024 17:13:06 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 6 ++-
.../example/demo/controller/AuditController.java | 6 +--
.../com/example/demo/domain/entity/Detail.java | 3 +-
.../demo/domain/entity/UserDetailExport.java | 48 ++++++++++++++++++++++
.../com/example/demo/domain/vo/Statistics.java | 2 +
.../java/com/example/demo/mapper/RefundMapper.java | 17 ++++++--
.../com/example/demo/mapper/StatisticsMapper.java | 40 +++++++++---------
.../java/com/example/demo/mapper/UserMapper.java | 5 ++-
.../demo/serviceImpl/StatisticsServiceImpl.java | 5 +++
9 files changed, 102 insertions(+), 30 deletions(-)
create mode 100644 src/main/java/com/example/demo/domain/entity/UserDetailExport.java
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());