金币系统后端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

637 lines
35 KiB

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.time.LocalDate;
import java.time.LocalDateTime;
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 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) +",
" 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);
}