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 | 293 ++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 213 insertions(+), 80 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 9291ca0..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,22 +9,25 @@ 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; import com.xinquan.user.domain.vo.ExchangeRecordVO; import com.xinquan.user.service.*; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.springframework.web.bind.annotation.Mapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +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.LocalDateTime; @@ -55,14 +58,22 @@ 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); // 查询用户今日观看疗愈多少秒 LocalDateTime now = LocalDateTime.now(); LocalDateTime startOfDay = now.toLocalDate().atStartOfDay(); @@ -76,7 +87,6 @@ for (AppUserViewingHistory appUserViewingHistory : list) { temp += appUserViewingHistory.getTimeLook(); } - AppUserTree one = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, userId) .eq(AppUserTree::getSowAgain,2).one(); if (one == null){ @@ -87,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); @@ -103,6 +113,7 @@ appUserTree.setTaskOne(2); appUserTree.setTaskTwo(2); } + appUserTree.setEnergyValue(byId.getEnergyValue()); appUserTree.setNextLevel(1000); appUserTreeService.save(appUserTree); return R.ok(appUserTree); @@ -119,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); @@ -156,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); @@ -184,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; @@ -270,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(); } @@ -296,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); @@ -307,6 +354,79 @@ return R.ok(false); } } + @PostMapping("/userEnergyDetail") + @ApiOperation(value = "用户详情-能量值明细 ",tags = "管理后台-用户管理") + 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"; + } + 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()){ + case 1: + lambdaQueryWrapper.eq(AppUserEnergyRecord::getChangeType, 1); + break; + case 2: + lambdaQueryWrapper.eq(AppUserEnergyRecord::getChangeType, 2); + break; + } + } + lambdaQueryWrapper.like(StringUtils.hasLength(dto.getContent()),AppUserEnergyRecord::getReason,dto.getContent()); + 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); + if (CollUtils.isEmpty(page.getRecords())){ + PageDTO<AppUserEnergyRecordVO> empty = PageDTO.empty(page); + energyVO.setList(new ArrayList<AppUserEnergyRecordVO>()); + 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) { + Page<PrizeRedemptionRecord> page = prizeRedemptionRecordService.lambdaQuery() + .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); + return R.ok(empty); + } + PageDTO<ExchangeRecordVO> res = PageDTO.of(page, ExchangeRecordVO.class); + for (ExchangeRecordVO record : res.getList()) { + Prize temp = prizeService.lambdaQuery() + .eq(Prize::getId, record.getId()).one(); + if (temp != null){ + record.setName(temp.getName()); + record.setCoverUrl(temp.getCoverUrl()); + record.setWorth(temp.getWorth()); + record.setEnergyValue(temp.getEnergyValue()); + } + } + return R.ok(res); + } @PostMapping("/energyDetail") @ApiOperation(value = "能量值明细 ",tags = "树苗打卡站") @ApiImplicitParams({ @@ -314,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<>(); @@ -335,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 = "树苗打卡站") @@ -347,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() @@ -364,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 = "树苗打卡站") @@ -375,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()){ @@ -390,6 +521,7 @@ } PrizeRedemptionRecord prizeRedemptionRecord = new PrizeRedemptionRecord(); prizeRedemptionRecord.setStatus(1); + prizeRedemptionRecord.setEnergyValue(byId.getEnergyValue()); prizeRedemptionRecord.setPrizeId(prizeId); prizeRedemptionRecord.setAppUserId(userId); prizeRedemptionRecord.setCreateTime(LocalDateTime.now()); @@ -397,7 +529,7 @@ prizeRedemptionRecord.setCode(code); prizeRedemptionRecordService.save(prizeRedemptionRecord); // 随机生成6位纯数字验证码 - return R.ok(); + return R.ok(code); } @PostMapping("/exchangeRecordList") @ApiOperation(value = "兑换记录 ",tags = "树苗打卡站") @@ -405,22 +537,23 @@ @ApiImplicitParam(name = "pageCurr", value = "分页参数,当前页码", dataType = "Integer", required = true), @ApiImplicitParam(name = "pageSize", value = "分页参数,每页数量", dataType = "Integer", required = true) }) - public R<PageDTO<ExchangeRecordVO>> exchangeRecordList(Integer pageCurr, Integer pageSize) { - Long userId = SecurityUtils.getUserId(); - if (userId==0)return R.tokenError("登录失效"); + public R<List<ExchangeRecordVO>> exchangeRecordList(Integer pageCurr, Integer pageSize) { + 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)); - if (CollUtils.isEmpty(page.getRecords())){ PageDTO<ExchangeRecordVO> empty = PageDTO.empty(page); - return R.ok(empty); + return R.ok(new ArrayList<ExchangeRecordVO>()); } 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()); @@ -428,7 +561,7 @@ record.setEnergyValue(temp.getEnergyValue()); } } - return R.ok(res); + return R.ok(res.getList()); } } -- Gitblit v1.7.1