UserSubscribeMapper.xml 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.zhongzheng.modules.user.mapper.UserSubscribeMapper">
  6. <resultMap type="com.zhongzheng.modules.user.domain.UserSubscribe" id="UserSubscribeResult">
  7. <result property="subscribeId" column="subscribe_id"/>
  8. <result property="goodsId" column="goods_id"/>
  9. <result property="userId" column="user_id"/>
  10. <result property="subscribeStatus" column="subscribe_status"/>
  11. <result property="beforeStatus" column="before_status"/>
  12. <result property="examStatus" column="exam_status"/>
  13. <result property="performance" column="performance"/>
  14. <result property="result" column="result"/>
  15. <result property="certificateCode" column="certificate_code"/>
  16. <result property="applyId" column="apply_id"/>
  17. <result property="studentType" column="student_type"/>
  18. <result property="examExpend" column="exam_expend"/>
  19. <result property="beforeExpend" column="before_expend"/>
  20. <result property="createTime" column="create_time"/>
  21. <result property="updateTime" column="update_time"/>
  22. <result property="importNo" column="import_no"/>
  23. <result property="orderGoodsId" column="order_goods_id"/>
  24. <result property="examineeCode" column="examinee_code"/>
  25. <result property="reportStatus" column="report_status"/>
  26. <result property="seatNumber" column="seat_number"/>
  27. <result property="reportFile" column="report_file"/>
  28. <result property="siteId" column="site_id"/>
  29. <result property="syncStatus" column="sync_status"/>
  30. <result property="roomAddress" column="room_address"/>
  31. <result property="syncResult" column="sync_result"/>
  32. <result property="roomName" column="room_name"/>
  33. <result property="roomId" column="room_id"/>
  34. <result property="roomCode" column="room_code"/>
  35. <result property="wisdomExamStatus" column="wisdom_exam_status"/>
  36. <result property="wisdomReportTime" column="wisdom_report_time"/>
  37. <result property="wisdomTemperature" column="wisdom_temperature"/>
  38. <result property="syncExamResult" column="sync_exam_result"/>
  39. <result property="signaturePushTime" column="signature_push_time"/>
  40. </resultMap>
  41. <resultMap type="com.zhongzheng.modules.user.vo.UserSubscribeVo" id="UserSubscribeVo">
  42. <result property="subscribeId" column="subscribe_id"/>
  43. <result property="goodsId" column="goods_id"/>
  44. <result property="userId" column="user_id"/>
  45. <result property="subscribeStatus" column="subscribe_status"/>
  46. <result property="beforeStatus" column="before_status"/>
  47. <result property="examStatus" column="exam_status"/>
  48. <result property="performance" column="performance"/>
  49. <result property="result" column="result"/>
  50. <result property="certificateCode" column="certificate_code"/>
  51. <result property="applyId" column="apply_id"/>
  52. <result property="studentType" column="student_type"/>
  53. <result property="examExpend" column="exam_expend"/>
  54. <result property="beforeExpend" column="before_expend"/>
  55. <result property="createTime" column="create_time"/>
  56. <result property="goodsName" column="goods_name"/>
  57. <result property="categoryName" column="category_name"/>
  58. <result property="goodsCode" column="goods_code"/>
  59. <result property="remark" column="remark"/>
  60. <result property="standPrice" column="stand_price"/>
  61. <result property="realname" column="realname"/>
  62. <result property="idCard" column="id_card"/>
  63. <result property="applyName" column="apply_name"/>
  64. <result property="beforeId" column="before_id"/>
  65. <result property="beforeName" column="before_name"/>
  66. <result property="applySiteAddress" column="apply_site_address"/>
  67. <result property="applySiteStartTime" column="apply_site_start_time"/>
  68. <result property="applySiteEndTime" column="apply_site_end_time"/>
  69. <result property="applySiteExamTime" column="apply_site_exam_time"/>
  70. <result property="applySiteAddressTrain" column="apply_site_address_train"/>
  71. <result property="applySiteStartTrainTime" column="apply_site_start_train_time"/>
  72. <result property="applySiteEndTrainTime" column="apply_site_end_train_time"/>
  73. <result property="applySiteExamTrainTime" column="apply_site_exam_train_time"/>
  74. <result property="applyStartTime" column="apply_start_time"/>
  75. <result property="applyEndTime" column="apply_end_time"/>
  76. <result property="businessId" column="business_id"/>
  77. <result property="beforeCount" column="before_count"/>
  78. <result property="beforeName" column="before_name"/>
  79. <result property="importNo" column="import_no"/>
  80. <result property="orderGoodsId" column="order_goods_id"/>
  81. <result property="examineeCode" column="examinee_code"/>
  82. <result property="reportStatus" column="report_status"/>
  83. <result property="seatNumber" column="seat_number"/>
  84. <result property="reportFile" column="report_file"/>
  85. <result property="siteId" column="site_id"/>
  86. <result property="syncStatus" column="sync_status"/>
  87. <result property="roomAddress" column="room_address"/>
  88. <result property="syncResult" column="sync_result"/>
  89. <result property="roomName" column="room_name"/>
  90. <result property="telphone" column="telphone"/>
  91. <result property="idCardImg1" column="id_card_img1"/>
  92. <result property="idCardImg2" column="id_card_img2"/>
  93. <result property="centerId" column="center_id"/>
  94. <result property="applyCode" column="apply_code"/>
  95. <result property="roomId" column="room_id"/>
  96. <result property="roomCode" column="room_code"/>
  97. <result property="wisdomExamStatus" column="wisdom_exam_status"/>
  98. <result property="wisdomReportTime" column="wisdom_report_time"/>
  99. <result property="wisdomTemperature" column="wisdom_temperature"/>
  100. <result property="syncExamResult" column="sync_exam_result"/>
  101. <result property="signaturePushTime" column="signature_push_time"/>
  102. </resultMap>
  103. <select id="listSubscribe" parameterType="com.zhongzheng.modules.user.bo.UserSubscribeQueryBo" resultMap="UserSubscribeVo">
  104. SELECT
  105. us.*, eb.before_name,
  106. (SELECT g.goods_name FROM goods g where us.goods_id = g.goods_id) as goods_name,
  107. (SELECT g.code FROM goods g where us.goods_id = g.goods_id) as goods_code,
  108. (SELECT g.stand_price FROM goods g where us.goods_id = g.goods_id) as stand_price,
  109. (SELECT m.category_name FROM goods g LEFT JOIN major m on g.major_id= m.id where us.goods_id = g.goods_id) as category_name,
  110. u.realname,
  111. u.id_card,
  112. (SELECT ea.apply_name FROM exam_apply ea where ea.apply_id = us.apply_id) as apply_name,
  113. (SELECT ea.apply_start_time FROM exam_apply ea where ea.apply_id = us.apply_id) as apply_start_time,
  114. (SELECT ea.apply_end_time FROM exam_apply ea where ea.apply_id = us.apply_id) as apply_end_time,
  115. (SELECT eb.before_name FROM exam_before eb where eb.before_id = us.before_id) as before_name,
  116. (SELECT ueg.do_number-ueg.expend_before FROM user_exam_goods ueg where ueg.goods_id = us.goods_id and ueg.user_id = us.user_id ORDER BY user_exam_goods_id DESC limit 1) as before_count,
  117. ueg.exam_number,
  118. ueg.do_number,
  119. ueg.expend_number,
  120. ueg.expend_before
  121. FROM
  122. user_subscribe us
  123. LEFT JOIN exam_before eb ON us.before_id = eb.before_id
  124. LEFT JOIN `user` u ON us.user_id = u.user_id
  125. LEFT JOIN goods g ON us.goods_id = g.goods_id
  126. LEFT JOIN course_business cb on g.business_id = cb.id
  127. LEFT JOIN user_exam_goods ueg ON ueg.order_goods_id = us.order_goods_id
  128. WHERE
  129. 1 =1
  130. <if test="applySiteAddress != null and applySiteAddress != '' ">
  131. and us.apply_site_address = #{applySiteAddress}
  132. </if>
  133. <if test="canCancel != null and canCancel == 1 ">
  134. and us.subscribe_status = 1
  135. and LEFT(us.apply_site_start_time,2)*3600+RIGHT(us.apply_site_start_time,2)*60+us.apply_site_exam_time > unix_timestamp(now())
  136. and us.exam_status = 0
  137. and us.before_status = 0
  138. </if>
  139. <if test="canBefore != null and canBefore == 1 ">
  140. and us.subscribe_status = 1
  141. and us.exam_status = 0
  142. and us.before_id = #{beforeId}
  143. and (SELECT count(*) from exam_before_apply eba LEFT JOIN exam_apply_goods eag on eag.apply_id = eba.apply_id where eba.before_id = #{beforeId} and eag.goods_id = us.goods_id) >0
  144. and (us.before_status = 1 or (SELECT count(*) from user_exam_goods ueg where ueg.user_id = us.user_id and ueg.goods_id = us.goods_id and ueg.do_number - ueg.expend_before>0)>0)
  145. </if>
  146. <if test="canExam != null and canExam == 1 ">
  147. and us.subscribe_status = 1
  148. </if>
  149. <if test="searchKey != null and searchKey != '' and searchType == 0 ">
  150. and (u.realname like concat('%', #{searchKey}, '%') or u.id_card like concat('%', #{searchKey}, '%'))
  151. </if>
  152. <if test="idCards != null and idCards.size()!=0 and searchType == 0" >
  153. AND u.id_card in
  154. <foreach collection="idCards" item="item" index="index" open="(" close=")" separator=",">
  155. #{item}
  156. </foreach>
  157. </if>
  158. <if test="searchType == 1" >
  159. and (u.realname like concat('%', #{searchKey}, '%') or u.id_card like concat('%', #{searchKey}, '%') or
  160. u.id_card in
  161. <foreach collection="idCards" item="item" index="index" open="(" close=")" separator=",">
  162. #{item}
  163. </foreach>)
  164. </if>
  165. <if test="userId != null and userId != '' ">
  166. and us.user_id = #{userId}
  167. </if>
  168. <if test="goodsId != null and goodsId != '' ">
  169. and us.goods_id = #{goodsId}
  170. </if>
  171. <if test="orderGoodsId != null and orderGoodsId != '' ">
  172. and us.order_goods_id = #{orderGoodsId}
  173. </if>
  174. <if test="result != null ">
  175. and us.result = #{result}
  176. </if>
  177. <if test="subscribeId != null and subscribeId != '' ">
  178. and us.subscribe_id = #{subscribeId}
  179. </if>
  180. <if test="subscribeStatus != null and subscribeStatus != '' ">
  181. and us.subscribe_status = #{subscribeStatus}
  182. </if>
  183. <if test="beforeStatus != null and beforeStatus != '' ">
  184. and us.before_status = #{beforeStatus}
  185. </if>
  186. <if test="applyId != null and applyId != '' ">
  187. and us.apply_id = #{applyId}
  188. </if>
  189. <if test="studentType != null and studentType != '' ">
  190. and us.student_type = #{studentType}
  191. </if>
  192. <if test="examStatus != null ">
  193. and us.exam_status = #{examStatus}
  194. </if>
  195. <if test="beforeStatus != null ">
  196. and us.before_status = #{beforeStatus}
  197. </if>
  198. <if test="examExpend != null ">
  199. and us.exam_expend is NOT NULL
  200. </if>
  201. <if test="beforeExpend != null ">
  202. and us.before_expend is NOT NULL
  203. </if>
  204. <if test="beforeId != null and canBefore == null">
  205. and us.before_id =#{beforeId}
  206. </if>
  207. <if test="exceedExamExpend != null and exceedExamExpend == 1">
  208. and us.exam_expend = 1
  209. </if>
  210. <if test="exceedExamExpend != null and exceedExamExpend == 2">
  211. and (us.exam_expend is null or us.exam_expend = 0)
  212. </if>
  213. <if test="exceed != null ">
  214. and unix_timestamp(now()) > us.apply_site_exam_time and us.exam_expend is NULL and us.subscribe_status = 1
  215. </if>
  216. <if test="majorId != null and majorId != '' ">
  217. and (SELECT m.id FROM goods g LEFT JOIN major m on g.major_id= m.id where us.goods_id = g.goods_id) = #{majorId}
  218. </if>
  219. <if test="realname != null and realname != '' ">
  220. and (SELECT u.realname FROM `user` u where us.user_id = u.user_id) like concat('%', #{realname}, '%')
  221. </if>
  222. <!-- 数据范围过滤 -->
  223. ${params.dataScope}
  224. order by us.create_time desc
  225. </select>
  226. <select id="selectGoodsName" parameterType="string" resultType="String">
  227. SELECT g.goods_name FROM goods g where g.`code`=#{code} and g.status = 1
  228. </select>
  229. <select id="selectGoodsId" parameterType="string" resultType="Long">
  230. SELECT g.goods_id FROM goods g where g.`code`=#{code} and g.status = 1
  231. </select>
  232. <select id="selectUserId" parameterType="map" resultType="Long">
  233. SELECT u.user_id FROM `user` u where u.realname=#{userName} and u.id_card=#{idCard}
  234. </select>
  235. <select id="selectBeforeId" parameterType="map" resultType="Long">
  236. SELECT eb.before_id FROM exam_before eb where eb.before_name=#{beforeName} and eb.status = 1
  237. </select>
  238. <select id="findApplyId" parameterType="map" resultType="Long">
  239. SELECT ea.apply_id FROM exam_apply ea where ea.apply_name=#{applyName} and ea.status != -1
  240. </select>
  241. <select id="selectApplyId" parameterType="map" resultType="Long">
  242. SELECT ea.apply_id FROM exam_apply ea where ea.apply_name=#{applyName} and ea.status != -1
  243. </select>
  244. <select id="selectSubscribeId" parameterType="map" resultType="Long">
  245. SELECT
  246. us.subscribe_id
  247. FROM
  248. user_subscribe us
  249. WHERE 1=1
  250. and us.subscribe_status =1
  251. and us.apply_id = #{applyId}
  252. and us.goods_id=#{goodsId}
  253. and us.user_id = #{userId}
  254. LIMIT 1
  255. </select>
  256. <select id="selectSubscribeUpdateId" parameterType="map" resultMap="UserSubscribeVo">
  257. SELECT
  258. us.*
  259. FROM
  260. user_subscribe us
  261. WHERE 1=1
  262. and us.subscribe_status =1
  263. and us.apply_id = #{applyId}
  264. and us.goods_id=#{goodsId}
  265. and us.user_id = #{userId}
  266. and us.apply_site_exam_time = #{applySiteExamTime}
  267. and us.apply_site_start_time = #{applySiteStartTime}
  268. and us.apply_site_end_time = #{applySiteEndTime}
  269. and us.apply_site_address = #{applySiteAddress}
  270. LIMIT 1
  271. </select>
  272. <select id="selectAddSubscribeId" parameterType="map" resultType="Long">
  273. SELECT
  274. us.subscribe_id
  275. FROM
  276. user_subscribe us
  277. WHERE 1=1
  278. and ((us.subscribe_status =1 and us.exam_status =0) or us.result = 1)
  279. and us.apply_id = #{applyId}
  280. and us.goods_id=#{goodsId}
  281. and us.user_id = #{userId}
  282. limit 1
  283. </select>
  284. <select id="queryBusinessId" parameterType="map" resultType="Long">
  285. SELECT
  286. COUNT( 1 )
  287. FROM
  288. user_subscribe us
  289. LEFT JOIN exam_apply ea ON ea.apply_id = us.apply_id
  290. LEFT JOIN exam_apply_goods eag on ea.apply_id = eag.apply_id
  291. LEFT JOIN goods g on eag.goods_id = g.goods_id
  292. where 1=1
  293. AND g.business_id = #{businessId}
  294. AND us.subscribe_id = #{subscribeId}
  295. </select>
  296. <select id="timeSend" resultMap="UserSubscribeVo">
  297. SELECT
  298. * ,
  299. (SELECT g.business_id FROM goods g where g.goods_id = us.goods_id) as business_id
  300. FROM
  301. user_subscribe us
  302. WHERE us.subscribe_status = 1
  303. and unix_timestamp(now())+86400 > us.apply_site_exam_time
  304. and unix_timestamp(now()) &lt; us.apply_site_exam_time
  305. and (SELECT COUNT(1) FROM inform_remind ir LEFT JOIN inform_remind_business irb on ir.id = irb.remind_id where ir.id=16 and (SELECT g.business_id FROM goods g where g.goods_id = us.goods_id) = irb.business_id) > 0
  306. </select>
  307. <select id="sendExamSucceed" parameterType="map" resultType="Long">
  308. SELECT
  309. COUNT( 1 )
  310. FROM
  311. inform_remind ir
  312. LEFT JOIN inform_remind_business irb on irb.remind_id =ir.id
  313. LEFT JOIN goods g on g.business_id = irb.business_id
  314. where 1=1
  315. and g.goods_id = #{goodsId}
  316. </select>
  317. <select id="listSubscribeByUser" parameterType="com.zhongzheng.modules.user.bo.UserSubscribeQueryBo" resultMap="UserSubscribeVo">
  318. SELECT
  319. us.user_id,
  320. u.realname,
  321. u.id_card
  322. FROM
  323. ( SELECT user_id FROM user_subscribe GROUP BY user_id ) us
  324. LEFT JOIN `user` u ON us.user_id = u.user_id
  325. WHERE
  326. 1 =1
  327. <if test="searchKey != null and searchKey != '' ">
  328. and (u.realname like concat('%', #{searchKey}, '%') or u.id_card like concat('%', #{searchKey}, '%'))
  329. </if>
  330. </select>
  331. <select id="getRecentExam" parameterType="com.zhongzheng.modules.user.bo.UserSubscribeQueryBo" resultMap="UserSubscribeVo">
  332. SELECT
  333. us.*
  334. FROM
  335. user_subscribe us
  336. WHERE
  337. 1 =1
  338. AND us.user_id = #{userId}
  339. AND us.subscribe_status = 1
  340. AND LEFT(us.apply_site_start_time,2)*3600+RIGHT(us.apply_site_start_time,2)*60+us.apply_site_exam_time > unix_timestamp(now())
  341. ORDER by us.apply_site_exam_time limit 1
  342. </select>
  343. <select id="getConsoleTestSubscribeNum" parameterType="com.zhongzheng.modules.base.bo.ConsoleQueryBo" resultType="Integer">
  344. SELECT
  345. COUNT(us.subscribe_id)
  346. FROM
  347. user_subscribe us
  348. LEFT JOIN goods g ON us.goods_id = g.goods_id
  349. WHERE
  350. 1=1
  351. <if test="orderGoodsId != null">
  352. AND us.order_goods_id = #{orderGoodsId}
  353. </if>
  354. <if test="businessId != null">
  355. AND g.business_id = #{businessId}
  356. </if>
  357. <if test="subscribeStatus != null">
  358. AND us.subscribe_status = #{subscribeStatus}
  359. </if>
  360. <if test="examStatus != null">
  361. AND us.exam_status = #{examStatus}
  362. </if>
  363. <if test="subStartTime != null">
  364. AND us.create_time &gt; #{subStartTime}
  365. </if>
  366. <if test="subEndTime != null">
  367. AND us.create_time &lt; #{subEndTime}
  368. </if>
  369. </select>
  370. <select id="selectApplyUserList" parameterType="map" resultMap="UserSubscribeVo">
  371. SELECT
  372. us.*,
  373. u.realname,
  374. u.id_card,
  375. u.telphone,
  376. u.id_card_img1,
  377. u.id_card_img2,
  378. es.center_id,
  379. ea.code as apply_code,
  380. ea.apply_name
  381. FROM
  382. user_subscribe us
  383. LEFT JOIN `user` u on u.user_id =us.user_id
  384. LEFT JOIN exam_apply ea on us.apply_id = ea.apply_id
  385. LEFT JOIN exam_site es on us.site_id = es.site_id
  386. WHERE 1=1
  387. and us.apply_id = #{applyId}
  388. and es.from_plat = 2
  389. </select>
  390. </mapper>