无关风月
2024-10-14 039a33d1bfa6ef041161666bbd120c34086fe7c1
xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserTreeController.java
@@ -14,17 +14,16 @@
import com.xinquan.system.api.domain.*;
import com.xinquan.system.api.domain.vo.AppUserEnergyRecordVO;
import com.xinquan.system.api.domain.vo.WateringVO;
import com.xinquan.user.api.domain.dto.UserEnergyDTO;
import com.xinquan.user.api.domain.dto.UserExchangeRecordDTO;
import com.xinquan.user.domain.vo.EnergyVO;
import com.xinquan.user.domain.vo.ExchangeRecordVO;
import com.xinquan.user.service.*;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.Mapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.time.LocalDateTime;
@@ -62,7 +61,8 @@
        Long userId = SecurityUtils.getUserId();
        if (userId==0)return R.tokenError("登录失效");
        AppUser byId = appUserService.getById(userId);
        byId.setIsFirst(2);
        appUserService.updateById(byId);
        // 查询用户今日观看疗愈多少秒
        LocalDateTime now = LocalDateTime.now();
        LocalDateTime startOfDay = now.toLocalDate().atStartOfDay();
@@ -76,7 +76,6 @@
        for (AppUserViewingHistory appUserViewingHistory : list) {
            temp += appUserViewingHistory.getTimeLook();
        }
        AppUserTree one = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, userId)
                .eq(AppUserTree::getSowAgain,2).one();
        if (one == null){
@@ -307,6 +306,68 @@
            return R.ok(false);
        }
    }
    @PostMapping("/userEnergyDetail")
    @ApiOperation(value = "用户详情-能量值明细 ",tags = "管理后台-用户管理")
    public R<PageDTO<AppUserEnergyRecordVO>> userEnergyDetail(@RequestBody UserEnergyDTO dto) {
        String startTime = null;
        String endTime = null;
        if (org.springframework.util.StringUtils.hasLength(dto.getTime())){
            String[] split = dto.getTime().split(" - ");
            startTime = split[0]+"00:00:00";
            endTime = split[1]+"23:59:59";
        }
        String userId = dto.getUid();
        EnergyVO energyVO = new EnergyVO();
        energyVO.setEnergyTotal(appUserService.getById(userId).getTotalEnergyValue());
        LambdaQueryWrapper<AppUserEnergyRecord> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        if (dto.getState()!=null){
            switch (dto.getState()){
                case 1:
                    lambdaQueryWrapper.eq(AppUserEnergyRecord::getChangeType, 1);
                    break;
                case 2:
                    lambdaQueryWrapper.eq(AppUserEnergyRecord::getChangeType, 2);
                    break;
            }
        }
        lambdaQueryWrapper.like(StringUtils.hasLength(dto.getContent()),AppUserEnergyRecord::getReason,dto.getContent());
        lambdaQueryWrapper.between(startTime!=null,BaseModel::getCreateTime,startTime,endTime);
        lambdaQueryWrapper.eq(AppUserEnergyRecord::getAppUserId, userId).orderByDesc(BaseModel::getCreateTime);
        Page<AppUserEnergyRecord> page = appUserEnergyRecordService.page(new Page<>(dto.getPageCurr(), dto.getPageSize()), lambdaQueryWrapper);
        if (CollUtils.isEmpty(page.getRecords())){
            PageDTO<AppUserEnergyRecordVO> empty = PageDTO.empty(page);
            energyVO.setList(new ArrayList<AppUserEnergyRecordVO>());
            return R.ok(empty);
        }
        PageDTO<AppUserEnergyRecordVO> appUserEnergyRecordVOPageDTO = PageDTO.of(page, AppUserEnergyRecordVO.class);
        energyVO.setList(appUserEnergyRecordVOPageDTO.getList());
        return R.ok(appUserEnergyRecordVOPageDTO);
    }
    @PostMapping("/userExchangeRecordList")
    @ApiOperation(value = "用户详情-兑换记录 ",tags = "管理后台-用户管理")
    public R<PageDTO<ExchangeRecordVO>> userExchangeRecordList(@RequestBody UserExchangeRecordDTO dto) {
        Long userId = SecurityUtils.getUserId();
        if (userId==0)return R.tokenError("登录失效");
        Page<PrizeRedemptionRecord> page = prizeRedemptionRecordService.lambdaQuery()
                .eq(PrizeRedemptionRecord::getAppUserId, userId)
                .orderByDesc(BaseModel::getCreateTime).page(new Page<>(dto.getPageCurr(), dto.getPageSize()));
        if (CollUtils.isEmpty(page.getRecords())){
            PageDTO<ExchangeRecordVO> empty = PageDTO.empty(page);
            return R.ok(empty);
        }
        PageDTO<ExchangeRecordVO> res = PageDTO.of(page, ExchangeRecordVO.class);
        for (ExchangeRecordVO record : res.getList()) {
            Prize temp = prizeService.lambdaQuery()
                    .eq(Prize::getId, record.getId()).one();
            if (temp != null){
                record.setName(temp.getName());
                record.setCoverUrl(temp.getCoverUrl());
                record.setWorth(temp.getWorth());
                record.setEnergyValue(temp.getEnergyValue());
            }
        }
        return R.ok(res);
    }
    @PostMapping("/energyDetail")
    @ApiOperation(value = "能量值明细 ",tags = "树苗打卡站")
    @ApiImplicitParams({
@@ -390,6 +451,7 @@
        }
        PrizeRedemptionRecord prizeRedemptionRecord = new PrizeRedemptionRecord();
        prizeRedemptionRecord.setStatus(1);
        prizeRedemptionRecord.setEnergyValue(byId.getEnergyValue());
        prizeRedemptionRecord.setPrizeId(prizeId);
        prizeRedemptionRecord.setAppUserId(userId);
        prizeRedemptionRecord.setCreateTime(LocalDateTime.now());
@@ -405,19 +467,17 @@
            @ApiImplicitParam(name = "pageCurr", value = "分页参数,当前页码", dataType = "Integer", required = true),
            @ApiImplicitParam(name = "pageSize", value = "分页参数,每页数量", dataType = "Integer", required = true)
    })
    public R<PageDTO<ExchangeRecordVO>> exchangeRecordList(Integer pageCurr, Integer pageSize) {
    public R<List<ExchangeRecordVO>> exchangeRecordList(Integer pageCurr, Integer pageSize) {
        Long userId = SecurityUtils.getUserId();
        if (userId==0)return R.tokenError("登录失效");
        Page<PrizeRedemptionRecord> page = prizeRedemptionRecordService.lambdaQuery()
                .eq(PrizeRedemptionRecord::getAppUserId, userId)
                .orderByDesc(BaseModel::getCreateTime).page(new Page<>(pageCurr, pageSize));
        if (CollUtils.isEmpty(page.getRecords())){
            PageDTO<ExchangeRecordVO> empty = PageDTO.empty(page);
            return R.ok(empty);
            return R.ok(new ArrayList<ExchangeRecordVO>());
        }
        PageDTO<ExchangeRecordVO> res = PageDTO.of(page, ExchangeRecordVO.class);
        for (ExchangeRecordVO record : res.getList()) {
            Prize temp = prizeService.lambdaQuery()
                    .eq(Prize::getId, record.getId()).one();
@@ -428,7 +488,7 @@
                record.setEnergyValue(temp.getEnergyValue());
            }
        }
        return R.ok(res);
        return R.ok(res.getList());
    }
}