| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE mapper
- PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.fs.his.mapper.FsUserHealthDataMapper">
-
- <resultMap type="FsUserHealthData" id="FsUserHealthDataResult">
- <result property="id" column="id" />
- <result property="userId" column="user_id" />
- <result property="measurementType" column="measurement_type" />
- <result property="value1" column="value1" />
- <result property="value2" column="value2" />
- <result property="measurementDate" column="measurement_date" />
- <result property="measurementTime" column="measurement_time" />
- <result property="level" column="level" />
- <result property="createdAt" column="created_at" />
- </resultMap>
- <sql id="selectFsUserHealthDataVo">
- select id, user_id, measurement_type, value1, value2, measurement_date, measurement_time,level, created_at from fs_user_health_data
- </sql>
- <select id="selectFsUserHealthDataListCount" parameterType="FsUserHealthData" resultType="java.lang.Integer">
- select count(*) from fs_user_health_data
- <where>
- <if test="userId != null and userId != ''"> and user_id = #{userId}</if>
- <if test="measurementType != null "> and measurement_type = #{measurementType}</if>
- <if test="value1 != null "> and value1 = #{value1}</if>
- <if test="value2 != null "> and value2 = #{value2}</if>
- <if test="measurementDate != null "> and measurement_date = #{measurementDate}</if>
- <if test="measurementTime != null "> and measurement_time = #{measurementTime}</if>
- <if test="level != null "> and level = #{level}</if>
- <if test="createdAt != null "> and created_at = #{createdAt}</if>
- <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
- and date_format(measurement_date,'%y-%m-%d') >= date_format(#{params.beginTime},'%y-%m-%d')
- </if>
- <if test="params.endTime != null and params.endTime != ''"><!-- 开始时间检索 -->
- and date_format(measurement_date,'%y-%m-%d') <= date_format(#{params.endTime},'%y-%m-%d')
- </if>
- </where>
- </select>
- <select id="selectFsUserHealthDataList" parameterType="FsUserHealthData" resultMap="FsUserHealthDataResult">
- <include refid="selectFsUserHealthDataVo"/>
- <where>
- <if test="userId != null and userId != ''"> and user_id = #{userId}</if>
- <if test="measurementType != null "> and measurement_type = #{measurementType}</if>
- <if test="value1 != null "> and value1 = #{value1}</if>
- <if test="value2 != null "> and value2 = #{value2}</if>
- <if test="measurementDate != null "> and measurement_date = #{measurementDate}</if>
- <if test="measurementTime != null "> and measurement_time = #{measurementTime}</if>
- <if test="level != null "> and level = #{level}</if>
- <if test="createdAt != null "> and created_at = #{createdAt}</if>
- <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
- and date_format(measurement_date,'%y-%m-%d') >= date_format(#{params.beginTime},'%y-%m-%d')
- </if>
- <if test="params.endTime != null and params.endTime != ''"><!-- 开始时间检索 -->
- and date_format(measurement_date,'%y-%m-%d') <= date_format(#{params.endTime},'%y-%m-%d')
- </if>
- </where>
- order by measurement_date desc, measurement_time desc
- </select>
-
- <select id="selectFsUserHealthDataById" resultMap="FsUserHealthDataResult">
- <include refid="selectFsUserHealthDataVo"/>
- where id = #{id}
- </select>
- <!-- 根据用户id 获取最新数据 -->
- <select id="selectFsUserHealthDataByUserId" parameterType="FsUserHealthData" resultType="com.fs.his.domain.FsUserHealthData">
- <include refid="selectFsUserHealthDataVo"/> where user_id = #{userId} and measurement_type = #{measurementType} order by measurement_date desc, measurement_time desc limit 1
- </select>
- <!-- params.beginTime params.endTime区间每天最新的数据 -->
- <select id="selectFsUserHealthDataListInfoLatest" resultType="com.fs.his.domain.FsUserHealthData">
- SELECT id, user_id, measurement_type, value1, value2, measurement_date, measurement_time, level, created_at
- FROM (
- SELECT id, user_id, measurement_type, value1, value2, measurement_date, measurement_time, level, created_at,
- ROW_NUMBER() OVER (PARTITION BY measurement_date ORDER BY measurement_time DESC) as rn
- FROM fs_user_health_data
- <where>
- <if test="userId != null and userId != ''"> and user_id = #{userId}</if>
- <if test="measurementType != null"> and measurement_type = #{measurementType}</if>
- <if test="params.beginTime != null and params.beginTime != ''">
- and date_format(measurement_date,'%y-%m-%d') >= date_format(#{params.beginTime},'%y-%m-%d')
- </if>
- <if test="params.endTime != null and params.endTime != ''">
- and date_format(measurement_date,'%y-%m-%d') <= date_format(#{params.endTime},'%y-%m-%d')
- </if>
- </where>
- ) ranked
- WHERE rn = 1
- ORDER BY measurement_date DESC, measurement_time DESC
- </select>
- <insert id="insertFsUserHealthData" parameterType="FsUserHealthData" useGeneratedKeys="true" keyProperty="id">
- insert into fs_user_health_data
- <trim prefix="(" suffix=")" suffixOverrides=",">
- <if test="userId != null and userId != ''">user_id,</if>
- <if test="measurementType != null">measurement_type,</if>
- <if test="value1 != null">value1,</if>
- <if test="value2 != null">value2,</if>
- <if test="measurementDate != null">measurement_date,</if>
- <if test="measurementTime != null">measurement_time,</if>
- <if test="level != null">level,</if>
- <if test="createdAt != null">created_at,</if>
- </trim>
- <trim prefix="values (" suffix=")" suffixOverrides=",">
- <if test="userId != null and userId != ''">#{userId},</if>
- <if test="measurementType != null">#{measurementType},</if>
- <if test="value1 != null">#{value1},</if>
- <if test="value2 != null">#{value2},</if>
- <if test="measurementDate != null">#{measurementDate},</if>
- <if test="measurementTime != null">#{measurementTime},</if>
- <if test="level != null">#{level},</if>
- <if test="createdAt != null">#{createdAt},</if>
- </trim>
- </insert>
- <update id="updateFsUserHealthData" parameterType="FsUserHealthData">
- update fs_user_health_data
- <trim prefix="SET" suffixOverrides=",">
- <if test="userId != null and userId != ''">user_id = #{userId},</if>
- <if test="measurementType != null">measurement_type = #{measurementType},</if>
- <if test="value1 != null">value1 = #{value1},</if>
- <if test="value2 != null">value2 = #{value2},</if>
- <if test="measurementDate != null">measurement_date = #{measurementDate},</if>
- <if test="measurementTime != null">measurement_time = #{measurementTime},</if>
- <if test="level != null">level = #{level},</if>
- <if test="createdAt != null">created_at = #{createdAt},</if>
- </trim>
- where id = #{id}
- </update>
- <delete id="deleteFsUserHealthDataById">
- delete from fs_user_health_data where id = #{id}
- </delete>
- <delete id="deleteFsUserHealthDataByIds">
- delete from fs_user_health_data where id in
- <foreach item="id" collection="array" open="(" separator="," close=")">
- #{id}
- </foreach>
- </delete>
- </mapper>
|