1
phpcjl
2024-12-17 086a293cfc5fdf56cf25fc5989332ec40e319940
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.AppUser;
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.UserPointDetailVO;
import com.ruoyi.account.vo.UserPointStatistics;
import com.ruoyi.account.vo.UserPointVO;
@@ -21,7 +21,6 @@
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -31,6 +30,8 @@
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;
/**
@@ -128,8 +129,8 @@
     */
    @GetMapping("/list")
    @ApiOperation(value = "积分变更记录", tags = "管理后台-财务统计-用户积分统计")
    public R<IPage<UserPoint>> list(@ApiParam("页码") @RequestParam Integer pageNum, @ApiParam("大小") Integer pageSize, UserPoint userPoint) {
        IPage<UserPoint> userPointPage = userPointService.getUserPointPage(Page.of(pageNum, pageSize), userPoint);
    public R<IPage<UserPoint>> list(UserPoint userPoint) {
        IPage<UserPoint> userPointPage = userPointService.getUserPointPage(Page.of(userPoint.getPageNum(), userPoint.getPageSize()), userPoint);
        return R.ok(userPointPage);
    }
@@ -146,6 +147,78 @@
        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);
    }
    /**
     * 导出用户分佣统计
     */
    @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);
        }
        ExcelUtil<UserPointEx> util = new ExcelUtil<>(UserPointEx.class);
        util.exportExcel(response, userPointExList, "用户分佣统计");
    }
}