puzhibing
2025-01-07 eb5d7885fa9e4bd20c0827eec9b4cdd48c47b509
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java
@@ -1,13 +1,13 @@
package com.ruoyi.account.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.account.api.model.UserPoint;
import com.ruoyi.account.excel.UserPointEx;
import com.ruoyi.account.service.AppUserService;
import com.ruoyi.account.service.UserPointService;
import com.ruoyi.account.vo.CommissionStatistics;
import com.ruoyi.account.vo.TransferPoint;
import com.ruoyi.account.vo.UserPointDetailVO;
import com.ruoyi.account.vo.UserPointStatistics;
import com.ruoyi.account.vo.UserPointVO;
@@ -30,8 +30,6 @@
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
/**
@@ -96,9 +94,8 @@
     */
    @PostMapping("/transferPoint")
    @ApiOperation("转赠积分")
    public R<Void> transferPoint(@ApiParam("积分") @RequestParam BigDecimal point, @ApiParam("手机号") @RequestParam String phone) {
        userPointService.transferPoint(point, phone);
        return R.ok();
    public R<Void> transferPoint(@RequestBody TransferPoint transferPoint) {
        return userPointService.transferPoint(transferPoint.getPoint(), transferPoint.getPhone());
    }
@@ -134,6 +131,14 @@
        return R.ok(userPointPage);
    }
    @GetMapping("/user/list")
    @ApiOperation(value = "积分管理-用户积分明细(必传用户id)", tags = "后台")
    public R<Page<UserPoint>> userlist(UserPoint userPoint) {
        Page<UserPoint> page = userPointService.lambdaQuery().eq(UserPoint::getAppUserId, userPoint.getAppUserId()).orderByDesc(UserPoint::getCreateTime).page(Page.of(userPoint.getPageNum(), userPoint.getPageSize()));
        return R.ok(page);
    }
    /**
     * 导出
@@ -147,78 +152,26 @@
        util.exportExcel(response, userPointList, "用户积分统计");
    }
    /**
     * 用户分佣统计
     */
    @GetMapping("/commissionStatistics")
    @ApiOperation(value = "用户分佣统计", tags = "管理后台-财务统计-用户分佣统计")
    public R<CommissionStatistics> commissionStatistics(UserPoint userPoint) {
        userPoint.setType(2);
        IPage<UserPoint> userPointPage = userPointService.getUserPointPage(Page.of(userPoint.getPageNum(), userPoint.getPageSize()), userPoint);
        UserPointStatistics statistics = userPointService.getStatistics(userPoint);
        CommissionStatistics commissionStatistics = new CommissionStatistics();
        commissionStatistics.setStatistics(statistics);
        commissionStatistics.setUserPointPage(userPointPage);
        return R.ok(commissionStatistics);
    }
    /**
     * 导出用户分佣统计
     * 获取积分变动记录
     * @param userPoint
     * @return
     */
    @GetMapping("/commissionExport")
    @ApiOperation(value = "用户分佣统计导出", tags = "管理后台-财务统计-用户分佣统计")
    public void commissionExport(HttpServletResponse response, UserPoint userPoint) {
        userPoint.setType(2);
        IPage<UserPoint> userPointPage = userPointService.getUserPointPage(Page.of(1, Integer.MAX_VALUE), userPoint);
        List<UserPoint> userPointList = userPointPage.getRecords();
        List<UserPointEx> userPointExList = new ArrayList<>();
        for (UserPoint point : userPointList) {
            UserPointEx userPointEx = new UserPointEx();
            userPointEx.setUserName(point.getUserName());
            userPointEx.setPhone(point.getPhone());
            userPointEx.setChangeTime(point.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
            userPointEx.setChangeNum(point.getVariablePoint().toString());
            Integer type = point.getType();
            switch (type) {
                case 1:
                    userPointEx.setType("消费积分");
                    break;
                    case 2:
                        userPointEx.setType("返佣积分");
                        break;
                    case 3:
                        userPointEx.setType("拉新人积分");
                        break;
                    case 4:
                        userPointEx.setType("兑换商品");
                        break;
                    case 5:
                        userPointEx.setType("门店业绩");
                        break;
                    case 6:
                        userPointEx.setType("门店返佣");
                        break;
                    case 7:
                        userPointEx.setType("技师业绩");
                        break;
                    case 8:
                        userPointEx.setType("转赠积分");
                        break;
                    case 9:
                        userPointEx.setType("做工积分");
                        break;
                    case 10:
                        userPointEx.setType("注册积分");
                        break;
                    default:
                        userPointEx.setType("未知积分");
            }
            userPointExList.add(userPointEx);
    @PostMapping("/getUserPointList")
    public R<List<UserPoint>> getUserPointList(@RequestBody UserPoint userPoint){
        LambdaQueryWrapper<UserPoint> queryWrapper = new LambdaQueryWrapper<>();
        if(null != userPoint.getType()){
            queryWrapper.eq(UserPoint::getType, userPoint.getType());
        }
        ExcelUtil<UserPointEx> util = new ExcelUtil<>(UserPointEx.class);
        util.exportExcel(response, userPointExList, "用户分佣统计");
        if(null != userPoint.getObjectId()){
            queryWrapper.eq(UserPoint::getObjectId, userPoint.getObjectId());
        }
        if(null != userPoint.getAppUserId()){
            queryWrapper.eq(UserPoint::getAppUserId, userPoint.getAppUserId());
        }
        List<UserPoint> list = userPointService.list(queryWrapper);
        return R.ok(list);
    }
}