mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-06-10 18:30:02 +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.CacheConstants;
|
||||||
import com.jsowell.common.constant.Constants;
|
import com.jsowell.common.constant.Constants;
|
||||||
import com.jsowell.common.core.domain.entity.SysDictData;
|
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.core.redis.RedisCache;
|
||||||
import com.jsowell.common.enums.thirdparty.ThirdPlatformTypeEnum;
|
import com.jsowell.common.enums.thirdparty.ThirdPlatformTypeEnum;
|
||||||
import com.jsowell.common.exception.BusinessException;
|
|
||||||
import com.jsowell.common.util.DateUtils;
|
import com.jsowell.common.util.DateUtils;
|
||||||
|
import com.jsowell.common.util.DictUtils;
|
||||||
import com.jsowell.pile.mapper.ThirdPartyStationRelationMapper;
|
import com.jsowell.pile.mapper.ThirdPartyStationRelationMapper;
|
||||||
import com.jsowell.pile.vo.ThirdPartySecretInfoVO;
|
import com.jsowell.pile.vo.ThirdPartySecretInfoVO;
|
||||||
import com.jsowell.pile.vo.base.StationInfoVO;
|
import com.jsowell.pile.vo.base.StationInfoVO;
|
||||||
import com.jsowell.system.mapper.SysDictDataMapper;
|
import com.jsowell.system.mapper.SysDictDataMapper;
|
||||||
import com.jsowell.system.mapper.SysDictTypeMapper;
|
|
||||||
import com.jsowell.thirdparty.domain.ThirdpartySecretInfo;
|
import com.jsowell.thirdparty.domain.ThirdpartySecretInfo;
|
||||||
import com.jsowell.thirdparty.mapper.ThirdpartySecretInfoMapper;
|
import com.jsowell.thirdparty.mapper.ThirdpartySecretInfoMapper;
|
||||||
import com.jsowell.thirdparty.service.ThirdpartySecretInfoService;
|
import com.jsowell.thirdparty.service.ThirdpartySecretInfoService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@@ -32,6 +32,7 @@ import java.util.stream.Collectors;
|
|||||||
* @date 2024-04-18
|
* @date 2024-04-18
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@Slf4j
|
||||||
public class ThirdpartySecretInfoServiceImpl implements ThirdpartySecretInfoService {
|
public class ThirdpartySecretInfoServiceImpl implements ThirdpartySecretInfoService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ThirdpartySecretInfoMapper thirdpartySecretInfoMapper;
|
private ThirdpartySecretInfoMapper thirdpartySecretInfoMapper;
|
||||||
@@ -158,22 +159,37 @@ public class ThirdpartySecretInfoServiceImpl implements ThirdpartySecretInfoServ
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public String syncThirdpartyPlatformNameToDict() {
|
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()
|
for (ThirdPlatformTypeEnum platformType : ThirdPlatformTypeEnum.values()) {
|
||||||
.collect(Collectors.toMap(SysDictData::getDictValue, Function.identity()));
|
if (!dictDataMap.containsKey(platformType.getTypeCode())) {
|
||||||
|
SysDictData dictData = createDictData(platformType);
|
||||||
for (ThirdPlatformTypeEnum platformType : ThirdPlatformTypeEnum.values()) {
|
sysDictDataMapper.insertDictData(dictData);
|
||||||
String typeCode = platformType.getTypeCode();
|
}
|
||||||
if (!dictDataMap.containsKey(typeCode)) {
|
|
||||||
// 创建并保存新的字典数据
|
|
||||||
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) {
|
private SysDictData createDictData(ThirdPlatformTypeEnum platformType) {
|
||||||
|
|||||||
Reference in New Issue
Block a user