From dd932151391dce7051eb86f8e9a84a663182ce01 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 3 Jun 2023 22:59:34 +0800 Subject: [PATCH] =?UTF-8?q?mall=20+=20trade=EF=BC=9Areview=20=E5=95=86?= =?UTF-8?q?=E5=93=81=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/enums/ProductConstants.java | 11 +----- .../app/spu/AppProductSpuController.java | 3 +- .../convert/spu/ProductSpuConvert.java | 6 ---- .../dal/mysql/sku/ProductSkuMapper.java | 11 +----- .../category/ProductCategoryServiceImpl.java | 5 +-- .../property/ProductPropertyServiceImpl.java | 3 +- .../ProductPropertyValueServiceImpl.java | 2 ++ .../service/sku/ProductSkuService.java | 9 ----- .../service/sku/ProductSkuServiceImpl.java | 34 ++++++++----------- .../service/spu/ProductSpuServiceImpl.java | 15 ++++---- .../DeliveryExpressTemplateController.java | 2 +- .../server/controller/DefaultController.java | 14 ++++---- 12 files changed, 40 insertions(+), 75 deletions(-) diff --git a/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/ProductConstants.java b/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/ProductConstants.java index 117285071..f3570c589 100644 --- a/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/ProductConstants.java +++ b/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/enums/ProductConstants.java @@ -1,7 +1,7 @@ package cn.iocoder.yudao.module.product.enums; /** - * Product 常量 TODO 把使用到的常量收拢到一块定义替换魔法值 + * Product 常量 * * @author HUIHUI */ @@ -12,13 +12,4 @@ public interface ProductConstants { */ int ALERT_STOCK = 10; - /** - * 默认商品销量 TODO 默认商品销量为零 - */ - Integer SALES_COUNT = 0; - /** - * 默认善品浏览量 TODO 默认浏览量为零 - */ - Integer BROWSE_COUNT = 0; - } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/AppProductSpuController.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/AppProductSpuController.java index 2a0f4cd68..0e173f902 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/AppProductSpuController.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/AppProductSpuController.java @@ -1,6 +1,5 @@ package cn.iocoder.yudao.module.product.controller.app.spu; -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuDetailRespVO; @@ -67,7 +66,7 @@ public class AppProductSpuController { } // 查询商品 SKU - List skus = productSkuService.getSkuListBySpuIdAndStatus(spu.getId()); + List skus = productSkuService.getSkuListBySpuId(spu.getId()); // 查询商品属性 List propertyValues = productPropertyValueService .getPropertyValueDetailList(ProductSkuConvert.INSTANCE.convertPropertyValueIds(skus)); diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/spu/ProductSpuConvert.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/spu/ProductSpuConvert.java index 62c47bfb6..58d69d077 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/spu/ProductSpuConvert.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/spu/ProductSpuConvert.java @@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO; -import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueDetailRespVO; import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuRespVO; import cn.iocoder.yudao.module.product.controller.admin.spu.vo.*; import cn.iocoder.yudao.module.product.controller.app.property.vo.value.AppProductPropertyValueDetailRespVO; @@ -23,9 +22,6 @@ import org.mapstruct.factory.Mappers; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Set; -import java.util.function.Function; -import java.util.stream.Collectors; import static cn.hutool.core.util.ObjectUtil.defaultIfNull; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; @@ -65,8 +61,6 @@ public interface ProductSpuConvert { return StrUtil.toString(list); } - // TODO @puhui999:部分属性,可以通过 mapstruct 的 @Mapping(source = , target = , ) 映射转换,可以查下文档 fix:哈哈 这样确实丝滑哈 - @Mapping(source = "sliderPicUrls", target = "sliderPicUrls", qualifiedByName = "convertListToString") @Mapping(source = "giveCouponTemplateIds", target = "giveCouponTemplateIds", qualifiedByName = "convertListToString") @Mapping(source = "activityOrders", target = "activityOrders", qualifiedByName = "convertListToString") diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/sku/ProductSkuMapper.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/sku/ProductSkuMapper.java index da05951ab..0b6ef5ed0 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/sku/ProductSkuMapper.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/sku/ProductSkuMapper.java @@ -14,11 +14,6 @@ import org.apache.ibatis.annotations.Mapper; import java.util.Collection; import java.util.List; -/** - * 商品 SKU Mapper - * - * @author 芋道源码 - */ @Mapper public interface ProductSkuMapper extends BaseMapperX { @@ -26,11 +21,6 @@ public interface ProductSkuMapper extends BaseMapperX { return selectList(ProductSkuDO::getSpuId, spuId); } - default List selectListBySpuIdAndStatus(Long spuId) { - return selectList(new LambdaQueryWrapperX() - .eq(ProductSkuDO::getSpuId, spuId)); - } - default List selectListBySpuId(Collection spuIds) { return selectList(ProductSkuDO::getSpuId, spuIds); } @@ -73,6 +63,7 @@ public interface ProductSkuMapper extends BaseMapperX { return selectList(new QueryWrapper().apply("stock <= warn_stock")); } + // TODO @puhui999:貌似 IN 不出来数据哈。直接全部查询出来,处理就好列; /** * 更新 sku 属性值时使用的分页查询 * diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/category/ProductCategoryServiceImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/category/ProductCategoryServiceImpl.java index 29133219f..ab4f127ba 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/category/ProductCategoryServiceImpl.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/category/ProductCategoryServiceImpl.java @@ -96,6 +96,7 @@ public class ProductCategoryServiceImpl implements ProductCategoryService { } } + // TODO @puhui999:不用抽方法,因为不太会复用这个方法哈。 private void validateProductCategoryIsHaveBindSpu(Long id) { Long count = productSpuService.getSpuCountByCategoryId(id); if (0 != count) { @@ -126,9 +127,9 @@ public class ProductCategoryServiceImpl implements ProductCategoryService { } int level = 1; // for 的原因,是因为避免脏数据,导致可能的死循环。一般不会超过 100 层哈 - for (int i = 0; i < 100; i++) { - ProductCategoryDO category = productCategoryMapper.selectById(id); + for (int i = 0; i < Byte.MAX_VALUE; i++) { // 如果没有父节点,break 结束 + ProductCategoryDO category = productCategoryMapper.selectById(id); if (category == null || Objects.equals(category.getParentId(), PARENT_ID_NULL)) { break; diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyServiceImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyServiceImpl.java index 6c3ec8938..518b1065c 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyServiceImpl.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyServiceImpl.java @@ -1,6 +1,5 @@ package cn.iocoder.yudao.module.product.service.property; -import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyCreateReqVO; @@ -72,7 +71,7 @@ public class ProductPropertyServiceImpl implements ProductPropertyService { // 更新 ProductPropertyDO updateObj = ProductPropertyConvert.INSTANCE.convert(updateReqVO); productPropertyMapper.updateById(updateObj); - // TODO 芋艿:更新时,需要看看 sku 表 fix + // TODO @puhui:是不是只要传递变量,不传递整个 updateObj 变量哈 productSkuService.updateSkuProperty(updateObj); } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyValueServiceImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyValueServiceImpl.java index f76f8f493..2666f13f4 100644 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyValueServiceImpl.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyValueServiceImpl.java @@ -73,7 +73,9 @@ public class ProductPropertyValueServiceImpl implements ProductPropertyValueServ // 更新 ProductPropertyValueDO updateObj = ProductPropertyValueConvert.INSTANCE.convert(updateReqVO); productPropertyValueMapper.updateById(updateObj); + // TODO 芋艿:更新时,需要看看 sku 表 fix + // TODO @puhui:是不是只要传递变量,不传递整个 updateObj 变量哈 productSkuService.updateSkuPropertyValue(updateObj); } diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuService.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuService.java index a46c4fd30..f66b9d829 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuService.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuService.java @@ -5,7 +5,6 @@ import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuCreateO import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO; import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyValueDO; import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; -import org.springframework.lang.Nullable; import java.util.Collection; import java.util.List; @@ -87,14 +86,6 @@ public interface ProductSkuService { */ List getSkuListBySpuId(Long spuId); - /** - * 基于 SPU 编号和状态,获得商品 SKU 集合 - * - * @param spuId SPU 编号 - * @return 商品 SKU 集合 - */ - List getSkuListBySpuIdAndStatus(Long spuId); - /** * 获得 spu 对应的 SKU 集合 * diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuServiceImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuServiceImpl.java index ee8266467..8e0a1c9a1 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuServiceImpl.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/sku/ProductSkuServiceImpl.java @@ -140,11 +140,6 @@ public class ProductSkuServiceImpl implements ProductSkuService { return productSkuMapper.selectListBySpuId(spuId); } - @Override - public List getSkuListBySpuIdAndStatus(Long spuId) { - return productSkuMapper.selectListBySpuIdAndStatus(spuId); - } - @Override public List getSkuListBySpuId(List spuIds) { return productSkuMapper.selectListBySpuId(spuIds); @@ -163,9 +158,10 @@ public class ProductSkuServiceImpl implements ProductSkuService { @Override public int updateSkuProperty(ProductPropertyDO updateObj) { // TODO 看了一下数据库有关于 json 字符串的处理,怕数据库出现兼容问题这里还是用数据库常规操作来实现 + // TODO @puhui999:直接全部查询处理,批量处理就好列;一般项目的商品不会超过几十万的哈。 Long count = productSkuMapper.selectCountByPropertyNotNull(); int currentPage = 1; - List skuDOs = new ArrayList<>(); + List updateSkus = new ArrayList<>(); if (count == 0) { return 0; } @@ -178,25 +174,25 @@ public class ProductSkuServiceImpl implements ProductSkuService { if (CollUtil.isEmpty(records)) { break; } - records.stream() - .filter(sku -> sku.getProperties() != null) + records.stream().filter(sku -> sku.getProperties() != null) .forEach(sku -> sku.getProperties().forEach(property -> { if (property.getPropertyId().equals(updateObj.getId())) { property.setPropertyName(updateObj.getName()); - skuDOs.add(sku); + updateSkus.add(sku); } })); } - if (CollUtil.isEmpty(skuDOs)) { + if (CollUtil.isEmpty(updateSkus)) { return 0; } + // TODO @puhui999:貌似 updateBatch 自己会拆分批次,这里不用再拆分了 // 每批处理的大小 int batchSize = 1000; - for (int i = 0; i < skuDOs.size(); i += batchSize) { - List batchSkuDOs = skuDOs.subList(i, Math.min(i + batchSize, skuDOs.size())); + for (int i = 0; i < updateSkus.size(); i += batchSize) { + List batchSkuDOs = updateSkus.subList(i, Math.min(i + batchSize, updateSkus.size())); productSkuMapper.updateBatch(batchSkuDOs, batchSize); } - return skuDOs.size(); + return updateSkus.size(); } @Override @@ -204,7 +200,7 @@ public class ProductSkuServiceImpl implements ProductSkuService { // TODO 看了一下数据库有关于 json 字符串的处理,怕数据库出现兼容问题这里还是用数据库常规操作来实现 Long count = productSkuMapper.selectCountByPropertyNotNull(); int currentPage = 1; - List skuDOs = new ArrayList<>(); + List updateSkus = new ArrayList<>(); if (count == 0) { return 0; } @@ -222,20 +218,20 @@ public class ProductSkuServiceImpl implements ProductSkuService { .forEach(sku -> sku.getProperties().forEach(property -> { if (property.getValueId().equals(updateObj.getId())) { property.setValueName(updateObj.getName()); - skuDOs.add(sku); + updateSkus.add(sku); } })); } - if (CollUtil.isEmpty(skuDOs)) { + if (CollUtil.isEmpty(updateSkus)) { return 0; } // 每批处理的大小 int batchSize = 1000; - for (int i = 0; i < skuDOs.size(); i += batchSize) { - List batchSkuDOs = skuDOs.subList(i, Math.min(i + batchSize, skuDOs.size())); + for (int i = 0; i < updateSkus.size(); i += batchSize) { + List batchSkuDOs = updateSkus.subList(i, Math.min(i + batchSize, updateSkus.size())); productSkuMapper.updateBatch(batchSkuDOs, batchSize); } - return skuDOs.size(); + return updateSkus.size(); } @Override diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImpl.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImpl.java index ed40a281b..78e9ba62c 100755 --- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImpl.java +++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/spu/ProductSpuServiceImpl.java @@ -13,7 +13,6 @@ import cn.iocoder.yudao.module.product.dal.dataobject.category.ProductCategoryDO import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO; import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO; import cn.iocoder.yudao.module.product.dal.mysql.spu.ProductSpuMapper; -import cn.iocoder.yudao.module.product.enums.ProductConstants; import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum; import cn.iocoder.yudao.module.product.service.brand.ProductBrandService; import cn.iocoder.yudao.module.product.service.category.ProductCategoryService; @@ -27,6 +26,7 @@ import javax.annotation.Resource; import java.util.*; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.getMinValue; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.getSumValue; import static cn.iocoder.yudao.module.product.dal.dataobject.category.ProductCategoryDO.CATEGORY_LEVEL; import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.*; @@ -101,13 +101,13 @@ public class ProductSpuServiceImpl implements ProductSpuService { */ private void initSpuFromSkus(ProductSpuDO spu, List skus) { // sku 单价最低的商品的价格 - spu.setPrice(CollectionUtils.getMinValue(skus, ProductSkuCreateOrUpdateReqVO::getPrice)); + spu.setPrice(getMinValue(skus, ProductSkuCreateOrUpdateReqVO::getPrice)); // sku 单价最低的商品的市场价格 - spu.setMarketPrice(CollectionUtils.getMinValue(skus, ProductSkuCreateOrUpdateReqVO::getMarketPrice)); + spu.setMarketPrice(getMinValue(skus, ProductSkuCreateOrUpdateReqVO::getMarketPrice)); // sku单价最低的商品的成本价格 - spu.setCostPrice(CollectionUtils.getMinValue(skus, ProductSkuCreateOrUpdateReqVO::getCostPrice)); + spu.setCostPrice(getMinValue(skus, ProductSkuCreateOrUpdateReqVO::getCostPrice)); // sku单价最低的商品的条形码 - spu.setBarCode(CollectionUtils.getMinValue(skus, ProductSkuCreateOrUpdateReqVO::getBarCode)); + spu.setBarCode(getMinValue(skus, ProductSkuCreateOrUpdateReqVO::getBarCode)); // skus 库存总数 spu.setStock(getSumValue(skus, ProductSkuCreateOrUpdateReqVO::getStock, Integer::sum)); // 若是 spu 已有状态则不处理 @@ -115,9 +115,9 @@ public class ProductSpuServiceImpl implements ProductSpuService { // 默认状态为上架 spu.setStatus(ProductSpuStatusEnum.ENABLE.getStatus()); // 默认商品销量 - spu.setSalesCount(ProductConstants.SALES_COUNT); + spu.setSalesCount(0); // 默认商品浏览量 - spu.setBrowseCount(ProductConstants.BROWSE_COUNT); + spu.setBrowseCount(0); } } @@ -159,6 +159,7 @@ public class ProductSpuServiceImpl implements ProductSpuService { * * @param id id */ + // TODO puhui999:感觉不用独立出来一个方法,直接在 deleteSpu 方法中校验即可 private void validateSpuStatus(Long id) { ProductSpuDO spuDO = productSpuMapper.selectById(id); // 判断 SPU 状态是否为回收站 diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/DeliveryExpressTemplateController.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/DeliveryExpressTemplateController.java index 642fcb912..572c04e99 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/DeliveryExpressTemplateController.java +++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/DeliveryExpressTemplateController.java @@ -1,6 +1,5 @@ package cn.iocoder.yudao.module.trade.controller.admin.delivery; -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.expresstemplate.*; @@ -71,6 +70,7 @@ public class DeliveryExpressTemplateController { return success(DeliveryExpressTemplateConvert.INSTANCE.convertList(list)); } + // TODO @puhui999:DeliveryExpressTemplateRespVO 搞个 simple 的哈 @GetMapping("/list-all-simple") @Operation(summary = "获取快递模版精简信息列表", description = "主要用于前端的下拉选项") public CommonResult> getSimpleTemplateList() { diff --git a/yudao-server/src/main/java/cn/iocoder/yudao/server/controller/DefaultController.java b/yudao-server/src/main/java/cn/iocoder/yudao/server/controller/DefaultController.java index 3a7cd3bfa..1fe56678b 100644 --- a/yudao-server/src/main/java/cn/iocoder/yudao/server/controller/DefaultController.java +++ b/yudao-server/src/main/java/cn/iocoder/yudao/server/controller/DefaultController.java @@ -27,13 +27,13 @@ public class DefaultController { "[微信公众号 yudao-module-mp - 已禁用][参考 https://doc.iocoder.cn/mp/build/ 开启]"); } - @RequestMapping(value = {"/admin-api/product/**", // 商品中心 - "/admin-api/trade/**", // 交易中心 - "/admin-api/promotion/**"}) // 营销中心 - public CommonResult mall404() { - return CommonResult.error(NOT_IMPLEMENTED.getCode(), - "[商城系统 yudao-module-mall - 已禁用][参考 https://doc.iocoder.cn/mall/build/ 开启]"); - } +// @RequestMapping(value = {"/admin-api/product/**", // 商品中心 +// "/admin-api/trade/**", // 交易中心 +// "/admin-api/promotion/**"}) // 营销中心 +// public CommonResult mall404() { +// return CommonResult.error(NOT_IMPLEMENTED.getCode(), +// "[商城系统 yudao-module-mall - 已禁用][参考 https://doc.iocoder.cn/mall/build/ 开启]"); +// } @RequestMapping(value = {"/admin-api/report/**"}) public CommonResult report404() {