| | |
| | | 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 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.*; |
| | | |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | appUserTree.setTaskOne(2); |
| | | appUserTree.setTaskTwo(2); |
| | | } |
| | | appUserTree.setEnergyValue(byId.getEnergyValue()); |
| | | appUserTree.setNextLevel(1000); |
| | | appUserTreeService.save(appUserTree); |
| | | return R.ok(appUserTree); |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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; |
| | |
| | | } |
| | | 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(); |
| | | } |
| | |
| | | @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); |
| | |
| | | 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); |
| | |
| | | @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<>(); |
| | |
| | | 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 = "树苗打卡站") |
| | |
| | | @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() |
| | |
| | | .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 = "树苗打卡站") |
| | |
| | | @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()){ |
| | |
| | | prizeRedemptionRecord.setCode(code); |
| | | prizeRedemptionRecordService.save(prizeRedemptionRecord); |
| | | // 随机生成6位纯数字验证码 |
| | | return R.ok(); |
| | | return R.ok(code); |
| | | } |
| | | @PostMapping("/exchangeRecordList") |
| | | @ApiOperation(value = "兑换记录 ",tags = "树苗打卡站") |
| | |
| | | @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)); |
| | |
| | | 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()); |