From 0c9074795c9ce7e34ceeb60a276f72560f5865f5 Mon Sep 17 00:00:00 2001 From: lv123 Date: Mon, 16 Dec 2024 19:52:40 +0800 Subject: [PATCH 1/5] =?UTF-8?q?12.16=20=20=E5=B7=A5=E4=BD=9C=E5=8F=B0?= =?UTF-8?q?=E4=B8=AD=E9=97=B4=E9=83=A8=E5=88=86=E5=85=A8=E9=83=A8=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/demo/controller/AuditController.java | 10 +- .../demo/controller/StatisticsController.java | 23 +- .../com/example/demo/domain/entity/Detail.java | 8 + .../java/com/example/demo/domain/vo/Meium.java | 11 +- .../java/com/example/demo/domain/vo/SumCoin.java | 17 +- .../example/demo/domain/vo/UserConsumeCoin.java | 25 ++ .../com/example/demo/mapper/StatisticsMapper.java | 254 +++++++++++++++++---- .../java/com/example/demo/mapper/UserMapper.java | 5 +- .../demo/serviceImpl/ConsumeServiceImpl.java | 31 ++- .../demo/serviceImpl/StatisticsServiceImpl.java | 77 ++++++- .../example/demo/serviceImpl/UserServiceImpl.java | 100 ++++++++ .../java/com/example/demo/sevice/UserSevice.java | 2 + 12 files changed, 488 insertions(+), 75 deletions(-) create mode 100644 src/main/java/com/example/demo/domain/vo/UserConsumeCoin.java diff --git a/src/main/java/com/example/demo/controller/AuditController.java b/src/main/java/com/example/demo/controller/AuditController.java index 03358d4..6f35358 100644 --- a/src/main/java/com/example/demo/controller/AuditController.java +++ b/src/main/java/com/example/demo/controller/AuditController.java @@ -51,11 +51,11 @@ public class AuditController { BigDecimal taskCoin = detail.getTaskCoin(); BigDecimal freeCoin = detail.getFreeCoin(); - User user = userMapper.selectByJwcode(detail.getJwcode()); - user.setBuyJb(user.getBuyJb().add(rechargeCoin)); - user.setCoreJb(user.getCoreJb().add(taskCoin)); - user.setFree6(user.getFree6().add(freeCoin)); - userMapper.update(user); + // User user = userMapper.selectByJwcode(detail.getJwcode()); +// user.setBuyJb(user.getBuyJb().add(rechargeCoin)); +// user.setCoreJb(user.getCoreJb().add(taskCoin)); +// user.setFree6(user.getFree6().add(freeCoin)); +// userMapper.update(user); } return Result.success(); } diff --git a/src/main/java/com/example/demo/controller/StatisticsController.java b/src/main/java/com/example/demo/controller/StatisticsController.java index 7fb3968..2483c6a 100644 --- a/src/main/java/com/example/demo/controller/StatisticsController.java +++ b/src/main/java/com/example/demo/controller/StatisticsController.java @@ -1,10 +1,9 @@ package com.example.demo.controller; -import com.example.demo.domain.vo.Meium; -import com.example.demo.domain.vo.Result; -import com.example.demo.domain.vo.Statistics; -import com.example.demo.domain.vo.UserVo; +import com.example.demo.domain.vo.*; +import com.example.demo.mapper.StatisticsMapper; +import com.example.demo.serviceImpl.StatisticsServiceImpl; import com.example.demo.serviceImpl.UserServiceImpl; import com.example.demo.sevice.StatisticsService; import lombok.RequiredArgsConstructor; @@ -14,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.Arrays; +import java.util.Date; @RestController @@ -26,6 +26,10 @@ public class StatisticsController { private final StatisticsService statisticsService; @Autowired UserServiceImpl userService; + @Autowired + private StatisticsMapper statisticsMapper; + @Autowired + private StatisticsServiceImpl statisticsServiceImpl; @PostMapping("/a") @@ -96,4 +100,15 @@ public class StatisticsController { return Result.success(statisticsService.getMediu()); } + @PostMapping("/getMediuConsumeCoin2") + public Result getMediuConsumeCoin2(@RequestBody SumCoin sumCoin){ + System.out.println(sumCoin.getSearchStartTime()+" -------------searchStartTime----"); + return Result.success(statisticsMapper.getMediuConsumeCoin2(sumCoin)); + } + @PostMapping("/getCoinTime") + public Result getCoinTime(@RequestBody SumCoin sumcoin){ + System.out.println(sumcoin.getSearchStartTime()+" -------------searchStartTime----"); + return Result.success(statisticsServiceImpl.getCoinTime(sumcoin)); + } + } 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 6f490aa..4e03fe7 100644 --- a/src/main/java/com/example/demo/domain/entity/Detail.java +++ b/src/main/java/com/example/demo/domain/entity/Detail.java @@ -61,4 +61,12 @@ public class Detail implements Serializable { private BigDecimal allCoin; private String token; + private BigDecimal free6; + private BigDecimal free12; + + private BigDecimal allGold; + + + + } diff --git a/src/main/java/com/example/demo/domain/vo/Meium.java b/src/main/java/com/example/demo/domain/vo/Meium.java index a2c21cb..523d002 100644 --- a/src/main/java/com/example/demo/domain/vo/Meium.java +++ b/src/main/java/com/example/demo/domain/vo/Meium.java @@ -1,11 +1,14 @@ package com.example.demo.domain.vo; import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.math.BigDecimal; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Date; import java.util.HashMap; @@ -23,8 +26,12 @@ public class Meium implements Serializable { private String area; private String store; private BigDecimal totalRechargeSum; - private LocalDateTime searchStartTime; - private LocalDateTime searchEndTime; + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date searchStartTime; + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date searchEndTime; private String updateType; private String type; private String token; // 新增的token字段 diff --git a/src/main/java/com/example/demo/domain/vo/SumCoin.java b/src/main/java/com/example/demo/domain/vo/SumCoin.java index ae07286..2635e1d 100644 --- a/src/main/java/com/example/demo/domain/vo/SumCoin.java +++ b/src/main/java/com/example/demo/domain/vo/SumCoin.java @@ -1,9 +1,14 @@ package com.example.demo.domain.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Date; @Data @NoArgsConstructor @@ -51,8 +56,14 @@ public class SumCoin { private BigDecimal yearSumFreeCoin; //全年累计消耗金币数--下面 消耗任务金币 private BigDecimal yearSumTaskCoin; - - + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date searchStartTime; + + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date searchEndTime; + private String updateType; //中间-11个月 每月充值金币 private BigDecimal rechargeSumCoin; //中间-11个月 每月免费金币 @@ -60,6 +71,8 @@ public class SumCoin { //中间-11个月 每月任务金币 private BigDecimal taskSumCoin; private String month; + private String dayofweek; + private String day; private Integer jwcode; diff --git a/src/main/java/com/example/demo/domain/vo/UserConsumeCoin.java b/src/main/java/com/example/demo/domain/vo/UserConsumeCoin.java new file mode 100644 index 0000000..7e65d9f --- /dev/null +++ b/src/main/java/com/example/demo/domain/vo/UserConsumeCoin.java @@ -0,0 +1,25 @@ +package com.example.demo.domain.vo; + +import com.example.demo.domain.entity.Detail; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.apache.ibatis.annotations.Param; + +import java.math.BigDecimal; + +@Data +@NoArgsConstructor +public class UserConsumeCoin { + + + private String jwcode; + private BigDecimal free6; + private BigDecimal free12; + private BigDecimal rechargeSumCoin; + //中间-11个月 每月免费金币 + private BigDecimal freeSumCoin; + //中间-11个月 每月任务金币 + private BigDecimal taskSumCoin; + private BigDecimal allGold; + // +} diff --git a/src/main/java/com/example/demo/mapper/StatisticsMapper.java b/src/main/java/com/example/demo/mapper/StatisticsMapper.java index 03f0148..6810d6f 100644 --- a/src/main/java/com/example/demo/mapper/StatisticsMapper.java +++ b/src/main/java/com/example/demo/mapper/StatisticsMapper.java @@ -9,7 +9,6 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; -import java.time.LocalDateTime; import java.util.Date; import java.util.List; @@ -185,6 +184,8 @@ public interface StatisticsMapper { // "ORDER BY DATE_FORMAT(create_time, '%Y-%m') DESC "}) // List getMediuPayCoin(); + +// 本年 ---充值 @Select({ "SELECT m.month,", " COALESCE(SUM(d.recharge_coin), 0) AS rechargeSumCoin,", @@ -195,7 +196,7 @@ public interface StatisticsMapper { " FROM (", " SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3", " UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7", - " UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10", + " UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11", " ) AS numbers", ") AS m", "LEFT JOIN detail d ON DATE_FORMAT(d.create_time, '%Y-%m') = m.month AND d.update_type = '充值'", @@ -204,6 +205,7 @@ public interface StatisticsMapper { }) List getMediuPayCoin(); + //本年--消费 @Select({ "SELECT m.month,", " COALESCE(SUM(d.recharge_coin), 0) AS rechargeSumCoin,", @@ -214,7 +216,7 @@ public interface StatisticsMapper { " FROM (", " SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3", " UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7", - " UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10", + " UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11", " ) AS numbers", ") AS m", "LEFT JOIN detail d ON DATE_FORMAT(d.create_time, '%Y-%m') = m.month AND d.update_type = '消费'", @@ -222,6 +224,183 @@ public interface StatisticsMapper { "ORDER BY m.month DESC" }) List getMediuConsumeCoin(); + // 本月 ---充值 +// @Select({ +// "SELECT DATE(d.create_time) as day,", +// " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,", +// " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,", +// " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin", +// "FROM detail d", +// "WHERE d.update_type = '充值'", +// " AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", +// "GROUP BY DATE(d.create_time)", +// "ORDER BY DATE(d.create_time)" +// }) +// List getMediuPayCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); + + @Select({ + "SELECT m.day,", + " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin", + "FROM (", + " SELECT DATE_ADD(#{searchStartTime}, INTERVAL n DAY) AS day", + " FROM (", + " SELECT a.N + b.N * 10 AS n", + " FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a,", + " (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b", + " ) numbers", + " WHERE DATE_ADD(#{searchStartTime}, INTERVAL n DAY) <= #{searchEndTime}", + ") m", + "LEFT JOIN detail d ON DATE(d.create_time) = m.day AND d.update_type = '充值'", + "GROUP BY m.day", + "ORDER BY m.day" + }) + List getMediuPayCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); + + + @Select({ + "SELECT m.day,", + " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin", + "FROM (", + " SELECT DATE_ADD(#{searchStartTime}, INTERVAL n DAY) AS day", + " FROM (", + " SELECT a.N + b.N * 10 AS n", + " FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a,", + " (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b", + " ) numbers", + " WHERE DATE_ADD(#{searchStartTime}, INTERVAL n DAY) <= #{searchEndTime}", + ") m", + "LEFT JOIN detail d ON DATE(d.create_time) = m.day AND d.update_type = '消费'", + "GROUP BY m.day", + "ORDER BY m.day" + }) + + List getMediuCounsumeCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); + //本周--充值 + @Select({ + "SELECT", + " CASE DAYOFWEEK(m.day)", + " WHEN 2 THEN '星期一'", + " WHEN 3 THEN '星期二'", + " WHEN 4 THEN '星期三'", + " WHEN 5 THEN '星期四'", + " WHEN 6 THEN '星期五'", + " WHEN 7 THEN '星期六'", + " WHEN 1 THEN '星期天'", + " END AS dayofweek,", + " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin", + "FROM (", + " SELECT DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) + INTERVAL n DAY AS day", + " FROM (SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6) numbers", + ") m", + "LEFT JOIN detail d ON DATE(d.create_time) = m.day AND d.update_type = '充值'", + "GROUP BY m.day", + "ORDER BY m.day" + }) + + List getMediuPayCoinweek(); + //本周--消费 + @Select({ + "SELECT", + " CASE DAYOFWEEK(m.day)", + " WHEN 2 THEN '星期一'", + " WHEN 3 THEN '星期二'", + " WHEN 4 THEN '星期三'", + " WHEN 5 THEN '星期四'", + " WHEN 6 THEN '星期五'", + " WHEN 7 THEN '星期六'", + " WHEN 1 THEN '星期天'", + " END AS dayofweek,", + " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin", + "FROM (", + " SELECT DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) + INTERVAL n DAY AS day", + " FROM (SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6) numbers", + ") m", + "LEFT JOIN detail d ON DATE(d.create_time) = m.day AND d.update_type = '消费'", + "GROUP BY m.day", + "ORDER BY m.day" + }) + + List getMediuConsumeCoinweek(); +//今天--消费充值 + + + + @Select({ + "SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,", + " NOW() AS currentTimestamp,", + " SUM(recharge_coin) AS rechargeSumCoin,", + " SUM(free_coin) AS freeSumCoin,", + " SUM(task_coin) AS taskSumCoin", + "FROM `detail`", + "WHERE DATE(create_time) = CURDATE() AND update_type = '充值'" + }) + List getMediuPayCoinday(); + + + @Select({ + "SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,", + " NOW() AS currentTimestamp,", + " SUM(recharge_coin) AS rechargeSumCoin,", + " SUM(free_coin) AS freeSumCoin,", + " SUM(task_coin) AS taskSumCoin", + "FROM `detail`", + "WHERE DATE(create_time) = CURDATE() AND update_type = '消费'" + }) + + List getMediuConsumeCoinday(); + +//给定时间段--消费充值 +@Select({ + "SELECT m.day,", + " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin", + "FROM (", + " SELECT DATE_ADD(#{searchStartTime}, INTERVAL n DAY) AS day", + " FROM (", + " SELECT a.N + b.N * 10 AS n", + " FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a,", + " (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b", + " ) numbers", + " WHERE DATE_ADD(#{searchStartTime}, INTERVAL n DAY) <= #{searchEndTime}", + ") m", + "LEFT JOIN detail d ON DATE(d.create_time) = m.day AND d.update_type = '充值'", + "GROUP BY m.day", + "ORDER BY m.day" +}) +List getMediuPayCoin1(SumCoin sumCoin); + + @Select({ + "SELECT m.day,", + " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin", + "FROM (", + " SELECT DATE_ADD(#{searchStartTime}, INTERVAL n DAY) AS day", + " FROM (", + " SELECT a.N + b.N * 10 AS n", + " FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a,", + " (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b", + " ) numbers", + " WHERE DATE_ADD(#{searchStartTime}, INTERVAL n DAY) <= #{searchEndTime}", + ") m", + "LEFT JOIN detail d ON DATE(d.create_time) = m.day AND d.update_type = '消费'", + "GROUP BY m.day", + "ORDER BY m.day" + }) + List getMediuConsumeCoin2(SumCoin sumCoin); + + + + @Select({"SELECT today.jwcode," , "today.rechargeSumCoin AS todayRecharge," , @@ -267,47 +446,26 @@ public interface StatisticsMapper { - @Select({ - "SELECT m.month,", - " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,", - " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,", - " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin", - "FROM (", - " SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL n MONTH), '%Y-%m') AS month", - " FROM (", - " SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3", - " UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7", - " UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10", - " ) AS numbers", - ") AS m", - "LEFT JOIN detail d ON DATE_FORMAT(d.create_time, '%Y-%m') = m.month", - "", - "and detail.create_time between #{searchStartTime} and #{searchEndTime}", - "", - "GROUP BY m.month", - "ORDER BY m.month DESC" - }) - List getMediu(); + @Select({ - "SELECT m.month,", + "SELECT m.week,", " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END), 0) AS xrechargeSumCoin,", " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END), 0) AS xfreeSumCoin,", " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END), 0) AS xtaskSumCoin", "FROM (", - " SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL n MONTH), '%Y-%m') AS month", + " SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL n WEEK), '%Y-%u') AS week", " FROM (", " SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3", - " UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7", - " UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10", + " UNION ALL SELECT 4 UNION ALL SELECT 5", " ) AS numbers", ") AS m", - "LEFT JOIN detail d ON DATE_FORMAT(d.create_time, '%Y-%m') = m.month", + "LEFT JOIN detail d ON DATE_FORMAT(d.create_time, '%Y-%u') = m.week", "", - "and detail.create_time between #{searchStartTime} and #{searchEndTime}", + "AND d.create_time BETWEEN #{searchStartTime} AND #{searchEndTime}", "", - "GROUP BY m.month", - "ORDER BY m.month DESC" + "GROUP BY m.week", + "ORDER BY m.week DESC" }) List getMediu2(); @@ -325,13 +483,13 @@ public interface StatisticsMapper { "FROM detail d", "right JOIN admin ad ON ad.admin_id = d.admin_id", "", - "and d.create_time between #{searchStartTime} and #{searchEndTime}", + "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", "", "GROUP BY ad.area, ad.store", "order by freeSumCoin desc", "" }) - List getBuyAndFree(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime); + List getBuyAndFree(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "" }) - List getBuyAndRecharge(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime); + List getBuyAndRecharge(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "" }) - List getBuyAndTask(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime); + List getBuyAndTask(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "" }) - List getBuy(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime); + List getBuy(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "" }) - List getPayAndFree(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime); + List getPayAndFree(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "" }) - List getPayAndRecharge(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime); + List getPayAndRecharge(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "" }) - List getPayAndTask(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime); + List getPayAndTask(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "" }) - List getPay(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime); + List getPay(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); } diff --git a/src/main/java/com/example/demo/mapper/UserMapper.java b/src/main/java/com/example/demo/mapper/UserMapper.java index 6a11ff2..b5a78be 100644 --- a/src/main/java/com/example/demo/mapper/UserMapper.java +++ b/src/main/java/com/example/demo/mapper/UserMapper.java @@ -82,10 +82,7 @@ public interface UserMapper { }) int update(User user); - @Select({ - "select * from user where jwcode=#{jwcode}" - }) - User selectByJwcode(String jwcode);// //去掉免费金币,先去6个月,再去12月 +// //去掉免费金币,先去6个月,再去12月 // @Update({ // "" }) - List getBuyAndFree(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime); + List getBuyAndFree(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "" }) - List getBuyAndRecharge(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime); + List getBuyAndRecharge(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "" }) - List getBuyAndTask(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime); + List getBuyAndTask(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "" }) - List getBuy(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime); + List getBuy(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "" }) - List getPayAndFree(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime); + List getPayAndFree(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "" }) - List getPayAndRecharge(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime); + List getPayAndRecharge(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "" }) - List getPayAndTask(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime); + List getPayAndTask(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "" }) - List getPay(@Param("searchStartTime") LocalDateTime searchStartTime, @Param("searchEndTime") LocalDateTime searchEndTime); -} + List getPay(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java index e950746..3c62217 100644 --- a/src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java @@ -50,24 +50,49 @@ public class ActivityServiceImpl implements ActivityService { } @Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #activity.hashCode() ") @Override + public PageInfo searchForPage(Integer pageNum, Integer pageSize, Activity activity) { +// PageHelper.startPage(pageNum, pageSize); +// List list = activityMapper.select(activity); +// return new PageInfo<>(list); + PageHelper.startPage(pageNum, pageSize); + List list = activityMapper.select(activity); + Date nowDate = new Date(); + list.forEach(activity1 -> { + // 假设 getStartTime() 和 getEndTime() 返回的是 java.util.Date 类型 + Date startTime = activity1.getStartTime(); + Date endTime = activity1.getEndTime(); + + // 使用 Date 类的 before 和 after 方法进行比较 + if (nowDate.before(startTime)) { + activity1.setStatus(0); // 设置状态为 0 + } else if (nowDate.after(endTime)) { + activity1.setStatus(2); // 设置状态为 2 + } else { + activity1.setStatus(1); // 设置状态为 1 + } + + // 保存修改后的对象 + activityMapper.edit(activity1); + }); + return new PageInfo<>(list); + } +} + +// @Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #activity.hashCode() ") +// @Override // public PageInfo searchForPage(Integer pageNum, Integer pageSize, Activity activity) { -//// PageHelper.startPage(pageNum, pageSize); -//// List list = activityMapper.select(activity); -//// return new PageInfo<>(list); -// // PageHelper.startPage(pageNum, pageSize); // List list = activityMapper.select(activity); -// Date nowDate = new Date(); -// list.forEach(activity1 -> { -// // 假设 getStartTime() 和 getEndTime() 返回的是 java.util.Date 类型 +// LocalDateTime nowDate = LocalDateTime.now(); +// +// for (Activity activity1 : list) { // Date startTime = activity1.getStartTime(); // Date endTime = activity1.getEndTime(); // -// // 使用 Date 类的 before 和 after 方法进行比较 -// if (nowDate.before(startTime)) { +// if (nowDate.isBefore(startTime)) { // activity1.setStatus(0); // 设置状态为 0 -// } else if (nowDate.after(endTime)) { +// } else if (nowDate.isAfter(endTime)) { // activity1.setStatus(2); // 设置状态为 2 // } else { // activity1.setStatus(1); // 设置状态为 1 @@ -75,32 +100,9 @@ public class ActivityServiceImpl implements ActivityService { // // // 保存修改后的对象 // activityMapper.edit(activity1); -// }); +// } +// +// // 返回分页信息 +// return new PageInfo<>(list); // } -//} - - public PageInfo searchForPage(Integer pageNum, Integer pageSize, Activity activity) { - PageHelper.startPage(pageNum, pageSize); - List list = activityMapper.select(activity); - LocalDateTime nowDate = LocalDateTime.now(); - - for (Activity activity1 : list) { - LocalDateTime startTime = activity1.getStartTime(); - LocalDateTime endTime = activity1.getEndTime(); - - if (nowDate.isBefore(startTime)) { - activity1.setStatus(0); // 设置状态为 0 - } else if (nowDate.isAfter(endTime)) { - activity1.setStatus(2); // 设置状态为 2 - } else { - activity1.setStatus(1); // 设置状态为 1 - } - - // 保存修改后的对象 - activityMapper.edit(activity1); - } - - // 返回分页信息 - return new PageInfo<>(list); - } -} \ No newline at end of file +//} \ No newline at end of file diff --git a/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java index 8750afe..203536f 100644 --- a/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java @@ -4,8 +4,11 @@ package com.example.demo.serviceImpl; import com.example.demo.domain.entity.Audit; +import com.example.demo.domain.entity.User; import com.example.demo.domain.vo.ConsumeDetail; import com.example.demo.mapper.AuditMapper; +import com.example.demo.mapper.RechargeMapper; +import com.example.demo.mapper.UserMapper; import com.example.demo.sevice.AuditService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -16,12 +19,17 @@ import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.Month; import java.util.List; @Transactional @Service @RequiredArgsConstructor @CacheConfig(cacheNames = "audit") public class AuditServiceImpl implements AuditService { + + private final UserMapper userMapper; private final AuditMapper auditMapper; @CacheEvict(value = {"audit", "recharge"}, allEntries = true) @@ -36,6 +44,53 @@ public class AuditServiceImpl implements AuditService { return auditMapper.update(audit); } + @CacheEvict(value = {"audit", "recharge","refund"}, allEntries = true) + @Override + public int goldedit(Audit audit) throws Exception { + int result = auditMapper.update(audit); + if (result != 1) { + throw new Exception("Failed to insert recharge data"); + } + Integer auditFlag = audit.getAuditFlag(); + if(auditFlag == 1){ + String jwcode=audit.getRecharge().getJwcode(); + BigDecimal paidGold1 =audit.getRecharge().getPaidGold(); + BigDecimal freeGold1 =audit.getRecharge().getFreeGold(); + User user = userMapper.select(jwcode); + BigDecimal buyJb =user.getBuyJb(); + + buyJb = buyJb.add(paidGold1); + +// 设置更新后的Sumgold回到user对象 + user.setBuyJb(buyJb); + LocalDate now = LocalDate.now(); + +// 判断当前日期是在六月之前还是之后 + Month currentMonth = now.getMonth(); + boolean isBeforeJune = currentMonth.getValue() < Month.JUNE.getValue(); + boolean isJune = currentMonth.getValue() == Month.JUNE.getValue(); + boolean isAfterJune = currentMonth.getValue() > Month.JUNE.getValue(); + +// 根据月份更新 free6 或 free12 + if (isBeforeJune||isJune) { + // 如果是六月前,更新 free6 + BigDecimal free6 = user.getFree6().add(freeGold1); + user.setFree6(free6); + } else if (isAfterJune) { + // 如果是六月后,更新 free12 + BigDecimal free12 = user.getFree12().add(freeGold1); + user.setFree12(free12); + } + + System.out.println(user+"----------------------------------------------------------"); + result = userMapper.update(user); + if (result != 1) { + throw new Exception("Failed to insert recharge data"); + } + } + return auditMapper.update(audit); + } + @Override public List search(Audit audit) { return auditMapper.select(audit); diff --git a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java index 8ab2666..afe155e 100644 --- a/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java @@ -57,10 +57,11 @@ public class ConsumeServiceImpl implements ConsumeService { // 判断当前日期是在六月之前还是之后 Month currentMonth = now.getMonth(); boolean isBeforeJune = currentMonth.getValue() < Month.JUNE.getValue(); + boolean isJune = currentMonth.getValue() == Month.JUNE.getValue(); boolean isAfterJune = currentMonth.getValue() > Month.JUNE.getValue(); // 根据月份更新 free6 或 free12 - if (isBeforeJune) { + if (isBeforeJune||isJune) { // 如果是六月前,更新 free6 BigDecimal free6 = user.getFree6().add(freeGold1); user.setFree6(free6); diff --git a/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java index e1eb44f..c04306e 100644 --- a/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java @@ -92,7 +92,6 @@ public class RechargeServiceImpl implements RechargeService { } detail.setJwcode(JwCode); detail.setActivityId(activityId); - detail.setTaskCoin(paidGold); detail.setRechargeCoin(rechargeGold); detail.setFreeCoin(freeGold); detail.setRechargeWay(rechargeWay); @@ -109,35 +108,35 @@ public class RechargeServiceImpl implements RechargeService { throw new Exception("Failed to insert another entity"); } - BigDecimal paidGold1 =recharge.getPaidGold(); - BigDecimal freeGold1 =recharge.getFreeGold(); - User user = userMapper.select(jwcode); - BigDecimal buyJb =user.getBuyJb(); - - buyJb = buyJb.add(paidGold1); - -// 设置更新后的Sumgold回到user对象 - user.setBuyJb(buyJb); - LocalDate now = LocalDate.now(); - -// 判断当前日期是在六月之前还是之后 - Month currentMonth = now.getMonth(); - boolean isBeforeJune = currentMonth.getValue() < Month.JUNE.getValue(); - boolean isAfterJune = currentMonth.getValue() > Month.JUNE.getValue(); - -// 根据月份更新 free6 或 free12 - if (isBeforeJune) { - // 如果是六月前,更新 free6 - BigDecimal free6 = user.getFree6().add(freeGold1); - user.setFree6(free6); - } else if (isAfterJune) { - // 如果是六月后,更新 free12 - BigDecimal free12 = user.getFree12().add(freeGold1); - user.setFree12(free12); - } - - System.out.println(user+"----------------------------------------------------------"); - result = userMapper.update(user); +// BigDecimal paidGold1 =recharge.getPaidGold(); +// BigDecimal freeGold1 =recharge.getFreeGold(); +// User user = userMapper.select(jwcode); +// BigDecimal buyJb =user.getBuyJb(); +// +// buyJb = buyJb.add(paidGold1); +// +//// 设置更新后的Sumgold回到user对象 +// user.setBuyJb(buyJb); +// LocalDate now = LocalDate.now(); +// +//// 判断当前日期是在六月之前还是之后 +// Month currentMonth = now.getMonth(); +// boolean isBeforeJune = currentMonth.getValue() < Month.JUNE.getValue(); +// boolean isAfterJune = currentMonth.getValue() > Month.JUNE.getValue(); +// +//// 根据月份更新 free6 或 free12 +// if (isBeforeJune) { +// // 如果是六月前,更新 free6 +// BigDecimal free6 = user.getFree6().add(freeGold1); +// user.setFree6(free6); +// } else if (isAfterJune) { +// // 如果是六月后,更新 free12 +// BigDecimal free12 = user.getFree12().add(freeGold1); +// user.setFree12(free12); +// } +// +// System.out.println(user+"----------------------------------------------------------"); +// result = userMapper.update(user); if (result != 1) { throw new Exception("Failed to insert another entity"); } diff --git a/src/main/java/com/example/demo/sevice/AuditService.java b/src/main/java/com/example/demo/sevice/AuditService.java index 5133730..dfccdb7 100644 --- a/src/main/java/com/example/demo/sevice/AuditService.java +++ b/src/main/java/com/example/demo/sevice/AuditService.java @@ -11,6 +11,7 @@ import java.util.List; public interface AuditService { int add (Audit audit); int edit(Audit audit); + int goldedit(Audit audit) throws Exception; List search(Audit audit) ; PageInfo searchForPage(Integer pageNum, Integer pageSize, Audit audit); List searchForDetail(ConsumeDetail consumeDetail); From 367ba4a94d3ae420255fba37f75f702bb70622ed Mon Sep 17 00:00:00 2001 From: lv123 Date: Tue, 17 Dec 2024 11:05:41 +0800 Subject: [PATCH 3/5] =?UTF-8?q?12.17=20=20=E5=B7=A5=E4=BD=9C=E5=8F=B0?= =?UTF-8?q?=E4=B8=AD=E9=97=B4=E9=83=A8=E5=88=86=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/mapper/StatisticsMapper.java | 2 +- .../demo/serviceImpl/StatisticsServiceImpl.java | 137 ++++++++++++++------- 2 files changed, 96 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/example/demo/mapper/StatisticsMapper.java b/src/main/java/com/example/demo/mapper/StatisticsMapper.java index 6810d6f..80d0b2f 100644 --- a/src/main/java/com/example/demo/mapper/StatisticsMapper.java +++ b/src/main/java/com/example/demo/mapper/StatisticsMapper.java @@ -615,7 +615,7 @@ List getMediuPayCoin1(SumCoin sumCoin); "SELECT ad.area,", " ad.store,", " SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END) AS rechargeSumCoin,", - " SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END) AS freeSumCoin,", + " SUM(CASE WHEN d.update_type sddfergrfdfbdgrhyrrhtgetre dfdtgEGTwqcdefwerbtgrytyrh = '消费' THEN d.free_coin ELSE 0 END) AS freeSumCoin,", " SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END) AS taskSumCoin,", " (SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END) +", " SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END) +", diff --git a/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java index 900e54d..7641406 100644 --- a/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java @@ -173,20 +173,87 @@ public class StatisticsServiceImpl implements StatisticsService { } - public List getCoinTime( SumCoin sumcoin) { - - System.out.println(sumcoin+"-------sumcoin----"); - Date searchStartTime=sumcoin.getSearchStartTime(); - Date searchEndTime=sumcoin.getSearchEndTime(); - String updateType=sumcoin.getUpdateType(); - -// //提供开始时间与结束时间 -//// if(searchStartTime!=null && searchEndTime!=null){ -// //计算两个时间点之间的差值 -// long daysBetween = ChronoUnit.DAYS.between(searchStartTime, searchEndTime); - -// 提供开始时间与结束时间 +// public List getCoinTime( SumCoin sumcoin) { +// +// System.out.println(sumcoin+"-------sumcoin----"); +// Date searchStartTime=sumcoin.getSearchStartTime(); +// Date searchEndTime=sumcoin.getSearchEndTime(); +// String updateType=sumcoin.getUpdateType(); +// +//// //提供开始时间与结束时间 +////// if(searchStartTime!=null && searchEndTime!=null){ +//// //计算两个时间点之间的差值 +//// long daysBetween = ChronoUnit.DAYS.between(searchStartTime, searchEndTime); +// +//// 提供开始时间与结束时间 +// +// +// // 使用 Calendar 清除时间和时区的影响 +// Calendar startCal = Calendar.getInstance(); +// startCal.setTime(searchStartTime); +// startCal.set(Calendar.HOUR_OF_DAY, 0); +// startCal.set(Calendar.MINUTE, 0); +// startCal.set(Calendar.SECOND, 0); +// startCal.set(Calendar.MILLISECOND, 0); +// +// Calendar endCal = Calendar.getInstance(); +// endCal.setTime(searchEndTime); +// endCal.set(Calendar.HOUR_OF_DAY, 0); +// endCal.set(Calendar.MINUTE, 0); +// endCal.set(Calendar.SECOND, 0); +// endCal.set(Calendar.MILLISECOND, 0); +// +// // 计算两个时间点之间的天数差异 +// long diffInMillies = endCal.getTimeInMillis() - startCal.getTimeInMillis(); +// long daysBetween = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS); +// +// +// //年 +// if(daysBetween>100 || searchStartTime==null & searchEndTime==null){ +// if("消费".equals(updateType)){ +// return statisticsMapper.getMediuConsumeCoin(); +// }else if("充值".equals(updateType)){ +// return statisticsMapper.getMediuPayCoin(); +// } +// +// }else { +// if ("消费".equals(updateType)) { +// return statisticsMapper.getMediuCounsumeCoinyue(searchStartTime,searchEndTime); +// } else if ("充值".equals(updateType)) { +// return statisticsMapper.getMediuPayCoinyue(searchStartTime,searchEndTime); +// } +// } +// +// +// +// +// +// +// return null; +// +// } + + public List getCoinTime(SumCoin sumcoin) { + System.out.println(sumcoin + "-------sumcoin----"); + + Date searchStartTime = sumcoin.getSearchStartTime(); + Date searchEndTime = sumcoin.getSearchEndTime(); + String updateType = sumcoin.getUpdateType(); + + // 如果开始时间和结束时间都为空,则直接返回默认统计结果 + if (searchStartTime == null && searchEndTime == null) { + if ("消费".equals(updateType)) { + return statisticsMapper.getMediuConsumeCoin(); + } else if ("充值".equals(updateType)) { + return statisticsMapper.getMediuPayCoin(); + } + return null; // 或者抛出异常,取决于业务需求 + } + // 如果只有其中一个时间为null,则可能需要处理或抛出异常,这里假设不允许这种情况 + if (searchStartTime == null || searchEndTime == null) { + throw new IllegalArgumentException("开始时间和结束时间必须同时为空或不为空"); + } // 使用 Calendar 清除时间和时区的影响 Calendar startCal = Calendar.getInstance(); @@ -207,36 +274,22 @@ public class StatisticsServiceImpl implements StatisticsService { long diffInMillies = endCal.getTimeInMillis() - startCal.getTimeInMillis(); long daysBetween = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS); - -// // 计算两个时间点之间的天数差异 -// long daysBetween = ChronoUnit.DAYS.between(searchStartTime, searchEndTime); -// //年 - if(daysBetween>100){ - if("消费".equals(updateType)){ - return statisticsMapper.getMediuConsumeCoin(); - }else if("充值".equals(updateType)){ - return statisticsMapper.getMediuPayCoin(); - } - //周 -// }else if(daysBetween<=7 && daysBetween>=2){ -// if("消费".equals(updateType)){ -// return statisticsMapper.getMediuConsumeCoinweek(); -// }else if("充值".equals(updateType)){ -// return statisticsMapper.getMediuPayCoinweek(); -// } -// //本天 - }else { - if ("消费".equals(updateType)) { - return statisticsMapper.getMediuCounsumeCoinyue(searchStartTime,searchEndTime); - } else if ("充值".equals(updateType)) { - return statisticsMapper.getMediuPayCoinyue(searchStartTime,searchEndTime); - } + // 根据条件选择查询方法 + if (daysBetween > 100) { + if ("消费".equals(updateType)) { + return statisticsMapper.getMediuConsumeCoin(); + } else if ("充值".equals(updateType)) { + return statisticsMapper.getMediuPayCoin(); } + } else { + if ("消费".equals(updateType)) { + return statisticsMapper.getMediuCounsumeCoinyue(searchStartTime, searchEndTime); + } else if ("充值".equals(updateType)) { + return statisticsMapper.getMediuPayCoinyue(searchStartTime, searchEndTime); + } + } - - return null; - + // 如果没有匹配的updateType,返回null或抛出异常,取决于业务需求 + return null; } - - } From 193fffb37a73a4b1147cdced9e0433a742938527 Mon Sep 17 00:00:00 2001 From: lv123 Date: Tue, 17 Dec 2024 11:23:09 +0800 Subject: [PATCH 4/5] =?UTF-8?q?12.17=20=20=E5=B7=A5=E4=BD=9C=E5=8F=B0?= =?UTF-8?q?=E4=B8=AD=E9=97=B4=E9=83=A8=E5=88=86=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/demo/mapper/StatisticsMapper.java | 243 +++++++++++++++++---- .../java/com/example/demo/mapper/UserMapper.java | 4 + .../demo/serviceImpl/StatisticsServiceImpl.java | 2 +- 3 files changed, 207 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/example/demo/mapper/StatisticsMapper.java b/src/main/java/com/example/demo/mapper/StatisticsMapper.java index bef8718..4714980 100644 --- a/src/main/java/com/example/demo/mapper/StatisticsMapper.java +++ b/src/main/java/com/example/demo/mapper/StatisticsMapper.java @@ -186,6 +186,8 @@ public interface StatisticsMapper { // "ORDER BY DATE_FORMAT(create_time, '%Y-%m') DESC "}) // List getMediuPayCoin(); + + // 本年 ---充值 @Select({ "SELECT m.month,", " COALESCE(SUM(d.recharge_coin), 0) AS rechargeSumCoin,", @@ -196,7 +198,7 @@ public interface StatisticsMapper { " FROM (", " SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3", " UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7", - " UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10", + " UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11", " ) AS numbers", ") AS m", "LEFT JOIN detail d ON DATE_FORMAT(d.create_time, '%Y-%m') = m.month AND d.update_type = '充值'", @@ -205,6 +207,7 @@ public interface StatisticsMapper { }) List getMediuPayCoin(); + //本年--消费 @Select({ "SELECT m.month,", " COALESCE(SUM(d.recharge_coin), 0) AS rechargeSumCoin,", @@ -215,7 +218,7 @@ public interface StatisticsMapper { " FROM (", " SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3", " UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7", - " UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10", + " UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11", " ) AS numbers", ") AS m", "LEFT JOIN detail d ON DATE_FORMAT(d.create_time, '%Y-%m') = m.month AND d.update_type = '消费'", @@ -223,6 +226,183 @@ public interface StatisticsMapper { "ORDER BY m.month DESC" }) List getMediuConsumeCoin(); + // 本月 ---充值 +// @Select({ +// "SELECT DATE(d.create_time) as day,", +// " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,", +// " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,", +// " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin", +// "FROM detail d", +// "WHERE d.update_type = '充值'", +// " AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", +// "GROUP BY DATE(d.create_time)", +// "ORDER BY DATE(d.create_time)" +// }) +// List getMediuPayCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); + + @Select({ + "SELECT m.day,", + " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin", + "FROM (", + " SELECT DATE_ADD(#{searchStartTime}, INTERVAL n DAY) AS day", + " FROM (", + " SELECT a.N + b.N * 10 AS n", + " FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a,", + " (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b", + " ) numbers", + " WHERE DATE_ADD(#{searchStartTime}, INTERVAL n DAY) <= #{searchEndTime}", + ") m", + "LEFT JOIN detail d ON DATE(d.create_time) = m.day AND d.update_type = '充值'", + "GROUP BY m.day", + "ORDER BY m.day" + }) + List getMediuPayCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); + + + @Select({ + "SELECT m.day,", + " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin", + "FROM (", + " SELECT DATE_ADD(#{searchStartTime}, INTERVAL n DAY) AS day", + " FROM (", + " SELECT a.N + b.N * 10 AS n", + " FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a,", + " (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b", + " ) numbers", + " WHERE DATE_ADD(#{searchStartTime}, INTERVAL n DAY) <= #{searchEndTime}", + ") m", + "LEFT JOIN detail d ON DATE(d.create_time) = m.day AND d.update_type = '消费'", + "GROUP BY m.day", + "ORDER BY m.day" + }) + + List getMediuCounsumeCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); + //本周--充值 + @Select({ + "SELECT", + " CASE DAYOFWEEK(m.day)", + " WHEN 2 THEN '星期一'", + " WHEN 3 THEN '星期二'", + " WHEN 4 THEN '星期三'", + " WHEN 5 THEN '星期四'", + " WHEN 6 THEN '星期五'", + " WHEN 7 THEN '星期六'", + " WHEN 1 THEN '星期天'", + " END AS dayofweek,", + " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin", + "FROM (", + " SELECT DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) + INTERVAL n DAY AS day", + " FROM (SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6) numbers", + ") m", + "LEFT JOIN detail d ON DATE(d.create_time) = m.day AND d.update_type = '充值'", + "GROUP BY m.day", + "ORDER BY m.day" + }) + + List getMediuPayCoinweek(); + //本周--消费 + @Select({ + "SELECT", + " CASE DAYOFWEEK(m.day)", + " WHEN 2 THEN '星期一'", + " WHEN 3 THEN '星期二'", + " WHEN 4 THEN '星期三'", + " WHEN 5 THEN '星期四'", + " WHEN 6 THEN '星期五'", + " WHEN 7 THEN '星期六'", + " WHEN 1 THEN '星期天'", + " END AS dayofweek,", + " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin", + "FROM (", + " SELECT DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) + INTERVAL n DAY AS day", + " FROM (SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6) numbers", + ") m", + "LEFT JOIN detail d ON DATE(d.create_time) = m.day AND d.update_type = '消费'", + "GROUP BY m.day", + "ORDER BY m.day" + }) + + List getMediuConsumeCoinweek(); +//今天--消费充值 + + + + @Select({ + "SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,", + " NOW() AS currentTimestamp,", + " SUM(recharge_coin) AS rechargeSumCoin,", + " SUM(free_coin) AS freeSumCoin,", + " SUM(task_coin) AS taskSumCoin", + "FROM `detail`", + "WHERE DATE(create_time) = CURDATE() AND update_type = '充值'" + }) + List getMediuPayCoinday(); + + + @Select({ + "SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,", + " NOW() AS currentTimestamp,", + " SUM(recharge_coin) AS rechargeSumCoin,", + " SUM(free_coin) AS freeSumCoin,", + " SUM(task_coin) AS taskSumCoin", + "FROM `detail`", + "WHERE DATE(create_time) = CURDATE() AND update_type = '消费'" + }) + + List getMediuConsumeCoinday(); + + //给定时间段--消费充值 + @Select({ + "SELECT m.day,", + " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin", + "FROM (", + " SELECT DATE_ADD(#{searchStartTime}, INTERVAL n DAY) AS day", + " FROM (", + " SELECT a.N + b.N * 10 AS n", + " FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a,", + " (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b", + " ) numbers", + " WHERE DATE_ADD(#{searchStartTime}, INTERVAL n DAY) <= #{searchEndTime}", + ") m", + "LEFT JOIN detail d ON DATE(d.create_time) = m.day AND d.update_type = '充值'", + "GROUP BY m.day", + "ORDER BY m.day" + }) + List getMediuPayCoin1(SumCoin sumCoin); + + @Select({ + "SELECT m.day,", + " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,", + " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin", + "FROM (", + " SELECT DATE_ADD(#{searchStartTime}, INTERVAL n DAY) AS day", + " FROM (", + " SELECT a.N + b.N * 10 AS n", + " FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a,", + " (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b", + " ) numbers", + " WHERE DATE_ADD(#{searchStartTime}, INTERVAL n DAY) <= #{searchEndTime}", + ") m", + "LEFT JOIN detail d ON DATE(d.create_time) = m.day AND d.update_type = '消费'", + "GROUP BY m.day", + "ORDER BY m.day" + }) + List getMediuConsumeCoin2(SumCoin sumCoin); + + + + @Select({"SELECT today.jwcode," , "today.rechargeSumCoin AS todayRecharge," , @@ -268,47 +448,26 @@ public interface StatisticsMapper { - @Select({ - "SELECT m.month,", - " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,", - " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,", - " COALESCE(SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin", - "FROM (", - " SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL n MONTH), '%Y-%m') AS month", - " FROM (", - " SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3", - " UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7", - " UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10", - " ) AS numbers", - ") AS m", - "LEFT JOIN detail d ON DATE_FORMAT(d.create_time, '%Y-%m') = m.month", - "", - "and detail.create_time between #{searchStartTime} and #{searchEndTime}", - "", - "GROUP BY m.month", - "ORDER BY m.month DESC" - }) - List getMediu(); + @Select({ - "SELECT m.month,", + "SELECT m.week,", " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END), 0) AS xrechargeSumCoin,", " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END), 0) AS xfreeSumCoin,", " COALESCE(SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END), 0) AS xtaskSumCoin", "FROM (", - " SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL n MONTH), '%Y-%m') AS month", + " SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL n WEEK), '%Y-%u') AS week", " FROM (", " SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3", - " UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7", - " UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10", + " UNION ALL SELECT 4 UNION ALL SELECT 5", " ) AS numbers", ") AS m", - "LEFT JOIN detail d ON DATE_FORMAT(d.create_time, '%Y-%m') = m.month", + "LEFT JOIN detail d ON DATE_FORMAT(d.create_time, '%Y-%u') = m.week", "", - "and detail.create_time between #{searchStartTime} and #{searchEndTime}", + "AND d.create_time BETWEEN #{searchStartTime} AND #{searchEndTime}", "", - "GROUP BY m.month", - "ORDER BY m.month DESC" + "GROUP BY m.week", + "ORDER BY m.week DESC" }) List getMediu2(); @@ -326,7 +485,7 @@ public interface StatisticsMapper { "FROM detail d", "right JOIN admin ad ON ad.admin_id = d.admin_id", "", - "and d.create_time between #{searchStartTime} and #{searchEndTime}", + "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", "", "GROUP BY ad.area, ad.store", "order by freeSumCoin desc", @@ -346,7 +505,7 @@ public interface StatisticsMapper { "FROM detail d", "right JOIN admin ad ON ad.admin_id = d.admin_id", "", - "and d.create_time between #{searchStartTime} and #{searchEndTime}", + "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", "", "GROUP BY ad.area, ad.store", "order by rechargeSumCoin desc", @@ -366,7 +525,7 @@ public interface StatisticsMapper { "FROM detail d", "right JOIN admin ad ON ad.admin_id = d.admin_id", "", - "and d.create_time between #{searchStartTime} and #{searchEndTime}", + "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", "", "GROUP BY ad.area, ad.store", "order by taskSumCoin desc", @@ -386,7 +545,7 @@ public interface StatisticsMapper { "FROM detail d", "right JOIN admin ad ON ad.admin_id = d.admin_id", "", - "and d.create_time between #{searchStartTime} and #{searchEndTime}", + "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", "", "GROUP BY ad.area, ad.store", "order by totalRechargeSum desc", @@ -406,7 +565,7 @@ public interface StatisticsMapper { "FROM detail d", "right JOIN admin ad ON ad.admin_id = d.admin_id", "", - "and d.create_time between #{searchStartTime} and #{searchEndTime}", + "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", "", "GROUP BY ad.area, ad.store", "order by freeSumCoin asc", @@ -426,7 +585,7 @@ public interface StatisticsMapper { "FROM detail d", "right JOIN admin ad ON ad.admin_id = d.admin_id", "", - "and d.create_time between #{searchStartTime} and #{searchEndTime}", + "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", "", "GROUP BY ad.area, ad.store", "order by rechargeSumCoin asc", @@ -446,7 +605,7 @@ public interface StatisticsMapper { "FROM detail d", "right JOIN admin ad ON ad.admin_id = d.admin_id", "", - "and d.create_time between #{searchStartTime} and #{searchEndTime}", + "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", "", "GROUP BY ad.area, ad.store", "order by taskSumCoin asc", @@ -458,7 +617,7 @@ public interface StatisticsMapper { "SELECT ad.area,", " ad.store,", " SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END) AS rechargeSumCoin,", - " SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END) AS freeSumCoin,", + " SUM(CASE WHEN d.update_type sddfergrfdfbdgrhyrrhtgetre dfdtgEGTwqcdefwerbtgrytyrh = '消费' THEN d.free_coin ELSE 0 END) AS freeSumCoin,", " SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END) AS taskSumCoin,", " (SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END) +", " SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END) +", @@ -466,11 +625,13 @@ public interface StatisticsMapper { "FROM detail d", "right JOIN admin ad ON ad.admin_id = d.admin_id", "", - "and d.create_time between #{searchStartTime} and #{searchEndTime}", + "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", "", "GROUP BY ad.area, ad.store", "order by totalRechargeSum asc", "" }) + List getPay(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); -} \ No newline at end of file +} + diff --git a/src/main/java/com/example/demo/mapper/UserMapper.java b/src/main/java/com/example/demo/mapper/UserMapper.java index b5a78be..6a64198 100644 --- a/src/main/java/com/example/demo/mapper/UserMapper.java +++ b/src/main/java/com/example/demo/mapper/UserMapper.java @@ -67,6 +67,10 @@ public interface UserMapper { "select * from user where name=#{name}" }) User selectByName(String name); + @Select({ + "select * from user where jwcode=#{jwcode}" + }) + User selectByJwcode(String jwcode); @Update({ "" }) List select(Activity activity); diff --git a/src/main/java/com/example/demo/mapper/StatisticsMapper.java b/src/main/java/com/example/demo/mapper/StatisticsMapper.java index 4714980..d94b3c8 100644 --- a/src/main/java/com/example/demo/mapper/StatisticsMapper.java +++ b/src/main/java/com/example/demo/mapper/StatisticsMapper.java @@ -617,7 +617,7 @@ public interface StatisticsMapper { "SELECT ad.area,", " ad.store,", " SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END) AS rechargeSumCoin,", - " SUM(CASE WHEN d.update_type sddfergrfdfbdgrhyrrhtgetre dfdtgEGTwqcdefwerbtgrytyrh = '消费' THEN d.free_coin ELSE 0 END) AS freeSumCoin,", + " SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END) AS freeSumCoin,", " SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END) AS taskSumCoin,", " (SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END) +", " SUM(CASE WHEN d.update_type = '消费' THEN d.free_coin ELSE 0 END) +", diff --git a/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java index 21c2f7d..516ad21 100644 --- a/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java @@ -162,7 +162,8 @@ public class StatisticsServiceImpl implements StatisticsService { return statisticsMapper.getPay(meium.getSearchStartTime(),meium.getSearchEndTime()); } - } else{ return null;} + } else + return null; }