From 0c51a577db337520452022d9d6a22b720ef858d4 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 31 十二月 2024 14:13:01 +0800 Subject: [PATCH] 全部代码、数据库提交 --- xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserController.java | 226 ++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 171 insertions(+), 55 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 611c8fe..64a35c5 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 @@ -23,6 +23,7 @@ import com.xinquan.course.api.domain.CourseCategory; import com.xinquan.course.api.domain.CourseDTO; import com.xinquan.course.api.domain.OrderCourseVO; +import com.xinquan.meditation.api.domain.Meditation; import com.xinquan.order.api.feign.RemoteOrderService; import com.xinquan.system.api.RemoteBannerService; import com.xinquan.system.api.RemoteUserService; @@ -62,6 +63,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 +124,109 @@ private RemoteUserService remoteUserService; @Resource private NoticeRecordService noticeRecordService; + @Resource + private AppUserBlackService appUserBlackService; + + /** + * 远程调用 查询当前登陆人拉黑列表 + * @param appUserId + */ + @PostMapping("/getUserBlackList/{appUserId}") + public R<List<Long>> getUserBlackList(@PathVariable("appUserId") Long appUserId){ + List<Long> collect = appUserBlackService.lambdaQuery().eq(AppUserBlack::getAppUserId, appUserId).list() + .stream().map(AppUserBlack::getBlackId).collect(Collectors.toList()); + return R.ok(collect); + } + @PostMapping("/blackUser") + @ApiOperation(value = "取消拉黑功能", tags = "IOS拉黑列表--用于上架") + @ApiImplicitParams({ + @ApiImplicitParam(value = "被拉黑用户id", name = "appUserId", required = true, dataType = "Long"), + }) + public R blackUser(Long appUserId) { + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + AppUserBlack one = appUserBlackService.lambdaQuery().eq(AppUserBlack::getAppUserId, loginUser.getAppUserId()) + .eq(AppUserBlack::getBlackId, appUserId).one(); + if (one==null){ + // 拉黑 + AppUserBlack appUserBlack = new AppUserBlack(); + appUserBlack.setAppUserId(loginUser.getAppUserId()); + appUserBlack.setBlackId(appUserId); + appUserBlackService.save(appUserBlack); + }else { + // 取消拉黑 + appUserBlackService.removeById(one.getId()); + } + return R.ok(); + } + @GetMapping("/blackList") + @ApiOperation(value = "IOS拉黑列表", tags = "IOS拉黑列表--用于上架") + @ApiImplicitParams({ + @ApiImplicitParam(value = "分页参数,当前页码", name = "pageCurr", required = true, dataType = "Integer"), + @ApiImplicitParam(value = "分页参数,每页数量", name = "pageSize", required = true, dataType = "Integer") + }) + public R<PageDTO<AppUser>> blackList(Integer pageCurr, Integer pageSize) { + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + List<Long> collect = appUserBlackService.lambdaQuery().eq(AppUserBlack::getAppUserId, loginUser.getAppUserId()).list() + .stream().map(AppUserBlack::getBlackId).collect(Collectors.toList()); + if (collect.isEmpty()){ + collect.add(-1L); + } + Page<AppUser> page = appUserService.lambdaQuery().in(AppUser::getId, collect).page(new Page<>(pageCurr, pageSize)); + if (CollUtils.isEmpty(page.getRecords())){ + PageDTO<AppUser> empty = PageDTO.empty(page); + return R.ok(empty); + } + return R.ok(PageDTO.of(page, AppUser.class)); + } + + @PostMapping("/subVipExpireTime/{appUserId}/{type}") + public void subVipExpireTime(@PathVariable("appUserId") Long appUserId,@PathVariable("type") Integer type){ + AppUser byId = appUserService.getById(appUserId); + switch (type){ + case 1: + LocalDateTime localDateTime = byId.getVipExpireTime().minusDays(30); + byId.setVipExpireTime(localDateTime); + break; + case 2: + LocalDateTime localDateTime1 = byId.getVipExpireTime().minusDays(90); + byId.setVipExpireTime(localDateTime1); + break; + case 3: + LocalDateTime localDateTime2 = byId.getVipExpireTime().minusDays(365); + byId.setVipExpireTime(localDateTime2); + break; + } + appUserService.updateById(byId); + } + @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); @@ -148,7 +253,7 @@ noticeRecord.setReadStatus(1); noticeRecord.setNoticeType(1); noticeRecord.setTitle("【会员临期通知】"); - noticeRecord.setContent("尊敬的心泉疗愈会员你好,你的会员即将在" + noticeRecord.setContent("尊敬的泉疗愈会员你好,你的会员即将在" +appUser.getVipExpireTime().toLocalDate()+"到期,到期后将不再享受会员权益,请及时续费"); noticeRecordService.save(noticeRecord); } @@ -429,8 +534,13 @@ 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); + String cacheList = redisService.getCacheObject(byId.getId() + ""); + redisService.deleteObject(cacheList); + return R.ok(); } @GetMapping("/detail") @@ -507,7 +617,6 @@ } } byId.setTotalEnergyValue(byId.getTotalEnergyValue()+energyValue); - byId.setEnergyValue(byId.getEnergyValue()+energyValue); appUserService.updateById(byId); AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord(); appUserEnergyRecord.setAppUserId(byId.getId()); @@ -608,8 +717,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<>(); @@ -675,15 +784,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<>(); @@ -718,23 +827,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); } @@ -745,6 +842,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) { @@ -757,23 +855,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); @@ -813,6 +899,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: @@ -835,17 +928,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()+""); @@ -884,15 +975,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<>(); @@ -1191,7 +1282,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)); } @@ -1284,6 +1375,23 @@ objectPage.setRecords(testing); objectPage.setTotal(res.size()); return R.ok(PageDTO.of(objectPage, InviteRankListVO.class)) ; + } + @PostMapping("/inviteRankListShareInfo") + @ApiOperation(value = "爱心助力榜单详情-分页", tags = {"H5分享"}) + @ApiImplicitParams({ + @ApiImplicitParam(value = "id", name = "id", required = true, dataType = "Long"), + @ApiImplicitParam(value = "分页参数,当前页码", name = "pageCurr", required = true, dataType = "Integer"), + @ApiImplicitParam(value = "分页参数,每页数量", name = "pageSize", required = true, dataType = "Integer") + }) + public R<PageDTO<InviteRankListVO>> inviteRankListShareInfo( + @RequestParam(value = "id") Long id, + @RequestParam(value = "pageCurr", defaultValue = "1") Integer pageCurr, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + LambdaQueryWrapper<AppUser> appUserLambdaQueryWrapper = new LambdaQueryWrapper<>(); + appUserLambdaQueryWrapper.eq(AppUser::getInviteUserId,id); + appUserLambdaQueryWrapper.ne(AppUser::getUserStatus,3); + Page<AppUser> page = appUserService.page(new Page<>(pageCurr, pageSize), appUserLambdaQueryWrapper); + return R.ok(PageDTO.of(page, InviteRankListVO.class)) ; } @PostMapping("/getUserInfo") @ApiOperation(value = "获取用户信息", tags = {"个人中心"}) @@ -1579,9 +1687,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()); -- Gitblit v1.7.1