From dd663d0ac783755d889e270eee57ee58630c88c8 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 28 二月 2025 17:46:52 +0800 Subject: [PATCH] 冥想2.0新增代码 --- xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserController.java | 122 ++++++++++++++++++++++++++++++++++++++-- 1 files changed, 116 insertions(+), 6 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 bd6badb..0a08aca 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 @@ -16,6 +16,8 @@ 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.log.annotation.Log; +import com.xinquan.common.log.enums.BusinessType; import com.xinquan.common.redis.service.RedisService; import com.xinquan.common.security.service.TokenService; import com.xinquan.common.security.utils.SecurityUtils; @@ -23,6 +25,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; @@ -123,6 +126,86 @@ 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() { @@ -337,6 +420,7 @@ StringBuilder stringBuilder = new StringBuilder(); List<AppUser> list = appUserService.lambdaQuery() .eq(BaseModel::getDelFlag, 0) + .isNotNull(AppUser::getCellPhone) .ne(AppUser::getUserStatus, 3).list(); stringBuilder.append(list.size()).append(","); List<AppUser> memberList = list.stream().filter(appUser -> @@ -447,7 +531,7 @@ private TokenService tokenService; @PostMapping("/freezing") @ApiOperation(value = "冻结用户", tags = "管理后台-用户管理") - + @Log(title = "【用户管理】冻结用户", businessType = BusinessType.UPDATE) public R freezingDetail(@RequestBody UserFreezingDTO dto) { AppUser byId = appUserService.getById(dto.getUid()); byId.setFreezingTime(LocalDateTime.now()); @@ -457,6 +541,9 @@ 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") @@ -497,6 +584,7 @@ } @GetMapping("/unFreezing") @ApiOperation(value = "解冻用户", tags = "管理后台-用户管理") + @Log(title = "【用户管理】解冻用户", businessType = BusinessType.UPDATE) public R unFreezing(String uid) { AppUser byId = appUserService.getById(uid); byId.setUserStatus(1); @@ -525,6 +613,8 @@ @ApiImplicitParam(name = "energyValue", value = "能量值", dataType = "int", required = true), @ApiImplicitParam(name = "reason", value = "备注", dataType = "String", required = true) }) + @Log(title = "【用户管理】能量值修改", businessType = BusinessType.UPDATE) + public R setTotalEnergyValue(String uid,Integer energyValue,String reason) { AppUser byId = appUserService.getById(uid); if (energyValue<0){ @@ -533,7 +623,6 @@ } } byId.setTotalEnergyValue(byId.getTotalEnergyValue()+energyValue); - byId.setEnergyValue(byId.getEnergyValue()+energyValue); appUserService.updateById(byId); AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord(); appUserEnergyRecord.setAppUserId(byId.getId()); @@ -560,6 +649,8 @@ @ApiImplicitParam(name = "vipType", value = "会员类型 1非 2月 3季 4年", dataType = "Integer", required = true), @ApiImplicitParam(name = "vipExpireTime", value = "会员到期时间 yyyy-MM-dd HH:mm", dataType = "String", required = true), }) + @Log(title = "【用户管理】设置会员", businessType = BusinessType.UPDATE) + public R setVip(String uid, Integer vipType,String vipExpireTime) { // 将其转化为LocalDateTime格式 LocalDateTime parse = LocalDateTime.parse(vipExpireTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); @@ -644,6 +735,7 @@ appUserWalletRecordLambdaQueryWrapper.like(org.springframework.util.StringUtils.hasLength(dto.getCellPhone()),AppUser::getCellPhone,dto.getCellPhone()); appUserWalletRecordLambdaQueryWrapper.like(org.springframework.util.StringUtils.hasLength(dto.getNickName()),AppUser::getNickname,dto.getNickName()); appUserWalletRecordLambdaQueryWrapper.orderByDesc(BaseModel::getCreateTime); + appUserWalletRecordLambdaQueryWrapper.isNotNull(AppUser::getCellPhone); List<AppUser> page = appUserService .list(appUserWalletRecordLambdaQueryWrapper); List<UserInfoExport> userInfoExports = new ArrayList<>(); @@ -719,7 +811,8 @@ .eq(Objects.nonNull(courseDTO.getGender()), AppUser::getGender, courseDTO.getGender()) .eq(Objects.nonNull(courseDTO.getUserStatus()), AppUser::getUserStatus, courseDTO.getUserStatus()) .between(Objects.nonNull(startTime),AppUser::getVipExpireTime,startTime,endTime) - .between(Objects.nonNull(startTime1),AppUser::getRegisterTime,startTime1,endTime1) + .between(Objects.nonNull(startTime1),AppUser::getRegisterTime,startTime1,endTime1); + courseLambdaQueryWrapper.isNotNull(AppUser::getCellPhone) .orderByDesc(AppUser::getRegisterTime); if (org.springframework.util.StringUtils.hasLength(courseDTO.getVipType())){ String[] split = courseDTO.getVipType().split(","); @@ -1072,7 +1165,7 @@ String key = keyPrefix + cellPhone; String code = redisService.getCacheObject(key); // 万能验证码 - if (captcha.equals("123456") || (com.xinquan.common.core.utils.StringUtils.isNotBlank(code) && code.equals( + if (captcha.equals("220125") || (com.xinquan.common.core.utils.StringUtils.isNotBlank(code) && code.equals( captcha))) { redisService.deleteObject(key); return true; @@ -1199,7 +1292,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)); } @@ -1292,6 +1385,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 = {"个人中心"}) @@ -1596,7 +1706,7 @@ .ne(AppUser::getUserStatus,3).one(); if (one!=null){ if (one.getId().equals(loginUser.getUserid())){ - return R.fail("不可赠送给自己"); + return R.giveError("不能赠送给自己"); } AppUserDetailVO appUserDetailVO = new AppUserDetailVO(); appUserDetailVO.setId(one.getId()); -- Gitblit v1.7.1