SmartUserMapper.xml 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594
  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.template.mapper.SmartUserMapper">
  4. <resultMap type="com.template.model.vo.AffiliateUserVo" id="affiliateUserMap">
  5. <result property="id" column="id"/>
  6. <result property="name" column="name"/>
  7. <result property="cardNo" column="card_no"/>
  8. <result property="departmentId" column="department_id"/>
  9. <result property="headImage" column="head_image"/>
  10. </resultMap>
  11. <select id="queryAffiliateUserById" resultType="com.template.model.vo.AffiliateUserVo" resultMap="affiliateUserMap">
  12. select id,name,card_no,department_id,head_image from smart_user
  13. where find_in_set(id,(select affiliate from smart_user where
  14. deleted = 0
  15. <if test="id != null and id != ''">
  16. and id = #{id}
  17. </if>
  18. )) and deleted = 0
  19. </select>
  20. <resultMap type="com.template.model.vo.UserVo" id="smartUserPageMap">
  21. <result property="id" column="id"/>
  22. <result property="cardNo" column="card_no"/>
  23. <result property="name" column="name"/>
  24. <result property="identityId" column="identity_id"/>
  25. <result property="idCard" column="id_card"/>
  26. <result property="sexId" column="sex_id"/>
  27. <result property="departmentId" column="department_id"/>
  28. <result property="headImage" column="head_image"/>
  29. <result property="grade" column="grade"/>
  30. <result property="college" column="college"/>
  31. <result property="speciality" column="speciality"/>
  32. <result property="schoolClass" column="school_class"/>
  33. <result property="campus" column="campus"/>
  34. <result property="dormitoryNumber" column="dormitory_number"/>
  35. <result property="phone" column="phone"/>
  36. <result property="affiliate" column="affiliate"/>
  37. <result property="title" column="title"/>
  38. <result property="address" column="address"/>
  39. <result property="nation" column="nation"/>
  40. <result property="ofStudent" column="of_student"/>
  41. <result property="graduate" column="graduate"/>
  42. <result property="duties" column="duties"/>
  43. <result property="timeGroupId" column="time_group_id"/>
  44. <result property="manageSchoolClass" column="manage_school_class"/>
  45. <result property="manageGrade" column="manage_grade"/>
  46. <result property="ifGraduate" column="if_graduate"/>
  47. </resultMap>
  48. <select id="querySmartUserPages" resultType="com.template.model.vo.UserVo" resultMap="smartUserPageMap">
  49. select
  50. id,card_no,name,identity_id,id_card,sex_id,department_id,head_image,grade,college,speciality,school_class,campus,dormitory_number,
  51. phone,affiliate,title,address,nation,of_student,graduate,duties,time_group_id,manage_school_class,manage_grade,if_graduate
  52. from smart_user
  53. where deleted = 0 and is_cancel = 0
  54. <if test="departmentIds != null and departmentIds.size() > 0">
  55. and department_id in
  56. <foreach collection="departmentIds" item="departmentId" index="index" open="(" close=")" separator=",">
  57. ${departmentId}
  58. </foreach>
  59. </if>
  60. <if test="name != null and name != ''">
  61. and (name like '%' #{name} '%' or card_no like '%' #{name} '%')
  62. </if>
  63. <if test="ifGraduate != null and ifGraduate == 1">
  64. and if_graduate= #{ifGraduate}
  65. </if>
  66. <if test="ifGraduate != null and ifGraduate == 0">
  67. and if_graduate is null
  68. </if>
  69. </select>
  70. <select id="querySmartUserNoAuthPages" resultType="com.template.model.vo.UserVo" resultMap="smartUserPageMap">
  71. select
  72. id,card_no,name,identity_id,id_card,sex_id,department_id,head_image,grade,college,speciality,school_class,campus,dormitory_number,
  73. phone,affiliate,title,address,nation,of_student,graduate,duties,time_group_id,manage_school_class,manage_grade
  74. from smart_user
  75. where deleted = 0 and is_cancel = 0
  76. <if test="departmentIds != null and departmentIds.size() > 0">
  77. and department_id in
  78. <foreach collection="departmentIds" item="departmentId" index="index" open="(" close=")" separator=",">
  79. ${departmentId}
  80. </foreach>
  81. </if>
  82. <if test="name != null and name != ''">
  83. and (name like '%' #{name} '%' or card_no like '%' #{name} '%')
  84. </if>
  85. </select>
  86. <resultMap type="com.template.model.pojo.SmartUser" id="smartUsersMap">
  87. <result property="cardNo" column="card_no"/>
  88. <result property="name" column="name"/>
  89. <result property="identityId" column="identity_id"/>
  90. <result property="idCard" column="id_card"/>
  91. <result property="sexId" column="sex_id"/>
  92. <result property="departmentId" column="department_id"/>
  93. <result property="headImage" column="head_image"/>
  94. <result property="grade" column="grade"/>
  95. <result property="college" column="college"/>
  96. <result property="speciality" column="speciality"/>
  97. <result property="schoolClass" column="school_class"/>
  98. <result property="campus" column="campus"/>
  99. <result property="dormitoryNumber" column="dormitory_number"/>
  100. <result property="phone" column="phone"/>
  101. <result property="affiliate" column="affiliate"/>
  102. <result property="title" column="title"/>
  103. <result property="address" column="address"/>
  104. <result property="nation" column="nation"/>
  105. <result property="ofStudent" column="of_student"/>
  106. <result property="graduate" column="graduate"/>
  107. <result property="duties" column="duties"/>
  108. <result property="timeGroupId" column="time_group_id"/>
  109. <result property="ifGraduate" column="if_graduate"/>
  110. </resultMap>
  111. <select id="querySmartUsers" resultType="com.template.model.pojo.SmartUser" resultMap="smartUsersMap">
  112. select
  113. card_no,name,identity_id,id_card,sex_id,department_id,head_image,grade,college,time_group_id,speciality,school_class,campus,dormitory_number,
  114. phone,affiliate,title,address,nation,of_student,graduate,duties,if_graduate from smart_user
  115. where deleted = 0 and is_cancel = 0
  116. <if test="departmentIds != null and departmentIds.size() > 0">
  117. and department_id in
  118. <foreach collection="departmentIds" item="departmentId" index="index" open="(" close=")" separator=",">
  119. ${departmentId}
  120. </foreach>
  121. </if>
  122. <if test="name != null and name != ''">
  123. and name like '%' #{name} '%'
  124. </if>
  125. <if test="ifGraduate != null and ifGraduate == 1">
  126. and if_graduate= #{ifGraduate}
  127. </if>
  128. <if test="ifGraduate != null and ifGraduate == 0">
  129. and if_graduate is null
  130. </if>
  131. </select>
  132. <resultMap type="com.template.model.vo.GradeVo" id="smartSecordUserPageMap">
  133. <result property="id" column="id"/>
  134. <result property="name" column="name"/>
  135. <result property="grade" column="grade"/>
  136. <result property="schoolClass" column="school_class"/>
  137. <result property="cardNo" column="card_no"/>
  138. </resultMap>
  139. <select id="querySmartSecordPage" resultType="com.template.model.vo.GradeVo" resultMap="smartSecordUserPageMap">
  140. select id,name,grade,school_class,card_no from smart_user
  141. where deleted = 0 and is_cancel = 0 and identity_id = 2
  142. <if test="name != null and name != ''">
  143. and name like '%' #{name} '%'
  144. </if>
  145. <if test="userId != null and userId != '' and userId != 0">
  146. and id != #{userId}
  147. </if>
  148. </select>
  149. <select id="warningUserList" resultType="com.template.model.dto.WarningUserDto">
  150. SELECT
  151. su.id AS id,
  152. su.`name` AS `name`,
  153. su.card_no AS cardNo,
  154. sd.`name` AS departmentName
  155. FROM
  156. `smart_user` su
  157. LEFT JOIN smart_department sd ON sd.id = su.department_id and sd.deleted=0
  158. where su.deleted = 0 and su.is_cancel = 0
  159. <if test="name != null and name != ''">
  160. and su.`name` like '%' #{name} '%'
  161. </if>
  162. </select>
  163. <select id="warningPushList" resultType="com.template.model.dto.WarningUserDto">
  164. SELECT su.id AS id,
  165. su.`name` AS `name`,
  166. su.card_no AS cardNo,
  167. sd.`name` AS departmentName
  168. FROM `smart_user` su
  169. LEFT JOIN smart_department sd ON sd.id = su.department_id and sd.deleted = 0
  170. WHERE su.is_push = 1
  171. and su.is_cancel = 0
  172. and su.deleted = 0
  173. </select>
  174. <resultMap type="com.template.model.vo.AffiliateParentVo" id="affiliateParentMap">
  175. <result property="id" column="id"/>
  176. <result property="name" column="name"/>
  177. </resultMap>
  178. <select id="queryAffiliateParents" resultType="com.template.model.vo.AffiliateParentVo"
  179. resultMap="affiliateParentMap">
  180. SELECT id,name FROM `smart_user`
  181. where deleted = 0 and is_cancel=0
  182. <if test="userId != null and userId != ''">
  183. and FIND_IN_SET(#{userId},affiliate)
  184. </if>
  185. </select>
  186. <select id="getAffiliateList" resultType="com.template.model.pojo.SmartUser">
  187. SELECT * FROM `smart_user`
  188. where deleted = 0 and is_cancel=0
  189. <if test="id != null and id != ''">
  190. and FIND_IN_SET(#{id},affiliate)
  191. </if>
  192. </select>
  193. <resultMap type="com.template.model.vo.SmartUserVo" id="smartUserMap">
  194. <result property="id" column="id"/>
  195. <result property="grade" column="grade"/>
  196. <result property="gradeId" column="grade_id"/>
  197. <result property="schoolClass" column="school_class"/>
  198. <result property="schoolClassId" column="school_class_id"/>
  199. <result property="name" column="name"/>
  200. <result property="cardNo" column="card_no"/>
  201. </resultMap>
  202. <select id="querySmartUserById" resultType="com.template.model.vo.SmartUserVo" resultMap="smartUserMap">
  203. select su.id,sg.name as grade,sg.id as grade_id,sc.name as school_class,sc.id as
  204. school_class_id,su.name,su.card_no
  205. from smart_user su
  206. left join smart_grade sg on sg.id = su.grade and sg.deleted = 0
  207. left join smart_class sc on sc.id = su.school_class and sc.deleted = 0
  208. where su.deleted = 0
  209. <if test="userId != null and userId != '' and userId != 0">
  210. and su.id = #{userId}
  211. </if>
  212. </select>
  213. <update id="deleteUserBatch" parameterType="com.template.model.vo.deleteUserVo">
  214. <foreach collection="list" item="item" index="index" open="" close="" separator=";">
  215. update smart_user
  216. <set>
  217. delete_reason=#{item.reason}
  218. </set>
  219. where id = ${item.id}
  220. </foreach>
  221. </update>
  222. <resultMap type="com.template.model.vo.UserDeleteVo" id="smartUserDeletePageMap">
  223. <result property="id" column="id"/>
  224. <result property="name" column="name"/>
  225. <result property="identityId" column="identity_id"/>
  226. <result property="departmentId" column="department_id"/>
  227. <result property="cardNo" column="card_no"/>
  228. <result property="headImage" column="head_image"/>
  229. <result property="deleteReason" column="delete_reason"/>
  230. </resultMap>
  231. <select id="queryUserDeletePage" resultType="com.template.model.vo.UserDeleteVo" resultMap="smartUserDeletePageMap">
  232. select id, name, identity_id, department_id, card_no, head_image, delete_reason
  233. from smart_user
  234. where delete_reason != '' or delete_reason != null
  235. order by update_time desc
  236. </select>
  237. <resultMap type="com.template.model.vo.SmartStudentVo" id="smartStudentMap">
  238. <result property="id" column="id"/>
  239. <result property="identityId" column="identity_id"/>
  240. <result property="bsStudentNo" column="bs_student_no"/>
  241. <result property="bsGradeNo" column="bs_grade_no"/>
  242. <result property="bsClassNo" column="bs_class_no"/>
  243. </resultMap>
  244. <select id="querySmartStudentById" resultType="com.template.model.vo.SmartStudentVo" resultMap="smartStudentMap">
  245. SELECT su.id,su.identity_id,su.bs_student_no,sg.bs_grade_no,sc.bs_class_no FROM smart_user su
  246. left join smart_grade sg on sg.deleted = 0 and sg.id = su.grade
  247. left join smart_class sc on sc.deleted = 0 and sc.id = su.school_class
  248. where su.deleted = 0
  249. <if test="userId != null and userId != '' and userId != 0">
  250. and su.id = #{userId}
  251. </if>
  252. </select>
  253. <select id="getAffiliateUser" resultType="com.template.model.vo.SmartUserAffiliateVo">
  254. SELECT su.*,sc.name as className FROM `smart_user` su
  255. left join smart_class sc on su.school_class=sc.id
  256. where su.deleted = 0 and su.is_cancel=0
  257. <if test="affiliate != null and affiliate != ''">
  258. and FIND_IN_SET(su.id,#{affiliate})
  259. </if>
  260. </select>
  261. <select id="studentSelect" resultType="com.template.model.vo.StudentSelectVo">
  262. SELECT su.`name` as name,
  263. su.head_image as headImage,
  264. su.card_no as cardNo,
  265. sc.`name` as className
  266. FROM `smart_user` su
  267. LEFT JOIN smart_class sc on su.school_class = sc.id
  268. WHERE su.deleted = 0
  269. AND su.is_cancel = 0
  270. AND su.identity_id = 2
  271. AND (su.`name` LIKE '%' #{keyWord} '%' or su.card_no= #{keyWord})
  272. </select>
  273. <select id="querySmartParentByIds" resultType="com.template.model.pojo.SmartUser">
  274. select * from smart_user
  275. where deleted = 0 and identity_id = 1 and is_cancel = 0
  276. <if test="studentIds != null and studentIds.size() > 0">
  277. and
  278. <foreach collection="studentIds" item="studentId" index="index" open="(" close=")" separator="or">
  279. FIND_IN_SET(${studentId},affiliate)
  280. </foreach>
  281. </if>
  282. </select>
  283. <select id="getAccessStatisticsCampus" resultType="com.template.model.vo.StatisticsCampusVo">
  284. SELECT su.id as userId,
  285. su.`name` as name,
  286. su.card_no as cardNo
  287. FROM `smart_user` su
  288. LEFT JOIN smart_access sa on sa.user_id = su.id
  289. WHERE su.deleted = 0
  290. AND su.is_cancel = 0
  291. AND su.identity_id = 2
  292. AND su.school_class = #{classId}
  293. AND sa.date_time >= #{startTime}
  294. AND #{endTime} >= sa.date_time
  295. GROUP BY su.id
  296. </select>
  297. <select id="getAttendanceStatisticsCampus" resultType="com.template.model.vo.StatisticsCampusVo">
  298. SELECT su.id as userId,
  299. su.`name` as name,
  300. su.card_no as cardNo
  301. FROM `smart_user` su
  302. LEFT JOIN smart_attendance sat on sat.user_id = su.id
  303. WHERE su.deleted = 0
  304. AND su.is_cancel = 0
  305. AND su.identity_id = 2
  306. AND su.school_class = #{classId}
  307. AND sat.`status`!=3
  308. AND sat.attend_time >= #{startTime}
  309. AND #{endTime} >= sat.attend_time
  310. GROUP BY su.id
  311. </select>
  312. <select id="getFaceDiscernStatisticsCampus" resultType="com.template.model.vo.StatisticsCampusVo">
  313. SELECT su.id as userId,
  314. su.`name` as name,
  315. su.card_no as cardNo
  316. FROM `smart_user` su
  317. LEFT JOIN smart_face_discern sfd on sfd.user_id = su.id
  318. WHERE su.deleted = 0
  319. AND su.is_cancel = 0
  320. AND su.identity_id = 2
  321. AND su.school_class = #{classId}
  322. AND sfd.date_time >= #{startTime}
  323. AND #{endTime} >= sfd.date_time
  324. GROUP BY su.id
  325. </select>
  326. <select id="getAckStatisticsCampus" resultType="com.template.model.vo.StatisticsCampusVo">
  327. SELECT su.id as userId,
  328. su.`name` as name,
  329. su.card_no as cardNo
  330. FROM `smart_user` su
  331. LEFT JOIN smart_attendance sat on sat.user_id = su.id
  332. WHERE su.deleted = 0
  333. AND su.is_cancel = 0
  334. AND su.identity_id = 2
  335. AND su.school_class = #{classId}
  336. AND sat.`status` = 6
  337. AND sat.initiate_time >= #{startTime}
  338. AND #{endTime} >= sat.initiate_time
  339. GROUP BY su.id
  340. </select>
  341. <select id="getClassStudent" resultType="com.template.model.vo.StatisticsCampusVo">
  342. SELECT su.id as userId,
  343. su.`name` as name,
  344. su.card_no as cardNo
  345. FROM `smart_user` su
  346. WHERE su.deleted = 0
  347. AND su.is_cancel = 0
  348. AND su.identity_id = 2
  349. AND su.school_class = #{classId}
  350. </select>
  351. <select id="getAccessStatisticsCampusManage" resultType="com.template.model.vo.StatisticsCampusManageVo">
  352. SELECT su.id as userId,
  353. su.`name` as name,
  354. su.card_no as cardNo,
  355. sc.`name` as className,
  356. sg.`name` as gradeName
  357. FROM `smart_user` su
  358. LEFT JOIN smart_access sa on sa.user_id = su.id
  359. LEFT JOIN smart_class sc on sc.id = su.school_class
  360. LEFT JOIN smart_grade sg on sg.id = sc.grade_id
  361. WHERE su.deleted = 0
  362. AND su.is_cancel = 0
  363. AND su.identity_id = 2
  364. AND sc.grade_id = #{gradeId}
  365. AND su.school_class = #{classId}
  366. AND sa.date_time >= #{startTime}
  367. AND #{endTime} >= sa.date_time
  368. <if test="keyWord != null and keyWord != '' ">
  369. and (su.name like '%' #{keyWord} '%' or su.card_no like '%' #{keyWord} '%')
  370. </if>
  371. GROUP BY su.id
  372. </select>
  373. <select id="getAttendanceStatisticsCampusManage"
  374. resultType="com.template.model.vo.StatisticsCampusManageVo">
  375. SELECT su.id as userId,
  376. su.`name` as name,
  377. su.card_no as cardNo,
  378. sc.`name` as className,
  379. sg.`name` as gradeName
  380. FROM `smart_user` su
  381. LEFT JOIN smart_attendance sat on sat.user_id = su.id
  382. LEFT JOIN smart_class sc on sc.id = su.school_class
  383. LEFT JOIN smart_grade sg on sg.id = sc.grade_id
  384. WHERE su.deleted = 0
  385. AND su.is_cancel = 0
  386. AND su.identity_id = 2
  387. AND sc.grade_id = #{gradeId}
  388. AND su.school_class = #{classId}
  389. AND sat.`status`!=3
  390. AND sat.attend_time >= #{startTime}
  391. AND #{endTime} >= sat.attend_time
  392. <if test="keyWord != null and keyWord != '' ">
  393. and (su.name like '%' #{keyWord} '%' or su.card_no like '%' #{keyWord} '%')
  394. </if>
  395. GROUP BY su.id
  396. </select>
  397. <select id="getFaceDiscernStatisticsCampusManage"
  398. resultType="com.template.model.vo.StatisticsCampusManageVo">
  399. SELECT su.id as userId,
  400. su.`name` as name,
  401. su.card_no as cardNo,
  402. sc.`name` as className,
  403. sg.`name` as gradeName
  404. FROM
  405. `smart_user` su
  406. LEFT JOIN smart_face_discern sfd on sfd.user_id=su.id
  407. LEFT JOIN smart_class sc on sc.id=su.school_class
  408. LEFT JOIN smart_grade sg on sg.id=sc.grade_id
  409. WHERE
  410. su.deleted = 0
  411. AND su.is_cancel = 0
  412. AND su.identity_id = 2
  413. AND sc.grade_id = #{gradeId}
  414. AND su.school_class=#{classId}
  415. AND sfd.date_time >= #{startTime}
  416. AND #{endTime} >= sfd.date_time
  417. <if test="keyWord != null and keyWord != '' ">
  418. and (su.name like '%' #{keyWord} '%' or su.card_no like '%' #{keyWord} '%')
  419. </if>
  420. GROUP BY su.id
  421. </select>
  422. <select id="getAckStatisticsCampusManage" resultType="com.template.model.vo.StatisticsCampusManageVo">
  423. SELECT su.id as userId,
  424. su.`name` as name,
  425. su.card_no as cardNo,
  426. sc.`name` as className,
  427. sg.`name` as gradeName
  428. FROM
  429. `smart_user` su
  430. LEFT JOIN smart_attendance sat on sat.user_id=su.id
  431. LEFT JOIN smart_class sc on sc.id=su.school_class
  432. LEFT JOIN smart_grade sg on sg.id=sc.grade_id
  433. WHERE
  434. su.deleted = 0
  435. AND su.is_cancel = 0
  436. AND su.identity_id = 2
  437. AND sc.grade_id = #{gradeId}
  438. AND su.school_class=#{classId}
  439. AND sat.`status`=6
  440. AND sat.initiate_time >= #{startTime}
  441. AND #{endTime} >= sat.initiate_time
  442. <if test="keyWord != null and keyWord != '' ">
  443. and (su.name like '%' #{keyWord} '%' or su.card_no like '%' #{keyWord} '%')
  444. </if>
  445. GROUP BY su.id
  446. </select>
  447. <select id="getClassStudentManage" resultType="com.template.model.vo.StatisticsCampusManageVo">
  448. SELECT su.id as userId,
  449. su.`name` as name,
  450. su.card_no as cardNo,
  451. sc.`name` as className,
  452. sg.`name` as gradeName
  453. FROM `smart_user` su
  454. LEFT JOIN smart_class sc on sc.id = su.school_class
  455. LEFT JOIN smart_grade sg on sg.id = sc.grade_id
  456. WHERE su.deleted = 0
  457. AND su.is_cancel = 0
  458. AND su.identity_id = 2
  459. AND sc.grade_id = #{gradeId}
  460. AND su.school_class = #{classId}
  461. <if test="keyWord != null and keyWord != '' ">
  462. and (su.name like '%' #{keyWord} '%' or su.card_no like '%' #{keyWord} '%')
  463. </if>
  464. </select>
  465. <select id="getPage" resultType="com.template.model.vo.SmartUserPageVo">
  466. SELECT su.id as id,
  467. su.`name` as name,
  468. su.card_no as cardNo,
  469. sc.`name` as className
  470. FROM `smart_user` su
  471. LEFT JOIN smart_class sc on sc.id = su.school_class
  472. WHERE su.deleted = 0
  473. AND su.is_cancel = 0
  474. AND su.identity_id = 2
  475. <if test="schoolClass != null and schoolClass != '' ">
  476. AND su.school_class = #{schoolClass}
  477. </if>
  478. <if test="keyWord != null and keyWord != '' ">
  479. and su.name like '%' #{keyWord} '%'
  480. </if>
  481. </select>
  482. <select id="getUserClassTotal" resultType="com.template.model.vo.StatisticsStatement">
  483. SELECT
  484. sc.`name` AS className,
  485. sg.`name` AS gradeName,
  486. count( su.id ) as count,
  487. sc.id as classId,
  488. sg.id as gradeId
  489. FROM
  490. smart_user su
  491. LEFT JOIN smart_class sc ON sc.id = su.school_class
  492. LEFT JOIN smart_grade sg ON sg.id = sc.grade_id
  493. WHERE
  494. su.deleted = 0
  495. AND su.is_cancel = 0
  496. AND su.identity_id = 2
  497. and su.school_class != 0
  498. AND sc.`name` not LIKE '%临时%'
  499. GROUP BY
  500. sc.id
  501. </select>
  502. <select id="getUserAckTotal" resultType="com.template.model.vo.StatisticsStatement">
  503. SELECT
  504. sc.`name` AS className,
  505. sg.`name` AS gradeName,
  506. count( su.id ) as count,
  507. sc.id as classId,
  508. sg.id as gradeId
  509. FROM
  510. `smart_user` su
  511. LEFT JOIN smart_class sc ON sc.id = su.school_class
  512. LEFT JOIN smart_grade sg ON sg.id = sc.grade_id
  513. LEFT JOIN smart_attendance sat ON sat.user_id = su.id
  514. WHERE
  515. su.deleted = 0
  516. AND su.is_cancel = 0
  517. AND su.identity_id = 2
  518. AND sat.initiate_time >= #{startTime}
  519. AND #{endTime} >= sat.initiate_time
  520. AND sat.`status` = 6
  521. GROUP BY
  522. sc.id
  523. </select>
  524. <select id="getUserNormalTotal" resultType="com.template.model.vo.StatisticsStatement">
  525. SELECT
  526. sc.`name` AS className,
  527. sg.`name` AS gradeName,
  528. count( su.id ) as count,
  529. sc.id as classId,
  530. sg.id as gradeId
  531. FROM
  532. `smart_user` su
  533. LEFT JOIN smart_class sc ON sc.id = su.school_class
  534. LEFT JOIN smart_grade sg ON sg.id = sc.grade_id
  535. LEFT JOIN ( SELECT DISTINCT ( user_id ) FROM smart_access sa WHERE sa.date_time >= #{startTime} AND #{endTime} >= sa.date_time ) a ON su.id = a.user_id
  536. LEFT JOIN ( SELECT DISTINCT ( user_id ) FROM smart_face_discern sfd WHERE sfd.date_time >= #{startTime} AND #{endTime} >= sfd.date_time ) b ON su.id = b.user_id
  537. LEFT JOIN (
  538. SELECT DISTINCT
  539. ( user_id )
  540. FROM
  541. smart_attendance sat
  542. WHERE
  543. ( sat.attend_time >= #{startTime} AND #{endTime} >= sat.attend_time AND sat.`status` != 3 )
  544. OR ( sat.initiate_time >= #{startTime} AND #{endTime} >= sat.initiate_time AND sat.`status` = 6 )
  545. ) c ON su.id = c.user_id
  546. WHERE
  547. su.deleted = 0
  548. AND su.is_cancel = 0
  549. AND su.identity_id = 2
  550. AND ( a.user_id IS NOT NULL OR b.user_id IS NOT NULL OR c.user_id IS NOT NULL )
  551. GROUP BY
  552. sc.id
  553. </select>
  554. <select id="getNotGraduateGrade" resultType="java.lang.Integer">
  555. SELECT
  556. grade
  557. FROM
  558. `smart_user`
  559. WHERE deleted=0
  560. AND if_graduate is NULL
  561. and identity_id=2
  562. GROUP BY grade
  563. </select>
  564. </mapper>