yun-zuoyi
wei.peng 6 years ago
commit ed25f29058

@ -48,4 +48,7 @@ public interface ISysLocaleLanguageService {
@ApiOperation(value = "根据语言状态查询语言信息")
List<SysLocaleLanguage> findSysLocaleLanguageByStatus(Integer status);
@ApiOperation(value = "根据code查询语言")
SysLocaleLanguage getSysLocaleLanguageById(Long id);
}

@ -36,4 +36,10 @@ public interface ISysLocaleResourceService {
@ApiOperation(value = "批量添加")
void insertSysLocaleResourceList(List<SysLocaleResource> sysLocaleResources);
@ApiOperation(value = "根据语言code和资源key查询资源")
SysLocaleResource getSysLocaleResourceByLanguageCodeAndResKey(String languageCode,String resKey);
@ApiOperation(value = "根据id查询资源")
SysLocaleResource getSysLocaleResourceById(Long id);
}

@ -1,5 +1,6 @@
package cn.estsh.i3plus.core.apiservice.controller.base;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService;
import cn.estsh.i3plus.core.api.iservice.busi.*;
import cn.estsh.i3plus.platform.common.tool.ServletRequestTool;
@ -14,6 +15,7 @@ import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
@ -27,8 +29,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
/**
* @Description :
@ -56,6 +60,12 @@ public class WhiteController extends CoreBaseController {
@Autowired
private IPersonnelService personnelService;
@Autowired
private ISystemInitService systemInitService;
@Resource(name="redisRes")
private ImppRedis redisRes;
@GetMapping(value = "/sys-locale-language/list")
@ApiOperation(value = "查询可用语言",notes = "查询可用语言")
public ResultBean listSysLocaleLanguage(){
@ -177,4 +187,32 @@ public class WhiteController extends CoreBaseController {
userService.insertSysLogUserLogin(log);
}
@GetMapping(value = "/find-language-code")
@ApiOperation(value = "根据语言代码查询资源")
public ResultBean findSysLocaleResourceByLanguageCode(String languageCode){
try {
ValidatorBean.checkNotNull(languageCode,"语言代码不能为空");
if (sysLocaleLanguageService.getSysLocaleLanguageByCode(languageCode) == null) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("语言不存在")
.build();
}
// 从缓存获取语言信息
Map<Object, Object> resourceMap = redisRes.getHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + languageCode);
if (resourceMap == null || resourceMap.size() == 0) {
systemInitService.loadSysLocaleLanguage();
resourceMap = redisRes.getHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + languageCode);
}
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(resourceMap);
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
}catch(Exception e){
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -373,12 +373,12 @@ public class TestController {
if (deleteCache && batchPutCache) {
redisRes.deleteKey(redisKey);
} else if (deleteCache) {
for (int i = 0; i < list.size(); i++) {
redisRes.putObject(redisKey + i, list.get(i), cacheTime);
for (int i = 0; i < num; i++) {
redisRes.deleteKey(redisKey + i);
}
}
return ResultBean.success("调用完成-耗时:" + (System.currentTimeMillis() - time) + ",数据量:" + list.size())
return ResultBean.success("调用完成-耗时:" + (System.currentTimeMillis() - time) + ",数据量:" + num)
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);

@ -43,6 +43,8 @@ public class SysResourceBindleListener implements ApplicationListener<ContextRef
*/
HashMap<String,HashMap<String,String>> resMap = new HashMap();
HashMap<String,String> lanMap = null;
HashMap<String,HashMap<String,String>> webLangMap = new HashMap<>();
HashMap<String,String> webResMap;
//语言数量
List<SysLocaleLanguage> langList = systemResourceService.listSysLocaleLanguage(null);
@ -61,6 +63,14 @@ public class SysResourceBindleListener implements ApplicationListener<ContextRef
}
//根据语言放入
lanMap.put(res.getLanguageCode(),res.getResourceValue());
// web 资源
if(!webLangMap.containsKey(res.getLanguageCode())){
webLangMap.put(res.getLanguageCode(),new HashMap<>());
}
// 放入资源信息
webResMap = webLangMap.get(res.getLanguageCode());
webResMap.put(res.getResourceKey(),res.getResourceValue());
}
for(String key : resMap.keySet()){
@ -68,6 +78,11 @@ public class SysResourceBindleListener implements ApplicationListener<ContextRef
redisRes.putHashMap(key,resMap.get(key),0);
}
for(String key : webLangMap.keySet()){
//放入缓存
redisRes.putHashMap(key,webLangMap.get(key),0);
}
LOGGER.info("【资源配置文件已全部加载:{}个】",resMap.size());
/*

@ -1,10 +1,13 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.base;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.core.api.iservice.busi.ISystemResourceService;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysConfig;
import cn.estsh.i3plus.pojo.platform.bean.SysDictionary;
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage;
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource;
import cn.estsh.i3plus.pojo.platform.repository.SysConfigRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysDictionaryRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysLocaleLanguageRepository;
@ -16,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -39,7 +43,7 @@ public class SystemInitService implements ISystemInitService {
private SysDictionaryRepository dictionaryRDao;
@Autowired
private SysLocaleLanguageRepository localeLanguageRDao;
public ISystemResourceService systemResourceService;
@Resource(name="redisRes")
private ImppRedis redisRes;
@ -99,7 +103,53 @@ public class SystemInitService implements ISystemInitService {
public void loadSysLocaleLanguage() {
// Redis 缓存
if(type == ImppEnumUtil.SYS_CACHE_TYPE.REDIS.getValue()){
// TODO 汪云昊 实现
/**
*
* code <lang : value>
* code
*/
HashMap<String,HashMap<String,String>> resMap = new HashMap();
HashMap<String,String> lanMap = null;
HashMap<String,HashMap<String,String>> webLangMap = new HashMap<>();
HashMap<String,String> webResMap;
//语言数量
List<SysLocaleLanguage> langList = systemResourceService.listSysLocaleLanguage(null);
//查询所有资源
List<SysLocaleResource> resourceList = systemResourceService.listSysLocaleResource(null);
LOGGER.info("【加载平台资源】共有{}个资源,{}种语言。",resourceList.size(),langList.size());
for(SysLocaleResource res : resourceList) {
//遍历资源放入map中
lanMap = resMap.get(res.getResourceKey());
//判断是否已存在资源信息
if(lanMap == null){
lanMap = new HashMap();
//将key/代码放入
resMap.put(res.getResourceKey(),lanMap);
}
//根据语言放入
lanMap.put(res.getLanguageCode(),res.getResourceValue());
// web 资源
if(!webLangMap.containsKey(res.getLanguageCode())){
webLangMap.put(res.getLanguageCode(),new HashMap<>());
}
// 放入资源信息
webResMap = webLangMap.get(res.getLanguageCode());
webResMap.put(res.getResourceKey(),res.getResourceValue());
}
for(String key : resMap.keySet()){
//放入缓存
redisRes.putHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + key,resMap.get(key),0);
}
for(String key : webLangMap.keySet()){
//放入缓存
redisRes.putHashMap(CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE + key,webLangMap.get(key),0);
}
}
}

