From ea04732899e399c88e2628de224cc13dfcbb2ce2 Mon Sep 17 00:00:00 2001
From: phpcjl <phpcjl@gmail.com>
Date: 星期三, 18 十二月 2024 19:05:55 +0800
Subject: [PATCH] 1
---
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementMapper.java | 5 +
ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopBalanceStatementMapper.xml | 51 ++++------------
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java | 11 +++
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopBalanceStatement.java | 4
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java | 23 +++----
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopBalanceStatementServiceImpl.java | 49 +++++++---------
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java | 17 +++++
7 files changed, 81 insertions(+), 79 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopBalanceStatement.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopBalanceStatement.java
index 377b1c6..96c2b65 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopBalanceStatement.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopBalanceStatement.java
@@ -39,9 +39,9 @@
@TableField("shop_id")
private Integer shopId;
- @ApiModelProperty(value = "变动类型(1=门店分佣,2=下级门店分佣,3=门店服务费)")
+ @ApiModelProperty(value = "变动类型(1=门店分佣,2=下级门店分佣,3=门店服务费, 4=提现)")
@TableField("type")
- @Excel(name = "变更类型",readConverterExp = "1=门店分佣,2=下级门店分佣,3=门店服务费")
+ @Excel(name = "变更类型",readConverterExp = "1=门店分佣,2=下级门店分佣,3=门店服务费,4=提现")
private Integer type;
@ApiModelProperty(value = "历史余额")
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java
new file mode 100644
index 0000000..24fefee
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java
@@ -0,0 +1,11 @@
+package com.ruoyi.other.api.factory;
+
+import com.ruoyi.other.api.feignClient.ShopBalanceStatementClient;
+import org.springframework.cloud.openfeign.FallbackFactory;
+
+public class ShopBalanceStatementClientFallbackFactory implements FallbackFactory<ShopBalanceStatementClient> {
+ @Override
+ public ShopBalanceStatementClient create(Throwable cause) {
+ return null;
+ }
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java
new file mode 100644
index 0000000..cdc150d
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java
@@ -0,0 +1,17 @@
+package com.ruoyi.other.api.feignClient;
+
+import com.ruoyi.common.core.constant.ServiceNameConstants;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.ShopBalanceStatement;
+import com.ruoyi.other.api.factory.ShopBalanceStatementClientFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+import java.util.List;
+
+@FeignClient(contextId = "ShopBalanceStatementClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = ShopBalanceStatementClientFallbackFactory.class)
+public interface ShopBalanceStatementClient {
+
+ @PostMapping()
+ R<List<ShopBalanceStatement>> getList(ShopBalanceStatement shopBalanceStatement);
+}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java
index f9b7729..9d2c249 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java
@@ -1,9 +1,11 @@
package com.ruoyi.other.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.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.other.api.domain.ShopBalanceStatement;
import com.ruoyi.other.service.ShopBalanceStatementService;
@@ -11,13 +13,11 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
+import java.util.List;
/**
* <p>
@@ -45,14 +45,6 @@
ShopCommissionStatisticsVO shopCommissionStatisticsVO = shopBalanceStatementService.shopCommissionStatistics(Page.of(pageNum, pageSize), shopBalanceStatement);
return R.ok(shopCommissionStatisticsVO);
}
- @GetMapping("/commissionStatistics/list")
- @ApiOperation(value = "门店余额明细", notes = "门店余额明细", tags = {"门店后台"})
- public R<ShopCommissionStatisticsVO> shopCommissionStatisticslist(@ApiParam("页码") @RequestParam Integer pageNum,
- @ApiParam("每一页数据大小") Integer pageSize,
- ShopBalanceStatement shopBalanceStatement){
- ShopCommissionStatisticsVO shopCommissionStatisticsVO = shopBalanceStatementService.shopCommissionStatistics(Page.of(pageNum, pageSize), shopBalanceStatement);
- return R.ok(shopCommissionStatisticsVO);
- }
/**
* 导出门店分佣统计
@@ -66,5 +58,12 @@
util.exportExcel(response, statementIPage.getRecords(), "用户积分统计");
}
+
+
+ @PostMapping("/getList")
+ public R<List<ShopBalanceStatement>> getList(@RequestBody ShopBalanceStatement shopBalanceStatement){
+ return R.ok();
+ }
+
}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementMapper.java
index 5bd4e28..e0b3725 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementMapper.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShopBalanceStatementMapper.java
@@ -16,8 +16,11 @@
* @since 2024-11-20
*/
public interface ShopBalanceStatementMapper extends BaseMapper<ShopBalanceStatement> {
- List<ShopBalanceStatement> findLatestChangeByType(ShopBalanceStatement shopBalanceStatement);
IPage<ShopBalanceStatement> queryShopBalanceStatementPage(@Param("page") IPage<ShopBalanceStatement> page,
@Param("bs") ShopBalanceStatement shopBalanceStatement);
+
+ List<ShopBalanceStatement> selectShopBalanceStatementList(@Param("bs") ShopBalanceStatement shopBalanceStatement);
+
+
}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopBalanceStatementServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopBalanceStatementServiceImpl.java
index 9e265b5..8a94449 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopBalanceStatementServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopBalanceStatementServiceImpl.java
@@ -1,19 +1,17 @@
package com.ruoyi.other.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.other.api.domain.Shop;
-import com.ruoyi.other.mapper.ShopBalanceStatementMapper;
import com.ruoyi.other.api.domain.ShopBalanceStatement;
+import com.ruoyi.other.api.domain.ShopPoint;
+import com.ruoyi.other.mapper.ShopBalanceStatementMapper;
import com.ruoyi.other.service.ShopBalanceStatementService;
-import com.ruoyi.other.service.ShopService;
import com.ruoyi.other.vo.ShopCommissionStatisticsVO;
import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-import javax.annotation.Resource;
+import java.math.BigDecimal;
import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -26,32 +24,29 @@
*/
@Service
public class ShopBalanceStatementServiceImpl extends ServiceImpl<ShopBalanceStatementMapper, ShopBalanceStatement> implements ShopBalanceStatementService {
- @Resource
- private ShopBalanceStatementMapper shopBalanceStatementMapper;
- @Resource
- private ShopService shopService;
@Override
public ShopCommissionStatisticsVO shopCommissionStatistics(IPage<ShopBalanceStatement> page, ShopBalanceStatement shopBalanceStatement) {
- List<ShopBalanceStatement> latestChangeByType = shopBalanceStatementMapper.findLatestChangeByType(shopBalanceStatement);
ShopCommissionStatisticsVO shopCommissionStatisticsVO = new ShopCommissionStatisticsVO();
- for (ShopBalanceStatement sp : latestChangeByType) {
- switch (sp.getType()) {
- case 1:
- shopCommissionStatisticsVO.setTotalCommission(sp.getBalance());
- break;
- case 2:
- shopCommissionStatisticsVO.setTotalSubordinateCommission(sp.getBalance());
- break;
- case 3:
- shopCommissionStatisticsVO.setTotalServiceCharge(sp.getBalance());
- break;
- }
- }
- shopCommissionStatisticsVO.setTotalAmount(shopCommissionStatisticsVO.getTotalCommission()
- .add(shopCommissionStatisticsVO.getTotalSubordinateCommission())
- .add(shopCommissionStatisticsVO.getTotalServiceCharge()));
+ List<ShopBalanceStatement> shopBalanceStatements = this.baseMapper.selectShopBalanceStatementList(shopBalanceStatement);
+
+ Map<Integer, BigDecimal> shopCommissionMap = shopBalanceStatements.stream()
+ .collect(Collectors.groupingBy(
+ ShopBalanceStatement::getType,
+ Collectors.reducing(
+ BigDecimal.ZERO,
+ ShopBalanceStatement::getVariableAmount,
+ BigDecimal::add
+ )
+ ));
+
+ BigDecimal totalCommission = shopCommissionMap.get(1);
+ BigDecimal totalSubordinateCommission = shopCommissionMap.get(2);
+ BigDecimal totalServiceCharge = shopCommissionMap.get(3);
+
+ BigDecimal totalAmount = totalCommission.add(totalSubordinateCommission).add(totalServiceCharge);
+ shopCommissionStatisticsVO.setTotalAmount(totalAmount);
IPage<ShopBalanceStatement> statementIPage = this.baseMapper.queryShopBalanceStatementPage(page, shopBalanceStatement);
shopCommissionStatisticsVO.setStatementIPage(statementIPage);
diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopBalanceStatementMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopBalanceStatementMapper.xml
index cb0fc46..0bcec73 100644
--- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopBalanceStatementMapper.xml
+++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopBalanceStatementMapper.xml
@@ -2,45 +2,15 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.other.mapper.ShopBalanceStatementMapper">
- <select id="findLatestChangeByType" resultType="com.ruoyi.other.api.domain.ShopBalanceStatement">
+ <sql id="shopBalanceStatementList">
SELECT
- id,
- shop_id,
- type,
- historical_balance,
- variable_amount,
- balance,
- create_time,
- create_user_id,
- object_id
+ tsbs.*,
+ ts.`name` shopName,
+ ts.shop_manager shopManagerName,
+ ts.phone
FROM
- (
- SELECT
- id,
- shop_id,
- type,
- historical_balance,
- variable_amount,
- balance,
- create_time,
- create_user_id,
- object_id,
- ROW_NUMBER() OVER ( PARTITION BY type, create_user_id ORDER BY create_time DESC ) AS rn
- FROM
- t_shop_balance_statement
- ) AS subquery
- WHERE
- rn = 1
- </select>
- <select id="queryShopBalanceStatementPage" resultType="com.ruoyi.other.api.domain.ShopBalanceStatement">
- SELECT
- tsbs.*,
- ts.`name` shopName,
- ts.shop_manager shopManagerName,
- ts.phone
- FROM
- t_shop_balance_statement tsbs
- INNER JOIN t_shop ts ON ts.id = tsbs.shop_id AND ts.del_flag = 0
+ t_shop_balance_statement tsbs
+ INNER JOIN t_shop ts ON ts.id = tsbs.shop_id AND ts.del_flag = 0
<where>
<if test="bs.shopName != null and bs.shopName != ''">
AND ts.`name` like concat('%', #{bs.shopName}, '%')
@@ -58,5 +28,12 @@
AND tsbs.create_time BETWEEN #{bs.startTime} AND #{bs.endTime}
</if>
</where>
+ </sql>
+
+ <select id="queryShopBalanceStatementPage" resultType="com.ruoyi.other.api.domain.ShopBalanceStatement">
+ <include refid="shopBalanceStatementList"/>
+ </select>
+ <select id="selectShopBalanceStatementList" resultType="com.ruoyi.other.api.domain.ShopBalanceStatement">
+ <include refid="shopBalanceStatementList"/>
</select>
</mapper>
\ No newline at end of file
--
Gitblit v1.7.1