CourseScheduleTeacherSalaryMapper.xml 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  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.CourseScheduleTeacherSalaryDao">
  8. <resultMap type="com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary" id="CourseScheduleTeacherSalary">
  9. <result column="id_" property="id" />
  10. <result column="course_schedule_id_" property="courseScheduleId" />
  11. <result column="teacher_role_" property="teacherRole" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
  12. <result column="user_id_" property="userId" />
  13. <result column="username_" property="userName"/>
  14. <result column="expect_salary_" property="expectSalary" />
  15. <result column="create_time_" property="createTime" />
  16. <result column="update_time_" property="updateTime" />
  17. <result column="subsidy_" property="subsidy" />
  18. <result column="actual_salary_" property="actualSalary" />
  19. <result column="settlement_time_" property="settlementTime" />
  20. <result column="class_group_id_" property="classGroupId" />
  21. </resultMap>
  22. <!-- 根据主键查询一条记录 -->
  23. <select id="get" resultMap="CourseScheduleTeacherSalary" >
  24. SELECT * FROM course_schedule_teacher_salary WHERE id_ = #{id}
  25. </select>
  26. <!-- 全查询 -->
  27. <select id="findAll" resultMap="CourseScheduleTeacherSalary">
  28. SELECT * FROM course_schedule_teacher_salary ORDER BY id_
  29. </select>
  30. <!-- 向数据库增加一条记录 -->
  31. <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
  32. <!--
  33. <selectKey resultClass="int" keyProperty="id" >
  34. SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
  35. </selectKey>
  36. -->
  37. INSERT INTO course_schedule_teacher_salary (id_,course_schedule_id_,teacher_role_,user_id_,expect_salary_,create_time_,update_time_,subsidy_,actual_salary_,settlement_time_,class_group_id_) VALUES(#{id},#{courseScheduleId},#{teacherRole},#{userId},#{expectSalary},now(),now(),#{subsidy},#{actualSalary},#{settlementTime},#{classGroupId})
  38. </insert>
  39. <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
  40. INSERT INTO course_schedule_teacher_salary (id_,course_schedule_id_,teacher_role_,user_id_,expect_salary_,create_time_,update_time_,subsidy_,actual_salary_,settlement_time_,class_group_id_)
  41. VALUES
  42. <foreach collection="list" item="data" separator=",">
  43. (#{data.id},#{data.courseScheduleId},#{data.teacherRole},#{data.userId},#{data.expectSalary},now(),now(),#{data.subsidy},#{data.actualSalary},#{data.settlementTime},#{data.classGroupId})
  44. </foreach>
  45. </insert>
  46. <!-- 根据主键查询一条记录 -->
  47. <update id="update" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary">
  48. UPDATE course_schedule_teacher_salary
  49. <set>
  50. <if test="userId != null">
  51. user_id_ = #{userId},
  52. </if>
  53. <if test="subsidy != null">
  54. subsidy_ = #{subsidy},
  55. </if>
  56. <if test="expectSalary != null">
  57. expect_salary_ = #{expectSalary},
  58. </if>
  59. <if test="courseScheduleId != null">
  60. course_schedule_id_ = #{courseScheduleId},
  61. </if>
  62. <if test="settlementTime != null">
  63. settlement_time_ = #{settlementTime},
  64. </if>
  65. <if test="teacherRole != null">
  66. teacher_role_ = #{teacherRole},
  67. </if>
  68. <if test="updateTime != null">
  69. update_time_ = now(),
  70. </if>
  71. <if test="actualSalary != null">
  72. actual_salary_ = #{actualSalary},
  73. </if>
  74. <if test="classGroupId != null">
  75. class_group_id_ = #{classGroupId},
  76. </if>
  77. </set> WHERE id_ = #{id}
  78. </update>
  79. <!-- 根据主键删除一条记录 -->
  80. <delete id="delete" >
  81. DELETE FROM course_schedule_teacher_salary WHERE id_ = #{id}
  82. </delete>
  83. <delete id="batchDeleteByCourseScheduleIds">
  84. DELETE FROM course_schedule_teacher_salary WHERE id_ IN
  85. <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
  86. #{courseScheduleId}
  87. </foreach>
  88. </delete>
  89. <!-- 分页查询 -->
  90. <select id="queryPage" resultMap="CourseScheduleTeacherSalary" parameterType="map">
  91. SELECT * FROM course_schedule_teacher_salary ORDER BY id_ <include refid="global.limit"/>
  92. </select>
  93. <!-- 查询当前表的总记录数 -->
  94. <select id="queryCount" resultType="int">
  95. SELECT COUNT(*) FROM course_schedule_teacher_salary
  96. </select>
  97. <resultMap id="VipGroupSalaryDto" type="com.ym.mec.biz.dal.dto.VipGroupSalaryDto" extends="CourseScheduleTeacherSalary">
  98. <result column="course_schedule_id_" property="courseScheduleId" />
  99. <result column="class_date_" property="classDate" />
  100. <result column="teach_mode_" property="teachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler" />
  101. </resultMap>
  102. <sql id="vipGroupSalaryQueryCondition">
  103. <where>
  104. vg.id_=#{vipGroupId} AND FIND_IN_SET(#{organId},vg.organ_id_list_)
  105. <if test="startTime!=null and endTime!=null">
  106. AND (cs.class_date_ BETWEEN #{startTime} AND #{endTime})
  107. </if>
  108. </where>
  109. </sql>
  110. <select id="findVipGroupSalarys" resultMap="VipGroupSalaryDto">
  111. SELECT
  112. cs.id_ course_schedule_id_,
  113. CONCAT(cs.class_date_," ",cs.start_class_time_) class_date_,
  114. cs.teach_mode_,
  115. csts.*
  116. FROM
  117. vip_group vg
  118. LEFT JOIN vip_group_class_group_mapper vgcgm ON vg.id_ = vgcgm.vip_group_id_
  119. LEFT JOIN course_schedule cs ON vgcgm.class_group_id_ = cs.class_group_id_
  120. LEFT JOIN course_schedule_teacher_salary csts ON cs.id_ = csts.course_schedule_id_
  121. <include refid="vipGroupSalaryQueryCondition"/>
  122. ORDER BY id_
  123. <include refid="global.limit"/>
  124. </select>
  125. <select id="countVipGroupSalarys" resultType="int">
  126. SELECT
  127. COUNT(*)
  128. FROM
  129. vip_group vg
  130. LEFT JOIN vip_group_class_group_mapper vgcgm ON vg.id_ = vgcgm.vip_group_id_
  131. LEFT JOIN course_schedule cs ON vgcgm.class_group_id_ = cs.class_group_id_
  132. <include refid="vipGroupSalaryQueryCondition"/>
  133. </select>
  134. <select id="findSomeDayAgoTeacherCourseSalaryNoSettlement" resultMap="CourseScheduleTeacherSalary">
  135. SELECT
  136. cs.class_date_,
  137. csts.*
  138. FROM
  139. course_schedule_teacher_salary csts
  140. LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
  141. WHERE
  142. CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) &lt;= DATE_ADD( NOW( ), INTERVAL - 7 DAY )
  143. AND cs.type_='VIP'
  144. AND csts.settlement_time_ IS NULL
  145. </select>
  146. <select id="queryByCourseScheduleIdAndUserId" resultMap="CourseScheduleTeacherSalary" parameterType="map">
  147. SELECT * FROM course_schedule_teacher_salary where user_id_ = #{teacherId} and course_schedule_id_ = #{courseScheduleId}
  148. </select>
  149. <select id="findByCourseScheduleIdsAndTeacherRole" resultMap="CourseScheduleTeacherSalary">
  150. SELECT
  151. csts.*,
  152. su.username_
  153. FROM
  154. course_schedule_teacher_salary csts
  155. LEFT JOIN sys_user su ON csts.user_id_=su.id_
  156. WHERE csts.course_schedule_id_ IN
  157. <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
  158. #{courseScheduleId}
  159. </foreach>
  160. AND csts.teacher_role_=#{teacherRole}
  161. </select>
  162. <select id="findMusicGroupSettlementTypeByCourse" resultType="map">
  163. SELECT
  164. cs.id_ AS 'key',
  165. mg.settlement_type_ AS 'value'
  166. FROM
  167. course_schedule cs
  168. LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
  169. LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
  170. WHERE cs.id_ IN
  171. <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
  172. #{courseScheduleId}
  173. </foreach>
  174. </select>
  175. <select id="findMusicGroupChargeTypeByCourse" resultType="map">
  176. SELECT
  177. cs.id_ AS 'key',
  178. mg.charge_type_id_ AS 'value'
  179. FROM
  180. course_schedule cs
  181. LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
  182. LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
  183. WHERE cs.id_ IN
  184. <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
  185. #{courseScheduleId}
  186. </foreach>
  187. </select>
  188. <select id="findCourseSubsidyByCourses" resultType="map">
  189. SELECT
  190. cs.id_,
  191. s.subsidy_
  192. FROM
  193. course_schedule cs
  194. LEFT JOIN school s ON cs.schoole_id_=s.id_
  195. WHERE cs.id_ IN
  196. <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
  197. #{courseScheduleId}
  198. </foreach>
  199. </select>
  200. <resultMap id="CourseScheduleTeachersDto" type="com.ym.mec.biz.dal.dto.CourseScheduleTeachersDto">
  201. <result property="teacherId" column="user_id_"/>
  202. <result property="teacherName" column="real_name_"/>
  203. <result property="teacherRole" column="teacher_role_"/>
  204. <result property="expectSalary" column="expect_salary_"/>
  205. <result property="subsidy" column="subsidy_"/>
  206. </resultMap>
  207. <select id="queryTeacherSalary" resultMap="CourseScheduleTeachersDto">
  208. SELECT csts.user_id_,su.real_name_,csts.teacher_role_,csts.expect_salary_,csts.subsidy_
  209. FROM course_schedule_teacher_salary csts
  210. LEFT JOIN sys_user su ON su.id_ = csts.user_id_
  211. WHERE csts.course_schedule_id_ = #{courseScheduleId}
  212. </select>
  213. <select id="findByCourseSchedules" resultMap="CourseScheduleTeacherSalary">
  214. SELECT * FROM course_schedule_teacher_salary WHERE course_schedule_id_ IN
  215. <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
  216. #{courseScheduleId}
  217. </foreach>
  218. </select>
  219. <select id="countTeacherOnlineOfflineSalaryByClass" resultType="map">
  220. SELECT
  221. cs.teach_mode_ AS 'key',
  222. SUM( csts.actual_salary_ ) AS 'value'
  223. FROM
  224. course_schedule cs
  225. LEFT JOIN course_schedule_teacher_salary csts ON cs.id_ = csts.course_schedule_id_
  226. WHERE cs.class_group_id_=#{classGroupId} AND cs.id_ IS NOT NULL AND cs.status_='OVER'
  227. GROUP BY cs.teach_mode_
  228. </select>
  229. <update id="batchUpdateWages" parameterType="map">
  230. UPDATE course_schedule_teacher_salary set
  231. subsidy_ = #{subsidy},
  232. expect_salary_ = #{salary},
  233. update_time_ = now()
  234. WHERE user_id_ = #{userId} and class_group_id_ = #{classGroupId}
  235. </update>
  236. <update id="batchUpdateTeacherExpectSalary">
  237. UPDATE course_schedule_teacher_salary
  238. SET expect_salary_ = 0
  239. WHERE
  240. course_schedule_id_ = #{courseScheduleId}
  241. AND user_id_ IN
  242. <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
  243. #{userId}
  244. </foreach>
  245. </update>
  246. </mapper>