From e41a2c93c1d366da245ffe2ecc0c9d4457e4457d Mon Sep 17 00:00:00 2001
From: phpcjl <phpcjl@gmail.com>
Date: 星期五, 13 十二月 2024 18:21:21 +0800
Subject: [PATCH] 用户积分统计

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java |   71 ++++++++++++++++++++++++++++++-----
 1 files changed, 60 insertions(+), 11 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 85e22b0..a496d51 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,31 +1,44 @@
 package com.ruoyi.account.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.service.AppUserService;
 import com.ruoyi.account.service.UserPointService;
 import com.ruoyi.account.vo.UserPointDetailVO;
 import com.ruoyi.account.vo.UserPointStatistics;
 import com.ruoyi.account.vo.UserPointVO;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.web.controller.BaseController;
 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 io.swagger.models.auth.In;
+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;
+import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.YearMonth;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -43,6 +56,8 @@
     private UserPointService userPointService;
     @Resource
     private AppUserService appUserService;
+    @Resource
+    private TokenService tokenService;
 
 
     /**
@@ -110,17 +125,51 @@
      * 积分统计
      */
     @GetMapping("/statistics")
+    @ApiOperation(value = "积分统计", tags = "管理后台-财务统计-用户积分统计")
     public R<UserPointStatistics> statistics(UserPoint userPoint) {
-        List<AppUser> appUserList = appUserService.list();
-        Integer totalPoint = 0;
-        Integer consumePoint = 0;
-        Integer sharePoint = 0;
-        List<UserPoint> userPointList = userPointService.list();
-        UserPointStatistics userPointStatistics = new UserPointStatistics();
-        userPointStatistics.setTotalPoint(totalPoint);
-        userPointStatistics.setConsumePoint(consumePoint);
-        userPointStatistics.setSharePoint(sharePoint);
-        return null;
+        return R.ok(userPointService.getStatistics(userPoint));
     }
+
+    /**
+     * 变更记录
+     */
+    @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);
+    }
+
+    /**
+     * 导出
+     */
+    @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);
+        util.exportExcel(response, userPointList, "用户积分统计");
+    }
+
+
 }
 

--
Gitblit v1.7.1