NoticeMapper.xml 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  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="net.lab1024.smartadmin.module.business.notice.dao.NoticeDao">
  4. <resultMap id="NoticeEntity" type="net.lab1024.smartadmin.module.business.notice.domain.entity.NoticeEntity"></resultMap>
  5. <resultMap id="NoticeDTO" type="net.lab1024.smartadmin.module.business.notice.domain.dto.NoticeVO"></resultMap>
  6. <resultMap id="NoticeDetailDTO" type="net.lab1024.smartadmin.module.business.notice.domain.dto.NoticeDetailVO"></resultMap>
  7. <resultMap id="NoticeReceiveDTO" type="net.lab1024.smartadmin.module.business.notice.domain.dto.NoticeReceiveDTO"></resultMap>
  8. <resultMap id="NoticeReadCountDTO" type="net.lab1024.smartadmin.module.business.notice.domain.dto.NoticeReadCountDTO"></resultMap>
  9. <select id="queryByPage" resultMap="NoticeDTO">
  10. select
  11. n.id,
  12. n.title,
  13. n.create_user,
  14. e.actual_name as createUserName,
  15. n.send_status,
  16. n.create_time
  17. from t_notice n
  18. left join t_employee e on e.id = n.create_user
  19. <where>
  20. <if test="queryDTO.startDate != null and queryDTO.startDate != ''">
  21. AND DATE_FORMAT(n.create_time, '%Y-%m-%d') &gt;= #{queryDTO.startDate}
  22. </if>
  23. <if test="queryDTO.endDate != null and queryDTO.endDate != ''">
  24. AND DATE_FORMAT(n.create_time, '%Y-%m-%d') &lt;= #{queryDTO.endDate}
  25. </if>
  26. <if test="queryDTO.title != null and queryDTO.title != ''">
  27. AND INSTR(n.title,#{queryDTO.title})
  28. </if>
  29. <if test="queryDTO.deleted != null">
  30. AND n.deleted = #{queryDTO.deleted}
  31. </if>
  32. </where>
  33. ORDER by n.create_time desc
  34. </select>
  35. <select id="queryUnreadByPage" resultMap="NoticeDTO">
  36. select
  37. n.id,
  38. n.title,
  39. n.send_status,
  40. n.create_user,
  41. e.actual_name as createUserName,
  42. n.create_time
  43. from t_notice n
  44. left join t_employee e on e.id = n.create_user
  45. where n.id not in (select notice_id from t_notice_receive_record nrr where nrr.employee_id = #{employeeId})
  46. and n.send_status = #{sendStatus}
  47. ORDER by n.create_time desc
  48. </select>
  49. <select id="queryReceiveByPage" resultMap="NoticeReceiveDTO">
  50. select
  51. n.id,
  52. n.title,
  53. n.create_user,
  54. n.send_status,
  55. e.actual_name as createUserName,
  56. n.create_time,
  57. nrr.create_time as receiveTime
  58. from t_notice n
  59. left join t_employee e on e.id = n.create_user
  60. left join t_notice_receive_record nrr on nrr.notice_id=n.id and nrr.employee_id=#{queryDTO.employeeId}
  61. <where>
  62. <if test="queryDTO.startDate != null and queryDTO.startDate != ''">
  63. AND DATE_FORMAT(n.create_time, '%Y-%m-%d') &gt;= #{queryDTO.startDate}
  64. </if>
  65. <if test="queryDTO.endDate != null and queryDTO.endDate != ''">
  66. AND DATE_FORMAT(n.create_time, '%Y-%m-%d') &lt;= #{queryDTO.endDate}
  67. </if>
  68. <if test="queryDTO.title != null and queryDTO.title != ''">
  69. AND INSTR(n.title,#{queryDTO.title})
  70. </if>
  71. <if test="queryDTO.sendStatus != null">
  72. AND n.send_status = #{queryDTO.sendStatus}
  73. </if>
  74. </where>
  75. ORDER by n.create_time desc
  76. </select>
  77. <select id="detail" resultMap="NoticeDetailDTO">
  78. select
  79. n.id,
  80. n.title,
  81. n.content,
  82. n.send_status,
  83. n.create_user,
  84. e.actual_name as createUserName,
  85. n.create_time,
  86. n.update_time
  87. from t_notice n
  88. left join t_employee e on e.id = n.create_user
  89. where n.id = #{id}
  90. </select>
  91. <update id="logicDeleteById">
  92. UPDATE t_notice
  93. set deleted = #{deletedFlag}
  94. WHERE id =#{id}
  95. </update>
  96. <delete id="logicDeleteByIds">
  97. UPDATE t_notice set deleted = #{deletedFlag} where id in
  98. <foreach collection="idList" open="(" close=")" separator="," item="item">
  99. #{item}
  100. </foreach>
  101. </delete>
  102. <select id="noticeCount" resultType="integer">
  103. select
  104. count(1)
  105. from t_notice where send_status = #{sendStatus}
  106. </select>
  107. <select id="readCount" resultMap="NoticeReadCountDTO">
  108. SELECT
  109. nrr.employee_id,
  110. count(1) as readCount
  111. from t_notice_receive_record nrr
  112. where nrr.employee_id in
  113. <foreach collection="employeeIds" open="(" close=")" separator="," item="item">
  114. #{item}
  115. </foreach>
  116. GROUP BY nrr.employee_id
  117. </select>
  118. <select id="noticeUnreadCount" resultType="integer">
  119. select
  120. count(1)
  121. from t_notice n
  122. where n.id not in (select msg_id from t_notice_receive_record nrr where nrr.employee_id = #{employeeId})
  123. and n.send_status = #{sendStatus}
  124. </select>
  125. </mapper>