VideoLessonGroupMapper.xml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <mapper namespace="com.yonge.cooleshow.biz.dal.dao.VideoLessonGroupDao">
  5. <resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.VideoLessonGroup">
  6. <id column="id_" jdbcType="BIGINT" property="id" />
  7. <result column="lesson_name_" jdbcType="VARCHAR" property="lessonName" />
  8. <result column="lesson_subject_" jdbcType="VARCHAR" property="lessonSubject" />
  9. <result column="lesson_desc_" jdbcType="VARCHAR" property="lessonDesc" />
  10. <result column="lesson_price_" jdbcType="INTEGER" property="lessonPrice" />
  11. <result column="lesson_cover_url_" jdbcType="VARCHAR" property="lessonCoverUrl" />
  12. <result column="teacher_id_" jdbcType="BIGINT" property="teacherId" />
  13. <result column="lesson_count_" jdbcType="INTEGER" property="lessonCount" />
  14. <result column="sort_number_" jdbcType="INTEGER" property="sortNumber" />
  15. <result column="lesson_tag_" jdbcType="VARCHAR" property="lessonTag" />
  16. <result column="top_flag_" jdbcType="TINYINT" property="topFlag" />
  17. <result column="hot_flag_" jdbcType="TINYINT" property="hotFlag" />
  18. <result column="shelves_flag_" jdbcType="TINYINT" property="shelvesFlag" />
  19. <result column="shelves_time_" property="shelvesTime" />
  20. <result column="shelves_reason_" property="shelvesReason" />
  21. <result column="shelves_id_" property="shelvesId" />
  22. <result column="virtual_number_" property="virtualNumber" />
  23. <result column="audit_status_" jdbcType="TINYINT" property="auditStatus" />
  24. <result column="audit_id_" jdbcType="INTEGER" property="auditId" />
  25. <result column="audit_name_" jdbcType="VARCHAR" property="auditName" />
  26. <result column="create_time_" jdbcType="TIMESTAMP" property="createTime" />
  27. <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime" />
  28. </resultMap>
  29. <sql id="baseColumns">
  30. g.id_ AS id,
  31. g.lesson_name_ AS lessonName,
  32. g.lesson_subject_ AS lessonSubject,
  33. g.lesson_desc_ AS lessonDesc,
  34. g.lesson_price_ AS lessonPrice,
  35. g.lesson_cover_url_ AS lessonCoverUrl,
  36. g.teacher_id_ AS teacherId,
  37. g.lesson_count_ AS lessonCount,
  38. g.sort_number_ AS sortNumber,
  39. g.lesson_tag_ AS lessonTag,
  40. g.top_flag_ AS topFlag,
  41. g.hot_flag_ AS hotFlag,
  42. g.shelves_flag_ AS shelvesFlag,
  43. g.shelves_time_ as shelvesTime,
  44. g.shelves_reason_ as shelvesReason,
  45. g.audit_status_ AS auditStatus,
  46. g.audit_version_ as auditVersion,
  47. g.shelves_id_ as shelvesId,
  48. g.create_time_ AS createTime,
  49. g.update_time_ AS updateTime,
  50. g.audit_id_ AS auditId,
  51. g.audit_name_ AS auditName,
  52. g.relation_type_ AS relationType,
  53. g.virtual_number_ as virtualNumber,
  54. </sql>
  55. <sql id="recordColumns">
  56. g.id_ AS id,
  57. g.lesson_name_ AS lessonName,
  58. g.lesson_subject_ AS lessonSubject,
  59. g.lesson_desc_ AS lessonDesc,
  60. g.lesson_price_ AS lessonPrice,
  61. g.lesson_cover_url_ AS lessonCoverUrl,
  62. g.teacher_id_ AS teacherId,
  63. g.lesson_count_ AS lessonCount,
  64. g.sort_number_ AS sortNumber,
  65. g.lesson_tag_ AS lessonTag,
  66. g.top_flag_ AS topFlag,
  67. g.hot_flag_ AS hotFlag,
  68. g.shelves_flag_ AS shelvesFlag,
  69. g.shelves_time_ as shelvesTime,
  70. g.shelves_reason_ as shelvesReason,
  71. g.create_time_ AS createTime,
  72. g.update_time_ AS updateTime,
  73. r.audit_id_ AS auditId,
  74. r.audit_name_ AS auditName,
  75. r.audit_status_ AS auditStatus,
  76. g.audit_version_ as auditVersion,
  77. g.virtual_number_ as virtualNumber,
  78. </sql>
  79. <update id="updateGroup" parameterType="com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupUpVo">
  80. UPDATE video_lesson_group
  81. <set>
  82. <if test="lessonName !=null and lessonName !=''">lesson_name_ = #{lessonName},</if>
  83. <if test="lessonSubject !=null and lessonSubject !=''">lesson_subject_ = #{lessonSubject},</if>
  84. <if test="lessonDesc !=null and lessonDesc !=''">lesson_desc_ = #{lessonDesc},</if>
  85. <if test="lessonPrice !=null and lessonPrice !=''">lesson_price_ = #{lessonPrice},</if>
  86. <if test="lessonCoverUrl !=null and lessonCoverUrl !=''">lesson_cover_url_ = #{lessonCoverUrl},</if>
  87. <if test="sortNumber !=null">sort_number_ = #{sortNumber},</if>
  88. <if test="lessonTag !=null and lessonTag !=''">lesson_tag_ = #{lessonTag},</if>
  89. <if test="topFlag !=null">top_flag_ = #{topFlag},</if>
  90. <if test="hotFlag !=null">hot_flag_ = #{hotFlag},</if>
  91. <if test="auditStatus !=null">audit_status_ = #{auditStatus},</if>
  92. update_time_ = SYSDATE(),
  93. lesson_count_ = (SELECT COUNT(1) FROM video_lesson_group_detail WHERE video_lesson_group_id_ = #{id})
  94. </set>
  95. WHERE id_ = #{id}
  96. </update>
  97. <update id="updateExamine" parameterType="com.yonge.cooleshow.biz.dal.vo.VideoLessonExamineVo">
  98. UPDATE video_lesson_group
  99. <set>
  100. <if test="shelvesFlag !=null">shelves_flag_ = #{shelvesFlag},</if>
  101. <if test="auditStatus !=null and auditStatus !=''">audit_status_ = #{auditStatus},</if>
  102. <if test="auditName !=null and auditName!=''">audit_name_ = #{auditName},</if>
  103. <if test="auditId !=null">audit_id_ = #{auditId},</if>
  104. <if test="shelvesTime !=null">shelves_time_ = #{shelvesTime},</if>
  105. <if test="remarks !=null and remarks !=''">remarks = #{remarks},</if>
  106. update_time_ = SYSDATE()
  107. </set>
  108. WHERE id_ = #{id}
  109. </update>
  110. <update id="updateShelves">
  111. UPDATE video_lesson_group
  112. <set>
  113. <if test="shelvesFlag !=null">shelves_flag_ = #{shelvesFlag},</if>
  114. <if test="shelvesTime !=null">shelves_time_ = #{shelvesTime},</if>
  115. <if test="shelvesReason !=null and shelvesReason!=''">shelves_reason_ = #{shelvesReason},</if>
  116. <if test="shelvesId !=null">shelves_id_ = #{shelvesId},</if>
  117. update_time_ = SYSDATE()
  118. </set>
  119. WHERE id_ = #{id}
  120. </update>
  121. <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupVo">
  122. SELECT
  123. <include refid="baseColumns"/>
  124. b.name_ AS lessonSubjectName,
  125. s.username_ AS username,
  126. s.avatar_ AS avatar,
  127. s.real_name_ AS realName,
  128. (SELECT COUNT(1) FROM video_lesson_purchase_record r WHERE r.video_lesson_group_id_=g.id_ AND r.order_status_='PAID') AS countStudent
  129. FROM video_lesson_group g
  130. LEFT JOIN sys_user s ON g.teacher_id_ = s.id_
  131. LEFT JOIN `subject` b ON g.lesson_subject_=b.id_
  132. <where>
  133. <if test="param.shelvesFlag !=null">
  134. AND g.shelves_flag_ = #{param.shelvesFlag}
  135. </if>
  136. <if test="param.auditStatus !=null">
  137. AND g.audit_status_ = #{param.auditStatus}
  138. </if>
  139. <if test="param.groupId !=null">
  140. AND g.id_ = #{param.groupId}
  141. </if>
  142. <if test="param.teacherId !=null">
  143. AND g.teacher_id_ = #{param.teacherId}
  144. </if>
  145. <if test="param.auditVersion != null">
  146. AND g.audit_version_ = #{param.auditVersion}
  147. </if>
  148. <if test="param.lessonSubject != null and param.lessonSubject != ''">
  149. AND g.lesson_subject_ = #{param.lessonSubject}
  150. </if>
  151. <if test="null != param.search and '' != param.search">
  152. AND (
  153. g.lesson_name_ LIKE CONCAT('%', #{param.search}, '%') OR
  154. s.username_ LIKE CONCAT('%', #{param.search}, '%')
  155. )
  156. </if>
  157. </where>
  158. ORDER BY g.top_flag_ desc,g.sort_number_ desc, countStudent DESC,g.id_ desc
  159. </select>
  160. <select id="selectStudentPage" resultType="com.yonge.cooleshow.biz.dal.vo.VideoLessonStudentDetailVo">
  161. SELECT
  162. g.id_ AS groupId,
  163. g.lesson_name_ AS lessonName,
  164. g.lesson_subject_ AS lessonSubject,
  165. j.name_ AS lessonSubjectName,
  166. g.lesson_count_ AS lessonCount,
  167. p.pay_money_ AS payMoney,
  168. p.order_no_ AS orderNo,
  169. p.purchase_time_ AS purchaseTime,
  170. g.audit_version_ as auditVersion
  171. FROM video_lesson_group g
  172. LEFT JOIN video_lesson_purchase_record p ON g.id_ = p.video_lesson_group_id_
  173. LEFT JOIN sys_user s ON g.teacher_id_ = s.id_
  174. LEFT JOIN subject j ON g.lesson_subject_ = j.id_
  175. <where>
  176. <if test="param.userId !=null">
  177. AND p.student_id_ = #{param.userId}
  178. </if>
  179. <if test="null != param.search and '' != param.search">
  180. AND (
  181. s.id_ LIKE CONCAT('%', #{param.search}, '%') OR
  182. s.username_ LIKE CONCAT('%', #{param.search}, '%') OR
  183. s.phone_ LIKE CONCAT('%', #{param.search}, '%') OR
  184. g.id_ LIKE CONCAT('%', #{param.search}, '%')
  185. )
  186. </if>
  187. <if test="null != param.orderNo and '' != param.orderNo">
  188. AND p.order_no_ = #{param.orderNo}
  189. </if>
  190. <if test="null != param.lessonSubject and '' != param.lessonSubject">
  191. AND g.lesson_subject_ = #{param.lessonSubject}
  192. </if>
  193. <if test="param.shelvesFlag !=null">
  194. AND g.shelves_flag_ = #{param.shelvesFlag}
  195. </if>
  196. <if test="param.auditStatus !=null">
  197. AND g.audit_status_ = #{param.auditStatus}
  198. </if>
  199. <if test="param.startTime !=null">
  200. <![CDATA[AND p.purchase_time_ >= #{param.startTime} ]]>
  201. </if>
  202. <if test="param.endTime !=null">
  203. <![CDATA[AND p.purchase_time_ <= #{param.endTime} ]]>
  204. </if>
  205. </where>
  206. </select>
  207. <select id="selectTeacherPage" resultType="com.yonge.cooleshow.biz.dal.vo.VideoLessonTeacherVo">
  208. SELECT
  209. g.id_ AS groupId,
  210. g.lesson_name_ AS lessonName,
  211. g.lesson_subject_ AS lessonSubject,
  212. j.name_ AS lessonSubjectName,
  213. g.lesson_count_ AS lessonCount,
  214. g.lesson_price_ AS lessonPrice,
  215. g.audit_status_ AS auditStatus,
  216. (SELECT COUNT(1) FROM video_lesson_purchase_record r WHERE r.video_lesson_group_id_=g.id_ AND r.order_status_='PAID') AS countStudent,
  217. g.create_time_ AS createTime,
  218. g.lesson_desc_ AS lessonDesc,
  219. g.virtual_number_ as virtualNumber
  220. FROM video_lesson_group g
  221. LEFT JOIN subject j ON g.lesson_subject_ = j.id_
  222. <where>
  223. <if test="param.userId !=null">
  224. AND g.teacher_id_ = #{param.userId}
  225. </if>
  226. <if test="null != param.search and '' != param.search">
  227. AND (
  228. g.id_ LIKE CONCAT('%', #{param.search}, '%') OR
  229. g.lesson_name_ LIKE CONCAT('%', #{param.search}, '%')
  230. )
  231. </if>
  232. <if test="null != param.lessonSubject and '' != param.lessonSubject">
  233. AND g.lesson_subject_ = #{param.lessonSubject}
  234. </if>
  235. <if test="param.auditStatus !=null">
  236. AND g.audit_status_ = #{param.auditStatus}
  237. </if>
  238. <if test="param.shelvesFlag !=null">
  239. AND g.shelves_flag_ = #{param.shelvesFlag}
  240. </if>
  241. </where>
  242. </select>
  243. <select id="selectPurchaseStudent" resultType="com.yonge.cooleshow.biz.dal.vo.VideoLessonPurchaseVo">
  244. SELECT
  245. p.student_id_ AS studentId,
  246. u.username_ AS username,
  247. u.real_name_ AS realName,
  248. u.phone_ AS phone,
  249. p.pay_money_ AS payMoney,
  250. p.order_no_ AS orderNo,
  251. o.pay_time_ AS purchaseTime
  252. FROM video_lesson_purchase_record p
  253. LEFT JOIN sys_user u ON p.student_id_ = u.id_
  254. LEFT JOIN user_order o ON p.order_no_ = o.order_no_
  255. WHERE p.order_status_='PAID'
  256. <if test="param.videoLessonGroupId !=null">
  257. AND p.video_lesson_group_id_ = #{param.videoLessonGroupId}
  258. </if>
  259. <if test="null != param.search and '' != param.search">
  260. AND (
  261. u.id_ LIKE CONCAT('%', #{param.search}, '%') OR
  262. u.username_ LIKE CONCAT('%', #{param.search}, '%') OR
  263. u.phone_ LIKE CONCAT('%', #{param.search}, '%')
  264. )
  265. </if>
  266. <if test="null != param.orderNo and '' != param.orderNo">
  267. AND p.order_no_ = #{param.orderNo}
  268. </if>
  269. <if test="param.startTime !=null">
  270. <![CDATA[AND p.purchase_time_ >= #{param.startTime} ]]>
  271. </if>
  272. <if test="param.endTime !=null">
  273. <![CDATA[AND p.purchase_time_ <= #{param.endTime} ]]>
  274. </if>
  275. </select>
  276. <select id="selectLessonGroup" resultType="com.yonge.cooleshow.biz.dal.vo.LessonGroupVo">
  277. SELECT
  278. g.id_ AS id,
  279. g.lesson_name_ AS lessonName,
  280. g.lesson_subject_ AS lessonSubject,
  281. s.name_ AS lessonSubjectName,
  282. g.lesson_desc_ AS lessonDesc,
  283. g.lesson_price_ AS lessonPrice,
  284. g.lesson_cover_url_ AS lessonCoverUrl,
  285. g.lesson_count_ AS lessonCount,
  286. g.teacher_id_ AS teacherId,
  287. g.relation_type_ AS relationType,
  288. u.username_ AS userName,
  289. u.real_name_ AS realName,
  290. u.avatar_ AS avatar,
  291. g.virtual_number_ as virtualNumber,
  292. g.audit_version_ as auditVersion,
  293. (SELECT COUNT(1) FROM video_lesson_purchase_record r WHERE r.video_lesson_group_id_=g.id_ AND r.order_status_='PAID') AS countStudent
  294. FROM video_lesson_group g
  295. LEFT JOIN sys_user u ON g.teacher_id_=u.id_
  296. LEFT JOIN `subject` s ON g.lesson_subject_ = s.id_
  297. <where>
  298. AND u.del_flag_ = 0
  299. <if test="null != param.search and '' != param.search">
  300. AND (
  301. u.username_ LIKE CONCAT('%', #{param.search}, '%') OR
  302. g.lesson_name_ LIKE CONCAT('%', #{param.search}, '%')
  303. )
  304. </if>
  305. <if test="param.shelvesFlag !=null">
  306. AND g.shelves_flag_ = #{param.shelvesFlag}
  307. </if>
  308. <if test="param.auditStatus !=null">
  309. AND g.audit_status_ = #{param.auditStatus}
  310. </if>
  311. <if test="param.studentId != null">
  312. AND g.id_ IN
  313. (SELECT video_lesson_group_id_ FROM video_lesson_purchase_record WHERE student_id_=#{param.studentId} AND order_status_='PAID')
  314. </if>
  315. <if test="param.teacherId != null">
  316. AND g.teacher_id_ = #{param.teacherId}
  317. </if>
  318. <if test="param.auditVersion != null">
  319. AND g.audit_version_ = #{param.auditVersion}
  320. </if>
  321. <if test="param.lessonSubject != null">
  322. AND s.id_ = #{param.lessonSubject}
  323. </if>
  324. </where>
  325. ORDER BY g.top_flag_ desc,g.sort_number_ desc, countStudent DESC,g.id_ desc
  326. </select>
  327. <select id="queryMyLessonGroup" resultType="com.yonge.cooleshow.biz.dal.vo.LessonGroupVo">
  328. SELECT
  329. g.video_lesson_group_id_ AS id,
  330. g.lesson_name_ AS lessonName,
  331. g.lesson_subject_ AS lessonSubject,
  332. s.name_ AS lessonSubjectName,
  333. g.lesson_desc_ AS lessonDesc,
  334. g.lesson_price_ AS lessonPrice,
  335. g.lesson_cover_url_ AS lessonCoverUrl,
  336. g.lesson_count_ AS lessonCount,
  337. g.teacher_id_ AS teacherId,
  338. u.username_ AS userName,
  339. u.real_name_ AS realName,
  340. u.avatar_ AS avatar,
  341. g.audit_version_ as auditVersion,
  342. g.relation_type_ as relationType,
  343. (SELECT COUNT(1) FROM video_lesson_purchase_record r WHERE r.video_lesson_group_id_=g.video_lesson_group_id_ AND r.order_status_='PAID') AS countStudent
  344. FROM video_lesson_purchase_record pr
  345. left join (
  346. SELECT gg.* FROM video_lesson_auth_record ar left join video_lesson_group_log gg on ar.video_group_id_ = gg.video_lesson_group_id_ and ar.version_ = gg.version_
  347. where ar.id_ in (select max(id_) from video_lesson_auth_record where audit_status_ = 'PASS' group by video_group_id_)
  348. ) g on g.video_lesson_group_id_ = pr.video_lesson_group_id_
  349. LEFT JOIN sys_user u ON g.teacher_id_=u.id_
  350. LEFT JOIN `subject` s ON g.lesson_subject_ = s.id_
  351. <where>
  352. AND u.del_flag_ = 0
  353. <if test="null != param.search and '' != param.search">
  354. AND (
  355. u.username_ LIKE CONCAT('%', #{param.search}, '%') OR
  356. g.lesson_name_ LIKE CONCAT('%', #{param.search}, '%')
  357. )
  358. </if>
  359. <if test="param.shelvesFlag !=null">
  360. AND g.shelves_flag_ = #{param.shelvesFlag}
  361. </if>
  362. <if test="param.auditStatus !=null">
  363. AND g.audit_status_ = #{param.auditStatus}
  364. </if>
  365. <if test="param.studentId != null">
  366. AND pr.student_id_ = #{param.studentId}
  367. </if>
  368. <if test="param.teacherId != null">
  369. AND g.teacher_id_ = #{param.teacherId}
  370. </if>
  371. <if test="param.auditVersion != null">
  372. AND g.audit_version_ = #{param.auditVersion}
  373. </if>
  374. <if test="param.lessonSubject != null">
  375. AND s.id_ = #{param.lessonSubject}
  376. </if>
  377. </where>
  378. ORDER BY g.create_time_ DESC
  379. </select>
  380. <select id="queryGroupList" resultType="com.yonge.cooleshow.biz.dal.vo.VideoLessonAuthGroup">
  381. SELECT
  382. g.id_ AS id,
  383. g.lesson_name_ AS lessonName,
  384. g.lesson_subject_ AS lessonSubject,
  385. g.lesson_desc_ AS lessonDesc,
  386. g.lesson_price_ AS lessonPrice,
  387. g.lesson_cover_url_ AS lessonCoverUrl,
  388. g.teacher_id_ AS teacherId,
  389. g.lesson_count_ AS lessonCount,
  390. g.sort_number_ AS sortNumber,
  391. g.lesson_tag_ AS lessonTag,
  392. g.top_flag_ AS topFlag,
  393. g.hot_flag_ AS hotFlag,
  394. g.shelves_flag_ AS shelvesFlag,
  395. g.shelves_time_ as shelvesTime,
  396. g.shelves_reason_ as shelvesReason,
  397. g.create_time_ AS createTime,
  398. g.update_time_ AS updateTime,
  399. g.audit_id_ AS auditId,
  400. g.audit_name_ AS auditName,
  401. g.audit_status_ AS auditStatus,
  402. g.audit_version_ as auditVersion,
  403. g.remarks as remarks,
  404. s.name_ AS subjectName,
  405. t.username_ AS teacherName,
  406. t.real_name_ AS realName,
  407. t.phone_ AS teacherPhone
  408. FROM video_lesson_group g
  409. LEFT JOIN `subject` s ON g.lesson_subject_=s.id_
  410. LEFT JOIN sys_user t ON g.teacher_id_=t.id_
  411. <where>
  412. g.audit_status_ is not null and g.draft_flag_ = 0
  413. <if test="null != param.search and '' != param.search">
  414. AND (
  415. g.id_ LIKE CONCAT('%', #{param.search}, '%') OR
  416. g.lesson_name_ LIKE CONCAT('%', #{param.search}, '%') OR
  417. t.id_ LIKE CONCAT('%', #{param.search}, '%') OR
  418. t.username_ LIKE CONCAT('%', #{param.search}, '%') OR
  419. t.phone_ LIKE CONCAT('%', #{param.search}, '%')
  420. )
  421. </if>
  422. <if test="param.auditStatus !=null and param.auditStatus !=''">
  423. AND g.audit_status_ = #{param.auditStatus}
  424. </if>
  425. <if test="param.shelvesFlag !=null">
  426. AND g.shelves_flag_ = #{param.shelvesFlag}
  427. </if>
  428. <if test="param.subjectId !=null">
  429. AND g.lesson_subject_ = #{param.subjectId}
  430. </if>
  431. <if test="param.auditName !=null and param.auditName !=''">
  432. AND g.audit_name_ LIKE CONCAT('%', #{param.auditName}, '%')
  433. </if>
  434. <if test="param.startTime !=null">
  435. <![CDATA[AND g.create_time_ >= #{param.startTime} ]]>
  436. </if>
  437. <if test="param.endTime !=null">
  438. <![CDATA[AND g.create_time_ <= #{param.endTime} ]]>
  439. </if>
  440. </where>
  441. ORDER BY g.update_time_ desc, g.id_ desc
  442. </select>
  443. <select id="queryGroupHistoryList" resultType="com.yonge.cooleshow.biz.dal.vo.VideoLessonAuthGroup">
  444. SELECT
  445. g.id_ AS id,
  446. g.lesson_name_ AS lessonName,
  447. g.lesson_subject_ AS lessonSubject,
  448. g.lesson_desc_ AS lessonDesc,
  449. g.lesson_price_ AS lessonPrice,
  450. g.lesson_cover_url_ AS lessonCoverUrl,
  451. g.teacher_id_ AS teacherId,
  452. g.lesson_count_ AS lessonCount,
  453. g.sort_number_ AS sortNumber,
  454. g.lesson_tag_ AS lessonTag,
  455. g.top_flag_ AS topFlag,
  456. g.hot_flag_ AS hotFlag,
  457. g.shelves_flag_ AS shelvesFlag,
  458. g.shelves_time_ as shelvesTime,
  459. g.shelves_reason_ as shelvesReason,
  460. g.create_time_ AS createTime,
  461. g.update_time_ AS updateTime,
  462. g.relation_type_ as relationType,
  463. g.video_detail_json_ as videoDetailJson,
  464. r.audit_id_ AS auditId,
  465. r.audit_name_ AS auditName,
  466. r.audit_status_ AS auditStatus,
  467. g.audit_version_ as auditVersion,
  468. r.video_group_id_ as videoGroupId,
  469. r.audit_status_ AS auditStatus,
  470. r.remarks as remarks,
  471. r.version_ as version,
  472. s.name_ AS subjectName,
  473. t.username_ AS teacherName,
  474. t.real_name_ AS realName,
  475. t.phone_ AS teacherPhone
  476. FROM video_lesson_auth_record r
  477. LEFT JOIN video_lesson_group_log g ON g.video_lesson_group_id_=r.video_group_id_ and r.version_ = g.version_
  478. LEFT JOIN `subject` s ON g.lesson_subject_=s.id_
  479. LEFT JOIN sys_user t ON g.teacher_id_=t.id_
  480. <where>
  481. and r.audit_status_ != 'DOING'
  482. <if test="null != param.groupId">
  483. AND r.video_group_id_ = #{param.groupId}
  484. </if>
  485. <if test="null != param.search and '' != param.search">
  486. AND (
  487. g.id_ LIKE CONCAT('%', #{param.search}, '%') OR
  488. g.lesson_name_ LIKE CONCAT('%', #{param.search}, '%') OR
  489. t.id_ LIKE CONCAT('%', #{param.search}, '%') OR
  490. t.username_ LIKE CONCAT('%', #{param.search}, '%') OR
  491. t.phone_ LIKE CONCAT('%', #{param.search}, '%')
  492. )
  493. </if>
  494. <if test="param.auditStatus !=null and param.auditStatus !=''">
  495. AND r.audit_status_ = #{param.auditStatus}
  496. </if>
  497. <if test="param.shelvesFlag !=null">
  498. AND g.shelves_flag_ = #{param.shelvesFlag}
  499. </if>
  500. <if test="param.subjectId !=null">
  501. AND g.lesson_subject_ = #{param.subjectId}
  502. </if>
  503. <if test="param.auditName !=null and param.auditName !=''">
  504. AND r.audit_name_ LIKE CONCAT('%', #{param.auditName}, '%')
  505. </if>
  506. <if test="param.startTime !=null">
  507. <![CDATA[AND g.create_time_ >= #{param.startTime} ]]>
  508. </if>
  509. <if test="param.endTime !=null">
  510. <![CDATA[AND g.create_time_ <= #{param.endTime} ]]>
  511. </if>
  512. </where>
  513. ORDER BY g.create_time_ DESC
  514. </select>
  515. <select id="authGroupDetil" resultType="com.yonge.cooleshow.biz.dal.vo.VideoLessonAuthGroup">
  516. SELECT
  517. g.id_ AS id,
  518. g.lesson_name_ AS lessonName,
  519. g.lesson_subject_ AS lessonSubject,
  520. g.lesson_desc_ AS lessonDesc,
  521. g.lesson_price_ AS lessonPrice,
  522. g.lesson_cover_url_ AS lessonCoverUrl,
  523. g.teacher_id_ AS teacherId,
  524. g.lesson_count_ AS lessonCount,
  525. g.sort_number_ AS sortNumber,
  526. g.lesson_tag_ AS lessonTag,
  527. g.top_flag_ AS topFlag,
  528. g.hot_flag_ AS hotFlag,
  529. g.shelves_flag_ AS shelvesFlag,
  530. g.shelves_time_ as shelvesTime,
  531. g.shelves_reason_ as shelvesReason,
  532. g.create_time_ AS createTime,
  533. g.update_time_ AS updateTime,
  534. g.audit_version_ as auditVersion,
  535. g.audit_id_ AS auditId,
  536. g.audit_name_ AS auditName,
  537. g.audit_status_ AS auditStatus,
  538. g.relation_type_ as relationType,
  539. r.version_ as version,
  540. r.video_group_id_ as videoGroupId,
  541. r.remarks as remarks,
  542. s.name_ AS subjectName,
  543. t.username_ AS teacherName,
  544. t.real_name_ AS realName,
  545. t.phone_ AS teacherPhone
  546. FROM video_lesson_group g
  547. LEFT JOIN video_lesson_auth_record r ON g.id_=r.video_group_id_
  548. LEFT JOIN `subject` s ON g.lesson_subject_=s.id_
  549. LEFT JOIN sys_user t ON g.teacher_id_=t.id_
  550. where g.id_ = #{videoGroupId}
  551. order by r.id_ desc limit 1
  552. </select>
  553. <select id="selectGroupById" resultType="com.yonge.cooleshow.biz.dal.entity.VideoLessonGroup"
  554. parameterType="java.lang.Long">
  555. SELECT
  556. <include refid="baseColumns"/>
  557. s.name_ AS lessonSubjectName
  558. FROM video_lesson_group g
  559. LEFT JOIN `subject` s ON g.lesson_subject_=s.id_
  560. WHERE g.id_=#{groupId}
  561. AND s.del_flag_ = 0
  562. </select>
  563. <select id="countVideoGroup" resultType="com.yonge.cooleshow.biz.dal.vo.CountVideoGroupVo">
  564. SELECT
  565. COUNT(1) AS videoLessonCount,
  566. (SELECT COUNT(1) FROM (SELECT COUNT(1) FROM video_lesson_purchase_record GROUP BY student_id_) a) AS payingUser,
  567. (SELECT COUNT(1) FROM video_lesson_group_detail WHERE video_lesson_group_id_ IN
  568. (SELECT id_ FROM video_lesson_group WHERE audit_status_='PASS' and shelves_flag_ = 1)) AS lessonCount
  569. FROM video_lesson_group WHERE audit_status_='PASS' and shelves_flag_ = 1
  570. </select>
  571. <select id="selectVideoLesson" resultType="com.yonge.cooleshow.biz.dal.vo.CountVideoGroupVo$VideoLesson">
  572. SELECT
  573. r.video_lesson_group_id_ AS videoLessonGroupId,
  574. g.lesson_name_ AS lessonName,
  575. g.lesson_count_ AS lessonNum,
  576. COUNT(1) AS payCount
  577. FROM video_lesson_purchase_record r
  578. LEFT JOIN video_lesson_group g ON r.video_lesson_group_id_=g.id_
  579. where g.shelves_flag_ = 1 and g.audit_status_ = 'PASS'
  580. GROUP BY r.video_lesson_group_id_
  581. ORDER BY payCount DESC
  582. LIMIT 5
  583. </select>
  584. </mapper>