From 8af8137fec0c0bc1f51075b624e2b5dd470bb585 Mon Sep 17 00:00:00 2001 From: huk Date: Sat, 6 Sep 2025 18:41:16 +0800 Subject: [PATCH] =?UTF-8?q?feat(goods):=20=E6=9B=B4=E6=96=B0=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除单个租户 ID 参数,改为接收租户 ID 列表 - 在 SQL 中添加对多个租户 ID 的 IN 查询 - 优化服务实现,使用 TenantHelper 忽略租户权限 - 调整日志标题,提高可读性 --- .../com/wzj/soopin/goods/mapper/ProductMapper.java | 7 ++++++- .../goods/service/impl/ProductServiceImpl.java | 14 ++++++++++---- .../main/resources/mapper/goods/ProductMapper.xml | 10 +++++++--- .../system/controller/SysPostController.java | 2 +- .../system/controller/SysTenantController.java | 8 ++++---- 5 files changed, 28 insertions(+), 13 deletions(-) diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java index eeb4eab68..bf7643108 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java @@ -1,5 +1,6 @@ package com.wzj.soopin.goods.mapper; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -9,6 +10,8 @@ import com.wzj.soopin.goods.domain.vo.ProductVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import org.dromara.common.mybatis.annotation.DataColumn; +import org.dromara.common.mybatis.annotation.DataPermission; import java.util.List; import java.util.Map; @@ -28,7 +31,9 @@ public interface ProductMapper extends BaseMapper { */ List selectByEntity(Product product); - IPage getlist(@Param("page") Page page, @Param("query") ProductBo query,String tenantId); + + @InterceptorIgnore(tenantLine = "true") + IPage getlist(@Param("page") Page page, @Param("query") ProductBo query, @Param("tenantIds") List tenantIds); diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductServiceImpl.java index f46a276e7..e74bcc76a 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductServiceImpl.java @@ -3,6 +3,7 @@ package com.wzj.soopin.goods.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.wzj.soopin.goods.domain.bo.ProductBo; @@ -23,6 +24,7 @@ import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.tenant.helper.TenantHelper; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -44,8 +46,10 @@ public class ProductServiceImpl extends ServiceImpl impl @Override public IPage getList(ProductBo query, Page page) { - String tenantId = LoginHelper.getTenantId(); - IPage getlist = productMapper.getlist(page, query, tenantId); + // todo 获取当前登录人被分配的,可管理的商铺租户id + List tenantIds = TenantHelper.ignore(() -> productMapper.selectList(Wrappers.lambdaQuery(Product.class)).stream().map(Product::getTenantId).toList()); + + IPage getlist = TenantHelper.ignore(() -> productMapper.getlist(page, query, tenantIds)); return getlist; } @@ -55,8 +59,10 @@ public class ProductServiceImpl extends ServiceImpl impl //推荐商品要根据算法获取 - String tenantId = LoginHelper.getTenantId(); - return productMapper.getlist(page,new ProductBo(),tenantId); + // todo 获取当前登录人被分配的,可管理的商铺租户id + List tenantIds = new ArrayList<>(); + + return productMapper.getlist(page,new ProductBo(), tenantIds); } public Product audit(Long id, Integer authFlag, String reasons) { diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductMapper.xml index d0c3ca936..2b51d296b 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductMapper.xml +++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductMapper.xml @@ -78,9 +78,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" LEFT JOIN pms_product_category pc ON p.category_id = pc.id LEFT JOIN pms_sku s ON p.id = s.product_id WHERE 1=1 - - - AND p.name LIKE CONCAT('%', #{query.nameLike}, '%') @@ -99,6 +96,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND p.category_id = #{query.categoryId} + + AND p.tenant_id IN + + #{tenantId} + + + ORDER BY p.sales DESC, p.price ASC, diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysPostController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysPostController.java index cd5fb3ecc..da17fc0f0 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysPostController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysPostController.java @@ -116,7 +116,7 @@ public class SysPostController extends BaseController { * @param postIds 岗位ID串 * @param deptId 部门id */ - @SaCheckPermission("system:post:query") +// @SaCheckPermission("system:post:query") @GetMapping("/optionselect") public R> optionselect(@RequestParam(required = false) Long[] postIds, @RequestParam(required = false) Long deptId) { List list = new ArrayList<>(); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysTenantController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysTenantController.java index 099072e9d..26efb8627 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysTenantController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysTenantController.java @@ -94,7 +94,7 @@ public class SysTenantController extends BaseController { */ // @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) @SaCheckPermission("system:tenant:add") - @Log(title = "租户管理", businessType = BusinessType.INSERT) + @Log(title = "新增租户", businessType = BusinessType.INSERT) @Lock4j @RepeatSubmit() @PostMapping("/add") @@ -110,7 +110,7 @@ public class SysTenantController extends BaseController { */ // @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) @SaCheckPermission("system:tenant:edit") - @Log(title = "租户管理", businessType = BusinessType.UPDATE) + @Log(title = "修改租户", businessType = BusinessType.UPDATE) @RepeatSubmit() @PostMapping("/update") public R edit(@Validated(EditGroup.class) @RequestBody SysTenantExtendBo bo) { @@ -138,7 +138,7 @@ public class SysTenantController extends BaseController { * 提交签约 */ @SaCheckPermission("system:tenant:submitSign") - @Log(title = "租户管理", businessType = BusinessType.UPDATE) + @Log(title = "提交签约", businessType = BusinessType.UPDATE) @PostMapping("/submitSign/{tenantId}") public R submitSign(@PathVariable String tenantId) { tenantService.checkTenantAllowed(tenantId); @@ -149,7 +149,7 @@ public class SysTenantController extends BaseController { * 审核提交的签约 */ @SaCheckPermission("system:tenant:reviewSubmitted") - @Log(title = "租户管理", businessType = BusinessType.UPDATE) + @Log(title = "审核提交的签约", businessType = BusinessType.UPDATE) @PostMapping("/reviewSubmitted") public R reviewSubmitted(@RequestBody SysTenantReviewBo bo) { tenantService.checkTenantAllowed(bo.getTenantId());