From 1d44c20eabc99e9970fb58d4dbd3a94d77e83e39 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 07 三月 2025 18:35:50 +0800 Subject: [PATCH] 冥想 --- xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserTreeController.java | 558 +++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 399 insertions(+), 159 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 3a32442..0e3f8bd 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; @@ -31,6 +32,7 @@ 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; @@ -111,177 +113,391 @@ @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.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>=120){ - 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); - } - 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); + 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(); } - appUserTree.setTaskOne(1); - appUserTree.setTaskTwo(1); } - else if (temp>=60){ - 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); + 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); } - appUserTree.setTaskOne(1); - appUserTree.setTaskTwo(2); - }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>=120){ - 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); - } - 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); + 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); - } - one.setTaskOne(1); - one.setTaskTwo(1); - } - else if (temp>=60){ - 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); - 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); - } - List<TreeLevelSetting> data = sysUserClient.getTreeGroup().getData(); + } + 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); - 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(); + } + 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); } - } - if (x == 10){ - // 如果等级为10那么成长阈值是10级减去9级 - int ten=0; - int nine = 0; + 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 (datum.getTreeLevelType()==10){ - ten = datum.getGrowthValue(); - } - if (datum.getTreeLevelType()==9){ - nine = datum.getGrowthValue(); + if (total1 == 0) { + Integer growthValue = data.get(1).getGrowthValue(); + tem = growthValue; + break; + } else if (total1 >= datum.getGrowthValue()) { + x = datum.getTreeLevelType(); } } - 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()); + 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); } - one.setNextLevel(tem); - one.setTreeLevelType(x); - // 将当前成长值更新 - one.setGrowthValue(total1); - one.setEnergyValue(byId.getEnergyValue()); - appUserTreeService.updateById(one); - one.setTotalEnergyValue(byId.getTotalEnergyValue()); - return R.ok(one); + }else{ + 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()); + } + } + 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); } + } + + /** + * 刷新用户观看和任务完成记录 + * @return + */ + @PostMapping("/getUserEnergy/{id}") + public R getUserEnergy(@PathVariable("id")Long id) { + AppUser byId = appUserService.getById(id); + 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, id) + .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(); + + } + } + AppUserTree one = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, id) + .eq(AppUserTree::getSowAgain, 2).one(); + if (one == null) { + AppUserTree appUserTree = new AppUserTree(); + appUserTree.setTime(LocalDateTime.now()); + appUserTree.setAppUserId(id); + 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(id); + 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(id); + 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(id); + 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(); + } else { + if (temp >= 3600) { + if (one.getTaskOne() == 2) { + AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord(); + appUserEnergyRecord.setAppUserId(id); + 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(id); + 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(id); + 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(); + } } @Autowired private TokenService tokenService; @@ -308,6 +524,8 @@ return R.ok(); } + @Resource + private NoticeRecordService noticeRecordService; @PostMapping("/watering") @ApiOperation(value = "浇水 返回值true证明升级了 false没升级",tags = "树苗打卡站") public R<WateringVO> watering() { @@ -322,12 +540,14 @@ 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(); + if (one.getTreeLevelType() == 10){ + return R.fail("成长值已满,请重新播种"); + } one.setStatus(2); one.setTotal(one.getTotal()+byId.getEnergyValue()); one.setTime(LocalDateTime.now()); @@ -375,11 +595,26 @@ 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); + } 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); } @@ -393,6 +628,10 @@ Long userId = loginUser.getUserid(); // 给用户加10能量 AppUser byId = appUserService.getById(userId); + 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); @@ -417,6 +656,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); -- Gitblit v1.7.1