From 8de5f463f88fc98dd1a1f98ece1421f588ed1638 Mon Sep 17 00:00:00 2001 From: liyj <1617420630@qq.com> Date: Sat, 19 Jul 2025 14:19:25 +0800 Subject: [PATCH] =?UTF-8?q?es=E5=AF=BC=E5=85=A5=E6=8E=A5=E5=8F=A3=E6=96=B0?= =?UTF-8?q?=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/feignService/SearchService.java | 5 +++ .../src/main/resources/dic/userdict.txt | 36 +++++++++++++++++++ .../controller/EsProductImageController.java | 6 ++-- .../mall/search/dao/EsProductImageDao.java | 6 ++-- .../search/service/EsProductImageService.java | 2 +- .../impl/EsProductImageServiceImpl.java | 14 +++++--- .../{all.json => index_product_image.json} | 2 +- .../controller/ProductMappingController.java | 7 ++++ .../sync/service/SyncThirdDataService.java | 2 ++ .../impl/SyncThirdDataServiceImpl.java | 16 ++++++--- sql/shop/dev/20250719_dml.sql | 1 + 11 files changed, 80 insertions(+), 17 deletions(-) create mode 100644 mall-common/src/main/resources/dic/userdict.txt rename mall-search/src/main/resources/elasticsearch/{all.json => index_product_image.json} (98%) create mode 100644 sql/shop/dev/20250719_dml.sql diff --git a/mall-common/src/main/java/com/suisung/mall/common/feignService/SearchService.java b/mall-common/src/main/java/com/suisung/mall/common/feignService/SearchService.java index a3f7bc18..26aa9e3c 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/feignService/SearchService.java +++ b/mall-common/src/main/java/com/suisung/mall/common/feignService/SearchService.java @@ -42,4 +42,9 @@ public interface SearchService { @PostMapping("/esProductImage/searchProductImageList") Map> searchProductImageList(@RequestBody List esProductImages,@RequestParam("esSearchType") String esSearchType); + + + @PostMapping("/esProductImage/importAllProductImage") + CommonResult importAllProductImage(@RequestParam(value = "updateTime",required = false) String updateTime); + } diff --git a/mall-common/src/main/resources/dic/userdict.txt b/mall-common/src/main/resources/dic/userdict.txt new file mode 100644 index 00000000..b646fba3 --- /dev/null +++ b/mall-common/src/main/resources/dic/userdict.txt @@ -0,0 +1,36 @@ +云计算 10 n +区块链 10 n +热门技术 8 n +牛肉 100 n +三鲜 800 n +饺子 1000 n +全棉 1000 n +被套 1000 n +糯黑米酒 1000 n +雪绒毯 1000 n +女凉鞋 1000 n +男凉鞋 1000 n +飞机玩具 1000 n +雅安利 1000 n +500L*10 1000 n +RSCW-1949 500 n +男凉拖 500 n +NIKE 500 n +PAMU 500 n +火鸡面 500 n +牛肉面 500 n +虫草花 500 n +日本豆腐 500 n +老婆饼 500 n +紫菜卷 500 n +肉松卷 500 n +热狗卷 500 n +紫薯卷 500 n +椰香酥卷 500 n +卷纸 500 n +妙芙 500 n +猪肉包 500 n +叉烧包 500 n +香菇青菜包 500 n +老鸭汤炖料 500 n +六指鼠 500 n \ No newline at end of file diff --git a/mall-search/src/main/java/com/suisung/mall/search/controller/EsProductImageController.java b/mall-search/src/main/java/com/suisung/mall/search/controller/EsProductImageController.java index 61fc3d58..dcc70993 100644 --- a/mall-search/src/main/java/com/suisung/mall/search/controller/EsProductImageController.java +++ b/mall-search/src/main/java/com/suisung/mall/search/controller/EsProductImageController.java @@ -22,9 +22,9 @@ public class EsProductImageController { private EsProductImageService esProductImageService; @ApiOperation(value = "导入所有数据库中商品到ES") - @RequestMapping(value = "/importAll", method = RequestMethod.POST) - public CommonResult importAllList() { - int count = esProductImageService.importAll(); + @RequestMapping(value = "/importAllProductImage", method = RequestMethod.POST) + public CommonResult importAllProductImage(@RequestParam(value = "updateTime",required = false) String updateTime) { + int count = esProductImageService.importAll(updateTime); return CommonResult.success(count); } @RequestMapping(value = "/search", method = RequestMethod.POST) diff --git a/mall-search/src/main/java/com/suisung/mall/search/dao/EsProductImageDao.java b/mall-search/src/main/java/com/suisung/mall/search/dao/EsProductImageDao.java index 8af12c90..58f35a6b 100644 --- a/mall-search/src/main/java/com/suisung/mall/search/dao/EsProductImageDao.java +++ b/mall-search/src/main/java/com/suisung/mall/search/dao/EsProductImageDao.java @@ -1,11 +1,11 @@ package com.suisung.mall.search.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.suisung.mall.search.domain.EsProduct; import com.suisung.mall.search.domain.EsProductImage; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.util.Date; import java.util.List; /** @@ -25,7 +25,7 @@ public interface EsProductImageDao extends BaseMapper { * @param row * @return */ - List getPageEsProductList(@Param("start") Integer start,@Param("row") Integer row); + List getPageEsProductList(@Param("start") Integer start,@Param("row") Integer row,@Param("updateTime") Date updateTime); - Integer getPageTotal(); + Integer getPageTotal(Date udateTime); } diff --git a/mall-search/src/main/java/com/suisung/mall/search/service/EsProductImageService.java b/mall-search/src/main/java/com/suisung/mall/search/service/EsProductImageService.java index d73902e6..12823614 100644 --- a/mall-search/src/main/java/com/suisung/mall/search/service/EsProductImageService.java +++ b/mall-search/src/main/java/com/suisung/mall/search/service/EsProductImageService.java @@ -11,7 +11,7 @@ public interface EsProductImageService { /** * 从数据库中导入所有商品到ES */ - int importAll(); + int importAll( String updateTime); List search(ProductImageSearchDTO productImageSearchDTO); diff --git a/mall-search/src/main/java/com/suisung/mall/search/service/impl/EsProductImageServiceImpl.java b/mall-search/src/main/java/com/suisung/mall/search/service/impl/EsProductImageServiceImpl.java index e2bf05e5..06606010 100644 --- a/mall-search/src/main/java/com/suisung/mall/search/service/impl/EsProductImageServiceImpl.java +++ b/mall-search/src/main/java/com/suisung/mall/search/service/impl/EsProductImageServiceImpl.java @@ -1,7 +1,7 @@ package com.suisung.mall.search.service.impl; -import cn.hutool.core.util.PageUtil; +import cn.hutool.core.date.DateUtil; import com.alibaba.csp.sentinel.util.StringUtil; import com.suisung.mall.common.pojo.dto.ProductImageSearchDTO; import com.suisung.mall.common.utils.JiebaUtils; @@ -54,15 +54,19 @@ public class EsProductImageServiceImpl implements EsProductImageService { private static final Integer BATCH_SIZE=1000; @Override - public int importAll() { - Integer total = esProductImageDao.getPageTotal(); + public int importAll(String updateTime) { + Date findDate=null; + if(StringUtil.isNotEmpty(updateTime)){ + findDate= DateUtil.parse(updateTime); + } + Integer total = esProductImageDao.getPageTotal(findDate); if(Objects.isNull(total)||Objects.equals(total,0)){ return 0; } - esProductImageRepository.deleteAll(); + // esProductImageRepository.deleteAll(); Integer pages= CommonUtil.getPagesCount(total,BATCH_SIZE); for (int i = 1; i <= pages; i++) { - List esProductList= esProductImageDao.getPageEsProductList((i-1)*BATCH_SIZE,BATCH_SIZE); + List esProductList= esProductImageDao.getPageEsProductList((i-1)*BATCH_SIZE,BATCH_SIZE,findDate); esProductList.forEach(item->{ String cleanTitle=ProductTitleUtil.cleanTitle2(item.getProductName()); item.setCleanName(cleanTitle);//清理数据 diff --git a/mall-search/src/main/resources/elasticsearch/all.json b/mall-search/src/main/resources/elasticsearch/index_product_image.json similarity index 98% rename from mall-search/src/main/resources/elasticsearch/all.json rename to mall-search/src/main/resources/elasticsearch/index_product_image.json index c29eb7db..a456f6d8 100644 --- a/mall-search/src/main/resources/elasticsearch/all.json +++ b/mall-search/src/main/resources/elasticsearch/index_product_image.json @@ -23,7 +23,7 @@ }, "mappings": { "properties": { - "id": { "type": "keyword" }, + "libId": { "type": "keyword" }, "barcode": { "type": "keyword" }, "productName": { "type": "text", 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 3317c076..480aeb00 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 @@ -275,4 +275,11 @@ public class ProductMappingController extends BaseControllerImpl { return new ThirdApiRes().success("服务器已执行商品图库匹配数据操作"); } + @ApiOperation(value = "导入图库数据到es", notes = "商品图库匹配") + @RequestMapping(value = "/importLibProductImg", method = RequestMethod.POST) + public CommonResult importLibProductImg() { + return CommonResult.success(syncThirdDataService.importLibProductImg(null)); + } + + } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/SyncThirdDataService.java b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/SyncThirdDataService.java index dfd8cdd1..c6be1447 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/SyncThirdDataService.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/SyncThirdDataService.java @@ -167,4 +167,6 @@ public interface SyncThirdDataService { * 刷新时间 */ ThirdApiRes syncRefreshTime(@RequestParam String appKey, @RequestParam String sign); + + CommonResult importLibProductImg(String updateTime); } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/SyncThirdDataServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/SyncThirdDataServiceImpl.java index 72952622..14e037c2 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/SyncThirdDataServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/sync/service/impl/SyncThirdDataServiceImpl.java @@ -31,6 +31,7 @@ import com.suisung.mall.common.api.StateCode; import com.suisung.mall.common.enums.DicEnum; import com.suisung.mall.common.exception.ApiException; import com.suisung.mall.common.feignService.AccountService; +import com.suisung.mall.common.feignService.SearchService; import com.suisung.mall.common.modules.account.AccountUserBase; import com.suisung.mall.common.modules.base.ShopBaseProductBrand; import com.suisung.mall.common.modules.base.ShopBaseProductCategory; @@ -49,7 +50,6 @@ import com.suisung.mall.common.utils.StringUtils; import com.suisung.mall.shop.base.service.ShopBaseProductBrandService; import com.suisung.mall.shop.base.service.ShopBaseProductCategoryService; import com.suisung.mall.shop.base.service.ShopBaseProductSpecService; -import com.suisung.mall.shop.chain.controller.admin.ShopChainItemController; import com.suisung.mall.shop.number.service.ShopNumberSeqService; import com.suisung.mall.shop.page.service.OssService; import com.suisung.mall.shop.product.service.ShopProductBaseService; @@ -176,8 +176,9 @@ public class SyncThirdDataServiceImpl extends SyncBaseThirdSxAbstract implements @Autowired private ShopStoreActivityItemService shopStoreActivityItemService; + @Autowired - private ShopChainItemController item; + private SearchService searchService; /** * 批量保存商品的分类 @@ -969,8 +970,8 @@ public class SyncThirdDataServiceImpl extends SyncBaseThirdSxAbstract implements List updateShopStoreActivityBaseList = new ArrayList<>(); Map stringIntegerMap = checkExistingActive(jsonArray, storeId); AccountUserBase accountUserBase = new AccountUserBase(); - accountUserBase.setUser_is_admin(1); - accountUserBase.setStore_ids("1"); + accountUserBase.setUser_is_admin(2); + accountUserBase.setStore_ids(String.valueOf(storeId)); AccountUserBase accountUserBases = accountService.findOneAccountUserBase(accountUserBase); Integer userId = accountUserBases.getUser_id(); jsonArray.stream().parallel().forEach(object -> { @@ -1322,4 +1323,11 @@ public class SyncThirdDataServiceImpl extends SyncBaseThirdSxAbstract implements } return new ThirdApiRes().success("时间同步完成"); } + + @Override + public CommonResult importLibProductImg(String updateTime) { + return searchService.importAllProductImage(updateTime); + } + + } diff --git a/sql/shop/dev/20250719_dml.sql b/sql/shop/dev/20250719_dml.sql new file mode 100644 index 00000000..46bccd3e --- /dev/null +++ b/sql/shop/dev/20250719_dml.sql @@ -0,0 +1 @@ +INSERT INTO `admin_base_protocol` (`ctl`, `met`, `db`, `rights_id`, `log`, `path`) VALUES ('/admin/shop/shop-sync-productMapper/importLibProductImg', 'index', 'master', '', '0', '/admin/shop/shop-sync-productMapper/importLibProductImg'); \ No newline at end of file