【新增】添加easy trans的字典初始化
This commit is contained in:
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.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
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 org.springframework.stereotype.Service;
|
||||||
import vip.xiaonuo.common.enums.CommonSortOrderEnum;
|
import vip.xiaonuo.common.enums.CommonSortOrderEnum;
|
||||||
import vip.xiaonuo.common.exception.CommonException;
|
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.param.*;
|
||||||
import vip.xiaonuo.dev.modular.dict.service.DevDictService;
|
import vip.xiaonuo.dev.modular.dict.service.DevDictService;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -44,7 +50,12 @@ import java.util.stream.Collectors;
|
|||||||
* @date 2022/4/22 10:41
|
* @date 2022/4/22 10:41
|
||||||
**/
|
**/
|
||||||
@Service
|
@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
|
@Override
|
||||||
public Page<DevDict> page(DevDictPageParam devDictPageParam) {
|
public Page<DevDict> page(DevDictPageParam devDictPageParam) {
|
||||||
@ -103,6 +114,7 @@ public class DevDictServiceImpl extends ServiceImpl<DevDictMapper, DevDict> impl
|
|||||||
checkParam(devDictAddParam);
|
checkParam(devDictAddParam);
|
||||||
DevDict devDict = BeanUtil.toBean(devDictAddParam, DevDict.class);
|
DevDict devDict = BeanUtil.toBean(devDictAddParam, DevDict.class);
|
||||||
this.save(devDict);
|
this.save(devDict);
|
||||||
|
refreshTransCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkParam(DevDictAddParam devDictAddParam) {
|
private void checkParam(DevDictAddParam devDictAddParam) {
|
||||||
@ -129,6 +141,7 @@ public class DevDictServiceImpl extends ServiceImpl<DevDictMapper, DevDict> impl
|
|||||||
checkParam(devDictEditParam);
|
checkParam(devDictEditParam);
|
||||||
BeanUtil.copyProperties(devDictEditParam, devDict);
|
BeanUtil.copyProperties(devDictEditParam, devDict);
|
||||||
this.updateById(devDict);
|
this.updateById(devDict);
|
||||||
|
refreshTransCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkParam(DevDictEditParam devDictEditParam) {
|
private void checkParam(DevDictEditParam devDictEditParam) {
|
||||||
@ -178,4 +191,35 @@ public class DevDictServiceImpl extends ServiceImpl<DevDictMapper, DevDict> impl
|
|||||||
}
|
}
|
||||||
return devDict;
|
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…
x
Reference in New Issue
Block a user