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