From ea73e0fcc705bd95c35ef95f17f98f482475a0dd Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 14 十一月 2024 13:50:52 +0800 Subject: [PATCH] 代码提交 --- xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserController.java | 198 ++++++++++++++++++++++++++++++++++--------------- 1 files changed, 136 insertions(+), 62 deletions(-) diff --git a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserController.java b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserController.java index 5d5cc93..36776a4 100644 --- a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserController.java +++ b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserController.java @@ -58,9 +58,11 @@ import java.time.LocalDateTime; import java.time.Month; import java.time.format.DateTimeFormatter; +import java.time.temporal.ChronoUnit; import java.time.temporal.TemporalAdjusters; import java.util.*; import java.util.stream.Collectors; +import java.util.stream.Stream; import io.swagger.models.auth.In; import lombok.RequiredArgsConstructor; @@ -119,6 +121,79 @@ private RemoteOrderService remoteOrderService; @Resource private RemoteUserService remoteUserService; + @Resource + private NoticeRecordService noticeRecordService; + @ApiOperation(value = "会员临期", tags = "会员临期") + @PostMapping("/testVip") + public void testVip() { + LocalDateTime now = LocalDateTime.now(); + List<AppUser> list = appUserService.lambdaQuery().ne(AppUser::getUserStatus, 3).list(); + for (AppUser appUser : list) { + if (appUser.getVipExpireTime()!=null && appUser.getVipExpireTime().isAfter(now)){ + // 计算两个now和time的天数差 + long between = ChronoUnit.DAYS.between(now,appUser.getVipExpireTime()); + if (between<=7 &&between>=0){ + NoticeRecord noticeRecord = new NoticeRecord(); + noticeRecord.setAppUserId(appUser.getId()); + noticeRecord.setReadStatus(1); + noticeRecord.setNoticeType(1); + noticeRecord.setTitle("【会员临期通知】"); + noticeRecord.setContent("尊敬的泉疗愈会员你好,你的会员即将在" + +appUser.getVipExpireTime().toLocalDate()+"到期,到期后将不再享受会员权益,请及时续费"); + noticeRecordService.save(noticeRecord); + } + } + + } + } + @GetMapping("/deleteBalance/{id}/{amount}") + public R deleteBalance(@PathVariable("id")String id,@PathVariable("amount")String amount) { + AppUser byId = appUserService.getById(id); + if (byId!=null){ + BigDecimal subtract = byId.getBalance().subtract(new BigDecimal(amount)); + if (subtract.compareTo(BigDecimal.ZERO)<0){ + byId.setBalance(BigDecimal.ZERO); + } + } + return R.ok(); + } + @GetMapping("/testNotice") + @ApiOperation(value = "测试通知", tags = "测试通知") + public R testNotice() { + LocalDateTime now = LocalDateTime.now(); + List<AppUser> list = appUserService.lambdaQuery().ne(AppUser::getUserStatus, 3).list(); + for (AppUser appUser : list) { + if (appUser.getVipExpireTime()!=null && appUser.getVipExpireTime().isAfter(now)){ + // 计算两个now和time的天数差 + long between = Math.abs(ChronoUnit.DAYS.between(appUser.getVipExpireTime(), now)); + if (between<=7){ + NoticeRecord noticeRecord = new NoticeRecord(); + noticeRecord.setAppUserId(appUser.getId()); + noticeRecord.setReadStatus(1); + noticeRecord.setNoticeType(1); + noticeRecord.setTitle("【会员临期通知】"); + noticeRecord.setContent("尊敬的泉疗愈会员你好,你的会员即将在" + +appUser.getVipExpireTime().toLocalDate()+"到期,到期后将不再享受会员权益,请及时续费"); + noticeRecordService.save(noticeRecord); + } + } + AppUserTree one = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, appUser.getId()) + .eq(AppUserTree::getSowAgain, 2).one(); + if(one!=null && (one.getTaskOne()==2||one.getTaskTwo()==2)){ + NoticeRecord noticeRecord = new NoticeRecord(); + noticeRecord.setAppUserId(appUser.getId()); + noticeRecord.setReadStatus(1); + noticeRecord.setNoticeType(1); + noticeRecord.setTitle("【冥想通知】"); + noticeRecord.setContent("你今天的冥想任务还未完成,完成冥想后可获得能量值奖励,快去冥想吧!"); + noticeRecordService.save(noticeRecord); + } + } + return R.ok(); + } + + + @GetMapping("/getUserByPhone/{phone}") public R<AppUser> getUserByPhone(@PathVariable("phone")String phone) { AppUser one = appUserService.lambdaQuery().eq(AppUser::getCellPhone, phone).ne(AppUser::getUserStatus, 3) @@ -378,7 +453,9 @@ byId.setFreezingTime(LocalDateTime.now()); byId.setFreezingReason(dto.getFreezingReason()); byId.setUserStatus(2); - byId.setFreezingOperator(tokenService.getLoginUser().getUserid()+""); + Long userid = tokenService.getLoginUser().getUserid(); + SysUser data = remoteUserService.getSysUserById(userid + "").getData(); + byId.setFreezingOperator(data.getNickName()+"("+data.getUserName()+")"); appUserService.updateById(byId); return R.ok(); } @@ -557,8 +634,8 @@ 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(); LambdaQueryWrapper<AppUser> appUserWalletRecordLambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -624,15 +701,15 @@ String endTime = null; if (org.springframework.util.StringUtils.hasLength(courseDTO.getVipExpireTime())){ String[] split = courseDTO.getVipExpireTime().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 startTime1 = null; String endTime1 = null; if (org.springframework.util.StringUtils.hasLength(courseDTO.getRegisterTime())){ String[] split = courseDTO.getRegisterTime().split(" - "); - startTime1 = split[0]+"00:00:00"; - endTime1 = split[1]+"23:59:59"; + startTime1 = split[0]+" 00:00:00"; + endTime1 = split[1]+" 23:59:59"; } List<Long> longs = new ArrayList<>(); LambdaQueryWrapper<AppUser> courseLambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -667,23 +744,11 @@ List<AppUser> list = appUserService.lambdaQuery().list(); List<AppUser> appUsers = new ArrayList<>(); for (AppUser appUser : list) { - List<AppUserTree> list1 = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, appUser.getId()) - .list(); - // 查询用户等级最高的那颗树苗 - 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); + AppUserTree list1 = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, appUser.getId()) + .eq(AppUserTree::getSowAgain,2) + .one(); // 查询疗愈等级 名称 图标 - int level = 1; - if (tree != null){ - level = tree.getTreeLevelType(); - } + int level = list1.getTreeLevelType(); if (list2.contains(level+"")){ appUsers.add(appUser); } @@ -694,6 +759,7 @@ } courseLambdaQueryWrapper.in(AppUser::getId, collect); } + courseLambdaQueryWrapper.isNotNull(AppUser::getCellPhone); List<AppUser> page = appUserService.list(courseLambdaQueryWrapper); List<UserExport> userExports = new ArrayList<>(); for (AppUser record : page) { @@ -706,23 +772,11 @@ }else{ record.setIsVip(1); } - List<AppUserTree> list1 = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, record.getId()) - .list(); - // 查询用户等级最高的那颗树苗 - 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); + AppUserTree list1 = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, record.getId()) + .eq(AppUserTree::getSowAgain,2) + .one(); // 查询疗愈等级 名称 图标 - int level = 1; - if (tree != null){ - level = tree.getTreeLevelType(); - } + int level = list1.getTreeLevelType(); // 根据等级查询疗愈名称和图标 UserLevelSetting data = remoteBannerService.getIconNameByLevel(level).getData(); record.setLevel(level); @@ -762,6 +816,13 @@ userExport.setUserStatus(record.getUserStatus()+""); List<AppUserQuestion> list = appUserQuestionService.lambdaQuery() .eq(AppUserQuestion::getAppUserId, record.getId()).list(); + userExport.setType1(""); + userExport.setType2(""); + userExport.setType3(""); + userExport.setType4(""); + userExport.setType5(""); + userExport.setType6(""); + userExport.setType6(""); for (AppUserQuestion appUserQuestion : list) { switch (appUserQuestion.getType()){ case 1: @@ -784,17 +845,15 @@ break; } } - List<Integer> collect = appUserTagService.lambdaQuery() - .eq(AppUserTag::getAppUserId, record.getId()).list().stream() - .map(AppUserTag::getTagId) - .collect(Collectors.toList()); - if (collect.isEmpty()){ - collect.add(-1); + List<String> collect = new ArrayList<>(); + if (org.springframework.util.StringUtils.hasLength(record.getTagId())) { + collect = tagService.lambdaQuery() + .in(Tag::getId, Arrays.stream(record.getTagId().split(",")).map(Long::parseLong).collect(Collectors.toList())).list().stream() + .map(Tag::getTagName).collect(Collectors.toList()); } - List<Tag> list2 = tagService.lambdaQuery().in(Tag::getId, collect).list(); StringBuilder stringBuilder = new StringBuilder(); - for (Tag tag : list2) { - stringBuilder.append(tag.getTagName()).append(";"); + for (String tag : collect) { + stringBuilder.append(tag).append(";"); } userExport.setType7(stringBuilder+""); userExport.setSanskritFlag(record.getSanskritFlag()+""); @@ -833,15 +892,15 @@ String endTime = null; if (org.springframework.util.StringUtils.hasLength(courseDTO.getVipExpireTime())){ String[] split = courseDTO.getVipExpireTime().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 startTime1 = null; String endTime1 = null; if (org.springframework.util.StringUtils.hasLength(courseDTO.getRegisterTime())){ String[] split = courseDTO.getRegisterTime().split(" - "); - startTime1 = split[0]+"00:00:00"; - endTime1 = split[1]+"23:59:59"; + startTime1 = split[0]+" 00:00:00"; + endTime1 = split[1]+" 23:59:59"; } List<Long> longs = new ArrayList<>(); LambdaQueryWrapper<AppUser> courseLambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -914,6 +973,7 @@ } courseLambdaQueryWrapper.in(AppUser::getId, collect); } + courseLambdaQueryWrapper.isNotNull(AppUser::getCellPhone); Page<AppUser> page = appUserService.page(new Page<>(courseDTO.getPageCurr(), courseDTO.getPageSize()), courseLambdaQueryWrapper); if (CollUtils.isEmpty(page.getRecords())) { return R.ok(PageDTO.empty(page)); @@ -993,7 +1053,12 @@ throw new ServiceException("验证码不正确"); } AppUser byId = appUserService.getById(userId); - + AppUser one = appUserService.lambdaQuery().eq(AppUser::getCellPhone, phone) + .ne(AppUser::getId, userId) + .ne(AppUser::getUserStatus, 3).one(); + if (one!=null){ + return R.fail("当前手机号已被绑定"); + } byId.setCellPhone(phone); boolean b = appUserService.updateById(byId); return R.ok(); @@ -1134,7 +1199,7 @@ page.sort((o1, o2) -> o2.getMoney().compareTo(o1.getMoney())); List<AppUser> testing = testing(page.size(), pageCurr, pageSize, page); - objectPage.setTotal(testing.size()); + objectPage.setTotal(page.size()); objectPage.setRecords(testing); return R.ok(PageDTO.of(objectPage, InviteRankListVO.class)); } @@ -1290,7 +1355,7 @@ consecutiveDays++; currentDate = currentDate.minusDays(1); } - appUserInfoVO.setToday(consecutiveDays); + appUserInfoVO.setContinuity(consecutiveDays); AppUserTree list1 = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, userId) .eq(AppUserTree::getSowAgain,2) .one(); @@ -1368,7 +1433,6 @@ currentDate = currentDate.minusDays(1); } appUser.setContinuity(consecutiveDays); - appUser.setToday(consecutiveDays); // 根据等级查询疗愈名称和图标 UserLevelSetting data = remoteBannerService.getIconNameByLevel(level).getData(); appUser.setLevelName(data.getLevelName()); @@ -1438,10 +1502,16 @@ tem = a; total1 = Math.abs(total1-data3.get(x-1).getGrowthValue()); } + if (x==10){ + healingLevelVO.setDifferenceLevel(0); + healingLevelVO.setGrowthValue(tem); + }else{ + healingLevelVO.setDifferenceLevel(tem-total1); + healingLevelVO.setGrowthValue(total1); + } healingLevelVO.setNextLevel(tem); healingLevelVO.setLevel(x); // 将当前成长值更新 - healingLevelVO.setGrowthValue(total1); String data1 = remoteUserService.getCourseList(7).getData(); healingLevelVO.setContent(data1); return R.ok(healingLevelVO); @@ -1517,9 +1587,17 @@ @PostMapping("/getUserByPhone") @ApiOperation(value = "根据用户手机号查询用户信息") public R<AppUserDetailVO> getCurrentUser(String phone) { + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + AppUser one = appUserService.lambdaQuery().eq(AppUser::getCellPhone, phone) .ne(AppUser::getUserStatus,3).one(); if (one!=null){ + if (one.getId().equals(loginUser.getUserid())){ + return R.giveError("不能赠送给自己"); + } AppUserDetailVO appUserDetailVO = new AppUserDetailVO(); appUserDetailVO.setId(one.getId()); appUserDetailVO.setCellPhone(one.getCellPhone()); @@ -1564,11 +1642,7 @@ @PostMapping("/saveUserAnswers") @ApiOperation(value = "保存计划引导页用户的答案", tags = {"用户端-计划引导相关接口"}) public R<?> saveUserAnswers(@Validated @RequestBody UserAnswerDTO dto) { - LoginUser loginUser = tokenService.getLoginUser(); - if (loginUser==null){ - return R.tokenError("登录失效"); - } - Long userId = loginUser.getUserid(); + appUserService.saveUserAnswers(dto); return R.ok(); } -- Gitblit v1.7.1