From f2b7283fa5a37e5f2d6d57feffb0f7441b73d82b Mon Sep 17 00:00:00 2001 From: liyj <1617420630@qq.com> Date: Fri, 24 Oct 2025 17:37:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E6=98=A0=E5=B0=84=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=AF=BC=E5=87=BA=E6=9C=AA=E5=88=86=E9=85=8D=E5=95=86?= =?UTF-8?q?=E5=93=81=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/modules/sync/ProductMapping.java | 9 ++-- .../controller/ProductMappingController.java | 15 +++++-- .../sync/exelModel/ProductMappingExcel.java | 6 +-- .../sync/service/ProductMappingService.java | 5 ++- .../impl/ProductMappingServiceImpl.java | 45 +++++++++++++++++-- 5 files changed, 63 insertions(+), 17 deletions(-) diff --git a/mall-common/src/main/java/com/suisung/mall/common/modules/sync/ProductMapping.java b/mall-common/src/main/java/com/suisung/mall/common/modules/sync/ProductMapping.java index d07dbd8b..822551c0 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/modules/sync/ProductMapping.java +++ b/mall-common/src/main/java/com/suisung/mall/common/modules/sync/ProductMapping.java @@ -83,13 +83,12 @@ public class ProductMapping implements Serializable { /** - * 生成唯一键:productName + storeId + specValue + specUnit + * 生成唯一键:productName + productNumber + storeId */ public String getUniqueKey() { - return String.format("%s|%d|%s|%s", + return String.format("%s|%s|%d", productName, - storeId, - specValue.stripTrailingZeros().toPlainString(), - specUnit); + productNumber, + storeId); } } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sync/controller/ProductMappingController.java b/mall-shop/src/main/java/com/suisung/mall/shop/sync/controller/ProductMappingController.java index f979ef7c..a443af16 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sync/controller/ProductMappingController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sync/controller/ProductMappingController.java @@ -207,8 +207,9 @@ public class ProductMappingController extends BaseControllerImpl { */ @ApiOperation(value = "查找为同步的商品数据", notes = "删除查找为同步的商品数据") @RequestMapping(value = "/getSyncBaseMapingProducts", method = RequestMethod.GET) - public CommonResult getSyncBaseMapingProducts(Integer storeId) { - return productMappingService.getSyncProductUnchecked(storeId); + public CommonResult getSyncBaseMapingProducts(@RequestParam Integer storeId,@RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + return productMappingService.getSyncProductUnchecked(storeId,pageNum,pageSize); } /** @@ -294,5 +295,13 @@ public class ProductMappingController extends BaseControllerImpl { return CommonResult.success(syncThirdDataService.importLibProductImg(null)); } - + /** + * 导出未分配商品数据 + * @param storeId + * @param response + */ + @PostMapping("/exportUncheckShopData") + public void exportUncheckShopData(@RequestParam(value = "storeId",required = false) Integer storeId, HttpServletResponse response) { + productMappingService.exportUncheckShopData(storeId,response); + } } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sync/exelModel/ProductMappingExcel.java b/mall-shop/src/main/java/com/suisung/mall/shop/sync/exelModel/ProductMappingExcel.java index 452ddb1c..39a0e8a4 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sync/exelModel/ProductMappingExcel.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sync/exelModel/ProductMappingExcel.java @@ -64,11 +64,9 @@ public class ProductMappingExcel { * 生成唯一键:productName + storeId + specValue + specUnit */ public String getUniqueKey() { - return String.format("%s|%s|%d|%s|%s", + return String.format("%s|%s|%d", productName, productNumber, - storeId, - specValue.stripTrailingZeros().toPlainString(), - specUnit); + storeId); } } \ No newline at end of file diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/ProductMappingService.java b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/ProductMappingService.java index 00930ec1..89cdc998 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/ProductMappingService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/ProductMappingService.java @@ -29,7 +29,7 @@ public interface ProductMappingService extends IBaseService { CommonResult syncAllProductMapping(Integer storeId,String isPublish); - CommonResult getSyncProductUnchecked(Integer storeId); + CommonResult getSyncProductUnchecked(Integer storeId,Integer pageNum,Integer pageSize); // 下载导入模板 void downloadTemplate(HttpServletResponse response); @@ -44,4 +44,7 @@ public interface ProductMappingService extends IBaseService { // 保存数据 CommonResult saveProductMapping(ProductMapping data); + // 导出未分配商品数据 + void exportUncheckShopData(Integer storeId, HttpServletResponse response); + } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java index 6187d5c3..9aaf0c1c 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/ProductMappingServiceImpl.java @@ -532,7 +532,7 @@ public class ProductMappingServiceImpl extends BaseServiceImpl queryWrapper= new QueryWrapper<>(); queryWrapper.eq("product_state_id", StateCode.PRODUCT_STATE_OFF_THE_SHELF_UNCHECK); queryWrapper.eq("store_id", storeId); - return CommonResult.success(shopProductBaseService.list(queryWrapper)); + return CommonResult.success(shopProductBaseService.lists(queryWrapper,pageNum,pageSize)); } @Override @@ -612,7 +612,7 @@ public class ProductMappingServiceImpl extends BaseServiceImpl uniqueKeys) { StringBuilder sb = new StringBuilder(); - sb.append("CONCAT_WS('|', product_name, store_id, TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(spec_value AS CHAR))), spec_unit) IN ("); + sb.append("CONCAT_WS('|', product_name,product_number, store_id) IN ("); for (int i = 0; i < uniqueKeys.size(); i++) { if (i > 0) sb.append(","); @@ -809,6 +809,43 @@ public class ProductMappingServiceImpl extends BaseServiceImpl queryWrapper= new QueryWrapper<>(); + queryWrapper.eq("product_state_id", StateCode.PRODUCT_STATE_OFF_THE_SHELF_UNCHECK); + queryWrapper.eq("store_id", storeId); + List shopProductBaseList= shopProductBaseService.lists(queryWrapper,1,5000).getRecords(); + List excelData=new ArrayList<>(); + shopProductBaseList.forEach(shopBase->{ + ProductMappingExcel productMappingExcel=new ProductMappingExcel(); + productMappingExcel.setProductName(shopBase.getProduct_name()); + productMappingExcel.setStoreId(shopBase.getStore_id()); + productMappingExcel.setProductNumber(shopBase.getProduct_number()); + productMappingExcel.setStoreName(shopBase.getStore_name()); + productMappingExcel.setSortOrder(10); + productMappingExcel.setSpecUnit("g"); + excelData.add(productMappingExcel); + }); + + // 导出Excel + EasyExcel.write(response.getOutputStream(), ProductMappingExcel.class) + .sheet("需要映射的商品数据") + .registerWriteHandler(new ExportStyleHandler()) + .doWrite(excelData); + } catch (IOException e) { + log.error("导出数据失败", e); + throw new RuntimeException("导出数据失败"); + } + } + // 错误信息类 @Data