TeacherCourseRewardDao.xml 10 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. <mapper namespace="com.ym.mec.biz.dal.dao.TeacherCourseRewardDao">
  4. <resultMap id="teacherCourseReward" type="com.ym.mec.biz.dal.entity.TeacherCourseReward">
  5. <id column="id_" jdbcType="BIGINT" property="id"/>
  6. <result column="music_group_id_" jdbcType="VARCHAR" property="musicGroupId"/>
  7. <result column="group_type_" jdbcType="VARCHAR" property="groupType"/>
  8. <result column="course_schedule_id_list_" jdbcType="VARCHAR" property="courseScheduleIdList"/>
  9. <result column="course_group_name_" jdbcType="VARCHAR" property="courseGroupName"/>
  10. <result column="organ_id_" jdbcType="INTEGER" property="organId"/>
  11. <result column="organ_name_" jdbcType="VARCHAR" property="organName"/>
  12. <result column="teacher_id_" jdbcType="INTEGER" property="teacherId"/>
  13. <result column="teacher_name_" jdbcType="VARCHAR" property="teacherName"/>
  14. <result column="expect_reward_amount_" jdbcType="DECIMAL" property="expectRewardAmount"/>
  15. <result column="actual_reward_amount_" jdbcType="DECIMAL" property="actualRewardAmount"/>
  16. <result column="memo_" jdbcType="VARCHAR" property="memo"/>
  17. <result column="settlement_status_" property="settlementStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  18. <result column="settlement_date_" property="settlementDate"/>
  19. <result column="confirm_status_" property="confirmStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  20. <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
  21. <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
  22. </resultMap>
  23. <sql id="Base_Column_List">
  24. <!--@mbg.generated-->
  25. id_, music_group_id_, group_type_, course_schedule_id_list_, course_group_name_,
  26. organ_id_, teacher_id_, expect_reward_amount_, actual_reward_amount_, memo_, create_time_,
  27. update_time_,settlement_status_,settlement_date_
  28. </sql>
  29. <select id="get" parameterType="java.lang.Long" resultMap="teacherCourseReward">
  30. select *
  31. from teacher_course_reward
  32. where id_ = #{id,jdbcType=BIGINT}
  33. </select>
  34. <delete id="delete" parameterType="java.lang.Long">
  35. delete
  36. from teacher_course_reward
  37. where id_ = #{id,jdbcType=BIGINT}
  38. </delete>
  39. <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.TeacherCourseReward"
  40. useGeneratedKeys="true">
  41. insert into teacher_course_reward (music_group_id_, group_type_, course_schedule_id_list_,
  42. course_group_name_, organ_id_, teacher_id_,
  43. expect_reward_amount_, actual_reward_amount_,
  44. memo_, create_time_, update_time_)
  45. values (#{musicGroupId,jdbcType=VARCHAR}, #{groupType,jdbcType=VARCHAR},
  46. #{courseScheduleIdList,jdbcType=VARCHAR},
  47. #{courseGroupName,jdbcType=VARCHAR}, #{organId,jdbcType=INTEGER}, #{teacherId,jdbcType=INTEGER},
  48. #{expectRewardAmount,jdbcType=DECIMAL}, #{actualRewardAmount,jdbcType=DECIMAL},
  49. #{memo,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP})
  50. </insert>
  51. <update id="update" parameterType="com.ym.mec.biz.dal.entity.TeacherCourseReward">
  52. update teacher_course_reward
  53. <set>
  54. <if test="musicGroupId != null">
  55. music_group_id_ = #{musicGroupId,jdbcType=VARCHAR},
  56. </if>
  57. <if test="groupType != null">
  58. group_type_ = #{groupType,jdbcType=VARCHAR},
  59. </if>
  60. <if test="courseScheduleIdList != null">
  61. course_schedule_id_list_ = #{courseScheduleIdList,jdbcType=VARCHAR},
  62. </if>
  63. <if test="courseGroupName != null">
  64. course_group_name_ = #{courseGroupName,jdbcType=VARCHAR},
  65. </if>
  66. <if test="organId != null">
  67. organ_id_ = #{organId,jdbcType=INTEGER},
  68. </if>
  69. <if test="teacherId != null">
  70. teacher_id_ = #{teacherId,jdbcType=INTEGER},
  71. </if>
  72. <if test="expectRewardAmount != null">
  73. expect_reward_amount_ = #{expectRewardAmount,jdbcType=DECIMAL},
  74. </if>
  75. <if test="actualRewardAmount != null">
  76. actual_reward_amount_ = #{actualRewardAmount,jdbcType=DECIMAL},
  77. </if>
  78. <if test="memo != null">
  79. memo_ = #{memo,jdbcType=VARCHAR},
  80. </if>
  81. <if test="createTime != null">
  82. create_time_ = #{createTime,jdbcType=TIMESTAMP},
  83. </if>
  84. <if test="updateTime != null">
  85. update_time_ = #{updateTime,jdbcType=TIMESTAMP},
  86. </if>
  87. <if test="settlementDate != null">
  88. settlement_date_ = #{settlementDate},
  89. </if>
  90. <if test="settlementStatus != null">
  91. settlement_status_ = #{settlementStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
  92. </if>
  93. <if test="confirmStatus != null">
  94. confirm_status_ = #{confirmStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  95. </if>
  96. </set>
  97. where id_ = #{id,jdbcType=BIGINT}
  98. </update>
  99. <update id="batchUpdate">
  100. <foreach collection="teacherCourseRewards" item="item" index="index" open="" close="" separator=";">
  101. update teacher_course_reward
  102. <set>
  103. <if test="item.actualRewardAmount != null">
  104. actual_reward_amount_ = #{item.actualRewardAmount,jdbcType=DECIMAL},
  105. </if>
  106. <if test="item.memo != null">
  107. memo_ = #{item.memo,jdbcType=VARCHAR},
  108. </if>
  109. <if test="item.updateTime != null">
  110. update_time_ = #{item.updateTime,jdbcType=TIMESTAMP},
  111. </if>
  112. <if test="item.updateTime == null">
  113. update_time_ = NOW(),
  114. </if>
  115. <if test="item.settlementDate != null">
  116. settlement_date_ = #{item.settlementDate},
  117. </if>
  118. <if test="item.settlementStatus != null">
  119. settlement_status_ = #{item.settlementStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  120. </if>
  121. </set>
  122. where id_ = #{item.id,jdbcType=BIGINT}
  123. </foreach>
  124. </update>
  125. <update id="updateTeacherRewardConfirmStatusWithMonth">
  126. UPDATE teacher_course_reward SET confirm_status_ = #{confirmStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  127. WHERE DATE_FORMAT( settlement_date_, '%Y-%m' ) = #{month}
  128. <if test="teacherId!=null">
  129. AND teacher_id_=#{teacherId}
  130. </if>
  131. <if test="confirmStatus==@com.ym.mec.biz.dal.enums.TeacherSalaryConfirmStatus@COMPLETED">
  132. AND confirm_status_=1
  133. </if>
  134. </update>
  135. <sql id="queryCondition">
  136. <where>
  137. <if test="teacherId != null">
  138. AND tcr.teacher_id_=#{teacherId}
  139. </if>
  140. <if test="search != null and search != ''">
  141. AND (tcr.course_group_name_ LIKE CONCAT('%', #{search}, '%') OR tcr.music_group_id_ LIKE CONCAT(#{search}, '%'))
  142. </if>
  143. <if test="organId != null and organId != ''">
  144. AND FIND_IN_SET(tcr.organ_id_ ,#{organId})
  145. </if>
  146. <if test="settlementStatus != null and settlementStatus != ''">
  147. AND tcr.settlement_status_ = #{settlementStatus}
  148. </if>
  149. <if test="startTime != null">
  150. AND tcr.settlement_date_ >= #{startTime}
  151. </if>
  152. <if test="endTime != null">
  153. AND tcr.settlement_date_ &lt; #{endTime}
  154. </if>
  155. </where>
  156. </sql>
  157. <!-- 分页查询 -->
  158. <select id="queryPage" resultMap="teacherCourseReward" parameterType="map">
  159. SELECT tcr.*,su.real_name_ teacher_name_,o.name_ organ_name_ FROM teacher_course_reward tcr
  160. LEFT JOIN sys_user su ON su.id_ = tcr.teacher_id_
  161. LEFT JOIN organization o ON o.id_ = tcr.organ_id_
  162. <include refid="queryCondition"/>
  163. ORDER BY tcr.id_ DESC
  164. <include refid="global.limit"/>
  165. </select>
  166. <!-- 查询当前表的总记录数 -->
  167. <select id="queryCount" resultType="int" parameterType="map">
  168. SELECT count(*) FROM teacher_course_reward tcr
  169. <include refid="queryCondition"/>
  170. </select>
  171. <select id="findBySettlementStatus" resultMap="teacherCourseReward">
  172. SELECT * FROM teacher_course_reward tcr WHERE tcr.settlement_status_ = #{settlementStatus}
  173. </select>
  174. <select id="teacherCourseRewardStatWithMonth" resultMap="com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao.CourseTeacherSalaryStatisticsDto">
  175. SELECT
  176. COUNT( music_group_id_ ) course_times_,
  177. SUM( actual_reward_amount_ ) total_actual_salary_,
  178. SUM( expect_reward_amount_ ) - SUM( actual_reward_amount_ ) total_reduce_salary_
  179. FROM
  180. teacher_course_reward
  181. WHERE
  182. teacher_id_ = #{teacherId}
  183. AND DATE_FORMAT( settlement_date_, '%Y-%m' ) = #{month}
  184. GROUP BY
  185. teacher_id_
  186. </select>
  187. <select id="findTeacherCourseRewards" resultMap="teacherCourseReward">
  188. SELECT
  189. *
  190. FROM
  191. teacher_course_reward
  192. WHERE
  193. teacher_id_ = #{teacherId}
  194. AND DATE_FORMAT( settlement_date_, '%Y-%m' ) = #{month}
  195. ORDER BY id_ DESC
  196. <include refid="global.limit"/>
  197. </select>
  198. <select id="countTeacherCourseRewards" resultType="int">
  199. SELECT
  200. COUNT(id_)
  201. FROM
  202. teacher_course_reward
  203. WHERE
  204. teacher_id_ = #{teacherId}
  205. AND DATE_FORMAT( settlement_date_, '%Y-%m' ) = #{month}
  206. </select>
  207. <select id="findTeacherCourseRewardWithGroup" resultMap="teacherCourseReward">
  208. SELECT
  209. *
  210. FROM
  211. teacher_course_reward
  212. WHERE
  213. teacher_id_ = #{teacherId}
  214. AND music_group_id_=#{groupId}
  215. AND group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
  216. </select>
  217. </mapper>