From 193fffb37a73a4b1147cdced9e0433a742938527 Mon Sep 17 00:00:00 2001 From: lv123 Date: Tue, 17 Dec 2024 11:23:09 +0800 Subject: [PATCH] =?UTF-8?q?12.17=20=20=E5=B7=A5=E4=BD=9C=E5=8F=B0=E4=B8=AD?= =?UTF-8?q?=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({ "