Merge remote-tracking branch 'remotes/origin/dev' into test

yun-zuoyi
汪云昊 6 years ago
commit 1cd5bbeb9d

@ -47,6 +47,8 @@ public interface ISysLocaleResourceService {
@ApiOperation(value = "根据资源key查询资源")
List<SysLocaleResource> findSysLocaleResourceByResKey(String resKey);
List<SysLocaleResource> findSysLocaleResource(SysLocaleResource sysLocaleResource);
@ApiOperation(value = "根据id查询资源")
SysLocaleResource getSysLocaleResourceById(Long id);

@ -133,6 +133,7 @@ public class WhiteController extends CoreBaseController {
@RequestParam(required = false) String languageCode,
@RequestParam(required = false) String ipAddr,
@RequestParam(required = false) String deviceId){
Long startTime = System.currentTimeMillis();
startMultiService();
LOGGER.info("用户登陆 loginName:{} loginPwd:{} languageCode:{}",loginName,loginPwd,languageCode);
@ -206,6 +207,8 @@ public class WhiteController extends CoreBaseController {
// 记录登录记录
recordSysUserLog(null, loginName,CommonEnumUtil.USER_LOGIN_STATUS.SYSTEM_ERROR.getValue(), ipAddr);
}
LOGGER.info("会员{}登陆登录完成 , 登录耗时:{}",loginName,(System.currentTimeMillis() - startTime));
return result;
}

@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysLabelTemplateService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.BeanCopyTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
@ -21,6 +22,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
@ -124,15 +126,20 @@ public class SysLabelTemplateController extends CoreBaseController {
// 条件验证
ValidatorBean.beginValid(sysLabelTemplate)
.notNull("id", sysLabelTemplate.getId())
.notNull("templateCode", sysLabelTemplate.getTemplateCode())
.notNull("templateName", sysLabelTemplate.getTemplateName())
.notNull("paramsPack", sysLabelTemplate.getParamsPack())
.notNull("templateContent", sysLabelTemplate.getTemplateContent());
SysLabelTemplate template = sysLabelTemplateService.getSysLabelTemplateById(sysLabelTemplate.getId());
ValidatorBean.checkNotNull(template,"不存在的模板信息");
//添加初始化
ConvertBean.modelUpdate(sysLabelTemplate, user);
BeanCopyTool.beanCopy(sysLabelTemplate,template);
sysLabelTemplateService.updateSysLabelTemplate(sysLabelTemplate);
sysLabelTemplateService.updateSysLabelTemplate(template);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);

@ -153,7 +153,7 @@ public class SysTaskPlanController extends CoreBaseController {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode())
.setErrorDetail("定时任务已存在" + baseResultBean.getErrorMsg())
.setErrorDetail("定时任务已存在 %s" , baseResultBean.getErrorMsg())
.build();
}
@ -162,10 +162,11 @@ public class SysTaskPlanController extends CoreBaseController {
sysTask.getTaskClass(), sysTaskPlan.getName(), sysTaskPlan.getGroupName(), sysTaskCycle.getTaskCycleExps(),
sysTaskPlan.getTaskPlanParam());
if (!baseResultBean.isSuccess()) {
getJobService(sysTaskPlan.getTaskSoftTypeRdd()).deleteTask(sysTaskPlan.getName(),sysTaskPlan.getGroupName());
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode())
.setErrorDetail("定时任务添加失败-" + baseResultBean.getErrorMsg())
.setErrorDetail("定时任务添加失败- %s ", baseResultBean.getErrorMsg())
.build();
}

