From bbccdee143c85c0a5cc3522ba79445d10e4236b7 Mon Sep 17 00:00:00 2001
From: phpcjl <phpcjl@gmail.com>
Date: 星期一, 16 十二月 2024 10:21:02 +0800
Subject: [PATCH] 用户积分统计

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java |   27 ++++++++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopPointServiceImpl.java     |    5 +
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java                      |    2 
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Goods.java                      |    4 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/UserPointService.java          |    8 ++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java    |   40 ++----------
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopPointService.java              |    2 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java        |   17 +++++
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/MyShoppingCartVo.java                   |    2 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ShopPointStatistics.java                |   39 +++++++++++++
 10 files changed, 109 insertions(+), 37 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/MyShoppingCartVo.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/MyShoppingCartVo.java
index cc3b4b5..dbf7ed5 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/MyShoppingCartVo.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/MyShoppingCartVo.java
@@ -40,7 +40,7 @@
 	@ApiModelProperty("积分支付")
 	private Boolean pointPayment;
 	@ApiModelProperty("配送方式(1=自提,2=快递)")
-	private Integer distributionMode;
+	private String distributionMode;
 	/**
 	 * 可获得消费积分
 	 */
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java
index c6c1386..5a355ee 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java
@@ -63,7 +63,7 @@
     private BigDecimal paymentAmount;
 
     @ApiModelProperty(value = "配送方式(1=自提,2=快递)")
-    private Integer distributionMode;
+    private String distributionMode;
 
     @ApiModelProperty(value = "门店名称")
     private String shopName;
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Goods.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Goods.java
index d9b5f37..408b550 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Goods.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Goods.java
@@ -47,9 +47,9 @@
     @TableField("purchase_limit")
     private Integer purchaseLimit;
 
-    @ApiModelProperty(value = "配送方式(1=自提,2=快递)")
+    @ApiModelProperty(value = "配送方式(1=自提,2=快递,1,2 = 自提+快递)")
     @TableField("distribution_mode")
-    private Integer distributionMode;
+    private String distributionMode;
 
     @ApiModelProperty(value = "指定门店(1=指定,2=所有)")
     @TableField("appoint_store")
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..d13afbd 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
@@ -2,10 +2,10 @@
 
 
 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.service.AppUserService;
 import com.ruoyi.account.service.UserPointService;
 import com.ruoyi.account.vo.UserPointDetailVO;
@@ -17,14 +17,9 @@
 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.*;
@@ -37,8 +32,6 @@
 import java.time.LocalTime;
 import java.time.YearMonth;
 import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -135,19 +128,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(@ApiParam("页码") @RequestParam Integer pageNum, @ApiParam("大小") Integer pageSize, UserPoint userPoint) {
+        IPage<UserPoint> userPointPage = userPointService.getUserPointPage(Page.of(pageNum, pageSize), userPoint);
+        return R.ok(userPointPage);
     }
