金币系统后端
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.

542 lines
28 KiB

5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
  1. package com.example.demo.mapper;
  2. import com.example.demo.domain.vo.Meium;
  3. import com.example.demo.domain.vo.Statistics;
  4. import com.example.demo.domain.vo.SumCoin;
  5. import org.apache.ibatis.annotations.Mapper;
  6. import org.apache.ibatis.annotations.Param;
  7. import org.apache.ibatis.annotations.Select;
  8. import java.time.LocalDate;
  9. import java.time.LocalDateTime;
  10. import java.util.Date;
  11. import java.util.List;
  12. @Mapper
  13. public interface StatisticsMapper {
  14. List<Meium> getMeium(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
  15. //全年累计金币数
  16. @Select("SELECT SUM(recharge_coin) / 100 AS rechargeSumCoin, " +
  17. " SUM(free_coin) / 100 AS freeSumCoin, " +
  18. " SUM(task_coin) / 100 AS taskSumCoin, " +
  19. " (SUM(recharge_coin) + SUM(free_coin) + SUM(task_coin))/ 100 AS totalSumCoin " +
  20. "FROM `detail_y` " +
  21. "WHERE update_type = '0' " +
  22. " AND create_time >= CONCAT(YEAR(CURDATE()), '-01-01') " +
  23. " AND create_time < NOW()")
  24. Statistics getTotalYearCoin();
  25. //免费金币分类
  26. @Select("SELECT SUM(free_6) / 100 AS free6SumCoin,SUM(free_12) / 100 AS free12SumCoin From user_gold")
  27. Statistics getFreeCoinTotal();
  28. //昨日新增
  29. @Select("SELECT SUM(recharge_coin) / 100 AS rechargeYesterdaySumCoin, " +
  30. " SUM(free_coin) / 100 AS freeYesterdaySumCoin, " +
  31. " SUM(task_coin) / 100 AS taskYesterdaySumCoin, " +
  32. " (SUM(recharge_coin) + SUM(free_coin) + SUM(task_coin))/ 100 AS totalYesterdaySumCoin " +
  33. "FROM `detail_y` " +
  34. "WHERE update_type = '0' " +
  35. " AND create_time >= CURDATE() - INTERVAL 1 DAY " +
  36. " AND create_time < CURDATE()")
  37. Statistics getYesterdayNewCoin();
  38. //全年累计0人数
  39. @Select("SELECT COUNT(DISTINCT jwcode) AS rechargeCount " +
  40. "FROM `detail_y` " +
  41. "WHERE update_type = '0' " +
  42. " AND create_time >= CONCAT(YEAR(CURDATE()), '-01-01')" +
  43. " AND create_time < NOW()")
  44. int getYearRechargeCount();
  45. //这周0数量
  46. @Select("SELECT COUNT(DISTINCT jwcode) AS rechargeCountThisWeek " +
  47. "FROM `detail_y` WHERE update_type = '0' AND YEARWEEK(create_time, 1) = YEARWEEK(CURDATE(), 1)")
  48. int getRechargeCountThisWeek();
  49. //上周0数量
  50. @Select("SELECT COUNT(DISTINCT jwcode) AS rechargeCountLastWeek " +
  51. "FROM `detail_y` WHERE update_type = '0' AND YEARWEEK(create_time, 1) = YEARWEEK(CURDATE() - INTERVAL 1 WEEK, 1)")
  52. int getRechargeCountLastWeek();
  53. //今天的0数量
  54. @Select("SELECT COUNT(DISTINCT jwcode) AS rechargeCountToday " +
  55. "FROM `detail_y` WHERE update_type = '0' AND create_time >= CURDATE()")
  56. int getRechargeCountToday();
  57. //昨天的0数量
  58. @Select("SELECT COUNT(DISTINCT jwcode) AS rechargeCountYesterday " +
  59. "FROM `detail_y` WHERE update_type = '0' AND create_time >=CURDATE() - INTERVAL 1 DAY AND create_time < CURDATE();")
  60. int getRechargeCountYesterday();
  61. //昨日新增首充
  62. @Select("SELECT COUNT(DISTINCT jwcode) AS firstRechargeCountYesterday "+
  63. "FROM `detail_y` WHERE update_type = '0' AND create_time >=CURDATE() - INTERVAL 1 DAY AND create_time < CURDATE() AND first_recharge = 1")
  64. int getFirstRechargeCountYesterday();
  65. //金币系统1
  66. @Select("SELECT p.subjects AS subject, " +
  67. " d.consume_platform,"+
  68. " SUM(d.recharge_coin) / 100 AS rechargeCoinSystemSum, " +
  69. " SUM(d.free_coin) / 100 AS freeCoinSystemSum, " +
  70. " SUM(d.task_coin) / 100 AS taskCoinSystemSum, " +
  71. " (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin))/ 100 AS totalCoinSystemSum " +
  72. "FROM detail_y d " +
  73. "JOIN product p ON d.product_id = p.product_id " +
  74. "WHERE d.update_type = '1' AND " +
  75. " d.consume_platform = '金币系统' " +
  76. "GROUP BY p.subjects ")
  77. List<Statistics> getCoinSystemSum();
  78. //ERP1
  79. @Select("SELECT p.subjects AS subject, " +
  80. " d.consume_platform,"+
  81. " SUM(d.recharge_coin) / 100 AS rechargeERPSum, " +
  82. " SUM(d.free_coin) / 100 AS freeERPSum, " +
  83. " SUM(d.task_coin) / 100 AS taskERPSum, " +
  84. " (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin))/ 100 AS totalERPSum " +
  85. "FROM detail_y d " +
  86. "JOIN product p ON d.product_id = p.product_id " +
  87. "WHERE d.update_type = '1' AND " +
  88. " d.consume_platform = 'ERP系统' " +
  89. "GROUP BY p.subjects ")
  90. List<Statistics> getERPSum();
  91. // //HomilyChart1
  92. @Select("SELECT p.subjects AS subject, " +
  93. " d.consume_platform,"+
  94. " SUM(d.recharge_coin) / 100 AS rechargeHomilyChartSum, " +
  95. " SUM(d.free_coin) / 100 AS freeHomilyChartSum, " +
  96. " SUM(d.task_coin) / 100 AS taskHomilyChartSum, " +
  97. " (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) / 100 AS totalHomilyChartSum " +
  98. "FROM detail_y d " +
  99. "JOIN product p ON d.product_id = p.product_id " +
  100. "WHERE d.update_type = '1' AND " +
  101. " d.consume_platform = 'HomilyChart' " +
  102. "GROUP BY p.subjects ")
  103. List<Statistics> getHomilyChartSum();
  104. // //HomilyLink1
  105. @Select("SELECT p.subjects AS subject, " +
  106. " d.consume_platform,"+
  107. " SUM(d.recharge_coin) / 100 AS rechargeHomilyLinkSum, " +
  108. " SUM(d.free_coin) / 100 AS freeHomilyLinkSum, " +
  109. " SUM(d.task_coin) / 100 AS taskHomilyLinkSum, " +
  110. " (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin) / 100) AS totalHomilyLinkSum " +
  111. "FROM detail_y d " +
  112. "JOIN product p ON d.product_id = p.product_id " +
  113. "WHERE d.update_type = '1' AND " +
  114. " d.consume_platform = 'HomilyChart' " +
  115. "GROUP BY p.subjects ")
  116. List<Statistics> getHomilyLinkSum();
  117. //--------------------------------------------------------------------------------------------//
  118. @Select({"SELECT today.rechargeSumCoin / 100 AS todayRecharge," ,
  119. "yesterday.rechargeSumCoin / 100 AS yesterdayRecharge," ,
  120. "today.freeSumCoin / 100 AS todayFree,",
  121. "yesterday.freeSumCoin / 100 AS yesterdayFree," ,
  122. "today.taskSumCoin / 100 AS todayTask," ,
  123. "yesterday.taskSumCoin / 100 AS HsterdayTask," ,
  124. "(today.rechargeSumCoin + today.freeSumCoin + today.taskSumCoin) / 100 AS todayTotalCoin," ,
  125. "(yesterday.rechargeSumCoin + yesterday.freeSumCoin + yesterday.taskSumCoin) / 100 AS yesterdayTotalCoin," ,
  126. "((today.rechargeSumCoin + today.freeSumCoin + today.taskSumCoin) -(yesterday.rechargeSumCoin + yesterday.freeSumCoin + yesterday.taskSumCoin)) / 100 AS coinDifference" ,
  127. "FROM (SELECT SUM(recharge_coin) AS rechargeSumCoin, SUM(free_coin) AS freeSumCoin, SUM(task_coin) AS taskSumCoin FROM detail_y WHERE create_time <= CURRENT_TIMESTAMP) AS today" ,
  128. "JOIN ( SELECT SUM(recharge_coin) AS rechargeSumCoin,SUM(free_coin) AS freeSumCoin, SUM(task_coin) AS taskSumCoin FROM detail_y WHERE DATE(create_time) <= CURDATE() - INTERVAL 1 DAY) AS yesterday"})
  129. SumCoin getSumCoin();
  130. @Select({"SELECT SUM(CASE WHEN update_type = '1' THEN recharge_coin ELSE 0 END) / 100 AS yearRecharge," ,
  131. "SUM(CASE WHEN update_type = '1' THEN free_coin ELSE 0 END) / 100 AS yearFree," +
  132. " SUM(CASE WHEN update_type = '1' THEN task_coin ELSE 0 END) / 100 AS yearTask," +
  133. " SUM(CASE WHEN update_type = '1' THEN recharge_coin + free_coin + task_coin ELSE 0 END) / 100 AS yearConsumeCoin,",
  134. " SUM(CASE WHEN update_type = '2' THEN recharge_coin ELSE 0 END) / 100 AS totalRechargeRefund," ,
  135. " SUM(CASE WHEN update_type = '2' THEN free_coin ELSE 0 END) / 100 AS totalFreeRefund," ,
  136. " SUM(CASE WHEN update_type = '2' THEN task_coin ELSE 0 END) / 100 AS totalTaskRefund," ,
  137. " SUM(CASE WHEN update_type = '2' THEN recharge_coin + free_coin + task_coin ELSE 0 END) / 100 AS yearRefundCoin," ,
  138. " SUM(CASE WHEN update_type = '1' THEN recharge_coin + free_coin + task_coin ELSE 0 END) / 100+SUM(CASE WHEN update_type = '2' THEN recharge_coin + free_coin + task_coin ELSE 0 END) / 100 AS yearsumCoin,",
  139. " SUM(CASE WHEN update_type IN ('1', '2') THEN recharge_coin ELSE 0 END) / 100 AS yearSumRechargeCoin,",
  140. " SUM(CASE WHEN update_type IN ('1', '2') THEN free_coin ELSE 0 END) / 100 AS yearSumFreeCoin,",
  141. " SUM(CASE WHEN update_type IN ('1', '2') THEN task_coin ELSE 0 END) / 100 AS yearSumTaskCoin",
  142. "FROM detail_y WHERE YEAR(create_time) = YEAR(CURRENT_DATE)" ,
  143. " AND create_time <= NOW()"})
  144. SumCoin getYearConsumeCoin();
  145. @Select({
  146. "SELECT IFNULL(SUM(CASE WHEN update_type = '1' THEN recharge_coin ELSE 0 END) / 100, 0) AS todayRecharge,",
  147. " IFNULL(SUM(CASE WHEN update_type = '1' THEN free_coin ELSE 0 END) / 100, 0) AS todayFree,",
  148. " IFNULL(SUM(CASE WHEN update_type = '1' THEN task_coin ELSE 0 END) / 100, 0) AS todayTask,",
  149. " IFNULL(SUM(CASE WHEN update_type = '1' THEN recharge_coin + free_coin + task_coin ELSE 0 END) / 100, 0) AS dayConsumeCoin,",
  150. " IFNULL(SUM(CASE WHEN update_type = '2' THEN recharge_coin ELSE 0 END) / 100, 0) AS total_recharge_refund,",
  151. " IFNULL(SUM(CASE WHEN update_type = '2' THEN free_coin ELSE 0 END) / 100, 0) AS total_free_refund,",
  152. " IFNULL(SUM(CASE WHEN update_type = '2' THEN task_coin ELSE 0 END) / 100, 0) AS total_task_refund,",
  153. " IFNULL(SUM(CASE WHEN update_type = '2' THEN recharge_coin + free_coin + task_coin ELSE 0 END) / 100, 0) AS dayRefundCoin,",
  154. " IFNULL(SUM(CASE WHEN update_type = '1' THEN recharge_coin + free_coin + task_coin ELSE 0 END) / 100, 0) +",
  155. " IFNULL(SUM(CASE WHEN update_type = '2' THEN recharge_coin + free_coin + task_coin ELSE 0 END) / 100, 0) AS daysumCoin",
  156. "FROM `detail_y` WHERE DATE(create_time) = CURDATE() - INTERVAL 1 DAY"
  157. })
  158. SumCoin getDayConsumeCoin();
  159. // @Select({"SELECT DATE_FORMAT(create_time, '%Y-%m') AS month," ,
  160. // " SUM(recharge_coin) AS rechargeSumCoin," ,
  161. // " SUM(free_coin) AS freeSumCoin,",
  162. // " SUM(task_coin) AS taskSumCoin" ,
  163. // "FROM `detail_y`" ,
  164. // "WHERE create_time BETWEEN DATE_SUB(CURDATE(), INTERVAL 10 MONTH) AND CURDATE() AND update_type='0'" ,
  165. // "GROUP BY DATE_FORMAT(create_time, '%Y-%m')" ,
  166. // "ORDER BY DATE_FORMAT(create_time, '%Y-%m') DESC "})
  167. // List<SumCoin> getMediuPayCoin();
  168. // 本年 ---0
  169. // @Select({
  170. // "select DATE_FORMAT(create_time,'%Y-%m') as month,sum(recharge_coin) AS rechargeSumCoin,sum(free_coin) as freeSumCoin ,sum(task_coin) as taskSumCoin " +
  171. // "from detail_y where datediff(create_time,#{searchStartTime})>=0 " +
  172. // "and datediff(create_time,#{searchEndTime})<=0 and update_type = '0'" +
  173. // "GROUP BY month ORDER BY month asc"
  174. // })
  175. @Select({
  176. "<script>",
  177. "SELECT DATE_FORMAT(create_time, '%Y-%m') AS month," ,
  178. " SUM(recharge_coin) / 100 AS rechargeSumCoin," ,
  179. " SUM(free_coin) / 100 AS freeSumCoin," ,
  180. " SUM(task_coin) / 100 AS taskSumCoin" ,
  181. " FROM detail_y" ,
  182. " WHERE update_type = '0'" ,
  183. "<if test='searchStartTime != null and searchEndTime != null'>",
  184. " AND create_time BETWEEN #{searchStartTime} AND #{searchEndTime}",
  185. "</if>",
  186. "GROUP BY month ORDER BY month ASC",
  187. "</script>"
  188. })
  189. List<SumCoin> getMediuPayCoin(@Param("searchStartTime") Date StartTime, @Param("searchEndTime") Date searchEndTime);
  190. //本年--1
  191. // @Select({
  192. // "select DATE_FORMAT(create_time,'%Y-%m') as month,sum(recharge_coin) AS rechargeSumCoin,sum(free_coin) as freeSumCoin ,sum(task_coin) as taskSumCoin " +
  193. // "from detail_y where datediff(create_time,#{searchStartTime})>=0 " +
  194. // "and datediff(create_time,#{searchEndTime})<=0 and update_type = '1'" +
  195. // "GROUP BY month ORDER BY month asc"
  196. // })
  197. @Select({
  198. "<script>",
  199. "SELECT DATE_FORMAT(create_time, '%Y-%m') AS month,",
  200. " SUM(recharge_coin) / 100 AS rechargeSumCoin,",
  201. " SUM(free_coin) / 100 AS freeSumCoin,",
  202. " SUM(task_coin) / 100 AS taskSumCoin",
  203. "FROM detail_y",
  204. "WHERE update_type = '1'",
  205. "<if test='searchStartTime != null and searchEndTime != null'>",
  206. " AND create_time BETWEEN #{searchStartTime} AND #{searchEndTime}",
  207. "</if>",//之前没有加动态SQL,如果前端传递空数据库会查不到
  208. "GROUP BY month",
  209. "ORDER BY month ASC",
  210. "</script>"
  211. })
  212. List<SumCoin> getMediuConsumeCoin(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
  213. // 本月 ---0
  214. @Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) / 100 AS rechargeSumCoin,sum(free_coin) / 100 as freeSumCoin ,sum(task_coin) / 100 as taskSumCoin " +
  215. "from detail_y where datediff(create_time,#{searchStartTime})>=0 " +
  216. "and datediff(create_time,#{searchEndTime})<=0 and update_type = 0 group by DATE_FORMAT(create_time,'%m-%d')"
  217. })
  218. List<SumCoin> getMediuPayCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
  219. @Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) / 100 AS rechargeSumCoin,sum(free_coin) / 100 as freeSumCoin ,sum(task_coin) / 100 as taskSumCoin " +
  220. "from detail_y where datediff(create_time,#{searchStartTime})>=0 " +
  221. "and datediff(create_time,#{searchEndTime})<=0 and update_type = 1 group by DATE_FORMAT(create_time,'%m-%d')"
  222. })
  223. List<SumCoin> getMediuCounsumeCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
  224. @Select({"SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,",
  225. "IFNULL(SUM(recharge_coin) / 100, 0) AS rechargeSumCoin,",
  226. "IFNULL(SUM(free_coin) / 100, 0) AS freeSumCoin,",
  227. "IFNULL(SUM(task_coin) / 100, 0) AS taskSumCoin",
  228. "FROM detail_y",
  229. "WHERE DATE(create_time) = #{searchEndTime}",
  230. "AND update_type = #{updateType}",
  231. "GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')"
  232. })
  233. List<SumCoin> getMediuPayCoinday(@Param("searchEndTime") Date searchEndTime, @Param("updateType") Integer updateType);
  234. @Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) AS rechargeSumCoin,sum(free_coin) as freeSumCoin ,sum(task_coin) as taskSumCoin " +
  235. "from detail_y where create_time=#{searchStartTime} and update_type = 1 group by DATE_FORMAT(create_time,'%m-%d')"
  236. })
  237. List<SumCoin> getMediuConsumeCoinday1(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
  238. @Select({
  239. "SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,",
  240. "IFNULL(SUM(recharge_coin) / 100, 0) AS rechargeSumCoin,",
  241. "IFNULL(SUM(free_coin) / 100, 0) AS freeSumCoin,",
  242. "IFNULL(SUM(task_coin) / 100, 0) AS taskSumCoin",
  243. "FROM detail_y",
  244. "WHERE DATE(create_time) = #{searchEndTime}",
  245. "AND update_type = #{updateType}",
  246. "GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')"
  247. })
  248. List<SumCoin> getMediuConsumeCoinday(@Param("searchEndTime") Date searchEndTime, @Param("updateType") Integer updateType);
  249. //给定时间段--10
  250. @Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) / 100 AS rechargeSumCoin,sum(free_coin) / 100 as freeSumCoin ,sum(task_coin) / 100 as taskSumCoin " +
  251. "from detail_y where recharge_coin>0 and datediff(create_time,#{searchStartTime})>=0 " +
  252. "and datediff(create_time,#{searchEndTime})<=0 and update_type = '0' group by DATE_FORMAT(create_time,'%m-%d')"
  253. })
  254. List<SumCoin> getMediuPayCoin1(SumCoin sumCoin);
  255. @Select({
  256. "SELECT m.day,",
  257. " COALESCE(SUM(CASE WHEN d.update_type = '1' THEN d.recharge_coin ELSE 0 END) / 100, 0) AS rechargeSumCoin,",
  258. " COALESCE(SUM(CASE WHEN d.update_type = '1' THEN d.free_coin ELSE 0 END) / 100, 0) AS freeSumCoin,",
  259. " COALESCE(SUM(CASE WHEN d.update_type = '1' THEN d.task_coin ELSE 0 END) / 100, 0) AS taskSumCoin",
  260. "FROM (",
  261. " SELECT DATE_ADD(#{searchStartTime}, INTERVAL n DAY) AS day",
  262. " FROM (",
  263. " SELECT a.N + b.N * 10 AS n",
  264. " 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,",
  265. " (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",
  266. " ) numbers",
  267. " WHERE DATE_ADD(#{searchStartTime}, INTERVAL n DAY) <= #{searchEndTime}",
  268. ") m",
  269. "LEFT JOIN detail_y d ON DATE(d.create_time) = m.day AND d.update_type = '1'",
  270. "GROUP BY m.day",
  271. "ORDER BY m.day"
  272. })
  273. List<SumCoin> getMediuConsumeCoin2(SumCoin sumCoin);
  274. @Select({"SELECT today.jwcode," ,
  275. "today.rechargeSumCoin / 100 AS todayRecharge," ,
  276. "today.freeSumCoin / 100 AS todayFree,",
  277. "today.taskSumCoin / 100 AS todayTask," ,
  278. "(today.rechargeSumCoin + today.freeSumCoin + today.taskSumCoin) / 100 AS todayTotalCoin" ,
  279. "FROM (SELECT jwcode, SUM(recharge_coin) AS rechargeSumCoin, SUM(free_coin) AS freeSumCoin, SUM(task_coin) AS taskSumCoin FROM detail_y WHERE create_time <= CURRENT_TIMESTAMP) AS today" ,
  280. "where jwcode=#{jwcode}"})
  281. SumCoin getMess(Integer jwcode);
  282. @Select({"SELECT u.area " ,
  283. " SUM(d.recharge_coin) / 100 AS totalRecharge," ,
  284. " SUM(d.free_coin) / 100 AS totalFree," ,
  285. " SUM(d.task_coin) / 100 AS totalTask," ,
  286. " (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin) / 100) AS todayTotalCoin" ,
  287. "FROM detail_y d" ,
  288. "INNER JOIN activity a ON d.activity_id = a.activity_id" ,
  289. "INNER JOIN user u ON a.user_id = u.user_id" ,
  290. "where d.update_type='0'",
  291. "GROUP BY u.area" ,
  292. "ORDER BY u.area ASC "
  293. })
  294. List<SumCoin> getMediumAreaPay();
  295. @Select({"SELECT u.area, " ,
  296. " SUM(d.recharge_coin) / 100 AS totalRecharge," ,
  297. " SUM(d.free_coin) / 100 AS totalFree," ,
  298. " SUM(d.task_coin) / 100 AS totalTask," ,
  299. " (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin) / 100) AS todayTotalCoin" ,
  300. "FROM detail_y d" ,
  301. "INNER JOIN user u ON u.jwcode = d.jwcode",
  302. "WHERE d.update_type = '1'",
  303. "GROUP BY u.area",
  304. "ORDER BY u.area ASC"
  305. })
  306. List<SumCoin> getMediumAreaConsume();
  307. @Select({
  308. "SELECT m.week,",
  309. " COALESCE(SUM(CASE WHEN d.update_type = '1' THEN d.recharge_coin ELSE 0 END) / 100 0) AS xrechargeSumCoin,",
  310. " COALESCE(SUM(CASE WHEN d.update_type = '1' THEN d.free_coin ELSE 0 END) / 100, 0) AS xfreeSumCoin,",
  311. " COALESCE(SUM(CASE WHEN d.update_type = '1' THEN d.task_coin ELSE 0 END) / 100, 0) AS xtaskSumCoin",
  312. "FROM (",
  313. " SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL n WEEK), '%Y-%u') AS week",
  314. " FROM (",
  315. " SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3",
  316. " UNION ALL SELECT 4 UNION ALL SELECT 5",
  317. " ) AS numbers",
  318. ") AS m",
  319. "LEFT JOIN detail_y d ON DATE_FORMAT(d.create_time, '%Y-%u') = m.week",
  320. "<if test='searchStartTime != null and searchEndTime != null'>",
  321. "AND d.create_time BETWEEN #{searchStartTime} AND #{searchEndTime}",
  322. "</if>",
  323. "GROUP BY m.week",
  324. "ORDER BY m.week DESC"
  325. })
  326. List<SumCoin> getMediu2();
  327. @Select({
  328. "<script>",
  329. "SELECT u.area,",
  330. " SUM(d.recharge_coin) / 100 AS rechargeSumCoin,",
  331. " SUM(d.free_coin) / 100 AS freeSumCoin,",
  332. " SUM(d.task_coin) / 100 AS taskSumCoin,",
  333. " (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.update_type = '0')) / 100 AS totalRechargeSum",
  334. "FROM detail_y d",
  335. "left JOIN user u ON u.jwcode = d.jwcode",
  336. "WHERE update_type = 0 ",
  337. "<if test='searchStartTime != null and searchEndTime != null'>",
  338. "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
  339. "</if>",
  340. "GROUP BY u.area",
  341. "order by freeSumCoin desc",
  342. "</script>"
  343. })
  344. List<Meium> getBuyAndFree(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
  345. @Select({
  346. "<script>",
  347. "SELECT u.area,",
  348. " SUM(d.recharge_coin) / 100 AS rechargeSumCoin,",
  349. " SUM(d.free_coin) / 100 AS freeSumCoin,",
  350. " SUM(d.task_coin) / 100 AS taskSumCoin,",
  351. " (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.task_coin)) / 100 AS totalRechargeSum",
  352. "FROM detail_y d",
  353. "left JOIN user u ON u.jwcode = d.jwcode",
  354. "WHERE update_type = 0 ",
  355. "<if test='searchStartTime != null and searchEndTime != null'>",
  356. "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
  357. "</if>",
  358. "GROUP BY u.area",
  359. "order by rechargeSumCoin desc",
  360. "</script>"
  361. })
  362. List<Meium> getBuyAndRecharge(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
  363. @Select({
  364. "<script>",
  365. "SELECT u.area,",
  366. " SUM(d.recharge_coin) / 100 AS rechargeSumCoin,",
  367. " SUM(d.free_coin) / 100 AS freeSumCoin,",
  368. " SUM(d.task_coin) / 100 AS taskSumCoin,",
  369. " (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.task_coin)) / 100 AS totalRechargeSum",
  370. "FROM detail_y d",
  371. "left JOIN user u ON u.jwcode = d.jwcode",
  372. "WHERE update_type = 0 ",
  373. "<if test='searchStartTime != null and searchEndTime != null'>",
  374. "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
  375. "</if>",
  376. "GROUP BY u.area",
  377. "order by taskSumCoin desc",
  378. "</script>"
  379. })
  380. List<Meium> getBuyAndTask(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
  381. @Select({
  382. "<script>",
  383. "SELECT d.area,",
  384. " SUM(d.recharge_coin) / 100 AS rechargeSumCoin,",
  385. " SUM(d.free_coin) / 100 AS freeSumCoin,",
  386. " SUM(d.task_coin) / 100 AS taskSumCoin,",
  387. " (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.task_coin)) / 100 AS totalRechargeSum",
  388. "FROM detail_y d",
  389. "left JOIN user u ON u.jwcode = d.jwcode ",
  390. "WHERE update_type = 0 ",
  391. "<if test='searchStartTime != null and searchEndTime != null'>",
  392. "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
  393. "</if>",
  394. "GROUP BY d.area",
  395. "order by totalRechargeSum desc",
  396. "</script>"
  397. })
  398. List<Meium> getBuy(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
  399. @Select({
  400. "<script>",
  401. "SELECT u.area,",
  402. " SUM(d.recharge_coin) / 100 AS rechargeSumCoin,",
  403. " SUM(d.free_coin) / 100 AS freeSumCoin,",
  404. " SUM(d.task_coin) / 100 AS taskSumCoin,",
  405. " (SUM(d.recharge_coin) + SUM(d.free_coin) +SUM(d.task_coin)) / 100 AS totalRechargeSum",
  406. "FROM detail_y d",
  407. "left JOIN user u ON u.jwcode = d.jwcode",
  408. "WHERE update_type = 1 ",
  409. "<if test='searchStartTime != null and searchEndTime != null'>",
  410. "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
  411. "</if>",
  412. "GROUP BY u.area",
  413. "order by freeSumCoin asc",
  414. "</script>"
  415. })
  416. List<Meium> getPayAndFree(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
  417. @Select({
  418. "<script>",
  419. "SELECT u.area,",
  420. " SUM(d.recharge_coin) / 100 AS rechargeSumCoin,",
  421. " SUM(d.free_coin) / 100 AS freeSumCoin,",
  422. " SUM(d.task_coin) / 100 AS taskSumCoin,",
  423. " (SUM(d.recharge_coin) + SUM(d.free_coin) +SUM(d.task_coin)) / 100 AS totalRechargeSum",
  424. "FROM detail_y d",
  425. "left JOIN user u ON u.jwcode = d.jwcode and u.name=d.username",
  426. "WHERE update_type = 1 ",
  427. "<if test='searchStartTime != null and searchEndTime != null'>",
  428. "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
  429. "</if>",
  430. "GROUP BY u.area",
  431. "order by rechargeSumCoin asc",
  432. "</script>"
  433. })
  434. List<Meium> getPayAndRecharge(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
  435. @Select({
  436. "<script>",
  437. "SELECT u.area,",
  438. " SUM(d.recharge_coin) / 100 AS rechargeSumCoin,",
  439. " SUM(d.free_coin) / 100 AS freeSumCoin,",
  440. " SUM(d.task_coin) / 100 AS taskSumCoin,",
  441. " (SUM(d.recharge_coin) + SUM(d.free_coin) +SUM(d.task_coin)) / 100 AS totalRechargeSum",
  442. "FROM detail_y d",
  443. "left JOIN user u ON u.jwcode = d.jwcode",
  444. "WHERE update_type = 1 ",
  445. "<if test='searchStartTime != null and searchEndTime != null'>",
  446. "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
  447. "</if>",
  448. "GROUP BY u.area",
  449. "order by taskSumCoin asc",
  450. "</script>"
  451. })
  452. List<Meium> getPayAndTask(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
  453. @Select({
  454. "<script>",
  455. "SELECT u.area,",
  456. " SUM(d.recharge_coin) / 100 AS rechargeSumCoin,",
  457. " SUM(d.free_coin) / 100 AS freeSumCoin,",
  458. " SUM(d.task_coin) / 100 AS taskSumCoin,",
  459. " (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) / 100 AS totalRechargeSum",
  460. "FROM detail_y d",
  461. "LEFT JOIN user u ON u.jwcode = d.jwcode",
  462. "WHERE update_type = 1",
  463. "<choose>",
  464. "<when test='searchStartTime != null and searchEndTime != null'>",
  465. "AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
  466. "</when>",
  467. "<otherwise>",
  468. "</otherwise>",
  469. "</choose>",
  470. "GROUP BY u.area",
  471. "ORDER BY totalRechargeSum ASC",
  472. "</script>"
  473. })
  474. List<Meium> getPay(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
  475. }