310 lines
18 KiB
XML
310 lines
18 KiB
XML
<?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.stdiet.custom.mapper.SysWxUserLogMapper">
|
||
|
||
<resultMap type="SysWxUserLog" id="SysWxUserLogResult">
|
||
<result property="id" column="id" />
|
||
<result property="openid" column="openid"/>
|
||
<result property="weight" column="weight"/>
|
||
<result property="appid" column="appid"/>
|
||
<result property="phone" column="phone"/>
|
||
<result property="phone" column="phone"/>
|
||
<result property="logTime" column="log_time"/>
|
||
<result property="wakeupTime" column="wakeup_time"/>
|
||
<result property="sleepTime" column="sleep_time"/>
|
||
<result property="sport" column="sport"/>
|
||
<result property="avatarUrl" column="avatar_url"/>
|
||
<result property="diet" column="diet"/>
|
||
<result property="insomnia" column="insomnia"/>
|
||
<result property="defecation" column="defecation"/>
|
||
<result property="water" column="water"/>
|
||
<result property="createBy" column="create_by"/>
|
||
<result property="createTime" column="create_time"/>
|
||
<result property="updateBy" column="update_by"/>
|
||
<result property="updateTime" column="update_time"/>
|
||
<result property="remark" column="remark"/>
|
||
<result property="emotion" column="emotion" />
|
||
<result property="slyEatFood" column="sly_eat_food" />
|
||
<result property="constipation" column="constipation" />
|
||
<result property="ingredientDescribe" column="ingredient_describe" />
|
||
<result property="breakfastImages" column="breakfast_images" />
|
||
<result property="lunchImages" column="lunch_images" />
|
||
<result property="dinnerImages" column="dinner_images" />
|
||
<result property="extraMealImages" column="extra_meal_images" />
|
||
<result property="bodyImages" column="body_images" />
|
||
<result property="suggest" column="suggest" />
|
||
<result property="targetWeight" column="target_weight" />
|
||
<result property="executionScore" column="execution_score" />
|
||
<result property="comment" column="comment" />
|
||
<result property="delFlag" column="del_flag" />
|
||
<!-- 非持久字段 -->
|
||
<result property="customerName" column="customer_name"></result>
|
||
<!-- 营养师 -->
|
||
<result property="nutritionist" column="nutritionist"></result>
|
||
<result property="afterNutritionist" column="after_nutritionist"></result>
|
||
</resultMap>
|
||
|
||
<resultMap type="com.stdiet.custom.page.WxLogInfo" id="WxLogInfo">
|
||
<result property="id" column="id" />
|
||
<result property="weight" column="weight"/>
|
||
<result property="sleepTime" column="sleep_time"/>
|
||
<result property="wakeupTime" column="wakeup_time"/>
|
||
<result property="sport" column="sport"/>
|
||
<result property="diet" column="diet"/>
|
||
<result property="insomnia" column="insomnia"/>
|
||
<result property="defecation" column="defecation"/>
|
||
<result property="water" column="water"/>
|
||
<result property="date" column="log_time"/>
|
||
<result property="emotion" column="emotion" />
|
||
<result property="slyEatFood" column="sly_eat_food" />
|
||
<result property="constipation" column="constipation" />
|
||
<result property="remark" column="remark"></result>
|
||
<result property="ingredientDescribe" column="ingredient_describe" />
|
||
<result property="breakfastImages" column="breakfast_images" />
|
||
<result property="lunchImages" column="lunch_images" />
|
||
<result property="dinnerImages" column="dinner_images" />
|
||
<result property="extraMealImages" column="extra_meal_images" />
|
||
<result property="bodyImages" column="body_images" />
|
||
<result property="suggest" column="suggest" />
|
||
<result property="targetWeight" column="target_weight" />
|
||
<result property="executionScore" column="execution_score" />
|
||
<result property="comment" column="comment" />
|
||
</resultMap>
|
||
|
||
<sql id="selectSysWxUserLogVo">
|
||
select id,openid, weight, appid, phone, log_time, sleep_time, wakeup_time, sport, avatar_url, diet, insomnia, defecation, water, create_by, create_time, update_by, update_time, remark,
|
||
emotion,sly_eat_food,constipation,ingredient_describe,breakfast_images,lunch_images,dinner_images,extra_meal_images,body_images,suggest,execution_score,comment
|
||
from sys_wx_user_log
|
||
</sql>
|
||
|
||
<select id="checkWxLogInfoCount" parameterType="SysWxUserLog" resultType="Integer">
|
||
select count(*) from sys_wx_user_log where to_days(log_time) = to_days(#{logTime}) and openid = #{openid} and del_flag = 0
|
||
</select>
|
||
|
||
<!-- 后台查询 -->
|
||
<select id="selectSysWxUserLogList" parameterType="SysWxUserLog" resultMap="SysWxUserLogResult">
|
||
SELECT wxlog.id,wxinfo.appid,wxinfo.openid,wxinfo.avatar_url,wxinfo.phone,wxlog.weight,wxlog.log_time,wxlog.sleep_time, wxlog.wakeup_time,wxlog.defecation, wxlog.water, wxlog.insomnia,wxlog.sport,wxlog.diet,wxlog.remark,
|
||
wxlog.emotion,wxlog.sly_eat_food,wxlog.constipation,wxlog.ingredient_describe,wxlog.breakfast_images,wxlog.lunch_images,wxlog.dinner_images,wxlog.extra_meal_images,wxlog.body_images,
|
||
wxlog.suggest,wxlog.execution_score,wxlog.comment,sc.name as customer_name, su.nick_name as nutritionist, su_atferSale.nick_name as after_nutritionist
|
||
FROM sys_wx_user_log wxlog
|
||
left join sys_wx_user_info wxinfo on wxinfo.openid = wxlog.openid
|
||
left join sys_customer sc on sc.phone = wxinfo.phone and sc.del_flag = 0
|
||
left join sys_user su on su.user_id = sc.main_dietitian and su.del_flag = '0'
|
||
left join sys_user su_atferSale on su_atferSale.user_id = sc.after_dietitian and su_atferSale.del_flag = '0'
|
||
where wxlog.del_flag = 0 and wxinfo.phone is not null
|
||
<if test="id != null">
|
||
and wxlog.id = #{id}
|
||
</if>
|
||
<if test="customerId != null">
|
||
and sc.id = #{customerId}
|
||
</if>
|
||
<if test="phone != null and phone != ''">and (sc.name like concat('%',#{phone},'%') or wxinfo.phone like concat('%',#{phone},'%') )</if>
|
||
<if test="appid != null">
|
||
and wxinfo.appid = #{appid}
|
||
</if>
|
||
<if test="nutritionistId != null">
|
||
and su.user_id = #{nutritionistId}
|
||
</if>
|
||
<if test="afterNutritionistId != null">
|
||
and su_atferSale.user_id = #{afterNutritionistId}
|
||
</if>
|
||
<if test="beginTime != null and beginTime != ''">and date_format(wxlog.log_time,'%y%m%d') >= date_format(#{beginTime},'%y%m%d')</if>
|
||
<if test="endTime != null and endTime != ''">and date_format(wxlog.log_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d')</if>
|
||
order by wxlog.log_time desc
|
||
</select>
|
||
|
||
<select id="selectWxLogInfoList" parameterType="SysWxUserLog" resultMap="WxLogInfo">
|
||
SELECT * FROM sys_wx_user_log log where log.del_flag = 0
|
||
<choose>
|
||
<when test="phone == null or phone == ''">
|
||
(SELECT phone FROM sys_wx_user_info WHERE openid = #{openid}) = log.phone
|
||
</when>
|
||
<otherwise>
|
||
<if test="openid != null and openid != ''">and openid = #{openid}</if>
|
||
<if test="phone != null and phone != ''">or phone = #{phone}</if>
|
||
</otherwise>
|
||
</choose>
|
||
order by log_time asc
|
||
</select>
|
||
|
||
<select id="selectSysWxUserLogById" parameterType="String" resultMap="SysWxUserLogResult">
|
||
<include refid="selectSysWxUserLogVo"/>
|
||
where id = #{id} and del_flag = 0
|
||
</select>
|
||
|
||
<insert id="insertSysWxUserLog" parameterType="SysWxUserLog">
|
||
insert into sys_wx_user_log
|
||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||
<if test="openid != null">openid,</if>
|
||
<if test="weight != null">weight,</if>
|
||
<if test="appid != null">appid,</if>
|
||
<if test="phone != null">phone,</if>
|
||
<if test="logTime != null">log_time,</if>
|
||
<if test="sleepTime != null">sleep_time,</if>
|
||
<if test="wakeupTime != null">wakeup_time,</if>
|
||
<if test="sport != null">sport,</if>
|
||
<if test="avatarUrl != null">avatar_url,</if>
|
||
<if test="diet != null">diet,</if>
|
||
<if test="insomnia != null">insomnia,</if>
|
||
<if test="defecation != null">defecation,</if>
|
||
<if test="water != null">water,</if>
|
||
<if test="createBy != null">create_by,</if>
|
||
<if test="createTime != null">create_time,</if>
|
||
<if test="updateBy != null">update_by,</if>
|
||
<if test="updateTime != null">update_time,</if>
|
||
<if test="remark != null">remark,</if>
|
||
<if test="emotion != null">emotion,</if>
|
||
<if test="slyEatFood != null">sly_eat_food,</if>
|
||
<if test="constipation != null">constipation,</if>
|
||
<if test="ingredientDescribe != null">ingredient_describe,</if>
|
||
<if test="breakfastImages != null">breakfast_images,</if>
|
||
<if test="lunchImages != null">lunch_images,</if>
|
||
<if test="dinnerImages != null">dinner_images,</if>
|
||
<if test="extraMealImages != null">extra_meal_images,</if>
|
||
<if test="bodyImages != null">body_images,</if>
|
||
<if test="suggest != null">suggest,</if>
|
||
<if test="targetWeight != null">target_weight,</if>
|
||
<if test="executionScore != null">execution_score,</if>
|
||
<if test="comment != null">comment,</if>
|
||
<if test="delFlag != null">del_flag,</if>
|
||
</trim>
|
||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||
<if test="openid != null">#{openid},</if>
|
||
<if test="weight != null">#{weight},</if>
|
||
<if test="appid != null">#{appid},</if>
|
||
<if test="phone != null">#{phone},</if>
|
||
<if test="logTime != null">#{logTime},</if>
|
||
<if test="sleepTime != null">#{sleepTime},</if>
|
||
<if test="wakeupTime != null">#{wakeupTime},</if>
|
||
<if test="sport != null">#{sport},</if>
|
||
<if test="avatarUrl != null">#{avatarUrl},</if>
|
||
<if test="diet != null">#{diet},</if>
|
||
<if test="insomnia != null">#{insomnia},</if>
|
||
<if test="defecation != null">#{defecation},</if>
|
||
<if test="water != null">#{water},</if>
|
||
<if test="createBy != null">#{createBy},</if>
|
||
<if test="createTime != null">#{createTime},</if>
|
||
<if test="updateBy != null">#{updateBy},</if>
|
||
<if test="updateTime != null">#{updateTime},</if>
|
||
<if test="remark != null">#{remark},</if>
|
||
<if test="emotion != null">#{emotion},</if>
|
||
<if test="slyEatFood != null">#{slyEatFood},</if>
|
||
<if test="constipation != null">#{constipation},</if>
|
||
<if test="ingredientDescribe != null">#{ingredientDescribe},</if>
|
||
<if test="breakfastImages != null">#{breakfastImages},</if>
|
||
<if test="lunchImages != null">#{lunchImages},</if>
|
||
<if test="dinnerImages != null">#{dinnerImages},</if>
|
||
<if test="extraMealImages != null">#{extraMealImages},</if>
|
||
<if test="bodyImages != null">#{bodyImages},</if>
|
||
<if test="suggest != null">suggest = #{suggest},</if>
|
||
<if test="targetWeight != null">target_weight = #{targetWeight},</if>
|
||
<if test="executionScore != null">execution_score = #{executionScore},</if>
|
||
<if test="comment != null">comment = #{comment},</if>
|
||
<if test="delFlag != null">del_flag = #{delFlag},</if>
|
||
</trim>
|
||
</insert>
|
||
|
||
<update id="updateSysWxUserLog" parameterType="SysWxUserLog">
|
||
update sys_wx_user_log
|
||
<trim prefix="SET" suffixOverrides=",">
|
||
<if test="openid != null">openid = #{openid},</if>
|
||
<if test="weight != null">weight = #{weight},</if>
|
||
<if test="appid != null">appid = #{appid},</if>
|
||
<if test="phone != null">phone = #{phone},</if>
|
||
<if test="logTime != null">log_time = #{logTime},</if>
|
||
<if test="sleepTime != null">sleep_time = #{sleepTime},</if>
|
||
<if test="wakeupTime != null">wakeup_time = #{wakeupTime},</if>
|
||
<if test="sport != null">sport = #{sport},</if>
|
||
<if test="avatarUrl != null">avatar_url = #{avatarUrl},</if>
|
||
<if test="diet != null">diet = #{diet},</if>
|
||
<if test="insomnia != null">insomnia = #{insomnia},</if>
|
||
<if test="defecation != null">defecation = #{defecation},</if>
|
||
<if test="water != null">water = #{water},</if>
|
||
<if test="createBy != null">create_by = #{createBy},</if>
|
||
<if test="createTime != null">create_time = #{createTime},</if>
|
||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||
<if test="remark != null">remark = #{remark},</if>
|
||
<if test="emotion != null">emotion = #{emotion},</if>
|
||
<if test="slyEatFood != null">sly_eat_food = #{slyEatFood},</if>
|
||
<if test="constipation != null">constipation = #{constipation},</if>
|
||
<if test="ingredientDescribe != null">ingredient_describe = #{ingredientDescribe},</if>
|
||
<if test="breakfastImages != null">breakfast_images = #{breakfastImages},</if>
|
||
<if test="lunchImages != null">lunch_images = #{lunchImages},</if>
|
||
<if test="dinnerImages != null">dinner_images = #{dinnerImages},</if>
|
||
<if test="extraMealImages != null">extra_meal_images = #{extraMealImages},</if>
|
||
<if test="bodyImages != null">body_images = #{bodyImages},</if>
|
||
<if test="suggest != null">suggest = #{suggest},</if>
|
||
<if test="targetWeight != null">target_weight = #{targetWeight},</if>
|
||
<if test="executionScore != null">execution_score = #{executionScore},</if>
|
||
<if test="comment != null">comment = #{comment},</if>
|
||
<if test="delFlag != null">del_flag = #{delFlag},</if>
|
||
</trim>
|
||
where id = #{id}
|
||
</update>
|
||
|
||
<update id="deleteSysWxUserLogById" parameterType="Long">
|
||
update sys_wx_user_log set del_flag = 1 where id = #{id}
|
||
</update>
|
||
|
||
<update id="deleteSysWxUserLogByIds" parameterType="String">
|
||
update sys_wx_user_log set del_flag = 1 where id in
|
||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||
#{id}
|
||
</foreach>
|
||
</update>
|
||
|
||
<!-- 根据openid和手机号查询对应打卡记录 -->
|
||
<select id="getWxLogInfoList" parameterType="SysWxUserLog" resultMap="WxLogInfo">
|
||
SELECT wxlog.id,wxlog.weight,wxlog.log_time,wxlog.sleep_time, wxlog.wakeup_time,wxlog.defecation, wxlog.water, wxlog.insomnia,wxlog.sport,wxlog.diet,
|
||
wxlog.emotion,wxlog.sly_eat_food,wxlog.constipation,wxlog.ingredient_describe,wxlog.breakfast_images,wxlog.lunch_images,wxlog.dinner_images,wxlog.extra_meal_images,wxlog.body_images
|
||
,wxlog.remark,wxlog.execution_score,wxlog.comment
|
||
FROM sys_wx_user_log wxlog left join sys_wx_user_info wxinfo on wxinfo.openid = wxlog.openid
|
||
where wxlog.del_flag = 0 and (wxinfo.openid = #{openid} or wxinfo.phone = #{phone})
|
||
order by wxlog.log_time desc
|
||
</select>
|
||
|
||
<select id="selectSysWxUserLogByDateAndOpenId" parameterType="SysWxUserLog" resultMap="SysWxUserLogResult">
|
||
select id from sys_wx_user_log where del_flag = 0 and to_days(log_time) = to_days(#{logTime}) and openid = #{openid} limit 1
|
||
</select>
|
||
|
||
<!-- 根据手机号和openid查询打卡连续天数,只查询前两条 -->
|
||
<select id="getContinuity" parameterType="SysWxUserLog" resultType="Map">
|
||
SELECT yearMonth,MIN(log_time) AS minLogTime,MAX(log_time) AS maxLogTime,COUNT(*) AS continuityDayCount FROM
|
||
(
|
||
SELECT log_time,yearMonth,(days-date_rank) AS day_cha FROM
|
||
(
|
||
SELECT *,row_number() over(PARTITION BY yearMonth ORDER BY log_time) date_rank FROM
|
||
(
|
||
SELECT log_time,CONCAT(YEAR(log_time),'-',MONTH(log_time)) AS yearMonth,DAY(log_time) AS days
|
||
FROM sys_wx_user_log wxlog left join sys_wx_user_info wxinfo on wxinfo.openid = wxlog.openid
|
||
where wxlog.del_flag = 0 and wxinfo.openid = #{openid} or wxinfo.phone = #{phone}
|
||
) AS s ORDER BY s.log_time DESC
|
||
) ss
|
||
) sss GROUP BY yearMonth,day_cha LIMIT 2
|
||
</select>
|
||
|
||
<!-- 后台根据用户ID查询该用户的打卡体重 -->
|
||
<select id="getWxUserLogListByCustomerId" parameterType="SysWxUserLog" resultMap="SysWxUserLogResult">
|
||
SELECT wxlog.id,wxlog.log_time,wxlog.weight FROM sys_wx_user_log wxlog
|
||
left join sys_wx_user_info wxinfo on wxinfo.openid = wxlog.openid
|
||
left join sys_customer sc on sc.phone = wxinfo.phone and sc.del_flag = 0
|
||
where wxlog.del_flag = 0 and wxinfo.phone is not null and sc.id = #{customerId}
|
||
<if test="beginTime != null and beginTime != ''">and date_format(wxlog.log_time,'%y%m%d') >= date_format(#{beginTime},'%y%m%d')</if>
|
||
<if test="endTime != null and endTime != ''">and date_format(wxlog.log_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d')</if>
|
||
order by wxlog.log_time asc
|
||
</select>
|
||
|
||
<!-- 根据openid和手机号查询对应打卡记录 -->
|
||
<select id="getWxLogInfoDetailById" parameterType="SysWxUserLog" resultMap="WxLogInfo">
|
||
SELECT wxlog.id,wxlog.weight,wxlog.log_time,wxlog.sleep_time, wxlog.wakeup_time,wxlog.defecation, wxlog.water, wxlog.insomnia,wxlog.sport,wxlog.diet,
|
||
wxlog.emotion,wxlog.sly_eat_food,wxlog.constipation,wxlog.ingredient_describe,wxlog.breakfast_images,wxlog.lunch_images,wxlog.dinner_images,wxlog.extra_meal_images,wxlog.body_images
|
||
,wxlog.remark,wxlog.execution_score,wxlog.comment
|
||
FROM sys_wx_user_log wxlog left join sys_wx_user_info wxinfo on wxinfo.openid = wxlog.openid
|
||
where wxlog.del_flag = 0 and wxlog.id = #{id}
|
||
order by wxlog.log_time desc
|
||
</select>
|
||
|
||
</mapper> |