ActivityEvaluationMapper.xml 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  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.yonge.cooleshow.biz.dal.dao.ActivityEvaluationDao">
  4. <resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.ActivityEvaluation">
  5. <result column="id_" property="id" />
  6. <result column="activity_id_" property="activityId" />
  7. <result column="music_sheet_id_" property="musicSheetId" />
  8. <result column="create_time_" property="createTime" />
  9. <result column="create_by_" property="createBy" />
  10. </resultMap>
  11. <!-- 表字段 -->
  12. <sql id="baseColumns">
  13. t.id_ as id
  14. , t.activity_id_ as activityId
  15. , t.music_sheet_id_ as musicSheetId
  16. , t.create_time_ as createTime
  17. , t.create_by_ as createBy
  18. </sql>
  19. <select id="detail" resultType="com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationVo">
  20. SELECT
  21. <include refid="baseColumns"/>
  22. FROM activity_evaluation t
  23. left join music_sheet ms on t.music_sheet_id_ = ms.id_
  24. where t.id_ = #{id}
  25. </select>
  26. <sql id="selectSql">
  27. SELECT
  28. <include refid="baseColumns" />,
  29. ms.music_sheet_name_ as musicSheetName,
  30. (select group_concat(mt.name_) from music_tag mt
  31. where find_in_set(mt.id_,ms.music_tag_) and mt.del_flag_ = 0 and mt.state_ = 1) as musicTagNames,
  32. (select group_concat(s.name_) from subject s
  33. where find_in_set(s.id_,ms.music_subject_) and s.del_flag_ = 0 ) as subjectNames,
  34. ms.source_type_ as sourceType,
  35. ms.music_price_ as musicPrice
  36. FROM activity_evaluation t
  37. left join music_sheet ms on t.music_sheet_id_ = ms.id_
  38. <where>
  39. <if test="param.activityId != null">
  40. and t.activity_id_ = #{param.activityId}
  41. </if>
  42. </where>
  43. </sql>
  44. <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationVo">
  45. <include refid="selectSql"/>
  46. </select>
  47. <select id="selectAll" resultType="com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationVo">
  48. <include refid="selectSql"/>
  49. </select>
  50. <insert id="addBatch">
  51. insert into activity_evaluation (activity_id_,create_by_, music_sheet_id_) values
  52. <foreach collection="musicSheetIds" item="item" separator="," index="index">
  53. (#{activityId,jdbcType=BIGINT},#{userId,jdbcType=BIGINT},#{item,jdbcType=BIGINT})
  54. </foreach>
  55. </insert>
  56. <select id="selectActivityMusic" resultType="com.yonge.cooleshow.biz.dal.vo.ActivityMusicVo">
  57. select ms.id_ as musicSheetId
  58. ,ms.music_sheet_name_ as musicSheetName
  59. ,s.name_ as musicSubject
  60. ,ae.id_ as evaluationId
  61. ,(select if(count(1)>0,1,0) as `join` from activity_evaluation_record aer
  62. where aer.evaluation_id_ = ae.id_ and aer.user_id_ = #{userId}
  63. ) as `join`
  64. from activity_evaluation ae
  65. left join music_sheet ms on ms.id_ = ae.music_sheet_id_
  66. left join subject s on s.id_ = ms.music_subject_
  67. <where>
  68. ms.del_flag_ = 0 and ms.state_ = 1
  69. <if test="activityPlanId != null">
  70. and ae.activity_id_ = #{activityPlanId}
  71. </if>
  72. </where>
  73. </select>
  74. <select id="selectActivityUser" resultType="com.yonge.cooleshow.biz.dal.vo.ActivityMusicVo">
  75. select t.score
  76. ,t.username_ as username
  77. ,t.avatar_ as userAvatar
  78. ,s.name_ as userSubject
  79. ,t.evaluationId
  80. ,t.userId
  81. from
  82. (select
  83. max(aem.score_) as score,
  84. aem.evaluation_id_,
  85. aem.user_id_,
  86. su.username_,
  87. su.avatar_,
  88. su.id_ as userId,
  89. aem.evaluation_id_ as evaluationId
  90. from activity_evaluation_record aem
  91. left join sys_user su on su.id_ = aem.user_id_
  92. <where>
  93. su.del_flag_ = 0 and aem.score_ is not null
  94. <if test="activityPlanId != null">
  95. and aem.activity_id_ = #{activityPlanId}
  96. </if>
  97. </where>
  98. group by aem.evaluation_id_) t
  99. left join student stu on stu.user_id_ = t.user_id_
  100. left join subject s on s.id_ = stu.subject_id_
  101. </select>
  102. <select id="musicPage" resultType="com.yonge.cooleshow.biz.dal.vo.MusicSheetVo">
  103. select
  104. <include refid="com.yonge.cooleshow.biz.dal.dao.MusicSheetDao.Base_Column_List"/>,
  105. su.username_ as addName,
  106. su.avatar_ as addUserAvatar,
  107. (select group_concat(mt.name_) from music_tag mt
  108. where find_in_set(mt.id_,t.music_tag_) and mt.del_flag_ = 0 and mt.state_ = 1) as musicTagNames,
  109. (select group_concat(s.name_) from subject s
  110. where find_in_set(s.id_,t.music_subject_) and s.del_flag_ = 0 ) as subjectNames
  111. from music_sheet t
  112. left join sys_user su on t.create_by_ = su.id_
  113. <where>
  114. su.del_flag_ = 0
  115. and not exists(
  116. select 1 from activity_evaluation ae where ae.activity_id_ = ${param.activityId} and ae.music_sheet_id_ = t.id_
  117. )
  118. <include refid="com.yonge.cooleshow.biz.dal.dao.MusicSheetDao.QueryInfo"/>
  119. </where>
  120. order by t.id_ desc
  121. </select>
  122. </mapper>