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.

119 lines
5.3 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.live.LiveMapper">
  4. <select id="selectLiveBy" resultType="com.example.demo.domain.vo.bean.BeanConsumeLive">
  5. select lgg.id as id,
  6. mi.name as name,
  7. lgg.jwcode as jwcode,
  8. mi.deptName as dept,
  9. lg.name as gift,
  10. lgg.gold_beans as beanNum,
  11. lgg.gold_free as freeBean,
  12. lgg.gold_buy as buyBean,
  13. lp.title as liveChannel,
  14. l.name as liveName,
  15. lgg.created_at as consumeTime
  16. FROM live_give_gifts lgg
  17. LEFT JOIN live_gifts lg ON lg.id = lgg.g_id
  18. LEFT JOIN live l ON l.id = lgg.live_id
  19. LEFT JOIN live_pindao lp ON lp.pd_id = l.channel_id
  20. LEFT JOIN member_info mi ON mi.jwcode = lgg.jwcode
  21. <where>
  22. <if test="beanConsumeLive.jwcode != null and beanConsumeLive.jwcode != ''">
  23. AND lgg.jwcode = #{beanConsumeLive.jwcode}
  24. </if>
  25. <if test="beanConsumeLive.dept != null and beanConsumeLive.dept != ''">
  26. AND mi.deptName = #{beanConsumeLive.dept}
  27. </if>
  28. <!-- <if test="beanConsumeLive.type != null and beanConsumeLive.type != ''">
  29. AND fyr.source_type = #{beanConsumeLive.type}
  30. </if>-->
  31. <if test="beanConsumeLive.startTime != null and beanConsumeLive.endTime != null">
  32. AND lgg.created_at BETWEEN #{beanConsumeLive.startTime}
  33. AND #{beanConsumeLive.endTime}
  34. </if>
  35. <if test="beanConsumeLive.gift != null and beanConsumeLive.gift != ''">
  36. AND lg.name =#{beanConsumeLive.gift}
  37. </if>
  38. <if test="beanConsumeLive.liveChannel != null and beanConsumeLive.liveChannel != ''">
  39. AND lp.title = #{beanConsumeLive.liveChannel}
  40. </if>
  41. <if test="beanConsumeLive.liveName != null and beanConsumeLive.liveName != ''">
  42. AND l.name LIKE CONCAT('%', #{beanConsumeLive.liveName}, '%')
  43. </if>
  44. </where>
  45. <choose>
  46. <when test="beanConsumeLive.sortField != null and beanConsumeLive.sortField != '' and beanConsumeLive.sortOrder != null and beanConsumeLive.sortOrder != ''">
  47. ORDER BY ${beanConsumeLive.sortField} ${beanConsumeLive.sortOrder}
  48. </when>
  49. <otherwise>
  50. ORDER BY consumeTime DESC
  51. </otherwise>
  52. </choose>
  53. </select>
  54. <!--获取直播礼物列表-->
  55. <select id="getLiveGift" resultType="java.lang.String">
  56. select distinct name from live_gifts
  57. </select>
  58. <!--获取直播频道列表-->
  59. <select id="getLiveChannel" resultType="java.lang.String">
  60. select distinct title from live_pindao
  61. </select>
  62. <!--计算直播消费金豆合计数-->
  63. <select id="selectSumLiveBy" resultType="com.example.demo.domain.vo.bean.BeanConsumeGold">
  64. select
  65. ifnull(sum(t.beanNum),0) as sunBeam,
  66. ifnull(sum(t.freeBean),0) as freeBean,
  67. ifnull(sum(t.buyBean),0) as permanentBean,
  68. count(*) as totalNum
  69. from
  70. (select mi.name as name,
  71. lgg.jwcode as jwcode,
  72. mi.deptName as dept,
  73. lg.name as gift,
  74. lgg.gold_beans as beanNum,
  75. lgg.gold_free as freeBean,
  76. lgg.gold_buy as buyBean,
  77. lp.title as liveChannel,
  78. l.name as liveName,
  79. lgg.created_at as consumeTime
  80. FROM live_give_gifts lgg
  81. LEFT JOIN live_gifts lg ON lg.id = lgg.g_id
  82. LEFT JOIN live l ON l.id = lgg.live_id
  83. LEFT JOIN live_pindao lp ON lp.pd_id = l.channel_id
  84. LEFT JOIN member_info mi ON mi.jwcode = lgg.jwcode
  85. <where>
  86. lgg.knapsack=0
  87. <if test="beanConsumeLive.jwcode != null and beanConsumeLive.jwcode != ''">
  88. AND lgg.jwcode = #{beanConsumeLive.jwcode}
  89. </if>
  90. <if test="beanConsumeLive.dept != null and beanConsumeLive.dept != ''">
  91. AND mi.deptName = #{beanConsumeLive.dept}
  92. </if>
  93. <!-- <if test="beanConsumeLive.type != null and beanConsumeLive.type != ''">
  94. AND fyr.source_type = #{beanConsumeLive.type}
  95. </if>-->
  96. <if test="beanConsumeLive.startTime != null and beanConsumeLive.endTime != null">
  97. AND lgg.created_at BETWEEN #{beanConsumeLive.startTime}
  98. AND #{beanConsumeLive.endTime}
  99. </if>
  100. <if test="beanConsumeLive.gift != null and beanConsumeLive.gift != ''">
  101. AND lg.name =#{beanConsumeLive.gift}
  102. </if>
  103. <if test="beanConsumeLive.liveChannel != null and beanConsumeLive.liveChannel != ''">
  104. AND lp.title = #{beanConsumeLive.liveChannel}
  105. </if>
  106. <if test="beanConsumeLive.liveName != null and beanConsumeLive.liveName != ''">
  107. AND l.name LIKE CONCAT('%', #{beanConsumeLive.liveName}, '%')
  108. </if>
  109. </where>)t
  110. </select>
  111. <select id="getDept" resultType="java.lang.String">
  112. select distinct deptName from member_info
  113. where deptName is not null and deptName != ''
  114. </select>
  115. </mapper>