From 353cf91d3679e68d9b8c07652e4f7791d606dbd4 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 15 十一月 2024 15:14:39 +0800 Subject: [PATCH] 代码提交 --- xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserController.java | 153 ++++++++++++++++++++++++++++++-------------------- 1 files changed, 91 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 e5f804e..1817d67 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 @@ -62,6 +62,7 @@ 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; @@ -122,6 +123,40 @@ 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() { @@ -137,7 +172,7 @@ noticeRecord.setReadStatus(1); noticeRecord.setNoticeType(1); noticeRecord.setTitle("【会员临期通知】"); - noticeRecord.setContent("尊敬的心泉疗愈会员你好,你的会员即将在" + noticeRecord.setContent("尊敬的泉疗愈会员你好,你的会员即将在" +appUser.getVipExpireTime().toLocalDate()+"到期,到期后将不再享受会员权益,请及时续费"); noticeRecordService.save(noticeRecord); } @@ -418,8 +453,11 @@ 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); + // 将被冻结的用户token清除 return R.ok(); } @GetMapping("/detail") @@ -597,8 +635,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<>(); @@ -664,15 +702,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<>(); @@ -707,23 +745,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); } @@ -734,6 +760,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) { @@ -746,23 +773,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); @@ -802,6 +817,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: @@ -824,17 +846,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()+""); @@ -873,15 +893,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<>(); @@ -954,6 +974,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)); @@ -1033,7 +1054,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(); @@ -1174,7 +1200,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)); } @@ -1330,7 +1356,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(); @@ -1408,7 +1434,6 @@ currentDate = currentDate.minusDays(1); } appUser.setContinuity(consecutiveDays); - appUser.setToday(consecutiveDays); // 根据等级查询疗愈名称和图标 UserLevelSetting data = remoteBannerService.getIconNameByLevel(level).getData(); appUser.setLevelName(data.getLevelName()); @@ -1563,9 +1588,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()); @@ -1610,11 +1643,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