| | |
| | | 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; |
| | |
| | | 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; |
| | | |
| | |
| | | @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 |
| | |
| | | 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){ |
| | |
| | | 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") |
| | |
| | | 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(); |
| | | } |
| | | |
| | |
| | | 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); |
| | |
| | | } |
| | | } |
| | | @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; |
| | |
| | | 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); |
| | |
| | | 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()); |
| | |
| | | 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() |
| | |
| | | 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()); |
| | |
| | | prizeRedemptionRecord.setCode(code); |
| | | prizeRedemptionRecordService.save(prizeRedemptionRecord); |
| | | // 随机生成6位纯数字验证码 |
| | | |
| | | return R.ok(code); |
| | | } |
| | | @PostMapping("/exchangeRecordList") |