| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- package com.cyksj.service.translations.impl;
- import cn.hutool.core.collection.CollUtil;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.cyksj.mapper.BackInfoTranslationsMapper;
- import com.cyksj.model.entity.BackInfoTranslations;
- import com.cyksj.model.entity.GoodsDonSku;
- import com.cyksj.model.manage.views.GoodsDonViewer;
- import com.cyksj.model.views.GoodsDonSkuFrontView;
- import com.cyksj.model.views.GoodsFrontListCategoryView;
- import com.cyksj.model.views.GoodsFrontListView;
- import com.cyksj.service.translations.BackInfoTranslationsFrontService;
- import lombok.RequiredArgsConstructor;
- import org.springframework.stereotype.Service;
- import java.lang.reflect.Field;
- import java.util.List;
- /**
- * 项目名: yhlxj2
- * 文件名: BackInfoTranslationsFrontServiceImpl
- * 创建者: JavaZou
- * 创建时间:2024/7/16 15:07
- */
- @Service
- @RequiredArgsConstructor
- public class BackInfoTranslationsFrontServiceImpl implements BackInfoTranslationsFrontService {
- private final BackInfoTranslationsMapper backInfoTranslationsMapper;
- @Override
- public void setGoodsDetailLanguage(GoodsFrontListView views, String lang) {
- if (views == null) {
- return;
- }
- //平台
- setFieldLanguage(views.getClass(), views, BackInfoTranslations.Type.goods.ordinal(), views.getId(), lang);
- //规格
- List<GoodsDonSkuFrontView> skuList = views.getSkuList();
- if (CollUtil.isNotEmpty(skuList)) {
- skuList.forEach(sku -> setFieldLanguage(sku.getClass(), sku, BackInfoTranslations.Type.sku.ordinal(), sku.getId(), lang));
- }
- }
- @Override
- public void setCategoryGoodsLanguage(GoodsFrontListCategoryView data, String lang) {
- if (data == null) {
- return;
- }
- //平台
- setFieldLanguage(data.getClass(), data, BackInfoTranslations.Type.goods.ordinal(), data.getId(), lang);
- }
- @Override
- public String setLanguagePayTitle(Long goodsId, Long skuId, String lang) {
- BackInfoTranslations goodsL = backInfoTranslationsMapper.selectOne(Wrappers.lambdaQuery(BackInfoTranslations.class)
- .eq(BackInfoTranslations::getType, BackInfoTranslations.Type.goods.ordinal())
- .eq(BackInfoTranslations::getFuncId, goodsId)
- .eq(BackInfoTranslations::getLang, lang)
- .eq(BackInfoTranslations::getFieldName, "title"));
- BackInfoTranslations skuL = backInfoTranslationsMapper.selectOne(Wrappers.lambdaQuery(BackInfoTranslations.class)
- .eq(BackInfoTranslations::getType, BackInfoTranslations.Type.sku.ordinal())
- .eq(BackInfoTranslations::getFuncId, skuId)
- .eq(BackInfoTranslations::getLang, lang)
- .eq(BackInfoTranslations::getFieldName, "specVal"));
- if (goodsL != null && skuL != null) {
- return new StringBuilder().append(goodsL.getDesc()).append(skuL.getDesc()).toString();
- }
- return null;
- }
- @Override
- public void setGoodsBackLanguage(GoodsDonViewer goodsDonViewer, String lang) {
- setFieldLanguage(goodsDonViewer.getClass(), goodsDonViewer, BackInfoTranslations.Type.goods.ordinal(), goodsDonViewer.getId(), lang);
- }
- @Override
- public void setSkuBackLanguage(List<GoodsDonSku> goodsDonSkus, String lang) {
- goodsDonSkus.forEach(sku -> setFieldLanguage(sku.getClass(), sku, BackInfoTranslations.Type.sku.ordinal(), sku.getId(), lang));
- }
- public void setFieldLanguage(Class<?> tclass, Object obj, Integer type, Long funcId, String lang) {
- List<BackInfoTranslations> backInfoTranslations = backInfoTranslationsMapper.selectList(Wrappers.lambdaQuery(BackInfoTranslations.class)
- .eq(BackInfoTranslations::getType, type)
- .eq(BackInfoTranslations::getLang, lang)
- .eq(BackInfoTranslations::getFuncId, funcId));
- if (CollUtil.isNotEmpty(backInfoTranslations)) {
- backInfoTranslations.forEach(tanslate -> {
- String fieldName = tanslate.getFieldName();
- try {
- Field declaredField = tclass.getDeclaredField(fieldName);
- declaredField.setAccessible(true);
- declaredField.set(obj, tanslate.getDesc());
- } catch (IllegalAccessException e) {
- } catch (NoSuchFieldException e) {
- }
- });
- }
- }
- }
|