mirror of https://gitee.com/xiaonuobase/snowy
【新增】添加easy trans的字典初始化
parent
bfab7cf0f2
commit
f34d074d00
|
@ -24,6 +24,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.fhs.trans.service.impl.DictionaryTransService;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.stereotype.Service;
|
||||
import vip.xiaonuo.common.enums.CommonSortOrderEnum;
|
||||
import vip.xiaonuo.common.exception.CommonException;
|
||||
|
@ -34,7 +36,11 @@ import vip.xiaonuo.dev.modular.dict.mapper.DevDictMapper;
|
|||
import vip.xiaonuo.dev.modular.dict.param.*;
|
||||
import vip.xiaonuo.dev.modular.dict.service.DevDictService;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
@ -44,7 +50,12 @@ import java.util.stream.Collectors;
|
|||
* @date 2022/4/22 10:41
|
||||
**/
|
||||
@Service
|
||||
public class DevDictServiceImpl extends ServiceImpl<DevDictMapper, DevDict> implements DevDictService {
|
||||
public class DevDictServiceImpl extends ServiceImpl<DevDictMapper, DevDict> implements DevDictService, InitializingBean {
|
||||
|
||||
private static final String ROOT_PARENT_ID = "0";
|
||||
|
||||
@Resource
|
||||
private DictionaryTransService dictionaryTransService;
|
||||
|
||||
@Override
|
||||
public Page<DevDict> page(DevDictPageParam devDictPageParam) {
|
||||
|
@ -103,6 +114,7 @@ public class DevDictServiceImpl extends ServiceImpl<DevDictMapper, DevDict> impl
|
|||
checkParam(devDictAddParam);
|
||||
DevDict devDict = BeanUtil.toBean(devDictAddParam, DevDict.class);
|
||||
this.save(devDict);
|
||||
refreshTransCache();
|
||||
}
|
||||
|
||||
private void checkParam(DevDictAddParam devDictAddParam) {
|
||||
|
@ -129,6 +141,7 @@ public class DevDictServiceImpl extends ServiceImpl<DevDictMapper, DevDict> impl
|
|||
checkParam(devDictEditParam);
|
||||
BeanUtil.copyProperties(devDictEditParam, devDict);
|
||||
this.updateById(devDict);
|
||||
refreshTransCache();
|
||||
}
|
||||
|
||||
private void checkParam(DevDictEditParam devDictEditParam) {
|
||||
|
@ -178,4 +191,35 @@ public class DevDictServiceImpl extends ServiceImpl<DevDictMapper, DevDict> impl
|
|||
}
|
||||
return devDict;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
refreshTransCache();
|
||||
}
|
||||
|
||||
private void refreshTransCache() {
|
||||
// 异步不阻塞主线程,不会 增加启动用时
|
||||
CompletableFuture.supplyAsync(()->{
|
||||
// 使用redis能解决共享问题,但是性能没有直接取缓存的好。
|
||||
dictionaryTransService.makeUseRedis();
|
||||
List<DevDict> devDicts = super.list(new LambdaQueryWrapper<DevDict>());
|
||||
// 非root级别的字典根据ParentId分组
|
||||
Map<String,List<DevDict>> devDictGroupByPIDMap = devDicts.stream().filter(dict -> {
|
||||
return !ROOT_PARENT_ID.equals(dict.getParentId());
|
||||
}).collect(Collectors.groupingBy(DevDict::getParentId));
|
||||
Map<String,String> parentDictIdValMap = devDicts.stream().filter(dict -> {
|
||||
return ROOT_PARENT_ID.equals(dict.getParentId());
|
||||
}).collect(Collectors.toMap(DevDict::getId,DevDict::getDictValue));
|
||||
for (String parentId : parentDictIdValMap.keySet()) {
|
||||
if(devDictGroupByPIDMap.containsKey(parentId)){
|
||||
dictionaryTransService.refreshCache(parentDictIdValMap.get(parentId),devDictGroupByPIDMap.get(parentId).stream()
|
||||
.collect(Collectors.toMap(DevDict::getDictValue,DevDict::getDictLabel)));
|
||||
}
|
||||
|
||||
}
|
||||
return null;
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue