| | |
| | | import com.xinquan.system.api.RemoteUserService; |
| | | import com.xinquan.system.api.domain.*; |
| | | import com.xinquan.system.api.domain.vo.*; |
| | | import com.xinquan.system.api.feignClient.SysUserClient; |
| | | import com.xinquan.system.api.model.LoginUser; |
| | | import com.xinquan.user.api.domain.dto.AppUserManagementDTO; |
| | | import com.xinquan.user.api.domain.dto.OrderListDTO; |
| | |
| | | appUser.setLevelIcon(data.getLevelIcon()); |
| | | return R.ok(appUser); |
| | | } |
| | | @Resource |
| | | private SysUserClient sysUserClient; |
| | | @PostMapping("/healingLevel") |
| | | @ApiOperation(value = "冥想等级", tags = {"个人中心"}) |
| | | public R<HealingLevelVO> healingLevel() { |
| | |
| | | return R.tokenError("登录失效"); |
| | | } |
| | | Long userId = loginUser.getUserid(); |
| | | List<AppUserTree> list1 = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, userId) |
| | | .list(); |
| | | if (list1.isEmpty()){ |
| | | AppUserTree appUserTree = new AppUserTree(); |
| | | appUserTree.setAppUserId(userId); |
| | | appUserTree.setTreeLevelType(1); |
| | | appUserTree.setGrowthValue(0); |
| | | appUserTree.setSowAgain(2); |
| | | appUserTree.setStatus(2); |
| | | appUserTree.setCreateTime(LocalDateTime.now()); |
| | | appUserTreeService.save(appUserTree); |
| | | } |
| | | // 查询用户等级最高的那颗树苗 |
| | | AppUserTree tree = list1.stream().max((o1, o2) -> { |
| | | if (o1.getTreeLevelType() > o2.getTreeLevelType()) { |
| | | return 1; |
| | | } else if (o1.getTreeLevelType() < o2.getTreeLevelType()) { |
| | | return -1; |
| | | } else { |
| | | return 0; |
| | | } |
| | | }).orElse(null); |
| | | // 查询疗愈等级 名称 图标 |
| | | int level = 1; |
| | | if (tree != null){ |
| | | level = tree.getTreeLevelType(); |
| | | } |
| | | HealingLevelVO healingLevelVO = new HealingLevelVO(); |
| | | |
| | | HealingLevelVO healingLevelVO = new HealingLevelVO(); |
| | | AppUser one = appUserService.getById(userId); |
| | | AppUserTree list1 = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, userId) |
| | | .eq(AppUserTree::getSowAgain,2) |
| | | .one(); |
| | | // 查询疗愈等级 名称 图标 |
| | | int level = list1.getTreeLevelType(); |
| | | healingLevelVO.setLevel(level); |
| | | // 查询疗愈等级 名称 图标 |
| | | if (list1 != null){ |
| | | level = list1.getTreeLevelType(); |
| | | } |
| | | healingLevelVO.setLevel(level); |
| | | // 根据等级查询疗愈名称和图标 |
| | | UserLevelSetting data = remoteBannerService.getIconNameByLevel(level).getData(); |
| | | healingLevelVO.setLevelName(data.getLevelName()); |
| | | healingLevelVO.setLevelIcon(data.getLevelIcon()); |
| | | if (level==10){ |
| | | healingLevelVO.setNextLevel(2400); |
| | | }else{ |
| | | switch (level){ |
| | | case 1: |
| | | healingLevelVO.setNextLevel(1000); |
| | | healingLevelVO.setDifferenceLevel(1000-tree.getGrowthValue()); |
| | | List<TreeLevelSetting> data3 = sysUserClient.getTreeGroup().getData(); |
| | | |
| | | break; |
| | | case 2: |
| | | healingLevelVO.setNextLevel(1000); |
| | | healingLevelVO.setDifferenceLevel(1000-tree.getGrowthValue()); |
| | | break; |
| | | case 3: |
| | | healingLevelVO.setNextLevel(1000); |
| | | healingLevelVO.setDifferenceLevel(1000-tree.getGrowthValue()); |
| | | break; |
| | | case 4: |
| | | healingLevelVO.setNextLevel(1000); |
| | | healingLevelVO.setDifferenceLevel(1000-tree.getGrowthValue()); |
| | | break; |
| | | case 5: |
| | | healingLevelVO.setNextLevel(2000); |
| | | healingLevelVO.setDifferenceLevel(2000-tree.getGrowthValue()); |
| | | break; |
| | | case 6: |
| | | healingLevelVO.setNextLevel(2000); |
| | | healingLevelVO.setDifferenceLevel(2000-tree.getGrowthValue()); |
| | | break; |
| | | case 7: |
| | | healingLevelVO.setNextLevel(2000); |
| | | healingLevelVO.setDifferenceLevel(2000-tree.getGrowthValue()); |
| | | break; |
| | | case 8: |
| | | healingLevelVO.setNextLevel(2000); |
| | | healingLevelVO.setDifferenceLevel(2000-tree.getGrowthValue()); |
| | | break; |
| | | case 9: |
| | | healingLevelVO.setNextLevel(2400); |
| | | healingLevelVO.setDifferenceLevel(2400-tree.getGrowthValue()); |
| | | break; |
| | | case 10: |
| | | healingLevelVO.setNextLevel(2400); |
| | | healingLevelVO.setDifferenceLevel(2400-tree.getGrowthValue()); |
| | | break; |
| | | Integer total1 = list1.getTotal(); |
| | | // 根据总能量值 确定他在哪一等级 |
| | | int x = 1; |
| | | int tem = 0; |
| | | for (TreeLevelSetting datum : data3) { |
| | | if (total1 == 0){ |
| | | Integer growthValue = data3.get(1).getGrowthValue(); |
| | | tem = growthValue; |
| | | break; |
| | | }else if (total1>=datum.getGrowthValue()){ |
| | | x = datum.getTreeLevelType(); |
| | | } |
| | | } |
| | | healingLevelVO.setGrowthValue(tree.getGrowthValue()); |
| | | if (x == 10){ |
| | | // 如果等级为10那么成长阈值是10级减去9级 |
| | | int ten=0; |
| | | int nine = 0; |
| | | for (TreeLevelSetting datum : data3) { |
| | | if (datum.getTreeLevelType()==10){ |
| | | ten = datum.getGrowthValue(); |
| | | } |
| | | if (datum.getTreeLevelType()==9){ |
| | | nine = datum.getGrowthValue(); |
| | | } |
| | | } |
| | | tem = ten-nine; |
| | | total1 = tem; |
| | | }else{ |
| | | // 根据当前所在等级查询成长值 |
| | | int a = data3.get(x).getGrowthValue()-data3.get(x-1).getGrowthValue(); |
| | | tem = a; |
| | | total1 = Math.abs(total1-data3.get(x-1).getGrowthValue()); |
| | | } |
| | | healingLevelVO.setNextLevel(tem); |
| | | healingLevelVO.setLevel(x); |
| | | // 将当前成长值更新 |
| | | healingLevelVO.setGrowthValue(total1); |
| | | String data1 = remoteUserService.getCourseList(7).getData(); |
| | | healingLevelVO.setContent(data1); |
| | | return R.ok(healingLevelVO); |