电话登录

master
LegnaYet 6 years ago
parent 15370091d6
commit 8caf8587a9

@ -50,6 +50,11 @@ public class Constants {
*/
public static final String ERROR_ROLE_NO_PERMISSION = "0006";
/**
*
*/
public static final String ERROR_MOBILE_NO_USER = "1008";
public static final String ERROR_MSG_ROLE_NO_PERMISSION = "该角色没有登录权限";
/**

@ -86,6 +86,27 @@ public class LoginController extends BaseController {
}
}
/**
*
* @param loginParams
* @return /
*/
@RequestMapping(value = "/mobile/login",method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> mobileLoginAccount(@RequestParam("mobile") String mobile){
try{
Map<String, Object> resultMap = new HashMap<>();
LoginBean loginBean = loginService.mobileLogin(mobile);
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 code

@ -50,4 +50,6 @@ public interface LoginService {
* @return
*/
Map<String, String> qyMiniAutoLogin(String code) throws WxErrorException;
LoginBean mobileLogin(String mobile);
}

@ -7,6 +7,8 @@ import com.kiisoo.ic.constants.Constants;
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.store.entity.PoiStoreStaff;
import com.kiisoo.ic.store.mapper.PoiStoreStaffDOMapper;
import com.kiisoo.ic.system.entity.PrivilageAccountDO;
import com.kiisoo.ic.system.entity.PrivilageRoleDO;
import com.kiisoo.ic.system.entity.PrivilageUserDO;
@ -61,13 +63,20 @@ public class LoginServiceImpl implements LoginService {
* service
*/
private final QWMailListManageService qwMailListManageService;
/**
* service
*/
private final PoiStoreStaffDOMapper poiStoreStaffDOMapper;
@Autowired
public LoginServiceImpl(PrivilageAccountDOMapper privilageAccountDOMapper, PrivilageUserDOMapper privilageUserDOMapper, PrivilageRoleDOMapper privilageRoleDOMapper, QWMailListManageService qwMailListManageService) {
public LoginServiceImpl(PrivilageAccountDOMapper privilageAccountDOMapper, PrivilageUserDOMapper privilageUserDOMapper,
PrivilageRoleDOMapper privilageRoleDOMapper, QWMailListManageService qwMailListManageService,
PoiStoreStaffDOMapper poiStoreStaffDOMapper) {
this.privilageAccountDOMapper = privilageAccountDOMapper;
this.privilageUserDOMapper = privilageUserDOMapper;
this.privilageRoleDOMapper = privilageRoleDOMapper;
this.qwMailListManageService = qwMailListManageService;
this.poiStoreStaffDOMapper = poiStoreStaffDOMapper;
}
@ -174,6 +183,78 @@ public class LoginServiceImpl implements LoginService {
return loginBean;
}
@Override
public LoginBean mobileLogin(String mobile) {
//查询账号
QueryWrapper<PrivilageAccountDO> accountQw = new QueryWrapper<>();
accountQw.eq("login",mobile);
accountQw.eq("type",AccountEnum.ACCOUNT_TYPE_MOBILE.getType());
List<PrivilageAccountDO> mobileAccounts = privilageAccountDOMapper.selectList(accountQw);
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = null;
Long userId = null;
if (CollectionUtils.isNotEmpty(mobileAccounts)){
token = new UsernamePasswordToken(mobileAccounts.get(0).getLogin(), mobileAccounts.get(0).getPassword(), true);
userId = mobileAccounts.get(0).getUserId();
}else{
QueryWrapper<PrivilageUserDO> userQw = new QueryWrapper<>();
userQw.eq("mobil",mobile);
//无账号则绑定账号
List<PrivilageUserDO> privilageUserDOS = privilageUserDOMapper.selectList(userQw);
if (CollectionUtils.isNotEmpty(mobileAccounts)){
userId = privilageUserDOS.get(0).getId();
PrivilageAccountDO privilageAccountDO = new PrivilageAccountDO();
privilageAccountDO.setLogin(mobile);
privilageAccountDO.setStatus(1);
privilageAccountDO.setUserId(userId);
privilageAccountDO.setType(AccountEnum.ACCOUNT_TYPE_MOBILE.getType());
int insert = privilageAccountDOMapper.insert(privilageAccountDO);
if (insert > 1){
token = new UsernamePasswordToken(mobile, "", true);
}else{
return new LoginBean(Constants.ERROR_SYSTEM);
}
}else{
return new LoginBean(Constants.ERROR_ROLE_NO_PERMISSION);
}
}
try {
subject.login(token);
} catch (UnknownAccountException e) {//账号不存在
return new LoginBean(Constants.ERROR_ACCOUNT_NOT_EXIST);
} catch (IncorrectCredentialsException e) {//密码错误
return new LoginBean(Constants.ERROR_PASSWORD);
}catch (AuthenticationException e) {
log.info("login exception", e);
return new LoginBean(Constants.ERROR_SYSTEM);
}
LoginBean loginBean = new LoginBean();
if (subject.isAuthenticated()) {
Map<String, Object> selectAccountMap = new HashMap<>();
PrivilageUserDO privilageUserDO = privilageUserDOMapper.selectById(userId);
PrivilageRoleDO roleDO = privilageRoleDOMapper.selectRoleName(userId);
Long storeId = privilageUserDOMapper.selectStoreIdByUserId(userId);
Map<String, Object> loginInfoMap = new HashMap<>();
//成功设置信息
loginBean.setUserName(privilageUserDO.getName());
loginBean.setUserId(privilageUserDO.getId());
loginBean.setRoleId(privilageUserDO.getId());
loginBean.setRoleCode(roleDO.getCode());
loginBean.setStoreId(storeId);
if (StringUtils.isNotBlank(roleDO.getCode()) && !MINI_ROLE_CODE.contains(roleDO.getCode())){
return new LoginBean(Constants.ERROR_ROLE_NO_PERMISSION);
}
loginBean.setLogin(mobile);
loginInfoMap.put("code", LoginEnum.LOGIN_SUCCEED.getCode());
loginBean.setLoginInfo(loginInfoMap);
}else {
return new LoginBean(Constants.LOGIN_NO_PERMISSIONS);
}
return loginBean;
}
@Override
public void bindQywxUserIdByUserId(Long userId, String qywxUserId) {
Map<String, Object> selectAccountMap = new HashMap<>();

@ -17,6 +17,7 @@ public enum AccountEnum {
ACCOUNT_MODIFY_STATUS_SUCCEED("账号修改成功", 0),
ACCOUNT_MODIFY_STATUS_EXISTS("账号已存在", 1),
ACCOUNT_TYPE_QYWX("企业微信账号类型", 2),
ACCOUNT_TYPE_MOBILE("企业微信账号类型", 3),
ACCOUNT_FIRST_PWD("123456", 0);
/**

Loading…
Cancel
Save