+
 
     /**
      * 导出
@@ -155,18 +140,9 @@
     @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, "用户积分统计");
     }
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/UserPointService.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/UserPointService.java
index ce68846..149ea11 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/UserPointService.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/UserPointService.java
@@ -1,10 +1,15 @@
 package com.ruoyi.account.service;
 
+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.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.account.api.model.AppUser;
 import com.ruoyi.account.api.model.UserPoint;
 import com.ruoyi.account.vo.UserPointDetailVO;
 import com.ruoyi.account.vo.UserPointStatistics;
 import com.ruoyi.account.vo.UserPointVO;
+import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
@@ -28,4 +33,7 @@
     void transferPoint(BigDecimal point, String phone);
 
     UserPointStatistics getStatistics(UserPoint userPoint);
+
+
+    IPage<UserPoint> getUserPointPage(Page<UserPoint> page, UserPoint userPoint);
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java
index c4da661..3caa4d3 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java
@@ -2,6 +2,8 @@
 
 import cn.hutool.core.collection.CollectionUtil;
 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.account.api.model.AppUser;
 import com.ruoyi.account.api.model.UserPoint;
@@ -23,6 +25,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
@@ -164,7 +167,7 @@
     public UserPointStatistics getStatistics(UserPoint userPoint) {
         LoginUser loginUser = tokenService.getLoginUser();
         userPoint.setAppUserId(loginUser.getUserid());
-        List<UserPoint> userPointList =  userPointMapper.findLatestChangeByType(userPoint);
+        List<UserPoint> userPointList = userPointMapper.findLatestChangeByType(userPoint);
         Map<Integer, Integer> userBalanceMap = userPointList.stream()
                 .collect(Collectors.toMap(UserPoint::getType, UserPoint::getBalance));
 
@@ -191,4 +194,26 @@
         userPointStatistics.setShopAchievementPoint(shopAchievementPoint);
         return userPointStatistics;
     }
+
+    @Override
+    public IPage<UserPoint> getUserPointPage(Page<UserPoint> page, UserPoint userPoint) {
+        List<AppUser> appUserList = appUserService.list(new LambdaQueryWrapper<AppUser>()
+                .eq(AppUser::getPhone, userPoint.getPhone())
+                .like(AppUser::getName, userPoint.getUserName()));
+        List<Long> userIds = appUserList.stream().map(AppUser::getId).collect(Collectors.toList());
+
+        Page<UserPoint> userPointPage = page(page, 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));
+
+        userPointPage.getRecords().forEach(userPoint1 -> appUserList.stream()
+                .filter(appUser -> appUser.getId().equals(userPoint1.getAppUserId()))
+                .findFirst().ifPresent(appUser -> {
+                    userPoint1.setUserName(appUser.getName());
+                    userPoint1.setPhone(appUser.getPhone());
+                }));
+        return userPointPage;
+    }
 }
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java
index 9ad46c0..380d4ba 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java
@@ -1,8 +1,12 @@
 package com.ruoyi.other.controller;
 
 
+import com.ruoyi.other.service.ShopPointService;
+import io.swagger.annotations.Api;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
 
 /**
  * <p>
@@ -14,7 +18,20 @@
  */
 @RestController
 @RequestMapping("/shop-point")
+@Api(tags = "管理后台-财务统计-门店积分统计")
 public class ShopPointController {
+    @Resource
+    private ShopPointService shopPointService;
+
+
+    /**
+     * 门店积分统计
+     */
+    public Object statistics() {
+        return shopPointService.statistics();
+    }
+
+
 
 }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopPointService.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopPointService.java
index 9d017fb..efcf878 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopPointService.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopPointService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.other.api.domain.ShopPoint;
+import com.ruoyi.other.vo.ShopPointStatistics;
 
 /**
  * <p>
@@ -13,4 +14,5 @@
  */
 public interface ShopPointService extends IService<ShopPoint> {
 
+    ShopPointStatistics statistics();
 }
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopPointServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopPointServiceImpl.java
index f0139a2..f5dd91b 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopPointServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopPointServiceImpl.java
@@ -4,6 +4,7 @@
 import com.ruoyi.other.mapper.ShopPointMapper;
 import com.ruoyi.other.api.domain.ShopPoint;
 import com.ruoyi.other.service.ShopPointService;
+import com.ruoyi.other.vo.ShopPointStatistics;
 import org.springframework.stereotype.Service;
 
 /**
@@ -17,4 +18,8 @@
 @Service
 public class ShopPointServiceImpl extends ServiceImpl<ShopPointMapper, ShopPoint> implements ShopPointService {
 
+    @Override
+    public ShopPointStatistics statistics() {
+        return null;
+    }
 }
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ShopPointStatistics.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ShopPointStatistics.java
new file mode 100644
index 0000000..6cae81e
--- /dev/null
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ShopPointStatistics.java
@@ -0,0 +1,39 @@
+package com.ruoyi.other.vo;
+
+import com.ruoyi.other.api.domain.ShopPoint;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("门店积分统计")
+public class ShopPointStatistics {
+
+    /**
+     * 门店获得总积分
+     */
+    @ApiModelProperty("门店获得总积分")
+    private Integer totalPoint;
+
+    /**
+     * 门店业绩积分
+     */
+    @ApiModelProperty("门店业绩积分")
+    private Integer shopPoint;
+
+    /**
+     * 门店返佣积分
+     */
+    @ApiModelProperty("门店返佣积分")
+    private Integer shopCommissionPoint;
+
+    /**
+     * 下级门店返佣积分
+     */
+    @ApiModelProperty("下级门店返佣积分")
+    private Integer subShopCommissionPoint;
+
+    private List<ShopPoint> shopPointList;
+}

--
Gitblit v1.7.1