package com.ibeetl.admin.core.service;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import com.ibeetl.admin.core.dao.CityPartnerDao;
|
import com.ibeetl.admin.core.entity.XzxCityPartner;
|
import com.ibeetl.admin.core.util.ExceptionEnum;
|
import com.ibeetl.admin.core.util.MiException;
|
import org.beetl.sql.core.SQLManager;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import com.ibeetl.admin.core.conf.PasswordConfig.PasswordEncryptService;
|
import com.ibeetl.admin.core.dao.CoreOrgDao;
|
import com.ibeetl.admin.core.dao.CoreUserDao;
|
import com.ibeetl.admin.core.entity.CoreOrg;
|
import com.ibeetl.admin.core.entity.CoreUser;
|
import com.ibeetl.admin.core.rbac.UserLoginInfo;
|
import com.ibeetl.admin.core.util.PlatformException;
|
import com.ibeetl.admin.core.util.enums.DelFlagEnum;
|
import com.ibeetl.admin.core.util.enums.GeneralStateEnum;
|
|
@Service
|
@Transactional
|
public class CoreUserService {
|
@Autowired
|
CoreUserDao userDao ;
|
@Autowired
|
CityPartnerDao partnerDao ;
|
|
@Autowired
|
CoreOrgDao orgDao;
|
|
@Autowired
|
PasswordEncryptService passwordEncryptService;
|
|
@Autowired SQLManager sqlManager;
|
|
public UserLoginInfo login(String userName,String password){
|
CoreUser query = new CoreUser();
|
query.setCode(userName);
|
query.setPassword(passwordEncryptService.password(password));
|
query.setState(GeneralStateEnum.ENABLE.getValue());
|
CoreUser user =userDao.createLambdaQuery().andEq(CoreUser::getCode,userName).
|
andEq(CoreUser::getPassword, passwordEncryptService.password(password)).single();
|
if(user==null) {
|
throw new PlatformException("用户"+"不存在或者密码错误");
|
}
|
if(!user.getState().equals(GeneralStateEnum.ENABLE.getValue())){
|
throw new PlatformException("用户"+"已经失效");
|
}
|
if(user.getDelFlag()==DelFlagEnum.DELETED.getValue()) {
|
throw new PlatformException("用户"+"已经删除");
|
}
|
|
|
List<CoreOrg> orgs = getUserOrg(user.getId(),user.getOrgId());
|
UserLoginInfo loginInfo = new UserLoginInfo();
|
loginInfo.setOrgs(orgs);
|
loginInfo.setUser(user);
|
return loginInfo;
|
|
}
|
|
public Map<String,Object> loginApi(String userName, String password,String userType){
|
Map<String,Object> map = new HashMap<>();
|
String msg = "";
|
CoreUser query = new CoreUser();
|
query.setCode(userName);
|
query.setPassword(passwordEncryptService.password(password));
|
query.setState(GeneralStateEnum.ENABLE.getValue());
|
CoreUser user =userDao.createLambdaQuery().andEq(CoreUser::getCode,userName).andEq(CoreUser::getDelFlag,0).
|
andEq(CoreUser::getPassword, passwordEncryptService.password(password)).single();
|
if(user==null) {
|
XzxCityPartner query1 = new XzxCityPartner();
|
query1.setAccountNo(userName);
|
query1.setPassword(passwordEncryptService.password(password));
|
query1.setProhibit(1);
|
XzxCityPartner partner =partnerDao.createLambdaQuery().andEq(XzxCityPartner::getAccountNo,userName).andEq(XzxCityPartner::getDelFlag,0).
|
andEq(XzxCityPartner::getPassword, passwordEncryptService.password(password)).single();
|
if(partner==null){
|
msg = "用户"+"不存在或者密码错误";
|
}else{
|
user = new CoreUser();
|
user.setName(partner.getPartnerName());
|
user.setState(partner.getState());
|
user.setPassword(partner.getPassword());
|
user.setCode(partner.getAccountNo());
|
user.setDelFlag(partner.getDelFlag());
|
user.setAttachmentId(partner.getAttachmentId());
|
user.setJobType0(partner.getJobType0());
|
user.setJobType1(partner.getJobType1());
|
user.setOrgId(partner.getOrgId());
|
user.setId(partner.getId());
|
|
userType="2";
|
}
|
|
}else{
|
if(!user.getState().equals(GeneralStateEnum.ENABLE.getValue())){
|
msg ="用户"+"已经失效";
|
}
|
if(user.getDelFlag()==DelFlagEnum.DELETED.getValue()) {
|
msg ="用户"+"已经删除";
|
}
|
}
|
UserLoginInfo loginInfo = new UserLoginInfo();
|
|
if(!"".equals(msg)){
|
map.put("msg",msg);
|
map.put("userLoginInfo",loginInfo);
|
}else{
|
List<CoreOrg> orgs = new ArrayList<>();
|
if(null!=user.getOrgId()){
|
orgs = getUserOrg(user.getId(),user.getOrgId());
|
}else{
|
orgs = getUserOrg(user.getId(),1);
|
}
|
loginInfo.setOrgs(orgs);
|
loginInfo.setUser(user);
|
map.put("userLoginInfo",loginInfo);
|
map.put("userType",userType);
|
}
|
|
return map;
|
|
}
|
|
public List<CoreOrg> getUserOrg(long userId,long orgId){
|
List<CoreOrg> orgs = orgDao.queryOrgByUser(userId);
|
if(orgs.isEmpty()){
|
//没有赋值任何角色,默认给一个所在部门
|
//排除打包站
|
if(orgId==16){
|
System.out.println(ExceptionEnum.MONITOR_EXCEPTION);
|
throw new MiException(ExceptionEnum.MONITOR_EXCEPTION);
|
}
|
CoreOrg userOrg = orgDao.unique(orgId);
|
orgs.add(userOrg);
|
}
|
return orgs;
|
}
|
|
|
|
public List<CoreUser> getAllUsersByRole(String role){
|
return userDao.getUserByRole(role);
|
}
|
|
public CoreUser getUserByCode(String userName){
|
CoreUser user = new CoreUser();
|
user.setCode(userName);
|
return userDao.templateOne(user);
|
}
|
|
public void update(CoreUser user){
|
userDao.updateById(user);
|
}
|
|
public CoreOrg getOrgById(Long orgId){
|
return orgDao.unique(orgId);
|
}
|
|
public CoreUser getUserById(Long userId){
|
return userDao.unique(userId);
|
}
|
|
public List<String> getOrgCode(List<Long> orgIds){
|
return orgDao.queryAllOrgCode(orgIds);
|
}
|
}
|