From 64f7ccb9ef8b5a0618e65cddc14b981c1f108ba3 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期一, 04 十一月 2024 09:01:59 +0800 Subject: [PATCH] 代码提交 --- xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserTreeController.java | 215 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 144 insertions(+), 71 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 65e74f7..19788bc 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 @@ -9,11 +9,14 @@ import com.xinquan.common.core.utils.page.CollUtils; import com.xinquan.common.core.utils.page.PageDTO; import com.xinquan.common.core.web.domain.BaseModel; +import com.xinquan.common.security.service.TokenService; import com.xinquan.common.security.utils.SecurityUtils; import com.xinquan.system.api.RemoteUserService; import com.xinquan.system.api.domain.*; import com.xinquan.system.api.domain.vo.AppUserEnergyRecordVO; import com.xinquan.system.api.domain.vo.WateringVO; +import com.xinquan.system.api.feignClient.SysUserClient; +import com.xinquan.system.api.model.LoginUser; import com.xinquan.user.api.domain.dto.UserEnergyDTO; import com.xinquan.user.api.domain.dto.UserExchangeRecordDTO; import com.xinquan.user.domain.vo.EnergyVO; @@ -22,6 +25,7 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; @@ -54,12 +58,19 @@ private PrizeService prizeService; @Resource private PrizeRedemptionRecordService prizeRedemptionRecordService; + @Resource + private RemoteUserService remoteUserService; + @Resource + private SysUserClient sysUserClient; @PostMapping("/getUserTree") @ApiOperation(value = "获取用户树苗",tags = "树苗打卡站") public R<AppUserTree> getUserTree() { - Long userId = SecurityUtils.getUserId(); - if (userId==0)return R.tokenError("登录失效"); + 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); @@ -86,7 +97,7 @@ appUserTree.setSowAgain(2); appUserTree.setCreateTime(LocalDateTime.now()); // 如果用户的签到时间是今天 那么修改为已签到 - if (byId.getSignTime().toLocalDate().equals(LocalDateTime.now().toLocalDate())){ + if (byId.getSignTime()!=null && byId.getSignTime().toLocalDate().equals(LocalDateTime.now().toLocalDate())){ appUserTree.setIsSign(1); }else{ appUserTree.setIsSign(2); @@ -102,6 +113,7 @@ appUserTree.setTaskOne(2); appUserTree.setTaskTwo(2); } + appUserTree.setEnergyValue(byId.getEnergyValue()); appUserTree.setNextLevel(1000); appUserTreeService.save(appUserTree); return R.ok(appUserTree); @@ -118,7 +130,7 @@ one.setTaskTwo(2); } // 如果用户的签到时间是今天 那么修改为已签到 - if (byId.getSignTime().toLocalDate().equals(LocalDateTime.now().toLocalDate())){ + if (byId.getSignTime()!=null&&byId.getSignTime().toLocalDate().equals(LocalDateTime.now().toLocalDate())){ one.setIsSign(1); }else{ one.setIsSign(2); @@ -155,15 +167,21 @@ one.setNextLevel(2400); break; } + one.setEnergyValue(byId.getEnergyValue()); return R.ok(one); - } } + @Autowired + private TokenService tokenService; @PostMapping("/restart") @ApiOperation(value = "重新播种",tags = "树苗打卡站") public R restart() { - Long userId = SecurityUtils.getUserId(); - if (userId==0)return R.tokenError("登录失效"); + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + Long userId = loginUser.getUserid(); + if(userId ==null || userId == 0)return R.tokenError("登录失效"); AppUserTree one = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, userId) .eq(AppUserTree::getSowAgain,2).one(); one.setSowAgain(1); @@ -183,61 +201,80 @@ public R<WateringVO> watering() { WateringVO wateringVO = new WateringVO(); - Long userId = SecurityUtils.getUserId(); - if (userId==0)return R.tokenError("登录失效"); + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + Long userId = loginUser.getUserid(); AppUser byId = appUserService.getById(userId); + if (byId.getEnergyValue() == 0){ + return R.energyValueError("能量值不足"); + + } AppUserTree one = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, userId) .eq(AppUserTree::getSowAgain,2).one(); Integer currentEnergyValue = byId.getEnergyValue(); byId.setEnergyValue(0); + byId.setTotalEnergyValue(byId.getTotalEnergyValue()+currentEnergyValue); + appUserService.updateById(byId); + List<TreeLevelSetting> data = sysUserClient.getTreeGroup().getData(); // 判断能否升级 int temp = 0; - switch (one.getTreeLevelType()){ - case 1: - temp=1000; - break; - 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; + 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; + } } + wateringVO.setNextLevel(temp); // 升级阈值 if (one.getGrowthValue()+currentEnergyValue>=temp){ // 升级咯 如果当前等级已经为10级 if (one.getTreeLevelType()==10){ one.setGrowthValue(one.getGrowthValue()+currentEnergyValue); - appUserTreeService.updateById(one); wateringVO.setIsNext(false); - wateringVO.setNextLevel(2400); + int a= 0; + for (TreeLevelSetting datum : data) { + if (datum.getTreeLevelType()==10){ + a = datum.getGrowthValue(); + } + } + wateringVO.setNextLevel(a); }else{ + + // 将当前成长值更新 + one.setGrowthValue(one.getGrowthValue()+currentEnergyValue-temp); // 升级 one.setTreeLevelType(one.getTreeLevelType()+1); - one.setGrowthValue(one.getGrowthValue()+currentEnergyValue-temp); - appUserTreeService.updateById(one); switch (one.getTreeLevelType()+1){ case 2: temp=1000; @@ -269,25 +306,32 @@ } wateringVO.setNextLevel(temp); wateringVO.setIsNext(true); + // 升级了 使用浇水后的能量值减去升级阈值 + wateringVO.setGrowthValue(one.getGrowthValue()); } }else{ - // 不能升级 - one.setGrowthValue(one.getGrowthValue()+currentEnergyValue-temp); - appUserTreeService.updateById(one); wateringVO.setIsNext(false); + wateringVO.setGrowthValue(one.getGrowthValue()+currentEnergyValue); + // 不能升级 + one.setGrowthValue(one.getGrowthValue()+currentEnergyValue); + appUserTreeService.updateById(one); } - wateringVO.setGrowthValue(one.getGrowthValue()); + appUserTreeService.updateById(one); return R.ok(wateringVO); } @PostMapping("/sign") @ApiOperation(value = "签到",tags = "树苗打卡站") public R sign() { - Long userId = SecurityUtils.getUserId(); - if (userId==0)return R.tokenError("登录失效"); + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + Long userId = loginUser.getUserid(); // 给用户加10能量 AppUser byId = appUserService.getById(userId); byId.setTotalEnergyValue(byId.getTotalEnergyValue()+10); byId.setEnergyValue(byId.getEnergyValue()+10); + byId.setSignTime(LocalDateTime.now()); appUserService.updateById(byId); return R.ok(); } @@ -295,8 +339,12 @@ @PostMapping("/isFirst") @ApiOperation(value = "是否首次进入 ",tags = "树苗打卡站") public R isFirst() { - Long userId = SecurityUtils.getUserId(); - if (userId==0)return R.tokenError("登录失效"); + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + Long userId = loginUser.getUserid(); + if(userId ==null || userId == 0)return R.tokenError("登录失效"); AppUser byId = appUserService.getById(userId); if (byId.getIsFirst() == 1){ byId.setIsFirst(2); @@ -340,16 +388,27 @@ return R.ok(empty); } PageDTO<AppUserEnergyRecordVO> appUserEnergyRecordVOPageDTO = PageDTO.of(page, AppUserEnergyRecordVO.class); + for (AppUserEnergyRecordVO appUserEnergyRecordVO : appUserEnergyRecordVOPageDTO.getList()) { + AppUser byId = appUserService.getById(appUserEnergyRecordVO.getAppUserId()); + appUserEnergyRecordVO.setPhone(byId.getNickname()); + appUserEnergyRecordVO.setName(byId.getCellPhone()); + if (appUserEnergyRecordVO.getUpdateId()!=null){ + SysUser data = remoteUserService.getSysUserById(appUserEnergyRecordVO.getUpdateId() + "").getData(); + if (data!=null){ + appUserEnergyRecordVO.setPhone(data.getUserName()); + appUserEnergyRecordVO.setName(data.getNickName()); + } + + } + } energyVO.setList(appUserEnergyRecordVOPageDTO.getList()); return R.ok(appUserEnergyRecordVOPageDTO); } @PostMapping("/userExchangeRecordList") @ApiOperation(value = "用户详情-兑换记录 ",tags = "管理后台-用户管理") public R<PageDTO<ExchangeRecordVO>> userExchangeRecordList(@RequestBody UserExchangeRecordDTO dto) { - Long userId = SecurityUtils.getUserId(); - if (userId==0)return R.tokenError("登录失效"); Page<PrizeRedemptionRecord> page = prizeRedemptionRecordService.lambdaQuery() - .eq(PrizeRedemptionRecord::getAppUserId, userId) + .eq(PrizeRedemptionRecord::getAppUserId, dto.getUid()) .orderByDesc(BaseModel::getCreateTime).page(new Page<>(dto.getPageCurr(), dto.getPageSize())); if (CollUtils.isEmpty(page.getRecords())){ PageDTO<ExchangeRecordVO> empty = PageDTO.empty(page); @@ -375,9 +434,12 @@ @ApiImplicitParam(name = "pageCurr", value = "分页参数,当前页码", dataType = "Integer", required = true), @ApiImplicitParam(name = "pageSize", value = "分页参数,每页数量", dataType = "Integer", required = true) }) - public R<PageDTO<AppUserEnergyRecordVO>> energyDetail(Integer state,Integer pageCurr,Integer pageSize) { - Long userId = SecurityUtils.getUserId(); - if (userId==0)return R.tokenError("登录失效"); + public R<List<AppUserEnergyRecordVO>> energyDetail(Integer state,Integer pageCurr,Integer pageSize) { + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + Long userId = loginUser.getUserid(); EnergyVO energyVO = new EnergyVO(); energyVO.setEnergyTotal(appUserService.getById(userId).getTotalEnergyValue()); LambdaQueryWrapper<AppUserEnergyRecord> lambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -396,11 +458,11 @@ if (CollUtils.isEmpty(page.getRecords())){ PageDTO<AppUserEnergyRecordVO> empty = PageDTO.empty(page); energyVO.setList(new ArrayList<AppUserEnergyRecordVO>()); - return R.ok(empty); + return R.ok(new ArrayList<>()); } PageDTO<AppUserEnergyRecordVO> appUserEnergyRecordVOPageDTO = PageDTO.of(page, AppUserEnergyRecordVO.class); energyVO.setList(appUserEnergyRecordVOPageDTO.getList()); - return R.ok(appUserEnergyRecordVOPageDTO); + return R.ok(appUserEnergyRecordVOPageDTO.getList()); } @PostMapping("/goodsList") @ApiOperation(value = "能量兑换礼物列表 ",tags = "树苗打卡站") @@ -408,16 +470,19 @@ @ApiImplicitParam(name = "pageCurr", value = "分页参数,当前页码", dataType = "Integer", required = true), @ApiImplicitParam(name = "pageSize", value = "分页参数,每页数量", dataType = "Integer", required = true) }) - public R<PageDTO<Prize>> goodsList(Integer pageCurr,Integer pageSize) { - Long userId = SecurityUtils.getUserId(); - if (userId==0)return R.tokenError("登录失效"); + public R<List<Prize>> goodsList(Integer pageCurr,Integer pageSize) { + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + Long userId = loginUser.getUserid(); Page<Prize> page = prizeService.lambdaQuery() .eq(Prize::getStatus, 1) .orderByDesc(BaseModel::getCreateTime).page(new Page<>(pageCurr, pageSize)); if (CollUtils.isEmpty(page.getRecords())){ PageDTO<Prize> empty = PageDTO.empty(page); - return R.ok(empty); + return R.ok(new ArrayList<>()); } for (Prize record : page.getRecords()) { PrizeRedemptionRecord one = prizeRedemptionRecordService.lambdaQuery() @@ -425,10 +490,12 @@ .eq(PrizeRedemptionRecord::getAppUserId, userId).one(); if (one == null){ record.setReceiveStatus(2); + }else{ + record.setReceiveStatus(1); } } PageDTO<Prize> res = PageDTO.of(page, Prize.class); - return R.ok(res); + return R.ok(res.getList()); } @PostMapping("/exchange") @ApiOperation(value = "兑换奖品 ",tags = "树苗打卡站") @@ -436,8 +503,11 @@ @ApiImplicitParam(name = "prizeId", value = "奖品id", dataType = "Long", required = true), }) public R exchange(Long prizeId) { - Long userId = SecurityUtils.getUserId(); - if (userId==0)return R.tokenError("登录失效"); + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + Long userId = loginUser.getUserid(); AppUser byId1 = appUserService.getById(userId); Prize byId = prizeService.getById(prizeId); if (byId1.getTotalEnergyValue()<=byId.getEnergyValue()){ @@ -459,7 +529,7 @@ prizeRedemptionRecord.setCode(code); prizeRedemptionRecordService.save(prizeRedemptionRecord); // 随机生成6位纯数字验证码 - return R.ok(); + return R.ok(code); } @PostMapping("/exchangeRecordList") @ApiOperation(value = "兑换记录 ",tags = "树苗打卡站") @@ -468,8 +538,11 @@ @ApiImplicitParam(name = "pageSize", value = "分页参数,每页数量", dataType = "Integer", required = true) }) public R<List<ExchangeRecordVO>> exchangeRecordList(Integer pageCurr, Integer pageSize) { - Long userId = SecurityUtils.getUserId(); - if (userId==0)return R.tokenError("登录失效"); + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + Long userId = loginUser.getUserid(); Page<PrizeRedemptionRecord> page = prizeRedemptionRecordService.lambdaQuery() .eq(PrizeRedemptionRecord::getAppUserId, userId) .orderByDesc(BaseModel::getCreateTime).page(new Page<>(pageCurr, pageSize)); @@ -480,7 +553,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()); -- Gitblit v1.7.1