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 orgs = getUserOrg(user.getId(),user.getOrgId()); UserLoginInfo loginInfo = new UserLoginInfo(); loginInfo.setOrgs(orgs); loginInfo.setUser(user); return loginInfo; } public Map loginApi(String userName, String password,String userType){ Map 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 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 getUserOrg(long userId,long orgId){ List 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 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 getOrgCode(List orgIds){ return orgDao.queryAllOrgCode(orgIds); } }