ExamApplyMapper.xml 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467
  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.exam.mapper.ExamApplyMapper">
  6. <resultMap type="com.zhongzheng.modules.exam.domain.ExamApply" id="ExamApplyResult">
  7. <result property="applyId" column="exam_apply_id"/>
  8. <result property="applyUrl" column="apply_url"/>
  9. <result property="applyName" column="apply_name"/>
  10. <result property="applyIntroduce" column="apply_introduce"/>
  11. <result property="applyStatus" column="apply_status"/>
  12. <result property="applyStartTime" column="apply_start_time"/>
  13. <result property="applyEndTime" column="apply_end_time"/>
  14. <result property="createTime" column="create_time"/>
  15. <result property="updateTime" column="update_time"/>
  16. <result property="status" column="status"/>
  17. <result property="reportStatus" column="report_status"/>
  18. </resultMap>
  19. <resultMap type="com.zhongzheng.modules.exam.vo.ExamApplyVo" id="ExamApplyVo">
  20. <result property="applyId" column="apply_id"/>
  21. <result property="applyUrl" column="apply_url"/>
  22. <result property="applyName" column="apply_name"/>
  23. <result property="applyIntroduce" column="apply_introduce"/>
  24. <result property="applyStatus" column="apply_status"/>
  25. <result property="applyStartTime" column="apply_start_time"/>
  26. <result property="applyEndTime" column="apply_end_time"/>
  27. <result property="status" column="status"/>
  28. <result property="educationName" column="education_name"/>
  29. <result property="projectName" column="project_name"/>
  30. <result property="businessName" column="business_name"/>
  31. <result property="cancelPeople" column="cancel_people"/>
  32. <result property="people" column="people"/>
  33. <result property="reportStatus" column="report_status"/>
  34. </resultMap>
  35. <resultMap type="com.zhongzheng.modules.exam.vo.ExamUserApplyVo" id="ExamUserApplyVo">
  36. <result property="applyId" column="apply_id"/>
  37. <result property="applyUrl" column="apply_url"/>
  38. <result property="applyName" column="apply_name"/>
  39. <result property="applyIntroduce" column="apply_introduce"/>
  40. <result property="applyStartTime" column="apply_start_time"/>
  41. <result property="applyEndTime" column="apply_end_time"/>
  42. <result property="major" column="major"/>
  43. <result property="realname" column="realname"/>
  44. <result property="idCard" column="id_card"/>
  45. <result property="reportStatus" column="report_status"/>
  46. </resultMap>
  47. <resultMap type="com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo" id="ExamNumberGoodsVoResult">
  48. <result property="id" column="id"/>
  49. <result property="examNumberId" column="exam_number_id"/>
  50. <result property="goodsId" column="goods_id"/>
  51. <result property="goodsName" column="goods_name"/>
  52. <result property="code" column="code"/>
  53. <result property="standPrice" column="stand_price"/>
  54. <result property="goodsStatus" column="goods_status"/>
  55. </resultMap>
  56. <resultMap type="com.zhongzheng.modules.exam.vo.ExamApplySiteVo" id="ExamApplySiteVo">
  57. <result property="id" column="id"/>
  58. <result property="siteId" column="site_id"/>
  59. <result property="applyId" column="apply_id"/>
  60. <result property="status" column="status"/>
  61. <result property="status" column="status"/>
  62. <result property="siteAddress" column="site_address"/>
  63. <result property="people" column="people"/>
  64. <result property="fromPlat" column="from_plat"/>
  65. </resultMap>
  66. <resultMap type="com.zhongzheng.modules.exam.vo.ExamUserApplySiteVo" id="ExamUserApplySiteVo">
  67. <result property="id" column="id"/>
  68. <result property="siteId" column="site_id"/>
  69. <result property="applyId" column="apply_id"/>
  70. <result property="status" column="status"/>
  71. <result property="siteAddress" column="site_address"/>
  72. <result property="people" column="people"/>
  73. </resultMap>
  74. <resultMap type="com.zhongzheng.modules.exam.vo.ExamApplySiteTimeVo" id="ExamApplySiteTimeVo">
  75. <result property="id" column="id"/>
  76. <result property="applySiteId" column="apply_site_id"/>
  77. <result property="siteTime" column="site_time"/>
  78. <result property="examTime" column="exam_time"/>
  79. </resultMap>
  80. <resultMap type="com.zhongzheng.modules.exam.vo.ExamUserApplySiteTimeVo" id="ExamUserApplySiteTimeVo">
  81. <result property="id" column="id"/>
  82. <result property="applySiteId" column="apply_site_id"/>
  83. <result property="siteTime" column="site_time"/>
  84. <result property="examTime" column="exam_time"/>
  85. </resultMap>
  86. <select id="listGoods" parameterType="com.zhongzheng.modules.exam.bo.ExamNumberGoodsQueryBo" resultMap="ExamNumberGoodsVoResult">
  87. SELECT
  88. goods_id,
  89. goods_name,
  90. CODE,
  91. stand_price,
  92. 1 as goods_status
  93. FROM
  94. goods g
  95. WHERE
  96. 1 = 1
  97. and g.status in(1)
  98. <if test="businessId != null and businessId != ''">
  99. and g.business_id = #{businessId}
  100. </if>
  101. <if test="goodsId != null and goodsId != ''">
  102. and g.goods_id = #{goodsId}
  103. </if>
  104. <if test="projectId != null and projectId != ''">
  105. and g.project_id = #{projectId}
  106. </if>
  107. <if test="subjectId != null and subjectId >0">
  108. AND (SELECT count(*) from goods_course gc LEFT JOIN course c ON gc.course_id = c.course_id where gc.goods_id = g.goods_id and c.`status` = 1
  109. AND c.subject_id = #{subjectId}) >0
  110. </if>
  111. <if test="goodsType != null and goodsType != ''">
  112. and g.goods_type = #{goodsType}
  113. </if>
  114. <if test="searchKey != null and searchKey != ''">
  115. and (g.goods_name like concat('%', #{searchKey}, '%'))
  116. </if>
  117. <if test="standPrice != null">
  118. AND g.stand_price = #{standPrice}
  119. </if>
  120. order by g.create_time desc
  121. </select>
  122. <select id="countGoods" parameterType="long" resultType="long">
  123. SELECT
  124. count(eag.goods_id)
  125. FROM
  126. exam_apply ea
  127. LEFT JOIN exam_apply_goods eag ON ea.apply_id = eag.apply_id where ea.apply_id =#{applyId}
  128. </select>
  129. <select id="countGoodsHold" parameterType="long" resultType="long">
  130. SELECT
  131. eag.goods_id
  132. FROM
  133. exam_apply ea
  134. LEFT JOIN exam_apply_goods eag ON ea.apply_id = eag.apply_id where ea.apply_id =#{applyId}
  135. and (
  136. SELECT
  137. COUNT( eay.apply_id )
  138. FROM
  139. exam_apply eay
  140. LEFT JOIN exam_apply_goods eags ON eay.apply_id = eags.apply_id
  141. WHERE
  142. eags.goods_id = eag.goods_id
  143. AND eags.apply_id != eag.apply_id and eay.status = 1) > 0
  144. </select>
  145. <select id="examNumberGoodsVos" parameterType="long" resultMap="ExamNumberGoodsVoResult">
  146. SELECT
  147. g.goods_id,
  148. g.goods_name,
  149. g.CODE,
  150. g.stand_price
  151. FROM
  152. goods g
  153. LEFT JOIN exam_apply_goods eag ON g.goods_id = eag.goods_id
  154. WHERE
  155. 1 = 1
  156. AND g.STATUS IN ( 1 )
  157. AND eag.apply_id =#{applyId}
  158. </select>
  159. <select id="addressExam" parameterType="map" resultMap="ExamApplySiteVo">
  160. SELECT
  161. *,
  162. es.site_address,
  163. es.people,
  164. es.from_plat
  165. FROM
  166. exam_apply_site eas
  167. LEFT JOIN exam_site es on eas.site_id = es.site_id
  168. WHERE
  169. eas.apply_id =#{applyId}
  170. and eas.`status` =#{status}
  171. </select>
  172. <select id="addressTimeExam" parameterType="map" resultMap="ExamApplySiteTimeVo">
  173. SELECT
  174. *
  175. FROM
  176. exam_apply_site_time east
  177. where 1=1
  178. and east.apply_site_id =#{id}
  179. </select>
  180. <select id="selectByApply" parameterType="long" resultMap="ExamApplyVo">
  181. SELECT
  182. * ,
  183. (select cet.education_name FROM course_education_type cet where ea.education_type_id= cet.id) as education_name,
  184. (select cpt.project_name FROM course_project_type cpt where ea.project_id= cpt.id) as project_name,
  185. (select cb.business_name FROM course_business cb where ea.business_id= cb.id) as business_name
  186. FROM
  187. exam_apply ea
  188. where 1=1
  189. and ea.apply_id = #{applyId}
  190. </select>
  191. <select id="queryExam" parameterType="com.zhongzheng.modules.exam.bo.ExamApplyQueryBo" resultMap="ExamApplyVo">
  192. SELECT
  193. * ,
  194. (select cet.education_name FROM course_education_type cet where ea.education_type_id= cet.id) as education_name,
  195. (select cpt.project_name FROM course_project_type cpt where ea.project_id= cpt.id) as project_name,
  196. (select cb.business_name FROM course_business cb where ea.business_id= cb.id) as business_name,
  197. (SELECT COUNT(us.apply_id) FROM user_subscribe us where us.apply_id = ea.apply_id and us.subscribe_status = 1) as people,
  198. (SELECT COUNT(us.apply_id) FROM user_subscribe us where us.apply_id = ea.apply_id and us.subscribe_status = 2) as cancel_people
  199. FROM
  200. exam_apply ea
  201. where 1=1
  202. <if test="status != null and status.size()!=0 ">
  203. AND ea.status in
  204. <foreach collection="status" item="item" index="index" open="(" close=")" separator=",">
  205. #{item}
  206. </foreach>
  207. </if>
  208. <if test="searchKey != null and searchKey != ''">
  209. and (ea.apply_name like concat('%', #{searchKey}, '%') or ea.code like concat('%', #{searchKey}, '%'))
  210. </if>
  211. order by ea.create_time desc
  212. </select>
  213. <select id="countGradePeriod" parameterType="long" resultType="integer">
  214. SELECT
  215. COUNT(cg.grade_id)
  216. FROM
  217. class_grade cg
  218. LEFT JOIN class_grade_user cgu ON cg.grade_id = cgu.grade_id
  219. WHERE
  220. 1 = 1
  221. AND cgu.user_id = #{userId}
  222. and cgu.grade_id = #{gradeId}
  223. AND cgu.period_status = 1
  224. and cg.`status` =1
  225. and cgu.`status` =1
  226. </select>
  227. <select id="countSubscribe" parameterType="com.zhongzheng.modules.exam.bo.ExamApplyQueryBo" resultType="integer">
  228. SELECT
  229. COUNT(1)
  230. FROM
  231. user_subscribe us
  232. WHERE
  233. 1 =1
  234. and us.user_id = #{userId}
  235. and us.result = 1
  236. and us.goods_id = #{goodsId}
  237. and us.order_goods_id = #{orderGoodsId}
  238. </select>
  239. <select id="countApplySubscribe" parameterType="com.zhongzheng.modules.exam.bo.ExamApplyQueryBo" resultType="integer">
  240. SELECT
  241. COUNT(1)
  242. FROM
  243. user_subscribe us
  244. WHERE
  245. 1 =1
  246. and us.subscribe_status = 1
  247. and us.apply_id = #{applyId}
  248. </select>
  249. <select id="countHaveSubscribe" parameterType="com.zhongzheng.modules.exam.bo.ExamApplyQueryBo" resultType="integer">
  250. SELECT
  251. COUNT(1)
  252. FROM
  253. user_subscribe us
  254. WHERE
  255. 1 =1
  256. and us.user_id = #{userId}
  257. and us.exam_status = 0
  258. and subscribe_status = 1
  259. and us.goods_id = #{goodsId}
  260. and us.order_goods_id = #{orderGoodsId}
  261. </select>
  262. <select id="selectExamUserApplyVo" parameterType="com.zhongzheng.modules.exam.bo.ExamApplyQueryBo" resultMap="ExamUserApplyVo">
  263. SELECT
  264. ea.apply_id,
  265. ea.apply_url,
  266. ea.apply_name,
  267. ea.apply_introduce,
  268. ea.apply_start_time,
  269. ea.apply_end_time,
  270. ea.apply_status,
  271. ea.report_status,
  272. (SELECT m.category_name FROM major m where m.id = g.major_id) as major,
  273. (SELECT u.realname FROM `user` u where u.user_id = #{userId}) as realname,
  274. (SELECT u.id_card FROM `user` u where u.user_id = #{userId}) as id_card
  275. FROM
  276. exam_apply ea
  277. LEFT JOIN exam_apply_goods eag ON ea.apply_id = eag.apply_id
  278. LEFT JOIN goods g on eag.goods_id=g.goods_id
  279. WHERE
  280. 1 = 1
  281. <if test="goodsId != null and goodsId != ''">
  282. AND eag.goods_id = #{goodsId}
  283. </if>
  284. <if test="applyId != null and applyId != ''">
  285. AND eag.apply_id = #{applyId}
  286. </if>
  287. AND ea.`status` =1
  288. </select>
  289. <select id="countHaveSubscribeNext" parameterType="long" resultType="integer">
  290. SELECT
  291. COUNT(1)
  292. FROM
  293. user_subscribe us
  294. where 1=1
  295. and us.user_id =#{userId}
  296. and us.exam_expend = 1
  297. and us.goods_id = #{goodsId}
  298. and us.order_goods_id = #{orderGoodsId}
  299. </select>
  300. <select id="residueSubscribeNext" parameterType="com.zhongzheng.modules.exam.bo.ExamApplyQueryBo" resultType="integer">
  301. SELECT
  302. ueg.exam_number - ueg.expend_number
  303. FROM
  304. user_exam_goods ueg
  305. WHERE
  306. ueg.user_id =#{userId}
  307. AND ueg.order_goods_id = #{orderGoodsId}
  308. LIMIT 1
  309. </select>
  310. <select id="beforeSubscribeNext" parameterType="com.zhongzheng.modules.exam.bo.ExamApplyQueryBo" resultType="integer">
  311. SELECT COUNT(1) FROM exam_apply_site es where es.apply_id = #{applyId} and es.status = 2
  312. </select>
  313. <select id="subscribeApplySite" parameterType="com.zhongzheng.modules.exam.bo.ExamApplyQueryBo" resultMap="ExamUserApplySiteVo">
  314. SELECT
  315. eas.apply_id,
  316. eas.id,
  317. es.*
  318. FROM
  319. exam_apply_site eas
  320. LEFT JOIN exam_site es ON es.site_id = eas.site_id
  321. WHERE
  322. eas.apply_id = #{applyId}
  323. and eas.status = 1
  324. </select>
  325. <select id="subscribeApplySiteTime" parameterType="Long" resultMap="ExamUserApplySiteTimeVo">
  326. SELECT * FROM exam_apply_site_time east where east.apply_site_id = #{id}
  327. </select>
  328. <select id="registration" parameterType="map" resultType="long">
  329. SELECT
  330. COUNT( 1 )
  331. FROM
  332. user_subscribe us
  333. WHERE
  334. subscribe_status = 1
  335. AND us.apply_id = #{applyId}
  336. AND us.apply_site_exam_time = #{examTime}
  337. AND us.apply_site_address = #{siteAddress}
  338. AND us.apply_site_start_time =#{startTime}
  339. AND us.apply_site_end_time =#{endTime}
  340. </select>
  341. <select id="userStatus" parameterType="map" resultType="long">
  342. SELECT
  343. COUNT( 1 )
  344. FROM
  345. user_subscribe us
  346. WHERE
  347. subscribe_status = 1
  348. AND us.apply_site_exam_time = #{examTime}
  349. AND us.user_id = #{userId}
  350. AND us.apply_site_start_time =#{startTime}
  351. AND us.apply_site_end_time =#{endTime}
  352. </select>
  353. <select id="subscribeApplySiteTrain" parameterType="com.zhongzheng.modules.exam.bo.ExamApplyQueryBo" resultMap="ExamUserApplySiteVo">
  354. SELECT
  355. eas.apply_id,
  356. eas.id,
  357. es.*
  358. FROM
  359. exam_apply_site eas
  360. LEFT JOIN exam_site es ON es.site_id = eas.site_id
  361. WHERE
  362. eas.apply_id = #{applyId}
  363. and eas.status = 2
  364. </select>
  365. <select id="registrationTrain" parameterType="map" resultType="long">
  366. SELECT
  367. COUNT( 1 )
  368. FROM
  369. user_subscribe us
  370. WHERE
  371. subscribe_status = 1
  372. AND us.apply_id = #{applyId}
  373. AND us.apply_site_exam_train_time = #{examTime}
  374. AND us.apply_site_address_train = #{siteAddress}
  375. AND us.apply_site_start_train_time =#{startTime}
  376. AND us.apply_site_end_train_time =#{endTime}
  377. </select>
  378. <select id="userStatusTrain" parameterType="map" resultType="long">
  379. SELECT
  380. COUNT( 1 )
  381. FROM
  382. user_subscribe us
  383. WHERE
  384. subscribe_status = 1
  385. AND us.apply_site_exam_train_time = #{examTime}
  386. AND us.user_id = #{userId}
  387. AND us.apply_site_start_train_time =#{startTime}
  388. AND us.apply_site_end_train_time =#{endTime}
  389. </select>
  390. <select id="checkSiteHave" parameterType="com.zhongzheng.modules.exam.bo.ExamApplyQueryBo" resultType="long">
  391. SELECT
  392. eas.id
  393. FROM
  394. exam_apply_site eas
  395. LEFT JOIN exam_site es ON es.site_id = eas.site_id
  396. WHERE
  397. 1=1
  398. <if test="applySiteAddress != null and applySiteAddress != ''">
  399. AND es.site_address = #{applySiteAddress}
  400. </if>
  401. <if test="applyId != null and applyId != ''">
  402. AND eas.apply_id = #{applyId}
  403. </if>
  404. <if test="status != null and status.size()!=0 ">
  405. AND eas.status in
  406. <foreach collection="status" item="item" index="index" open="(" close=")" separator=",">
  407. #{item}
  408. </foreach>
  409. </if>
  410. limit 1
  411. </select>
  412. <select id="checkSiteTimeHave" parameterType="com.zhongzheng.modules.exam.bo.ExamApplyQueryBo" resultType="long">
  413. SELECT count(*) FROM exam_apply_site_time where apply_site_id = #{applySiteId} and site_time like concat('%', #{startTime}, '%') and site_time like concat('%', #{endTime}, '%') and exam_time = #{examTime}
  414. </select>
  415. <select id="sitePeopleNum" parameterType="com.zhongzheng.modules.exam.bo.ExamApplyQueryBo" resultType="long">
  416. SELECT count(*) FROM user_subscribe where apply_id = #{applyId} and apply_site_start_time = #{startTime} and apply_site_end_time = #{endTime} and apply_site_exam_time = #{examTime} and apply_site_address = #{applySiteAddress} and subscribe_status = 1
  417. </select>
  418. <select id="siteTimeJson" parameterType="com.zhongzheng.modules.exam.bo.ExamApplyQueryBo" resultType="String">
  419. SELECT
  420. e1.site_time
  421. FROM
  422. exam_apply_site_time e1
  423. LEFT JOIN exam_apply_site ea ON e1.apply_site_id = ea.id
  424. LEFT JOIN exam_site es ON ea.site_id = es.site_id
  425. WHERE
  426. e1.apply_id = #{applyId}
  427. AND e1.exam_time = #{examTime}
  428. AND es.site_address = #{applySiteAddress}
  429. AND ea.`status` = 1
  430. </select>
  431. </mapper>