diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java index dd46321..4604a25 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java @@ -247,7 +247,7 @@ public interface ISysUserService { * @return */ @ApiOperation(value = "封装用户信息",notes = "封装登录完成后的用户信息(角色、权限、部门、组织、岗位)") - SessionUser packSessionUser(SessionUser sessionUser, SysUser user, Integer userType, String languageCode); + SessionUser packSessionUser(SessionUser sessionUser, SysUser user, Integer userType,Integer loginPlatform, String languageCode); /** * 根据id查询用户信息 diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/AppStartSystemInit.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/AppStartSystemInit.java index 7df9225..544c9d5 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/AppStartSystemInit.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/AppStartSystemInit.java @@ -6,10 +6,7 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysUserInfoService; import cn.estsh.i3plus.core.api.iservice.busi.ISystemResourceService; import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage; -import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource; -import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; -import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; +import cn.estsh.impp.framework.boot.configuration.SystemConfig; import cn.estsh.impp.framework.boot.util.ImppRedis; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -17,9 +14,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; + import javax.annotation.Resource; -import java.util.HashMap; -import java.util.List; /** * @Description : @@ -47,6 +43,9 @@ public class AppStartSystemInit implements CommandLineRunner { private ImppRedis redisRes; @Autowired + private SystemConfig systemConfig; + + @Autowired private ISystemResourceService systemResourceService; @Autowired @@ -64,6 +63,11 @@ public class AppStartSystemInit implements CommandLineRunner { LOGGER.info("【IMPP-Core开始加载基础信息...】"); systemInitService.putAndLoadAll(); + + // 加载系统配置文件 + LOGGER.info("【IMPP-Core 加载系统配置文件到缓存中 ...】"); + systemConfig.loadSystemConfig(CommonEnumUtil.SOFT_TYPE.CORE.getCode()); + LOGGER.info("【IMPP-Core 加载系统配置文件到缓存完成】"); } /** diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/SystemController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/SystemController.java index 8f13ff1..c28a99d 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/SystemController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/SystemController.java @@ -1,22 +1,34 @@ package cn.estsh.i3plus.core.apiservice.controller.base; +import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService; +import cn.estsh.i3plus.icloud.wms.sdk.IWmsCommonCloud; +import cn.estsh.i3plus.pojo.base.bean.BaseConstWords; +import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysDictionary; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ResultBean; +import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.apache.commons.collections4.MapUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.AbstractEnvironment; import org.springframework.core.env.Environment; import org.springframework.core.env.MapPropertySource; import org.springframework.core.env.PropertySource; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.*; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; /** * @Description : @@ -33,25 +45,90 @@ public class SystemController { @Autowired private Environment environment; + @Autowired + private IWmsCommonCloud wmsCommonCloud; + + @Autowired + private ISysDictionaryService sysDictionaryService; + @GetMapping("/get-properties") @ApiOperation(value = "获取系统配置信息", notes = "获取系统配置信息") public ResultBean getProperties(){ try { //条件验证 - String[] profiles = environment.getDefaultProfiles(); - Map map = new HashMap(); - for(Iterator it = ((AbstractEnvironment) environment).getPropertySources().iterator(); it.hasNext(); ) { - PropertySource propertySource = (PropertySource) it.next(); - if (propertySource instanceof MapPropertySource) { - MapPropertySource source = (MapPropertySource) propertySource; - for (String key : source.getPropertyNames()) { - map.put(key,source.getProperty(key)); + Map map = getStringObjectMap(); + + return ResultBean.success("操作成功") + .setResultMap(map) + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + private Map getStringObjectMap() { + String[] profiles = environment.getDefaultProfiles(); + Map map = new TreeMap<>(); + for(Iterator it = ((AbstractEnvironment) environment).getPropertySources().iterator(); it.hasNext(); ) { + PropertySource propertySource = (PropertySource) it.next(); + if (propertySource instanceof MapPropertySource) { + MapPropertySource source = (MapPropertySource) propertySource; + for (String key : source.getPropertyNames()) { + map.put(key,source.getProperty(key)); + } + } + } + return map; + } + + @GetMapping("/cloud-properties/{id}") + @ApiOperation(value = "获取系统配置信息", notes = "获取系统配置信息") + public ResultBean getProperties(@PathVariable("id") Integer id){ + try { + ValidatorBean.checkIsNumber(id, "参数错误"); + CommonEnumUtil.SOFT_TYPE softType = CommonEnumUtil.SOFT_TYPE.valueOf(id); + Map resultMap = null; + BaseResultBean resultBean; + switch (softType) { + case CORE: + resultMap = getStringObjectMap(); + break; + case FORM: + break; + case REPORT: + resultMap = getStringObjectMap(); + break; + case GATEWAY: + resultMap = getStringObjectMap(); + break; + case CENTER: + resultMap = getStringObjectMap(); + break; + case WMS: + break; + } + + // 根据字典查询 不查看的配置信息 + List softTypeAndParentCode = sysDictionaryService.findSysDictionaryBySoftTypeAndParentCode( + CommonEnumUtil.SOFT_TYPE.CORE.getValue(), BaseConstWords.DICTIONARY_PROPERTIES); + + // 删除无效key + if (!CollectionUtils.isEmpty(softTypeAndParentCode)) { + for (Iterator> it = resultMap.entrySet().iterator(); it.hasNext(); ) { + + Map.Entry item = it.next(); + for (SysDictionary dictionary : softTypeAndParentCode) { + if (StringUtils.equalsIgnoreCase(item.getKey(), dictionary.getDictionaryValue())) { + it.remove(); + } } } } return ResultBean.success("操作成功") - .setResultMap(map) + .setResultMap(resultMap) .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java index 8213be2..cb77483 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java @@ -132,8 +132,6 @@ public class WhiteController extends CoreBaseController { LOGGER.info("会员登陆:{}",user); // Session 信息分装 - AuthUtil.setSessionObject(CommonConstWords.SESSION_LOGIN_LANGUAGE_CODE,languageCode); - AuthUtil.setSessionObject(CommonConstWords.SESSION_LOGIN_PLATFORM, getLoginPlatform().getValue()); result = new ResultBean(true, AuthUtil.getSession().getId().toString(), AuthUtil.getSessionUser()); result.setUrl("/"); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java index 91fbbcc..806cf14 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java @@ -69,7 +69,6 @@ public class SystemLoginService implements ISystemLoginService { SysUser user = getUserLoginInfo(userToken.getLoginName(),userToken.getLoginPwd()); LOGGER.info("【验证用户checkUserLogin】{}",user); //用户单地登录 - AuthUtil.checkLoginOnly(userToken); return packSessionUser(user,CommonEnumUtil.USER_TYPE.USER.getCode(),userToken.getLanguageCode()); } @@ -161,10 +160,8 @@ public class SystemLoginService implements ISystemLoginService { private SessionUser packSessionUser(SysUser user,String userType, String languageCode) { SessionUser sessionUser = new SessionUser(); sessionUser.setLanguageCode(languageCode); -// sessionUser.setSiteCode(user.getFactoryCode()); sessionUser.setUserName(user.getUserName()); sessionUser.setUserType(userType); -// sessionUser.setUserCode(user.getUserInfo().getLanguageCode()); return sessionUser; } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java index c00aef4..fcc36e7 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java @@ -9,7 +9,6 @@ import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.EncryptTool; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.tool.TimeTool; -import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; @@ -27,6 +26,7 @@ import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; import cn.estsh.impp.framework.boot.auth.AuthUtil; 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 io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authc.AuthenticationException; @@ -39,6 +39,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; @@ -103,6 +104,12 @@ public class SysUserService implements ISysUserService { @Autowired private IPersonnelService personnelService; + /** + * 缓存 + */ + @Resource(name="redisSession") + private ImppRedis redisSession; + @Override @ApiOperation(value = "用户登录", notes = "用户登录功能实现") @Transactional(propagation = Propagation.REQUIRED) @@ -116,9 +123,10 @@ public class SysUserService implements ISysUserService { if(user == null){ throw new CredentialsException("用户不存在"); } - packSessionUser(sessionUser, user, user.getUserType(), languageCode); + packSessionUser(sessionUser, user, user.getUserType(),loginPlatform, languageCode); AuthUtil.setSessionUser(sessionUser); refreshUserLoginInformation(user.getId()); + AuthUtil.refreshOnline(sessionUser); return sessionUser; } @@ -559,7 +567,7 @@ public class SysUserService implements ISysUserService { */ @Override @ApiOperation(value = "封装用户信息",notes = "封装登录完成后的用户信息(角色、权限、部门、组织、岗位)") - public SessionUser packSessionUser(SessionUser sessionUser, SysUser user, Integer userType, String languageCode) { + public SessionUser packSessionUser(SessionUser sessionUser, SysUser user,Integer userType,Integer loginPlatform, String languageCode) { LOGGER.debug("平台用户 SYS_USER user id :{}", user.getId()); SysUserInfo userInfo = sysUserInfoRDao.getById(user.getUserInfoId()); @@ -581,11 +589,13 @@ public class SysUserService implements ISysUserService { // userInfo.setUser(user); sessionUser.setUserName(userInfo.getName()); sessionUser.setUserCode(userInfo.getUserEmpNo()); - sessionUser.setUserId(userInfo.getId()); sessionUser.setUserInfo(userInfo); // sessionUser.setUserType(CommonEnumUtil.USER_TYPE.valueOf(userType)); + sessionUser.setUserId(user.getId()); sessionUser.setLanguageCode(languageCode); + sessionUser.setLoginPlatform(loginPlatform); + sessionUser.setToken(AuthUtil.getSession().getId().toString()); sessionUser.setUser(user); return sessionUser;