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 |  184 ++++++++++++++++++++++++++++++++++-----------
 1 files changed, 139 insertions(+), 45 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 aa804a6..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){
@@ -584,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"));
@@ -668,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<>();
@@ -743,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(",");
@@ -1096,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;
@@ -1116,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();
     }
@@ -1182,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);
         }
@@ -1213,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);
         }
@@ -1245,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<>();
@@ -1296,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