From b01f752252eaadd1fa31eda6a9ad43146660b721 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 03 四月 2025 23:42:57 +0800 Subject: [PATCH] bug修改 --- xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserController.java | 185 ++++++++++++++++++++++++++++++++++----------- 1 files changed, 139 insertions(+), 46 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 5eb9ca8..6c730a5 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,9 @@ 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.core.web.page.PageInfo; +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; @@ -124,7 +127,85 @@ private RemoteUserService remoteUserService; @Resource private NoticeRecordService noticeRecordService; - + @Resource + private AppUserBlackService appUserBlackService; + /** + * 远程调用 保存邀请码 + */ + @PostMapping("/saveQrCode") + public R saveQrCode(@RequestBody AppUser appUser){ + appUserService.updateById(appUser); + return R.ok(); + } + /** + * 远程调用 查询用户信息 + */ + @GetMapping("/getUserById/{id}") + public R<AppUser> getUserById(@PathVariable("id") Long id){ + AppUser byId = appUserService.getById(id); + if (byId==null){ + return R.fail(); + }else{ + return R.ok(byId); + } + } + /** + * 远程调用 查询当前登陆人拉黑列表 + * @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){ @@ -359,6 +440,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 -> @@ -469,7 +551,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()); @@ -522,6 +604,7 @@ } @GetMapping("/unFreezing") @ApiOperation(value = "解冻用户", tags = "管理后台-用户管理") + @Log(title = "【用户管理】解冻用户", businessType = BusinessType.UPDATE) public R unFreezing(String uid) { AppUser byId = appUserService.getById(uid); byId.setUserStatus(1); @@ -550,6 +633,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){ @@ -558,7 +643,6 @@ } } byId.setTotalEnergyValue(byId.getTotalEnergyValue()+energyValue); - byId.setEnergyValue(byId.getEnergyValue()+energyValue); appUserService.updateById(byId); AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord(); appUserEnergyRecord.setAppUserId(byId.getId()); @@ -585,6 +669,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")); @@ -669,6 +755,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<>(); @@ -744,7 +831,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(","); @@ -1097,7 +1185,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; @@ -1117,7 +1205,7 @@ byId.setUserStatus(3); byId.setLogoutTime(LocalDateTime.now()); appUserService.updateById(byId); - appUserService.removeById(byId); +// appUserService.removeById(byId); remoteUserService.removeByAppUserId(byId.getUserId()); return R.ok(); } @@ -1183,9 +1271,14 @@ .list(); // 查询登录用户邀请了哪些人 List<Long> collect = page.stream().map(AppUser::getId).collect(Collectors.toList()); + List<AppUserWalletRecord> list1 = appUserWalletRecordService.lambdaQuery().list(); for (AppUser record : page) { - List<AppUserWalletRecord> list = appUserWalletRecordService.lambdaQuery().eq(AppUserWalletRecord::getAppUserId, userId) - .like(AppUserWalletRecord::getReason,"分佣").eq(AppUserWalletRecord::getChildAppUserId, record.getId()).list(); + List<AppUserWalletRecord> list = list1.stream().filter(e -> e.getAppUserId().equals(userId) && e.getReason().contains("分佣") + && e.getChildAppUserId().equals(record.getId()) + ).collect(Collectors.toList()); + +// List<AppUserWalletRecord> list = appUserWalletRecordService.lambdaQuery().eq(AppUserWalletRecord::getAppUserId, userId) +// .like(AppUserWalletRecord::getReason,"分佣").eq(AppUserWalletRecord::getChildAppUserId, record.getId()).list(); BigDecimal reduce = list.stream().map(AppUserWalletRecord::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add); record.setMoney(reduce); } @@ -1214,9 +1307,17 @@ .list(); // 查询登录用户邀请了哪些人 List<Long> collect = page.stream().map(AppUser::getId).collect(Collectors.toList()); + List<AppUserWalletRecord> list1 = appUserWalletRecordService.lambdaQuery().list(); + for (AppUser record : page) { - List<AppUserWalletRecord> list = appUserWalletRecordService.lambdaQuery().eq(AppUserWalletRecord::getAppUserId, userId) - .like(AppUserWalletRecord::getReason,"分佣").eq(AppUserWalletRecord::getChildAppUserId, record.getId()).list(); + List<AppUserWalletRecord> list = list1.stream().filter(e -> e.getAppUserId().equals(Long.valueOf(userId)) + && e.getReason().contains("分佣") + && e.getChildAppUserId().equals(record.getId()) + ).collect(Collectors.toList()); +// List<AppUserWalletRecord> list = appUserWalletRecordService.lambdaQuery().eq(AppUserWalletRecord::getAppUserId, userId) +// .like(AppUserWalletRecord::getReason,"分佣") +// .eq(AppUserWalletRecord::getChildAppUserId, record.getId()).list(); + BigDecimal reduce = list.stream().map(AppUserWalletRecord::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add); record.setMoney(reduce); } @@ -1246,26 +1347,30 @@ public R<PageDTO<InviteRankListVO>> inviteRankList( @RequestParam(value = "pageCurr", defaultValue = "1") Integer pageCurr, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { - Page<AppUser> objectPage = new Page<>(pageCurr, pageSize); + Page<InviteRankListVO> objectPage = new Page<>(pageCurr, pageSize); + int pageNo = (pageCurr - 1) * pageSize; - List<AppUser> page = appUserService.lambdaQuery().ne(AppUser::getUserStatus, 3) - .list(); - List<AppUser> res = new ArrayList<>(); - for (AppUser appUser : page) { - int size = appUserService.lambdaQuery().ne(AppUser::getUserStatus, 3) - .eq(AppUser::getInviteUserId, appUser.getId()) - .list().size(); - appUser.setCount(size); - if (size>0){ - res.add(appUser); - } - } - // 根据帮助人数 从大到小排序 - res.sort((o1, o2) -> o2.getCount() - o1.getCount()); - List<AppUser> testing = testing(res.size(), pageCurr, pageSize, res); - objectPage.setRecords(testing); - objectPage.setTotal(res.size()); + List<InviteRankListVO> list = appUserService.inviteRankList(pageNo,pageSize); + int size = appUserService.inviteRankListNolimit().size(); + objectPage.setRecords(list); + objectPage.setTotal(size); return R.ok(PageDTO.of(objectPage, InviteRankListVO.class)) ; +// List<AppUser> page = appUserService.lambdaQuery().ne(AppUser::getUserStatus, 3) +// .list(); +// List<AppUser> res = new ArrayList<>(); +// for (AppUser appUser : page) { +// int size = appUserService.lambdaQuery().ne(AppUser::getUserStatus, 3) +// .eq(AppUser::getInviteUserId, appUser.getId()) +// .list().size(); +// appUser.setCount(size); +// if (size>0){ +// res.add(appUser); +// } +// } +// // 根据帮助人数 从大到小排序 +// res.sort((o1, o2) -> o2.getCount() - o1.getCount()); +// List<AppUser> testing = testing(res.size(), pageCurr, pageSize, res); + } public static List<AppUser> testing(long total, long current, long size, List<AppUser> str){ List<AppUser> result = new ArrayList<>(); @@ -1297,25 +1402,13 @@ public R<PageDTO<InviteRankListVO>> inviteRankListShare( @RequestParam(value = "pageCurr", defaultValue = "1") Integer pageCurr, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { - Page<AppUser> objectPage = new Page<>(pageCurr, pageSize); + Page<InviteRankListVO> objectPage = new Page<>(pageCurr, pageSize); + int pageNo = (pageCurr - 1) * pageSize; - List<AppUser> page = appUserService.lambdaQuery().ne(AppUser::getUserStatus, 3) - .list(); - List<AppUser> res = new ArrayList<>(); - for (AppUser appUser : page) { - int size = appUserService.lambdaQuery().ne(AppUser::getUserStatus, 3) - .eq(AppUser::getInviteUserId, appUser.getId()) - .list().size(); - appUser.setCount(size); - if (size>0){ - res.add(appUser); - } - } - // 根据帮助人数 从大到小排序 - res.sort((o1, o2) -> o2.getCount() - o1.getCount()); - List<AppUser> testing = testing(res.size(), pageCurr, pageSize, res); - objectPage.setRecords(testing); - objectPage.setTotal(res.size()); + List<InviteRankListVO> list = appUserService.inviteRankList(pageNo,pageSize); + int size = appUserService.inviteRankListNolimit().size(); + objectPage.setRecords(list); + objectPage.setTotal(size); return R.ok(PageDTO.of(objectPage, InviteRankListVO.class)) ; } @PostMapping("/inviteRankListShareInfo") -- Gitblit v1.7.1