账户权限管理

master
Caps 6 years ago
parent 8ee851db04
commit 6ccbf217ce

@ -0,0 +1,47 @@
package com.kiisoo.ic.login.bean;
import lombok.Data;
import java.util.Map;
/**
* @author jinchaofan
* @date 2020/2/25 12:51
* @company kiisoo
* @details bean
*/
@Data
public class LoginBean {
/**
*
*/
private String userName;
/**
*
*/
private String login;
/**
* id
*/
private Long roleId;
/**
*
*/
private String roleCode;
/**
* id
*/
private Long userId;
/**
*
*/
private Map<String, Object> loginInfo;
}

@ -0,0 +1,87 @@
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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.Map;
/**
* @Description:
* @Author: wangyinjia
* @Date: 2020/2/18
* @Company: kiisoo
* @Version: 1.0
*/
@Controller
@RequestMapping("/login")
@Slf4j
public class LoginController extends BaseController {
/**
* service
*/
@Autowired
private LoginService loginService;
/**
*
* @param login
* @param password
* @return /
*/
@RequestMapping(value = "/account",method = RequestMethod.POST)
@ResponseBody
public Map<String, Object> loginAccount(@RequestParam("login")String login, @RequestParam("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();
}
}
/**
*
* @param login
* @param password
* @param qywxUserId
* @return /
*/
@RequestMapping(value = "/account/bind",method = RequestMethod.POST)
@ResponseBody
public Map<String, Object> loginAccountBind(@RequestParam("login")String login, @RequestParam("password")String password,
@RequestParam("qywxUserId")String qywxUserId){
try{
Map<String, Object> resultMap = new HashMap<>();
LoginBean loginBean = loginService.login(login, password,false);
resultMap.put("code", loginBean.getLoginInfo().get("code"));
if (LoginEnum.LOGIN_SUCCEED.getCode().equals(loginBean.getLoginInfo().get("code"))){
loginService.bindQywxUserIdByUserId(loginBean.getUserId(),qywxUserId);
}
resultMap.put("results", loginBean);
resultMap.put("success", Boolean.TRUE);
return resultMap;
}catch (Exception e){
log.error("登录失败", e);
return fail();
}
}
}

@ -0,0 +1,42 @@
package com.kiisoo.ic.login.enums;
import lombok.Getter;
/**
* @author jinchaofan
* @date 2020/2/25 12:52
* @company kiisoo
* @details
*/
@Getter
public enum LoginEnum {
LOGIN_SUCCEED("登录成功", "0000"),
LOGIN_ERROR("登录出错", "0001"),
LOGIN_LOGIN_NONENTITY("登录账号不存在", "0002"),
LOGIN_PASSWORD_ERROR("密码不正确,请检查密码", "0003"),
LOGIN_ROLE_NONENTITY("角色不存在", "0004"),
LOGIN_USER_NONENTITY("用户不存在", "0005"),
;
/**
*
*/
private String loginInfo;
/**
*
*/
private String code;
LoginEnum(String loginInfo, String code) {
this.loginInfo = loginInfo;
this.code = code;
}
}

@ -0,0 +1,38 @@
package com.kiisoo.ic.login.service;
import com.kiisoo.ic.login.bean.LoginBean;
import java.util.Map;
/**
* @author jinchaofan
* @date 2020/2/25 0025 13:00
* @company kiisoo
* @details service
*/
public interface LoginService {
/**
*
* @param login
* @param password
* @param isMD5 MD5
* @return bean
*/
LoginBean login(String login, String password, Boolean isMD5);
/**
* id()userId
* @param userId id
* @param qywxUserId id()
* @return
*/
Boolean bindQywxUserIdByUserId(Long userId, String qywxUserId);
/**
* id()
* @param qywxUserId id()
* @return
*/
Map<String, String> getLoginInfoByQywxUserId(String qywxUserId);
}

