Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/LoginController.java
@@ -10,14 +10,15 @@
import com.vci.starter.web.util.MessageUtils;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.starter.web.util.WebThreadLocalUtil;
import com.vci.web.bo.LoginResultBO;
import com.vci.web.dto.LoginUserDTO;
import com.vci.bo.LoginResultBO;
import com.vci.dto.LoginUserDTO;
import com.vci.web.service.LoginServiceI;
import eu.bitwalker.useragentutils.*;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@@ -27,7 +28,10 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.security.Principal;
import java.util.*;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
/**
 * 登录控制器
@@ -46,6 +50,11 @@
   private LoginServiceI loginService;
   /**
    * 日志
    */
   private Logger logger = LoggerFactory.getLogger(getClass());
   /**
    * 登录,这个地方主要是为了登录后单独的业务
    * @param userDTO 用户的对象
    * @param request 请求对象
@@ -58,17 +67,24 @@
   @VciUnCheckRight()
   public BaseResult login(LoginUserDTO userDTO, HttpServletRequest request, RequestClientInfo clientInfo){
      VciBaseUtil.alertNotNull(userDTO,"用户对象",clientInfo,"请求客户端信息");
      wrapperBrowserInfo(clientInfo,request);
      LoginResultBO loginResultBO = loginService.login(userDTO,clientInfo);
      if(loginResultBO.isSuccess()){
         return BaseResult.success(loginResultBO);
      }else{
         BaseResult result = BaseResult.fail(loginResultBO.getFailMsg());
         if(StringUtils.isBlank(loginResultBO.getFailMsg())){
            result.setMsg(MessageUtils.get(loginResultBO.getFailCode(),loginResultBO.getFailMsgArray()));
      try {
         wrapperBrowserInfo(clientInfo,request);
         LoginResultBO loginResultBO = loginService.login(userDTO,clientInfo);
         if(loginResultBO.isSuccess()){
            return BaseResult.success(loginResultBO);
         }else{
            BaseResult result = BaseResult.fail(loginResultBO.getFailMsg());
            if(StringUtils.isBlank(loginResultBO.getFailMsg())){
               result.setMsg(MessageUtils.get(loginResultBO.getFailCode(),loginResultBO.getFailMsgArray()));
            }
            result.setObj(loginResultBO);
            return result;
         }
         result.setObj(loginResultBO);
         return result;
      }catch (Exception e){
         e.printStackTrace();
         String msg = "调用登录方法时出现错误,原因:"+VciBaseUtil.getExceptionMessage(e);
         logger.error(msg);
         return BaseResult.fail(msg);
      }
   }
   
@@ -256,6 +272,14 @@
               clientInfo.setRequestType("browser");
            }
         }
         Locale loc = Locale.getDefault();
         clientInfo.setCountry(loc.getCountry());
         clientInfo.setLanguage(loc.toLanguageTag());
         Map<String,String> map = System.getenv();
         clientInfo.setMachine(map.get("COMPUTERNAME"));
         clientInfo.setOsUser(map.get("USERNAME"));
      }
   }
@@ -297,9 +321,9 @@
   @ResponseBody
   public BaseResult getSessionInfo(){
      BaseResult<SessionInfo> json = new BaseResult<>();
      json.setObj(WebThreadLocalUtil.getCurrentUserSessionInfoInThread());
      if(json.getObj()!=null){
         json.setSuccess(true);
      SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread();
      if(sessionInfo != null){
         json = json.success(sessionInfo);
      }
      return json;
   }