|
@@ -3,7 +3,11 @@ package com.etotem.cfc.controller;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.etotem.cfc.common.Result;
|
|
import com.etotem.cfc.common.Result;
|
|
|
import com.etotem.cfc.entity.HealthSleepRecord;
|
|
import com.etotem.cfc.entity.HealthSleepRecord;
|
|
|
|
|
+import com.etotem.cfc.entity.Task;
|
|
|
|
|
+import com.etotem.cfc.entity.FamilyMember;
|
|
|
import com.etotem.cfc.mapper.HealthSleepRecordMapper;
|
|
import com.etotem.cfc.mapper.HealthSleepRecordMapper;
|
|
|
|
|
+import com.etotem.cfc.mapper.TaskMapper;
|
|
|
|
|
+import com.etotem.cfc.mapper.FamilyMemberMapper;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
@@ -14,7 +18,10 @@ import java.util.List;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
import com.etotem.cfc.util.SortUtil;
|
|
import com.etotem.cfc.util.SortUtil;
|
|
|
import com.etotem.cfc.util.ParamUtils;
|
|
import com.etotem.cfc.util.ParamUtils;
|
|
|
|
|
+import com.etotem.cfc.service.TaskService;
|
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
|
|
|
|
+@Slf4j
|
|
|
@Tag(name = "睡眠打卡")
|
|
@Tag(name = "睡眠打卡")
|
|
|
@RestController
|
|
@RestController
|
|
|
@RequestMapping("/api/health/sleep")
|
|
@RequestMapping("/api/health/sleep")
|
|
@@ -23,6 +30,15 @@ public class HealthSleepController {
|
|
|
@Resource
|
|
@Resource
|
|
|
private HealthSleepRecordMapper healthSleepRecordMapper;
|
|
private HealthSleepRecordMapper healthSleepRecordMapper;
|
|
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private TaskService taskService;
|
|
|
|
|
+
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private TaskMapper taskMapper;
|
|
|
|
|
+
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private FamilyMemberMapper familyMemberMapper;
|
|
|
|
|
+
|
|
|
@Resource
|
|
@Resource
|
|
|
private com.etotem.cfc.service.ProfileComputeService profileComputeService;
|
|
private com.etotem.cfc.service.ProfileComputeService profileComputeService;
|
|
|
|
|
|
|
@@ -50,7 +66,31 @@ public class HealthSleepController {
|
|
|
if (record.getWakeTime() == null) return Result.error("请选择醒来时间");
|
|
if (record.getWakeTime() == null) return Result.error("请选择醒来时间");
|
|
|
record.setCreatedAt(new Date());
|
|
record.setCreatedAt(new Date());
|
|
|
healthSleepRecordMapper.insert(record);
|
|
healthSleepRecordMapper.insert(record);
|
|
|
- // 触发画像重算
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // ===== 任务回写挂钩 =====
|
|
|
|
|
+ try {
|
|
|
|
|
+ if (record.getTaskId() != null) {
|
|
|
|
|
+ Task linkedTask = taskMapper.selectById(record.getTaskId());
|
|
|
|
|
+ if (linkedTask != null) {
|
|
|
|
|
+ taskService.completeTask(
|
|
|
|
|
+ record.getTaskId(),
|
|
|
|
|
+ record.getMemberId(),
|
|
|
|
|
+ "",
|
|
|
|
|
+ record.getRemark() != null ? record.getRemark() : "睡眠打卡",
|
|
|
|
|
+ "text");
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 每日进度型任务:累计进度
|
|
|
|
|
+ com.etotem.cfc.entity.FamilyMember fm = familyMemberMapper.selectById(record.getMemberId());
|
|
|
|
|
+ if (fm != null && fm.getUserId() != null) {
|
|
|
|
|
+ taskService.updateProgress(fm.getUserId(), "SLEEP", 1);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.warn("睡眠打卡任务回写失败: {}", e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 触发画像重算
|
|
|
try {
|
|
try {
|
|
|
Long triggerMemberId = record.getMemberId();
|
|
Long triggerMemberId = record.getMemberId();
|
|
|
if (triggerMemberId != null) {
|
|
if (triggerMemberId != null) {
|