diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginService.java index 9fe6508..eb5dcb5 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginService.java @@ -66,6 +66,30 @@ public interface ISystemLoginService { */ @ApiOperation(value = "封装用户", notes = "封装超级管理员信息") SessionUser queryCheckSaAdminLogin(SaAdminToken authenticationToken); + /** + * E9用户单点登录 + * + * @param userToken 用户token + * @return 用户会话 + */ + @ApiOperation(value = "封装用户", notes = "封装普通用户信息") + SessionUser queryCheckE9UserLogin(UserToken userToken); + /** + * E9Admin单点登录 + * + * @param adminToken admin token + * @return 用户会话 + */ + @ApiOperation(value = "封装用户", notes = "封装管理员信息") + SessionUser queryCheckE9AdminLogin(AdminToken adminToken); + + /** + * E9 SA单点登录 + * @param saAdminToken sa token + * @return 用户会话 + */ + @ApiOperation(value = "封装用户", notes = "封装超级管理员信息") + SessionUser queryCheckE9SaAdminLogin(SaAdminToken saAdminToken); /** * 记录登录错误 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 d330fdd..df2219e 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 @@ -20,123 +20,137 @@ public interface ISysUserService { /** * 账号登录 - * @param loginName 登录名 - * @param password 登录密码 - * @param languageCode 界面语言 + * + * @param loginName 登录名 + * @param password 登录密码 + * @param languageCode 界面语言 * @return */ - @ApiOperation(value = "账号登录",notes = "普通账号登录功能") - SessionUser queryUserLogin(String loginName, String password, String languageCode,Integer loginPlatform,String deviceId) throws AuthenticationException; + @ApiOperation(value = "账号登录", notes = "普通账号登录功能") + SessionUser loginUser(String loginName, String password, String languageCode, Integer loginPlatform, String deviceId) throws AuthenticationException; - @ApiOperation(value = "获取Token",notes = "根据登录名判断是否是管理员") - BaseToken getToken(String loginName, String password, String languageCode,Integer loginPlatform); + @ApiOperation(value = "获取Token", notes = "根据登录名判断是否是管理员") + BaseToken getToken(String loginName, String password, String languageCode, Integer loginPlatform); /** * 修改状态 - * @param id 修改账号状态 - * @param status 状态 - * @param user 当前会话账号 + * + * @param id 修改账号状态 + * @param status 状态 + * @param user 当前会话账号 * @return */ - @ApiOperation(value = "修改状态",notes = "修改指定账号状态") + @ApiOperation(value = "修改状态", notes = "修改指定账号状态") void updateSysUserStatus(Long id, int status, SessionUser user); - @ApiOperation(value = "锁定用户",notes = "锁定用户") + @ApiOperation(value = "锁定用户", notes = "锁定用户") void doLockSysUserById(Long id); /** * 批量修改账号状态 + * * @param ids * @param status * @param user */ - @ApiOperation(value = "修改状态",notes = "批量修改指定账号状态") + @ApiOperation(value = "修改状态", notes = "批量修改指定账号状态") void updateBatchSysUserStatus(Long[] ids, int status, SessionUser user); /** * 修改账号信息 + * * @param sysUser */ - @ApiOperation(value = "修改账号信息",notes = "修改账号信息") + @ApiOperation(value = "修改账号信息", notes = "修改账号信息") void updateSysUser(SysUser sysUser); /** * 修改账号密码 - * @param userId 需要修改的账号ID - * @param password 旧密码 - * @param newPwd 新密码 + * + * @param userId 需要修改的账号ID + * @param password 旧密码 + * @param newPwd 新密码 */ - @ApiOperation(value = "修改号密码",notes = "修改账号的密码信息") - void updateSysUserPassword(Long userId,String password,String newPwd) throws Exception; + @ApiOperation(value = "修改号密码", notes = "修改账号的密码信息") + void updateSysUserPassword(Long userId, String password, String newPwd) throws Exception; /** * 刷新账号登录信息 + * * @param userId */ - @ApiOperation(value = "刷新账号",notes = "刷新账号登录信息") + @ApiOperation(value = "刷新账号", notes = "刷新账号登录信息") void refreshUserLoginInformation(Long userId); /** * 新增账号信息 + * * @param sysUser 新增账号 * @return */ - @ApiOperation(value = "新增账号",notes = "新增账号信息") - SysUser insertSysUser(SysUser sysUser)throws Exception; + @ApiOperation(value = "新增账号", notes = "新增账号信息") + SysUser insertSysUser(SysUser sysUser) throws Exception; /** * 添加 账号登录信息 + * * @param sysLogUserLogin * @return */ - @ApiOperation(value = "新增登录日志",notes = "新增登录日志信息") + @ApiOperation(value = "新增登录日志", notes = "新增登录日志信息") SysLogUserLogin insertSysLogUserLogin(SysLogUserLogin sysLogUserLogin); /** * 刷新账号角色关系 + * * @param sysUser * @param roleIds * @param userName */ - @ApiOperation(value = "刷新账号",notes = "刷新账号角色关系") - void refreshSysRefUserRole(SysUser sysUser, Long[] roleIds , String userName); + @ApiOperation(value = "刷新账号", notes = "刷新账号角色关系") + void refreshSysRefUserRole(SysUser sysUser, Long[] roleIds, String userName); /** * 根据Key 删除数据 + * * @param id * @return */ - @ApiOperation(value = "删除账号",notes = "根据ID 删除张哈信息") + @ApiOperation(value = "删除账号", notes = "根据ID 删除张哈信息") void deleteSysUserById(Long id); /** * 批量删除账号 逻辑删除 - * @param ids 需要删除的账号ID - * @param user 当前会话账号 + * + * @param ids 需要删除的账号ID + * @param user 当前会话账号 */ - @ApiOperation(value = "删除账号",notes = "根据ID 批量删除张哈信息") + @ApiOperation(value = "删除账号", notes = "根据ID 批量删除张哈信息") void deleteBatchSysUserById(Long[] ids, SessionUser user); /** * 查询所有数据 + * * @return */ - @ApiOperation(value = "查询所有",notes = "查询所有账号信息") + @ApiOperation(value = "查询所有", notes = "查询所有账号信息") List list(); /** * 查询所有数据 + * * @return */ - @ApiOperation(value = "查询所有",notes = "查询所有账号信息") + @ApiOperation(value = "查询所有", notes = "查询所有账号信息") List listByUserOrganizeCode(); /** * 根据角色查询用户信息 + * * @param roleId 角色ID * @return 获取用户ID 集合 */ - @ApiOperation(value = "查询用户ID 集合",notes = "根据角色Id 查询用户ID集合") + @ApiOperation(value = "查询用户ID 集合", notes = "根据角色Id 查询用户ID集合") List findSysUserIdListByRoleId(Long roleId); /*** @@ -144,105 +158,117 @@ public interface ISysUserService { * @param idList 部门集合 * @return 用户ID集合 */ - @ApiOperation(value = "查询用户ID 集合",notes = "根据部门Id 查询用户ID集合") + @ApiOperation(value = "查询用户ID 集合", notes = "根据部门Id 查询用户ID集合") List findSysUserIdListByDepartmentId(List idList); /** * 复杂查询 + * * @param user * @param pager * @return */ - @ApiOperation(value = "账号查询",notes = "查询账号信息-复杂查询") + @ApiOperation(value = "账号查询", notes = "查询账号信息-复杂查询") ListPager querySysUserByPager(SysUser user, Pager pager); - @ApiOperation(value = "账号查询",notes = "查询账号信息-复杂查询") - ListPager querySysUserByPager(SysUser user,List idList, Pager pager); + @ApiOperation(value = "账号查询", notes = "查询账号信息-复杂查询") + ListPager querySysUserByPager(SysUser user, List idList, Pager pager); /** * 根据id 数据 + * * @param id * @return */ - @ApiOperation(value = "账号查询",notes = "查询账号信息-根据ID查询") + @ApiOperation(value = "账号查询", notes = "查询账号信息-根据ID查询") SysUser getSysUserById(Long id); /** * 获取账号详细信息 + * * @param id * @return */ - @ApiOperation(value = "获取用户信息",notes = "查询用户信息-根据ID查询") + @ApiOperation(value = "获取用户信息", notes = "查询用户信息-根据ID查询") SysUserInfo getSysUserInfoById(Long id); /** * 根据登录名称 获取账号信息 + * * @param loginName * @return */ - @ApiOperation(value = "获取账号信息",notes = "查询用户信息-根据登录名称查询") + @ApiOperation(value = "获取账号信息", notes = "查询用户信息-根据登录名称查询") SysUser getSysUserByLoginName(String loginName); /** * 根据手机号查询账号 + * * @param email * @return */ - @ApiOperation(value = "获取账号信息",notes = "查询用户信息-根据邮箱查询") + @ApiOperation(value = "获取账号信息", notes = "查询用户信息-根据邮箱查询") SysUser getSysUserByEmail(String email); /** - * 根据手机号查询账号 + * 根据手机号查询账号 + * * @param phone * @return */ - @ApiOperation(value = "获取账号信息",notes = "查询用户信息-根据手机查询") + @ApiOperation(value = "获取账号信息", notes = "查询用户信息-根据手机查询") SysUser getSysUserByPhone(String phone); /** * 查出账号角色关系 + * * @param userId * @return */ - @ApiOperation(value = "获取用户角色信息",notes = "获取指定账号的所有角色信息") + @ApiOperation(value = "获取用户角色信息", notes = "获取指定账号的所有角色信息") List findSysRefUserRoleByUserId(Long userId); /** * 判断账号名是否存在 + * * @param userLoginName * @param id * @return */ - @ApiOperation(value = "账号检查",notes = "检查账号的登录名是否重复") + @ApiOperation(value = "账号检查", notes = "检查账号的登录名是否重复") boolean checkSysUserLoginName(String userLoginName, long id); /** * 判断邮箱是否存在 + * * @param email * @param id * @return */ - @ApiOperation(value = "账号检查",notes = "检查账号的邮箱是否重复") - boolean checkSysUserEmail(String email,long id); + @ApiOperation(value = "账号检查", notes = "检查账号的邮箱是否重复") + boolean checkSysUserEmail(String email, long id); /** * 判断手机是否存在 + * * @param phone * @param id * @return */ - @ApiOperation(value = "账号检查",notes = "检查账号的手机号是否重复") - boolean checkSysUserPhone(String phone,long id); + @ApiOperation(value = "账号检查", notes = "检查账号的手机号是否重复") + boolean checkSysUserPhone(String phone, long id); /** * 账号唯一教研 + * * @param user */ - @ApiOperation(value = "账号检查",notes = "检查账号信息唯一(登录名、邮箱、手机号)") + @ApiOperation(value = "账号检查", notes = "检查账号信息唯一(登录名、邮箱、手机号)") void checkSysUserOnly(SysUser user); /** * 获取用户数量 + * * @return 用户数量 */ @ApiOperation(value = "查询账户数量") @@ -250,23 +276,25 @@ public interface ISysUserService { /** * 登录封装账号信息 + * * @param sessionUser * @param user * @param userType * @param languageCode * @return */ - @ApiOperation(value = "封装用户信息",notes = "封装登录完成后的用户信息(角色、权限、部门、组织、岗位)") - SessionUser packSessionUser(SessionUser sessionUser, SysUser user, Integer userType,Integer loginPlatform, String languageCode, String deviceId); + @ApiOperation(value = "封装用户信息", notes = "封装登录完成后的用户信息(角色、权限、部门、组织、岗位)") + SessionUser packSessionUser(SessionUser sessionUser, SysUser user, Integer userType, Integer loginPlatform, String languageCode, String deviceId); - @ApiOperation(value = "封装用户信息",notes = "封装用户列表分页信息") + @ApiOperation(value = "封装用户信息", notes = "封装用户列表分页信息") SessionUser packPageSessionUser(SessionUser sessionUser, SysUser user); - @ApiOperation(value = "封装用户信息",notes = "封装用户系统配置信息") + @ApiOperation(value = "封装用户信息", notes = "封装用户系统配置信息") SessionUser packConfigSessionUser(SessionUser sessionUser, SysUser user); /** * 根据id查询用户信息 + * * @param ids 用户id * @return 查询结果 */ diff --git a/modules/i3plus-core-apiservice/pom.xml b/modules/i3plus-core-apiservice/pom.xml index 37a853f..c6dc67d 100644 --- a/modules/i3plus-core-apiservice/pom.xml +++ b/modules/i3plus-core-apiservice/pom.xml @@ -225,6 +225,12 @@ elasticsearch 7.5.1 + + + org.springframework.boot + spring-boot-starter-data-elasticsearch + 2.4.2 + diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroAuthConfiguration.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroAuthConfiguration.java index 1c759b4..c87079e 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroAuthConfiguration.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/ShiroAuthConfiguration.java @@ -4,8 +4,13 @@ import cn.estsh.i3plus.core.apiservice.auth.realm.AdminAuthRealm; import cn.estsh.i3plus.core.apiservice.auth.realm.DefaultModularRealm; import cn.estsh.i3plus.core.apiservice.auth.realm.SaAuthRealm; import cn.estsh.i3plus.core.apiservice.auth.realm.UserAuthRealm; +import cn.estsh.i3plus.core.apiservice.auth.realm.strategy.e9.E9AdminAuthRealm; +import cn.estsh.i3plus.core.apiservice.auth.realm.strategy.e9.E9SaAuthRealm; +import cn.estsh.i3plus.core.apiservice.auth.realm.strategy.e9.E9UserAuthRealm; import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; +import cn.estsh.i3plus.pojo.model.platform.RoleRealmModel; import cn.estsh.impp.framework.boot.auth.filter.AdminFilter; import cn.estsh.impp.framework.boot.auth.filter.SaAdminFilter; import cn.estsh.impp.framework.boot.auth.filter.UserFilter; @@ -26,9 +31,13 @@ import org.springframework.context.annotation.Configuration; import javax.annotation.Resource; import javax.servlet.Filter; +import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @Description : shiro权限配置 @@ -69,41 +78,72 @@ public class ShiroAuthConfiguration { private DefaultWebSessionManager getSessionManage; @Bean - public AdminAuthRealm adminAuthRealm(){ + public AdminAuthRealm adminAuthRealm() { return new AdminAuthRealm(); } @Bean - public SaAuthRealm saAuthRealm(){ + public SaAuthRealm saAuthRealm() { return new SaAuthRealm(); } @Bean - public UserAuthRealm userAuthRealm(){ + public UserAuthRealm userAuthRealm() { return new UserAuthRealm(); } - public Map supportRealmMap(){ + @Bean + public E9AdminAuthRealm e9AdminAuthRealm() { + return new E9AdminAuthRealm(); + } + + @Bean + public E9SaAuthRealm e9SaAuthRealm() { + return new E9SaAuthRealm(); + } + + @Bean + public E9UserAuthRealm e9UserAuthRealm() { + return new E9UserAuthRealm(); + } + + public Map supportRealmMap() { //支持的授权规则 - Map realms = new HashMap(8); - realms.put(CommonEnumUtil.USER_TYPE.USER.getCode(),userAuthRealm()); - realms.put(CommonEnumUtil.USER_TYPE.ADMIN.getCode(),adminAuthRealm()); - realms.put(CommonEnumUtil.USER_TYPE.SA.getCode(),saAuthRealm()); + Map realms = new HashMap(8); + + RoleRealmModel defaultRoleRealmModel = RoleRealmModel.builder() + .userRealm(userAuthRealm()) + .adminRealm(adminAuthRealm()) + .saRealm(saAuthRealm()).build(); + realms.put(ImppEnumUtil.AUTH_LOGIN_STRATEGY.ACCOUNT.getCode(), defaultRoleRealmModel); + + RoleRealmModel e9RoleRealmModel = RoleRealmModel.builder() + .userRealm(e9UserAuthRealm()) + .adminRealm(e9AdminAuthRealm()) + .saRealm(e9SaAuthRealm()).build(); + realms.put(ImppEnumUtil.AUTH_LOGIN_STRATEGY.E9.getCode(), e9RoleRealmModel); return realms; } @Bean - public ModularRealmAuthenticator modularRealmAuthenticator(){ - return new DefaultModularRealm(supportRealmMap()); + public ModularRealmAuthenticator modularRealmAuthenticator() { + return new DefaultModularRealm(supportRealmMap()); } @Bean - public SecurityManager securityManager(){ + public SecurityManager securityManager() { LOGGER.info("【app-shiro-加载securityManager】"); - DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); + DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); securityManager.setAuthenticator(modularRealmAuthenticator()); - securityManager.setRealms(supportRealmMap().values()); + + List allRealmBeans = new ArrayList<>(); + supportRealmMap().values().forEach(d -> { + allRealmBeans.add(d.getUserRealm()); + allRealmBeans.add(d.getAdminRealm()); + allRealmBeans.add(d.getSaRealm()); + }); + securityManager.setRealms(allRealmBeans); securityManager.setCacheManager(getEhCacheManage); //缓存管理 securityManager.setSessionManager(getSessionManage); //会话管理 //securityManager.setRememberMeManager(getRememberManager()); @@ -138,7 +178,7 @@ public class ShiroAuthConfiguration { return factoryBean; } - /** 缓存等配置在impp平台中设置 **/ + /** 缓存等配置在impp平台中设置 **/ // /** // * 缓存管理 // * @return diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/DefaultModularRealm.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/DefaultModularRealm.java index 6290fbd..c052b90 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/DefaultModularRealm.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/DefaultModularRealm.java @@ -2,10 +2,12 @@ package cn.estsh.i3plus.core.apiservice.auth.realm; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.BaseThreadLocal; -import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.base.shirotoken.AdminToken; import cn.estsh.i3plus.pojo.base.shirotoken.SaAdminToken; import cn.estsh.i3plus.pojo.base.shirotoken.UserToken; +import cn.estsh.i3plus.pojo.model.platform.RoleRealmModel; +import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.AuthenticationInfo; import org.apache.shiro.authc.AuthenticationToken; @@ -26,9 +28,10 @@ import java.util.Map; **/ public class DefaultModularRealm extends ModularRealmAuthenticator { private static final Logger LOGGER = LoggerFactory.getLogger(DefaultModularRealm.class); - private Map definedRealms; - public DefaultModularRealm(Map definedRealms) { + private Map definedRealms; + + public DefaultModularRealm(Map definedRealms) { this.definedRealms = definedRealms; } @@ -37,38 +40,40 @@ public class DefaultModularRealm extends ModularRealmAuthenticator { return super.doMultiRealmAuthentication(realms, token); } - public Map getDefinedRealms() { - return this.definedRealms; - } - - public void setDefinedRealms(Map definedRealms) { - this.definedRealms = definedRealms; - } - @Override protected AuthenticationInfo doAuthenticate(AuthenticationToken token) throws AuthenticationException { Realm realm; - String realmStrategy = (String) BaseThreadLocal.getData(PlatformConstWords.AUTH_REALM_CHOOSE); -// if (!StringUtils.isEmpty(realmStrategy)) { -// realm = (Realm) SpringContextsUtil.getBean(realmStrategy); -// } else { - if (token instanceof SaAdminToken) { - //超级管理员 - realm = (Realm) this.definedRealms.get(CommonEnumUtil.USER_TYPE.SA.getCode()); - } else if (token instanceof AdminToken) { - //管理员 - realm = (Realm) this.definedRealms.get(CommonEnumUtil.USER_TYPE.ADMIN.getCode()); - } else if (token instanceof UserToken) { - //用户 - realm = (Realm) this.definedRealms.get(CommonEnumUtil.USER_TYPE.USER.getCode()); - } else { - throw new AuthenticationException("不存在TOKEN,请联系管理员(" + token + ")"); - } -// } + RoleRealmModel roleRealmModel; + String realmStrategy = (String) BaseThreadLocal.getData(PlatformConstWords.AUTH_LOGIN_STRATEGY); + + if (StringUtils.isEmpty(realmStrategy)) { + roleRealmModel = this.definedRealms.get(ImppEnumUtil.AUTH_LOGIN_STRATEGY.ACCOUNT.getCode()); + } else { + roleRealmModel = this.definedRealms.get(realmStrategy); + } + + realm = chooseRealmByUserType(token, roleRealmModel); return this.doSingleRealmAuthentication(realm, token); } + private Realm chooseRealmByUserType(AuthenticationToken token, RoleRealmModel roleRealmModel) { + Realm realm; + if (token instanceof SaAdminToken) { + //超级管理员 + realm = roleRealmModel.getSaRealm(); + } else if (token instanceof AdminToken) { + //管理员 + realm = roleRealmModel.getAdminRealm(); + } else if (token instanceof UserToken) { + //用户 + realm = roleRealmModel.getUserRealm(); + } else { + throw new AuthenticationException("不存在TOKEN,请联系管理员(" + token + ")"); + } + return realm; + } + @Override protected AuthenticationInfo doSingleRealmAuthentication(Realm realm, AuthenticationToken token) { if (!realm.supports(token)) { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/strategy/E9AuthRealm.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/strategy/e9/E9AdminAuthRealm.java similarity index 52% rename from modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/strategy/E9AuthRealm.java rename to modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/strategy/e9/E9AdminAuthRealm.java index d1a92d4..9137c7c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/strategy/E9AuthRealm.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/strategy/e9/E9AdminAuthRealm.java @@ -1,7 +1,9 @@ -package cn.estsh.i3plus.core.apiservice.auth.realm.strategy; +package cn.estsh.i3plus.core.apiservice.auth.realm.strategy.e9; import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService; import cn.estsh.i3plus.pojo.base.shirotoken.AdminToken; +import cn.estsh.i3plus.pojo.platform.bean.SessionUser; +import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.AuthenticationInfo; import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.authc.SimpleAuthenticationInfo; @@ -12,33 +14,42 @@ import org.apache.shiro.subject.PrincipalCollection; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; /** - * @author Wynne.Lu - * @date 2021/1/18 下午2:32 - * @desc - */ -@Component -public class E9AuthRealm extends AuthorizingRealm { - - public static final Logger LOGGER = LoggerFactory.getLogger(E9AuthRealm.class); + * @Description : 验证规则 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 14:04 + * @Modify: + **/ +public class E9AdminAuthRealm extends AuthorizingRealm { + public static final Logger LOGGER = LoggerFactory.getLogger(E9AdminAuthRealm.class); @Autowired private ISystemLoginService systemLoginService; - public E9AuthRealm(){ + public E9AdminAuthRealm() { //添加支持的token this.setAuthenticationTokenClass(AdminToken.class); } + //权限验证 @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { return new SimpleAuthorizationInfo(); } + //令牌确认 @Override - protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) { - return new SimpleAuthenticationInfo(); + protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { + try { + //管理员令牌 + SessionUser sessionUser = systemLoginService.queryCheckE9AdminLogin((AdminToken) authenticationToken); + LOGGER.info("管理员令牌验证:{}", sessionUser); + return new SimpleAuthenticationInfo(sessionUser, ((AdminToken) authenticationToken).getLoginName(), this.getName()); + } catch (Exception e) { + e.printStackTrace(); + throw new AuthenticationException(e.getMessage()); + } } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/strategy/e9/E9SaAuthRealm.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/strategy/e9/E9SaAuthRealm.java new file mode 100644 index 0000000..b543f3f --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/strategy/e9/E9SaAuthRealm.java @@ -0,0 +1,50 @@ +package cn.estsh.i3plus.core.apiservice.auth.realm.strategy.e9; + +import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService; +import cn.estsh.i3plus.pojo.base.shirotoken.SaAdminToken; +import cn.estsh.i3plus.pojo.platform.bean.SessionUser; +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authc.AuthenticationInfo; +import org.apache.shiro.authc.AuthenticationToken; +import org.apache.shiro.authc.SimpleAuthenticationInfo; +import org.apache.shiro.authz.AuthorizationInfo; +import org.apache.shiro.authz.SimpleAuthorizationInfo; +import org.apache.shiro.realm.AuthorizingRealm; +import org.apache.shiro.subject.PrincipalCollection; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @Description : 验证规则 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 14:04 + * @Modify: + **/ +public class E9SaAuthRealm extends AuthorizingRealm { + public static final Logger LOGGER = LoggerFactory.getLogger(E9SaAuthRealm.class); + + @Autowired + private ISystemLoginService systemLoginService; + + public E9SaAuthRealm() { + //添加支持的token + this.setAuthenticationTokenClass(SaAdminToken.class); + } + + //权限验证 + @Override + protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { + return new SimpleAuthorizationInfo(); + } + + //令牌确认 + @Override + protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { + //管理员令牌 + SessionUser sessionUser = systemLoginService.queryCheckE9SaAdminLogin((SaAdminToken) authenticationToken); + LOGGER.info("超级管理员令牌验证:{}", sessionUser); + return new SimpleAuthenticationInfo(sessionUser, ((SaAdminToken) authenticationToken).getLoginName(), this.getName()); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/strategy/e9/E9UserAuthRealm.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/strategy/e9/E9UserAuthRealm.java new file mode 100644 index 0000000..ef5ee1d --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/auth/realm/strategy/e9/E9UserAuthRealm.java @@ -0,0 +1,57 @@ +package cn.estsh.i3plus.core.apiservice.auth.realm.strategy.e9; + +import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService; +import cn.estsh.i3plus.pojo.base.shirotoken.AdminToken; +import cn.estsh.i3plus.pojo.base.shirotoken.UserToken; +import cn.estsh.i3plus.pojo.platform.bean.SessionUser; +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authc.AuthenticationInfo; +import org.apache.shiro.authc.AuthenticationToken; +import org.apache.shiro.authc.SimpleAuthenticationInfo; +import org.apache.shiro.authz.AuthorizationInfo; +import org.apache.shiro.authz.SimpleAuthorizationInfo; +import org.apache.shiro.realm.AuthorizingRealm; +import org.apache.shiro.subject.PrincipalCollection; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @Description : 验证规则 + * @Reference :- + * @Author : alwaysfrin + * @CreateDate : 2018-10-13 14:04 + * @Modify: + **/ +public class E9UserAuthRealm extends AuthorizingRealm { + public static final Logger LOGGER = LoggerFactory.getLogger(E9UserAuthRealm.class); + + @Autowired + private ISystemLoginService systemLoginService; + + public E9UserAuthRealm() { + //添加支持的token + this.setAuthenticationTokenClass(UserToken.class); + } + + //权限验证 + @Override + protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { + return new SimpleAuthorizationInfo(); + } + + //令牌确认 + @Override + protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { + try { + //管理员令牌 + SessionUser sessionUser = systemLoginService.queryCheckE9UserLogin((UserToken) authenticationToken); + LOGGER.info("用户令牌验证:{}", sessionUser); + return new SimpleAuthenticationInfo(sessionUser, ((UserToken) authenticationToken).getLoginName(), this.getName()); + } catch (Exception e) { + e.printStackTrace(); + throw new AuthenticationException(e.getMessage()); + } + } +} 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 a63006a..15df22b 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 @@ -49,8 +49,10 @@ import cn.estsh.impp.framework.boot.util.RedisCacheTool; import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.SpringContextsUtil; import cn.estsh.impp.framework.boot.util.ValidatorBean; +import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.CredentialsException; import org.apache.shiro.authc.IncorrectCredentialsException; @@ -78,6 +80,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Optional; import java.util.Set; import java.util.function.BiFunction; import java.util.stream.Collectors; @@ -193,27 +196,57 @@ public class WhiteController extends CoreBaseController { } } - @GetMapping(value = "/auth/oss-login") + @GetMapping(value = "/auth/{loginStrategy}/sso-login") @ApiOperation(value = "登录", notes = "登录") - public ResultBean ossLogin(HttpServletRequest request, SystemLoginModel loginModel) throws NoSuchFieldException { + public ResultBean ssoLogin(HttpServletRequest request, @PathVariable(name = "loginStrategy") String loginStrategy) throws NoSuchFieldException { + String fieldMapping = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.SSO_REQUEST_MAPPING); + if (StringUtils.isEmpty(fieldMapping)) { + return ResultBean.fail("请在平台数据库中配置表添加字段映射配置"); + } + + SystemLoginModel loginModel = assembleLoginModelByRequest(request, fieldMapping); + loginModel.setLoginStrategy(loginStrategy); + ValidatorBean.beginValid(loginModel) .notNull("loginStrategy", loginModel.getLoginStrategy()) .notNull("loginName", loginModel.getLoginName()); String beanName = ImppEnumUtil.AUTH_LOGIN_STRATEGY.codeOfStrategyName(loginModel.getLoginStrategy()); ISystemLoginStrategyService loginStrategyService = (ISystemLoginStrategyService) SpringContextsUtil.getBean(beanName); - BaseThreadLocal.setData(PlatformConstWords.IS_OSS_LOGIN, true); + BaseThreadLocal.setData(PlatformConstWords.IS_SSO_LOGIN, true); return loginByStrategy(request, loginModel, loginStrategyService.login()); } + private SystemLoginModel assembleLoginModelByRequest(HttpServletRequest request, String fieldMapping) { + JSONObject mappingObject = (JSONObject) JSONObject.parse(fieldMapping); + + SystemLoginModel loginModel = new SystemLoginModel(); + getJsonObjectParameterFromRequest("loginName", request, mappingObject).ifPresent(d -> loginModel.setLoginName(d.toString())); + getJsonObjectParameterFromRequest("loginPwd", request, mappingObject).ifPresent(d -> loginModel.setLoginPwd(d.toString())); + getJsonObjectParameterFromRequest("appId", request, mappingObject).ifPresent(d -> loginModel.setAppId(d.toString())); + getJsonObjectParameterFromRequest("languageCode", request, mappingObject).ifPresent(d -> loginModel.setLanguageCode(d.toString())); + getJsonObjectParameterFromRequest("deviceId", request, mappingObject).ifPresent(d -> loginModel.setDeviceId(d.toString())); + + return loginModel; + } + + private Optional getJsonObjectParameterFromRequest(String key, HttpServletRequest request, JSONObject mappingObject) { + Object data = request.getParameter(mappingObject.get(key) == null ? "" : mappingObject.get(key).toString()); + return Optional.ofNullable(data); + } + @GetMapping(value = "/auth/login") @ApiOperation(value = "登录", notes = "登录") public ResultBean login(HttpServletRequest request, String loginName, String loginPwd, @RequestParam(required = false) String languageCode, @RequestParam(required = false) String deviceId) { - SystemLoginModel loginModel = new SystemLoginModel(loginName, loginPwd, languageCode, deviceId, ImppEnumUtil.AUTH_LOGIN_STRATEGY.ACCOUNT.getCode()); - + SystemLoginModel loginModel = SystemLoginModel.builder() + .loginName(loginName) + .loginPwd(loginPwd) + .languageCode(languageCode) + .deviceId(deviceId) + .loginStrategy(ImppEnumUtil.AUTH_LOGIN_STRATEGY.ACCOUNT.getCode()).build(); String beanName = ImppEnumUtil.AUTH_LOGIN_STRATEGY.codeOfStrategyName(loginModel.getLoginStrategy()); ISystemLoginStrategyService loginStrategyService = (ISystemLoginStrategyService) SpringContextsUtil.getBean(beanName); @@ -230,7 +263,7 @@ public class WhiteController extends CoreBaseController { CommonEnumUtil.USER_LOGIN_STATUS userLoginStatus = CommonEnumUtil.USER_LOGIN_STATUS.LOGIN_SUCCESS; try { - loginStrategy.apply(request, loginModel); + result = loginStrategy.apply(request, loginModel); } catch (IncorrectCredentialsException e) { result = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_PASSWORD); userPasswordUtil.checkLoginErrorNumber(loginModel.getLoginName(), result, e); 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 d23efc8..cf48b78 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 @@ -108,6 +108,32 @@ public class SystemLoginService implements ISystemLoginService { } @Override + @ApiOperation(value = "封装用户", notes = "封装普通用户信息") + public SessionUser queryCheckE9UserLogin(UserToken userToken) { + //验证用户 + SysUser user = getUserLoginInfo(userToken.getLoginName()); + LOGGER.info("【验证用户checkUserLogin】{}", user); + //用户单地登录 + return packSessionUser(user, CommonEnumUtil.USER_TYPE.USER.getCode(), userToken.getLanguageCode()); + } + + @Override + @ApiOperation(value = "封装用户", notes = "封装管理员信息") + public SessionUser queryCheckE9AdminLogin(AdminToken adminToken) { + //验证用户 + SysUser user = getUserLoginInfo(adminToken.getLoginName()); + //未抛异常,封装用户 + return packSessionUser(user, CommonEnumUtil.USER_TYPE.ADMIN.getCode(), adminToken.getLanguageCode()); + } + + @Override + @ApiOperation(value = "封装用户", notes = "封装超级管理员信息") + public SessionUser queryCheckE9SaAdminLogin(SaAdminToken saAdminToken) { + SysUser user = getUserLoginInfo(saAdminToken.getLoginName()); + return packSessionUser(user, CommonEnumUtil.USER_TYPE.SA.getCode(), saAdminToken.getLanguageCode()); + } + + @Override @ApiOperation(value = "登录密码错误", notes = "登录密码错误记录错误次数功能") public Integer doLoginPasswordError(String loginName, String sessionId) { SysUser user = sysUserRDao.getByProperty(new String[]{"userLoginName", "isValid"}, @@ -164,17 +190,7 @@ public class SystemLoginService implements ISystemLoginService { * @return */ public SysUser getUserLoginInfo(String loginName, String pwd) { - SysUser user = sysUserRDao.getByProperty( - new String[]{"userLoginName", "isValid"}, - new Object[]{loginName, CommonEnumUtil.IS_VAILD.VAILD.getValue()}); - - if (user == null) { //用户不存在 - throw new CredentialsException("用户不存在"); - } - - if (user.getUserStatus() != CommonEnumUtil.USER_STATUS.ENABLE.getValue()) { - throw new LockedAccountException("账号已被锁定"); - } + SysUser user = getValidUserByName(loginName); // 登录AD 域检查 if (ImppSwitchUtil.isLoginActiveDirectory()) { @@ -218,6 +234,34 @@ public class SystemLoginService implements ISystemLoginService { throw new IncorrectCredentialsException("登陆密码错误"); } + public SysUser getUserLoginInfo(String loginName) { + SysUser user = getValidUserByName(loginName); + + // 登录AD 域检查 + if (ImppSwitchUtil.isLoginActiveDirectory()) { + userPasswordUtil.checkActiveDirectory(user); + return user; + } + + userPasswordUtil.checkSysUserLogin(user); + return user; + } + + public SysUser getValidUserByName(String loginName) { + SysUser user = sysUserRDao.getByProperty( + new String[]{"userLoginName", "isValid"}, + new Object[]{loginName, CommonEnumUtil.IS_VAILD.VAILD.getValue()}); + + if (user == null) { + throw new CredentialsException("用户不存在"); + } + + if (user.getUserStatus() != CommonEnumUtil.USER_STATUS.ENABLE.getValue()) { + throw new LockedAccountException("账号已被锁定"); + } + return user; + } + /** * 封装用户登陆信息 * diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/login/strategy/DefaultLoginStrategy.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/login/strategy/DefaultLoginStrategy.java index 001b050..7e64130 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/login/strategy/DefaultLoginStrategy.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/login/strategy/DefaultLoginStrategy.java @@ -66,7 +66,7 @@ public class DefaultLoginStrategy implements ISystemLoginStrategyService { AuthUtil.logout(); } - SessionUser user = userService.queryUserLogin( + SessionUser user = userService.loginUser( loginModel.getLoginName().trim(), loginModel.getLoginPwd().trim(), loginModel.getLanguageCode(), diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/login/strategy/E9LoginStrategy.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/login/strategy/E9LoginStrategy.java index bd6d3d9..fd143b5 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/login/strategy/E9LoginStrategy.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/login/strategy/E9LoginStrategy.java @@ -67,16 +67,16 @@ public class E9LoginStrategy implements ISystemLoginStrategyService { // 设置语言代码 BaseThreadLocal.setData(BaseThreadLocal.LANGUAGE_CODE, loginModel.getLanguageCode()); - BaseThreadLocal.setData(PlatformConstWords.AUTH_REALM_CHOOSE, ImppEnumUtil.AUTH_REALM_STRATEGY.PANASONIC.getStrategyName()); + BaseThreadLocal.setData(PlatformConstWords.AUTH_LOGIN_STRATEGY, ImppEnumUtil.AUTH_LOGIN_STRATEGY.E9.getCode()); int sessionMode = RedisCacheTool.getSysConfigIntVal(CommonConstWords.CONFIG_SESSION_MODE, CommonConstWords.CONFIG_SESSION_MODE_DEFAULT); if (sessionMode != CommonEnumUtil.SESSION_MODE.SEIZE.getValue()) { AuthUtil.logout(); } - SessionUser user = userService.queryUserLogin( + SessionUser user = userService.loginUser( + loginModel.getLoginName().trim(), loginModel.getLoginName().trim(), - loginModel.getLoginPwd() == null ? null : loginModel.getLoginPwd().trim(), loginModel.getLanguageCode(), loginService.getLoginPlatform(request).getValue(), loginModel.getDeviceId() @@ -90,13 +90,13 @@ public class E9LoginStrategy implements ISystemLoginStrategyService { AuthUtil.setOrganize(user.getUser().getOrganize()); - return null; + return result; }; } private boolean validateHost(HttpServletRequest request) { final String delimiter = ","; - String hostsConfig = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.OSS_REQUEST_HOST); + String hostsConfig = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.SSO_REQUEST_HOST); String[] hosts = hostsConfig.split(delimiter); String requestHost = ServletRequestTool.getRequestHost(request); return Arrays.stream(hosts).anyMatch(d -> requestHost.equals(d)); 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 976701e..3120bca 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 @@ -65,15 +65,6 @@ public class SysUserService implements ISysUserService { private SysUserInfoRepository sysUserInfoRDao; @Autowired - private IUserPermissionDao userPermissionDao; - -// @Autowired -// private SysOrganizeRepository organizeRDao; -// -// @Autowired -// private SysRoleRepository sysRoleRDao; - - @Autowired private SysRefUserRoleRepository refUserRoleRDao; @Autowired @@ -83,15 +74,6 @@ public class SysUserService implements ISysUserService { private SysRefUserPositionRepository refUserPositionRDao; @Autowired - private SysFileRepository sysFileRDao; -// -// @Autowired -// private SysDepartmentRepository departmentRDao; -// -// @Autowired -// private SysPositionRepository sysPositionRDao; - - @Autowired private ISysUserInfoService sysUserInfoService; @Autowired @@ -119,42 +101,37 @@ public class SysUserService implements ISysUserService { private ISysMenuService menuService; @Autowired - private ICoreMemTreeService memTreeService; - - @Autowired private ISysFileService fileService; @Autowired private SysUserPasswordUtil passwordUtil; - @Autowired ISysUserPasswordService userPasswordService; - - @Resource(name = CommonConstWords.IMPP_REDIS_RES) - private ImppRedis redisRes; + @Autowired + ISysUserPasswordService userPasswordService; /** * 缓存 */ - @Resource(name= CommonConstWords.IMPP_REDIS_SESSION) + @Resource(name = CommonConstWords.IMPP_REDIS_SESSION) private ImppRedis redisSession; @Override @ApiOperation(value = "用户登录", notes = "用户登录功能实现") @Transactional(propagation = Propagation.REQUIRED) - public SessionUser queryUserLogin(String loginName, String password, String languageCode,Integer loginPlatform,String deviceId) throws AuthenticationException { + public SessionUser loginUser(String loginName, String password, String languageCode, Integer loginPlatform, String deviceId) throws AuthenticationException { LOGGER.debug("平台用户 SYS_USER loginName:{} \t password:{} \t languageCode:{}", loginName, password, languageCode); BaseToken token = getToken(loginName, password, languageCode, loginPlatform); SessionUser sessionUser = AuthUtil.login(token); SysUser user = this.getSysUserByLoginName(loginName); - if(user == null){ + if (user == null) { throw new CredentialsException("用户不存在"); } // 判断会话模式 - checkSessionMode(loginPlatform,user.getId()); + checkSessionMode(loginPlatform, user.getId()); - packSessionUser(sessionUser, user, user.getUserType(),loginPlatform, languageCode,deviceId); + packSessionUser(sessionUser, user, user.getUserType(), loginPlatform, languageCode, deviceId); packConfigSessionUser(sessionUser, user); AuthUtil.setSessionUser(sessionUser); refreshUserLoginInformation(user.getId()); @@ -163,12 +140,12 @@ public class SysUserService implements ISysUserService { return sessionUser; } - private void checkSessionMode(Integer loginPlatform,Long userId){ - int sessionMode = RedisCacheTool.getSysConfigIntVal(CommonConstWords.CONFIG_SESSION_MODE,CommonConstWords.CONFIG_SESSION_MODE_DEFAULT); + private void checkSessionMode(Integer loginPlatform, Long userId) { + int sessionMode = RedisCacheTool.getSysConfigIntVal(CommonConstWords.CONFIG_SESSION_MODE, CommonConstWords.CONFIG_SESSION_MODE_DEFAULT); String redisKey; if (sessionMode == CommonEnumUtil.SESSION_MODE.SEIZE.getValue()) { redisKey = CommonConstWords.SESSION_USER + ":*_" + userId; - }else { + } else { return; } @@ -186,15 +163,15 @@ public class SysUserService implements ISysUserService { @Override public BaseToken getToken(String loginName, String password, String languageCode, Integer loginPlatform) { SysUser user = this.getSysUserByLoginName(loginName); - if(user != null){ - if(user.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN.getValue())){ - return new AdminToken(loginName,password,languageCode,loginPlatform); - }else if(user.getUserType().equals(CommonEnumUtil.USER_TYPE.SA.getValue())){ - return new SaAdminToken(loginName,password,languageCode,loginPlatform); - }else { - return new UserToken(loginName,password,languageCode,loginPlatform); + if (user != null) { + if (user.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN.getValue())) { + return new AdminToken(loginName, password, languageCode, loginPlatform); + } else if (user.getUserType().equals(CommonEnumUtil.USER_TYPE.SA.getValue())) { + return new SaAdminToken(loginName, password, languageCode, loginPlatform); + } else { + return new UserToken(loginName, password, languageCode, loginPlatform); } - }else { + } else { throw new CredentialsException("用户不存在"); } } @@ -212,7 +189,7 @@ public class SysUserService implements ISysUserService { @Override public void doLockSysUserById(Long id) { SysUser user = userRDao.getById(id); - if(Objects.nonNull(user)){ + if (Objects.nonNull(user)) { user.setUserStatus(CommonEnumUtil.USER_STATUS.LOCKING.getValue()); userRDao.save(user); } @@ -221,15 +198,15 @@ public class SysUserService implements ISysUserService { @Override @ApiOperation(value = "修改账号", notes = "批量修改账号状态") public void updateBatchSysUserStatus(Long[] ids, int status, SessionUser user) { - LOGGER.debug("平台用户 SYS_USER DELETE By ids :{} status:{}, SessionUser :{}", ids,status,user); + LOGGER.debug("平台用户 SYS_USER DELETE By ids :{} status:{}, SessionUser :{}", ids, status, user); String where = CoreHqlPack.packHqlIds("id", ids); List list = userRDao.findByHqlWhere(where); - if(null != list && list.size() > 0){ + if (null != list && list.size() > 0) { for (SysUser sysUser : list) { sysUser.setUserStatus(status); sysUser.setIsValid(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); - ConvertBean.modelUpdate(sysUser,user); + ConvertBean.modelUpdate(sysUser, user); } userRDao.saveAll(list); } @@ -245,9 +222,9 @@ public class SysUserService implements ISysUserService { @Override @ApiOperation(value = "修改账号", notes = "修改账号登录密码") public void updateSysUserPassword(Long userId, String password, String newPwd) throws Exception { - LOGGER.debug("平台用户 SYS_USER Override:{} password:{} newPwd:{}", userId,password,newPwd); + LOGGER.debug("平台用户 SYS_USER Override:{} password:{} newPwd:{}", userId, password, newPwd); SysUser user = userRDao.getById(userId); - ValidatorBean.checkNotNull(user,"用户不存在"); + ValidatorBean.checkNotNull(user, "用户不存在"); user.setUserLoginPassword(newPwd); passwordUtil.checkPasswordSave(user); @@ -294,7 +271,7 @@ public class SysUserService implements ISysUserService { @Override @ApiOperation(value = "新增账号", notes = "新增账号信息") - public SysUser insertSysUser(SysUser sysUser)throws Exception { + public SysUser insertSysUser(SysUser sysUser) throws Exception { LOGGER.debug("平台用户 SYS_USER SysUser:{}", sysUser); SysUser loginUser = getSysUserByLoginName(sysUser.getUserLoginName()); @@ -314,7 +291,7 @@ public class SysUserService implements ISysUserService { } @Override - @ApiOperation(value = "新增登录日志",notes = "新增登录日志信息") + @ApiOperation(value = "新增登录日志", notes = "新增登录日志信息") public SysLogUserLogin insertSysLogUserLogin(SysLogUserLogin sysLogUserLogin) { LOGGER.debug("平台用户登录记录 SysLogUserLogin sysLogUserLogin:{}", sysLogUserLogin); return logUserLoginRDao.insert(sysLogUserLogin); @@ -332,7 +309,7 @@ public class SysUserService implements ISysUserService { // 删除角色关系信息 refUserRoleRDao.deleteByProperty("userId", sysUser.getId()); // 删除用户角色关系 - if(null != list && list.size() > 0){ + if (null != list && list.size() > 0) { // 新增用户角色关系 List refUserRoles = new ArrayList<>(); List roleNameList = new ArrayList<>(); @@ -380,19 +357,19 @@ public class SysUserService implements ISysUserService { @Override @ApiOperation(value = "删除账号", notes = "批量删除账号信息,逻辑删除,账号关系业务物理删除") - public void deleteBatchSysUserById(Long[] ids,SessionUser user) { + public void deleteBatchSysUserById(Long[] ids, SessionUser user) { LOGGER.debug("平台用户 SYS_USER DELETE By ids :{}", ids); // 标记用户已删除 String where = CoreHqlPack.packHqlIds("id", ids); List list = userRDao.findByHqlWhere(where); - if(null != list && list.size() > 0){ + if (null != list && list.size() > 0) { for (SysUser sysUser : list) { sysUser.setIsValid(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); } userRDao.saveAll(list); - refUserRoleRDao.deleteByPropertyIn("userId",ids); + refUserRoleRDao.deleteByPropertyIn("userId", ids); } } @@ -401,7 +378,7 @@ public class SysUserService implements ISysUserService { public List list() { LOGGER.debug("平台用户 SYS_USER find All"); return userRDao.findByProperty( - new String[]{"isDeleted","isValid"}, + new String[]{"isDeleted", "isValid"}, new Object[]{ CommonEnumUtil.IS_DEAL.NO.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue() @@ -417,7 +394,7 @@ public class SysUserService implements ISysUserService { public List listByUserOrganizeCode() { LOGGER.debug("平台用户 SYS_USER listByUserOrganizeCode"); return userRDao.findByProperty( - new String[]{"isDeleted","isValid","organizeCode"}, + new String[]{"isDeleted", "isValid", "organizeCode"}, new Object[]{ CommonEnumUtil.IS_DEAL.NO.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), @@ -426,14 +403,14 @@ public class SysUserService implements ISysUserService { } @Override - @ApiOperation(value = "查询用户ID 集合",notes = "根据角色Id 查询用户ID集合") + @ApiOperation(value = "查询用户ID 集合", notes = "根据角色Id 查询用户ID集合") public List findSysUserIdListByRoleId(Long roleId) { List result = new ArrayList<>(); - if(roleId != null){ + if (roleId != null) { List list = refUserRoleRDao.findByProperty( - new String[]{"roleId","isValid"}, - new Object[]{roleId,CommonEnumUtil.IS_VAILD.VAILD.getValue()}); - if(list != null && list.size() > 0){ + new String[]{"roleId", "isValid"}, + new Object[]{roleId, CommonEnumUtil.IS_VAILD.VAILD.getValue()}); + if (list != null && list.size() > 0) { for (SysRefUserRole ref : list) { result.add(ref.getUserId()); } @@ -443,14 +420,14 @@ public class SysUserService implements ISysUserService { } @Override - @ApiOperation(value = "查询用户ID 集合",notes = "根据部门Id 查询用户ID集合") + @ApiOperation(value = "查询用户ID 集合", notes = "根据部门Id 查询用户ID集合") public List findSysUserIdListByDepartmentId(List idList) { List result = new ArrayList<>(); - if(idList != null && idList.size() > 0){ + if (idList != null && idList.size() > 0) { StringBuffer hqlWhere = new StringBuffer(); HqlPack.getInPack(StringUtils.join(idList, ","), "departmentId", hqlWhere); List list = refUserDepartmentRDao.findByHqlWhere(hqlWhere.toString()); - if(list != null && list.size() > 0){ + if (list != null && list.size() > 0) { for (SysRefUserDepartment ref : list) { result.add(ref.getUserId()); } @@ -465,20 +442,20 @@ public class SysUserService implements ISysUserService { LOGGER.debug("系统用户 SysUser find user :{} page :{}", user, pager); // 角色查询 - if(user.getRoleId() != null){ + if (user.getRoleId() != null) { List ids = findSysUserIdListByRoleId(user.getRoleId()); user.setRoleIdList(StringTool.getListString(ids)); } List departmentIdList = new ArrayList<>(); - if(user.getOrganizeId() != null){ + if (user.getOrganizeId() != null) { // 查出所有组织 ID 集合 SysOrganize parent = coreTreeService.getSysOrganizeTreeById(user.getOrganizeId()); List childIds = coreTreeService.findSysOrganizeChildIds(parent); // 查询所有部门 ID 集合 - if(childIds != null && childIds.size() > 0){ + if (childIds != null && childIds.size() > 0) { for (Long organizeId : childIds) { List ids = coreTreeService.findSysDepartmentIdByOrganizeId(organizeId); departmentIdList.addAll(ids); @@ -487,7 +464,7 @@ public class SysUserService implements ISysUserService { } // 封装部门 ID 信息 - if(user.getDepartmentId() != null){ + if (user.getDepartmentId() != null) { SysDepartment department = departmentService.get(user.getDepartmentId()); departmentIdList.addAll(coreTreeService.findSysDepartmentChildIds(department)); } @@ -518,7 +495,7 @@ public class SysUserService implements ISysUserService { @Override @ApiOperation(value = "用户查询", notes = "根据ID 查询用户信息") public SysUserInfo getSysUserInfoById(Long id) { - return sysUserInfoRDao.getByProperty("id",id); + return sysUserInfoRDao.getByProperty("id", id); } @Override @@ -547,63 +524,63 @@ public class SysUserService implements ISysUserService { @Override @ApiOperation(value = "账号角色", notes = "根据账号ID查询账号角色关系") public List findSysRefUserRoleByUserId(Long userId) { - return refUserRoleRDao.findByProperty("userId",userId); + return refUserRoleRDao.findByProperty("userId", userId); } @Override @ApiOperation(value = "检查-账号登录名", notes = "判断账号是否存在") public boolean checkSysUserLoginName(String userLoginName, long id) { int count = 0; - if(id > 0){ + if (id > 0) { StringBuffer sw = new StringBuffer(); - HqlPack.getStringEqualPack(userLoginName,"userLoginName",sw); - HqlPack.getNumNOEqualPack(id,"id",sw); + HqlPack.getStringEqualPack(userLoginName, "userLoginName", sw); + HqlPack.getNumNOEqualPack(id, "id", sw); count = userRDao.findByHqlWhereCount(sw.toString()); - }else{ - count = userRDao.findByPropertyCount("userLoginName",userLoginName); + } else { + count = userRDao.findByPropertyCount("userLoginName", userLoginName); } - return count <= 0 ; + return count <= 0; } @Override @ApiOperation(value = "检查-账号邮箱", notes = "判断邮箱是否存在") public boolean checkSysUserEmail(String email, long id) { int count; - if(id > 0){ + if (id > 0) { StringBuffer sw = new StringBuffer(); - HqlPack.getStringEqualPack(email,"userEmail",sw); - HqlPack.getNumNOEqualPack(id,"id",sw); + HqlPack.getStringEqualPack(email, "userEmail", sw); + HqlPack.getNumNOEqualPack(id, "id", sw); count = userRDao.findByHqlWhereCount(sw.toString()); - }else{ - count = userRDao.findByPropertyCount("userEmail",email); + } else { + count = userRDao.findByPropertyCount("userEmail", email); } - return count <= 0 ; + return count <= 0; } @Override @ApiOperation(value = "检查-账号手机", notes = "判断手机是否存在") public boolean checkSysUserPhone(String phone, long id) { int count; - if(id > 0){ + if (id > 0) { StringBuffer sw = new StringBuffer(); - HqlPack.getStringEqualPack(phone,"userPhone",sw); - HqlPack.getNumNOEqualPack(id,"id",sw); + HqlPack.getStringEqualPack(phone, "userPhone", sw); + HqlPack.getNumNOEqualPack(id, "id", sw); count = userRDao.findByHqlWhereCount(sw.toString()); - }else{ - count = userRDao.findByPropertyCount("userPhone",phone); + } else { + count = userRDao.findByPropertyCount("userPhone", phone); } - return count <= 0 ; + return count <= 0; } @Override @ApiOperation(value = "检查-账号唯一", notes = "账号唯一性校验") public void checkSysUserOnly(SysUser user) { - if(user != null){ + if (user != null) { // 登录名唯一教研 - if(!checkSysUserLoginName(user.getUserLoginName(), user.getId() == null ? 0 : user.getId())){ + if (!checkSysUserLoginName(user.getUserLoginName(), user.getId() == null ? 0 : user.getId())) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) @@ -613,7 +590,7 @@ public class SysUserService implements ISysUserService { } // 登录名唯一教研 - if(!checkSysUserEmail(user.getUserEmail(),user.getId() == null ? 0 : user.getId())){ + if (!checkSysUserEmail(user.getUserEmail(), user.getId() == null ? 0 : user.getId())) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) @@ -623,7 +600,7 @@ public class SysUserService implements ISysUserService { } // 登录名唯一教研 - if(!checkSysUserPhone(user.getUserPhone(),user.getId() == null ? 0 : user.getId())){ + if (!checkSysUserPhone(user.getUserPhone(), user.getId() == null ? 0 : user.getId())) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) @@ -650,12 +627,12 @@ public class SysUserService implements ISysUserService { * @return */ @Override - @ApiOperation(value = "封装用户信息",notes = "封装登录完成后的用户信息(角色、权限、部门、组织、岗位)") - public SessionUser packSessionUser(SessionUser sessionUser, SysUser user,Integer userType,Integer loginPlatform, String languageCode, String deviceId) { + @ApiOperation(value = "封装用户信息", notes = "封装登录完成后的用户信息(角色、权限、部门、组织、岗位)") + public SessionUser packSessionUser(SessionUser sessionUser, SysUser user, Integer userType, Integer loginPlatform, String languageCode, String deviceId) { LOGGER.debug("平台用户 SYS_USER user id :{}", user.getId()); SysUserInfo userInfo = sysUserInfoRDao.getById(user.getUserInfoId()); - if(userInfo == null){ + if (userInfo == null) { throw new UnknownAccountException("用户信息不存在"); } @@ -692,27 +669,27 @@ public class SysUserService implements ISysUserService { public SessionUser packPageSessionUser(SessionUser sessionUser, SysUser user) { SysConfig configPageList = RedisCacheTool.getSysConfigByConfigCode(CommonConstWords.CONFIG_PAGE_SIZE_LIST); try { - if(configPageList != null && StringUtils.isNotBlank(configPageList.getConfigValue())){ + if (configPageList != null && StringUtils.isNotBlank(configPageList.getConfigValue())) { String[] split = configPageList.getConfigValue().split(","); int[] ints = Arrays.stream(split).mapToInt(Integer::parseInt).toArray(); sessionUser.setPageSizeArray(Arrays.stream(ints).boxed().toArray(Integer[]::new)); } - }catch (Exception e){ + } catch (Exception e) { } - if(sessionUser.getPageSizeArray() == null){ + if (sessionUser.getPageSizeArray() == null) { sessionUser.setPageSizeArray(CommonConstWords.CONFIG_PAGE_SIZE_LIST_DEFAULT); } SysConfig configPageSize = RedisCacheTool.getSysConfigByConfigCode(CommonConstWords.CONFIG_PAGE_DEFAULT_SIZE); try { - if(configPageSize != null && StringUtils.isNotBlank(configPageSize.getConfigValue())){ + if (configPageSize != null && StringUtils.isNotBlank(configPageSize.getConfigValue())) { sessionUser.setPageDefaultSize(Integer.parseInt(configPageSize.getConfigValue())); } - }catch (Exception ignored){ + } catch (Exception ignored) { } - if(sessionUser.getPageDefaultSize() == null || sessionUser.getPageDefaultSize() <= 0){ + if (sessionUser.getPageDefaultSize() == null || sessionUser.getPageDefaultSize() <= 0) { sessionUser.setPageDefaultSize(CommonConstWords.CONFIG_PAGE_DEFAULT); } @@ -737,50 +714,52 @@ public class SysUserService implements ISysUserService { /** * 账号数据排序 - * 创建时间 角色升序 - * 序号倒叙 + 编号升序 菜单 - * 创建时间 组织升序 - * 创建时间 部门升序 + * 创建时间 角色升序 + * 序号倒叙 + 编号升序 菜单 + * 创建时间 组织升序 + * 创建时间 部门升序 + * * @param user */ - public void packSysUserSort(SysUser user){ - if(user != null){ + public void packSysUserSort(SysUser user) { + if (user != null) { // 创建时间升序 - if(user.getRoleList() != null){ + if (user.getRoleList() != null) { user.getRoleList().sort(Comparator.comparing(SysRole::getCreateDatetime)); } - if(user.getMenuList() != null){ + if (user.getMenuList() != null) { user.getMenuList().sort(Comparator.comparing(SysMenu::getMenuSort).reversed() // 倒序 - .thenComparing(SysMenu::getMenuCode)); //升序 + .thenComparing(SysMenu::getMenuCode)); //升序 } - if(user.getOrganizeList() != null){ + if (user.getOrganizeList() != null) { user.getOrganizeList().sort(Comparator.comparing(SysOrganize::getCreateDatetime)); } - if(user.getDepartmentList() != null){ + if (user.getDepartmentList() != null) { user.getDepartmentList().sort(Comparator.comparing(SysDepartment::getCreateDatetime)); } } } /** - * 用户数据排序 - * 岗位创建时间 升序 - * 部门创建时间 升序 - * 组织创建时间 升序 + * 用户数据排序 + * 岗位创建时间 升序 + * 部门创建时间 升序 + * 组织创建时间 升序 + * * @param info */ - public void packSysUserInfoSort(SysUserInfo info){ - if(info != null){ - if(info.getPositionList() != null){ + public void packSysUserInfoSort(SysUserInfo info) { + if (info != null) { + if (info.getPositionList() != null) { info.getPositionList().sort(Comparator.comparing(SysPosition::getCreateDatetime)); } - if(info.getDepartmentList() != null){ + if (info.getDepartmentList() != null) { info.getDepartmentList().sort(Comparator.comparing(SysDepartment::getCreateDatetime)); } - if(info.getOrganizeList() != null){ + if (info.getOrganizeList() != null) { info.getOrganizeList().sort(Comparator.comparing(SysOrganize::getCreateDatetime)); } } @@ -788,15 +767,16 @@ public class SysUserService implements ISysUserService { /** * 封装用户角色信息 + * * @param user * @return */ - public void packSysUserRole(SysUser user){ + public void packSysUserRole(SysUser user) { SysRefUserRole refUserRole = new SysRefUserRole(); refUserRole.setUserId(user.getId()); List refUserRoleList = refUserRoleRDao.findByHqlWhere(CoreHqlPack.packDdlBeanSysRefUserRole(refUserRole)); - if(Objects.nonNull(refUserRoleList)){ + if (Objects.nonNull(refUserRoleList)) { List idList = new ArrayList<>(); refUserRoleList.forEach(ref -> idList.add(ref.getRoleId())); user.setRoleList(roleService.findByIdList(idList)); @@ -805,14 +785,15 @@ public class SysUserService implements ISysUserService { /** * 封装用户 菜单信息 + * * @param user * @return */ - public void packSysUserMenu(SysUser user){ + public void packSysUserMenu(SysUser user) { List list = new ArrayList<>(); try { LOGGER.info("平台用户 SYS_USER user id :{}", user.getUserInfoId()); - if(user.getRoleList() != null && user.getRoleList().size() > 0){ + if (user.getRoleList() != null && user.getRoleList().size() > 0) { List ids = new ArrayList<>(); Set menuIdList = new HashSet<>(); user.getRoleList().forEach(role -> { @@ -826,17 +807,17 @@ public class SysUserService implements ISysUserService { } }); List menuList = menuService.findByIdList(new ArrayList<>(menuIdList)); - if(CollectionUtils.isNotEmpty(menuList)){ + if (CollectionUtils.isNotEmpty(menuList)) { for (SysMenu menu : menuList) { - if(CommonConstWords.SYSTEM_MENU_ROOT_ID.equals(menu.getParentId())){ + if (CommonConstWords.SYSTEM_MENU_ROOT_ID.equals(menu.getParentId())) { menu.getChildList().clear(); list.add(menu); } } } } - }catch (Exception e){ - LOGGER.error(" SysUser Peck Menu information Error userId : {} Exception Message : {} " ,user.getUserInfoId(),e.getMessage()); + } catch (Exception e) { + LOGGER.error(" SysUser Peck Menu information Error userId : {} Exception Message : {} ", user.getUserInfoId(), e.getMessage()); e.printStackTrace(); } @@ -872,141 +853,150 @@ public class SysUserService implements ISysUserService { /** * 封装用户 部门信息封装 + * * @param userInfo * @return */ - public void packSysUserInfoDepartment(SysUserInfo userInfo){ + public void packSysUserInfoDepartment(SysUserInfo userInfo) { try { LOGGER.debug("平台用户 SYS_USER user id :{}", userInfo.getId()); - personnelService.findSysRefUserInfoDepartmentById(userInfo.id); + personnelService.findSysRefUserInfoDepartmentById(userInfo.id); userInfo.setDepartment(departmentService.get(userInfo.getDepartmentId())); userInfo.setDepartmentList(personnelService.findSysUserInfoDepartmentByInfoId(userInfo.getId())); - }catch (Exception e){ - LOGGER.error(" SysUser Peck Department information Error userId : {} Exception Message : {} " ,userInfo.getId(),e.getMessage()); + } catch (Exception e) { + LOGGER.error(" SysUser Peck Department information Error userId : {} Exception Message : {} ", userInfo.getId(), e.getMessage()); e.printStackTrace(); } } /** * 封装用户 部门信息封装 + * * @param user * @return */ - public void packSysUserDepartment(SysUser user){ + public void packSysUserDepartment(SysUser user) { try { LOGGER.debug("平台用户 SYS_USER user id :{}", user.getId()); user.setDepartment(departmentService.get(user.getDepartmentId())); user.setDepartmentList(personnelService.findSysUserDepartmentByInfoId(user.id)); - }catch (Exception e){ - LOGGER.error(" SysUser Peck Department information Error userId : {} Exception Message : {} " ,user.getId(),e.getMessage()); + } catch (Exception e) { + LOGGER.error(" SysUser Peck Department information Error userId : {} Exception Message : {} ", user.getId(), e.getMessage()); e.printStackTrace(); } } /** - * 封装用户 岗位信息封装 + * 封装用户 岗位信息封装 + * * @param userInfo * @return */ - public void packSysUserInfoPosition(SysUserInfo userInfo){ + public void packSysUserInfoPosition(SysUserInfo userInfo) { try { LOGGER.debug("平台用户 SYS_USER user id :{}", userInfo.getId()); SysRefUserPosition refUserPosition = new SysRefUserPosition(); refUserPosition.setUserId(userInfo.getId()); List refUserPositionList = refUserPositionRDao.findByHqlWhere(CoreHqlPack.packHqlSysRefUserPosition(refUserPosition)); - if(CollectionUtils.isNotEmpty(refUserPositionList)){ + if (CollectionUtils.isNotEmpty(refUserPositionList)) { List idList = new ArrayList<>(); refUserPositionList.forEach(ref -> idList.add(ref.getPositionId())); userInfo.setPositionList(positionService.findByIdList(idList)); } userInfo.setPosition(positionService.get(userInfo.getPositionId())); - }catch (Exception e){ - LOGGER.error(" SysUser Peck Position information Error userId : {} Exception Message : {} " ,userInfo.getId(),e.getMessage()); + } catch (Exception e) { + LOGGER.error(" SysUser Peck Position information Error userId : {} Exception Message : {} ", userInfo.getId(), e.getMessage()); } } /** - * 封装用户 组织信息封装 + * 封装用户 组织信息封装 + * * @param userInfo * @return */ - public void packSysUserInfoOrganize(SysUserInfo userInfo){ + public void packSysUserInfoOrganize(SysUserInfo userInfo) { try { LOGGER.debug("平台用户 SYS_USER user id :{}", userInfo.getId()); userInfo.setOrganize(organizeService.get(userInfo.getOrganizeId())); - userInfo.setOrganizeList(personnelService.findSysUserInfoOrganize(userInfo.getId()));; - }catch (Exception e){ - LOGGER.error(" SysUser Peck Organize information Error userId : {} Exception Message : {} " ,userInfo.getId(),e.getMessage()); + userInfo.setOrganizeList(personnelService.findSysUserInfoOrganize(userInfo.getId())); + ; + } catch (Exception e) { + LOGGER.error(" SysUser Peck Organize information Error userId : {} Exception Message : {} ", userInfo.getId(), e.getMessage()); } } /** - * 封装用户 组织信息封装 + * 封装用户 组织信息封装 + * * @param userInfo * @return */ - public void packSysUserInfoImage(SysUserInfo userInfo){ + public void packSysUserInfoImage(SysUserInfo userInfo) { try { LOGGER.debug("平台用户 SYS_USER user id :{}", userInfo.getId()); - if(Objects.nonNull(userInfo.getUserImageId())){ + if (Objects.nonNull(userInfo.getUserImageId())) { SysFile file = fileService.getSysFileById(userInfo.getUserImageId()); - if(Objects.nonNull(file)){ + if (Objects.nonNull(file)) { userInfo.setImageFileUrl(file.getFilePath()); } } - }catch (Exception e){ - LOGGER.error(" SysUser Peck Organize information Error userId : {} Exception Message : {} " ,userInfo.getId(),e.getMessage()); + } catch (Exception e) { + LOGGER.error(" SysUser Peck Organize information Error userId : {} Exception Message : {} ", userInfo.getId(), e.getMessage()); } } /** - * 封装用户 组织信息封装 + * 封装用户 组织信息封装 + * * @param user * @return */ - public void packSysUserOrganize(SysUser user){ + public void packSysUserOrganize(SysUser user) { try { LOGGER.debug("平台用户 SYS_USER user id :{}", user.getId()); user.setOrganize(organizeService.get(user.getOrganizeId())); - user.setOrganizeList(personnelService.findSysUserOrganize(user.getId()));; - }catch (Exception e){ - LOGGER.error(" SysUser Peck Organize information Error userId : {} Exception Message : {} " ,user.getId(),e.getMessage()); + user.setOrganizeList(personnelService.findSysUserOrganize(user.getId())); + ; + } catch (Exception e) { + LOGGER.error(" SysUser Peck Organize information Error userId : {} Exception Message : {} ", user.getId(), e.getMessage()); } } /** * 获取集合中的Root Id + * * @param menus * @return */ - private List getSysMenuRootIds(List menus){ - Map map = new HashMap<>(); + private List getSysMenuRootIds(List menus) { + Map map = new HashMap<>(); List result = new ArrayList<>(); SysMenu parentMenu = null; // 获取所有顶级节点 ParentId 不存在的对象 for (SysMenu menu : menus) { parentMenu = map.get(menu.getParentId()); - if(parentMenu == null){ + if (parentMenu == null) { for (SysMenu sysMenu : menus) { - if(sysMenu.getId().longValue() == menu.getParentId().longValue()){ + if (sysMenu.getId().longValue() == menu.getParentId().longValue()) { parentMenu = sysMenu; } } } - map.put(menu.getParentId(),parentMenu); + map.put(menu.getParentId(), parentMenu); } // 封装返回对象 for (Long parentId : map.keySet()) { - if(map.get(parentId) == null){ + if (map.get(parentId) == null) { for (SysMenu sysMenu : menus) { - if(sysMenu.getParentId().longValue() == parentId.longValue()){ + if (sysMenu.getParentId().longValue() == parentId.longValue()) { result.add(sysMenu); } } diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties index fda1e21..c8a09af 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties @@ -1,5 +1,5 @@ #\u672C\u673Aip -impp.server.ip=192.168.1.56 +impp.server.ip=192.168.3.97 #\u9879\u76EE\u7AEF\u53E3 server.port=8100 #\u94FE\u8DEF\u8FFD\u8E2Azipkin\u63A7\u5236\u53F0ip\u5730\u5740 diff --git a/modules/i3plus-core-apiservice/src/main/resources/application.properties b/modules/i3plus-core-apiservice/src/main/resources/application.properties index 078ac2c..229a7b5 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application.properties @@ -1,5 +1,5 @@ #\u4F7F\u7528\u914D\u7F6E -spring.profiles.active=docker +spring.profiles.active=dev #\u9879\u76EE\u63CF\u8FF0\u4FE1\u606F\uFF08swagger\u4E2D\u663E\u5F0F\uFF09\uFF0C\u4E2D\u6587\u4F7F\u7528uncode\u8F6C\u7801 desc.application.name=\u6838\u5FC3\u7BA1\u7406\u540E\u53F0 diff --git a/pom.xml b/pom.xml index 3db2eed..a6aa64a 100644 --- a/pom.xml +++ b/pom.xml @@ -199,6 +199,13 @@ 12.2.0.1 + + org.springframework.boot + spring-boot-starter-data-elasticsearch + 2.4.2 + + + com.microsoft.sqlserver