Explorar el Código

菜单, 角色, 商品添加筛选

gaohp hace 11 meses
padre
commit
f25179bab6

+ 21 - 0
feifan-module-mall/feifan-module-product-biz/src/main/java/cn/newfeifan/mall/module/product/dal/mysql/spu/ProductSpuMapper.java

@@ -9,7 +9,9 @@ import cn.newfeifan.mall.module.product.controller.app.spu.vo.AppProductSpuPageR
 import cn.newfeifan.mall.module.product.dal.dataobject.spu.ProductSpuDO;
 import cn.newfeifan.mall.module.product.enums.ProductConstants;
 import cn.newfeifan.mall.module.product.enums.spu.ProductSpuStatusEnum;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.Objects;
@@ -51,6 +53,24 @@ public interface ProductSpuMapper extends BaseMapperX<ProductSpuDO> {
         return selectCount(queryWrapper);
     }
 
+
+    default Long selectCountByMerId(Long merId) {
+        LambdaQueryWrapperX<ProductSpuDO> queryWrapper = new LambdaQueryWrapperX<>();
+        // 库存小于等于警戒库存
+        queryWrapper.eqIfPresent(ProductSpuDO::getMerchantId, merId).le(ProductSpuDO::getStock, ProductConstants.ALERT_STOCK)
+                // 如果库存触发警戒库存且状态为回收站的话则不计入触发警戒库存的个数
+                .notIn(ProductSpuDO::getStatus, ProductSpuStatusEnum.RECYCLE.getStatus());
+        return selectCount(queryWrapper);
+    }
+
+    ;
+
+    default Long selectCountByMerId(Long merId, SFunction<ProductSpuDO, ?> field, Integer status) {
+        return selectCount(new LambdaQueryWrapperX<ProductSpuDO>().eqIfPresent(ProductSpuDO::getMerchantId, merId).eq(field, status));
+    }
+
+    ;
+
     /**
      * 获得商品 SPU 分页,提供给用户 App 使用
      */
@@ -137,4 +157,5 @@ public interface ProductSpuMapper extends BaseMapperX<ProductSpuDO> {
         update(null, updateWrapper);
     }
 
+
 }

+ 5 - 5
feifan-module-mall/feifan-module-product-biz/src/main/java/cn/newfeifan/mall/module/product/service/spu/ProductSpuServiceImpl.java

@@ -277,19 +277,19 @@ public class ProductSpuServiceImpl implements ProductSpuService {
         Map<Integer, Long> counts = Maps.newLinkedHashMapWithExpectedSize(5);
         // 查询销售中的商品数量
         counts.put(ProductSpuPageReqVO.FOR_SALE,
-                productSpuMapper.selectCount(ProductSpuDO::getStatus, ProductSpuStatusEnum.ENABLE.getStatus()));
+                productSpuMapper.selectCountByMerId(merId,ProductSpuDO::getStatus, ProductSpuStatusEnum.ENABLE.getStatus()));
         // 查询仓库中的商品数量
         counts.put(ProductSpuPageReqVO.IN_WAREHOUSE,
-                productSpuMapper.selectCount(ProductSpuDO::getStatus, ProductSpuStatusEnum.DISABLE.getStatus()));
+                productSpuMapper.selectCountByMerId(merId,ProductSpuDO::getStatus, ProductSpuStatusEnum.DISABLE.getStatus()));
         // 查询售空的商品数量
         counts.put(ProductSpuPageReqVO.SOLD_OUT,
-                productSpuMapper.selectCount(ProductSpuDO::getStock, 0));
+                productSpuMapper.selectCountByMerId(merId,ProductSpuDO::getStock, 0));
         // 查询触发警戒库存的商品数量
         counts.put(ProductSpuPageReqVO.ALERT_STOCK,
-                productSpuMapper.selectCount());
+                productSpuMapper.selectCountByMerId(merId));
         // 查询回收站中的商品数量
         counts.put(ProductSpuPageReqVO.RECYCLE_BIN,
-                productSpuMapper.selectCount(ProductSpuDO::getStatus, ProductSpuStatusEnum.RECYCLE.getStatus()));
+                productSpuMapper.selectCountByMerId(merId,ProductSpuDO::getStatus, ProductSpuStatusEnum.RECYCLE.getStatus()));
         return counts;
     }
 

+ 6 - 2
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/controller/admin/permission/MenuController.java

@@ -20,6 +20,7 @@ import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.util.Comparator;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import static cn.newfeifan.mall.framework.common.pojo.CommonResult.success;
 
@@ -50,7 +51,7 @@ public class MenuController {
 
     @DeleteMapping("/delete")
     @Operation(summary = "删除菜单")
-    @Parameter(name = "id", description = "角色编号", required= true, example = "1024")
+    @Parameter(name = "id", description = "角色编号", required = true, example = "1024")
     @PreAuthorize("@ss.hasPermission('system:menu:delete')")
     public CommonResult<Boolean> deleteMenu(@RequestParam("id") Long id) {
         menuService.deleteMenu(id);
@@ -69,10 +70,13 @@ public class MenuController {
     @GetMapping({"/list-all-simple", "simple-list"})
     @Operation(summary = "获取菜单精简信息列表", description = "只包含被开启的菜单,用于【角色分配菜单】功能的选项。" +
             "在多租户的场景下,会只返回租户所在套餐有的菜单")
-    public CommonResult<List<MenuSimpleRespVO>> getSimpleMenuList() {
+    public CommonResult<List<MenuSimpleRespVO>> getSimpleMenuList(@RequestParam("categoryId") Long categoryId) {
         List<MenuDO> list = menuService.getMenuListByTenant(
                 new MenuListReqVO().setStatus(CommonStatusEnum.ENABLE.getStatus()));
         list.sort(Comparator.comparing(MenuDO::getSort));
+        if (categoryId != null) {
+            list = list.stream().filter(k -> k.getCategoryId().equals(categoryId)).collect(Collectors.toList());
+        }
         return success(BeanUtils.toBean(list, MenuSimpleRespVO.class));
     }