Kaynağa Gözat

feat(fatloss): add service layer

Sisyphus 3 gün önce
ebeveyn
işleme
673855b780

+ 53 - 0
cfc-backend/src/main/java/com/etotem/cfc/service/FatDietService.java

@@ -0,0 +1,53 @@
+package com.etotem.cfc.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.etotem.cfc.entity.FatDietRecord;
+import com.etotem.cfc.mapper.FatDietRecordMapper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class FatDietService {
+
+    @Resource
+    private FatDietRecordMapper fatDietRecordMapper;
+
+    public List<FatDietRecord> list(Long memberId, Date startDate, Date endDate) {
+        LambdaQueryWrapper<FatDietRecord> wrapper = new LambdaQueryWrapper<FatDietRecord>()
+                .eq(FatDietRecord::getMemberId, memberId)
+                .orderByDesc(FatDietRecord::getEatDate);
+        if (startDate != null) {
+            wrapper.ge(FatDietRecord::getEatDate, startDate);
+        }
+        if (endDate != null) {
+            wrapper.le(FatDietRecord::getEatDate, endDate);
+        }
+        return fatDietRecordMapper.selectList(wrapper);
+    }
+
+    public FatDietRecord create(FatDietRecord record) {
+        record.setCreatedAt(new Date());
+        fatDietRecordMapper.insert(record);
+        return record;
+    }
+
+    public boolean delete(Long id) {
+        return fatDietRecordMapper.deleteById(id) > 0;
+    }
+
+    /** 统计指定日期总热量 */
+    public int sumCalories(Long memberId, Date date) {
+        List<FatDietRecord> records = fatDietRecordMapper.selectList(
+                new LambdaQueryWrapper<FatDietRecord>()
+                        .eq(FatDietRecord::getMemberId, memberId)
+                        .eq(FatDietRecord::getEatDate, date));
+        int total = 0;
+        for (FatDietRecord r : records) {
+            if (r.getCalories() != null) total += r.getCalories();
+        }
+        return total;
+    }
+}

+ 40 - 0
cfc-backend/src/main/java/com/etotem/cfc/service/FatExerciseService.java

@@ -0,0 +1,40 @@
+package com.etotem.cfc.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.etotem.cfc.entity.FatExerciseRecord;
+import com.etotem.cfc.mapper.FatExerciseRecordMapper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class FatExerciseService {
+
+    @Resource
+    private FatExerciseRecordMapper fatExerciseRecordMapper;
+
+    public List<FatExerciseRecord> list(Long memberId, Date startDate, Date endDate) {
+        LambdaQueryWrapper<FatExerciseRecord> wrapper = new LambdaQueryWrapper<FatExerciseRecord>()
+                .eq(FatExerciseRecord::getMemberId, memberId)
+                .orderByDesc(FatExerciseRecord::getExerciseDate);
+        if (startDate != null) {
+            wrapper.ge(FatExerciseRecord::getExerciseDate, startDate);
+        }
+        if (endDate != null) {
+            wrapper.le(FatExerciseRecord::getExerciseDate, endDate);
+        }
+        return fatExerciseRecordMapper.selectList(wrapper);
+    }
+
+    public FatExerciseRecord create(FatExerciseRecord record) {
+        record.setCreatedAt(new Date());
+        fatExerciseRecordMapper.insert(record);
+        return record;
+    }
+
+    public boolean delete(Long id) {
+        return fatExerciseRecordMapper.deleteById(id) > 0;
+    }
+}

+ 61 - 0
cfc-backend/src/main/java/com/etotem/cfc/service/FatGoalService.java

@@ -0,0 +1,61 @@
+package com.etotem.cfc.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.etotem.cfc.entity.FatGoal;
+import com.etotem.cfc.mapper.FatGoalMapper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+@Service
+public class FatGoalService {
+
+    @Resource
+    private FatGoalMapper fatGoalMapper;
+
+    public FatGoal getActive(Long memberId) {
+        return fatGoalMapper.selectOne(
+                new LambdaQueryWrapper<FatGoal>()
+                        .eq(FatGoal::getMemberId, memberId)
+                        .eq(FatGoal::getStatus, "active")
+                        .orderByDesc(FatGoal::getCreatedAt)
+                        .last("LIMIT 1"));
+    }
+
+    public FatGoal create(FatGoal goal) {
+        goal.setStatus("active");
+        goal.setCreatedAt(new Date());
+        goal.setUpdatedAt(new Date());
+        fatGoalMapper.insert(goal);
+        return goal;
+    }
+
+    public FatGoal update(FatGoal goal) {
+        goal.setUpdatedAt(new Date());
+        fatGoalMapper.updateById(goal);
+        return goal;
+    }
+
+    /** 完成目标 */
+    public FatGoal complete(Long id) {
+        FatGoal goal = fatGoalMapper.selectById(id);
+        if (goal != null) {
+            goal.setStatus("completed");
+            goal.setUpdatedAt(new Date());
+            fatGoalMapper.updateById(goal);
+        }
+        return goal;
+    }
+
+    /** 放弃目标 */
+    public FatGoal abandon(Long id) {
+        FatGoal goal = fatGoalMapper.selectById(id);
+        if (goal != null) {
+            goal.setStatus("abandoned");
+            goal.setUpdatedAt(new Date());
+            fatGoalMapper.updateById(goal);
+        }
+        return goal;
+    }
+}

+ 45 - 0
cfc-backend/src/main/java/com/etotem/cfc/service/FatWeightService.java

@@ -0,0 +1,45 @@
+package com.etotem.cfc.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.etotem.cfc.entity.FatWeightRecord;
+import com.etotem.cfc.mapper.FatWeightRecordMapper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class FatWeightService {
+
+    @Resource
+    private FatWeightRecordMapper fatWeightRecordMapper;
+
+    public List<FatWeightRecord> list(Long memberId, Date startDate, Date endDate) {
+        LambdaQueryWrapper<FatWeightRecord> wrapper = new LambdaQueryWrapper<FatWeightRecord>()
+                .eq(FatWeightRecord::getMemberId, memberId)
+                .orderByDesc(FatWeightRecord::getMeasureDate);
+        if (startDate != null) {
+            wrapper.ge(FatWeightRecord::getMeasureDate, startDate);
+        }
+        if (endDate != null) {
+            wrapper.le(FatWeightRecord::getMeasureDate, endDate);
+        }
+        return fatWeightRecordMapper.selectList(wrapper);
+    }
+
+    public FatWeightRecord create(FatWeightRecord record) {
+        record.setCreatedAt(new Date());
+        fatWeightRecordMapper.insert(record);
+        return record;
+    }
+
+    public FatWeightRecord update(FatWeightRecord record) {
+        fatWeightRecordMapper.updateById(record);
+        return record;
+    }
+
+    public boolean delete(Long id) {
+        return fatWeightRecordMapper.deleteById(id) > 0;
+    }
+}