无关风月
2024-11-12 3ec572e2cb7adf7d33d2018b24c003d9ef18906a
xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserController.java
@@ -58,6 +58,7 @@
import java.time.LocalDateTime;
import java.time.Month;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAdjusters;
import java.util.*;
import java.util.stream.Collectors;
@@ -119,6 +120,56 @@
    private RemoteOrderService remoteOrderService;
    @Resource
    private RemoteUserService remoteUserService;
    @Resource
    private NoticeRecordService noticeRecordService;
    @GetMapping("/deleteBalance/{id}/{amount}")
    public R deleteBalance(@PathVariable("id")String id,@PathVariable("amount")String amount) {
        AppUser byId = appUserService.getById(id);
        if (byId!=null){
            BigDecimal subtract = byId.getBalance().subtract(new BigDecimal(amount));
            if (subtract.compareTo(BigDecimal.ZERO)<0){
                byId.setBalance(BigDecimal.ZERO);
            }
        }
        return R.ok();
    }
    @GetMapping("/testNotice")
    @ApiOperation(value = "测试通知", tags = "测试通知")
    public R testNotice() {
        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 = Math.abs(ChronoUnit.DAYS.between(appUser.getVipExpireTime(), now));
                if (between<=7){
                    NoticeRecord noticeRecord = new NoticeRecord();
                    noticeRecord.setAppUserId(appUser.getId());
                    noticeRecord.setReadStatus(1);
                    noticeRecord.setNoticeType(1);
                    noticeRecord.setTitle("【会员临期通知】");
                    noticeRecord.setContent("尊敬的心泉疗愈会员你好,你的会员即将在"
                            +appUser.getVipExpireTime().toLocalDate()+"到期,到期后将不再享受会员权益,请及时续费");
                    noticeRecordService.save(noticeRecord);
                }
            }
            AppUserTree one = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, appUser.getId())
                    .eq(AppUserTree::getSowAgain, 2).one();
            if(one!=null && (one.getTaskOne()==2||one.getTaskTwo()==2)){
                NoticeRecord noticeRecord = new NoticeRecord();
                noticeRecord.setAppUserId(appUser.getId());
                noticeRecord.setReadStatus(1);
                noticeRecord.setNoticeType(1);
                noticeRecord.setTitle("【冥想通知】");
                noticeRecord.setContent("你今天的冥想任务还未完成,完成冥想后可获得能量值奖励,快去冥想吧!");
                noticeRecordService.save(noticeRecord);
            }
        }
        return R.ok();
    }
    @GetMapping("/getUserByPhone/{phone}")
    public R<AppUser> getUserByPhone(@PathVariable("phone")String phone) {
        AppUser one = appUserService.lambdaQuery().eq(AppUser::getCellPhone, phone).ne(AppUser::getUserStatus, 3)
@@ -914,6 +965,7 @@
            }
            courseLambdaQueryWrapper.in(AppUser::getId, collect);
        }
        courseLambdaQueryWrapper.isNotNull(AppUser::getCellPhone);
        Page<AppUser> page = appUserService.page(new Page<>(courseDTO.getPageCurr(), courseDTO.getPageSize()), courseLambdaQueryWrapper);
        if (CollUtils.isEmpty(page.getRecords())) {
            return R.ok(PageDTO.empty(page));
@@ -993,7 +1045,12 @@
            throw new ServiceException("验证码不正确");
        }
        AppUser byId = appUserService.getById(userId);
        AppUser one = appUserService.lambdaQuery().eq(AppUser::getCellPhone, phone)
                .ne(AppUser::getId, userId)
                .ne(AppUser::getUserStatus, 3).one();
        if (one!=null){
            return R.fail("当前手机号已被绑定");
        }
        byId.setCellPhone(phone);
        boolean b = appUserService.updateById(byId);
        return R.ok();
@@ -1290,7 +1347,7 @@
            consecutiveDays++;
            currentDate = currentDate.minusDays(1);
        }
        appUserInfoVO.setToday(consecutiveDays);
        appUserInfoVO.setContinuity(consecutiveDays);
        AppUserTree list1 = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, userId)
                .eq(AppUserTree::getSowAgain,2)
                .one();
@@ -1368,7 +1425,6 @@
            currentDate = currentDate.minusDays(1);
        }
        appUser.setContinuity(consecutiveDays);
        appUser.setToday(consecutiveDays);
        // 根据等级查询疗愈名称和图标
        UserLevelSetting data = remoteBannerService.getIconNameByLevel(level).getData();
        appUser.setLevelName(data.getLevelName());
@@ -1438,10 +1494,16 @@
            tem = a;
            total1 = Math.abs(total1-data3.get(x-1).getGrowthValue());
        }
        if (x==10){
            healingLevelVO.setDifferenceLevel(0);
            healingLevelVO.setGrowthValue(tem);
        }else{
            healingLevelVO.setDifferenceLevel(tem-total1);
            healingLevelVO.setGrowthValue(total1);
        }
        healingLevelVO.setNextLevel(tem);
        healingLevelVO.setLevel(x);
        // 将当前成长值更新
        healingLevelVO.setGrowthValue(total1);
        String data1 = remoteUserService.getCourseList(7).getData();
        healingLevelVO.setContent(data1);
        return R.ok(healingLevelVO);
@@ -1564,11 +1626,7 @@
    @PostMapping("/saveUserAnswers")
    @ApiOperation(value = "保存计划引导页用户的答案", tags = {"用户端-计划引导相关接口"})
    public R<?> saveUserAnswers(@Validated @RequestBody UserAnswerDTO dto) {
        LoginUser loginUser = tokenService.getLoginUser();
        if (loginUser==null){
            return R.tokenError("登录失效");
        }
        Long userId = loginUser.getUserid();
        appUserService.saveUserAnswers(dto);
        return R.ok();
    }