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.

144 lines
5.9 KiB

  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.StatisticsMapper">
  4. <!--新增part2统计数据-->
  5. <insert id="insertPart2">
  6. INSERT INTO statistics (
  7. market, current_datetime,
  8. recharge, money,
  9. consume_permanent, consume_free_june,
  10. consume_free_december, consume_task,
  11. refund_permanent, refund_free_june,
  12. refund_free_december,refund_task,
  13. recharge_num, first_recharge
  14. ) VALUES (
  15. #{market}, #{currentDatetime},
  16. #{recharge}, #{money},
  17. #{consumePermanent}, #{consumeFreeJune},
  18. #{consumeFreeDecember}, #{consumeTask},
  19. #{refundPermanent}, #{refundFreeJune},
  20. #{refundFreeDecember}, #{refundTask},
  21. #{rechargeNum}, #{firstRecharge}
  22. )
  23. </insert>
  24. <!--新增part1统计数据-->
  25. <insert id="insertPart1">
  26. INSERT INTO statistics (
  27. market, current_datetime,
  28. current_gold, daily_change,
  29. current_permanent, current_free_june,
  30. current_free_december, current_task
  31. ) VALUES (
  32. #{market}, #{currentDatetime},
  33. #{currentGold}, #{dailyChange},
  34. #{currentPermanent}, #{currentFreeJune},
  35. #{currentFreeDecember}, #{currentTask}
  36. )
  37. </insert>
  38. <!--更新part2统计数据-->
  39. <update id="updatePart2" parameterType="map">
  40. UPDATE statistics
  41. SET
  42. recharge = #{recharge},
  43. money = #{money},
  44. consume_permanent = #{consumePermanent},
  45. consume_free_june = #{consumeFreeJune},
  46. consume_free_december = #{consumeFreeDecember},
  47. consume_task = #{consumeTask},
  48. refund_permanent = #{refundPermanent},
  49. refund_free_june = #{refundFreeJune},
  50. refund_free_december = #{refundFreeDecember},
  51. refund_task = #{refundTask},
  52. recharge_num = #{rechargeNum},
  53. first_recharge = #{firstRecharge}
  54. WHERE market = #{market} and current_datetime = #{currentDatetime}
  55. </update>
  56. <!--更新part1统计数据-->
  57. <update id="updatePart1" parameterType="map">
  58. update statistics
  59. SET
  60. current_gold = #{currentGold},
  61. daily_change = #{dailyChange},
  62. current_permanent = #{currentPermanent},
  63. current_free_june = #{currentFreeJune},
  64. current_free_december = #{currentFreeDecember},
  65. current_task = #{currentTask}
  66. WHERE market = #{market} and current_datetime = #{currentDatetime}
  67. </update>
  68. <!--根据地区、审核状态、起止时间查询订单表数据-->
  69. <select id="findByMarketAndAuditStatus"
  70. resultType="com.example.demo.domain.entity.UserGoldRecord">
  71. SELECT u.market, ugr.*
  72. FROM user_gold_record ugr
  73. INNER JOIN user u ON ugr.jwcode = u.jwcode
  74. WHERE u.market = #{market}
  75. AND ugr.audit_status IN
  76. <foreach item="status" collection="auditStatusList" open="(" separator="," close=")">
  77. #{status}
  78. </foreach>
  79. AND ugr.create_time BETWEEN #{startTime} AND #{endTime}
  80. </select>
  81. <!-- 计算该天充值人数-->
  82. <select id="countRechargeNum" resultType="java.lang.Integer">
  83. SELECT COUNT(DISTINCT ugr.jwcode)
  84. FROM user_gold_record ugr
  85. INNER JOIN user u ON ugr.jwcode = u.jwcode
  86. WHERE u.market = #{market}
  87. AND ugr.audit_status IN (1,3)
  88. AND ugr.audit_time BETWEEN #{startTime} AND #{endTime}
  89. </select>
  90. <!--计算该天首充人数-->
  91. <select id="countFirstRecharge" resultType="java.lang.Integer">
  92. SELECT COUNT(DISTINCT ugr.jwcode)
  93. FROM user_gold_record ugr
  94. INNER JOIN user u ON ugr.jwcode = u.jwcode
  95. WHERE u.market = #{market}
  96. AND ugr.audit_status = 1
  97. AND ugr.audit_time BETWEEN #{startTime} AND #{endTime}
  98. AND u.first_recharge = #{startTime}
  99. </select>
  100. <!--获取某地区某时间所在日期的数据(仅一条)-->
  101. <select id="selectByMarketAndDate" resultType="com.example.demo.domain.entity.Statistics">
  102. SELECT *
  103. FROM statistics
  104. WHERE market = #{market}
  105. AND current_datetime BETWEEN #{startDate} AND #{endDate}
  106. </select>
  107. <select id="sumCurrentPermanentGold" resultType="java.lang.Integer">
  108. SELECT SUM(user.current_permanent_gold)
  109. FROM user
  110. WHERE user.market = #{market}
  111. </select>
  112. <select id="sumCurrentFreeJune" resultType="java.lang.Integer">
  113. SELECT SUM(u.current_free_june)
  114. FROM user as u
  115. WHERE u.market = #{market}
  116. </select>
  117. <select id="sumCurrentFreeDecember" resultType="java.lang.Integer">
  118. SELECT SUM(u.current_free_december)
  119. FROM user as u
  120. WHERE u.market = #{market}
  121. </select>
  122. <select id="sumCurrentTaskGold" resultType="java.lang.Integer">
  123. SELECT SUM(u.current_task_gold)
  124. FROM user as u
  125. WHERE u.market = #{market}
  126. </select>
  127. <select id="selectSumByMarketAndDate" resultType="com.example.demo.domain.entity.Statistics">
  128. select sum(s.recharge) as recharge,
  129. sum(s.money) as money,
  130. sum(s.consume_permanent) as consume_permanent,
  131. sum(s.consume_free_june) as consume_free_june,
  132. sum(s.consume_free_december) as consume_free_december,
  133. sum(s.consume_task) as consume_task,
  134. sum(s.recharge_num) as recharge_num
  135. from statistics as s
  136. WHERE market = #{market}
  137. AND current_datetime >= #{startDate}
  138. AND current_datetime &lt;= #{endDate}
  139. </select>
  140. </mapper>