From 0c51a577db337520452022d9d6a22b720ef858d4 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 31 十二月 2024 14:13:01 +0800
Subject: [PATCH] 全部代码、数据库提交

---
 xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserTreeController.java |  542 ++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 341 insertions(+), 201 deletions(-)

diff --git a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserTreeController.java b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserTreeController.java
index 19788bc..118f705 100644
--- a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserTreeController.java
+++ b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserTreeController.java
@@ -1,6 +1,7 @@
 package com.xinquan.user.controller.client;
 
 
+import cn.afterturn.easypoi.cache.manager.IFileLoader;
 import cn.hutool.core.util.RandomUtil;
 import com.alibaba.fastjson2.util.UUIDUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -25,13 +26,16 @@
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
+import java.time.temporal.ChronoUnit;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -63,112 +67,252 @@
     @Resource
     private SysUserClient sysUserClient;
 
+    @PostMapping("/testDelete")
+    @ApiOperation(value = "手动扣除成长值",tags = "手动扣除成长值")
+    public R testDelete() {
+        try {
+            LocalDateTime now = LocalDateTime.now();
+            List<AppUserTree> list1 = appUserTreeService.lambdaQuery().eq(AppUserTree::getSowAgain, 2)
+                    .list();
+            for (AppUserTree appUserTree : list1) {
+                LocalDateTime time = appUserTree.getTime();
+                // 计算两个now和time的天数差
+                long between = ChronoUnit.DAYS.between(time, now);
+                if (between>7){
+                    double v = appUserTree.getTotal() * 0.02;
+                    long roundedValue = Math.round(v);
+                    if ((appUserTree.getTotal() - (int) roundedValue)>0){
+                        appUserTree.setTotal(appUserTree.getTotal() - (int) roundedValue);
+                    }else{
+                        appUserTree.setTotal(0);
+                    }
+                    appUserTree.setStatus(1);
+                }else if (between>=1){
+                    // 计算两个now和time的小时差
+                    long betweenHours = ChronoUnit.HOURS.between(time, now);
+                    if (betweenHours>=24){
+                        double v = appUserTree.getTotal() * 0.01;
+                        long roundedValue = Math.round(v);
+                        if ((appUserTree.getTotal() - (int) roundedValue)>0){
+                            if (appUserTree.getId().equals(1854054871051481089L)){
+                                System.err.println(appUserTree.getTotal() - (int) roundedValue);
+                            }
+                            appUserTree.setTotal(appUserTree.getTotal() - (int) roundedValue);
+                        }else{
+                            appUserTree.setTotal(0);
+                        }
+                    }
+                }
+                appUserTreeService.updateById(appUserTree);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
     @PostMapping("/getUserTree")
     @ApiOperation(value = "获取用户树苗",tags = "树苗打卡站")
     public R<AppUserTree> getUserTree() {
+
         LoginUser loginUser = tokenService.getLoginUser();
-        if (loginUser==null){
-            return R.tokenError("登录失效");
-        }
-        Long userId = loginUser.getUserid();
-        AppUser byId = appUserService.getById(userId);
-        byId.setIsFirst(2);
-        appUserService.updateById(byId);
-        // 查询用户今日观看疗愈多少秒
-        LocalDateTime now = LocalDateTime.now();
-        LocalDateTime startOfDay = now.toLocalDate().atStartOfDay();
-        LocalDateTime endOfDay = now.toLocalDate().atTime(LocalTime.MAX);
-        List<AppUserViewingHistory> list = appUserViewingHistoryService
-                .lambdaQuery().eq(AppUserViewingHistory::getAppUserId, userId)
-                .eq(AppUserViewingHistory::getViewingType, 1)
-                .eq(BaseModel::getDelFlag,0)
-                .between(AppUserViewingHistory::getCreateTime, startOfDay,endOfDay).list();
-        int temp = 0;
-        for (AppUserViewingHistory appUserViewingHistory : list) {
-            temp += appUserViewingHistory.getTimeLook();
-        }
-        AppUserTree one = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, userId)
-                .eq(AppUserTree::getSowAgain,2).one();
-        if (one == null){
-            AppUserTree appUserTree = new AppUserTree();
-            appUserTree.setAppUserId(userId);
-            appUserTree.setTreeLevelType(1);
-            appUserTree.setGrowthValue(0);
-            appUserTree.setSowAgain(2);
-            appUserTree.setCreateTime(LocalDateTime.now());
-            // 如果用户的签到时间是今天 那么修改为已签到
-            if (byId.getSignTime()!=null && byId.getSignTime().toLocalDate().equals(LocalDateTime.now().toLocalDate())){
-                appUserTree.setIsSign(1);
-            }else{
-                appUserTree.setIsSign(2);
+        if (loginUser!=null) {
+            Long userId = loginUser.getUserid();
+            AppUser byId = appUserService.getById(userId);
+            byId.setIsFirst(2);
+            appUserService.updateById(byId);
+            // 查询用户今日观看疗愈多少秒
+            LocalDateTime now = LocalDateTime.now();
+            LocalDateTime startOfDay = now.toLocalDate().atStartOfDay();
+            LocalDateTime endOfDay = now.toLocalDate().atTime(LocalTime.MAX);
+            List<AppUserViewingHistory> list = appUserViewingHistoryService
+                    .lambdaQuery().eq(AppUserViewingHistory::getAppUserId, userId)
+                    .eq(AppUserViewingHistory::getViewingType, 1)
+                    .eq(BaseModel::getDelFlag, 0)
+                    .between(AppUserViewingHistory::getCreateTime, startOfDay, endOfDay).list();
+            int temp = 0;
+            for (AppUserViewingHistory appUserViewingHistory : list) {
+                if (appUserViewingHistory.getTimeLook()!=null){
+                    temp += appUserViewingHistory.getTimeLook();
+
+                }
             }
-            if (temp>=60){
-                appUserTree.setTaskOne(1);
-                appUserTree.setTaskTwo(1);
+            AppUserTree one = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, userId)
+                    .eq(AppUserTree::getSowAgain, 2).one();
+            if (one == null) {
+                AppUserTree appUserTree = new AppUserTree();
+                appUserTree.setTime(LocalDateTime.now());
+                appUserTree.setAppUserId(userId);
+                appUserTree.setTreeLevelType(1);
+                appUserTree.setGrowthValue(0);
+                appUserTree.setSowAgain(2);
+                appUserTree.setCreateTime(LocalDateTime.now());
+                // 如果用户的签到时间是今天 那么修改为已签到
+                if (byId.getSignTime() != null && byId.getSignTime().toLocalDate().equals(LocalDateTime.now().toLocalDate())) {
+                    appUserTree.setIsSign(1);
+                } else {
+                    appUserTree.setIsSign(2);
+                }
+                if (temp >= 3600) {
+                    if (appUserTree.getTaskOne() == 2) {
+                        AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord();
+                        appUserEnergyRecord.setAppUserId(userId);
+                        appUserEnergyRecord.setChangeType(1);
+                        appUserEnergyRecord.setEnergyValue(10);
+                        appUserEnergyRecord.setReason("完成【每日疗愈30分钟】任务");
+                        appUserEnergyRecordService.save(appUserEnergyRecord);
+                        byId.setTotalEnergyValue(byId.getTotalEnergyValue() + 10);
+                        byId.setEnergyValue(byId.getEnergyValue() + 10);
+
+                    }
+                    if (appUserTree.getTaskTwo() == 2) {
+                        AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord();
+                        appUserEnergyRecord.setAppUserId(userId);
+                        appUserEnergyRecord.setChangeType(1);
+                        appUserEnergyRecord.setEnergyValue(20);
+                        appUserEnergyRecord.setReason("完成【每日疗愈60分钟】任务");
+                        appUserEnergyRecordService.save(appUserEnergyRecord);
+                        byId.setTotalEnergyValue(byId.getTotalEnergyValue() + 20);
+                        byId.setEnergyValue(byId.getEnergyValue() + 20);
+
+                    }
+                    appUserTree.setTaskOne(1);
+                    appUserTree.setTaskTwo(1);
+                } else if (temp >= 1800) {
+                    if (appUserTree.getTaskOne() == 2) {
+                        AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord();
+                        appUserEnergyRecord.setAppUserId(userId);
+                        appUserEnergyRecord.setChangeType(1);
+                        appUserEnergyRecord.setEnergyValue(10);
+                        appUserEnergyRecord.setReason("完成【每日疗愈30分钟】任务");
+                        appUserEnergyRecordService.save(appUserEnergyRecord);
+                        byId.setTotalEnergyValue(byId.getTotalEnergyValue() + 10);
+                        byId.setEnergyValue(byId.getEnergyValue() + 10);
+                    }
+                    appUserTree.setTaskOne(2);
+                    appUserTree.setTaskTwo(1);
+                } else {
+                    appUserTree.setTaskOne(2);
+                    appUserTree.setTaskTwo(2);
+                }
+                appUserTree.setEnergyValue(byId.getEnergyValue());
+                appUserTree.setNextLevel(1000);
+                appUserTreeService.save(appUserTree);
+                appUserTree.setTotalEnergyValue(byId.getTotalEnergyValue());
+                return R.ok(appUserTree);
+            } else {
+                if (temp >= 3600) {
+                    if (one.getTaskOne() == 2) {
+                        AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord();
+                        appUserEnergyRecord.setAppUserId(userId);
+                        appUserEnergyRecord.setChangeType(1);
+                        appUserEnergyRecord.setEnergyValue(10);
+                        appUserEnergyRecord.setReason("完成【每日疗愈30分钟】任务");
+                        appUserEnergyRecordService.save(appUserEnergyRecord);
+                        byId.setTotalEnergyValue(byId.getTotalEnergyValue() + 10);
+                        one.setTaskOne(1);
+                        byId.setEnergyValue(byId.getEnergyValue() + 10);
+
+                    }
+                    if (one.getTaskTwo() == 2) {
+                        AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord();
+                        appUserEnergyRecord.setAppUserId(userId);
+                        appUserEnergyRecord.setChangeType(1);
+                        appUserEnergyRecord.setEnergyValue(20);
+                        appUserEnergyRecord.setReason("完成【每日疗愈60分钟】任务");
+                        appUserEnergyRecordService.save(appUserEnergyRecord);
+                        byId.setTotalEnergyValue(byId.getTotalEnergyValue() + 20);
+                        one.setTaskTwo(1);
+                        byId.setEnergyValue(byId.getEnergyValue() + 20);
+
+                    }
+
+                } else if (temp >= 1800) {
+                    if (one.getTaskOne() == 2) {
+                        AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord();
+                        appUserEnergyRecord.setAppUserId(userId);
+                        appUserEnergyRecord.setChangeType(1);
+                        appUserEnergyRecord.setEnergyValue(10);
+                        appUserEnergyRecord.setReason("完成【每日疗愈30分钟】任务");
+                        appUserEnergyRecordService.save(appUserEnergyRecord);
+                        byId.setTotalEnergyValue(byId.getTotalEnergyValue() + 10);
+                        one.setTaskOne(1);
+                        byId.setEnergyValue(byId.getEnergyValue() + 10);
+                    }
+                } else {
+                    one.setTaskOne(2);
+                    one.setTaskTwo(2);
+                }
+                // 如果用户的签到时间是今天 那么修改为已签到
+                if (byId.getSignTime() != null && byId.getSignTime().toLocalDate().equals(LocalDateTime.now().toLocalDate())) {
+                    one.setIsSign(1);
+                } else {
+                    one.setIsSign(2);
+                }
+                List<TreeLevelSetting> data = sysUserClient.getTreeGroup().getData();
+
+                Integer total1 = one.getTotal();
+                // 根据总能量值 确定他在哪一等级
+                int x = 1;
+                int tem = 0;
+                for (TreeLevelSetting datum : data) {
+                    if (total1 == 0) {
+                        Integer growthValue = data.get(1).getGrowthValue();
+                        tem = growthValue;
+                        break;
+                    } else if (total1 >= datum.getGrowthValue()) {
+                        x = datum.getTreeLevelType();
+                    }
+                }
+                if (x == 10) {
+                    // 如果等级为10那么成长阈值是10级减去9级
+                    int ten = 0;
+                    int nine = 0;
+                    for (TreeLevelSetting datum : data) {
+                        if (datum.getTreeLevelType() == 10) {
+                            ten = datum.getGrowthValue();
+                        }
+                        if (datum.getTreeLevelType() == 9) {
+                            nine = datum.getGrowthValue();
+                        }
+                    }
+                    tem = ten - nine;
+                    total1 = tem;
+                } else {
+                    // 根据当前所在等级查询成长值
+                    int a = data.get(x).getGrowthValue() - data.get(x - 1).getGrowthValue();
+                    tem = a;
+                    total1 = Math.abs(total1 - data.get(x - 1).getGrowthValue());
+                }
+                one.setNextLevel(tem);
+                one.setTreeLevelType(x);
+                // 将当前成长值更新
+                one.setGrowthValue(total1);
+                one.setEnergyValue(byId.getEnergyValue());
+                appUserTreeService.updateById(one);
+                one.setTotalEnergyValue(byId.getTotalEnergyValue());
+                appUserService.updateById(byId);
+                return R.ok(one);
             }
-            else if (temp>=30){
-                appUserTree.setTaskOne(1);
-                appUserTree.setTaskTwo(2);
-            }else{
-                appUserTree.setTaskOne(2);
-                appUserTree.setTaskTwo(2);
-            }
-            appUserTree.setEnergyValue(byId.getEnergyValue());
-            appUserTree.setNextLevel(1000);
-            appUserTreeService.save(appUserTree);
-            return R.ok(appUserTree);
         }else{
-            if (temp>=60){
-                one.setTaskOne(1);
-                one.setTaskTwo(1);
+            List<TreeLevelSetting> data = sysUserClient.getTreeGroup().getData();
+
+            AppUserTree appUserTree = new AppUserTree();
+            appUserTree.setTreeLevelType(1);
+            appUserTree.setTotal(0);
+            appUserTree.setGrowthValue(0);
+            for (TreeLevelSetting datum : data) {
+                if (datum.getTreeLevelType()==2){
+                    appUserTree.setNextLevel(datum.getGrowthValue());
+                }
             }
-            else if (temp>=30){
-                one.setTaskOne(1);
-                one.setTaskTwo(2);
-            }else{
-                one.setTaskOne(2);
-                one.setTaskTwo(2);
-            }
-            // 如果用户的签到时间是今天 那么修改为已签到
-            if (byId.getSignTime()!=null&&byId.getSignTime().toLocalDate().equals(LocalDateTime.now().toLocalDate())){
-                one.setIsSign(1);
-            }else{
-                one.setIsSign(2);
-            }
-            switch (one.getTreeLevelType()){
-                case 1:
-                    one.setNextLevel(1000);
-                    break;
-                case 2:
-                    one.setNextLevel(1000);
-                    break;
-                case 3:
-                    one.setNextLevel(1000);
-                    break;
-                case 4:
-                    one.setNextLevel(1000);
-                    break;
-                case 5:
-                    one.setNextLevel(2000);
-                    break;
-                case 6:
-                    one.setNextLevel(2000);
-                    break;
-                case 7:
-                    one.setNextLevel(2000);
-                    break;
-                case 8:
-                    one.setNextLevel(2000);
-                    break;
-                case 9:
-                    one.setNextLevel(2400);
-                    break;
-                case 10:
-                    one.setNextLevel(2400);
-                    break;
-            }
-            one.setEnergyValue(byId.getEnergyValue());
-            return R.ok(one);
+            appUserTree.setSowAgain(2);
+            appUserTree.setStatus(2);
+            appUserTree.setTaskOne(2);
+            appUserTree.setEnergyValue(0);
+            appUserTree.setTaskTwo(2);
+            appUserTree.setIsSign(2);
+            appUserTree.setTotalEnergyValue(0);
+            return R.ok(appUserTree);
         }
     }
     @Autowired
@@ -196,10 +340,13 @@
         return R.ok();
     }
 
+    @Resource
+    private NoticeRecordService noticeRecordService;
     @PostMapping("/watering")
     @ApiOperation(value = "浇水 返回值true证明升级了 false没升级",tags = "树苗打卡站")
     public R<WateringVO> watering() {
-        WateringVO wateringVO = new WateringVO();
+
+
 
         LoginUser loginUser = tokenService.getLoginUser();
         if (loginUser==null){
@@ -209,114 +356,82 @@
         AppUser byId = appUserService.getById(userId);
         if (byId.getEnergyValue() == 0){
             return R.energyValueError("能量值不足");
-
         }
+        WateringVO wateringVO = new WateringVO();
+
         AppUserTree one = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, userId)
                 .eq(AppUserTree::getSowAgain,2).one();
-        Integer currentEnergyValue = byId.getEnergyValue();
+        if (one.getTreeLevelType() == 10){
+            return R.fail("成长值已满,请重新播种");
+        }
+        one.setStatus(2);
+        one.setTotal(one.getTotal()+byId.getEnergyValue());
+        one.setTime(LocalDateTime.now());
+        appUserTreeService.updateById(one);
         byId.setEnergyValue(0);
-        byId.setTotalEnergyValue(byId.getTotalEnergyValue()+currentEnergyValue);
         appUserService.updateById(byId);
         List<TreeLevelSetting> data = sysUserClient.getTreeGroup().getData();
-        // 判断能否升级
-        int temp = 0;
+        int y = one.getTreeLevelType();
+        Integer total1 = one.getTotal();
+        // 根据总能量值 确定他在哪一等级
+        int x = 1;
+        int tem = 0;
         for (TreeLevelSetting datum : data) {
-            switch (datum.getTreeLevelType()){
-                case 1:
-                    temp=datum.getGrowthValue();
-                    break;
-                case 2:
-                    temp=datum.getGrowthValue();
-                    break;
-                case 3:
-                    temp=datum.getGrowthValue();
-                    break;
-                case 4:
-                    temp=datum.getGrowthValue();
-                    break;
-                case 5:
-                    temp=datum.getGrowthValue();
-                    break;
-                case 6:
-                    temp=datum.getGrowthValue();
-                    break;
-                case 7:
-                    temp=datum.getGrowthValue();
-                    break;
-                case 8:
-                    temp=datum.getGrowthValue();
-                    break;
-                case 9:
-                    temp=datum.getGrowthValue();
-                    break;
-                case 10:
-                    temp=datum.getGrowthValue();
-                    break;
+            if (total1 == 0){
+                Integer growthValue = data.get(1).getGrowthValue();
+                tem = growthValue;
+                break;
+            }else if (total1>=datum.getGrowthValue()){
+                x = datum.getTreeLevelType();
             }
         }
-
-        wateringVO.setNextLevel(temp);
-        // 升级阈值
-        if (one.getGrowthValue()+currentEnergyValue>=temp){
-            // 升级咯 如果当前等级已经为10级
-            if (one.getTreeLevelType()==10){
-                one.setGrowthValue(one.getGrowthValue()+currentEnergyValue);
-                wateringVO.setIsNext(false);
-                int a= 0;
-                for (TreeLevelSetting datum : data) {
-                    if (datum.getTreeLevelType()==10){
-                        a = datum.getGrowthValue();
-                    }
+        if (x == 10){
+            // 如果等级为10那么成长阈值是10级减去9级
+            int ten=0;
+            int nine = 0;
+            for (TreeLevelSetting datum : data) {
+                if (datum.getTreeLevelType()==10){
+                    ten = datum.getGrowthValue();
                 }
-                wateringVO.setNextLevel(a);
-            }else{
-
-                // 将当前成长值更新
-                one.setGrowthValue(one.getGrowthValue()+currentEnergyValue-temp);
-                // 升级
-                one.setTreeLevelType(one.getTreeLevelType()+1);
-                switch (one.getTreeLevelType()+1){
-                    case 2:
-                        temp=1000;
-                        break;
-                    case 3:
-                        temp=1000;
-                        break;
-                    case 4:
-                        temp=1000;
-                        break;
-                    case 5:
-                        temp=2000;
-                        break;
-                    case 6:
-                        temp=2000;
-                        break;
-                    case 7:
-                        temp=2000;
-                        break;
-                    case 8:
-                        temp=2000;
-                        break;
-                    case 9:
-                        temp=2400;
-                        break;
-                    case 10:
-                        temp=2400;
-                        break;
+                if (datum.getTreeLevelType()==9){
+                    nine = datum.getGrowthValue();
                 }
-                wateringVO.setNextLevel(temp);
-                wateringVO.setIsNext(true);
-                // 升级了 使用浇水后的能量值减去升级阈值
-                wateringVO.setGrowthValue(one.getGrowthValue());
             }
+            tem = ten-nine;
+            total1 = tem;
         }else{
-            wateringVO.setIsNext(false);
-            wateringVO.setGrowthValue(one.getGrowthValue()+currentEnergyValue);
-            // 不能升级
-            one.setGrowthValue(one.getGrowthValue()+currentEnergyValue);
+            // 根据当前所在等级查询成长值
+            int a = data.get(x).getGrowthValue()-data.get(x-1).getGrowthValue();
+            tem = a;
+            total1 = Math.abs(total1-data.get(x-1).getGrowthValue());
+        }
+        one.setNextLevel(tem);
+        one.setTreeLevelType(x);
+        // 将当前成长值更新
+        one.setGrowthValue(total1);
+        one.setEnergyValue(byId.getEnergyValue());
+        appUserTreeService.updateById(one);
+        if (one.getTotal()>=data.get(9).getGrowthValue()){
+            // 本次浇水量
+            byId.setEnergyValue(one.getTotal()-data.get(9).getGrowthValue());
+            appUserService.updateById(byId);
+            one.setTotal(data.get(9).getGrowthValue());
             appUserTreeService.updateById(one);
         }
-        appUserTreeService.updateById(one);
+        wateringVO.setNextLevel(tem);
+        wateringVO.setTreeLevelType(x);
+        wateringVO.setGrowthValue(total1);
+        wateringVO.setEnergyValue(byId.getEnergyValue());
+        if (x>y){
+            wateringVO.setIsNext(true);
+            NoticeRecord noticeRecord = new NoticeRecord();
+            noticeRecord.setAppUserId(userId);
+            noticeRecord.setReadStatus(1);
+            noticeRecord.setNoticeType(1);
+            noticeRecord.setTitle("树苗升级通知");
+            noticeRecord.setContent("恭喜,您的树苗已升至"+x+"级,"+"继续加油哦");
+            noticeRecordService.save(noticeRecord);
+        }
         return R.ok(wateringVO);
     }
     @PostMapping("/sign")
@@ -329,10 +444,21 @@
         Long userId = loginUser.getUserid();
         // 给用户加10能量
         AppUser byId = appUserService.getById(userId);
-        byId.setTotalEnergyValue(byId.getTotalEnergyValue()+10);
+        if (byId.getSignTime()!=null
+                && byId.getSignTime().toLocalDate().equals(LocalDate.now())){
+        return R.fail("您今日已签到");
+        }
         byId.setEnergyValue(byId.getEnergyValue()+10);
         byId.setSignTime(LocalDateTime.now());
+        byId.setTotalEnergyValue(byId.getTotalEnergyValue()+10);
         appUserService.updateById(byId);
+        AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord();
+        appUserEnergyRecord.setAppUserId(userId);
+
+        appUserEnergyRecord.setChangeType(1);
+        appUserEnergyRecord.setEnergyValue(10);
+        appUserEnergyRecord.setReason("签到");
+        appUserEnergyRecordService.save(appUserEnergyRecord);
         return R.ok();
     }
 
@@ -346,6 +472,7 @@
         Long userId = loginUser.getUserid();
         if(userId ==null || userId == 0)return R.tokenError("登录失效");
         AppUser byId = appUserService.getById(userId);
+        System.err.println("调用是否弹窗"+byId.getIsFirst());
         if (byId.getIsFirst() == 1){
             byId.setIsFirst(2);
             appUserService.updateById(byId);
@@ -355,21 +482,21 @@
         }
     }
     @PostMapping("/userEnergyDetail")
-    @ApiOperation(value = "用户详情-能量值明细 ",tags = "管理后台-用户管理")
+    @ApiOperation(tags = "管理后台-用户管理",value = "用户详情-能量值明细 ")
     public R<PageDTO<AppUserEnergyRecordVO>> userEnergyDetail(@RequestBody UserEnergyDTO dto) {
         String startTime = null;
         String endTime = null;
         if (org.springframework.util.StringUtils.hasLength(dto.getTime())){
             String[] split = dto.getTime().split(" - ");
-            startTime = split[0]+"00:00:00";
-            endTime = split[1]+"23:59:59";
+            startTime = split[0]+" 00:00:00";
+            endTime = split[1]+" 23:59:59";
         }
         String userId = dto.getUid();
         EnergyVO energyVO = new EnergyVO();
         energyVO.setEnergyTotal(appUserService.getById(userId).getTotalEnergyValue());
         LambdaQueryWrapper<AppUserEnergyRecord> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-        if (dto.getState()!=null){
-            switch (dto.getState()){
+        if (dto.getChangeType()!=null){
+            switch (dto.getChangeType()){
                 case 1:
                     lambdaQueryWrapper.eq(AppUserEnergyRecord::getChangeType, 1);
                     break;
@@ -378,7 +505,7 @@
                     break;
             }
         }
-        lambdaQueryWrapper.like(StringUtils.hasLength(dto.getContent()),AppUserEnergyRecord::getReason,dto.getContent());
+        lambdaQueryWrapper.like(StringUtils.hasLength(dto.getReason()),AppUserEnergyRecord::getReason,dto.getReason());
         lambdaQueryWrapper.between(startTime!=null,BaseModel::getCreateTime,startTime,endTime);
         lambdaQueryWrapper.eq(AppUserEnergyRecord::getAppUserId, userId).orderByDesc(BaseModel::getCreateTime);
         Page<AppUserEnergyRecord> page = appUserEnergyRecordService.page(new Page<>(dto.getPageCurr(), dto.getPageSize()), lambdaQueryWrapper);
@@ -417,7 +544,7 @@
         PageDTO<ExchangeRecordVO> res = PageDTO.of(page, ExchangeRecordVO.class);
         for (ExchangeRecordVO record : res.getList()) {
             Prize temp = prizeService.lambdaQuery()
-                    .eq(Prize::getId, record.getId()).one();
+                    .eq(Prize::getId, record.getPrizeId()).one();
             if (temp != null){
                 record.setName(temp.getName());
                 record.setCoverUrl(temp.getCoverUrl());
@@ -510,7 +637,7 @@
         Long userId = loginUser.getUserid();
         AppUser byId1 = appUserService.getById(userId);
         Prize byId = prizeService.getById(prizeId);
-        if (byId1.getTotalEnergyValue()<=byId.getEnergyValue()){
+        if (byId1.getTotalEnergyValue()<byId.getEnergyValue()){
             return R.fail("能量值不足");
         }
         PrizeRedemptionRecord one = prizeRedemptionRecordService.lambdaQuery()
@@ -519,6 +646,18 @@
         if (one!=null){
             return R.fail("奖品已兑换");
         }
+        // 扣去能量值
+        Integer totalEnergyValue = byId1.getTotalEnergyValue();
+        byId1.setTotalEnergyValue(totalEnergyValue-byId.getEnergyValue());
+        appUserService.updateById(byId1);
+        // 增加记录
+        AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord();
+        appUserEnergyRecord.setAppUserId(userId);
+        appUserEnergyRecord.setChangeType(2);
+        appUserEnergyRecord.setEnergyValue(byId.getEnergyValue());
+        appUserEnergyRecord.setReason("兑换礼品");
+        appUserEnergyRecordService.save(appUserEnergyRecord);
+
         PrizeRedemptionRecord prizeRedemptionRecord = new PrizeRedemptionRecord();
         prizeRedemptionRecord.setStatus(1);
         prizeRedemptionRecord.setEnergyValue(byId.getEnergyValue());
@@ -529,6 +668,7 @@
         prizeRedemptionRecord.setCode(code);
         prizeRedemptionRecordService.save(prizeRedemptionRecord);
         // 随机生成6位纯数字验证码
+
         return R.ok(code);
     }
     @PostMapping("/exchangeRecordList")

--
Gitblit v1.7.1