From 265ce168fd575ddd81041d6fd5425f445c5f0b2c Mon Sep 17 00:00:00 2001 From: "wei.peng" <123456> Date: Thu, 27 Jun 2019 17:24:01 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=8D=95=E5=B8=90=E5=8F=B7?= =?UTF-8?q?=E5=A4=9A=E5=B9=B3=E5=8F=B0=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/api/iservice/busi/ISysUserService.java | 2 +- .../controller/base/WhiteController.java | 47 ++++++++++++++++++++-- .../controller/busi/SysEnumController.java | 10 +---- .../serviceimpl/base/SystemLoginService.java | 2 +- .../serviceimpl/busi/SysUserService.java | 11 ++--- 5 files changed, 52 insertions(+), 20 deletions(-) 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 60e05cf..136719d 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 @@ -25,7 +25,7 @@ public interface ISysUserService { * @return */ @ApiOperation(value = "账号登录",notes = "普通账号登录功能") - SessionUser queryUserLogin(String loginName, String password, String languageCode) throws AuthenticationException; + SessionUser queryUserLogin(String loginName, String password, String languageCode,Integer loginPlatform) throws AuthenticationException; /** * 修改状态 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 8e8145f..8213be2 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 @@ -4,6 +4,7 @@ import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService; import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService; import cn.estsh.i3plus.core.api.iservice.busi.*; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +import cn.estsh.i3plus.platform.common.tool.CookieTool; import cn.estsh.i3plus.platform.common.tool.ServletRequestTool; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.tool.TimeTool; @@ -23,6 +24,7 @@ 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.lang3.StringUtils; import org.apache.shiro.authc.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -32,6 +34,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -116,20 +119,22 @@ public class WhiteController extends CoreBaseController { LOGGER.info("用户登陆 loginName:{} loginPwd:{} languageCode:{}",loginName,loginPwd,languageCode); ResultBean result = null; - this.startMultiService(); try { ValidatorBean.checkNotNull(loginName,"用户名不能为空"); ValidatorBean.checkNotNull(loginPwd,"密码不能为空"); ValidatorBean.checkNotNull(languageCode,"语言不能为空"); - logout(); - SessionUser user = userService.queryUserLogin(loginName.trim(),loginPwd.trim(),languageCode); + + SessionUser user = userService.queryUserLogin(loginName.trim(), loginPwd.trim(), languageCode, getLoginPlatform().getValue()); String redisKey = CommonConstWords.USER_LOGIN_ERROR + "_" + user.getUser().getId(); redisCore.deleteKey(redisKey); LOGGER.info("会员登陆:{}",user); - AuthUtil.setSessionObject("languageCode",languageCode); + // 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("/"); @@ -320,4 +325,38 @@ public class WhiteController extends CoreBaseController { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } + + /** + * @return 处理结果 + */ + @GetMapping("/sys-login-platform") + @ApiOperation(value = "登录标识", notes = "登录标识") + public ResultBean getSysloginPlatforml() { + return new ResultBean(true, "操作成功", + Arrays.asList(CommonEnumUtil.LOG_LOGIN_PLATFORM.values())); + } + + /** + * 获取登录平台信息 + * @return + */ + private CommonEnumUtil.LOG_LOGIN_PLATFORM getLoginPlatform(){ + String value = CookieTool.getCookieValue(request, CommonConstWords.SESSION_LOGIN_PLATFORM); + if(StringUtils.isBlank(value)){ + value = CommonEnumUtil.LOG_LOGIN_PLATFORM.PC_IMPP_CORE.getValue() + ""; + }else{ + try { + Integer.parseInt(value); + }catch (Exception e){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_FORMAT.getCode()) + .setErrorDetail("平台登录标识转换错误") + .setErrorSolution("请重新操作") + .build(); + } + } + CommonEnumUtil.LOG_LOGIN_PLATFORM platform = CommonEnumUtil.LOG_LOGIN_PLATFORM.valueOf(Integer.parseInt(value)); + return platform == null ? CommonEnumUtil.LOG_LOGIN_PLATFORM.PC_IMPP_CORE : platform; + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java index 6ecea90..1ecaf17 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java @@ -296,13 +296,5 @@ public class SysEnumController extends CoreBaseController { return new ResultBean(true, "操作成功", list); } - /** - * @return 处理结果 - */ - @GetMapping("/sys-login-platform") - @ApiOperation(value = "数学表达式", notes = "数学表达式") - public ResultBean getSysloginPlatforml() { - return new ResultBean(true, "操作成功", - Arrays.asList(CommonEnumUtil.LOG_LOGIN_PLATFORM.values())); - } + } 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 6239fd5..91fbbcc 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,7 @@ public class SystemLoginService implements ISystemLoginService { SysUser user = getUserLoginInfo(userToken.getLoginName(),userToken.getLoginPwd()); LOGGER.info("【验证用户checkUserLogin】{}",user); //用户单地登录 -// AuthUtil.checkLoginOnly(userToken.getLoginName()); + AuthUtil.checkLoginOnly(userToken); return packSessionUser(user,CommonEnumUtil.USER_TYPE.USER.getCode(),userToken.getLanguageCode()); } 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 03747d5..8dd7c05 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,6 +9,7 @@ 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; @@ -23,10 +24,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 com.alibaba.fastjson.JSON; import io.swagger.annotations.ApiOperation; -import org.apache.commons.collections.ListUtils; -import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.CredentialsException; @@ -40,6 +38,8 @@ import org.springframework.transaction.annotation.Transactional; import java.util.*; + + /** * @Description : 平台用户业务 * @Reference : @@ -103,10 +103,10 @@ public class SysUserService implements ISysUserService { @Override @ApiOperation(value = "用户登录", notes = "用户登录功能实现") @Transactional(propagation = Propagation.REQUIRED) - public SessionUser queryUserLogin(String loginName, String password, String languageCode) throws AuthenticationException { + public SessionUser queryUserLogin(String loginName, String password, String languageCode,Integer loginPlatform) throws AuthenticationException { LOGGER.debug("平台用户 SYS_USER loginName:{} \t password:{} \t languageCode:{}", loginName, password, languageCode); - UserToken token = new UserToken(loginName,password,languageCode); + UserToken token = new UserToken(loginName,password,languageCode,loginPlatform); SessionUser sessionUser = AuthUtil.login(token); SysUser user = this.getSysUserByLoginName(loginName); @@ -116,6 +116,7 @@ public class SysUserService implements ISysUserService { packSessionUser(sessionUser, user, user.getUserType(), languageCode); AuthUtil.setSessionUser(sessionUser); refreshUserLoginInformation(user.getId()); + return sessionUser; }