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