StudentOperatingVisitMapper.xml 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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. <!--
  4. 这个文件是自动生成的。
  5. 不要修改此文件。所有改动将在下次重新自动生成时丢失。
  6. -->
  7. <mapper namespace="com.ym.mec.biz.dal.dao.StudentOperatingVisitDao">
  8. <resultMap type="com.ym.mec.biz.dal.entity.StudentOperatingVisit" id="StudentOperatingVisit">
  9. <result column="id_" property="id" />
  10. <result column="user_id_" property="userId" />
  11. <result column="month_" property="month" />
  12. <result column="visit_flag_" property="visitFlag" />
  13. <result column="organ_id_" property="organId" />
  14. </resultMap>
  15. <!-- 根据主键查询一条记录 -->
  16. <select id="get" resultMap="StudentOperatingVisit" >
  17. SELECT * FROM student_operating_visit WHERE id_ = #{id}
  18. </select>
  19. <!-- 全查询 -->
  20. <select id="findAll" resultMap="StudentOperatingVisit">
  21. SELECT * FROM student_operating_visit ORDER BY id_
  22. </select>
  23. <!-- 向数据库增加一条记录 -->
  24. <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentOperatingVisit" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
  25. INSERT INTO student_operating_visit (user_id_,month_,visit_flag_,organ_id_) VALUES(#{userId},#{month},#{visitFlag},#{organId})
  26. </insert>
  27. <insert id="batchAdd">
  28. INSERT INTO student_operating_visit (user_id_,month_,visit_flag_,organ_id_)
  29. select su.id_,#{month},CASE WHEN sv.student_id_ IS NULL THEN 0 ELSE 1 END visit_flag_,su.organ_id_
  30. from sys_user su
  31. left join student_visit sv ON sv.student_id_ = su.id_ AND DATE_FORMAT(sv.visit_time_,'%Y-%m') = #{month}
  32. where su.id_ IN
  33. <foreach collection="userIds" item="studentId" open="(" separator="," close=")">
  34. #{studentId}
  35. </foreach>
  36. group by su.id_
  37. </insert>
  38. <!-- 根据主键查询一条记录 -->
  39. <update id="update" parameterType="com.ym.mec.biz.dal.entity.StudentOperatingVisit">
  40. UPDATE student_operating_visit <set>
  41. <if test="userId != null">
  42. user_id_ = #{userId},
  43. </if>
  44. <if test="organId != null">
  45. organ_id_ = #{organId},
  46. </if>
  47. <if test="visitFlag != null">
  48. visit_flag_ = #{visitFlag},
  49. </if>
  50. <if test="month != null">
  51. month_ = #{month},
  52. </if>
  53. </set> WHERE id_ = #{id}
  54. </update>
  55. <update id="updateVisit">
  56. update student_operating_visit set visit_flag_ = 1
  57. where user_id_ = #{studentId} and visit_flag_ = 0 and month_ = #{month}
  58. </update>
  59. <!-- 根据主键删除一条记录 -->
  60. <delete id="delete" >
  61. DELETE FROM student_operating_visit WHERE id_ = #{id}
  62. </delete>
  63. <delete id="deleteByUserId">
  64. delete from student_operating_visit where id_ IN (
  65. SELECT a.id_ FROM (select sov.id_ from student_operating_visit sov
  66. left join student s ON s.user_id_ = sov.user_id_
  67. where s.operating_tag_ = 0 AND sov.month_ = #{month})a)
  68. </delete>
  69. <!-- 分页查询 -->
  70. <select id="queryPage" resultMap="StudentOperatingVisit" parameterType="map">
  71. SELECT * FROM student_operating_visit ORDER BY id_ <include refid="global.limit"/>
  72. </select>
  73. <!-- 查询当前表的总记录数 -->
  74. <select id="queryCount" resultType="int">
  75. SELECT COUNT(*) FROM student_operating_visit
  76. </select>
  77. <select id="queryUserIds" resultType="java.lang.Integer">
  78. SELECT DISTINCT user_id_ FROM student_operating_visit WHERE month_ = #{month}
  79. </select>
  80. <resultMap id="ExportOperatingVisitDto" type="com.ym.mec.biz.dal.dto.ExportOperatingVisitDto">
  81. <result property="organName" column="organ_name_" />
  82. <result property="expectVisitNum" column="expect_visit_num_" />
  83. <result property="visitNum" column="visit_num_" />
  84. </resultMap>
  85. <select id="sumVisit" resultMap="ExportOperatingVisitDto">
  86. SELECT o.name_ organ_name_,count(sov.user_id_) expect_visit_num_,COUNT(CASE WHEN sov.visit_flag_ = 1 THEN 1 ELSE NULL END) visit_num_
  87. FROM student_operating_visit sov
  88. left join organization o on sov.organ_id_ = o.id_
  89. WHERE sov.month_ = #{month}
  90. <if test="tenantId != null">
  91. AND o.tenant_id_ = #{tenantId}
  92. </if>
  93. group by sov.organ_id_
  94. </select>
  95. </mapper>