feat(watch): 支持Oracle数据库兼容性改进
- 将MyBatis查询中的"LIMIT 1"替换为"FETCH FIRST 1 ROWS ONLY" - 在XML映射文件中将ROWNUM用于分页查询以提高Oracle兼容性 - 将MySQL特定函数转换为Oracle兼容语法: - YEAR()替换为EXTRACT(YEAR FROM) - TIMESTAMPDIFF()替换为EXTRACT(HOUR/MINUTE/SECOND FROM) - IFNULL()替换为NVL() - CURDATE()替换为SYSDATE - 更新复杂查询语句使用ROW_NUMBER()窗口函数替代LEFT JOIN - 修改表名引用从反引号到双引号以提高数据库兼容性
This commit is contained in:
+3
-3
@@ -894,7 +894,7 @@ public class WatchDataApiServiceImpl implements WatchDataApiService {
|
||||
WatchStatUserInfoDaySleep::getDataDate)
|
||||
.eq(WatchStatUserInfoDaySleep::getUserId, userId)
|
||||
.orderByDesc(WatchStatUserInfoDaySleep::getDataDate)
|
||||
.last("limit 1");
|
||||
.last("FETCH FIRST 1 ROWS ONLY");
|
||||
|
||||
WatchStatUserInfoDaySleep data = watchStatUserInfoDaySleepMapper.selectOne(queryWrapper);
|
||||
|
||||
@@ -1016,7 +1016,7 @@ public class WatchDataApiServiceImpl implements WatchDataApiService {
|
||||
queryWrapper.eq(WatchData::getUserid, userId)
|
||||
.orderByDesc(WatchData::getLastUpdateTime)
|
||||
.eq(WatchData::getType, type)
|
||||
.last("limit 1");
|
||||
.last("FETCH FIRST 1 ROWS ONLY");
|
||||
WatchData watchData = watchDataMapper.selectOne(queryWrapper);
|
||||
if (watchData == null) {
|
||||
return null;
|
||||
@@ -1033,7 +1033,7 @@ public class WatchDataApiServiceImpl implements WatchDataApiService {
|
||||
QueryWrapper<T> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("user_id", userId)
|
||||
.orderByDesc("data_date")
|
||||
.last("limit 1");
|
||||
.last("FETCH FIRST 1 ROWS ONLY");
|
||||
return queryWrapper.lambda();
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -32,6 +32,6 @@ public interface WatchDataHeartRateMapper extends MPJBaseMapper<WatchDataHeartRa
|
||||
* @param bindUserId
|
||||
* @return
|
||||
*/
|
||||
@Select("select * from watch_data_heart_rate where bind_user_id = #{bindUserId} and data_date = (select MAX(data_date) from watch_data_heart_rate where bind_user_id = #{bindUserId})")
|
||||
@Select("SELECT * FROM watch_data_heart_rate WHERE bind_user_id = #{bindUserId} AND data_date = (SELECT MAX(data_date) FROM watch_data_heart_rate WHERE bind_user_id = #{bindUserId})")
|
||||
List<WatchDataHeartRate> latestDataTempByUserId(@Param("bindUserId") String bindUserId);
|
||||
}
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ public interface WatchDataSpo2Mapper extends MPJBaseMapper<WatchDataSpo2> {
|
||||
* @param bindUserId
|
||||
* @return
|
||||
*/
|
||||
@Select("select * from watch_data_spo2 where bind_user_id = #{bindUserId} and data_date = (select MAX(data_date) from watch_data_spo2 where bind_user_id = #{bindUserId})")
|
||||
@Select("SELECT * FROM watch_data_spo2 WHERE bind_user_id = #{bindUserId} AND data_date = (SELECT MAX(data_date) FROM watch_data_spo2 WHERE bind_user_id = #{bindUserId})")
|
||||
List<WatchDataSpo2> latestDataTempByUserId(@Param("bindUserId") String bindUserId);
|
||||
|
||||
}
|
||||
|
||||
+2
-2
@@ -21,7 +21,7 @@ public interface WatchDataStressMapper extends MPJBaseMapper<WatchDataStress> {
|
||||
|
||||
IPage<WatchDataStress> selectStressByYear(IPage<WatchDataStress> page, StatisticsReq req);
|
||||
|
||||
@Select("select * from watch_data_stress where bind_user_id = #{bindUserId} order by start_time_stamp desc limit 1")
|
||||
@Select("SELECT * FROM (SELECT * FROM watch_data_stress WHERE bind_user_id = #{bindUserId} ORDER BY start_time_stamp DESC) WHERE ROWNUM = 1")
|
||||
WatchDataStress selectWatchDataStressByUserId(@Param("bindUserId") String bindUserId);
|
||||
|
||||
/**
|
||||
@@ -29,7 +29,7 @@ public interface WatchDataStressMapper extends MPJBaseMapper<WatchDataStress> {
|
||||
* @param bindUserId
|
||||
* @return
|
||||
*/
|
||||
@Select("select * from watch_data_stress where bind_user_id = #{bindUserId} and data_date = (select MAX(data_date) from watch_data_stress where bind_user_id = #{bindUserId})")
|
||||
@Select("SELECT * FROM watch_data_stress WHERE bind_user_id = #{bindUserId} AND data_date = (SELECT MAX(data_date) FROM watch_data_stress WHERE bind_user_id = #{bindUserId})")
|
||||
List<WatchDataStress> latestDataTempByUserId(@Param("bindUserId") String bindUserId);
|
||||
|
||||
}
|
||||
|
||||
+2
-2
@@ -23,7 +23,7 @@ public interface WatchDataTemperatureMapper extends MPJBaseMapper<WatchDataTempe
|
||||
|
||||
IPage<WatchDataTemperature> selectTempByYear(@Param("page") IPage<WatchDataTemperature> page, @Param("req") StatisticsReq req);
|
||||
|
||||
@Select("select * from watch_data_temperature where bind_user_id = #{bindUserId} and Date(data_date) = Date(#{dateTime}) order by time_stamp")
|
||||
@Select("SELECT * FROM watch_data_temperature WHERE bind_user_id = #{bindUserId} AND data_date = #{dateTime} ORDER BY time_stamp")
|
||||
List<WatchDataTemperature> selectTempByUserId(@Param("bindUserId") String bindUserId,@Param("dateTime") Date dateTime);
|
||||
|
||||
/**
|
||||
@@ -31,6 +31,6 @@ public interface WatchDataTemperatureMapper extends MPJBaseMapper<WatchDataTempe
|
||||
* @param bindUserId
|
||||
* @return
|
||||
*/
|
||||
@Select("select * from watch_data_temperature where bind_user_id = #{bindUserId} and data_date = (select MAX(data_date) from watch_data_temperature where bind_user_id = #{bindUserId})")
|
||||
@Select("SELECT * FROM watch_data_temperature WHERE bind_user_id = #{bindUserId} AND data_date = (SELECT MAX(data_date) FROM watch_data_temperature WHERE bind_user_id = #{bindUserId})")
|
||||
List<WatchDataTemperature> latestDataTempByUserId(@Param("bindUserId") String bindUserId);
|
||||
}
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@ public interface WatchDeviceMapper extends MPJBaseMapper<WatchDevice> {
|
||||
|
||||
List<String> selectDeviceUserId(@Param("deptId") String deptId);
|
||||
|
||||
@Select(value = "SELECT LEFT(org_code,6) as orgCode, count(1) as medicalCount FROM watch_device GROUP BY LEFT(org_code,6)")
|
||||
@Select(value = "SELECT SUBSTR(org_code, 1, 6) as orgCode, COUNT(1) as medicalCount FROM watch_device GROUP BY SUBSTR(org_code, 1, 6)")
|
||||
List<JSONObject> getWatchSum();
|
||||
|
||||
List<WearCount> selectWearCount(@Param("orgCodeList") List<String> orgCodeList);
|
||||
|
||||
+11
-11
@@ -16,39 +16,39 @@ import java.util.Map;
|
||||
@Mapper
|
||||
public interface WatchMapper {
|
||||
|
||||
@Select("SELECT ROUND(SYSDATE - (SELECT CAST(bind_date AS DATE) FROM watch_bind_his WHERE bind_user_id = #{id} ORDER BY bind_date DESC limit 1)) AS days")
|
||||
@Select("SELECT TRUNC(SYSDATE - CAST(bind_date AS DATE)) AS days FROM (SELECT bind_date FROM watch_bind_his WHERE bind_user_id = #{id} ORDER BY bind_date DESC FETCH FIRST 1 ROWS ONLY)")
|
||||
Integer getUseDays(@Param("id") String id);
|
||||
|
||||
@Select("select length(nm.status) minutes,TO_CHAR(n.data_date,'YYYY-MM-DD') dataDate from watch_data_sleep_new_minute nm left join watch_data_sleep_new n on nm.sleep_id = n.id where n.id = ( select id from watch_data_sleep_new WHERE bind_user_id = #{id} order by data_date desc limit 1) and nm.STATUS not like '%55%' limit 1")
|
||||
@Select("SELECT LENGTH(nm.status) minutes, TO_CHAR(n.data_date,'YYYY-MM-DD') dataDate FROM watch_data_sleep_new_minute nm LEFT JOIN watch_data_sleep_new n ON nm.sleep_id = n.id WHERE n.id = (SELECT id FROM watch_data_sleep_new WHERE bind_user_id = #{id} ORDER BY data_date DESC FETCH FIRST 1 ROWS ONLY) AND nm.STATUS NOT LIKE '%55%' AND ROWNUM = 1")
|
||||
WatchDataDTO getDataSleep(@Param("id") String id);
|
||||
|
||||
/**
|
||||
* 查询最新的长睡睡眠时间和时长
|
||||
* @param id 用户ID
|
||||
* @param id 用户 ID
|
||||
* @return
|
||||
*/
|
||||
@Select("SELECT long_duration_total minutes, data_date dataDate FROM watch_stat_user_info_day_sleep WHERE user_id = #{id} and long_duration_total > 0 ORDER BY data_date DESC LIMIT 1;")
|
||||
@Select("SELECT long_duration_total minutes, data_date dataDate FROM watch_stat_user_info_day_sleep WHERE user_id = #{id} AND long_duration_total > 0 ORDER BY data_date DESC FETCH FIRST 1 ROWS ONLY")
|
||||
WatchDataDTO getDataSleepNew(@Param("id") String id);
|
||||
|
||||
@Select("SELECT AVG(ROUND((CAST(d.wake_up_time AS DATE) - CAST(d.fall_asleep_time AS DATE)) * 24 * 60)) AS aveMinute FROM watch_data_sleep_new_day d LEFT JOIN watch_data_sleep_new n ON d.sleep_id = n.id WHERE n.id IN (SELECT id FROM watch_data_sleep_new WHERE bind_user_id = #{id})")
|
||||
Double getAverageSleep(@Param("id") String id);
|
||||
|
||||
@Select("select MAX(data_value) dataValue,data_date dataDate from watch_data_steps where bind_user_id = #{id} group by data_date order by data_date desc limit 1")
|
||||
@Select("SELECT MAX(data_value) dataValue, data_date dataDate FROM watch_data_steps WHERE bind_user_id = #{id} ORDER BY data_date DESC FETCH FIRST 1 ROWS ONLY")
|
||||
WatchDataDTO getDataSteps(@Param("id") String id);
|
||||
|
||||
@Select("SELECT SUM(data_value) FROM watch_data_distance WHERE bind_user_id = #{id}")
|
||||
Integer getDataDistance(@Param("id") String id);
|
||||
|
||||
@Select("SELECT CAST(data_value as INTEGER) dataValue,data_date dataDate from watch_data_heart_rate where bind_user_id = #{id} order by time_stamp desc limit 1")
|
||||
@Select("SELECT CAST(data_value AS INTEGER) dataValue, data_date dataDate FROM watch_data_heart_rate WHERE bind_user_id = #{id} ORDER BY time_stamp DESC FETCH FIRST 1 ROWS ONLY")
|
||||
WatchDataDTO getHeartRate(@Param("id") String id);
|
||||
|
||||
@Select("SELECT CAST(data_value as INTEGER) dataValue,data_date dataDate from watch_data_spo2 where bind_user_id = #{id} order by time_stamp desc limit 1")
|
||||
@Select("SELECT CAST(data_value AS INTEGER) dataValue, data_date dataDate FROM watch_data_spo2 WHERE bind_user_id = #{id} ORDER BY time_stamp DESC FETCH FIRST 1 ROWS ONLY")
|
||||
WatchDataDTO getDataSpo2(@Param("id") String id);
|
||||
|
||||
@Select("select cast(data_value as INTEGER) dataValue,data_date dataDate from watch_data_stress where bind_user_id = #{id} order by end_time_stamp desc limit 1")
|
||||
@Select("SELECT CAST(data_value AS INTEGER) dataValue, data_date dataDate FROM watch_data_stress WHERE bind_user_id = #{id} ORDER BY end_time_stamp DESC FETCH FIRST 1 ROWS ONLY")
|
||||
WatchDataDTO getStress(@Param("id") String id);
|
||||
|
||||
@Select("select data_value dataValue,data_date dataDate from watch_data_temperature where bind_user_id = #{id} order by time_stamp desc limit 1")
|
||||
@Select("SELECT data_value dataValue, data_date dataDate FROM watch_data_temperature WHERE bind_user_id = #{id} ORDER BY time_stamp DESC FETCH FIRST 1 ROWS ONLY")
|
||||
WatchDataDTO getTemp(@Param("id") String id);
|
||||
|
||||
@Select("SELECT * FROM watch_data_sleep_new_minute WHERE sleep_id IN (SELECT id FROM watch_data_sleep_new WHERE sleep_flag= '1' AND bind_user_id = #{id} AND data_date = #{date})")
|
||||
@@ -81,7 +81,7 @@ public interface WatchMapper {
|
||||
@Select("select max(data_value) maxValue,min(data_value) minValue from watch_data_spo2 where bind_user_id = #{id} and data_date = #{date}")
|
||||
Map<String, Object> getMapSpo2(@Param("id") String id, @Param("date") Date date);
|
||||
|
||||
@Select("select data_value lastValue from watch_data_spo2 where bind_user_id = #{id} and data_date = #{date} order by time_stamp desc limit 1")
|
||||
@Select("SELECT data_value lastValue FROM watch_data_spo2 WHERE bind_user_id = #{id} AND data_date = #{date} ORDER BY time_stamp DESC FETCH FIRST 1 ROWS ONLY")
|
||||
Map<String, Object> getMapNewSpo2(@Param("id") String id, @Param("date") Date date);
|
||||
|
||||
List<Map<String, Object>> getMapSpo2Format(@Param("id") String id, @Param("date") String date, @Param("format") String format);
|
||||
@@ -95,6 +95,6 @@ public interface WatchMapper {
|
||||
|
||||
Map<String, Object> getAverageDay(@Param("id") String id);
|
||||
|
||||
@Select("SELECT watch_no FROM watch_bind_his WHERE bind_user_id = #{id} AND bind_date <= #{date} ORDER BY bind_date DESC limit 1")
|
||||
@Select("SELECT watch_no FROM watch_bind_his WHERE bind_user_id = #{id} AND bind_date <= #{date} ORDER BY bind_date DESC FETCH FIRST 1 ROWS ONLY")
|
||||
String getWatchNo(@Param("id") String id, @Param("date") String date);
|
||||
}
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@ public interface WatchMonitorDataMapper extends BaseMapper<WatchMonitorData>, MP
|
||||
|
||||
List<WatchMonitorData> getMonitorErrorNumsNew(@Param("orgCodes")List<String> orgCodes, @Param("start") Date start, @Param("end") Date end);
|
||||
|
||||
@Select("select count(1) from watch_monitor_data where bind_user_id = #{userId} and YEAR(warn_time) = #{year} and event_type = 'fall_down'")
|
||||
@Select("SELECT COUNT(1) FROM watch_monitor_data WHERE bind_user_id = #{userId} AND EXTRACT(YEAR FROM warn_time) = #{year} AND event_type = 'fall_down'")
|
||||
int selectUserFallNum(String userId,String year);
|
||||
|
||||
List<WatchMonitorData> selectParams(@Param("req") AloneReq req);
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ public interface WatchStatUserInfoDayStressMapper extends MPJBaseMapper<WatchSta
|
||||
List<WatchDataStressRes> selectStressByYear(@Param("dateYear") Date dateYear, @Param("userId")String userId);
|
||||
|
||||
|
||||
@Select("select * from watch_stat_user_info_day_stress where user_id = #{userId} DATE(data_date) = DATE(#{dataDate}) limit 1")
|
||||
@Select("SELECT * FROM watch_stat_user_info_day_stress WHERE user_id = #{userId} AND data_date = #{dataDate} AND ROWNUM = 1")
|
||||
WatchDataStressRes selectStressByUserIdAndDate(@Param("dateTime") Date dateTime, @Param("userId")String userId);
|
||||
|
||||
void insertStat(WatchStatUserInfoDayStress watchStatUserInfoDayStress);
|
||||
|
||||
+33
-31
@@ -3,36 +3,38 @@
|
||||
<mapper namespace="com.renkang.watch.mapper.ArchivesBodyTypeMapper">
|
||||
|
||||
<select id="selectHeartRateData" resultType="com.renkang.watch.entity.ArchivesBodyType">
|
||||
SELECT
|
||||
temp.*
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
userid AS userId,
|
||||
data_value AS dataValue,
|
||||
"5" AS dataSource,
|
||||
type AS type,
|
||||
last_update_time AS createDate
|
||||
FROM
|
||||
watch_data
|
||||
WHERE
|
||||
userid = #{userId}
|
||||
AND type = 1 UNION ALL
|
||||
SELECT
|
||||
user_id AS userId,
|
||||
data_value AS dataValue,
|
||||
data_source AS dataSource,
|
||||
type AS type,
|
||||
create_date AS createDate
|
||||
FROM
|
||||
archives_body_type
|
||||
WHERE
|
||||
user_id = #{userId}
|
||||
AND type = 1
|
||||
) temp
|
||||
ORDER BY
|
||||
temp.createDate DESC
|
||||
LIMIT 1;
|
||||
SELECT * FROM (
|
||||
SELECT
|
||||
temp.*
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
userid AS userId,
|
||||
data_value AS dataValue,
|
||||
"5" AS dataSource,
|
||||
type AS type,
|
||||
last_update_time AS createDate
|
||||
FROM
|
||||
watch_data
|
||||
WHERE
|
||||
userid = #{userId}
|
||||
AND type = 1
|
||||
UNION ALL
|
||||
SELECT
|
||||
user_id AS userId,
|
||||
data_value AS dataValue,
|
||||
data_source AS dataSource,
|
||||
type AS type,
|
||||
create_date AS createDate
|
||||
FROM
|
||||
archives_body_type
|
||||
WHERE
|
||||
user_id = #{userId}
|
||||
AND type = 1
|
||||
) temp
|
||||
ORDER BY
|
||||
temp.createDate DESC
|
||||
) WHERE ROWNUM = 1
|
||||
</select>
|
||||
<select id="selectTemperatureData" resultType="com.renkang.watch.entity.ArchivesBodyType">
|
||||
SELECT
|
||||
@@ -62,9 +64,9 @@
|
||||
user_id = #{userId}
|
||||
AND type = 5
|
||||
) temp
|
||||
WHERE ROWNUM = 1
|
||||
ORDER BY
|
||||
temp.createDate DESC
|
||||
LIMIT 1;
|
||||
</select>
|
||||
<select id="analysisHeartRateListData" resultType="com.renkang.watch.entity.ArchivesBodyType">
|
||||
SELECT
|
||||
|
||||
+2
-2
@@ -5,9 +5,9 @@
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
`watch_data_heart_rate`
|
||||
"watch_data_heart_rate"
|
||||
WHERE
|
||||
YEAR ( data_date )= #{req.dateYear}
|
||||
EXTRACT(YEAR FROM data_date) = #{req.dateYear}
|
||||
AND
|
||||
bind_user_id=#{req.userId}
|
||||
order by data_date desc,time_stamp desc
|
||||
|
||||
+195
-131
@@ -88,18 +88,18 @@
|
||||
|
||||
<select id="selectSevenActiveList" resultType="com.renkang.watch.entity.WatchData">
|
||||
select
|
||||
orgcode, IFNULL(COUNT(DISTINCT userid),0) AS "type"
|
||||
orgcode, NVL(COUNT(DISTINCT userid),0) AS "type"
|
||||
from watch_data
|
||||
WHERE last_update_time >= CURDATE() - INTERVAL 6 DAY
|
||||
WHERE last_update_time >= SYSDATE - 6
|
||||
GROUP BY orgcode
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectThirtyActiveList" resultType="com.renkang.watch.entity.WatchData">
|
||||
select
|
||||
orgcode, IFNULL(COUNT(DISTINCT userid),0) AS "type"
|
||||
orgcode, NVL(COUNT(DISTINCT userid),0) AS "type"
|
||||
from watch_data
|
||||
WHERE last_update_time >= CURDATE() - INTERVAL 29 DAY
|
||||
WHERE last_update_time >= SYSDATE - 29
|
||||
GROUP BY orgcode
|
||||
</select>
|
||||
|
||||
@@ -127,89 +127,113 @@
|
||||
SELECT count(1)
|
||||
FROM watch_data
|
||||
WHERE watch_no = #{watchNo}
|
||||
AND last_update_time >= CURDATE() - INTERVAL 7 DAY
|
||||
AND last_update_time >= SYSDATE - 7
|
||||
</select>
|
||||
|
||||
<insert id="insertHeartRate">
|
||||
insert into watch_data(id, userid, username, orgcode, watch_no, type, data_value, last_update_time)
|
||||
(select #{id,jdbcType=VARCHAR}, bind_user_id, #{username,jdbcType=VARCHAR}, #{orgcode,jdbcType=VARCHAR}, watch_no, 1, data_value, data_date
|
||||
from watch_data_heart_rate force index (bind_user_id)
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
order by time_stamp desc
|
||||
limit 1);
|
||||
from (select bind_user_id, watch_no, data_value, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY time_stamp desc) as rn
|
||||
from watch_data_heart_rate
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR})
|
||||
where rn = 1);
|
||||
</insert>
|
||||
|
||||
<update id="updateHeartRate">
|
||||
update watch_data wd left join (select bind_user_id, data_value, data_date
|
||||
from watch_data_heart_rate force index (bind_user_id)
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
order by time_stamp desc
|
||||
limit 1) d on d.bind_user_id = wd.userid
|
||||
update watch_data wd
|
||||
set wd.orgcode = #{orgcode,jdbcType=VARCHAR},
|
||||
wd.data_value = d.data_value,
|
||||
wd.last_update_time = d.data_date
|
||||
wd.data_value = (select data_value from (
|
||||
select bind_user_id, data_value, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY time_stamp desc) as rn
|
||||
from watch_data_heart_rate
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
) where rn = 1),
|
||||
wd.last_update_time = (select data_date from (
|
||||
select bind_user_id, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY time_stamp desc) as rn
|
||||
from watch_data_heart_rate
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
) where rn = 1)
|
||||
where wd.userid = #{userid,jdbcType=VARCHAR}
|
||||
and wd.watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
and wd.`type` = 1;
|
||||
and wd.watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
and wd."type" = 1;
|
||||
</update>
|
||||
|
||||
<insert id="insertSpo2">
|
||||
insert into watch_data(id, userid, username, orgcode, watch_no, type, data_value, last_update_time)
|
||||
(select #{id,jdbcType=VARCHAR}, bind_user_id, #{username,jdbcType=VARCHAR}, #{orgcode,jdbcType=VARCHAR}, watch_no, 2, data_value, data_date
|
||||
from watch_data_spo2 force index (bind_user_id_index)
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
order by time_stamp desc
|
||||
limit 1);
|
||||
from (select bind_user_id, watch_no, data_value, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY time_stamp desc) as rn
|
||||
from watch_data_spo2
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR})
|
||||
where rn = 1);
|
||||
</insert>
|
||||
|
||||
<update id="updateSpo2">
|
||||
update watch_data wd left join (select bind_user_id, data_value, data_date
|
||||
from watch_data_spo2 force index (bind_user_id_index)
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
order by time_stamp desc
|
||||
limit 1) d on d.bind_user_id = wd.userid
|
||||
update watch_data wd
|
||||
set wd.orgcode = #{orgcode,jdbcType=VARCHAR},
|
||||
wd.data_value = d.data_value,
|
||||
wd.last_update_time = d.data_date
|
||||
wd.data_value = (select data_value from (
|
||||
select bind_user_id, data_value, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY time_stamp desc) as rn
|
||||
from watch_data_spo2
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
) where rn = 1),
|
||||
wd.last_update_time = (select data_date from (
|
||||
select bind_user_id, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY time_stamp desc) as rn
|
||||
from watch_data_spo2
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
) where rn = 1)
|
||||
where userid = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
and `type` = 2;
|
||||
and "type" = 2;
|
||||
</update>
|
||||
|
||||
<insert id="insertStress">
|
||||
insert into watch_data(id, userid, username, orgcode, watch_no, type, data_value, last_update_time)
|
||||
(select #{id,jdbcType=VARCHAR}, bind_user_id, #{username,jdbcType=VARCHAR}, #{orgcode,jdbcType=VARCHAR}, watch_no, 3, data_value, data_date
|
||||
from watch_data_stress force index (bind_user_id)
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
order by start_time_stamp desc
|
||||
limit 1);
|
||||
from (select bind_user_id, watch_no, data_value, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY start_time_stamp desc) as rn
|
||||
from watch_data_stress
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR})
|
||||
where rn = 1);
|
||||
</insert>
|
||||
|
||||
<update id="updateStress">
|
||||
update watch_data wd left join (select bind_user_id, data_value, data_date
|
||||
from watch_data_stress force index (bind_user_id)
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
order by start_time_stamp desc
|
||||
limit 1) d on d.bind_user_id = wd.userid
|
||||
update watch_data wd
|
||||
set wd.orgcode = #{orgcode,jdbcType=VARCHAR},
|
||||
wd.data_value = d.data_value,
|
||||
wd.last_update_time = d.data_date
|
||||
wd.data_value = (select data_value from (
|
||||
select bind_user_id, data_value, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY start_time_stamp desc) as rn
|
||||
from watch_data_stress
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
) where rn = 1),
|
||||
wd.last_update_time = (select data_date from (
|
||||
select bind_user_id, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY start_time_stamp desc) as rn
|
||||
from watch_data_stress
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
) where rn = 1)
|
||||
where userid = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
and `type` = 3;
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
and "type" = 3;
|
||||
</update>
|
||||
|
||||
<insert id="insertSleep">
|
||||
insert into watch_data(id, userid, username, orgcode, watch_no, type, data_value, last_update_time)
|
||||
(select #{id,jdbcType=VARCHAR}, bind_user_id,
|
||||
#{username,jdbcType=VARCHAR}, #{orgcode,jdbcType=VARCHAR}, #{watchNo,jdbcType=VARCHAR}, 4,
|
||||
sum(time_to_sec(timediff(sm.end_time, sm.start_time))) / 60 as deep_light_times, data_date
|
||||
NVL(SUM(EXTRACT(HOUR FROM (sm.end_time - sm.start_time)) * 60 + EXTRACT(MINUTE FROM (sm.end_time - sm.start_time))), 0) as deep_light_times, data_date
|
||||
from watch_data_sleep_new s
|
||||
left join watch_data_sleep_new_minute sm on s.id = sm.sleep_id
|
||||
where s.bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
@@ -217,132 +241,172 @@
|
||||
and s.sleep_flag = '1'
|
||||
group by s.bind_user_id, s.watch_no, s.data_date
|
||||
order by data_date desc
|
||||
limit 1);
|
||||
FETCH FIRST 1 ROWS ONLY);
|
||||
</insert>
|
||||
|
||||
<update id="updateSleep">
|
||||
update watch_data wd left join (select s.bind_user_id,
|
||||
sum(time_to_sec(timediff(sm.end_time, sm.start_time))) / 60 as deep_light_times,
|
||||
data_date
|
||||
from watch_data_sleep_new s
|
||||
left join watch_data_sleep_new_minute sm on s.id = sm.sleep_id
|
||||
where s.bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and s.watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
and s.sleep_flag = '1'
|
||||
group by s.bind_user_id, s.watch_no, s.data_date
|
||||
order by data_date desc
|
||||
limit 1) d on d.bind_user_id = wd.userid
|
||||
update watch_data wd
|
||||
set wd.orgcode = #{orgcode,jdbcType=VARCHAR},
|
||||
wd.data_value = d.deep_light_times,
|
||||
wd.last_update_time = d.data_date
|
||||
wd.data_value = (select NVL(SUM(EXTRACT(HOUR FROM (sm.end_time - sm.start_time)) * 60 + EXTRACT(MINUTE FROM (sm.end_time - sm.start_time))), 0)
|
||||
from watch_data_sleep_new s
|
||||
left join watch_data_sleep_new_minute sm on s.id = sm.sleep_id
|
||||
where s.bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and s.watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
and s.sleep_flag = '1'
|
||||
group by s.bind_user_id, s.watch_no, s.data_date
|
||||
order by data_date desc
|
||||
FETCH FIRST 1 ROWS ONLY),
|
||||
wd.last_update_time = (select data_date from (
|
||||
select data_date
|
||||
from watch_data_sleep_new
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
and sleep_flag = '1'
|
||||
order by data_date desc
|
||||
) where ROWNUM = 1)
|
||||
where userid = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
and `type` = 4;
|
||||
and "type" = 4;
|
||||
</update>
|
||||
|
||||
<insert id="insertTemperature">
|
||||
insert into watch_data(id, userid, username, orgcode, watch_no, type, data_value, last_update_time)
|
||||
(select #{id,jdbcType=VARCHAR}, bind_user_id, #{username,jdbcType=VARCHAR}, #{orgcode,jdbcType=VARCHAR}, watch_no, 5, data_value, data_date
|
||||
from watch_data_temperature force index (bind_user_id)
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
order by time_stamp desc
|
||||
limit 1);
|
||||
from (select bind_user_id, watch_no, data_value, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY time_stamp desc) as rn
|
||||
from watch_data_temperature
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR})
|
||||
where rn = 1);
|
||||
</insert>
|
||||
|
||||
<update id="updateTemperature">
|
||||
update watch_data wd left join (select bind_user_id, data_value, data_date
|
||||
from watch_data_temperature force index (bind_user_id)
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
order by time_stamp desc
|
||||
limit 1) d on d.bind_user_id = wd.userid
|
||||
update watch_data wd
|
||||
set wd.orgcode = #{orgcode,jdbcType=VARCHAR},
|
||||
wd.data_value = d.data_value,
|
||||
wd.last_update_time = d.data_date
|
||||
wd.data_value = (select data_value from (
|
||||
select bind_user_id, data_value, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY time_stamp desc) as rn
|
||||
from watch_data_temperature
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
) where rn = 1),
|
||||
wd.last_update_time = (select data_date from (
|
||||
select bind_user_id, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY time_stamp desc) as rn
|
||||
from watch_data_temperature
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
) where rn = 1)
|
||||
where userid = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
and `type` = 5;
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
and "type" = 5;
|
||||
</update>
|
||||
|
||||
<insert id="insertWorkout">
|
||||
insert into watch_data(id, userid, username, orgcode, watch_no, type, data_value, last_update_time)
|
||||
(select #{id,jdbcType=VARCHAR}, bind_user_id, #{username,jdbcType=VARCHAR}, #{orgcode,jdbcType=VARCHAR}, watch_no, 6, sum(calorie), data_date
|
||||
from watch_data_workout force index (bind_user_id)
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
group by bind_user_id, watch_no, data_date
|
||||
order by data_date desc
|
||||
limit 1);
|
||||
from (select bind_user_id, watch_no, sum(calorie) as calorie, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY data_date desc) as rn
|
||||
from watch_data_workout
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
group by bind_user_id, watch_no, data_date)
|
||||
where rn = 1);
|
||||
</insert>
|
||||
|
||||
<update id="updateWorkout">
|
||||
update watch_data wd left join (select bind_user_id, sum(calorie) as data_value, data_date
|
||||
from watch_data_workout force index (bind_user_id)
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
group by bind_user_id, watch_no, data_date
|
||||
order by data_date desc
|
||||
limit 1) d on d.bind_user_id = wd.userid
|
||||
update watch_data wd
|
||||
set wd.orgcode = #{orgcode,jdbcType=VARCHAR},
|
||||
wd.data_value = d.data_value,
|
||||
wd.last_update_time = d.data_date
|
||||
wd.data_value = (select sum(calorie) from (
|
||||
select bind_user_id, watch_no, sum(calorie) as calorie, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY data_date desc) as rn
|
||||
from watch_data_workout
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
group by bind_user_id, watch_no, data_date
|
||||
) where rn = 1),
|
||||
wd.last_update_time = (select data_date from (
|
||||
select bind_user_id, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY data_date desc) as rn
|
||||
from watch_data_workout
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
group by bind_user_id, watch_no, data_date
|
||||
) where rn = 1)
|
||||
where userid = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
and `type` = 6;
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
and "type" = 6;
|
||||
</update>
|
||||
|
||||
<insert id="insertDistance">
|
||||
insert into watch_data(id, userid, username, orgcode, watch_no, type, data_value, last_update_time)
|
||||
(select #{id,jdbcType=VARCHAR}, bind_user_id, #{username,jdbcType=VARCHAR}, #{orgcode,jdbcType=VARCHAR}, watch_no, 7, max(data_value), data_date
|
||||
from watch_data_distance force index (bind_user_id)
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
group by bind_user_id, watch_no, data_date
|
||||
order by data_date desc
|
||||
limit 1);
|
||||
from (select bind_user_id, watch_no, max(data_value) as data_value, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY data_date desc) as rn
|
||||
from watch_data_distance
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
group by bind_user_id, watch_no, data_date)
|
||||
where rn = 1);
|
||||
</insert>
|
||||
|
||||
<update id="updateDistance">
|
||||
update watch_data wd left join (select bind_user_id,max(data_value) as data_value, data_date
|
||||
from watch_data_distance force index (bind_user_id)
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
group by bind_user_id, watch_no, data_date
|
||||
order by data_date desc
|
||||
limit 1) d on d.bind_user_id = wd.userid
|
||||
update watch_data wd
|
||||
set wd.orgcode = #{orgcode,jdbcType=VARCHAR},
|
||||
wd.data_value = d.data_value,
|
||||
wd.last_update_time = d.data_date
|
||||
wd.data_value = (select max(data_value) from (
|
||||
select bind_user_id, watch_no, max(data_value) as data_value, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY data_date desc) as rn
|
||||
from watch_data_distance
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
group by bind_user_id, watch_no, data_date
|
||||
) where rn = 1),
|
||||
wd.last_update_time = (select data_date from (
|
||||
select bind_user_id, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY data_date desc) as rn
|
||||
from watch_data_distance
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
group by bind_user_id, watch_no, data_date
|
||||
) where rn = 1)
|
||||
where userid = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
and `type` = 7;
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
and "type" = 7;
|
||||
</update>
|
||||
|
||||
<insert id="insertSteps">
|
||||
insert into watch_data(id, userid, username, orgcode, watch_no, type, data_value, last_update_time)
|
||||
(select #{id,jdbcType=VARCHAR}, bind_user_id, #{username,jdbcType=VARCHAR}, #{orgcode,jdbcType=VARCHAR}, watch_no, 8, max(data_value), data_date
|
||||
from watch_data_steps force index (bind_user_id)
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
group by bind_user_id, watch_no, data_date
|
||||
order by data_date desc
|
||||
limit 1);
|
||||
from (select bind_user_id, watch_no, max(data_value) as data_value, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY data_date desc) as rn
|
||||
from watch_data_steps
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
group by bind_user_id, watch_no, data_date)
|
||||
where rn = 1);
|
||||
</insert>
|
||||
|
||||
<update id="updateSteps">
|
||||
update watch_data wd left join (select bind_user_id,max(data_value) as data_value, data_date
|
||||
from watch_data_steps force index (bind_user_id)
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
group by bind_user_id, watch_no, data_date
|
||||
order by data_date desc
|
||||
limit 1) d on d.bind_user_id = wd.userid
|
||||
update watch_data wd
|
||||
set wd.orgcode = #{orgcode,jdbcType=VARCHAR},
|
||||
wd.data_value = d.data_value,
|
||||
wd.last_update_time = d.data_date
|
||||
wd.data_value = (select max(data_value) from (
|
||||
select bind_user_id, watch_no, max(data_value) as data_value, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY data_date desc) as rn
|
||||
from watch_data_steps
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
group by bind_user_id, watch_no, data_date
|
||||
) where rn = 1),
|
||||
wd.last_update_time = (select data_date from (
|
||||
select bind_user_id, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id, watch_no ORDER BY data_date desc) as rn
|
||||
from watch_data_steps
|
||||
where bind_user_id = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
group by bind_user_id, watch_no, data_date
|
||||
) where rn = 1)
|
||||
where userid = #{userid,jdbcType=VARCHAR}
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
and `type` = 8;
|
||||
and watch_no = #{watchNo,jdbcType=VARCHAR}
|
||||
and "type" = 8;
|
||||
</update>
|
||||
</mapper>
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@
|
||||
wdsnm.start_time as startTime,
|
||||
wdsnm.end_time as endTime,
|
||||
wdsnm.sleep_type as sleepType,
|
||||
TIMESTAMPDIFF(MINUTE,wdsnm.start_time,wdsnm.end_time) as times
|
||||
EXTRACT(MINUTE FROM (wdsnm.end_time - wdsnm.start_time)) as times
|
||||
from
|
||||
watch_data_sleep_new wdsn
|
||||
inner join watch_data_sleep_new_minute wdsnm on wdsnm.sleep_id=wdsn.id
|
||||
|
||||
+2
-2
@@ -5,9 +5,9 @@
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
`watch_data_spo2`
|
||||
"watch_data_spo2"
|
||||
WHERE
|
||||
YEAR ( data_date )= #{req.dateYear}
|
||||
EXTRACT(YEAR FROM data_date) = #{req.dateYear}
|
||||
AND
|
||||
bind_user_id=#{req.userId}
|
||||
order by data_date desc,time_stamp desc
|
||||
|
||||
+2
-2
@@ -5,9 +5,9 @@
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
`watch_data_stress`
|
||||
"watch_data_stress"
|
||||
WHERE
|
||||
YEAR ( data_date )= #{req.dateYear}
|
||||
EXTRACT(YEAR FROM data_date) = #{req.dateYear}
|
||||
AND
|
||||
bind_user_id=#{req.userId}
|
||||
order by data_date desc,start_time_stamp asc ,end_time_stamp asc
|
||||
|
||||
+2
-2
@@ -5,9 +5,9 @@
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
`watch_data_temperature`
|
||||
"watch_data_temperature"
|
||||
WHERE
|
||||
YEAR ( data_date )= #{req.dateYear}
|
||||
EXTRACT(YEAR FROM data_date) = #{req.dateYear}
|
||||
AND
|
||||
bind_user_id=#{req.userId}
|
||||
order by data_date desc,
|
||||
|
||||
+27
-21
@@ -5,7 +5,7 @@
|
||||
<select id="selectSportCostList" resultType="com.renkang.watch.entity.WatchDataWorkout">
|
||||
SELECT
|
||||
DATE(start_time_stamp) as "dataDate",
|
||||
IFNULL(SUM(calorie),0) AS calorie,
|
||||
NVL(SUM(calorie),0) AS calorie,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN workout_type IN (1, 3, 11, 12, 13, 17, 18, 102, 103, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 122, 127, 129, 137, 138, 142, 143, 151, 153, 154, 155, 156, 157, 163, 164, 166, 167, 169, 177, 179, 180, 181, 182, 183) THEN calorie * 0.30
|
||||
@@ -19,25 +19,25 @@
|
||||
WHEN workout_type IN (2, 4, 5, 6, 7, 8, 9, 10, 14, 15, 16, 19, 20, 21, 101, 104, 105, 106, 111, 121, 123, 124, 125, 126, 128, 130, 131, 132, 133, 134, 135, 136, 139, 140, 141, 144, 145, 146, 147, 148, 149, 150, 158, 159, 160, 161, 162, 165, 168, 170, 171, 172, 173, 174, 175, 176, 178, 184, 185) THEN calorie-FLOOR(calorie * 0.50)
|
||||
ELSE 0
|
||||
END
|
||||
) AS sugarCalories
|
||||
) AS sugarCalories,
|
||||
SUM(NVL(EXTRACT(SECOND FROM (end_time_stamp - start_time_stamp)) +
|
||||
EXTRACT(MINUTE FROM (end_time_stamp - start_time_stamp)) * 60 +
|
||||
EXTRACT(HOUR FROM (end_time_stamp - start_time_stamp)) * 3600, 0)) as "totalTime"
|
||||
FROM
|
||||
watch_data_workout
|
||||
watch_data_workout
|
||||
WHERE
|
||||
FIND_IN_SET(workout_type,'1,2,3,109,144,6,7,101,113,145')
|
||||
and bind_user_id = #{watchDataWorkout.bindUserId}
|
||||
<if test="watchDataWorkout.endTime != null and watchDataWorkout.startTime != null">
|
||||
and DATE(start_time_stamp) >= DATE(#{watchDataWorkout.startTime})
|
||||
and DATE(start_time_stamp) <= DATE(#{watchDataWorkout.endTime})
|
||||
</if>
|
||||
GROUP BY
|
||||
dataDate
|
||||
order by dataDate
|
||||
INSTR(',' || '1,2,3,109,144,6,7,101,113,145' || ',', ',' || workout_type || ',') > 0
|
||||
<if test="watchDataWorkout.endTime != null and watchDataWorkout.startTime != null">
|
||||
and DATE(start_time_stamp) >= DATE(#{watchDataWorkout.startTime})
|
||||
and DATE(start_time_stamp) <= DATE(#{watchDataWorkout.endTime})
|
||||
</if>
|
||||
and bind_user_id = #{watchDataWorkout.bindUserId}
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectSportCostTotal" resultType="com.renkang.watch.entity.WatchDataWorkout">
|
||||
SELECT
|
||||
IFNULL(SUM(calorie),0) AS calorie,
|
||||
NVL(SUM(calorie),0) AS calorie,
|
||||
SUM(
|
||||
CASE
|
||||
WHEN workout_type IN (1, 3, 11, 12, 13, 17, 18, 102, 103, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 122, 127, 129, 137, 138, 142, 143, 151, 153, 154, 155, 156, 157, 163, 164, 166, 167, 169, 177, 179, 180, 181, 182, 183) THEN calorie * 0.30
|
||||
@@ -88,27 +88,31 @@
|
||||
ELSE 0
|
||||
END
|
||||
AS sugarCalories,
|
||||
IFNULL(TIMESTAMPDIFF(SECOND, start_time_stamp, end_time_stamp),0) as "totalTime"
|
||||
NVL(EXTRACT(SECOND FROM (end_time_stamp - start_time_stamp)) +
|
||||
EXTRACT(MINUTE FROM (end_time_stamp - start_time_stamp)) * 60 +
|
||||
EXTRACT(HOUR FROM (end_time_stamp - start_time_stamp)) * 3600, 0) as "totalTime"
|
||||
from
|
||||
watch_data_workout
|
||||
WHERE
|
||||
bind_user_id = #{watchDataWorkout.bindUserId}
|
||||
and DATE(start_time_stamp) = DATE(#{watchDataWorkout.dataDate})
|
||||
and FIND_IN_SET(workout_type,'1,2,3,109,144,6,7,101,113,145')
|
||||
and INSTR(',' || '1,2,3,109,144,6,7,101,113,145' || ',', ',' || workout_type || ',') > 0
|
||||
order by start_time_stamp desc
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectselectSportTimingTotal" resultType="com.renkang.watch.entity.WatchDataWorkout">
|
||||
select
|
||||
IFNULL(SUM(calorie),0) as "calorie",
|
||||
IFNULL(SUM(TIMESTAMPDIFF(SECOND, start_time_stamp, end_time_stamp)),0) as "totalTime"
|
||||
NVL(SUM(calorie),0) as "calorie",
|
||||
NVL(SUM(EXTRACT(SECOND FROM (end_time_stamp - start_time_stamp)) +
|
||||
EXTRACT(MINUTE FROM (end_time_stamp - start_time_stamp)) * 60 +
|
||||
EXTRACT(HOUR FROM (end_time_stamp - start_time_stamp)) * 3600),0) as "totalTime"
|
||||
from
|
||||
watch_data_workout
|
||||
WHERE
|
||||
bind_user_id = #{watchDataWorkout.bindUserId}
|
||||
and DATE(start_time_stamp) = DATE(#{watchDataWorkout.dataDate})
|
||||
and FIND_IN_SET(workout_type,'1,2,3,109,144,6,7,101,113,145')
|
||||
and INSTR(',' || '1,2,3,109,144,6,7,101,113,145' || ',', ',' || workout_type || ',') > 0
|
||||
</select>
|
||||
|
||||
|
||||
@@ -193,7 +197,7 @@
|
||||
bind_user_id = #{watchDataWorkout.bindUserId}
|
||||
and DATE(start_time_stamp) >= DATE(#{watchDataWorkout.startTime})
|
||||
and DATE(start_time_stamp) <= DATE(#{watchDataWorkout.endTime})
|
||||
and FIND_IN_SET(workout_type,'1,2,3,109,144,6,7,101,113,145')
|
||||
and INSTR(',' || '1,2,3,109,144,6,7,101,113,145' || ',', ',' || workout_type || ',') > 0
|
||||
order by start_time_stamp
|
||||
</select>
|
||||
|
||||
@@ -240,8 +244,10 @@
|
||||
|
||||
<select id="selectselectSportTimingTotalNew" resultType="com.renkang.watch.entity.WatchDataWorkout">
|
||||
select
|
||||
IFNULL(SUM(calorie),0) as "calorie",
|
||||
IFNULL(SUM(TIMESTAMPDIFF(SECOND, start_time_stamp, end_time_stamp)),0) as "totalTime",
|
||||
NVL(SUM(calorie),0) as "calorie",
|
||||
NVL(SUM(EXTRACT(SECOND FROM (end_time_stamp - start_time_stamp)) +
|
||||
EXTRACT(MINUTE FROM (end_time_stamp - start_time_stamp)) * 60 +
|
||||
EXTRACT(HOUR FROM (end_time_stamp - start_time_stamp)) * 3600),0) as "totalTime",
|
||||
MIN(start_time_stamp) AS "dataDate"
|
||||
from
|
||||
watch_data_workout
|
||||
|
||||
+12
-6
@@ -16,9 +16,9 @@
|
||||
END AS watch_status,
|
||||
wd.bind_date,
|
||||
wd.bind_user_id,
|
||||
GROUP_CONCAT(wds.wd_type) AS wd_types,
|
||||
GROUP_CONCAT(wds.switch_flag) AS switch_flags,
|
||||
GROUP_CONCAT(IFNULL(wds.update_date, '') SEPARATOR ',') AS update_dates
|
||||
LISTAGG(wds.wd_type, ',') WITHIN GROUP (ORDER BY wds.wd_type) AS wd_types,
|
||||
LISTAGG(wds.switch_flag, ',') WITHIN GROUP (ORDER BY wds.switch_flag) AS switch_flags,
|
||||
LISTAGG(NVL(TO_CHAR(wds.update_date, 'YYYY-MM-DD HH24:MI:SS'), '') || ',') WITHIN GROUP (ORDER BY wds.update_date) AS update_dates
|
||||
FROM
|
||||
watch_device wd
|
||||
LEFT JOIN
|
||||
@@ -45,7 +45,13 @@
|
||||
${permissionSql}
|
||||
</where>
|
||||
GROUP BY
|
||||
wd.id,wd.watch_no, wd.dept_id, wd.create_date, watch_status, wd.bind_date, wd.bind_user_id
|
||||
wd.id, wd.watch_no, wd.dept_id, wd.create_date,
|
||||
CASE
|
||||
WHEN wd.bind_user_id IS NULL THEN 0
|
||||
WHEN wd.bind_user_id = '' THEN 0
|
||||
ELSE 1
|
||||
END,
|
||||
wd.bind_date, wd.bind_user_id
|
||||
ORDER BY
|
||||
wd.create_date DESC;
|
||||
</select>
|
||||
@@ -147,7 +153,7 @@
|
||||
count(1)
|
||||
from watch_device
|
||||
where org_code = #{orgCode}
|
||||
and Date(create_date) <![CDATA[ <= ]]> #{endDate}
|
||||
and TRUNC(create_date) <![CDATA[ <= ]]> #{endDate}
|
||||
</select>
|
||||
|
||||
|
||||
@@ -425,7 +431,7 @@
|
||||
COALESCE(steps.step_value, 0) AS stepValue,
|
||||
COALESCE(steps.last_upload_time, NULL) AS stepTime,
|
||||
COALESCE(workout.start_time_stamp, NULL) AS durationTime,
|
||||
COALESCE(TIMESTAMPDIFF(MINUTE, workout.start_time_stamp, workout.end_time_stamp),0) AS durationTotalValue,
|
||||
COALESCE(EXTRACT(MINUTE FROM (workout.end_time_stamp - workout.start_time_stamp)),0) AS durationTotalValue,
|
||||
workout.workout_type AS workoutType,
|
||||
|
||||
COALESCE(hr.errorNum, 0) AS rateAbnormalValue,
|
||||
|
||||
+1
-1
@@ -109,7 +109,7 @@
|
||||
AND TO_CHAR(data_date, 'YYYY-MM') = #{date}
|
||||
ORDER BY
|
||||
data_date DESC
|
||||
LIMIT #{pageSize} OFFSET #{startNo}
|
||||
OFFSET #{startNo} ROWS FETCH NEXT #{pageSize} ROWS ONLY
|
||||
</select>
|
||||
<select id="getAverageDay" resultType="java.util.Map">
|
||||
SELECT
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@
|
||||
bind_user_id,
|
||||
count( DISTINCT bind_user_id )
|
||||
FROM
|
||||
`watch_monitor_data`
|
||||
"watch_monitor_data"
|
||||
<where>
|
||||
<if test="startTime!=null">
|
||||
and warn_time >= #{startTime}
|
||||
@@ -23,7 +23,7 @@
|
||||
SELECT
|
||||
count(*)
|
||||
FROM
|
||||
`watch_monitor_data`
|
||||
"watch_monitor_data"
|
||||
<where>
|
||||
and org_code like concat(#{orgCode},'%')
|
||||
<if test="type != null">
|
||||
@@ -215,6 +215,6 @@
|
||||
lon_gd IS NOT NULL
|
||||
AND lat_gd IS NOT NULL
|
||||
AND NVL(address_gd, '') = ''
|
||||
limit 100
|
||||
WHERE ROWNUM <= 100
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
+45
-52
@@ -6,15 +6,15 @@
|
||||
SELECT
|
||||
id as id ,
|
||||
user_id as userId,
|
||||
step_value as `stepValue`,
|
||||
step_value as "stepValue",
|
||||
distance_value as distanceValue,
|
||||
calorie_value as calorieValue,
|
||||
data_date as dataDate,
|
||||
TO_CHAR( data_date, 'MM' ) AS dateStr
|
||||
FROM
|
||||
`watch_stat_user_info_day_sdc`
|
||||
"watch_stat_user_info_day_sdc"
|
||||
WHERE
|
||||
YEAR ( data_date )= #{dateYear}
|
||||
EXTRACT(YEAR FROM data_date) = #{dateYear}
|
||||
and
|
||||
user_id=#{userId}
|
||||
</select>
|
||||
@@ -22,14 +22,14 @@
|
||||
SELECT
|
||||
id as id ,
|
||||
user_id as userId,
|
||||
step_value as `stepValue`,
|
||||
step_value as "stepValue",
|
||||
distance_value as distanceValue,
|
||||
calorie_value as calorieValue,
|
||||
data_date as dataDate
|
||||
FROM
|
||||
`watch_stat_user_info_day_sdc`
|
||||
"watch_stat_user_info_day_sdc"
|
||||
WHERE
|
||||
YEAR ( data_date )= #{req.dateYear}
|
||||
EXTRACT(YEAR FROM data_date) = #{req.dateYear}
|
||||
and
|
||||
user_id=#{req.userId}
|
||||
order by data_date desc
|
||||
@@ -170,26 +170,26 @@
|
||||
(select #{id,jdbcType=VARCHAR},
|
||||
#{userId,jdbcType=VARCHAR},
|
||||
(select max(data_value)
|
||||
from watch_data_steps force index (bind_user_id)
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}
|
||||
group by data_date
|
||||
order by data_date desc
|
||||
limit 1) as step_value,
|
||||
from (select data_value, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id ORDER BY data_date desc) as rn
|
||||
from watch_data_steps
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE})
|
||||
where rn = 1) as step_value,
|
||||
(select max(data_value)
|
||||
from watch_data_distance force index (bind_user_id)
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}
|
||||
group by data_date
|
||||
order by data_date desc
|
||||
limit 1) as distance_value,
|
||||
from (select data_value, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id ORDER BY data_date desc) as rn
|
||||
from watch_data_distance
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE})
|
||||
where rn = 1) as distance_value,
|
||||
(select max(data_value)
|
||||
from watch_data_calorie force index (bind_user_id)
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}
|
||||
group by data_date
|
||||
order by data_date desc
|
||||
limit 1) as calorie_value,
|
||||
from (select data_value, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id ORDER BY data_date desc) as rn
|
||||
from watch_data_calorie
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE})
|
||||
where rn = 1) as calorie_value,
|
||||
#{lastUploadTime,jdbcType=TIMESTAMP},
|
||||
#{dataDate,jdbcType=DATE},
|
||||
#{orgCode,jdbcType=VARCHAR}
|
||||
@@ -198,34 +198,27 @@
|
||||
|
||||
<update id="updateStat">
|
||||
update watch_stat_user_info_day_sdc stat
|
||||
left join (select #{userId,jdbcType=VARCHAR} as bind_user_id,
|
||||
(select max(data_value)
|
||||
from watch_data_steps force index (bind_user_id)
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}
|
||||
group by data_date
|
||||
order by data_date desc
|
||||
limit 1) as step_value,
|
||||
(select max(data_value)
|
||||
from watch_data_distance force index (bind_user_id)
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}
|
||||
group by data_date
|
||||
order by data_date desc
|
||||
limit 1) as distance_value,
|
||||
(select max(data_value)
|
||||
from watch_data_calorie force index (bind_user_id)
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}
|
||||
group by data_date
|
||||
order by data_date desc
|
||||
limit 1) as calorie_value,
|
||||
#{lastUploadTime,jdbcType=TIMESTAMP} as last_upload_time,
|
||||
#{dataDate,jdbcType=DATE} as data_date
|
||||
from dual) data on stat.user_id = data.bind_user_id
|
||||
set stat.step_value = data.step_value,
|
||||
stat.distance_value = data.distance_value,
|
||||
stat.calorie_value = data.calorie_value,
|
||||
set stat.step_value = (select max(data_value)
|
||||
from (select data_value, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id ORDER BY data_date desc) as rn
|
||||
from watch_data_steps
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE})
|
||||
where rn = 1),
|
||||
stat.distance_value = (select max(data_value)
|
||||
from (select data_value, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id ORDER BY data_date desc) as rn
|
||||
from watch_data_distance
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE})
|
||||
where rn = 1),
|
||||
stat.calorie_value = (select max(data_value)
|
||||
from (select data_value, data_date,
|
||||
ROW_NUMBER() OVER (PARTITION BY bind_user_id ORDER BY data_date desc) as rn
|
||||
from watch_data_calorie
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE})
|
||||
where rn = 1),
|
||||
stat.last_upload_time = #{lastUploadTime,jdbcType=TIMESTAMP},
|
||||
stat.org_code = #{orgCode,jdbcType=VARCHAR}
|
||||
where stat.user_id = #{userId,jdbcType=VARCHAR}
|
||||
|
||||
+3
-3
@@ -6,7 +6,7 @@
|
||||
SELECT
|
||||
id as id ,
|
||||
user_id as userId,
|
||||
sleep_avg as `sleepAvg`,
|
||||
sleep_avg as "sleepAvg",
|
||||
long_duration_avg as longDurationAvg,
|
||||
short_duration_avg as shortDurationAvg,
|
||||
long_duration_max as longDurationMax,
|
||||
@@ -18,9 +18,9 @@
|
||||
data_date as dataDate,
|
||||
TO_CHAR( data_date, 'MM' ) AS dateStr
|
||||
FROM
|
||||
`watch_stat_user_info_day_sleep`
|
||||
"watch_stat_user_info_day_sleep"
|
||||
WHERE
|
||||
YEAR ( data_date )= #{dateYear}
|
||||
EXTRACT(YEAR FROM data_date) = #{dateYear}
|
||||
and
|
||||
user_id=#{userId}
|
||||
</select>
|
||||
|
||||
+40
-32
@@ -6,15 +6,15 @@
|
||||
SELECT
|
||||
id as id ,
|
||||
user_id as userId,
|
||||
max_value as `maxValue`,
|
||||
max_value as "maxValue",
|
||||
min_value as minValue,
|
||||
avg_value as avgValue,
|
||||
data_date as dataDate,
|
||||
TO_CHAR( data_date, 'MM' ) AS dateStr
|
||||
FROM
|
||||
`watch_stat_user_info_day_spo2`
|
||||
"watch_stat_user_info_day_spo2"
|
||||
WHERE
|
||||
YEAR ( data_date )= #{dateYear}
|
||||
EXTRACT(YEAR FROM data_date) = #{dateYear}
|
||||
and
|
||||
user_id=#{userId}
|
||||
|
||||
@@ -36,16 +36,16 @@
|
||||
group by user_id
|
||||
</select>
|
||||
|
||||
<!-- 切记 此代码不能直接平移至四合一项目 ,该sql只适用mysql8.0及以上版本 ,四合一项目开发测试环境的mysql版本过低 , 但不影响正式环境-->
|
||||
<!-- 切记 此代码不能直接平移至四合一项目 ,该 sql 只适用 mysql8.0 及以上版本 ,四合一项目开发测试环境的 mysql 版本过低 , 但不影响正式环境-->
|
||||
<insert id="insertStat">
|
||||
insert into watch_stat_user_info_day_spo2(id, user_id, max_value, min_value, avg_value, last_upload_time,
|
||||
new_value, data_date, org_code)
|
||||
(SELECT #{id,jdbcType=VARCHAR},
|
||||
bind_user_id,
|
||||
IFNULL(MAX(wd.data_value), 0),
|
||||
IFNULL(MIN(wd.data_value), 0),
|
||||
IFNULL(AVG(wd.data_value), 0),
|
||||
IFNULL(MAX(wd.time_stamp), 0),
|
||||
NVL(MAX(wd.data_value), 0),
|
||||
NVL(MIN(wd.data_value), 0),
|
||||
NVL(AVG(wd.data_value), 0),
|
||||
NVL(MAX(wd.time_stamp), TO_TIMESTAMP('1970-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')),
|
||||
MAX(CASE WHEN wd.rn = 1 THEN wd.data_value END),
|
||||
data_date,
|
||||
#{orgCode,jdbcType=VARCHAR}
|
||||
@@ -57,32 +57,40 @@
|
||||
wd.data_date);
|
||||
</insert>
|
||||
|
||||
<!-- 切记 此代码不能直接平移至四合一项目 ,该sql只适用mysql8.0及以上版本 ,四合一项目开发测试环境的mysql版本过低 , 但不影响正式环境-->
|
||||
<!-- 切记 此代码不能直接平移至四合一项目 ,该 sql 只适用 mysql8.0 及以上版本 ,四合一项目开发测试环境的 mysql 版本过低 , 但不影响正式环境-->
|
||||
<update id="updateStat">
|
||||
UPDATE watch_stat_user_info_day_spo2 stat
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
wd.bind_user_id,
|
||||
wd.data_date,
|
||||
IFNULL( MAX( wd.data_value ), 0 ) AS max_value,
|
||||
IFNULL( MIN( wd.data_value ), 0 ) AS min_value,
|
||||
IFNULL( AVG( wd.data_value ), 0 ) AS avg_value,
|
||||
IFNULL( MAX( wd.time_stamp ), 0 ) AS last_upload_time,
|
||||
MAX( CASE WHEN wd.rn = 1 THEN wd.data_value END ) AS new_value
|
||||
FROM
|
||||
( SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn FROM watch_data_spo2 where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY
|
||||
wd.bind_user_id,
|
||||
wd.data_date
|
||||
) DATA ON stat.user_id = DATA.bind_user_id
|
||||
AND stat.data_date = DATA.data_date
|
||||
SET stat.max_value = DATA.max_value,
|
||||
stat.min_value = DATA.min_value,
|
||||
stat.avg_value = DATA.avg_value,
|
||||
stat.last_upload_time = DATA.last_upload_time,
|
||||
stat.new_value = DATA.new_value,
|
||||
stat.org_code = #{orgCode,jdbcType=VARCHAR}
|
||||
SET stat.max_value = (SELECT NVL(MAX(wd.data_value), 0) AS max_value
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn
|
||||
FROM watch_data_spo2
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.min_value = (SELECT NVL(MIN(wd.data_value), 0) AS min_value
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn
|
||||
FROM watch_data_spo2
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.avg_value = (SELECT NVL(AVG(wd.data_value), 0) AS avg_value
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn
|
||||
FROM watch_data_spo2
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.last_upload_time = (SELECT NVL(MAX(wd.time_stamp), TO_TIMESTAMP('1970-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS'))
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn
|
||||
FROM watch_data_spo2
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.new_value = (SELECT MAX(CASE WHEN wd.rn = 1 THEN wd.data_value END)
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn
|
||||
FROM watch_data_spo2
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.org_code = #{orgCode,jdbcType=VARCHAR}
|
||||
where stat.user_id = #{userId,jdbcType=VARCHAR}
|
||||
and stat.data_date = #{dataDate,jdbcType=DATE};
|
||||
</update>
|
||||
|
||||
+44
-37
@@ -6,35 +6,35 @@
|
||||
SELECT
|
||||
id as id ,
|
||||
user_id as userId,
|
||||
max_value as `maxValue`,
|
||||
max_value as "maxValue",
|
||||
min_value as minValue,
|
||||
avg_value as avgValue,
|
||||
data_date as dataDate,
|
||||
TO_CHAR( data_date, 'MM' ) AS dateStr
|
||||
FROM
|
||||
`watch_stat_user_info_day_stress`
|
||||
"watch_stat_user_info_day_stress"
|
||||
WHERE
|
||||
YEAR ( data_date )= #{dateYear}
|
||||
EXTRACT(YEAR FROM data_date) = #{dateYear}
|
||||
and
|
||||
user_id=#{userId}
|
||||
</select>
|
||||
|
||||
<!-- 切记 此代码不能直接平移至四合一项目 ,该sql只适用mysql8.0及以上版本 ,四合一项目开发测试环境的mysql版本过低 , 但不影响正式环境-->
|
||||
<!-- 切记 此代码不能直接平移至四合一项目 ,该 sql 只适用 mysql8.0 及以上版本 ,四合一项目开发测试环境的 mysql 版本过低 , 但不影响正式环境-->
|
||||
<insert id="insertStat">
|
||||
insert into watch_stat_user_info_day_stress(id, user_id, max_value, min_value, avg_value, data_date, last_upload_time, new_value, org_code)
|
||||
(
|
||||
SELECT
|
||||
#{id,jdbcType=VARCHAR},
|
||||
bind_user_id,
|
||||
IFNULL( MAX( wd.data_value ), 0 ),
|
||||
IFNULL( MIN( wd.data_value ), 0 ),
|
||||
IFNULL( AVG( wd.data_value ), 0 ),
|
||||
NVL(MAX(wd.data_value), 0),
|
||||
NVL(MIN(wd.data_value), 0),
|
||||
NVL(AVG(wd.data_value), 0),
|
||||
data_date,
|
||||
IFNULL(MAX( wd.end_time_stamp ),NOW()),
|
||||
MAX( CASE WHEN wd.rn = 1 THEN wd.data_value END ),
|
||||
NVL(MAX(wd.end_time_stamp), SYSDATE),
|
||||
MAX(CASE WHEN wd.rn = 1 THEN wd.data_value END),
|
||||
#{orgCode,jdbcType=VARCHAR}
|
||||
FROM
|
||||
( SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY end_time_stamp DESC ) AS rn FROM watch_data_stress
|
||||
(SELECT *, ROW_NUMBER() OVER (PARTITION BY bind_user_id, data_date ORDER BY end_time_stamp DESC) AS rn FROM watch_data_stress
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY
|
||||
@@ -43,34 +43,41 @@
|
||||
);
|
||||
</insert>
|
||||
|
||||
<!-- 切记 此代码不能直接平移至四合一项目 ,该sql只适用mysql8.0及以上版本 ,四合一项目开发测试环境的mysql版本过低 , 但不影响正式环境-->
|
||||
<!-- 切记 此代码不能直接平移至四合一项目 ,该 sql 只适用 mysql8.0 及以上版本 ,四合一项目开发测试环境的 mysql 版本过低 , 但不影响正式环境-->
|
||||
<update id="updateStat">
|
||||
UPDATE watch_stat_user_info_day_stress stat
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
wd.bind_user_id,
|
||||
wd.data_date,
|
||||
IFNULL( MAX( wd.data_value ), 0 ) AS max_value,
|
||||
IFNULL( MIN( wd.data_value ), 0 ) AS min_value,
|
||||
IFNULL( AVG( wd.data_value ), 0 ) AS avg_value,
|
||||
IFNULL(MAX( wd.end_time_stamp ),NOW()) AS last_upload_time,
|
||||
MAX( CASE WHEN wd.rn = 1 THEN wd.data_value END ) AS new_value
|
||||
FROM
|
||||
( SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY end_time_stamp DESC ) AS rn FROM watch_data_stress
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY
|
||||
wd.bind_user_id,
|
||||
wd.data_date
|
||||
) DATA ON stat.user_id = DATA.bind_user_id
|
||||
AND stat.data_date = DATA.data_date
|
||||
SET stat.max_value = DATA.max_value,
|
||||
stat.min_value = DATA.min_value,
|
||||
stat.avg_value = DATA.avg_value,
|
||||
stat.last_upload_time = DATA.last_upload_time,
|
||||
stat.new_value = DATA.new_value,
|
||||
stat.org_code = #{orgCode,jdbcType=VARCHAR}
|
||||
where stat.user_id = #{userId,jdbcType=VARCHAR}
|
||||
and stat.data_date = #{dataDate,jdbcType=DATE};
|
||||
SET stat.max_value = (SELECT NVL(MAX(wd.data_value), 0)
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY end_time_stamp DESC ) AS rn
|
||||
FROM watch_data_stress
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.min_value = (SELECT NVL(MIN(wd.data_value), 0)
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY end_time_stamp DESC ) AS rn
|
||||
FROM watch_data_stress
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.avg_value = (SELECT NVL(AVG(wd.data_value), 0)
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY end_time_stamp DESC ) AS rn
|
||||
FROM watch_data_stress
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.last_upload_time = (SELECT NVL(MAX(wd.end_time_stamp), SYSDATE)
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY end_time_stamp DESC ) AS rn
|
||||
FROM watch_data_stress
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.new_value = (SELECT MAX(CASE WHEN wd.rn = 1 THEN wd.data_value END)
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY end_time_stamp DESC ) AS rn
|
||||
FROM watch_data_stress
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.org_code = #{orgCode,jdbcType=VARCHAR}
|
||||
where stat.user_id = #{userId,jdbcType=VARCHAR}
|
||||
and stat.data_date = #{dataDate,jdbcType=DATE};
|
||||
</update>
|
||||
</mapper>
|
||||
+68
-48
@@ -34,20 +34,19 @@
|
||||
order by data_date
|
||||
</select>
|
||||
|
||||
<!-- 切记 此代码不能直接平移至四合一项目 ,该sql只适用mysql8.0及以上版本 ,四合一项目开发测试环境的mysql版本过低 , 但不影响正式环境-->
|
||||
<!-- 切记 此代码不能直接平移至四合一项目 ,该 sql 只适用 mysql8.0 及以上版本 ,四合一项目开发测试环境的 mysql 版本过低 , 但不影响正式环境-->
|
||||
<insert id="insertStat">
|
||||
insert into watch_stat_user_info_day_temp(id, user_id, max_value, min_value, avg_value, skin_max_value,
|
||||
skin_min_value, skin_avg_value, last_upload_time, new_value,
|
||||
skin_new_value, data_date, org_code)
|
||||
insert into watch_stat_user_info_day_temp(id, user_id, max_value, min_value, avg_value, skin_max_value, skin_min_value,
|
||||
skin_avg_value, last_upload_time, new_value, skin_new_value, data_date, org_code)
|
||||
(SELECT #{id,jdbcType=VARCHAR},
|
||||
bind_user_id,
|
||||
IFNULL(MAX(wd.data_value), 0),
|
||||
IFNULL(MIN(wd.data_value), 0),
|
||||
IFNULL(AVG(wd.data_value), 0),
|
||||
IFNULL(MAX(wd.skin_tempera), 0),
|
||||
IFNULL(MIN(wd.skin_tempera), 0),
|
||||
IFNULL(AVG(wd.skin_tempera), 0),
|
||||
IFNULL(MAX(wd.time_stamp), NOW()),
|
||||
NVL(MAX(wd.data_value), 0),
|
||||
NVL(MIN(wd.data_value), 0),
|
||||
NVL(AVG(wd.data_value), 0),
|
||||
NVL(MAX(wd.skin_tempera), 0),
|
||||
NVL(MIN(wd.skin_tempera), 0),
|
||||
NVL(AVG(wd.skin_tempera), 0),
|
||||
NVL(MAX(wd.time_stamp), SYSDATE),
|
||||
MAX(CASE WHEN wd.rn = 1 THEN wd.data_value END),
|
||||
MAX(CASE WHEN wd.rn = 1 THEN wd.skin_tempera END),
|
||||
data_date,
|
||||
@@ -60,44 +59,65 @@
|
||||
wd.data_date);
|
||||
</insert>
|
||||
|
||||
<!-- 切记 此代码不能直接平移至四合一项目 ,该sql只适用mysql8.0及以上版本 ,四合一项目开发测试环境的mysql版本过低 , 但不影响正式环境-->
|
||||
<!-- 切记 此代码不能直接平移至四合一项目 ,该 sql 只适用 mysql8.0 及以上版本 ,四合一项目开发测试环境的 mysql 版本过低 , 但不影响正式环境-->
|
||||
<update id="updateStat">
|
||||
UPDATE watch_stat_user_info_day_temp stat
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
wd.bind_user_id,
|
||||
wd.data_date,
|
||||
IFNULL( MAX( wd.data_value ), 0 ) AS max_value,
|
||||
IFNULL( MIN( wd.data_value ), 0 ) AS min_value,
|
||||
IFNULL( AVG( wd.data_value ), 0 ) AS avg_value,
|
||||
IFNULL( MAX( wd.skin_tempera ), 0 ) AS skin_max_value,
|
||||
IFNULL( MIN( wd.skin_tempera ), 0 ) AS skin_min_value,
|
||||
IFNULL( AVG( wd.skin_tempera ), 0 ) AS skin_avg_value,
|
||||
IFNULL(
|
||||
MAX( wd.time_stamp ),
|
||||
NOW()) AS last_upload_time,
|
||||
MAX( CASE WHEN wd.rn = 1 THEN wd.data_value END ) AS new_value,
|
||||
MAX( CASE WHEN wd.rn = 1 THEN wd.skin_tempera END ) AS skin_new_value
|
||||
FROM
|
||||
( SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn FROM watch_data_temperature
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY
|
||||
wd.bind_user_id,
|
||||
wd.data_date
|
||||
) DATA ON stat.user_id = DATA.bind_user_id
|
||||
AND stat.data_date = DATA.data_date
|
||||
SET stat.max_value = DATA.max_value,
|
||||
stat.min_value = DATA.min_value,
|
||||
stat.avg_value = DATA.avg_value,
|
||||
stat.skin_max_value = DATA.skin_max_value,
|
||||
stat.skin_min_value = DATA.skin_min_value,
|
||||
stat.skin_avg_value = DATA.skin_avg_value,
|
||||
stat.last_upload_time = DATA.last_upload_time,
|
||||
stat.new_value = DATA.new_value,
|
||||
stat.skin_new_value = COALESCE ( NULLIF( DATA.skin_new_value, 0 ), stat.skin_new_value ),
|
||||
stat.org_code = #{orgCode,jdbcType=VARCHAR}
|
||||
where stat.user_id = #{userId,jdbcType=VARCHAR}
|
||||
and stat.data_date = #{dataDate,jdbcType=DATE};
|
||||
SET stat.max_value = (SELECT NVL(MAX(wd.data_value), 0)
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn
|
||||
FROM watch_data_temperature
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.min_value = (SELECT NVL(MIN(wd.data_value), 0)
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn
|
||||
FROM watch_data_temperature
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.avg_value = (SELECT NVL(AVG(wd.data_value), 0)
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn
|
||||
FROM watch_data_temperature
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.skin_max_value = (SELECT NVL(MAX(wd.skin_tempera), 0)
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn
|
||||
FROM watch_data_temperature
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.skin_min_value = (SELECT NVL(MIN(wd.skin_tempera), 0)
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn
|
||||
FROM watch_data_temperature
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.skin_avg_value = (SELECT NVL(AVG(wd.skin_tempera), 0)
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn
|
||||
FROM watch_data_temperature
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.last_upload_time = (SELECT NVL(MAX(wd.time_stamp), SYSDATE)
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn
|
||||
FROM watch_data_temperature
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.new_value = (SELECT MAX(CASE WHEN wd.rn = 1 THEN wd.data_value END)
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn
|
||||
FROM watch_data_temperature
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.skin_new_value = (SELECT NVL(MAX(CASE WHEN wd.rn = 1 THEN wd.skin_tempera END), stat.skin_new_value)
|
||||
FROM (SELECT *, ROW_NUMBER() OVER ( PARTITION BY bind_user_id, data_date ORDER BY time_stamp DESC ) AS rn
|
||||
FROM watch_data_temperature
|
||||
where bind_user_id = #{userId,jdbcType=VARCHAR}
|
||||
and data_date = #{dataDate,jdbcType=DATE}) wd
|
||||
GROUP BY wd.bind_user_id, wd.data_date),
|
||||
stat.org_code = #{orgCode,jdbcType=VARCHAR}
|
||||
where stat.user_id = #{userId,jdbcType=VARCHAR}
|
||||
and stat.data_date = #{dataDate,jdbcType=DATE};
|
||||
</update>
|
||||
</mapper>
|
||||
|
||||
+6
-3
@@ -158,7 +158,7 @@ public class WatchBindHisServiceImpl extends ServiceImpl<WatchBindHisMapper, Wat
|
||||
.le(WatchBindHis::getBindDate, bindDate)
|
||||
.isNull(WatchBindHis::getBindEndDate)
|
||||
.orderByDesc(WatchBindHis::getBindDate)
|
||||
.last("LIMIT 1"));
|
||||
.last("FETCH FIRST 1 ROWS ONLY"));
|
||||
if (watchBindHis != null) {
|
||||
return watchBindHis.getBindUserId();
|
||||
}
|
||||
@@ -167,8 +167,11 @@ public class WatchBindHisServiceImpl extends ServiceImpl<WatchBindHisMapper, Wat
|
||||
|
||||
@Override
|
||||
public String getWatchNo(String bindUserId, Date bindDate) {
|
||||
WatchBindHis watchBindHis = getOne(new LambdaQueryWrapper<WatchBindHis>().eq(WatchBindHis::getBindUserId, bindUserId)
|
||||
.eq(WatchBindHis::getBindDate, bindDate).orderByDesc(WatchBindHis::getBindDate).last("LIMIT 1"));
|
||||
WatchBindHis watchBindHis = getOne(new LambdaQueryWrapper<WatchBindHis>()
|
||||
.eq(WatchBindHis::getBindUserId, bindUserId)
|
||||
.eq(WatchBindHis::getBindDate, bindDate)
|
||||
.orderByDesc(WatchBindHis::getBindDate)
|
||||
.last("FETCH FIRST 1 ROWS ONLY"));
|
||||
if (watchBindHis != null) {
|
||||
return watchBindHis.getWatchNo();
|
||||
}
|
||||
|
||||
+1
-1
@@ -812,7 +812,7 @@ public class WatchDeviceServiceImpl extends ServiceImpl<WatchDeviceMapper, Watch
|
||||
binHisQueryWrapper.isNull(WatchBindHis::getBindEndDate);
|
||||
binHisQueryWrapper.eq(WatchBindHis::getWatchNo, watchDevice.getWatchNo());
|
||||
binHisQueryWrapper.orderByDesc(WatchBindHis::getCreateDate);
|
||||
binHisQueryWrapper.last("limit 1");
|
||||
binHisQueryWrapper.last("FETCH FIRST 1 ROWS ONLY");
|
||||
WatchBindHis watchBindHis = watchBindHisService.getOne(binHisQueryWrapper);
|
||||
if (watchBindHis == null) {
|
||||
return false;
|
||||
|
||||
+3
-1
@@ -224,7 +224,9 @@ public class WatchMqttNoticeServiceImpl extends ServiceImpl<WatchMqttNoticeMappe
|
||||
|
||||
private String getUserWatchNo(String userId) {
|
||||
LambdaQueryWrapper<WatchBindHis> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(WatchBindHis::getBindUserId, userId).orderByDesc(WatchBindHis::getBindDate).last(" limit 1");
|
||||
queryWrapper.eq(WatchBindHis::getBindUserId, userId)
|
||||
.orderByDesc(WatchBindHis::getBindDate)
|
||||
.last("FETCH FIRST 1 ROWS ONLY");
|
||||
WatchBindHis watchBindHis = watchBindHisMapper.selectOne(queryWrapper);
|
||||
if (watchBindHis != null) {
|
||||
return watchBindHis.getWatchNo();
|
||||
|
||||
+27
-19
@@ -586,7 +586,7 @@ public class WatchServiceImpl implements IWatchService {
|
||||
wrapper.selectAs(WatchStatUserInfoDaySleep::getDataDate,WatchH5IndexItemNewVo::getDataDate);
|
||||
wrapper.eq(WatchStatUserInfoDaySleep::getUserId, userId);
|
||||
wrapper.orderByDesc(WatchStatUserInfoDaySleep::getDataDate);
|
||||
wrapper.last("limit 1");
|
||||
wrapper.last("FETCH FIRST 1 ROWS ONLY");
|
||||
return daySleepMapper.selectJoinOne(WatchH5IndexItemNewVo.class,wrapper);
|
||||
}
|
||||
|
||||
@@ -597,13 +597,13 @@ public class WatchServiceImpl implements IWatchService {
|
||||
wrapper.selectAs(WatchStatUserInfoDaySdc::getDataDate,WatchH5IndexItemNewVo::getDataDate);
|
||||
wrapper.eq(WatchStatUserInfoDaySdc::getUserId, userId);
|
||||
wrapper.orderByDesc(WatchStatUserInfoDaySdc::getDataDate);
|
||||
wrapper.last("limit 1");
|
||||
wrapper.last("FETCH FIRST 1 ROWS ONLY");
|
||||
return statSdcMapper.selectJoinOne(WatchH5IndexItemNewVo.class,wrapper);
|
||||
}
|
||||
|
||||
private WatchH5IndexItemNewVo latestHeartRateData(String userId) {
|
||||
MPJLambdaWrapper<WatchStatUserInfoDayHeartRate> wrapper = new MPJLambdaWrapper<>();
|
||||
// 必须是watch_stat_user_info_day_heart_rate表中new_data字段启用后才能这样查
|
||||
// 必须是 watch_stat_user_info_day_heart_rate 表中 new_data 字段启用后才能这样查
|
||||
wrapper.selectAs(WatchStatUserInfoDayHeartRate::getNewValue,WatchH5IndexItemNewVo::getDataValue);
|
||||
wrapper.selectAs(WatchStatUserInfoDayHeartRate::getMaxValue,WatchH5IndexItemNewVo::getDataMax);
|
||||
wrapper.selectAs(WatchStatUserInfoDayHeartRate::getMinValue,WatchH5IndexItemNewVo::getDataMin);
|
||||
@@ -611,13 +611,13 @@ public class WatchServiceImpl implements IWatchService {
|
||||
wrapper.selectAs(WatchStatUserInfoDayHeartRate::getDataDate,WatchH5IndexItemNewVo::getDataDate);
|
||||
wrapper.eq(WatchStatUserInfoDayHeartRate::getUserId, userId);
|
||||
wrapper.orderByDesc(WatchStatUserInfoDayHeartRate::getDataDate);
|
||||
wrapper.last("limit 1");
|
||||
wrapper.last("FETCH FIRST 1 ROWS ONLY");
|
||||
return dayHeartRateMapper.selectJoinOne(WatchH5IndexItemNewVo.class,wrapper);
|
||||
}
|
||||
|
||||
private WatchH5IndexItemNewVo latestSpo2Data(String userId) {
|
||||
MPJLambdaWrapper<WatchStatUserInfoDaySpo2> wrapper = new MPJLambdaWrapper<>();
|
||||
// 必须是watch_stat_user_info_day_spo2表中new_data字段启用后才能这样查
|
||||
// 必须是 watch_stat_user_info_day_spo2 表中 new_data 字段启用后才能这样查
|
||||
wrapper.selectAs(WatchStatUserInfoDaySpo2::getNewValue,WatchH5IndexItemNewVo::getDataValue);
|
||||
wrapper.selectAs(WatchStatUserInfoDaySpo2::getMaxValue,WatchH5IndexItemNewVo::getDataMax);
|
||||
wrapper.selectAs(WatchStatUserInfoDaySpo2::getMinValue,WatchH5IndexItemNewVo::getDataMin);
|
||||
@@ -625,13 +625,13 @@ public class WatchServiceImpl implements IWatchService {
|
||||
wrapper.selectAs(WatchStatUserInfoDaySpo2::getDataDate,WatchH5IndexItemNewVo::getDataDate);
|
||||
wrapper.eq(WatchStatUserInfoDaySpo2::getUserId, userId);
|
||||
wrapper.orderByDesc(WatchStatUserInfoDaySpo2::getDataDate);
|
||||
wrapper.last("limit 1");
|
||||
wrapper.last("FETCH FIRST 1 ROWS ONLY");
|
||||
return daySpo2Mapper.selectJoinOne(WatchH5IndexItemNewVo.class,wrapper);
|
||||
}
|
||||
|
||||
private WatchH5IndexItemNewVo latestStressData(String userId) {
|
||||
MPJLambdaWrapper<WatchStatUserInfoDayStress> wrapper = new MPJLambdaWrapper<>();
|
||||
// 必须是watch_stat_user_info_day_stress表中new_data字段启用后才能这样查
|
||||
// 必须是 watch_stat_user_info_day_stress 表中 new_data 字段启用后才能这样查
|
||||
wrapper.selectAs(WatchStatUserInfoDayStress::getNewValue,WatchH5IndexItemNewVo::getDataValue);
|
||||
wrapper.selectAs(WatchStatUserInfoDayStress::getMaxValue,WatchH5IndexItemNewVo::getDataMax);
|
||||
wrapper.selectAs(WatchStatUserInfoDayStress::getMinValue,WatchH5IndexItemNewVo::getDataMin);
|
||||
@@ -639,13 +639,13 @@ public class WatchServiceImpl implements IWatchService {
|
||||
wrapper.selectAs(WatchStatUserInfoDayStress::getDataDate,WatchH5IndexItemNewVo::getDataDate);
|
||||
wrapper.eq(WatchStatUserInfoDayStress::getUserId, userId);
|
||||
wrapper.orderByDesc(WatchStatUserInfoDayStress::getDataDate);
|
||||
wrapper.last("limit 1");
|
||||
wrapper.last("FETCH FIRST 1 ROWS ONLY");
|
||||
return dayStressMapper.selectJoinOne(WatchH5IndexItemNewVo.class,wrapper);
|
||||
}
|
||||
|
||||
private WatchH5IndexItemNewVo latestTempData(String userId) {
|
||||
MPJLambdaWrapper<WatchStatUserInfoDayTemp> wrapper = new MPJLambdaWrapper<>();
|
||||
// 必须是watch_stat_user_info_day_temp表中new_data字段启用后才能这样查
|
||||
// 必须是 watch_stat_user_info_day_temp 表中 new_data 字段启用后才能这样查
|
||||
wrapper.selectAs(WatchStatUserInfoDayTemp::getNewValue,WatchH5IndexItemNewVo::getDataValue);
|
||||
wrapper.selectAs(WatchStatUserInfoDayTemp::getMaxValue,WatchH5IndexItemNewVo::getDataMax);
|
||||
wrapper.selectAs(WatchStatUserInfoDayTemp::getMinValue,WatchH5IndexItemNewVo::getDataMin);
|
||||
@@ -653,7 +653,7 @@ public class WatchServiceImpl implements IWatchService {
|
||||
wrapper.selectAs(WatchStatUserInfoDayTemp::getDataDate,WatchH5IndexItemNewVo::getDataDate);
|
||||
wrapper.eq(WatchStatUserInfoDayTemp::getUserId, userId);
|
||||
wrapper.orderByDesc(WatchStatUserInfoDayTemp::getDataDate);
|
||||
wrapper.last("limit 1");
|
||||
wrapper.last("FETCH FIRST 1 ROWS ONLY");
|
||||
return dayTempMapper.selectJoinOne(WatchH5IndexItemNewVo.class,wrapper);
|
||||
}
|
||||
|
||||
@@ -662,7 +662,7 @@ public class WatchServiceImpl implements IWatchService {
|
||||
LambdaQueryWrapper<WatchBindHis> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(WatchBindHis::getBindUserId, userId);
|
||||
wrapper.orderByDesc(WatchBindHis::getBindDate);
|
||||
wrapper.last("limit 1");
|
||||
wrapper.last("FETCH FIRST 1 ROWS ONLY");
|
||||
return bindHisMapper.selectOne(wrapper);
|
||||
}
|
||||
|
||||
@@ -903,8 +903,10 @@ public class WatchServiceImpl implements IWatchService {
|
||||
WatchH5WorkoutDayVo watchH5WorkoutDayVo = new WatchH5WorkoutDayVo();
|
||||
|
||||
WatchBindHis watchBindHis = bindHisMapper.selectOne(new LambdaQueryWrapper<WatchBindHis>()
|
||||
.eq(WatchBindHis::getBindUserId, userId).le(WatchBindHis::getBindDate, queryDate)
|
||||
.orderByDesc(WatchBindHis::getBindDate).last("limit 1"));
|
||||
.eq(WatchBindHis::getBindUserId, userId)
|
||||
.le(WatchBindHis::getBindDate, queryDate)
|
||||
.orderByDesc(WatchBindHis::getBindDate)
|
||||
.last("FETCH FIRST 1 ROWS ONLY"));
|
||||
|
||||
String watchNo = null;
|
||||
if (watchBindHis != null) {
|
||||
@@ -1021,8 +1023,10 @@ public class WatchServiceImpl implements IWatchService {
|
||||
}
|
||||
WatchH5StepsDayVo watchH5StepsDayVo = this.getStepsData(userId, queryDate);
|
||||
WatchBindHis watchBindHis = bindHisMapper.selectOne(new LambdaQueryWrapper<WatchBindHis>()
|
||||
.eq(WatchBindHis::getBindUserId, userId).le(WatchBindHis::getBindDate, queryDate)
|
||||
.orderByDesc(WatchBindHis::getBindDate).last("limit 1"));
|
||||
.eq(WatchBindHis::getBindUserId, userId)
|
||||
.le(WatchBindHis::getBindDate, queryDate)
|
||||
.orderByDesc(WatchBindHis::getBindDate)
|
||||
.last("FETCH FIRST 1 ROWS ONLY"));
|
||||
String watchNo = null;
|
||||
if (watchBindHis != null) {
|
||||
watchNo = watchBindHis.getWatchNo();
|
||||
@@ -1082,8 +1086,10 @@ public class WatchServiceImpl implements IWatchService {
|
||||
|
||||
public WatchH5WorkoutResultVO getWorkoutWeekDayList(String userId, Date queryDate) {
|
||||
WatchBindHis watchBindHis = bindHisMapper.selectOne(new LambdaQueryWrapper<WatchBindHis>()
|
||||
.eq(WatchBindHis::getBindUserId, userId).le(WatchBindHis::getBindDate, queryDate)
|
||||
.orderByDesc(WatchBindHis::getBindDate).last("limit 1"));
|
||||
.eq(WatchBindHis::getBindUserId, userId)
|
||||
.le(WatchBindHis::getBindDate, queryDate)
|
||||
.orderByDesc(WatchBindHis::getBindDate)
|
||||
.last("FETCH FIRST 1 ROWS ONLY"));
|
||||
String watchNo = null;
|
||||
if (watchBindHis != null) {
|
||||
watchNo = watchBindHis.getWatchNo();
|
||||
@@ -1103,8 +1109,10 @@ public class WatchServiceImpl implements IWatchService {
|
||||
@Override
|
||||
public WatchH5StepsResultVO getStepsWeekDayList(String userId, Date queryDate) {
|
||||
WatchBindHis watchBindHis = bindHisMapper.selectOne(new LambdaQueryWrapper<WatchBindHis>()
|
||||
.eq(WatchBindHis::getBindUserId, userId).le(WatchBindHis::getBindDate, queryDate)
|
||||
.orderByDesc(WatchBindHis::getBindDate).last("limit 1"));
|
||||
.eq(WatchBindHis::getBindUserId, userId)
|
||||
.le(WatchBindHis::getBindDate, queryDate)
|
||||
.orderByDesc(WatchBindHis::getBindDate)
|
||||
.last("FETCH FIRST 1 ROWS ONLY"));
|
||||
String watchNo = null;
|
||||
if (watchBindHis != null) {
|
||||
watchNo = watchBindHis.getWatchNo();
|
||||
|
||||
+6
-2
@@ -23,7 +23,9 @@ public class WatchSynMaxIdServiceImpl extends ServiceImpl<WatchSynMaxIdMapper, W
|
||||
@Override
|
||||
public String getMaxId(String wdType) {
|
||||
WatchSynMaxId watchSynMaxId = getOne(new QueryWrapper<WatchSynMaxId>()
|
||||
.eq("wd_type", wdType).last("limit 1"));
|
||||
.eq("wd_type", wdType)
|
||||
.orderByDesc("max_id")
|
||||
.last("FETCH FIRST 1 ROWS ONLY"));
|
||||
if (watchSynMaxId != null) {
|
||||
return watchSynMaxId.getMaxId() == null ? "0" : watchSynMaxId.getMaxId();
|
||||
}
|
||||
@@ -34,7 +36,9 @@ public class WatchSynMaxIdServiceImpl extends ServiceImpl<WatchSynMaxIdMapper, W
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void setMaxId(String wdType, String maxId) {
|
||||
WatchSynMaxId watchSynMaxId = getOne(new QueryWrapper<WatchSynMaxId>()
|
||||
.eq("wd_type", wdType).last("limit 1"));
|
||||
.eq("wd_type", wdType)
|
||||
.orderByDesc("max_id")
|
||||
.last("FETCH FIRST 1 ROWS ONLY"));
|
||||
if (watchSynMaxId != null) {
|
||||
if (StrUtil.isNotEmpty(maxId)) {
|
||||
watchSynMaxId.setMaxId(maxId);
|
||||
|
||||
Reference in New Issue
Block a user