@ -72,13 +72,16 @@ public class UserPermissionDaoImpl implements IUserPermissionDao {
@Override
public List<SysMenu> findSysMenuByInRoleId(Long... roleId) {
LOGGER.info(" 查询用户所有菜单 roleIds :{}", roleId);
long starTime = System.currentTimeMillis();
LOGGER.info(" 查询用户所有菜单 roleIds :{} Start Time:{}", roleId,starTime);
List<SysMenu> result = new ArrayList<>();
if(roleId != null && roleId.length > 0){
String hql = "select sm from SysRefRoleMenu as rrm " +
" left join SysMenu as sm on sm.id = rrm.menuId" +
" where rrm.roleId in :roleId";
LOGGER.info(" 查询用户所有菜单 roleIds :{} SQL End Time:{}", roleId,(System.currentTimeMillis() - starTime));
List<SysMenu> list = entityManager.createQuery(hql).setParameter("roleId", Arrays.asList(roleId)).getResultList();
LOGGER.info(" 查询用户所有菜单 roleIds :{} SQL End Time:{}", roleId,(System.currentTimeMillis() - starTime));
if(list != null && list.size() > 0){
for (SysMenu menu : list) {
if(!result.contains(menu)){
@ -86,12 +89,17 @@ public class UserPermissionDaoImpl implements IUserPermissionDao {
}
}
}
LOGGER.info(" 查询用户所有菜单 roleIds :{} For End Time:{}", roleId,(System.currentTimeMillis() - starTime));
}
if(result != null && result.size() > 0){
LOGGER.info(" 查询用户所有菜单 roleIds :{} tranSysMenu Start Time:{}", roleId,(System.currentTimeMillis() - starTime));
result = localeResourceService.tranSysMenu(result);
LOGGER.info(" 查询用户所有菜单 roleIds :{} tranSysMenu End Time:{}", roleId,(System.currentTimeMillis() - starTime));
}
LOGGER.info(" 查询用户所有菜单 roleIds :{} End Time:{}", roleId,(System.currentTimeMillis() - starTime));
return result;
}

@ -4,23 +4,27 @@ import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysLocaleResourceService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService;
import cn.estsh.i3plus.core.api.iservice.busi.ISystemResourceService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.base.util.StringUtil;
import cn.estsh.i3plus.pojo.platform.bean.*;
import cn.estsh.i3plus.pojo.platform.repository.SysConfigRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysDictionaryRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysLocaleLanguageRepository;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import cn.estsh.impp.framework.boot.util.RedisUtilTool;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.*;
import java.util.stream.Collectors;
/**
@ -48,6 +52,9 @@ public class SystemInitService implements ISystemInitService {
private ISysLocaleResourceService localeResourceService;
@Autowired
private SysLocaleLanguageRepository sysLocaleLanguageRDao;
@Autowired
private ISysMenuService menuService;
@Resource(name= CommonConstWords.IMPP_REDIS_RES)
@ -62,7 +69,7 @@ public class SystemInitService implements ISystemInitService {
putAndLoadSysConfig();
putAndLoadSysDictionary();
putAndLoadSysLocaleLanguage();
// putAndLoadSysMenu();
putAndLoadSysMenu();
}
@Override
@ -163,7 +170,54 @@ public class SystemInitService implements ISystemInitService {
@ApiOperation(value = "加载语言数据",notes = "加载语言数据")
public void putAndLoadSysMenu() {
localeResourceService.tranSysMenu(menuService.findSysMenuAll());
SysLocaleResource resource = new SysLocaleResource();
resource.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.MENU.getValue());
List<SysLocaleResource> resources = localeResourceService.findSysLocaleResource(resource);
List<SysMenu> menus = menuService.findSysMenuAll();
List<SysLocaleLanguage> languages = sysLocaleLanguageRDao.findAll();
Map<String,SysLocaleResource> resourceKeyMap = new HashMap<>();
List<SysLocaleResource> insertList = new ArrayList<>();
Map<String,String> redisCacheMap = new HashMap<>();
if(resource != null && resources.size() > 0){
resources.forEach(res -> resourceKeyMap.put(StringUtils.join(res.getLanguageCode(),res.getResourceKey()),res));
}
if(menus != null && menus.size() > 0
&& languages != null && languages.size() > 0){
for (SysLocaleLanguage language : languages) {
String redisLanguageKey = CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE_MENU + ":" + language.getLanguageCode();
for (SysMenu menu : menus) {
SysLocaleResource res = resourceKeyMap.get(StringUtils.join(language.getLanguageCode(),menu.getName()));
if(res == null){
// 当系统没有相应的功能权限资源时创建资源
res = new SysLocaleResource();
res.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.MENU.getValue());
res.setLanguageCode(language.getLanguageCode());
res.setLanguageNameRdd(language.getLanguageName());
res.setResourceKey(menu.getName());
res.setResourceValue(menu.getName());
res.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
ConvertBean.serviceModelInitialize(res, PlatformConstWords.SYSTEM_INIT_USER);
insertList.add(res);
}
resourceKeyMap.put(StringUtils.join(res.getLanguageCode(),res.getResourceKey()),res);
redisCacheMap.put(res.getResourceKey(),res.getResourceValue());
}
redisRes.putHashMap(redisLanguageKey,redisCacheMap,0);
redisCacheMap.clear();
}
}
if(insertList != null && insertList.size() > 0){
localeResourceService.saveSysLocaleResource(insertList);
}
}

@ -6,10 +6,12 @@ import cn.estsh.i3plus.platform.common.tool.BeanCopyTool;
import cn.estsh.i3plus.platform.common.tool.SerializeTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.util.StringUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage;
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource;
@ -132,14 +134,9 @@ public class SysLocaleResourceService implements ISysLocaleResourceService {
@ApiOperation(value = "系统资源复杂查询,分页,排序",notes = "系统资源复杂查询,分页,排序")
public ListPager querySysLocaleResourceByPager(SysLocaleResource sysLocaleResource, Pager pager) {
LOGGER.info("系统资源 SYS_LOCALE_RESOURCE SysLocaleResource{}Pager{}",sysLocaleResource,pager);
if(sysLocaleResourceRDao == null) {
pager = PagerHelper.getPager(pager, sysLocaleResourceRDao.listCount());
return new ListPager(sysLocaleResourceRDao.listPager(pager),pager);
}else {
String hqlPack = CoreHqlPack.packHqlSysLocaleResource(sysLocaleResource);
pager = PagerHelper.getPager(pager, sysLocaleResourceRDao.findByHqlWhereCount(hqlPack));
return new ListPager(sysLocaleResourceRDao.findByHqlWherePage(hqlPack + sysLocaleResource.orderBy(),pager),pager);
}
DdlPackBean packBean = CoreHqlPack.packHqlSysLocaleResource(sysLocaleResource);
pager = PagerHelper.getPager(pager, sysLocaleResourceRDao.findByHqlWhereCount(packBean));
return new ListPager(sysLocaleResourceRDao.findByHqlWherePage(packBean,pager),pager);
}
@Override
@ -188,6 +185,11 @@ public class SysLocaleResourceService implements ISysLocaleResourceService {
}
@Override
public List<SysLocaleResource> findSysLocaleResource(SysLocaleResource sysLocaleResource) {
return sysLocaleResourceRDao.findByHqlWhere(CoreHqlPack.packHqlSysLocaleResource(sysLocaleResource));
}
@Override
public SysLocaleResource getSysLocaleResourceById(Long id) {
return sysLocaleResourceRDao.getById(id);
}
@ -196,64 +198,27 @@ public class SysLocaleResourceService implements ISysLocaleResourceService {
public List<SysMenu> tranSysMenu(List<SysMenu> menuList) {
if(menuList != null && menuList.size() > 0){
String languageCode = (String) AuthUtil.getSessionLanguage();
List<SysLocaleLanguage> languageList = sysLocaleLanguageRDao.list();
menuList = (List<SysMenu>) SerializeTool.copyObject(menuList);
Map<String,String> resourceMap = new HashMap<>();
List<SysLocaleResource> insertList = new ArrayList<>();
SysLocaleResource insert = null;
String redisMenuKey = null;
String redisMenuParentKey = null;
for (SysMenu menu : menuList) {
if(menu != null){
redisMenuKey = CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE +":" + menu.getName();
redisMenuParentKey = CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE +":" + menu.getParentId();
Map menuResourceMap = redisRes.getHashMap(redisMenuKey);
Map menuParentSesourceMap = redisRes.getHashMap(redisMenuParentKey);
if(menuResourceMap == null || menuResourceMap.size() <= 0){
menuResourceMap = new HashMap();
if(languageList != null){
for (SysLocaleLanguage language : languageList) {
insert = new SysLocaleResource();
insert.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.MENU.getValue());
insert.setLanguageCode(language.getLanguageCode());
insert.setLanguageNameRdd(language.getLanguageName());
insert.setResourceKey(menu.getName());
insert.setResourceValue(menu.getName());
insert.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
ConvertBean.serviceModelInitialize(insert, PlatformConstWords.SYSTEM_INIT_USER);
insertList.add(insert);
menuResourceMap.put(language.getLanguageCode(),insert.getResourceValue());
}
}
/* 保存 Redis */
if(redisMenuKey.equals("CACHE_LANGUAGE:用户管理")){
System.out.println("===./");
String redisLanguageKey = CommonConstWords.REDIS_PREFIX_CACHE_LANGUAGE_MENU + ":" + languageCode;
Map menuResourceMap = redisRes.getHashMap(redisLanguageKey);
if(menuResourceMap != null && menuResourceMap.size() > 0 ){
for (SysMenu menu : menuList) {
if(menu != null){
if(StringUtils.isNotBlank(menu.getName())){
String menuName = (String)menuResourceMap.get(menu.getName());
menu.setName(StringUtils.isNotBlank(menuName) ? menuName : menu.getName());
}
redisRes.putHashMap(redisMenuKey, menuResourceMap, 0);
}
/* 菜单名称 国际化 */
if(menuResourceMap != null && menuResourceMap.size() > 0){
String menuName = (String)menuResourceMap.get(languageCode);
menu.setName(StringUtils.isNotBlank(menuName) ? menuName : menu.getName());
if(StringUtils.isNotBlank(menu.getParentNameRdd())){
String parentNameRdd = (String)menuResourceMap.get(menu.getParentNameRdd());
menu.setParentNameRdd(StringUtils.isNotBlank(parentNameRdd) ? parentNameRdd : menu.getParentNameRdd());
}
}
/* 功能菜单 父节点国际化 */
if(menuParentSesourceMap != null && menuParentSesourceMap.size() > 0){
String parentNameRdd = (String)menuParentSesourceMap.get(languageCode);
menu.setParentNameRdd(StringUtils.isNotBlank(parentNameRdd) ? parentNameRdd : menu.getParentNameRdd());
}
}
}
/* 保存资源信息 */
if(insertList != null && insertList.size() > 0){
sysLocaleResourceRDao.saveAll(insertList);
}
}
return menuList;
}

@ -198,6 +198,10 @@ public class SysMenuService implements ISysMenuService {
@ApiOperation(value = "查询菜单信息",notes = "查询所有菜单信息")
public List<SysMenu> findSysMenuAll() {
LOGGER.info("系统功能 SYS_MENU find All");
SysMenu menu = new SysMenu();
menu.setMenuStatus(CommonEnumUtil.DATA_STATUS.ENABLE.getValue());
menu.setOrderByParam("menuSort");
menu.setAscOrDesc(CommonEnumUtil.ASC_OR_DESC.DESC.getValue());
return sysMenuRDao.findByProperty(new String[]{"menuStatus"},new Object[]{CommonEnumUtil.DATA_STATUS.ENABLE.getValue()});
}

@ -1,6 +1,7 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISystemResourceService;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
@ -125,28 +126,14 @@ public class SystemResourceService implements ISystemResourceService {
@Override
public ListPager<SysLocaleResource> listSysLocaleResourceByPager(SysLocaleResource res, Pager pager) {
if(res == null){
//不传入实体对象,查询所有
int count = (int)sysLocaleResourceRDao.listCount();
pager = PagerHelper.getPager(pager,count);
return new ListPager(sysLocaleResourceRDao.listPager(pager),pager);
}else {
//生成hql查询语句
String hqlPack = CoreHqlPack.packHqlSysLocaleResource(res);
pager = PagerHelper.getPager(pager,sysLocaleResourceRDao.findByHqlWhereCount(hqlPack));
return new ListPager(sysLocaleResourceRDao.findByHqlWherePage(hqlPack + res.orderBy(), pager),pager);
}
DdlPackBean packBean = CoreHqlPack.packHqlSysLocaleResource(res);
pager = PagerHelper.getPager(pager,sysLocaleResourceRDao.findByHqlWhereCount(packBean));
return new ListPager(sysLocaleResourceRDao.findByHqlWherePage(packBean, pager),pager);
}
@Override
public List<SysLocaleResource> listSysLocaleResource(SysLocaleResource res) {
if(res == null){
return sysLocaleResourceRDao.list();
}else {
return sysLocaleResourceRDao.findByProperty(
new String[]{"resourceType", "languageCode", "resourceKey", "resourceValue", "isSystem"},
new Object[]{res.getResourceType(), res.getLanguageCode(), res.getResourceKey(), res.getResourceValue(), res.getIsSystem()});
}
return sysLocaleResourceRDao.findByHqlWhere(CoreHqlPack.packHqlSysLocaleResource(res));
}
@Override

@ -29,7 +29,7 @@ import java.util.regex.Pattern;
public class ResourceImportUtil {
public static void main(String[] args) {
File file = new File("C:\\Users\\yunha\\Desktop\\191101_资源.xlsx");
File file = new File("C:\\Users\\yunha\\Desktop\\资源文件.xlsx");
File sql = new File("C:\\Users\\yunha\\Desktop\\imppResource.sql");
int i = 1;
try {
@ -173,7 +173,10 @@ public class ResourceImportUtil {
sysLocaleResource.setLanguageNameRdd("English");
sysLocaleResource.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.ENUM.getValue());
sysLocaleResource.setResourceKey(row.getCell(1).getStringCellValue()+":"+row.getCell(2).getStringCellValue());
sysLocaleResource.setResourceValue(row.getCell(3).getStringCellValue());
if(row.getCell(4)!= null) {
row.getCell(4).setCellType(CellType.STRING);
sysLocaleResource.setResourceValue(row.getCell(4).getStringCellValue());
}
System.out.println(sql(sysLocaleResource));
bufferWritter.write(sql(sysLocaleResource));

Loading…
Cancel
Save