浏览代码

返回信息多语言

zoujiajian 2 年之前
父节点
当前提交
4dab100633

+ 3 - 0
netflix-service/src/main/java/com/cyksj/service/translations/BackInfoTranslationsService.java

@@ -12,4 +12,7 @@ import com.cyksj.model.entity.BackInfoTranslations;
  */
 public interface BackInfoTranslationsService extends IService<BackInfoTranslations> {
 	void saveOrUpdateTranslations(TranslationsDto dto);
+
+	void saveOrUpdateBackInfoTranslations(BackInfoTranslations.Type type, Long funcId, Object obj, String lang);
+
 }

+ 23 - 0
netflix-service/src/main/java/com/cyksj/service/translations/impl/BackInfoTranslationsServiceImpl.java

@@ -9,7 +9,10 @@ import com.cyksj.service.translations.BackInfoTranslationsService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.lang.reflect.Field;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 
 /**
  * 项目名: yhlxj2
@@ -30,4 +33,24 @@ public class BackInfoTranslationsServiceImpl extends ServiceImpl<BackInfoTransla
 		}
 		backInfoTranslationsMapper.batchInsertOrUpdate(dto.getFuncId(), dto.getType().ordinal(), dto.getFields(), dto.getLang());
 	}
+
+	@Override
+	public void saveOrUpdateBackInfoTranslations(BackInfoTranslations.Type type, Long funcId, Object obj, String lang) {
+		TranslationsDto translationsDto = new TranslationsDto();
+		translationsDto.setType(type);
+		translationsDto.setLang(lang);
+		translationsDto.setFuncId(funcId);
+		List<BackInfoTranslations> fields = new ArrayList<>();
+		for (Field declaredField : obj.getClass().getDeclaredFields()) {
+			BackInfoTranslations backInfoTranslations = new BackInfoTranslations();
+			backInfoTranslations.setFieldName(declaredField.getName());
+			try {
+				declaredField.setAccessible(true);
+				Optional.ofNullable(declaredField.get(obj)).ifPresent(val -> backInfoTranslations.setDesc(val.toString()));
+				fields.add(backInfoTranslations);
+			} catch (IllegalAccessException e) {
+			}
+		}
+		saveOrUpdateTranslations(translationsDto);
+	}
 }

+ 8 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/goods/CmsGoodsDonController.java

@@ -11,6 +11,7 @@ import com.cyksj.dto.Result;
 import com.cyksj.enums.BusinessType;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.GoodsDonSkuMapper;
+import com.cyksj.model.entity.BackInfoTranslations;
 import com.cyksj.model.entity.GoodsDon;
 import com.cyksj.model.entity.GoodsDonCategory;
 import com.cyksj.model.entity.GoodsDonSku;
@@ -23,6 +24,7 @@ import com.cyksj.service.mange.CmsGoodsDonService;
 import com.cyksj.service.mange.GoodsDonCategoryService;
 import com.cyksj.service.mange.RefreshCacheService;
 import com.cyksj.service.translations.BackInfoTranslationsFrontService;
+import com.cyksj.service.translations.BackInfoTranslationsService;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
 import com.ejlchina.searcher.param.Operator;
@@ -64,6 +66,8 @@ public class CmsGoodsDonController {
 
 	private final BackInfoTranslationsFrontService backInfoTranslationsFrontService;
 
+	private final BackInfoTranslationsService backInfoTranslationsService;
+
 	@GetMapping("/get")
 	public Result<SearchResult<GoodsDonCategoryDetailView>> get(){
 		SearchResult<GoodsDonCategoryDetailView> search = beanSearcher.search(GoodsDonCategoryDetailView.class, MapUtils.flatBuilder(request.getParameterMap())
@@ -171,6 +175,10 @@ public class CmsGoodsDonController {
 		goodsDonCategoryService.handleGoodsRelate(goods.getId(), spu.getCategoryList());
 		goodsDonService.updateById(goods);
 		refreshCacheService.refreshYhHomePageCache();
+		String lang = request.getHeader("lang");
+		if (!StrUtil.equals(UserPageLanguage.Language.zh_HK.name(), lang)) {
+			backInfoTranslationsService.saveOrUpdateBackInfoTranslations(BackInfoTranslations.Type.goods, goods.getId(), goods, lang);
+		}
 		return GatewayResponse.SUCCESS.newBuilder().toResult();
 	}
 

+ 9 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/goods/CmsGoodsDonSkuController.java

@@ -9,15 +9,18 @@ import com.cyksj.common.util.Jsons;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.BusinessType;
 import com.cyksj.enums.GatewayResponse;
+import com.cyksj.model.entity.BackInfoTranslations;
 import com.cyksj.model.entity.GoodsDiscountPlusPurchaseRelation;
 import com.cyksj.model.entity.GoodsDon;
 import com.cyksj.model.entity.GoodsDonSku;
+import com.cyksj.model.entity.UserPageLanguage;
 import com.cyksj.model.manage.request.ReqGoodsSkuInsert;
 import com.cyksj.model.request.CombinationSkuReq;
 import com.cyksj.service.mange.CmsGoodsDonService;
 import com.cyksj.service.mange.CmsGoodsDonSkuService;
 import com.cyksj.service.mange.CmsGoodsDonSpecService;
 import com.cyksj.service.mange.RefreshCacheService;
+import com.cyksj.service.translations.BackInfoTranslationsService;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
 import com.ejlchina.searcher.util.MapBuilder;
@@ -56,6 +59,8 @@ public class CmsGoodsDonSkuController {
 
     private final RefreshCacheService refreshCacheService;
 
+    private final BackInfoTranslationsService backInfoTranslationsService;
+
 
     /**
      * 新增 商品spec & sku
@@ -157,6 +162,10 @@ public class CmsGoodsDonSkuController {
         //给平台更新额外属性
         goodsDonService.updateGoodsSkuPrice(sku.getGoodsId(), null);
         refreshCacheService.refreshYhHomePageCache();
+        String lang = request.getHeader("lang");
+        if (!StrUtil.equals(UserPageLanguage.Language.zh_HK.name(), lang)) {
+            backInfoTranslationsService.saveOrUpdateBackInfoTranslations(BackInfoTranslations.Type.sku, sku.getId(), sku, lang);
+        }
         return GatewayResponse.SUCCESS.newBuilder().toResult();
     }