mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 02:55:04 +08:00
update
This commit is contained in:
@@ -3,22 +3,22 @@ package com.jsowell.thirdparty.service.impl;
|
||||
import com.jsowell.common.constant.CacheConstants;
|
||||
import com.jsowell.common.constant.Constants;
|
||||
import com.jsowell.common.core.domain.entity.SysDictData;
|
||||
import com.jsowell.common.core.domain.entity.SysDictType;
|
||||
import com.jsowell.common.core.redis.RedisCache;
|
||||
import com.jsowell.common.enums.thirdparty.ThirdPlatformTypeEnum;
|
||||
import com.jsowell.common.exception.BusinessException;
|
||||
import com.jsowell.common.util.DateUtils;
|
||||
import com.jsowell.common.util.DictUtils;
|
||||
import com.jsowell.pile.mapper.ThirdPartyStationRelationMapper;
|
||||
import com.jsowell.pile.vo.ThirdPartySecretInfoVO;
|
||||
import com.jsowell.pile.vo.base.StationInfoVO;
|
||||
import com.jsowell.system.mapper.SysDictDataMapper;
|
||||
import com.jsowell.system.mapper.SysDictTypeMapper;
|
||||
import com.jsowell.thirdparty.domain.ThirdpartySecretInfo;
|
||||
import com.jsowell.thirdparty.mapper.ThirdpartySecretInfoMapper;
|
||||
import com.jsowell.thirdparty.service.ThirdpartySecretInfoService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
@@ -32,6 +32,7 @@ import java.util.stream.Collectors;
|
||||
* @date 2024-04-18
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ThirdpartySecretInfoServiceImpl implements ThirdpartySecretInfoService {
|
||||
@Autowired
|
||||
private ThirdpartySecretInfoMapper thirdpartySecretInfoMapper;
|
||||
@@ -158,22 +159,37 @@ public class ThirdpartySecretInfoServiceImpl implements ThirdpartySecretInfoServ
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String syncThirdpartyPlatformNameToDict() {
|
||||
List<SysDictData> existingDictData = sysDictDataMapper.selectDictDataByType(Constants.THIRD_PARTY_TYPE);
|
||||
try {
|
||||
// 获取现有字典数据
|
||||
List<SysDictData> existingDictData = sysDictDataMapper.selectDictDataByType(Constants.THIRD_PARTY_TYPE);
|
||||
Map<String, SysDictData> dictDataMap = existingDictData.stream()
|
||||
.collect(Collectors.toMap(SysDictData::getDictValue, Function.identity()));
|
||||
|
||||
Map<String, SysDictData> dictDataMap = existingDictData.stream()
|
||||
.collect(Collectors.toMap(SysDictData::getDictValue, Function.identity()));
|
||||
|
||||
for (ThirdPlatformTypeEnum platformType : ThirdPlatformTypeEnum.values()) {
|
||||
String typeCode = platformType.getTypeCode();
|
||||
if (!dictDataMap.containsKey(typeCode)) {
|
||||
// 创建并保存新的字典数据
|
||||
SysDictData dictData = createDictData(platformType);
|
||||
sysDictDataMapper.insertDictData(dictData);
|
||||
for (ThirdPlatformTypeEnum platformType : ThirdPlatformTypeEnum.values()) {
|
||||
if (!dictDataMap.containsKey(platformType.getTypeCode())) {
|
||||
SysDictData dictData = createDictData(platformType);
|
||||
sysDictDataMapper.insertDictData(dictData);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 删除并重新加载缓存
|
||||
DictUtils.removeDictCache(Constants.THIRD_PARTY_TYPE);
|
||||
List<SysDictData> updatedDictData = sysDictDataMapper.selectDictDataByType(Constants.THIRD_PARTY_TYPE);
|
||||
|
||||
return "同步完成";
|
||||
// 验证数据一致性
|
||||
if (updatedDictData.size() == ThirdPlatformTypeEnum.values().length) {
|
||||
DictUtils.setDictCache(Constants.THIRD_PARTY_TYPE, updatedDictData);
|
||||
return "同步完成";
|
||||
} else {
|
||||
log.error("同步第三方平台名称到字典失败,数据不一致。期望数量: {}, 实际数量: {}",
|
||||
ThirdPlatformTypeEnum.values().length, updatedDictData.size());
|
||||
throw new RuntimeException("同步失败:数据不一致");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("同步第三方平台名称到字典时发生异常", e);
|
||||
throw new RuntimeException("同步失败:系统异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
private SysDictData createDictData(ThirdPlatformTypeEnum platformType) {
|
||||
|
||||
Reference in New Issue
Block a user