From 3a973e9fe399884994fbc139bdc1e75535e6c9df Mon Sep 17 00:00:00 2001 From: huk Date: Thu, 25 Sep 2025 18:15:28 +0800 Subject: [PATCH] =?UTF-8?q?feat(transaction):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=9C=AA=E5=88=9B=E5=BB=BA=E5=88=86=E8=B4=A6?= =?UTF-8?q?=E8=A7=84=E5=88=99=E7=9A=84=E5=95=86=E5=93=81=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DivideRuleController.java | 10 ++++++++++ .../mapper/DivideRuleDetailMapper.java | 2 ++ .../transaction/service/IDivideRuleService.java | 7 +++++++ .../service/impl/DivideRuleServiceImpl.java | 16 ++++++++++++++++ 4 files changed, 35 insertions(+) diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/controller/DivideRuleController.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/controller/DivideRuleController.java index c648c4204..158af842e 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/controller/DivideRuleController.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/controller/DivideRuleController.java @@ -3,6 +3,7 @@ package com.wzj.soopin.transaction.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.wzj.soopin.goods.domain.vo.ProductCategoryVO; import com.wzj.soopin.transaction.convert.DivideRuleConvert; import com.wzj.soopin.transaction.domain.bo.DivideRuleBO; import com.wzj.soopin.transaction.domain.po.DivideRule; @@ -16,6 +17,8 @@ import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * 用户封禁 */ @@ -75,4 +78,11 @@ public class DivideRuleController { public R remove(@PathVariable Long id) { return R.ok(service.removeById(id)); } + + + @Operation(summary = "获取还未创建规则的商品分类") + @GetMapping("/productCategoryWithNoRule") + public R> productCategoryWithNoRule() { + return R.ok(service.productCategoryWithNoRule()); + } } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/DivideRuleDetailMapper.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/DivideRuleDetailMapper.java index 56fd58f2a..9d8ba79d3 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/DivideRuleDetailMapper.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/mapper/DivideRuleDetailMapper.java @@ -2,6 +2,7 @@ package com.wzj.soopin.transaction.mapper; import com.wzj.soopin.transaction.domain.po.DivideRuleDetail; import com.wzj.soopin.transaction.domain.vo.DivideRuleDetailVO; +import org.apache.ibatis.annotations.Mapper; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; /** @@ -9,6 +10,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; * * @author zcc */ +@Mapper public interface DivideRuleDetailMapper extends BaseMapperPlus { } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IDivideRuleService.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IDivideRuleService.java index 9d7082ff6..2f74ef352 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IDivideRuleService.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/IDivideRuleService.java @@ -1,6 +1,7 @@ package com.wzj.soopin.transaction.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.wzj.soopin.goods.domain.vo.ProductCategoryVO; import com.wzj.soopin.transaction.domain.bo.DivideRuleBO; import com.wzj.soopin.transaction.domain.po.DivideRule; import com.wzj.soopin.transaction.domain.po.DivideRuleDetail; @@ -22,5 +23,11 @@ public interface IDivideRuleService extends IService { void checkRule(List details); + /** + * 查询还未创建分账规则的商品分类 + * @return + */ + List productCategoryWithNoRule(); + } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/DivideRuleServiceImpl.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/DivideRuleServiceImpl.java index 6d78fe477..b8fe058b4 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/DivideRuleServiceImpl.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/service/impl/DivideRuleServiceImpl.java @@ -1,9 +1,13 @@ package com.wzj.soopin.transaction.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.wzj.soopin.goods.domain.entity.ProductCategory; +import com.wzj.soopin.goods.domain.vo.ProductCategoryVO; +import com.wzj.soopin.goods.service.ProductCategoryService; import com.wzj.soopin.transaction.convert.DivideRuleConvert; import com.wzj.soopin.transaction.convert.DivideRuleDetailConvert; import com.wzj.soopin.transaction.domain.bo.DivideRuleBO; @@ -43,6 +47,8 @@ public class DivideRuleServiceImpl extends ServiceImpl new ServiceException("金额分账比例之和未等于100%")); Assert.isTrue(totalFeeRatio == 100L, () -> new ServiceException("手续费分账比例之和未等于100%")); } + + @Override + public List productCategoryWithNoRule() { + List existRule = this.list(); + List allProductCategories = productCategoryService.list(); + List existTypes = existRule.stream().map(item -> item.getType()).toList(); + return allProductCategories.stream().filter(item -> item.getParentId() != 0) + .filter(item -> !CollUtil.contains(existTypes, item.getId())) + .map(item -> BeanUtil.copyProperties(item, ProductCategoryVO.class)).toList(); + } }