package com.qianwen.smartman.modules.system.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.alibaba.excel.write.merge.AbstractMergeStrategy; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import java.lang.invoke.SerializedLambda; import java.util.Collection; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; import java.util.stream.Stream; import javax.servlet.http.HttpServletResponse; import com.qianwen.smartman.common.constant.ExcelConstant; import com.qianwen.smartman.common.constant.I18nRedisKeyConstant; import com.qianwen.smartman.common.utils.Lambda; import com.qianwen.smartman.common.utils.MessageUtils; import com.qianwen.core.excel.util.ExcelUtil; import com.qianwen.core.log.exception.ServiceException; import com.qianwen.core.oss.model.BladeFile; import com.qianwen.core.tool.jackson.JsonUtil; import com.qianwen.core.tool.utils.DateUtil; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.modules.resource.builder.oss.OssBuilder; import com.qianwen.smartman.modules.system.convert.I18nDataConverter; import com.qianwen.smartman.modules.system.dto.I18nDataDTO; import com.qianwen.smartman.modules.system.dto.I18nDataQueryDTO; import com.qianwen.smartman.modules.system.dto.I18nDataUnique; import com.qianwen.smartman.modules.system.entity.I18nData; import com.qianwen.smartman.modules.system.mapper.I18nDataMapper; import com.qianwen.smartman.modules.system.service.I18nDataService; import com.qianwen.smartman.modules.system.vo.I18nDataExcelVO; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @Service /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/system/service/impl/I18nDataServiceImpl.class */ public class I18nDataServiceImpl extends ServiceImpl implements I18nDataService { private final StringRedisTemplate stringRedisTemplate; private final OssBuilder ossBuilder; private static /* synthetic */ Object $deserializeLambda$(SerializedLambda lambda) { String implMethodName = lambda.getImplMethodName(); boolean z = true; switch (implMethodName.hashCode()) { case -1816126484: if (implMethodName.equals("getLanguageTag")) { z = true; break; } break; case -75622813: if (implMethodName.equals("getCode")) { z = true; break; } break; case 761390710: if (implMethodName.equals("getRemark")) { z = false; break; } break; case 1991785425: if (implMethodName.equals("getMessage")) { z = true; break; } break; } switch (z) { case false: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/I18nData") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getRemark(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/I18nData") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getMessage(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/I18nData") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getLanguageTag(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/I18nData") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getLanguageTag(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/I18nData") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getLanguageTag(); }; } break; case true: if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/I18nData") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getCode(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/I18nData") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getCode(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/I18nData") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getCode(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/I18nData") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getCode(); }; } if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/I18nData") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) { return (v0) -> { return v0.getCode(); }; } break; } throw new IllegalArgumentException("Invalid lambda deserialization"); } public I18nDataServiceImpl(final StringRedisTemplate stringRedisTemplate, final OssBuilder ossBuilder) { this.stringRedisTemplate = stringRedisTemplate; this.ossBuilder = ossBuilder; } @Override // org.springblade.modules.system.service.I18nDataService public IPage selectPage(IPage page, I18nDataQueryDTO queryDTO) { return page(page, wrapper(queryDTO)); } public LambdaQueryWrapper wrapper(I18nDataQueryDTO i18nDataQO) { return Wrappers.lambdaQuery(I18nData.class).like(Func.isNotEmpty(i18nDataQO.getCode()), (v0) -> { return v0.getCode(); }, i18nDataQO.getCode()).eq(Func.isNotEmpty(i18nDataQO.getLanguageTag()), (v0) -> { return v0.getLanguageTag(); }, i18nDataQO.getLanguageTag()).and(Func.isNotEmpty(i18nDataQO.getCondition()), w -> { LambdaQueryWrapper lambdaQueryWrapper = (LambdaQueryWrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) w.like((v0) -> { return v0.getMessage(); }, i18nDataQO.getCondition())).or()).like((v0) -> { return v0.getRemark(); }, i18nDataQO.getCondition()); }); } @Override // org.springblade.modules.system.service.I18nDataService public List queryList(I18nDataQueryDTO i18nDataQO) { return ((I18nDataMapper) this.baseMapper).selectList(wrapper(i18nDataQO)); } @Override // org.springblade.modules.system.service.I18nDataService public List listByCode(String code) { return ((I18nDataMapper) this.baseMapper).selectList((Wrapper) Wrappers.lambdaQuery(I18nData.class).eq((v0) -> { return v0.getCode(); }, code)); } @Override // org.springblade.modules.system.service.I18nDataService public I18nData getByCodeAndLanguageTag(String code, String languageTag) { return (I18nData) ((I18nDataMapper) this.baseMapper).selectOne((LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery(I18nData.class).eq((v0) -> { return v0.getCode(); }, code)).eq((v0) -> { return v0.getLanguageTag(); }, languageTag)); } public boolean save(I18nData entity) { return SqlHelper.retBool(Integer.valueOf(((I18nDataMapper) getBaseMapper()).insert(entity))); } @Override // org.springblade.modules.system.service.I18nDataService public I18nData updateById(I18nDataDTO i18nDataDTO) { I18nData entity = I18nDataConverter.INSTANCE.convert(i18nDataDTO); boolean updateSuccess = updateById(entity); if (updateSuccess) { pushUpdateMessage(i18nDataDTO.getCode(), i18nDataDTO.getLanguageTag()); return entity; } throw new ServiceException("修改国际化信息失败"); } @Override // org.springblade.modules.system.service.I18nDataService @Transactional(rollbackFor = {Exception.class}) public BladeFile importI18nData(List data) { if (Func.isEmpty(data)) { throw new ServiceException(MessageUtils.message("excel.import.data.can.not.be.null", new Object[0])); } if (data.size() > 1000) { throw new ServiceException(MessageUtils.message("excel.import.size.failed", new Object[0])); } if (!checkImport(data)) { MultipartFile multipartFile = ExcelUtil.exportFillTemplateToMultipartFile(ExcelConstant.DIRECTORY + "i18nDataFailTemplate" + ExcelConstant.SUFFIX, MessageUtils.message("excel.import.failed.report.name", new Object[0]) + ExcelConstant.SUFFIX, "国际化信息表", data, (Object) null, (AbstractMergeStrategy) null); BladeFile bladeFile = this.ossBuilder.tempTemplate().putFile(multipartFile.getOriginalFilename(), multipartFile); return bladeFile; } Stream stream = data.stream(); I18nDataConverter i18nDataConverter = I18nDataConverter.INSTANCE; i18nDataConverter.getClass(); List list = (List) stream.map(this::excelVoToPo).collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(list)) { List collectCode = (List) list.stream().map((v0) -> { return v0.getCode(); }).collect(Collectors.toList()); List existCodeList = list(Lambda.in((v0) -> { return v0.getCode(); }, collectCode)); existCodeList.parallelStream().forEach(exist -> { list.parallelStream().filter(item -> { return item.getCode().equals(exist.getCode()) && item.getLanguageTag().equals(exist.getLanguageTag()); }).forEach(item2 -> { item2.setId(exist.getId()); }); }); updateBatchById((Collection) list.stream().filter(item -> { return item.getId() != null; }).collect(Collectors.toList())); saveBatch((Collection) list.stream().filter(item2 -> { return item2.getId() == null; }).collect(Collectors.toList())); return null; } return null; } private boolean checkImport(List data) { AtomicBoolean error = new AtomicBoolean(false); data.forEach(item -> { String message; if (Func.isBlank(item.getLanguageTag())) { message = MessageUtils.message("i18nMessage.languageTag.not.null", new Object[0]); } else if (Func.isBlank(item.getCode())) { message = MessageUtils.message("i18nMessage.code.not.null", new Object[0]); } else { message = Func.isBlank(item.getMessage()) ? MessageUtils.message("i18nMessage.message.not.null", new Object[0]) : null; } item.setFailReason(message); error.set(error.get() || item.getFailReason() != null); }); return !error.get(); } private void pushUpdateMessage(String code, String languageTag) { I18nDataUnique channelBody = new I18nDataUnique(code, languageTag); String str = JsonUtil.toJson(channelBody); this.stringRedisTemplate.convertAndSend(I18nRedisKeyConstant.CHANNEL_I18N_DATA_UPDATED, str); } private List exists(List list) { Wrapper lambdaQuery = Wrappers.lambdaQuery(I18nData.class); for (I18nDataExcelVO excelVO : list) { lambdaQuery.or(w -> { String code = excelVO.getCode(); String languageTag = excelVO.getLanguageTag(); ((LambdaQueryWrapper) w.eq((v0) -> { return v0.getCode(); }, code)).eq((v0) -> { return v0.getLanguageTag(); }, languageTag); }); } return ((I18nDataMapper) this.baseMapper).selectList(lambdaQuery); } @Override // org.springblade.modules.system.service.I18nDataService public BladeFile exportExcel(I18nDataQueryDTO i18nDataQO, HttpServletResponse response) { List list = queryList(i18nDataQO); Stream stream = list.stream(); I18nDataConverter i18nDataConverter = I18nDataConverter.INSTANCE; i18nDataConverter.getClass(); List excelVOS = (List) stream.map(this::poToExcelVo).collect(Collectors.toList()); String fileName = String.format("%s-%s.xlsx", "多语言信息", DateUtil.time()); MultipartFile multipartFile = ExcelUtil.exportToMultipartFile(fileName, "多语言表", excelVOS, I18nDataExcelVO.class); return this.ossBuilder.tempTemplate().putFile(multipartFile.getOriginalFilename(), multipartFile); } }