@ -0,0 +1,161 @@
package com.kiisoo.ic.login.service.impl;
import com.kiisoo.ic.common.utils.MD5FileUtil;
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.system.entity.PrivilageAccountDO;
import com.kiisoo.ic.system.entity.PrivilageRoleDO;
import com.kiisoo.ic.system.entity.PrivilageUserDO;
import com.kiisoo.ic.system.enums.AccountEnum;
import com.kiisoo.ic.system.mapper.PrivilageAccountDOMapper;
import com.kiisoo.ic.system.mapper.PrivilageRoleDOMapper;
import com.kiisoo.ic.system.mapper.PrivilageUserDOMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author jinchaofan
* @date 2020/2/25 12:57
* @company kiisoo
* @details
*/
@Service
public class LoginServiceImpl implements LoginService {
/**
* mapper
*/
@Autowired
private PrivilageAccountDOMapper privilageAccountDOMapper;
/**
* mapper
*/
@Autowired
private PrivilageUserDOMapper privilageUserDOMapper;
/**
* mapper
*/
@Autowired
private PrivilageRoleDOMapper privilageRoleDOMapper;
@Override
public LoginBean login(String login, String password, Boolean isMD5) {
LoginBean loginBean = new LoginBean();
Map<String, Object> loginInfoMap = new HashMap<>();
Map<String, Object> selectAccountMap = new HashMap<>();
selectAccountMap.put("login", login);
selectAccountMap.put("type", AccountEnum.ACCOUNT_TYPE_SYSTEM.getType());
selectAccountMap.put("status", AccountEnum.ACCOUNT_STATUS_NORMAL.getType());
List<PrivilageAccountDO> privilageAccountDOS = privilageAccountDOMapper.selectByMap(selectAccountMap);
//账号不存在
if(privilageAccountDOS == null || privilageAccountDOS.size() == 0) {
loginInfoMap.put("code", LoginEnum.LOGIN_LOGIN_NONENTITY.getCode());
loginBean.setLoginInfo(loginInfoMap);
return loginBean;
}
//账号密码不正确
if (isMD5){
selectAccountMap.put("password", password);
}else{
selectAccountMap.put("password", MD5FileUtil.getMD5String(password));
}
List<PrivilageAccountDO> privilageAccountDOS1 = privilageAccountDOMapper.selectByMap(selectAccountMap);
if(privilageAccountDOS1 == null || privilageAccountDOS1.size() == 0) {
loginInfoMap.put("code", LoginEnum.LOGIN_PASSWORD_ERROR.getCode());
loginBean.setLoginInfo(loginInfoMap);
return loginBean;
}
PrivilageAccountDO privilageAccountDO = privilageAccountDOS1.get(0);
//用户不存在
if(privilageAccountDO.getUserId() == null) {
loginInfoMap.put("code", LoginEnum.LOGIN_USER_NONENTITY.getCode());
loginBean.setLoginInfo(loginInfoMap);
return loginBean;
}
Map<String, Object> selectUserInfoMap = new HashMap<>();
selectUserInfoMap.put("id", privilageAccountDO.getUserId());
List<PrivilageUserDO> privilageUserDOS = privilageUserDOMapper.selectByMap(selectUserInfoMap);
if(privilageUserDOS == null || privilageUserDOS.size() == 0) {
loginInfoMap.put("code", LoginEnum.LOGIN_USER_NONENTITY.getCode());
loginBean.setLoginInfo(loginInfoMap);
return loginBean;
}
PrivilageUserDO privilageUserDO = privilageUserDOS.get(0);
Long userId = privilageUserDO.getId();
//角色不存在
PrivilageRoleDO privilageRoleDO = privilageRoleDOMapper.selectRoleByUserId(userId);
if(privilageRoleDO == null) {
loginInfoMap.put("code", LoginEnum.LOGIN_ROLE_NONENTITY.getCode());
loginBean.setLoginInfo(loginInfoMap);
return loginBean;
}
//成功设置信息
loginBean.setUserName(privilageUserDO.getName());
loginBean.setUserId(userId);
loginBean.setRoleId(privilageRoleDO.getId());
loginBean.setRoleCode(privilageRoleDO.getCode());
loginBean.setLogin(login);
loginInfoMap.put("code", LoginEnum.LOGIN_SUCCEED.getCode());
loginBean.setLoginInfo(loginInfoMap);
return loginBean;
}
@Override
public Boolean bindQywxUserIdByUserId(Long userId, String qywxUserId) {
Map<String, Object> selectAccountMap = new HashMap<>();
selectAccountMap.put("login", qywxUserId);
selectAccountMap.put("type", AccountEnum.ACCOUNT_TYPE_QYWX.getType());
List<PrivilageAccountDO> privilageAccountDOS = privilageAccountDOMapper.selectByMap(selectAccountMap);
//账号不存在
if(privilageAccountDOS == null || privilageAccountDOS.size() == 0) {
PrivilageAccountDO accountDO = new PrivilageAccountDO();
accountDO.setLogin(qywxUserId);
accountDO.setType(AccountEnum.ACCOUNT_TYPE_QYWX.getType());
accountDO.setStatus(AccountEnum.ACCOUNT_STATUS_NORMAL.getType());
accountDO.setCreatedTime(new Date());
accountDO.setUpdatedTime(new Date());
accountDO.setUserId(userId);
int insert = privilageAccountDOMapper.insert(accountDO);
if (insert > 0){
return true;
}
}
return false;
}
@Override
public Map<String, String> getLoginInfoByQywxUserId(String qywxUserId) {
Map<String, Object> selectAccountMap = new HashMap<>();
selectAccountMap.put("login", qywxUserId);
selectAccountMap.put("type", AccountEnum.ACCOUNT_TYPE_QYWX.getType());
List<PrivilageAccountDO> privilageAccountDOS = privilageAccountDOMapper.selectByMap(selectAccountMap);
//账号不存在
if(privilageAccountDOS == null || privilageAccountDOS.size() == 0) {
return null;
}else{
selectAccountMap = new HashMap<>();
selectAccountMap.put("user_id", privilageAccountDOS.get(0).getUserId());
selectAccountMap.put("type", AccountEnum.ACCOUNT_TYPE_SYSTEM.getType());
List<PrivilageAccountDO> accountDOS = privilageAccountDOMapper.selectByMap(selectAccountMap);
if (accountDOS != null && accountDOS.size() > 0){
Map<String, String> result = new HashMap<>(2);
result.put("login",accountDOS.get(0).getLogin());
result.put("password",accountDOS.get(0).getPassword());
return result;
}else{
return null;
}
}
}
}
Loading…
Cancel
Save