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.

137 lines
5.7 KiB

2 months ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
2 months ago
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.example.demo.mapper.coin.WorkBenchMapper">
  4. <!--起止时间内的该地区充值金币数(永久+免费)若为空则默认0-->
  5. <select id="sumRecharge" resultType="java.lang.Integer">
  6. select sum(
  7. COALESCE(recharge, 0)
  8. )
  9. from statistics
  10. where market = #{market}
  11. and current_datetime
  12. between #{startDate} and #{endDate}
  13. </select>
  14. <!--起止时间内的该地区充值金额(永久金币数)-->
  15. <select id="sumMoney" resultType="java.lang.Integer">
  16. SELECT SUM(money)
  17. FROM statistics
  18. WHERE market = #{market}
  19. AND current_datetime BETWEEN #{startDate} and #{endDate}
  20. </select>
  21. <!-- 起止时间内该地区消费金币数(永久+免费+任务)-->
  22. <select id="sumConsume" resultType="java.lang.Integer">
  23. SELECT SUM(
  24. COALESCE(consume_permanent, 0) +
  25. COALESCE(consume_free_june, 0) +
  26. COALESCE(consume_free_december, 0) +
  27. COALESCE(consume_task, 0)
  28. )
  29. FROM statistics
  30. WHERE market = #{market}
  31. AND current_datetime BETWEEN
  32. #{startDate} and #{endDate}
  33. </select>
  34. <!--起止时间内的该地区退款金币数(永久+免费+任务)-->
  35. <select id="sumRefund" resultType="java.lang.Integer">
  36. SELECT SUM(
  37. COALESCE(refund_permanent, 0) +
  38. COALESCE(refund_free_june, 0) +
  39. COALESCE(refund_free_december, 0) +
  40. COALESCE(refund_task, 0)
  41. )
  42. FROM statistics
  43. WHERE market = #{market}
  44. AND current_datetime BETWEEN
  45. #{startDate} and #{endDate}
  46. </select>
  47. <!--起止时间内该地区充值人头数(根据精网号去重,老数据有多人共用一个精网号的问题)-->
  48. <select id="countRechargeNum" resultType="java.lang.Integer">
  49. SELECT COUNT(DISTINCT ugr.jwcode)
  50. FROM user_gold_record ugr
  51. INNER JOIN user u ON ugr.jwcode = u.jwcode
  52. WHERE u.market = #{market}
  53. AND ugr.pay_time BETWEEN
  54. #{startDate} and #{endDate}
  55. AND ugr.audit_status IN (1,3)
  56. and ugr.flag=1
  57. </select>
  58. <!--给定时间范围内的该地区消费永久金币数-->
  59. <select id="sumCPermanent" resultType="java.lang.Integer">
  60. SELECT SUM(
  61. COALESCE(consume_permanent, 0)
  62. )
  63. FROM statistics
  64. WHERE market = #{market}
  65. AND current_datetime BETWEEN
  66. #{startDate} and #{endDate}
  67. </select>
  68. <!--给定时间范围内的该地区消费免费金币数-->
  69. <select id="sumCFree" resultType="java.lang.Integer">
  70. SELECT SUM(
  71. COALESCE(refund_free_june, 0) +
  72. COALESCE(refund_free_december, 0)
  73. )
  74. FROM statistics
  75. WHERE market = #{market}
  76. AND current_datetime BETWEEN
  77. #{startDate} and #{endDate}
  78. </select>
  79. <!--给定时间范围内的该地区消费任务金币数-->
  80. <select id="sumCTask" resultType="java.lang.Integer">
  81. SELECT SUM(
  82. COALESCE(refund_task, 0)
  83. )
  84. FROM statistics
  85. WHERE market = #{market}
  86. AND current_datetime BETWEEN
  87. #{startDate} and #{endDate}
  88. </select>
  89. <!-- 获取指定地区在时间段内的全部统计数据 -->
  90. <select id="getFullStatisticsByMarketAndDate" resultType="com.example.demo.domain.vo.coin.WorkbenchFullStatistics">
  91. SELECT
  92. SUM(s.recharge) AS totalRecharge,
  93. SUM(s.money) AS totalMoney,
  94. SUM(s.consume_permanent) AS totalConsumePermanent,
  95. SUM(s.consume_free_june + s.consume_free_december) AS totalConsumeFree,
  96. SUM(s.consume_task) AS totalConsumeTask,
  97. SUM(s.refund_permanent + s.refund_free_june + s.refund_free_december + s.refund_task) AS totalRefund,
  98. (
  99. SELECT COUNT(DISTINCT ugr.jwcode)
  100. FROM user_gold_record ugr
  101. INNER JOIN user u ON ugr.jwcode = u.jwcode
  102. WHERE u.market = #{market}
  103. AND ugr.pay_time BETWEEN #{startDate} AND #{endDate}
  104. AND ugr.audit_status IN (1, 3)
  105. and ugr.flag=1
  106. ) AS totalRechargeNum
  107. FROM statistics s
  108. WHERE s.market = #{market}
  109. AND s.current_datetime BETWEEN #{startDate} AND #{endDate};
  110. </select>
  111. <select id="getFullStatisticsByMarketAndDate1"
  112. resultType="com.example.demo.domain.vo.coin.WorkbenchFullStatistics">
  113. SELECT
  114. s.market,
  115. SUM(s.recharge) AS totalRecharge,
  116. SUM(s.money) AS totalMoney,
  117. SUM(s.consume_permanent) AS totalConsumePermanent,
  118. SUM(s.consume_free_june + s.consume_free_december) AS totalConsumeFree,
  119. SUM(s.consume_task) AS totalConsumeTask
  120. FROM statistics s
  121. WHERE s.market IN
  122. <foreach item="market" collection="markets" open="(" separator="," close=")">#{market}</foreach>
  123. AND s.current_datetime BETWEEN #{startDate} AND #{endDate}
  124. GROUP BY s.market;
  125. </select>
  126. <!--获取用户的地区权限列表-->
  127. <select id="getAdminMarket" resultType="java.lang.String">
  128. select market from admin
  129. where account = #{account}
  130. </select>
  131. <!--获取全部用户角色-->
  132. <select id="getMarket" resultType="java.lang.String">
  133. select DISTINCT name from market where type=2
  134. </select>
  135. </mapper>