yunhao.wang 7 years ago
commit e4ad6c599e

@ -1,441 +1,441 @@
//package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
//
//import cn.estsh.i3plus.core.api.iservice.base.ISysUserService;
//import cn.estsh.i3plus.core.apiservice.dao.IUserPermissionDao;
//import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
//import cn.estsh.i3plus.pojo.base.shirotoken.AdminToken;
//import cn.estsh.i3plus.pojo.base.shirotoken.SaAdminToken;
//import cn.estsh.i3plus.pojo.base.shirotoken.UserToken;
//import cn.estsh.i3plus.pojo.model.flatform.UserModel;
//import cn.estsh.i3plus.pojo.platform.bean.*;
//import cn.estsh.i3plus.pojo.platform.repository.*;
//import cn.estsh.impp.framework.boot.auth.AuthUtil;
//import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
//import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
//import org.apache.commons.lang3.StringUtils;
//import org.apache.shiro.authc.AuthenticationToken;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * @Description : 平台用户业务
// * @Reference :
// * @Author : wei.peng
// * @Date : 2018-10-25 17:45
// * @Modify :
// **/
//@Service
//public class SysUserServiceImpl implements ISysUserService {
//
// public static final Logger LOGGER = LoggerFactory.getLogger(SysUserServiceImpl.class);
//
// @Autowired
// private SysUserRepository sysUserRDao;
//
// @Autowired
// private SysUserInfoRepository sysUserInfoRDao;
//
// @Autowired
// private IUserPermissionDao userPermissionDao;
//
// @Autowired
// private OrganizeRepository organizeRDao;
//
// @Autowired
// private SysRoleRepository sysRoleRDao;
//
// @Autowired
// private DepartmentRepository departmentRDao;
//
// @Autowired
// private PositionRepository positionRDao;
//
// @Autowired
// private RefUserRoleRepository refUserRoleRDao;
//
// @Autowired
// private RefUserDepartmentRepository refUserDepartmentRDao;
//
// @Autowired
// private RefUserPositionRepository refUserPositionRDao;
//
// @Override
// public SessionUser queryUserLogin(String loginName, String password, String languageCode) {
// LOGGER.info("平台用户 SYS_USER loginName:{} \t password:{} \t languageCode:{}", loginName, password, languageCode);
// SysUser user = getSysUserByLoginName(loginName);
// AuthenticationToken token = null;
//
// if (user == null) {
// //用户不存在
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
// .setErrorCode(ImppExceptionEnum.LOGIN_EXCEPTION.getCode())
// .setErrorDetail("用户不存在")
// .setErrorSolution("重新登陆")
// .build();
// } else if (!StringUtils.equals(user.getUserLoginPassword(), password)) {
// //密码不符
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
// .setErrorCode(ImppExceptionEnum.LOGIN_EXCEPTION.getCode())
// .setErrorDetail("登陆密码错误")
// .setErrorSolution("重新输入")
// .build();
// }
//
// switch (user.getUserTypeId()) {
// case 2:
// token = new AdminToken(loginName, password, languageCode);
// break;
// case 3:
// token = new SaAdminToken(loginName, password, languageCode);
// break;
// default:
// token = new UserToken(loginName, password, languageCode);
// break;
// }
// SessionUser sessionUser = AuthUtil.login(token);
//
// user = getSysUserInfo(user); //设置用户详细信息
// packSessionUser(sessionUser, user, user.getUserTypeId(), languageCode);
// AuthUtil.setSessionUser(sessionUser);
// return sessionUser;
// }
//
//
// @Override
// public void updateSysUserStatus(String id, int status, SessionUser user) {
// LOGGER.info("平台用户 SYS_USER id:{} status:{} modifyUser:{}", id, status, user.getUserName());
// SysUser sysUser = sysUserRDao.getById(Long.parseLong(id));
// sysUser.setUserStatus(status);
// sysUser.setModifyUser(user.getUserName());
// sysUserRDao.update(sysUser);
// }
//
// @Override
// public SysUser updateSysUserModel(UserModel model, SessionUser user) {
// LOGGER.info("平台用户 SYS_USER model:{}", model);
// LOGGER.info("平台用户 SYS_USER user:{}", user);
//
// // 数据真实性校验
// SysRole sysRole = sysRoleRDao.getById(model.getRole().id);
// checkSysRole(sysRole);
//
// Department dep = departmentRDao.getById(model.getDepartment().getId());
// checkDepartment(dep);
//
// Position pos = positionRDao.getById(model.getPosition().getId());
// checkPosition(pos);
//
// Organize organize = organizeRDao.getById(model.getDepartment().getOrganizeId());
// checkOrganize(organize);
//
// SysUser sysUser = model.getUser();
//
// //TODO UserLoginName Count
// SysUser loginUser = getSysUserByLoginName(sysUser.getUserLoginName());
// // 判断是否修改登录名称
// if (loginUser == null || loginUser.getId().equals(sysUser.getId())) {
// // 冗余部分信息
// sysUser.setRedDepartmentName(dep.getDepartmentName());
// sysUser.setRedRoleName(sysRole.getName());
// sysUser.setRedPositionName(pos.getPositionName());
// sysUser.setOrganizeId(organize.getId());
// sysUser.setRedOrganizeName(organize.getRedParentName());
//
// if (!sysUser.getUserLoginPassword().isEmpty()) {
// //TODO 密码加密
// }
//
// // 刷新用户角色关系信息
// refreshRefUserRole(model, sysUser);
//
// // 刷新用户部门关系信息
// refreshRefUserDepartment(model, sysUser);
//
// // 刷新用户岗位关系信息
// refreshRefUserPosition(model, sysUser);
//
// // 保存用户信息
// sysUserInfoRDao.save(model.getUserInfo());
// return sysUserRDao.save(sysUser);
// } else {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
// .setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode())
// .setErrorDetail("用户名已存在")
// .setErrorSolution("请重新输入用户名")
// .build();
// }
// }
//
// @Override
// public SysUser insertSysUserModel(UserModel model, SessionUser user) {
// LOGGER.info("平台用户 SYS_USER model:{}", model);
// LOGGER.info("平台用户 SYS_USER user:{}", user);
//
// SysUser sysUser = model.getUser();
// SysUser loginUser = getSysUserByLoginName(sysUser.getUserLoginName());
// if (null == loginUser) {
// sysUser = sysUserRDao.insert(sysUser);
// model.getUserInfo().setUserId(sysUser.getId());
// model.setUser(sysUser);
// return updateSysUserModel(model, user);
// } else {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
// .setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode())
// .setErrorDetail("用户名已存在")
// .setErrorSolution("请重新输入用户名")
// .build();
// }
// }
//
// @Override
// public void deleteSysUserById(String id) {
// LOGGER.info("平台用户 SYS_USER DELETE By id :{}", id);
// sysUserRDao.updateByProperties("id", id, "isValid", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
//
// // 删除用户关系(物理删除)
// refUserRoleRDao.deleteByProperties("userId", Long.parseLong(id)); // 删除用户角色关系
// refUserDepartmentRDao.deleteByProperties("userId", Long.parseLong(id)); //删除用户部门关系
// refUserPositionRDao.deleteByProperties("userId", Long.parseLong(id)); //删除用户部门关系
// }
//
// @Override
// public List<SysUser> findSysUserAll() {
// LOGGER.info("平台用户 SYS_USER find All");
// return sysUserRDao.findByProperty("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
// }
//
// @Override
// public SysUser getSysUserById(String id) {
// LOGGER.info("平台用户 SYS_USER get By id :{}", id);
// return sysUserRDao.getById(Long.parseLong(id));
// }
//
// @Override
// public SysUser getSysUserByLoginName(String loginName) {
// LOGGER.info("平台用户 SYS_USER find By Login Name :{}", loginName);
// return sysUserRDao.getByProperty(new String[]{"userLoginName", "isValid"},
// new Object[]{loginName, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()});
// }
//
// /**
// * 设置用户详细信息
// *
// * @param user
// * @return
// */
// @Override
// public SysUser getSysUserInfo(SysUser user) {
// LOGGER.info("平台用户 SYS_USER user id :{}", user.getId());
// SysUserInfo userInfo = sysUserInfoRDao.getByProperty("userId", user.getId());
// Organize organize = organizeRDao.getById(user.getOrganizeId());
//
// List<Department> departmentList = userPermissionDao.findDepartmentByUser(user);
// List<Position> positionList = userPermissionDao.findPositionByUser(user);
// List<SysMenu> menuList = userPermissionDao.findSysMenuByUser(user);
// List<SysRole> roleList = userPermissionDao.findSysRoleByUser(user);
//
// LOGGER.info("平台用户 SYS_USER userInfo :{}", userInfo);
// LOGGER.info("平台用户 SYS_USER organize :{}", organize);
// LOGGER.info("平台用户 SYS_USER departmentList size :{}", departmentList.size());
// LOGGER.info("平台用户 SYS_USER positionList size :{}", positionList.size());
// LOGGER.info("平台用户 SYS_USER menuList size :{}", menuList.size());
// LOGGER.info("平台用户 SYS_USER roleList size :{}", roleList.size());
//
// user.setUserInfo(userInfo);
// user.setOrganize(organize);
// user.setDepartmentList(departmentList);
// user.setMenuList(menuList);
// user.setPositionList(positionList);
// user.setRoleList(roleList);
//
// return user;
// }
//
//
//
//
//
//
//
//
//
//
//
// /**************************************** 公共方法封装 ****************************************/
//
//// dealUserInfo() 用户信息封装
//
//
// /**
// * 封装用户登陆信息
// *
// * @param sessionUser 当前会话信息
// * @param user 当前登录用户
// * @param userType 用户类型
// * @param languageCode 用户选择的语言
// * @return
// */
// public static SessionUser packSessionUser(SessionUser sessionUser, SysUser user, Integer userType, String languageCode) {
// sessionUser.setLanguageCode(languageCode);
// sessionUser.setUserName(user.getName());
// sessionUser.setUserType(CommonEnumUtil.USER_TYPE.valueOf(userType));
// sessionUser.setUserCode(user.getUserInfo().getLanguageCode());
// sessionUser.setRoleList(user.getRoleList());
// sessionUser.setDepartmentList(user.getDepartmentList());
// sessionUser.setPositionList(user.getPositionList());
// sessionUser.setOrganize(user.getOrganize());
// return sessionUser;
// }
//
// /**
// * 刷新用户 角色关系
// * @param model
// * @param sysUser
// */
// private void refreshRefUserRole( UserModel model, SysUser sysUser) {
// // 用户角色操作
// refUserRoleRDao.deleteByProperties("userId", sysUser.getId()); // 删除用户角色关系
// if (null != model.getRoles() && model.getRoles().size() > 0) { //角色非空是操作
// List<RefUserRole> refUserRoles = new ArrayList<>();
// List<String> roleNameList = new ArrayList<>();
// RefUserRole refUserRole = null;
//
// for (SysRole role : model.getRoles()) {
// roleNameList.add(role.getName());
// // 用户角色关系创建
// refUserRole = new RefUserRole(sysUser.getId(), role.getId(), role.getName());
// refUserRoles.add(refUserRole);
// }
//
// refUserRoleRDao.saveAll(refUserRoles);
// // 角色名称冗余
// model.getUserInfo().setRedRoleNames(String.join(",",roleNameList));
// }
// }
//
// /**
// * 刷新用户部门关系
// * @param model
// * @param sysUser
// */
// private void refreshRefUserDepartment(UserModel model, SysUser sysUser) {
// // 用户部门操作
// refUserDepartmentRDao.deleteByProperties("userId", sysUser.getId()); //删除用户部门关系
// /*if (null != model.getDepartments() && model.getDepartments().size() > 0) {
//
// List<RefUserDepartment> refUserDepartments = new ArrayList<>();
// StringBuffer departmentNames = new StringBuffer();
// RefUserDepartment refUserDepartment = null;
//
// for (Department department : model.getDepartments()) {
// departmentNames.append("," + department.getDepartmentName());
//
// // 用户部门关系创建
// refUserDepartment = new RefUserDepartment(sysUser.getId(), department.getId(), department.getDepartmentName());
// refUserDepartments.add(refUserDepartment);
// }
//
// refUserDepartmentRDao.save(refUserDepartment);
// // 部门名称冗余
// model.getUserInfo().setRedDepartmentNames(departmentNames.substring(1, departmentNames.length()));
// }*/
// }
//
//
// /**
// * 刷新用户岗位关系
// * @param model
// * @param sysUser
// */
// private void refreshRefUserPosition(UserModel model, SysUser sysUser) {
// /*refUserPositionRDao.deleteByProperties("userId", sysUser.getId()); //删除用户部门关系
// if (null != model.getPositions() && model.getPositions().size() > 0) {
//
// List<RefUserPosition> refUserPositions = new ArrayList<>();
// StringBuffer positionNames = new StringBuffer();
// RefUserPosition refUserPosition = null;
// for (Position position : model.getPositions()) {
// positionNames.append("," + position.getPositionName());
//
// // 用户岗位关系创建
// refUserPosition = new RefUserPosition(sysUser.getId(), position.getId(), position.getPositionName());
// refUserPositions.add(refUserPosition);
// }
//
// refUserPositionRDao.saveAll(refUserPositions);
// // 岗位名称冗余
// model.getUserInfo().setRedPositionNames(positionNames.substring(1, positionNames.length()));
// }*/
// }
//
//
// /**
// * 部门真实性校验
// * @param department
// */
// private void checkDepartment(Department department) {
// if (null == department) {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
// .setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode())
// .setErrorDetail("部门不存在")
// .setErrorSolution("请重新输入部门信息")
// .build();
// }
// }
//
// /**
// * 岗位真实性 校验
// * @param position
// */
// private void checkPosition(Position position) {
// if (null == position) {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
// .setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode())
// .setErrorDetail("岗位不存在")
// .setErrorSolution("请重新输入岗位信息")
// .build();
// }
// }
//
// /**
// * 角色真实信息校验
// * @param sysRole
// */
// private void checkSysRole(SysRole sysRole) {
// if (null == sysRole) {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
// .setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode())
// .setErrorDetail("角色不存在")
// .setErrorSolution("请重新输入角色信息")
// .build();
// }
// }
//
// /**
// * 组织真实性校验
// * @param organize
// */
// private void checkOrganize(Organize organize) {
// if (null == organize) {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
// .setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode())
// .setErrorDetail("部门的组织不存在")
// .setErrorSolution("请先完善组织信息")
// .build();
// }
//
// }
//}
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.base.ISysUserService;
import cn.estsh.i3plus.core.apiservice.dao.IUserPermissionDao;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.shirotoken.AdminToken;
import cn.estsh.i3plus.pojo.base.shirotoken.SaAdminToken;
import cn.estsh.i3plus.pojo.base.shirotoken.UserToken;
import cn.estsh.i3plus.pojo.model.flatform.UserModel;
import cn.estsh.i3plus.pojo.platform.bean.*;
import cn.estsh.i3plus.pojo.platform.repository.*;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authc.AuthenticationToken;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : wei.peng
* @Date : 2018-10-25 17:45
* @Modify :
**/
@Service
public class SysUserServiceImpl implements ISysUserService {
public static final Logger LOGGER = LoggerFactory.getLogger(SysUserServiceImpl.class);
@Autowired
private SysUserRepository sysUserRDao;
@Autowired
private SysUserInfoRepository sysUserInfoRDao;
@Autowired
private IUserPermissionDao userPermissionDao;
@Autowired
private OrganizeRepository organizeRDao;
@Autowired
private SysRoleRepository sysRoleRDao;
@Autowired
private DepartmentRepository departmentRDao;
@Autowired
private PositionRepository positionRDao;
@Autowired
private RefUserRoleRepository refUserRoleRDao;
@Autowired
private RefUserDepartmentRepository refUserDepartmentRDao;
@Autowired
private RefUserPositionRepository refUserPositionRDao;
@Override
public SessionUser queryUserLogin(String loginName, String password, String languageCode) {
LOGGER.info("平台用户 SYS_USER loginName:{} \t password:{} \t languageCode:{}", loginName, password, languageCode);
SysUser user = getSysUserByLoginName(loginName);
AuthenticationToken token = null;
if (user == null) {
//用户不存在
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.LOGIN_EXCEPTION.getCode())
.setErrorDetail("用户不存在")
.setErrorSolution("重新登陆")
.build();
} else if (!StringUtils.equals(user.getUserLoginPassword(), password)) {
//密码不符
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.LOGIN_EXCEPTION.getCode())
.setErrorDetail("登陆密码错误")
.setErrorSolution("重新输入")
.build();
}
switch (user.getUserTypeId()) {
case 2:
token = new AdminToken(loginName, password, languageCode);
break;
case 3:
token = new SaAdminToken(loginName, password, languageCode);
break;
default:
token = new UserToken(loginName, password, languageCode);
break;
}
SessionUser sessionUser = AuthUtil.login(token);
user = getSysUserInfo(user); //设置用户详细信息
packSessionUser(sessionUser, user, user.getUserTypeId(), languageCode);
AuthUtil.setSessionUser(sessionUser);
return sessionUser;
}
@Override
public void updateSysUserStatus(String id, int status, SessionUser user) {
LOGGER.info("平台用户 SYS_USER id:{} status:{} modifyUser:{}", id, status, user.getUserName());
SysUser sysUser = sysUserRDao.getById(Long.parseLong(id));
sysUser.setUserStatus(status);
sysUser.setModifyUser(user.getUserName());
sysUserRDao.update(sysUser);
}
@Override
public SysUser updateSysUserModel(UserModel model, SessionUser user) {
LOGGER.info("平台用户 SYS_USER model:{}", model);
LOGGER.info("平台用户 SYS_USER user:{}", user);
// 数据真实性校验
SysRole sysRole = sysRoleRDao.getById(model.getRole().id);
checkSysRole(sysRole);
Department dep = departmentRDao.getById(model.getDepartment().getId());
checkDepartment(dep);
Position pos = positionRDao.getById(model.getPosition().getId());
checkPosition(pos);
Organize organize = organizeRDao.getById(model.getDepartment().getOrganizeId());
checkOrganize(organize);
SysUser sysUser = model.getUser();
//TODO UserLoginName Count
SysUser loginUser = getSysUserByLoginName(sysUser.getUserLoginName());
// 判断是否修改登录名称
if (loginUser == null || loginUser.getId().equals(sysUser.getId())) {
// 冗余部分信息
sysUser.setRedDepartmentName(dep.getDepartmentName());
sysUser.setRedRoleName(sysRole.getName());
sysUser.setRedPositionName(pos.getPositionName());
sysUser.setOrganizeId(organize.getId());
sysUser.setRedOrganizeName(organize.getRedParentName());
if (!sysUser.getUserLoginPassword().isEmpty()) {
//TODO 密码加密
}
// 刷新用户角色关系信息
refreshRefUserRole(model, sysUser);
// 刷新用户部门关系信息
refreshRefUserDepartment(model, sysUser);
// 刷新用户岗位关系信息
refreshRefUserPosition(model, sysUser);
// 保存用户信息
sysUserInfoRDao.save(model.getUserInfo());
return sysUserRDao.save(sysUser);
} else {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode())
.setErrorDetail("用户名已存在")
.setErrorSolution("请重新输入用户名")
.build();
}
}
@Override
public SysUser insertSysUserModel(UserModel model, SessionUser user) {
LOGGER.info("平台用户 SYS_USER model:{}", model);
LOGGER.info("平台用户 SYS_USER user:{}", user);
SysUser sysUser = model.getUser();
SysUser loginUser = getSysUserByLoginName(sysUser.getUserLoginName());
if (null == loginUser) {
sysUser = sysUserRDao.insert(sysUser);
model.getUserInfo().setUserId(sysUser.getId());
model.setUser(sysUser);
return updateSysUserModel(model, user);
} else {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode())
.setErrorDetail("用户名已存在")
.setErrorSolution("请重新输入用户名")
.build();
}
}
@Override
public void deleteSysUserById(String id) {
LOGGER.info("平台用户 SYS_USER DELETE By id :{}", id);
sysUserRDao.updateByProperties("id", id, "isValid", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
// 删除用户关系(物理删除)
refUserRoleRDao.deleteByProperties("userId", Long.parseLong(id)); // 删除用户角色关系
refUserDepartmentRDao.deleteByProperties("userId", Long.parseLong(id)); //删除用户部门关系
refUserPositionRDao.deleteByProperties("userId", Long.parseLong(id)); //删除用户部门关系
}
@Override
public List<SysUser> findSysUserAll() {
LOGGER.info("平台用户 SYS_USER find All");
return sysUserRDao.findByProperty("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
}
@Override
public SysUser getSysUserById(String id) {
LOGGER.info("平台用户 SYS_USER get By id :{}", id);
return sysUserRDao.getById(Long.parseLong(id));
}
@Override
public SysUser getSysUserByLoginName(String loginName) {
LOGGER.info("平台用户 SYS_USER find By Login Name :{}", loginName);
return sysUserRDao.getByProperty(new String[]{"userLoginName", "isValid"},
new Object[]{loginName, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()});
}
/**
*
*
* @param user
* @return
*/
@Override
public SysUser getSysUserInfo(SysUser user) {
LOGGER.info("平台用户 SYS_USER user id :{}", user.getId());
SysUserInfo userInfo = sysUserInfoRDao.getByProperty("userId", user.getId());
Organize organize = organizeRDao.getById(user.getOrganizeId());
List<Department> departmentList = userPermissionDao.findDepartmentByUser(user);
List<Position> positionList = userPermissionDao.findPositionByUser(user);
List<SysMenu> menuList = userPermissionDao.findSysMenuByUser(user);
List<SysRole> roleList = userPermissionDao.findSysRoleByUser(user);
LOGGER.info("平台用户 SYS_USER userInfo :{}", userInfo);
LOGGER.info("平台用户 SYS_USER organize :{}", organize);
LOGGER.info("平台用户 SYS_USER departmentList size :{}", departmentList.size());
LOGGER.info("平台用户 SYS_USER positionList size :{}", positionList.size());
LOGGER.info("平台用户 SYS_USER menuList size :{}", menuList.size());
LOGGER.info("平台用户 SYS_USER roleList size :{}", roleList.size());
user.setUserInfo(userInfo);
user.setOrganize(organize);
user.setDepartmentList(departmentList);
user.setMenuList(menuList);
user.setPositionList(positionList);
user.setRoleList(roleList);
return user;
}
/**************************************** 公共方法封装 ****************************************/
// dealUserInfo() 用户信息封装
/**
*
*
* @param sessionUser
* @param user
* @param userType
* @param languageCode
* @return
*/
public static SessionUser packSessionUser(SessionUser sessionUser, SysUser user, Integer userType, String languageCode) {
sessionUser.setLanguageCode(languageCode);
sessionUser.setUserName(user.getName());
sessionUser.setUserType(CommonEnumUtil.USER_TYPE.valueOf(userType));
sessionUser.setUserCode(user.getUserInfo().getLanguageCode());
sessionUser.setRoleList(user.getRoleList());
sessionUser.setDepartmentList(user.getDepartmentList());
sessionUser.setPositionList(user.getPositionList());
sessionUser.setOrganize(user.getOrganize());
return sessionUser;
}
/**
*
* @param model
* @param sysUser
*/
private void refreshRefUserRole( UserModel model, SysUser sysUser) {
// 用户角色操作
refUserRoleRDao.deleteByProperties("userId", sysUser.getId()); // 删除用户角色关系
if (null != model.getRoles() && model.getRoles().size() > 0) { //角色非空是操作
List<RefUserRole> refUserRoles = new ArrayList<>();
List<String> roleNameList = new ArrayList<>();
RefUserRole refUserRole = null;
for (SysRole role : model.getRoles()) {
roleNameList.add(role.getName());
// 用户角色关系创建
refUserRole = new RefUserRole(sysUser.getId(), role.getId(), role.getName());
refUserRoles.add(refUserRole);
}
refUserRoleRDao.saveAll(refUserRoles);
// 角色名称冗余
model.getUserInfo().setRedRoleNames(String.join(",",roleNameList));
}
}
/**
*
* @param model
* @param sysUser
*/
private void refreshRefUserDepartment(UserModel model, SysUser sysUser) {
// 用户部门操作
refUserDepartmentRDao.deleteByProperties("userId", sysUser.getId()); //删除用户部门关系
/*if (null != model.getDepartments() && model.getDepartments().size() > 0) {
List<RefUserDepartment> refUserDepartments = new ArrayList<>();
StringBuffer departmentNames = new StringBuffer();
RefUserDepartment refUserDepartment = null;
for (Department department : model.getDepartments()) {
departmentNames.append("," + department.getDepartmentName());
// 用户部门关系创建
refUserDepartment = new RefUserDepartment(sysUser.getId(), department.getId(), department.getDepartmentName());
refUserDepartments.add(refUserDepartment);
}
refUserDepartmentRDao.save(refUserDepartment);
// 部门名称冗余
model.getUserInfo().setRedDepartmentNames(departmentNames.substring(1, departmentNames.length()));
}*/
}
/**
*
* @param model
* @param sysUser
*/
private void refreshRefUserPosition(UserModel model, SysUser sysUser) {
/*refUserPositionRDao.deleteByProperties("userId", sysUser.getId()); //删除用户部门关系
if (null != model.getPositions() && model.getPositions().size() > 0) {
List<RefUserPosition> refUserPositions = new ArrayList<>();
StringBuffer positionNames = new StringBuffer();
RefUserPosition refUserPosition = null;
for (Position position : model.getPositions()) {
positionNames.append("," + position.getPositionName());
// 用户岗位关系创建
refUserPosition = new RefUserPosition(sysUser.getId(), position.getId(), position.getPositionName());
refUserPositions.add(refUserPosition);
}
refUserPositionRDao.saveAll(refUserPositions);
// 岗位名称冗余
model.getUserInfo().setRedPositionNames(positionNames.substring(1, positionNames.length()));
}*/
}
/**
*
* @param department
*/
private void checkDepartment(Department department) {
if (null == department) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode())
.setErrorDetail("部门不存在")
.setErrorSolution("请重新输入部门信息")
.build();
}
}
/**
*
* @param position
*/
private void checkPosition(Position position) {
if (null == position) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode())
.setErrorDetail("岗位不存在")
.setErrorSolution("请重新输入岗位信息")
.build();
}
}
/**
*
* @param sysRole
*/
private void checkSysRole(SysRole sysRole) {
if (null == sysRole) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode())
.setErrorDetail("角色不存在")
.setErrorSolution("请重新输入角色信息")
.build();
}
}
/**
*
* @param organize
*/
private void checkOrganize(Organize organize) {
if (null == organize) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode())
.setErrorDetail("部门的组织不存在")
.setErrorSolution("请先完善组织信息")
.build();
}
}
}

Loading…
Cancel
Save