diff --git a/src/main/java/com/example/demo/domain/vo/Meium.java b/src/main/java/com/example/demo/domain/vo/Meium.java new file mode 100644 index 0000000..7dc7f5a --- /dev/null +++ b/src/main/java/com/example/demo/domain/vo/Meium.java @@ -0,0 +1,24 @@ +package com.example.demo.domain.vo; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@NoArgsConstructor +public class Meium { + //中间-11个月 每月充值金币 + private BigDecimal rechargeSumCoin; + //中间-11个月 每月免费金币 + private BigDecimal freeSumCoin; + //中间-11个月 每月任务金币 + private BigDecimal taskSumCoin; + private BigDecimal totalRechargeSum; + private Date searchStartTime; + private Date searchEndTime; + private String updateType; + private String type; + +} diff --git a/src/main/java/com/example/demo/mapper/StatisticsMapper.java b/src/main/java/com/example/demo/mapper/StatisticsMapper.java index 80baea1..3647890 100644 --- a/src/main/java/com/example/demo/mapper/StatisticsMapper.java +++ b/src/main/java/com/example/demo/mapper/StatisticsMapper.java @@ -2,11 +2,14 @@ package com.example.demo.mapper; +import com.example.demo.domain.vo.Meium; import com.example.demo.domain.vo.Statistics; import com.example.demo.domain.vo.SumCoin; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.Date; import java.util.List; @Mapper @@ -200,16 +203,6 @@ public interface StatisticsMapper { }) List getMediuPayCoin(); -// @Select({"SELECT DATE_FORMAT(create_time, '%Y-%m') AS month," , -// " SUM(recharge_coin) AS rechargeSumCoin," , -// " SUM(free_coin) AS freeSumCoin,", -// " SUM(task_coin) AS taskSumCoin" , -// "FROM `detail`" , -// "WHERE create_time BETWEEN DATE_SUB(CURDATE(), INTERVAL 10 MONTH) AND CURDATE() AND update_type='消费'" , -// "GROUP BY DATE_FORMAT(create_time, '%Y-%m')" , -// "ORDER BY DATE_FORMAT(create_time, '%Y-%m') DESC "}) -// List getMediuConsumeCoin(); - @Select({ "SELECT m.month,", " COALESCE(SUM(d.recharge_coin), 0) AS rechargeSumCoin,", @@ -239,7 +232,7 @@ public interface StatisticsMapper { SumCoin getMess(Integer jwcode); - @Select({"SELECT ad.area," , + @Select({"SELECT ad.area,ad.store," , " SUM(d.recharge_coin) AS totalRecharge," , " SUM(d.free_coin) AS totalFree," , " SUM(d.task_coin) AS totalTask," , @@ -248,15 +241,15 @@ public interface StatisticsMapper { "INNER JOIN activity a ON d.activity_id = a.activity_id" , "INNER JOIN admin ad ON a.admin_id = ad.admin_id" , "where d.update_type='充值'", - "GROUP BY ad.area" , - "ORDER BY ad.area ASC " + "GROUP BY ad.store" , + "ORDER BY ad.store ASC " }) List getMediumAreaPay(); - @Select({"SELECT ad.area," , + @Select({"SELECT ad.area,ad.store," , " SUM(d.recharge_coin) AS totalRecharge," , " SUM(d.free_coin) AS totalFree," , " SUM(d.task_coin) AS totalTask," , @@ -264,9 +257,218 @@ public interface StatisticsMapper { "FROM detail d" , "INNER JOIN admin ad ON ad.admin_id = d.admin_id", "WHERE d.update_type = '消费'", - "GROUP BY ad.area", - "ORDER BY ad.area ASC" + + "GROUP BY ad.store", + "ORDER BY ad.store ASC" }) List getMediumAreaConsume(); + + + + @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,", + " 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", + " 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 getMediu2(); + + + @Select({ + "" + }) + List getBuyAndFree( Meium meium); + @Select({ + "" + }) + List getBuyAndRecharge( Meium meium); + @Select({ + "" + }) + List getBuyAndTask( Meium meium); + @Select({ + "" + }) + List getBuy( Meium meium); + @Select({ + "" + }) + List getPayAndFree( Meium meium); + @Select({ + "" + }) + List getPayAndRecharge( Meium meium); + @Select({ + "" + }) + List getPayAndTask( Meium meium); + @Select({ + "" + }) + List getPay( Meium meium); }