|
|
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 public interface StatisticsMapper { //全年累计金币数
@Select("SELECT SUM(recharge_coin) AS rechargeSumCoin, " + " SUM(free_coin) AS freeSumCoin, " + " SUM(task_coin) AS taskSumCoin, " + " (SUM(recharge_coin) + SUM(free_coin) + SUM(task_coin)) AS totalSumCoin " + "FROM `detail` " + "WHERE update_type = '充值' " + " AND create_time >= '2024-01-01' " + " AND create_time < NOW()") Statistics getTotalYearCoin();
//昨日新增
@Select("SELECT SUM(recharge_coin) AS rechargeYesterdaySumCoin, " + " SUM(free_coin) AS freeYesterdaySumCoin, " + " SUM(task_coin) AS taskYesterdaySumCoin, " + " (SUM(recharge_coin) + SUM(free_coin) + SUM(task_coin)) AS totalYesterdaySumCoin " + "FROM `detail` " + "WHERE update_type = '充值' " + " AND create_time >= CURDATE() - INTERVAL 1 DAY " + " AND create_time < CURDATE()") Statistics getYesterdayNewCoin();
//全年累计充值人数
@Select("SELECT COUNT(jwcode) AS rechargeCount " + "FROM `detail` " + "WHERE update_type = '充值' " + " AND create_time >= '2024-01-01' " + " AND create_time < NOW()") int getYearRechargeCount();
//这周充值数量
@Select("SELECT COUNT(jwcode) AS rechargeCountThisWeek " + "FROM `detail` WHERE update_type = '充值' AND YEARWEEK(create_time, 1) = YEARWEEK(CURDATE(), 1)") int getRechargeCountThisWeek();
//上周充值数量
@Select("SELECT COUNT(jwcode) AS rechargeCountLastWeek " + "FROM `detail` WHERE update_type = '充值' AND YEARWEEK(create_time, 1) = YEARWEEK(CURDATE() - INTERVAL 1 WEEK, 1)") int getRechargeCountLastWeek();
//今天的充值数量
@Select("SELECT COUNT(jwcode) AS rechargeCountToday " + "FROM `detail` WHERE update_type = '充值' AND create_time >= CURDATE()") int getRechargeCountToday();
//昨天的充值数量
@Select("SELECT COUNT(jwcode) AS rechargeCountYesterday " + "FROM `detail` WHERE update_type = '充值' AND create_time >=CURDATE() - INTERVAL 1 DAY AND create_time < CURDATE();") int getRechargeCountYesterday();
//昨日新增首充
@Select("SELECT COUNT(jwcode) AS firstRechargeCountYesterday "+ "FROM `detail` WHERE update_type = '充值' AND create_time >=CURDATE() - INTERVAL 1 DAY AND create_time < CURDATE() AND first_recharge = 1") int getFirstRechargeCountYesterday();
//金币系统消费
@Select("SELECT p.subjects AS subject, " + " d.consume_platform,"+ " SUM(d.recharge_coin) AS rechargeCoinSystemSum, " + " SUM(d.free_coin) AS freeCoinSystemSum, " + " SUM(d.task_coin) AS taskCoinSystemSum, " + " (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) AS totalCoinSystemSum " + "FROM detail d " + "JOIN product p ON d.product_id = p.product_id " + "WHERE d.update_type = '消费' AND " + " d.consume_platform = '金币系统' " + "GROUP BY p.subjects ") List<Statistics> getCoinSystemSum();
//ERP消费
@Select("SELECT p.subjects AS subject, " + " d.consume_platform,"+ " SUM(d.recharge_coin) AS rechargeERPSum, " + " SUM(d.free_coin) AS freeERPSum, " + " SUM(d.task_coin) AS taskERPSum, " + " (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) AS totalERPSum " + "FROM detail d " + "JOIN product p ON d.product_id = p.product_id " + "WHERE d.update_type = '消费' AND " + " d.consume_platform = 'ERP系统' " + "GROUP BY p.subjects ") List<Statistics> getERPSum(); // //HomilyChart消费
@Select("SELECT p.subjects AS subject, " + " d.consume_platform,"+ " SUM(d.recharge_coin) AS rechargeHomilyChartSum, " + " SUM(d.free_coin) AS freeHomilyChartSum, " + " SUM(d.task_coin) AS taskHomilyChartSum, " + " (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) AS totalHomilyChartSum " + "FROM detail d " + "JOIN product p ON d.product_id = p.product_id " + "WHERE d.update_type = '消费' AND " + " d.consume_platform = 'HomilyChart' " + "GROUP BY p.subjects ") List<Statistics> getHomilyChartSum();
// //HomilyLink消费
@Select("SELECT p.subjects AS subject, " + " d.consume_platform,"+ " SUM(d.recharge_coin) AS rechargeHomilyLinkSum, " + " SUM(d.free_coin) AS freeHomilyLinkSum, " + " SUM(d.task_coin) AS taskHomilyLinkSum, " + " (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) AS totalHomilyLinkSum " + "FROM detail d " + "JOIN product p ON d.product_id = p.product_id " + "WHERE d.update_type = '消费' AND " + " d.consume_platform = 'HomilyChart' " + "GROUP BY p.subjects ") List<Statistics> getHomilyLinkSum(); //--------------------------------------------------------------------------------------------//
@Select({"SELECT today.rechargeSumCoin AS todayRecharge," , "yesterday.rechargeSumCoin AS yesterdayRecharge," , "today.freeSumCoin AS todayFree,", "yesterday.freeSumCoin AS yesterdayFree," , "today.taskSumCoin AS todayTask," , "yesterday.taskSumCoin AS yesterdayTask," , "(today.rechargeSumCoin + today.freeSumCoin + today.taskSumCoin) AS todayTotalCoin," , "(yesterday.rechargeSumCoin + yesterday.freeSumCoin + yesterday.taskSumCoin) AS yesterdayTotalCoin," , "((today.rechargeSumCoin + today.freeSumCoin + today.taskSumCoin) -(yesterday.rechargeSumCoin + yesterday.freeSumCoin + yesterday.taskSumCoin)) AS coinDifference" , "FROM (SELECT SUM(recharge_coin) AS rechargeSumCoin, SUM(free_coin) AS freeSumCoin, SUM(task_coin) AS taskSumCoin FROM detail WHERE create_time <= CURRENT_TIMESTAMP) AS today" , "JOIN ( SELECT SUM(recharge_coin) AS rechargeSumCoin,SUM(free_coin) AS freeSumCoin, SUM(task_coin) AS taskSumCoin FROM detail WHERE DATE(create_time) <= CURDATE() - INTERVAL 1 DAY) AS yesterday"}) SumCoin getSumCoin();
@Select({"SELECT SUM(CASE WHEN update_type = '消费' THEN recharge_coin ELSE 0 END) AS yearRecharge," , "SUM(CASE WHEN update_type = '消费' THEN free_coin ELSE 0 END) AS yearFree," + " SUM(CASE WHEN update_type = '消费' THEN task_coin ELSE 0 END) AS yearTask," + " SUM(CASE WHEN update_type = '消费' THEN recharge_coin + free_coin + task_coin ELSE 0 END) AS yearConsumeCoin,", " SUM(CASE WHEN update_type = '退款' THEN recharge_coin ELSE 0 END) AS totalRechargeRefund," , " SUM(CASE WHEN update_type = '退款' THEN free_coin ELSE 0 END) AS totalFreeRefund," , " SUM(CASE WHEN update_type = '退款' THEN task_coin ELSE 0 END) AS totalTaskRefund," , " SUM(CASE WHEN update_type = '退款' THEN recharge_coin + free_coin + task_coin ELSE 0 END) AS yearRefundCoin," , " SUM(CASE WHEN update_type = '消费' THEN recharge_coin + free_coin + task_coin ELSE 0 END)+SUM(CASE WHEN update_type = '退款' THEN recharge_coin + free_coin + task_coin ELSE 0 END) AS yearsumCoin,", " SUM(CASE WHEN update_type IN ('消费', '退款') THEN recharge_coin ELSE 0 END) AS yearSumRechargeCoin,", " SUM(CASE WHEN update_type IN ('消费', '退款') THEN free_coin ELSE 0 END) AS yearSumFreeCoin,", " SUM(CASE WHEN update_type IN ('消费', '退款') THEN task_coin ELSE 0 END) AS yearSumTaskCoin", "FROM detail WHERE YEAR(create_time) = YEAR(CURRENT_DATE)" , " AND create_time <= NOW()"}) SumCoin getYearConsumeCoin();
@Select({ "SELECT IFNULL(SUM(CASE WHEN update_type = '消费' THEN recharge_coin ELSE 0 END), 0) AS todayRecharge,", " IFNULL(SUM(CASE WHEN update_type = '消费' THEN free_coin ELSE 0 END), 0) AS todayFree,", " IFNULL(SUM(CASE WHEN update_type = '消费' THEN task_coin ELSE 0 END), 0) AS todayTask,", " IFNULL(SUM(CASE WHEN update_type = '消费' THEN recharge_coin + free_coin + task_coin ELSE 0 END), 0) AS dayConsumeCoin,", " IFNULL(SUM(CASE WHEN update_type = '退款' THEN recharge_coin ELSE 0 END), 0) AS total_recharge_refund,", " IFNULL(SUM(CASE WHEN update_type = '退款' THEN free_coin ELSE 0 END), 0) AS total_free_refund,", " IFNULL(SUM(CASE WHEN update_type = '退款' THEN task_coin ELSE 0 END), 0) AS total_task_refund,", " IFNULL(SUM(CASE WHEN update_type = '退款' THEN recharge_coin + free_coin + task_coin ELSE 0 END), 0) AS dayRefundCoin,", " IFNULL(SUM(CASE WHEN update_type = '消费' THEN recharge_coin + free_coin + task_coin ELSE 0 END), 0) +", " IFNULL(SUM(CASE WHEN update_type = '退款' THEN recharge_coin + free_coin + task_coin ELSE 0 END), 0) AS daysumCoin", "FROM `detail` WHERE DATE(create_time) = CURDATE() - INTERVAL 1 DAY" }) SumCoin getDayConsumeCoin();
// @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<SumCoin> getMediuPayCoin();
// 本年 ---充值
@Select({ "SELECT m.month,", " COALESCE(SUM(d.recharge_coin), 0) AS rechargeSumCoin,", " COALESCE(SUM(d.free_coin), 0) AS freeSumCoin,", " COALESCE(SUM(d.task_coin), 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 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 = '充值'", "GROUP BY m.month", "ORDER BY m.month DESC" }) List<SumCoin> getMediuPayCoin();
//本年--消费
@Select({ "SELECT m.month,", " COALESCE(SUM(d.recharge_coin), 0) AS rechargeSumCoin,", " COALESCE(SUM(d.free_coin), 0) AS freeSumCoin,", " COALESCE(SUM(d.task_coin), 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 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 = '消费'", "GROUP BY m.month", "ORDER BY m.month DESC" }) List<SumCoin> 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<SumCoin> 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<SumCoin> 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<SumCoin> 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<SumCoin> 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<SumCoin> 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<SumCoin> 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<SumCoin> 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<SumCoin> 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<SumCoin> getMediuConsumeCoin2(SumCoin sumCoin);
@Select({"SELECT today.jwcode," , "today.rechargeSumCoin AS todayRecharge," , "today.freeSumCoin AS todayFree,", "today.taskSumCoin AS todayTask," , "(today.rechargeSumCoin + today.freeSumCoin + today.taskSumCoin) AS todayTotalCoin" , "FROM (SELECT jwcode, SUM(recharge_coin) AS rechargeSumCoin, SUM(free_coin) AS freeSumCoin, SUM(task_coin) AS taskSumCoin FROM detail WHERE create_time <= CURRENT_TIMESTAMP) AS today" , "where jwcode=#{jwcode}"}) SumCoin getMess(Integer jwcode);
@Select({"SELECT ad.area,ad.store," , " SUM(d.recharge_coin) AS totalRecharge," , " SUM(d.free_coin) AS totalFree," , " SUM(d.task_coin) AS totalTask," , " (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) AS todayTotalCoin" , "FROM detail d" , "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.store" , "ORDER BY ad.store ASC " })
List<SumCoin> getMediumAreaPay();
@Select({"SELECT ad.area,ad.store," , " SUM(d.recharge_coin) AS totalRecharge," , " SUM(d.free_coin) AS totalFree," , " SUM(d.task_coin) AS totalTask," , " (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) AS todayTotalCoin" , "FROM detail d" , "INNER JOIN admin ad ON ad.admin_id = d.admin_id", "WHERE d.update_type = '消费'",
"GROUP BY ad.store", "ORDER BY ad.store ASC" }) List<SumCoin> getMediumAreaConsume();
@Select({ "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 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", " ) AS numbers", ") AS m", "LEFT JOIN detail d ON DATE_FORMAT(d.create_time, '%Y-%u') = m.week", "<if test='searchStartTime != null and searchEndTime != null'>", "AND d.create_time BETWEEN #{searchStartTime} AND #{searchEndTime}", "</if>", "GROUP BY m.week", "ORDER BY m.week DESC" }) List<SumCoin> getMediu2();
@Select({ "<script>", "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 = '充值' 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) +", " SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END)) AS totalRechargeSum", "FROM detail d", "right JOIN admin ad ON ad.admin_id = d.admin_id", "<if test='searchStartTime != null and searchEndTime != null'>", "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", "</if>", "GROUP BY ad.area, ad.store", "order by freeSumCoin desc", "</script>" }) List<Meium> getBuyAndFree(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "<script>", "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 = '充值' 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) +", " SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END)) AS totalRechargeSum", "FROM detail d", "right JOIN admin ad ON ad.admin_id = d.admin_id", "<if test='searchStartTime != null and searchEndTime != null'>", "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", "</if>", "GROUP BY ad.area, ad.store", "order by rechargeSumCoin desc", "</script>" }) List<Meium> getBuyAndRecharge(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "<script>", "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 = '充值' 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) +", " SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END)) AS totalRechargeSum", "FROM detail d", "right JOIN admin ad ON ad.admin_id = d.admin_id", "<if test='searchStartTime != null and searchEndTime != null'>", "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", "</if>", "GROUP BY ad.area, ad.store", "order by taskSumCoin desc", "</script>" }) List<Meium> getBuyAndTask(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "<script>", "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 = '充值' 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) +", " SUM(CASE WHEN d.update_type = '充值' THEN d.task_coin ELSE 0 END)) AS totalRechargeSum", "FROM detail d", "right JOIN admin ad ON ad.admin_id = d.admin_id", "<if test='searchStartTime != null and searchEndTime != null'>", "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", "</if>", "GROUP BY ad.area, ad.store", "order by totalRechargeSum desc", "</script>" }) List<Meium> getBuy(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "<script>", "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 = '消费' 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) +", " SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END)) AS totalRechargeSum", "FROM detail d", "right JOIN admin ad ON ad.admin_id = d.admin_id", "<if test='searchStartTime != null and searchEndTime != null'>", "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", "</if>", "GROUP BY ad.area, ad.store", "order by freeSumCoin asc", "</script>" }) List<Meium> getPayAndFree(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "<script>", "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 = '消费' 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) +", " SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END)) AS totalRechargeSum", "FROM detail d", "right JOIN admin ad ON ad.admin_id = d.admin_id", "<if test='searchStartTime != null and searchEndTime != null'>", "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", "</if>", "GROUP BY ad.area, ad.store", "order by rechargeSumCoin asc", "</script>" }) List<Meium> getPayAndRecharge(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "<script>", "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 = '消费' 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) +", " SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END)) AS totalRechargeSum", "FROM detail d", "right JOIN admin ad ON ad.admin_id = d.admin_id", "<if test='searchStartTime != null and searchEndTime != null'>", "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", "</if>", "GROUP BY ad.area, ad.store", "order by taskSumCoin asc", "</script>" }) List<Meium> getPayAndTask(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); @Select({ "<script>", "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 = '消费' 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) +", " SUM(CASE WHEN d.update_type = '消费' THEN d.task_coin ELSE 0 END)) AS totalRechargeSum", "FROM detail d", "right JOIN admin ad ON ad.admin_id = d.admin_id", "<if test='searchStartTime != null and searchEndTime != null'>", "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})", "</if>", "GROUP BY ad.area, ad.store", "order by totalRechargeSum asc", "</script>" }) List<Meium> getPay(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime); }
|