From 74b2581c8a9be309ca6454da3ff2c56501368771 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 09 一月 2025 09:30:21 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopPointServiceImpl.java | 116 +++++++++++++++++++++++++++++----------------------------
1 files changed, 59 insertions(+), 57 deletions(-)
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 9e2354a..230aa4a 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
@@ -1,22 +1,21 @@
package com.ruoyi.other.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.account.api.feignClient.AppUserClient;
-import com.ruoyi.account.api.model.AppUser;
-import com.ruoyi.common.core.utils.StringUtils;
-import com.ruoyi.other.api.domain.Shop;
-import com.ruoyi.other.mapper.ShopPointMapper;
import com.ruoyi.other.api.domain.ShopPoint;
+import com.ruoyi.other.api.enums.PointChangeType;
+import com.ruoyi.other.mapper.ShopPointMapper;
import com.ruoyi.other.service.ShopPointService;
-import com.ruoyi.other.service.ShopService;
import com.ruoyi.other.vo.ShopPointStatistics;
import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -29,61 +28,64 @@
*/
@Service
public class ShopPointServiceImpl extends ServiceImpl<ShopPointMapper, ShopPoint> implements ShopPointService {
- @Resource
- private ShopPointMapper shopPointMapper;
- @Resource
- private ShopService shopService;
@Override
public ShopPointStatistics statistics(IPage<ShopPoint> page, ShopPoint shopPoint) {
-
- String shopName = shopPoint.getShopName();
- String phone = shopPoint.getPhone();
- String shopLeaderName = shopPoint.getShopLeaderName();
- if (StringUtils.isNotEmpty(shopName) || StringUtils.isNotEmpty(phone) || StringUtils.isNotEmpty(shopLeaderName)) {
- List<Integer> shopIds = shopService.listObjs(new LambdaQueryWrapper<Shop>()
- .select(Shop::getId)
- .like(StringUtils.isNotEmpty(shopName), Shop::getName, shopName)
- .like(StringUtils.isNotEmpty(phone), Shop::getPhone, phone)
- .like(StringUtils.isNotEmpty(shopLeaderName), Shop::getShopManager, shopLeaderName))
- .stream().map(o -> (Integer) o).collect(Collectors.toList());
-
- shopPoint.setShopIds(shopIds);
- }
-
+ List<ShopPoint> shopPoints = this.baseMapper.selectShopPointList(shopPoint);
+ Map<Integer, Integer> shopPointMap = shopPoints.stream()
+ .collect(Collectors.groupingBy(
+ ShopPoint::getType,
+ Collectors.summingInt(ShopPoint::getVariablePoint)
+ ));
ShopPointStatistics shopPointStatistics = new ShopPointStatistics();
- List<ShopPoint> latestChangeByType = shopPointMapper.findLatestChangeByType(shopPoint);
- for (ShopPoint sp : latestChangeByType) {
- switch (sp.getType()) {
- case 1:
- shopPointStatistics.setShopPoint(sp.getVariablePoint());
- break;
- case 2:
- shopPointStatistics.setShopCommissionPoint(sp.getVariablePoint());
- break;
- case 3:
- shopPointStatistics.setSubShopCommissionPoint(sp.getVariablePoint());
- break;
- }
- }
- shopPointStatistics.setTotalPoint(shopPointStatistics.getShopPoint() + shopPointStatistics.getShopCommissionPoint() + shopPointStatistics.getSubShopCommissionPoint());
+ int sPoint = shopPointMap.getOrDefault(PointChangeType.SHOP_ACHIEVEMENT.getCode(), 0);
+ int shopCommissionPoint = shopPointMap.getOrDefault(PointChangeType.SHOP_REBATE.getCode(), 0);
+ int subShopCommissionPoint = shopPointMap.getOrDefault(PointChangeType.JUNIOR_SHOP_REBATE.getCode(), 0);
+ shopPointStatistics.setTotalPoint(sPoint + shopCommissionPoint + subShopCommissionPoint);
+ shopPointStatistics.setShopPoint(sPoint);
+ shopPointStatistics.setShopCommissionPoint(shopCommissionPoint);
+ shopPointStatistics.setSubShopCommissionPoint(subShopCommissionPoint);
-
- boolean condition = shopPoint.getStartTime() != null && shopPoint.getEndTime() != null;
- IPage<ShopPoint> shopPointIPage = page(page, new LambdaQueryWrapper<ShopPoint>()
- .in(!CollectionUtils.isEmpty(shopPoint.getShopIds()), ShopPoint::getShopId, shopPoint.getShopIds())
- .eq(shopPoint.getType() != null, ShopPoint::getType, shopPoint.getType())
- .between(condition, ShopPoint::getCreateTime, shopPoint.getStartTime(), shopPoint.getEndTime())
- .orderByDesc(ShopPoint::getCreateTime));
- List<ShopPoint> shopPoints = shopPointIPage.getRecords();
- for (ShopPoint sp : shopPoints) {
- Shop shop = shopService.getById(sp.getShopId());
- sp.setShopName(shop.getName());
- sp.setShopLeaderName(shop.getShopManager());
- sp.setPhone(shop.getPhone());
- }
+ IPage<ShopPoint> shopPointIPage = this.baseMapper.queryShpointPage(page, shopPoint);
shopPointStatistics.setShopPointIPage(shopPointIPage);
+
+ LocalDateTime startTime = shopPoint.getStartTime();
+ LocalDateTime endTime = shopPoint.getEndTime();
+ if(null != startTime){
+ List<ShopPoint> list = this.list(new LambdaUpdateWrapper<ShopPoint>().eq(ShopPoint::getShopId, shopPoint.getShopId())
+ .last(" and create_time between '" + startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) + "' and '" + endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) + "'"));
+ List<String> date = new ArrayList<>();
+ List<Map<String, Integer>> data = new ArrayList<>();
+ String format = "MM.dd";
+ while (true){
+ if(startTime.isAfter(endTime)){
+ break;
+ }
+ date.add(startTime.format(DateTimeFormatter.ofPattern(format)));
+ Map<String, Integer> map = new HashMap<>();
+ //返佣积分
+ LocalDateTime finalStartTime = startTime;
+ List<ShopPoint> collect = list.stream().filter(s -> s.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))
+ .equals(finalStartTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))) && s.getType() == 2).collect(Collectors.toList());
+ map.put("fyjf", collect.stream().mapToInt(ShopPoint::getVariablePoint).sum());
+
+ //服务积分
+ List<ShopPoint> collect1 = list.stream().filter(s -> s.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))
+ .equals(finalStartTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))) && s.getType() == 4).collect(Collectors.toList());
+ map.put("fwjf", collect1.stream().mapToInt(ShopPoint::getVariablePoint).sum());
+ //绑定下级门店返佣积分
+ List<ShopPoint> collect2 = list.stream().filter(s -> s.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))
+ .equals(finalStartTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))) && s.getType() == 3).collect(Collectors.toList());
+ map.put("xjmdfyjf", collect2.stream().mapToInt(ShopPoint::getVariablePoint).sum());
+ data.add(map);
+ startTime = startTime.plusDays(1);
+ }
+ Map<String, Object> brokenLine = new HashMap<>();
+ brokenLine.put("date", date);
+ brokenLine.put("data", data);
+ shopPointStatistics.setBrokenLine(brokenLine);
+ }
return shopPointStatistics;
}
}
--
Gitblit v1.7.1