SmartUserMapper.xml 25 KB

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