|
|
@@ -10,14 +10,13 @@ import com.cyksj.common.util.Jsons;
|
|
|
import com.cyksj.mapper.GoodsDonMapper;
|
|
|
import com.cyksj.mapper.GoodsDonSkuMapper;
|
|
|
import com.cyksj.mapper.GoodsDonSpecMapper;
|
|
|
-import com.cyksj.model.entity.GoodsDon;
|
|
|
-import com.cyksj.model.entity.GoodsDonSku;
|
|
|
-import com.cyksj.model.entity.GoodsDonSpec;
|
|
|
+import com.cyksj.model.entity.*;
|
|
|
import com.cyksj.model.manage.request.ReqGoodsSkuInsert;
|
|
|
import com.cyksj.model.manage.request.ReqGoodsSkuSpec;
|
|
|
import com.cyksj.model.manage.request.ReqGoodsSpecSingle;
|
|
|
import com.cyksj.model.request.CombinationSkuReq;
|
|
|
import com.cyksj.service.mange.CmsGoodsDonSpecService;
|
|
|
+import com.cyksj.service.translations.BackInfoTranslationsService;
|
|
|
import com.fasterxml.jackson.databind.JavaType;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
@@ -25,6 +24,7 @@ import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
@@ -43,10 +43,15 @@ public class CmsGoodsDonSpecServiceImpl extends ServiceImpl<GoodsDonSpecMapper,
|
|
|
|
|
|
private final GoodsDonSkuMapper goodsDonSkuMapper;
|
|
|
|
|
|
+ private final HttpServletRequest request;
|
|
|
+
|
|
|
+ private final BackInfoTranslationsService backInfoTranslationsService;
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
|
public void insertOrUpdateSkuSpec(ReqGoodsSkuInsert insert, Boolean isUpdate) throws Exception {
|
|
|
GoodsDon goods = goodsDonMapper.selectById(insert.getGoodsId());
|
|
|
+ String lang = request.getHeader("lang");
|
|
|
if (null == goods) {
|
|
|
throw new RuntimeException("找不到商品spu.");
|
|
|
}
|
|
|
@@ -111,7 +116,8 @@ public class CmsGoodsDonSpecServiceImpl extends ServiceImpl<GoodsDonSpecMapper,
|
|
|
Set<GoodsDonSku> benefitsSkuIds = Jsons.parseSet(benefitsList, GoodsDonSku.class);
|
|
|
e.setBenefitsList(Jsons.toJson(benefitsSkuIds));
|
|
|
}
|
|
|
- syncSpecNodeSku(goods.getId(), dbNodeMap, e);
|
|
|
+
|
|
|
+ syncSpecNodeSku(goods.getId(), dbNodeMap, e, lang);
|
|
|
|
|
|
ReqGoodsSpecSingle single = new ReqGoodsSpecSingle();
|
|
|
single.setId(e.getId());
|
|
|
@@ -132,11 +138,15 @@ public class CmsGoodsDonSpecServiceImpl extends ServiceImpl<GoodsDonSpecMapper,
|
|
|
spec.setSpecsJson(Jsons.toJson(specs));
|
|
|
spec.setSpecNumber(specNumber);
|
|
|
spec.setSpecMapping(Jsons.toJson(map));
|
|
|
- if (insert.getId() != null) {
|
|
|
- this.updateById(spec);
|
|
|
- return;
|
|
|
+ if (!StrUtil.equals(UserPageLanguage.Language.zh_HK.name(), lang)) {
|
|
|
+ backInfoTranslationsService.saveOrUpdateBackInfoTranslations(BackInfoTranslations.Type.spec, spec.getId(), spec, lang);
|
|
|
+ } else {
|
|
|
+ if (insert.getId() != null) {
|
|
|
+ this.updateById(spec);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.save(spec);
|
|
|
}
|
|
|
- this.save(spec);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -416,7 +426,7 @@ public class CmsGoodsDonSpecServiceImpl extends ServiceImpl<GoodsDonSpecMapper,
|
|
|
/**
|
|
|
* 更新二级分类标题价格等 同步库中sku
|
|
|
*/
|
|
|
- public void syncSpecNodeSku(Long goodsId, Map<Integer, ReqGoodsSkuSpec.Node> dbNodeMap, ReqGoodsSkuSpec.Node e) {
|
|
|
+ public void syncSpecNodeSku(Long goodsId, Map<Integer, ReqGoodsSkuSpec.Node> dbNodeMap, ReqGoodsSkuSpec.Node e, String lang) {
|
|
|
if (CollUtil.isNotEmpty(dbNodeMap)) {
|
|
|
ReqGoodsSkuSpec.Node dbNode = dbNodeMap.get(e.getId());
|
|
|
if (dbNode == null) {
|
|
|
@@ -462,7 +472,15 @@ public class CmsGoodsDonSpecServiceImpl extends ServiceImpl<GoodsDonSpecMapper,
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- goodsDonSkuMapper.updateById(sku);
|
|
|
+ if (!StrUtil.equals(UserPageLanguage.Language.zh_HK.name(), lang)) {
|
|
|
+ GoodsDonSku specValLanguage = new GoodsDonSku();
|
|
|
+ specValLanguage.setId(sku.getId());
|
|
|
+ specValLanguage.setSpecVal(sku.getSpecVal());
|
|
|
+ specValLanguage.setSpecJson(sku.getSpecJson());
|
|
|
+ backInfoTranslationsService.saveOrUpdateBackInfoTranslations(BackInfoTranslations.Type.spec, specValLanguage.getId(), specValLanguage, lang);
|
|
|
+ } else {
|
|
|
+ goodsDonSkuMapper.updateById(sku);
|
|
|
+ }
|
|
|
}
|
|
|
} catch (Exception exception) {
|
|
|
}
|