@ -201,4 +201,9 @@ public class SysLocaleLanguageService implements ISysLocaleLanguageService {
public List<SysLocaleLanguage> findSysLocaleLanguageByStatus(Integer status) {
return sysLocaleLanguageRDao.findByProperty("languageStatus",status);
}
@Override
public SysLocaleLanguage getSysLocaleLanguageById(Long id) {
return sysLocaleLanguageRDao.getById(id);
}
}

@ -63,6 +63,7 @@ public class SysLocaleResourceService implements ISysLocaleResourceService {
}
@Override
@ApiOperation(value = "修改系统资源",notes = "修改系统资源")
public void updateSysLocaleResource(SysLocaleResource sysLocaleResource) {
LOGGER.info("系统资源 SYS_LOCALE_RESOURCE SysLocaleResource{}",sysLocaleResource);
String hqlPack = CoreHqlPack.packHqlSysLocaleResourceKey(sysLocaleResource);
@ -86,18 +87,21 @@ public class SysLocaleResourceService implements ISysLocaleResourceService {
}
@Override
@ApiOperation(value = "根据id删除系统资源",notes = "根据id删除系统资源")
public void deleteSysLocaleResourceById(Long id) {
LOGGER.info("系统资源 SYS_LOCALE_RESOURCE id{}",id);
sysLocaleResourceRDao.deleteById(id);
}
@Override
@ApiOperation(value = "查询全部系统资源",notes = "查询全部系统资源")
public List listSysLocaleResource() {
LOGGER.info("系统资源 SYS_LOCALE_RESOURCE list");
return sysLocaleResourceRDao.list();
}
@Override
@ApiOperation(value = "系统资源复杂查询,分页,排序",notes = "系统资源复杂查询,分页,排序")
public ListPager querySysLocaleResourceByPager(SysLocaleResource sysLocaleResource, Pager pager) {
LOGGER.info("系统资源 SYS_LOCALE_RESOURCE SysLocaleResource{}Pager{}",sysLocaleResource,pager);
if(sysLocaleResourceRDao == null) {
@ -111,13 +115,46 @@ public class SysLocaleResourceService implements ISysLocaleResourceService {
}
@Override
@ApiOperation(value = "根据id批量删除",notes = "根据id批量删除")
public void deleteSysLocaleResourceByIds(Long[] ids) {
LOGGER.info("系统资源 SYS_LOCALE_RESOURCE ids{}",ids);
sysLocaleResourceRDao.deleteByIds(ids);
}
@Override
@ApiOperation(value = "批量添加")
public void insertSysLocaleResourceList(List<SysLocaleResource> sysLocaleResourcesList) {
// 添加校验
SysLocaleResource sysLocaleResource = sysLocaleResourcesList.get(0);
LOGGER.info("系统资源 SYS_LOCALE_RESOURCE SysLocaleResource{}",sysLocaleResource);
int count = sysLocaleResourceRDao.findByPropertyCount(new String[]{"languageCode","resourceKey"},
new String[]{sysLocaleResource.getLanguageCode(),sysLocaleResource.getResourceKey()});
if (count > 0){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())
.setErrorDetail("语言资源已存在")
.setErrorSolution("请重新输入语言代码与资源键")
.build();
}
// 设置语言名称冗余
SysLocaleLanguage sysLocaleLanguage = sysLocaleLanguageRDao.getByProperty("languageCode",
sysLocaleResource.getLanguageCode());
ValidatorBean.checkNotNull(sysLocaleLanguage,"选中的语言不存在");
sysLocaleResource.setLanguageNameRdd(sysLocaleLanguage.getLanguageName());
sysLocaleResourceRDao.saveAll(sysLocaleResourcesList);
}
@Override
@ApiOperation(value = "根据语言code和资源key查询资源")
public SysLocaleResource getSysLocaleResourceByLanguageCodeAndResKey(String languageCode,String resKey) {
return sysLocaleResourceRDao.getByProperty(new String[]{"languageCode","resourceKey"},new String[]{languageCode,resKey});
}
@Override
public SysLocaleResource getSysLocaleResourceById(Long id) {
return sysLocaleResourceRDao.getById(id);
}
}

@ -20,6 +20,7 @@ public class OrderNoMakeUtil {
StringBuilder orderNo = new StringBuilder(orderNoRule.getOrderNoRule());
String[] dateTime = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(System.currentTimeMillis()).split("-");
// 单号表达式的
replace(orderNo, PlatformConstWords.YEAR, dateTime[0]);
replace(orderNo, PlatformConstWords.MONTH, dateTime[1]);
replace(orderNo, PlatformConstWords.DAY, dateTime[2]);

Loading…
Cancel
Save