You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

193 lines
7.0 KiB
Java

package com.kiisoo.ic.login.controller;
import com.kiisoo.ic.common.BaseController;
import com.kiisoo.ic.login.bean.LoginBean;
import com.kiisoo.ic.login.enums.LoginEnum;
import com.kiisoo.ic.login.service.LoginService;
import com.kiisoo.ic.utils.PasswordEncry;
6 years ago
import com.kiisoo.ic.wx.service.QWMailListManageService;
import lombok.extern.slf4j.Slf4j;
6 years ago
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
6 years ago
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.Map;
6 years ago
import static com.kiisoo.ic.constants.Constants.ERROR_ACCOUNT_NOT_BIND;
6 years ago
import static com.kiisoo.ic.constants.Constants.ERROR_SYSTEM;
6 years ago
/**
* @Description:
* @Author: wangyinjia
* @Date: 2020/2/18
* @Company: kiisoo
* @Version: 1.0
*/
@Controller
@Slf4j
public class LoginController extends BaseController {
/**
* service
*/
private final LoginService loginService;
@Autowired
public LoginController(LoginService loginService) {
this.loginService = loginService;
}
/**
*
* @param login
* @param password
* @return /
*/
@RequestMapping(value = "/login",method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> loginAccount(@RequestParam(value = "login")String login,
@RequestParam(value = "password")String password,
@RequestParam(value = "isMD5",required = false,defaultValue = "false")Boolean isMD5){
try{
Map<String, Object> resultMap = new HashMap<>();
LoginBean loginBean = loginService.login(login, password,isMD5);
resultMap.put("code", loginBean.getLoginInfo().get("code"));
resultMap.put("results", loginBean);
resultMap.put("success", Boolean.TRUE);
return resultMap;
}catch (Exception e){
log.error("登录失败", e);
return fail();
}
}
6 years ago
/**
*
6 years ago
* @param loginParams
6 years ago
* @return /
*/
6 years ago
@RequestMapping(value = "/mini/login",method = RequestMethod.POST)
6 years ago
@ResponseBody
6 years ago
public Map<String, Object> miniLoginAccount(@RequestBody LoginBean loginParams){
6 years ago
try{
Map<String, Object> resultMap = new HashMap<>();
6 years ago
LoginBean loginBean = loginService.miniLogin(loginParams.getLogin(), loginParams.getPassword(),false);
6 years ago
resultMap.put("code", loginBean.getLoginInfo().get("code"));
resultMap.put("results", loginBean);
resultMap.put("success", Boolean.TRUE);
6 years ago
return resultMap;
}catch (Exception e){
log.error("登录失败", e);
return fail();
}
}
/**
*
* @param encrypdata
* @param ivdata
* @param sessionkey
* @return
6 years ago
*/
@RequestMapping(value = "/mobile/login",method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> mobileLoginAccount(@RequestParam("encrypdata") String encrypdata, @RequestParam("ivdata") String ivdata, @RequestParam("sessionkey")String sessionkey){
6 years ago
try{
Map<String, Object> resultMap = new HashMap<>();
String mobile = PasswordEncry.encode(encrypdata, ivdata, sessionkey);
if(StringUtils.isNotBlank(mobile)){
LoginBean loginBean = loginService.mobileLogin(mobile);
resultMap.put("code", loginBean.getLoginInfo().get("code"));
resultMap.put("results", loginBean);
resultMap.put("success", Boolean.TRUE);
}else{
resultMap.put("code", "0001");
resultMap.put("success", Boolean.FALSE);
}
6 years ago
return resultMap;
}catch (Exception e){
log.error("登录失败", e);
return fail();
}
}
/**
*
* @param code
* @return /
*/
@RequestMapping(value = "/qy/mini/login",method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> qyMiniAutoLogin(@RequestParam(value = "code")String code){
try{
Map<String, String> accountInfo = loginService.qyMiniAutoLogin(code);
6 years ago
LoginBean loginBean = null;
6 years ago
if (accountInfo!=null){
if (StringUtils.isNotBlank(accountInfo.get("login")) && StringUtils.isNotBlank(accountInfo.get("password"))){
6 years ago
loginBean = loginService.miniLogin(accountInfo.get("login"), accountInfo.get("password"), true);
if (accountInfo.get("cpUserId").equals(loginBean.getCpUserId())){
loginBean.getLoginInfo().put("code",LoginEnum.LOGIN_SUCCEED.getCode());
}
6 years ago
loginBean.setSessionKey(accountInfo.get("sessionKey"));
6 years ago
}else{
if (StringUtils.isNotBlank(accountInfo.get("cpUserId"))){
String cpUserId = accountInfo.get("cpUserId");
6 years ago
loginBean = new LoginBean(ERROR_ACCOUNT_NOT_BIND);
6 years ago
loginBean.setLogin(cpUserId);
6 years ago
loginBean.setSessionKey(accountInfo.get("sessionKey"));
6 years ago
}
}
6 years ago
}else{
loginBean = new LoginBean(ERROR_SYSTEM);
6 years ago
}
6 years ago
return data(loginBean);
6 years ago
}catch (Exception e){
log.error("登录失败", e);
return fail();
}
}
/**
*
6 years ago
* @param loginParams
* @return /
*/
6 years ago
@RequestMapping(value = "/login/bind",method = RequestMethod.POST)
@ResponseBody
6 years ago
public Map<String, Object> loginAccountBind(@RequestBody LoginBean loginParams){
try{
Map<String, Object> resultMap = new HashMap<>();
6 years ago
LoginBean loginBean = loginService.miniLogin(loginParams.getLogin(), loginParams.getPassword(),false);
resultMap.put("code", loginBean.getLoginInfo().get("code"));
if (LoginEnum.LOGIN_SUCCEED.getCode().equals(loginBean.getLoginInfo().get("code"))){
6 years ago
loginService.bindQywxUserIdByUserId(loginBean.getUserId(),loginParams.getCpUserId());
}
resultMap.put("results", loginBean);
resultMap.put("success", Boolean.TRUE);
return resultMap;
}catch (Exception e){
log.error("登录失败", e);
return fail();
}
}
/**
*
* @param session
* @return string
*/
@RequestMapping("/logout")
public String logOut(HttpSession session) {
Subject subject = SecurityUtils.getSubject();
subject.logout();
return "login";
}
}