SysMusicCompareRecordMapper.xml 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  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. <!--
  4. 这个文件是自动生成的。
  5. 不要修改此文件。所有改动将在下次重新自动生成时丢失。
  6. -->
  7. <mapper namespace="com.ym.mec.biz.dal.dao.SysMusicCompareRecordDao">
  8. <resultMap type="com.ym.mec.biz.dal.entity.SysMusicCompareRecord" id="SysMusicCompareRecord">
  9. <result column="id_" property="id" />
  10. <result column="user_id_" property="userId" />
  11. <result column="sys_music_score_id_" property="sysMusicScoreId" />
  12. <result column="sys_music_score_name_" property="sysMusicScoreName" />
  13. <result column="score_data_" property="scoreData" />
  14. <result column="score_" property="score" />
  15. <result column="intonation_" property="intonation" />
  16. <result column="cadence_" property="cadence" />
  17. <result column="integrity_" property="integrity" />
  18. <result column="record_file_path_" property="recordFilePath" />
  19. <result column="device_type_" property="deviceType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler" />
  20. <result column="client_id_" property="clientId" />
  21. <result column="play_time_" property="playTime"/>
  22. <result column="feature_" property="feature" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler" />
  23. <result column="monday_" property="monday"/>
  24. <result column="create_time_" property="createTime" />
  25. </resultMap>
  26. <!-- 根据主键查询一条记录 -->
  27. <select id="get" resultMap="SysMusicCompareRecord" >
  28. SELECT * FROM sys_music_compare_record WHERE id_ = #{id}
  29. </select>
  30. <!-- 全查询 -->
  31. <select id="findAll" resultMap="SysMusicCompareRecord">
  32. SELECT * FROM sys_music_compare_record ORDER BY id_
  33. </select>
  34. <!-- 向数据库增加一条记录 -->
  35. <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.SysMusicCompareRecord" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
  36. <!--
  37. <selectKey resultClass="int" keyProperty="id" >
  38. SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
  39. </selectKey>
  40. -->
  41. INSERT INTO sys_music_compare_record (id_,user_id_,sys_music_score_id_,score_data_,score_,intonation_,cadence_,integrity_,
  42. record_file_path_,device_type_,client_id_,play_time_,monday_,
  43. feature_,create_time_)
  44. VALUES(#{id},#{userId},#{sysMusicScoreId},#{scoreData},#{score},#{intonation},#{cadence},#{integrity},
  45. #{recordFilePath},#{deviceType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{clientId},#{playTime},#{monday},
  46. #{feature,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, NOW())
  47. </insert>
  48. <!-- 根据主键查询一条记录 -->
  49. <update id="update" parameterType="com.ym.mec.biz.dal.entity.SysMusicCompareRecord">
  50. UPDATE sys_music_compare_record <set>
  51. <if test="userId != null">
  52. user_id_ = #{userId},
  53. </if>
  54. <if test="id != null">
  55. id_ = #{id},
  56. </if>
  57. <if test="sysMusicScoreId != null">
  58. sys_music_score_id_ = #{sysMusicScoreId},
  59. </if>
  60. <if test="scoreData != null">
  61. score_data_ = #{scoreData},
  62. </if>
  63. <if test="score != null">
  64. score_ = #{score},
  65. </if>
  66. <if test="integrity != null">
  67. integrity_ = #{integrity},
  68. </if>
  69. <if test="cadence != null">
  70. cadence_ = #{cadence},
  71. </if>
  72. <if test="sysMusicScoreId != null">
  73. sys_music_score_id_ = #{sysMusicScoreId},
  74. </if>
  75. <if test="recordFilePath != null">
  76. record_file_path_ = #{recordFilePath},
  77. </if>
  78. <if test="clientId != null">
  79. client_id_ = #{clientId},
  80. </if>
  81. <if test="playTime != null">
  82. play_time_ = #{playTime},
  83. </if>
  84. <if test="monday != null">
  85. monday_ = #{monday},
  86. </if>
  87. </set> WHERE id_ = #{id}
  88. </update>
  89. <!-- 根据主键删除一条记录 -->
  90. <delete id="delete" >
  91. DELETE FROM sys_music_compare_record WHERE id_ = #{id}
  92. </delete>
  93. <sql id="queryCondition">
  94. <where>
  95. <if test="userId!=null">
  96. AND smcr.user_id_=#{userId}
  97. </if>
  98. <if test="startTime!=null and endTime!=null">
  99. AND DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
  100. </if>
  101. </where>
  102. </sql>
  103. <!-- 分页查询 -->
  104. <select id="queryPage" resultMap="SysMusicCompareRecord" parameterType="map">
  105. SELECT
  106. smcr.id_, smcr.user_id_, smcr.sys_music_score_id_, smcr.score_, smcr.intonation_, smcr.cadence_,
  107. smcr.integrity_, smcr.record_file_path_, smcr.client_id_, smcr.device_type_, smcr.play_time_,
  108. smcr.monday_, smcr.create_time_,
  109. sms.name_ sys_music_score_name_
  110. FROM sys_music_compare_record smcr
  111. LEFT JOIN sys_music_score sms on smcr.sys_music_score_id_ = sms.id_
  112. <include refid="queryCondition"></include>
  113. ORDER BY id_ DESC
  114. <include refid="global.limit"/>
  115. </select>
  116. <!-- 查询当前表的总记录数 -->
  117. <select id="queryCount" resultType="int">
  118. SELECT COUNT(*) FROM sys_music_compare_record smcr
  119. <include refid="queryCondition"></include>
  120. </select>
  121. <select id="getUserTrainStat" resultType="com.ym.mec.biz.dal.dto.MusicCompareRankingDto">
  122. SELECT
  123. smcr.user_id_ userId,
  124. su.avatar_ avatar,
  125. su.username_ studentName,
  126. COUNT(smcr.id_) trainNum,
  127. COUNT(DISTINCT DAY(smcr.create_time_)) trainDays,
  128. SUM(smcr.play_time_) trainTime
  129. FROM sys_music_compare_record smcr
  130. LEFT JOIN sys_user su ON smcr.user_id_=su.id_
  131. WHERE EXISTS (SELECT user_id_ FROM student WHERE user_id_=smcr.user_id_)
  132. AND DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
  133. GROUP BY smcr.user_id_
  134. </select>
  135. <select id="getUserTrainOverView" resultType="com.ym.mec.biz.dal.dto.StudentTrainOverviewDto">
  136. SELECT
  137. COUNT(smcr.id_) trainNum,
  138. COUNT(DISTINCT DAY(smcr.create_time_)) trainDays,
  139. SUM(smcr.play_time_) trainTime
  140. FROM sys_music_compare_record smcr
  141. WHERE smcr.user_id_=#{userId}
  142. AND EXISTS (SELECT user_id_ FROM student WHERE user_id_=smcr.user_id_)
  143. </select>
  144. <select id="getUserTrainChartData" resultType="com.ym.mec.biz.dal.dto.StudentTrainChartDto">
  145. SELECT
  146. DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') trainDate,
  147. COUNT(smcr.id_) trainNum,
  148. SUM(smcr.play_time_) trainTime
  149. FROM sys_music_compare_record smcr
  150. WHERE smcr.user_id_=#{userId}
  151. AND EXISTS (SELECT user_id_ FROM student WHERE user_id_=smcr.user_id_)
  152. AND DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
  153. GROUP BY DATE_FORMAT(smcr.create_time_, '%Y-%m-%d')
  154. ORDER BY trainDate;
  155. </select>
  156. <sql id="queryMusicGroupStudentTrainDataConditon">
  157. <where>
  158. sr.music_group_status_='NORMAL' AND stu.user_id_ IS NOT NULL
  159. <if test="startTime!=null and endTime!=null">
  160. AND DATE_FORMAT( smcr.create_time_, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
  161. </if>
  162. <if test="musicGroupId!=null">
  163. AND sr.music_group_id_ = #{musicGroupId}
  164. </if>
  165. <if test="search!=null">
  166. AND (su.username_ LIKE CONCAT('%', #{search}, '%'))
  167. </if>
  168. </where>
  169. </sql>
  170. <select id="queryMusicGroupStudentTrainData" resultType="com.ym.mec.biz.dal.dto.MusicCompareRankingDto">
  171. SELECT
  172. smcr.user_id_ userId,
  173. su.avatar_ avatar,
  174. su.username_ studentName,
  175. COUNT( smcr.id_ ) trainNum,
  176. COUNT( DISTINCT DAY ( smcr.create_time_ )) trainDays,
  177. SUM( smcr.play_time_ ) trainTime,
  178. CASE WHEN stu.member_rank_setting_id_ IS NULL THEN 0 ELSE 1 END vipUser
  179. FROM
  180. sys_music_compare_record smcr
  181. LEFT JOIN sys_user su ON smcr.user_id_ = su.id_
  182. LEFT JOIN student stu ON stu.user_id_ = smcr.user_id_
  183. LEFT JOIN student_registration sr ON sr.user_id_=smcr.user_id_
  184. <include refid="queryMusicGroupStudentTrainDataConditon"></include>
  185. GROUP BY smcr.user_id_
  186. <if test="sortField!=null and sortField!=''">
  187. <if test="sortField == 'TRAINDAYS'">
  188. ORDER BY trainDays
  189. </if>
  190. <if test="sortField == 'TRAINTIME'">
  191. ORDER BY trainTime
  192. </if>
  193. <if test="sortField == 'TRAINNUM'">
  194. ORDER BY trainNum
  195. </if>
  196. </if>
  197. <include refid="global.limit"></include>
  198. </select>
  199. <select id="countMusicGroupStudentTrainData" resultType="int">
  200. SELECT
  201. COUNT(DISTINCT smcr.user_id_)
  202. FROM
  203. sys_music_compare_record smcr
  204. LEFT JOIN sys_user su ON smcr.user_id_ = su.id_
  205. LEFT JOIN student stu ON stu.user_id_ = smcr.user_id_
  206. LEFT JOIN student_registration sr ON sr.user_id_=smcr.user_id_
  207. <include refid="queryMusicGroupStudentTrainDataConditon"></include>
  208. </select>
  209. </mapper>