From 086a293cfc5fdf56cf25fc5989332ec40e319940 Mon Sep 17 00:00:00 2001
From: phpcjl <phpcjl@gmail.com>
Date: 星期二, 17 十二月 2024 14:03:41 +0800
Subject: [PATCH] 1

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java |  119 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 84 insertions(+), 35 deletions(-)

diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java
index a496d51..3b282f2 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java
+++ b/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.mapper.UserPointMapper;
+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;
@@ -17,16 +17,10 @@
 import com.ruoyi.common.core.web.page.TableDataInfo;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.common.security.utils.SecurityUtils;
-import com.ruoyi.system.api.model.LoginUser;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.format.annotation.DateTimeFormat;
-import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -36,9 +30,9 @@
 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;
-import java.util.Map;
-import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -135,19 +129,11 @@
      */
     @GetMapping("/list")
     @ApiOperation(value = "积分变更记录", tags = "管理后台-财务统计-用户积分统计")
-    public R<Page<UserPoint>> list(@ApiParam("页码") @RequestParam Integer pageNum, @ApiParam("大小") Integer pageSize, UserPoint userPoint) {
-        List<String> userIds = appUserService.listObjs(new LambdaQueryWrapper<AppUser>()
-                .select(AppUser::getId)
-                .eq(AppUser::getPhone, userPoint.getPhone())
-                .like(AppUser::getName, userPoint.getUserName()), String::valueOf);
-
-        Page<UserPoint> page = userPointService.page(Page.of(pageNum, pageSize), new LambdaQueryWrapper<UserPoint>()
-                .in(!CollectionUtils.isEmpty(userIds), UserPoint::getAppUserId, userIds)
-                .eq(UserPoint::getType, userPoint.getType())
-                .between(UserPoint::getCreateTime, userPoint.getStartTime(), userPoint.getEndTime())
-                .orderByDesc(UserPoint::getCreateTime));
-        return R.ok(page);
+    public R<IPage<UserPoint>> list(UserPoint userPoint) {
+        IPage<UserPoint> userPointPage = userPointService.getUserPointPage(Page.of(userPoint.getPageNum(), userPoint.getPageSize()), userPoint);
+        return R.ok(userPointPage);
     }
+
 
     /**
      * 导出
@@ -155,21 +141,84 @@
     @GetMapping("/export")
     @ApiOperation(value = "积分变更记录导出", tags = "管理后台-财务统计-用户积分统计")
     public void export(HttpServletResponse response, UserPoint userPoint) {
-        List<String> userIds = appUserService.listObjs(new LambdaQueryWrapper<AppUser>()
-                .select(AppUser::getId)
-                .eq(AppUser::getPhone, userPoint.getPhone())
-                .like(AppUser::getName, userPoint.getUserName()), String::valueOf);
-
-        List<UserPoint> userPointList = userPointService.list(new LambdaQueryWrapper<UserPoint>()
-                .in(!CollectionUtils.isEmpty(userIds), UserPoint::getAppUserId, userIds)
-                .eq(UserPoint::getType, userPoint.getType())
-                .between(UserPoint::getCreateTime, userPoint.getStartTime(), userPoint.getEndTime())
-                .orderByDesc(UserPoint::getCreateTime));
-
-        ExcelUtil<UserPoint> util = new ExcelUtil<UserPoint>(UserPoint.class);
+        IPage<UserPoint> userPointPage = userPointService.getUserPointPage(Page.of(1, Integer.MAX_VALUE), userPoint);
+        List<UserPoint> userPointList = userPointPage.getRecords();
+        ExcelUtil<UserPoint> util = new ExcelUtil<>(UserPoint.class);
         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, "用户分佣统计");
+    }
+
 
 }
 

--
Gitblit v1.7.1