思迅商品同步

This commit is contained in:
Jack 2025-01-10 08:54:35 +08:00
parent 0c8d281f73
commit 0fd7d8ca8d

View File

@ -682,12 +682,13 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl<ShopProductBaseM
*/ */
public Pair<Boolean, String> saveProduct(ShopProductBase shopProductBase, ShopProductIndex shopProductIndex, ShopProductData shopProductData, ShopProductDetail shopProductDetail, ShopProductInfo shopProductInfo, List<ShopProductItem> shopProductItemList, List<ShopProductImage> shopProductImageList, ShopProductValidPeriod shopProductValidPeriod, List<ShopProductAssistIndex> shopProductAssistIndexList) { public Pair<Boolean, String> saveProduct(ShopProductBase shopProductBase, ShopProductIndex shopProductIndex, ShopProductData shopProductData, ShopProductDetail shopProductDetail, ShopProductInfo shopProductInfo, List<ShopProductItem> shopProductItemList, List<ShopProductImage> shopProductImageList, ShopProductValidPeriod shopProductValidPeriod, List<ShopProductAssistIndex> shopProductAssistIndexList) {
Integer store_id = shopProductBase.getStore_id(); Integer store_id = shopProductBase.getStore_id();
ShopStoreBase storeBase = null;
if (store_id == null) { if (store_id == null) {
return Pair.of(false, I18nUtil._("缺少店铺ID!")); return Pair.of(false, I18nUtil._("缺少店铺ID!"));
} }
storeBase = shopStoreBaseService.get(store_id); ShopStoreBase storeBase = shopStoreBaseService.get(store_id);
if (storeBase == null) return Pair.of(false, I18nUtil._("缺少店铺信息!"));
Integer store_type = storeBase.getStore_type(); Integer store_type = storeBase.getStore_type();
// 判断是否为供应商店铺 // 判断是否为供应商店铺
if (store_type == 2) { if (store_type == 2) {
@ -712,7 +713,7 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl<ShopProductBaseM
boolean isUpdate = false; boolean isUpdate = false;
String product_image_old = ""; String product_image_old = "";
if (productId == null && storeBase != null) { if (productId == null) {
// 生成商品ID:product_id // 生成商品ID:product_id
productId = shopNumberSeqService.createNextNo("product_id"); productId = shopNumberSeqService.createNextNo("product_id");
if (null == productId) { if (null == productId) {
@ -802,7 +803,7 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl<ShopProductBaseM
BigDecimal max_item_market_price = shopProductItemList.stream().map(ShopProductItem::getItem_market_price).max(BigDecimal::compareTo).get(); BigDecimal max_item_market_price = shopProductItemList.stream().map(ShopProductItem::getItem_market_price).max(BigDecimal::compareTo).get();
BigDecimal product_market_price = NumberUtil.max(max_item_unit_price, max_item_market_price); BigDecimal product_market_price = NumberUtil.max(max_item_unit_price, max_item_market_price);
shopProductBase.setProduct_market_price(product_market_price); shopProductBase.setProduct_market_price(product_market_price);
// 保存商品基本信息 // 保存商品基本信息
if (!saveOrUpdate(shopProductBase)) { if (!saveOrUpdate(shopProductBase)) {
return Pair.of(false, I18nUtil._("保存 productBase 商品信息出错!")); return Pair.of(false, I18nUtil._("保存 productBase 商品信息出错!"));
} }
@ -812,22 +813,21 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl<ShopProductBaseM
List<String> assistItemList = new ArrayList<>(); List<String> assistItemList = new ArrayList<>();
if (CollUtil.isNotEmpty(shopProductAssistIndexList)) { if (CollUtil.isNotEmpty(shopProductAssistIndexList)) {
for (ShopProductAssistIndex assistIndex : shopProductAssistIndexList) { for (ShopProductAssistIndex assistIndex : shopProductAssistIndexList) {
if (StringUtils.isNotBlank(assistIndex.getAssist_item_id())) { if (StringUtils.isBlank(assistIndex.getAssist_item_id())) continue;
assistItemList.add(assistIndex.getAssist_item_id());
String product_assist_index_id = productId + "-" + assistIndex.getAssist_id();
assistIndex.setProduct_assist_index_id(product_assist_index_id);
assistIndex.setProduct_id(productId);
if (!assistIndexService.saveOrUpdate(assistIndex)) { assistItemList.add(assistIndex.getAssist_item_id());
return Pair.of(false, I18nUtil._("保存 ShopProductAssistIndex 商品附加属性出错!")); String product_assist_index_id = productId + "-" + assistIndex.getAssist_id();
} assistIndex.setProduct_assist_index_id(product_assist_index_id);
} assistIndex.setProduct_id(productId);
if (!assistIndexService.saveOrUpdate(assistIndex))
return Pair.of(false, I18nUtil._("保存 ShopProductAssistIndex 商品附加属性出错!"));
} }
} }
if (CollectionUtil.isNotEmpty(assistItemList)) { // 商品es索引 shopProductIndex
if (CollectionUtil.isNotEmpty(assistItemList))
shopProductIndex.setProduct_assist_data(StrUtil.join(",", assistItemList)); shopProductIndex.setProduct_assist_data(StrUtil.join(",", assistItemList));
}
shopProductIndex.setProduct_id(productId); shopProductIndex.setProduct_id(productId);
shopProductIndex.setProduct_unit_price(item_unit_price); shopProductIndex.setProduct_unit_price(item_unit_price);
@ -840,9 +840,6 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl<ShopProductBaseM
shopProductIndex.setProduct_verify_id(shopProductBase.getProduct_verify_id()); shopProductIndex.setProduct_verify_id(shopProductBase.getProduct_verify_id());
// 判断店铺是否开启 // 判断店铺是否开启
if (storeBase == null) {
storeBase = shopStoreBaseService.get(shopProductBase.getStore_id());
}
shopProductIndex.setStore_is_open(storeBase.getStore_is_open()); shopProductIndex.setStore_is_open(storeBase.getStore_is_open());
shopProductIndex.setStore_is_selfsupport(storeBase.getStore_is_selfsupport()); shopProductIndex.setStore_is_selfsupport(storeBase.getStore_is_selfsupport());
shopProductIndex.setStore_type(storeBase.getStore_type()); shopProductIndex.setStore_type(storeBase.getStore_type());
@ -890,23 +887,27 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl<ShopProductBaseM
for (ShopProductImage image_row : shopProductImageList) { for (ShopProductImage image_row : shopProductImageList) {
Long color_id = image_row.getColor_id(); Long color_id = image_row.getColor_id();
Long _color_id = product_image_row.getColor_id(); Long _color_id = product_image_row.getColor_id();
if (ObjectUtil.equal(color_id, _color_id)) { if (!ObjectUtil.equal(color_id, _color_id)) {
Long product_image_id = product_image_row.getProduct_image_id(); continue;
product_image_id_now_row.add(product_image_id); }
image_row.setProduct_image_id(product_image_id);
//图片相同不做处理 Long product_image_id = product_image_row.getProduct_image_id();
if (!product_image_row.getItem_image_default().equals(image_row.getItem_image_default())) { product_image_id_now_row.add(product_image_id);
//图片不同先删除旧的 添加新的 image_row.setProduct_image_id(product_image_id);
if (CheckUtil.isNotEmpty(product_image_row.getItem_image_default())) {
del_baidu_image_row.add(product_image_row.getItem_image_default());
}
//添加新的 //图片相同不做处理
if (CheckUtil.isNotEmpty(image_row.getItem_image_default())) { if (product_image_row.getItem_image_default().equals(image_row.getItem_image_default())) {
add_baidu_image_row.add(product_image_row.getItem_image_default()); continue;
} }
}
//图片不同先删除旧的 添加新的
if (CheckUtil.isNotEmpty(product_image_row.getItem_image_default())) {
del_baidu_image_row.add(product_image_row.getItem_image_default());
}
//添加新的
if (CheckUtil.isNotEmpty(image_row.getItem_image_default())) {
add_baidu_image_row.add(product_image_row.getItem_image_default());
} }
} }
} }
@ -1027,6 +1028,7 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl<ShopProductBaseM
List<Object> sku_uniqid_list = Arrays.asList(item_id, item_unit_price, "", item_enable); List<Object> sku_uniqid_list = Arrays.asList(item_id, item_unit_price, "", item_enable);
product_uniqid.put(sku_uniqid, sku_uniqid_list); product_uniqid.put(sku_uniqid, sku_uniqid_list);
// 教育课程类订单
if (kind_id == StateCode.PRODUCT_KIND_EDU) { if (kind_id == StateCode.PRODUCT_KIND_EDU) {
Optional<ShopProductImage> imageOptional = shopProductImageList.stream().filter(s -> ObjectUtil.equal(s.getColor_id(), item_row.getColor_id())).findFirst(); Optional<ShopProductImage> imageOptional = shopProductImageList.stream().filter(s -> ObjectUtil.equal(s.getColor_id(), item_row.getColor_id())).findFirst();
ShopProductImage image = imageOptional.orElseGet(ShopProductImage::new); ShopProductImage image = imageOptional.orElseGet(ShopProductImage::new);
@ -1058,20 +1060,20 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl<ShopProductBaseM
return Pair.of(false, I18nUtil._("删除废弃sku失败")); return Pair.of(false, I18nUtil._("删除废弃sku失败"));
} }
} }
//start 清理sku相关数据 //end 清理sku相关数据
// info // shopProductInfo
shopProductInfo.setProduct_id(productId); shopProductInfo.setProduct_id(productId);
shopProductInfo.setProduct_uniqid(JSONUtil.toJsonStr(product_uniqid)); shopProductInfo.setProduct_uniqid(JSONUtil.toJsonStr(product_uniqid));
if (!shopProductInfoService.saveOrUpdate(shopProductInfo)) { if (!shopProductInfoService.saveOrUpdate(shopProductInfo)) {
return Pair.of(false, I18nUtil._("保存 shopProductInfo 出错!")); return Pair.of(false, I18nUtil._("保存 shopProductInfo 出错!"));
} }
// virtual // shopProductValidPeriod 虚拟商品
if (shopProductValidPeriod != null) { if (shopProductValidPeriod != null) {
shopProductValidPeriod.setProduct_id(productId); shopProductValidPeriod.setProduct_id(productId);
Integer product_valid_type = shopProductValidPeriod.getProduct_valid_type(); Integer product_valid_type = shopProductValidPeriod.getProduct_valid_type();
if(product_valid_type==null){ if (product_valid_type == null) {
product_valid_type = 1001; product_valid_type = 1001;
} }
shopProductValidPeriod.setProduct_valid_type(product_valid_type);// 默认到店服务 add 2025-01-08 避免出错 shopProductValidPeriod.setProduct_valid_type(product_valid_type);// 默认到店服务 add 2025-01-08 避免出错
@ -1080,16 +1082,15 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl<ShopProductBaseM
} }
} }
//商品统计初始化 // 商品统计 shopProductAnalytics 初始化
if (CheckUtil.isNotEmpty(shopProductBase.getProduct_add_time())) { if (CheckUtil.isNotEmpty(shopProductBase.getProduct_add_time())) {
ShopProductAnalytics shopProductAnalytics = new ShopProductAnalytics(); ShopProductAnalytics shopProductAnalytics = new ShopProductAnalytics();
shopProductAnalytics.setProduct_id(shopProductIndex.getProduct_id()); shopProductAnalytics.setProduct_id(shopProductIndex.getProduct_id());
shopProductAnalytics.setProduct_click(0); // 默认0 add 2025-01-08 避免出错 shopProductAnalytics.setProduct_click(0); // 默认0 add 2025-01-08 避免出错
shopProductAnalyticsService.saveOrUpdate(shopProductAnalytics); shopProductAnalyticsService.saveOrUpdate(shopProductAnalytics);
} }
//店铺统计 //店铺统计商品数量
if (!shopStoreAnalyticsService.saveProductAnalyticsNum(store_id)) { if (!shopStoreAnalyticsService.saveProductAnalyticsNum(store_id)) {
return Pair.of(false, I18nUtil._("保存 shopStoreAnalytics 出错!")); return Pair.of(false, I18nUtil._("保存 shopStoreAnalytics 出错!"));
} }
@ -1100,7 +1101,6 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl<ShopProductBaseM
ShopStoreActivityItem shopStoreActivityItem = new ShopStoreActivityItem(); ShopStoreActivityItem shopStoreActivityItem = new ShopStoreActivityItem();
shopStoreActivityItem.setCategory_id(shopProductIndex.getCategory_id()); shopStoreActivityItem.setCategory_id(shopProductIndex.getCategory_id());
boolean edit = shopStoreActivityItemService.edit(shopStoreActivityItem, objectQueryWrapper); boolean edit = shopStoreActivityItemService.edit(shopStoreActivityItem, objectQueryWrapper);
// 是否启用es // 是否启用es
@ -1124,7 +1124,7 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl<ShopProductBaseM
} }
if (CheckUtil.isNotEmpty(product_image_old)) { if (CheckUtil.isNotEmpty(product_image_old)) {
contSign = BaiduAi.removeProductImg(product_image_old, ""); BaiduAi.removeProductImg(product_image_old, contSign);
} }
if (CheckUtil.isNotEmpty(product_image_new)) { if (CheckUtil.isNotEmpty(product_image_new)) {
@ -1146,7 +1146,7 @@ public class ShopProductBaseServiceImpl extends BaseServiceImpl<ShopProductBaseM
mqMessageService.sendBatchMqMsg(mqMessageVos); mqMessageService.sendBatchMqMsg(mqMessageVos);
} }
return Pair.of(true, I18nUtil._("保存处理成功!")); return Pair.of(true, I18nUtil._("保存成功!"));
} }
/** /**