FsUserHealthDataMapper.xml 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  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.fs.his.mapper.FsUserHealthDataMapper">
  6. <resultMap type="FsUserHealthData" id="FsUserHealthDataResult">
  7. <result property="id" column="id" />
  8. <result property="userId" column="user_id" />
  9. <result property="measurementType" column="measurement_type" />
  10. <result property="value1" column="value1" />
  11. <result property="value2" column="value2" />
  12. <result property="measurementDate" column="measurement_date" />
  13. <result property="measurementTime" column="measurement_time" />
  14. <result property="level" column="level" />
  15. <result property="createdAt" column="created_at" />
  16. </resultMap>
  17. <sql id="selectFsUserHealthDataVo">
  18. select id, user_id, measurement_type, value1, value2, measurement_date, measurement_time,level, created_at from fs_user_health_data
  19. </sql>
  20. <select id="selectFsUserHealthDataListCount" parameterType="FsUserHealthData" resultType="java.lang.Integer">
  21. select count(*) from fs_user_health_data
  22. <where>
  23. <if test="userId != null and userId != ''"> and user_id = #{userId}</if>
  24. <if test="measurementType != null "> and measurement_type = #{measurementType}</if>
  25. <if test="value1 != null "> and value1 = #{value1}</if>
  26. <if test="value2 != null "> and value2 = #{value2}</if>
  27. <if test="measurementDate != null "> and measurement_date = #{measurementDate}</if>
  28. <if test="measurementTime != null "> and measurement_time = #{measurementTime}</if>
  29. <if test="level != null "> and level = #{level}</if>
  30. <if test="createdAt != null "> and created_at = #{createdAt}</if>
  31. <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
  32. and date_format(measurement_date,'%y-%m-%d') &gt;= date_format(#{params.beginTime},'%y-%m-%d')
  33. </if>
  34. <if test="params.endTime != null and params.endTime != ''"><!-- 开始时间检索 -->
  35. and date_format(measurement_date,'%y-%m-%d') &lt;= date_format(#{params.endTime},'%y-%m-%d')
  36. </if>
  37. </where>
  38. </select>
  39. <select id="selectFsUserHealthDataList" parameterType="FsUserHealthData" resultMap="FsUserHealthDataResult">
  40. <include refid="selectFsUserHealthDataVo"/>
  41. <where>
  42. <if test="userId != null and userId != ''"> and user_id = #{userId}</if>
  43. <if test="measurementType != null "> and measurement_type = #{measurementType}</if>
  44. <if test="value1 != null "> and value1 = #{value1}</if>
  45. <if test="value2 != null "> and value2 = #{value2}</if>
  46. <if test="measurementDate != null "> and measurement_date = #{measurementDate}</if>
  47. <if test="measurementTime != null "> and measurement_time = #{measurementTime}</if>
  48. <if test="level != null "> and level = #{level}</if>
  49. <if test="createdAt != null "> and created_at = #{createdAt}</if>
  50. <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
  51. and date_format(measurement_date,'%y-%m-%d') &gt;= date_format(#{params.beginTime},'%y-%m-%d')
  52. </if>
  53. <if test="params.endTime != null and params.endTime != ''"><!-- 开始时间检索 -->
  54. and date_format(measurement_date,'%y-%m-%d') &lt;= date_format(#{params.endTime},'%y-%m-%d')
  55. </if>
  56. </where>
  57. order by measurement_date desc, measurement_time desc
  58. </select>
  59. <select id="selectFsUserHealthDataById" resultMap="FsUserHealthDataResult">
  60. <include refid="selectFsUserHealthDataVo"/>
  61. where id = #{id}
  62. </select>
  63. <!-- 根据用户id 获取最新数据 -->
  64. <select id="selectFsUserHealthDataByUserId" parameterType="FsUserHealthData" resultType="com.fs.his.domain.FsUserHealthData">
  65. <include refid="selectFsUserHealthDataVo"/> where user_id = #{userId} and measurement_type = #{measurementType} order by measurement_date desc, measurement_time desc limit 1
  66. </select>
  67. <!-- params.beginTime params.endTime区间每天最新的数据 -->
  68. <select id="selectFsUserHealthDataListInfoLatest" resultType="com.fs.his.domain.FsUserHealthData">
  69. SELECT id, user_id, measurement_type, value1, value2, measurement_date, measurement_time, level, created_at
  70. FROM (
  71. SELECT id, user_id, measurement_type, value1, value2, measurement_date, measurement_time, level, created_at,
  72. ROW_NUMBER() OVER (PARTITION BY measurement_date ORDER BY measurement_time DESC) as rn
  73. FROM fs_user_health_data
  74. <where>
  75. <if test="userId != null and userId != ''"> and user_id = #{userId}</if>
  76. <if test="measurementType != null"> and measurement_type = #{measurementType}</if>
  77. <if test="params.beginTime != null and params.beginTime != ''">
  78. and date_format(measurement_date,'%y-%m-%d') &gt;= date_format(#{params.beginTime},'%y-%m-%d')
  79. </if>
  80. <if test="params.endTime != null and params.endTime != ''">
  81. and date_format(measurement_date,'%y-%m-%d') &lt;= date_format(#{params.endTime},'%y-%m-%d')
  82. </if>
  83. </where>
  84. ) ranked
  85. WHERE rn = 1
  86. ORDER BY measurement_date DESC, measurement_time DESC
  87. </select>
  88. <insert id="insertFsUserHealthData" parameterType="FsUserHealthData" useGeneratedKeys="true" keyProperty="id">
  89. insert into fs_user_health_data
  90. <trim prefix="(" suffix=")" suffixOverrides=",">
  91. <if test="userId != null and userId != ''">user_id,</if>
  92. <if test="measurementType != null">measurement_type,</if>
  93. <if test="value1 != null">value1,</if>
  94. <if test="value2 != null">value2,</if>
  95. <if test="measurementDate != null">measurement_date,</if>
  96. <if test="measurementTime != null">measurement_time,</if>
  97. <if test="level != null">level,</if>
  98. <if test="createdAt != null">created_at,</if>
  99. </trim>
  100. <trim prefix="values (" suffix=")" suffixOverrides=",">
  101. <if test="userId != null and userId != ''">#{userId},</if>
  102. <if test="measurementType != null">#{measurementType},</if>
  103. <if test="value1 != null">#{value1},</if>
  104. <if test="value2 != null">#{value2},</if>
  105. <if test="measurementDate != null">#{measurementDate},</if>
  106. <if test="measurementTime != null">#{measurementTime},</if>
  107. <if test="level != null">#{level},</if>
  108. <if test="createdAt != null">#{createdAt},</if>
  109. </trim>
  110. </insert>
  111. <update id="updateFsUserHealthData" parameterType="FsUserHealthData">
  112. update fs_user_health_data
  113. <trim prefix="SET" suffixOverrides=",">
  114. <if test="userId != null and userId != ''">user_id = #{userId},</if>
  115. <if test="measurementType != null">measurement_type = #{measurementType},</if>
  116. <if test="value1 != null">value1 = #{value1},</if>
  117. <if test="value2 != null">value2 = #{value2},</if>
  118. <if test="measurementDate != null">measurement_date = #{measurementDate},</if>
  119. <if test="measurementTime != null">measurement_time = #{measurementTime},</if>
  120. <if test="level != null">level = #{level},</if>
  121. <if test="createdAt != null">created_at = #{createdAt},</if>
  122. </trim>
  123. where id = #{id}
  124. </update>
  125. <delete id="deleteFsUserHealthDataById">
  126. delete from fs_user_health_data where id = #{id}
  127. </delete>
  128. <delete id="deleteFsUserHealthDataByIds">
  129. delete from fs_user_health_data where id in
  130. <foreach item="id" collection="array" open="(" separator="," close=")">
  131. #{id}
  132. </foreach>
  133. </delete>
  134. </mapper>