|
|
|
@ -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<>();
|
|
|
|
|