From 99f8118b288bd6dbe05adc146ab707ddec3971af Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期三, 05 三月 2025 17:39:16 +0800 Subject: [PATCH] 冥想2.0新增代码 --- xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserTreeController.java | 184 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 184 insertions(+), 0 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 118f705..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 @@ -315,6 +315,190 @@ 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; @PostMapping("/restart") -- Gitblit v1.7.1