无关风月
2024-12-31 0c51a577db337520452022d9d6a22b720ef858d4
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;
@@ -123,6 +124,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() {
@@ -457,7 +538,9 @@
        SysUser data = remoteUserService.getSysUserById(userid + "").getData();
        byId.setFreezingOperator(data.getNickName()+"("+data.getUserName()+")");
        appUserService.updateById(byId);
        // 将被冻结的用户token清除
        String cacheList = redisService.getCacheObject(byId.getId() + "");
        redisService.deleteObject(cacheList);
        return R.ok();
    }
    @GetMapping("/detail")
@@ -534,7 +617,6 @@
            }
        }
        byId.setTotalEnergyValue(byId.getTotalEnergyValue()+energyValue);
        byId.setEnergyValue(byId.getEnergyValue()+energyValue);
        appUserService.updateById(byId);
        AppUserEnergyRecord appUserEnergyRecord = new AppUserEnergyRecord();
        appUserEnergyRecord.setAppUserId(byId.getId());
@@ -1294,6 +1376,23 @@
        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 = {"个人中心"})
    public R<AppUserInfoVO> getUserInfo() {