用户功能优化

yun-zuoyi
wei.peng 7 years ago
parent 696678930c
commit bfd3809daf

@ -2,9 +2,7 @@ package cn.estsh.i3plus.core.api.iservice.busi;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import cn.estsh.i3plus.pojo.platform.bean.SysUser;
import cn.estsh.i3plus.pojo.platform.bean.SysUserInfo;
import cn.estsh.i3plus.pojo.platform.bean.*;
import io.swagger.annotations.ApiOperation;
import java.util.List;
@ -97,4 +95,36 @@ public interface ISysUserInfoService {
@ApiOperation(value = "查询用户信息",notes = "根据复杂查询条件查询用户信息(分页信息)")
ListPager<SysUserInfo> querySysUserInfo(SysUserInfo userInfo, Pager pager);
/**
*
* @param userInfo
*/
@ApiOperation(value = "用户唯一校验",notes = "校验用户信息唯一性")
void checkSysUserInfoOnly(SysUserInfo userInfo);
/**
*
* @param userId
* @return
*/
@ApiOperation(value = "关系查询-用户部门",notes = "查询用户部门关系")
List<SysRefUserDepartment> findRefUserDepartmentByUserId(Long userId);
/**
*
* @param userId
* @return
*/
@ApiOperation(value = "关系查询-用户岗位",notes = "查询用户岗位关系")
List<SysRefUserPosition> findSysRefUserPositionByUserId(Long userId);
/**
*
* @param no
* @param id
* @return
*/
@ApiOperation(value = "用户唯一校验 用户工号",notes = "用户唯一校验 用户工号")
boolean checkUserInfoByUserEmpNo(String no,long id);
}

@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysDepartmentService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysPositionService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysUserInfoService;
import cn.estsh.i3plus.core.apiservice.serviceimpl.busi.SysOrganizeService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
@ -10,9 +11,7 @@ import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import cn.estsh.i3plus.pojo.platform.bean.SysDepartment;
import cn.estsh.i3plus.pojo.platform.bean.SysUserInfo;
import cn.estsh.i3plus.pojo.platform.bean.*;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
@ -56,6 +55,9 @@ public class SysUserInfoController extends CoreBaseController{
@Autowired
private ISysFileService sysFileService;
@Autowired
private ISysPositionService sysPositionService;
@PostMapping(value="/insert")
@ApiOperation(value="添加用户信息",notes="返回内容添加用户信息")
public ResultBean insertSysUserInfo(SysUserInfo userInfo){
@ -63,33 +65,24 @@ public class SysUserInfoController extends CoreBaseController{
//登陆用户
SessionUser user = AuthUtil.getSessionUser();
//条件验证
ValidatorBean.beginValid(userInfo)
.notNull("name",userInfo.getName())
.notNull("userEmpNo",userInfo.getUserEmpNo())
.checkNotZero("departmentId",userInfo.getDepartmentId())
.checkNotZero("departmentIdList",userInfo.getDepartmentIdList())
.checkNotZero("positionId",userInfo.getPositionId());
checkSysUserInfo(userInfo,false);
ConvertBean.modelInitialize(userInfo,user);
userInfo.setUserInfoStatus(CommonEnumUtil.USER_STATUS.ENABLE.getValue());
SysUserInfo pos = sysUserInfoService.insertSysUserInfo(userInfo);
sysUserInfoService.refreshRefUserDepartment(pos.getId(),
SysUserInfo info = sysUserInfoService.insertSysUserInfo(userInfo);
sysUserInfoService.refreshRefUserDepartment(info.getId(),
StringTool.getArrayLong(userInfo.getDepartmentIdList()),
user.getUserName());
sysUserInfoService.refreshRefUserPosition(pos.getId(),
new Long[]{userInfo.getPositionId()},
sysUserInfoService.refreshRefUserPosition(info.getId(),
StringTool.getArrayLong(userInfo.getPositionIdList()),
user.getUserName());
SysDepartment department = departmentService.getSysDepartmentById(userInfo.getDepartmentId());
if(department != null){
sysUserInfoService.refreshRefUserOrganize(pos.getId(),
department.getOrganizeId(),user.getUserName());
}
sysUserInfoService.refreshRefUserOrganize(info.getId(), userInfo.getDepartment().getOrganizeId(),user.getUserName());
return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(pos);
return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(info);
} catch (ImppBusiException busExcep) {
LOGGER.error(busExcep.getErrorMsg() + "{}", busExcep.getErrorDetail(), busExcep);
return ResultBean.fail(busExcep);
@ -106,13 +99,7 @@ public class SysUserInfoController extends CoreBaseController{
//登陆用户
SessionUser user = AuthUtil.getSessionUser();
//条件验证
ValidatorBean.beginValid(userInfo)
.notNull("id",userInfo.getId())
.notNull("name",userInfo.getName())
.notNull("userEmpNo",userInfo.getUserEmpNo())
.checkNotZero("departmentId",userInfo.getDepartmentId())
.checkNotZero("positionId",userInfo.getPositionId());
checkSysUserInfo(userInfo,true);
//修改初始化
ConvertBean.modelUpdate(userInfo,user);
@ -120,16 +107,14 @@ public class SysUserInfoController extends CoreBaseController{
sysUserInfoService.updateSysUserInfo(userInfo);
sysUserInfoService.refreshRefUserDepartment(userInfo.getId(),
StringTool.getArrayLong(userInfo.getDepartmentIdList()), user.getUserName());
StringTool.getArrayLong(userInfo.getDepartmentIdList()),
user.getUserName());
sysUserInfoService.refreshRefUserPosition(userInfo.getId(),
new Long[]{userInfo.getPositionId()}, user.getUserName());
StringTool.getArrayLong(userInfo.getPositionIdList()),
user.getUserName());
SysDepartment department = departmentService.getSysDepartmentById(userInfo.getDepartmentId());
if(department != null){
sysUserInfoService.refreshRefUserOrganize(userInfo.getId(),
department.getOrganizeId(),user.getUserName());
}
sysUserInfoService.refreshRefUserOrganize(userInfo.getId(), userInfo.getDepartment().getOrganizeId(),user.getUserName());
return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
@ -237,4 +222,90 @@ public class SysUserInfoController extends CoreBaseController{
}
}
@GetMapping(value = "/find-ref-department/{userId}")
@ApiOperation(value = "查询角色的所有角色权限关系", notes = "查询角色的所有角色权限关系")
public ResultBean findRefDepartment(@PathVariable("userId") String userId) {
try {
ValidatorBean.checkNotNull(userId, "用户 id 不能为空");
List<SysRefUserDepartment> list = sysUserInfoService.findRefUserDepartmentByUserId(Long.parseLong(userId));
return ResultBean.success("操作成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultList(list);
} catch (ImppBusiException busExcep) {
LOGGER.error(busExcep.getErrorMsg() + "{}", busExcep.getErrorDetail(), busExcep);
return ResultBean.fail(busExcep);
} catch (Exception e) {
LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + "{}", e.getMessage(), e);
return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
}
}
@GetMapping(value = "/find-ref-position/{userId}")
@ApiOperation(value = "查询角色的所有角色权限关系", notes = "查询角色的所有角色权限关系")
public ResultBean findRefPosition(@PathVariable("userId") String userId) {
try {
ValidatorBean.checkNotNull(userId, "用户 id 不能为空");
List<SysRefUserPosition> list = sysUserInfoService.findSysRefUserPositionByUserId(Long.parseLong(userId));
return ResultBean.success("操作成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultList(list);
} catch (ImppBusiException busExcep) {
LOGGER.error(busExcep.getErrorMsg() + "{}", busExcep.getErrorDetail(), busExcep);
return ResultBean.fail(busExcep);
} catch (Exception e) {
LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + "{}", e.getMessage(), e);
return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
}
}
/**
*
* @param userInfo
* @param isId ID
*/
private void checkSysUserInfo(SysUserInfo userInfo,boolean isId){
try{
//条件验证
ValidatorBean.beginValid(userInfo)
.notNull("name",userInfo.getName())
.notNull("userEmpNo",userInfo.getUserEmpNo())
.checkNotZero("departmentId",userInfo.getDepartmentId())
.checkNotZero("departmentIdList",userInfo.getDepartmentIdList())
.checkNotZero("positionId",userInfo.getPositionId());
if(isId){
ValidatorBean.beginValid(userInfo)
.notNull("id",userInfo.getId());
}
SysDepartment department = departmentService.getSysDepartmentById(userInfo.getDepartmentId());
if(department == null){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("主部门信息不存在。")
.build();
}
SysPosition position = sysPositionService.getSysPositionById(userInfo.getPositionId());
if(position == null){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("主岗位信息不存在。")
.build();
}
sysUserInfoService.checkSysUserInfoOnly(userInfo);
userInfo.setDepartmentNameRdd(department.getName());
userInfo.setPositionNameRdd(position.getName());
userInfo.setDepartment(department);
userInfo.setPosition(position);
}catch(ImppBusiException busExcep){
LOGGER.error(busExcep.getErrorMsg() + "{}",busExcep.getErrorDetail(),busExcep);
}catch(Exception e){
LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + "{}",e.getMessage(),e);
}
}
}

@ -13,6 +13,7 @@ import cn.estsh.i3plus.pojo.platform.repository.*;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -103,7 +104,7 @@ public class SysUserInfoService implements ISysUserInfoService {
nameList.add(department.getName());
}
userInfo.setDepartmentNameRdd(String.join(",",nameList));
userInfo.setDepartmentNamesRdd(String.join(",",nameList));
refUserDepartmentRDao.saveAll(list);
sysUserInfoRDao.save(userInfo);
@ -151,7 +152,7 @@ public class SysUserInfoService implements ISysUserInfoService {
nameList.add(position.getName());
}
userInfo.setPositionNameRdd(String.join(",",nameList));
userInfo.setPositionNamesRdd(String.join(",",nameList));
refUserPositionRDao.saveAll(list);
sysUserInfoRDao.save(userInfo);
@ -227,4 +228,47 @@ public class SysUserInfoService implements ISysUserInfoService {
return new ListPager(sysUserInfoRDao.findByHqlWherePage(hqlPack + userInfo.orderBy(),pager),pager);
}
}
@Override
@ApiOperation(value = "关系查询-用户部门",notes = "查询用户部门关系")
public List<SysRefUserDepartment> findRefUserDepartmentByUserId(Long userId) {
return refUserDepartmentRDao.findByProperty("userId",userId);
}
@Override
@ApiOperation(value = "关系查询-用户岗位",notes = "查询用户岗位关系")
public List<SysRefUserPosition> findSysRefUserPositionByUserId(Long userId) {
return refUserPositionRDao.findByProperty("userId",userId);
}
@Override
@ApiOperation(value = "用户唯一校验",notes = "校验用户信息唯一性")
public void checkSysUserInfoOnly(SysUserInfo userInfo) {
if(userInfo != null){
// 登录名唯一教研
if(!checkUserInfoByUserEmpNo(userInfo.getUserEmpNo(), userInfo.getId() == null ? 0 : userInfo.getId())){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())
.setErrorDetail("工号已存在")
.setErrorSolution("请重新输入工号")
.build();
}
}
}
@Override
@ApiOperation(value = "用户唯一校验 用户工号",notes = "用户唯一校验 用户工号")
public boolean checkUserInfoByUserEmpNo(String no, long id) {
int count;
if(id > 0){
StringBuffer sw = new StringBuffer();
HqlPack.getStringEqualPack(no,"userEmpNo",sw);
HqlPack.getNumNOEqualPack(id,"id",sw);
count = sysUserInfoRDao.findByHqlWhereCount(sw.toString());
}else{
count = sysUserInfoRDao.findByPropertyCount("userEmpNo",no);
}
return count <= 0 ;
}
}

@ -9,6 +9,7 @@ import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.base.shirotoken.UserToken;
import cn.estsh.i3plus.pojo.base.tool.HqlPack;
import cn.estsh.i3plus.pojo.platform.bean.*;
@ -18,6 +19,7 @@ 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 io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.CredentialsException;
import org.apache.shiro.authc.UnknownAccountException;
@ -430,7 +432,7 @@ public class SysUserService implements ISysUserService {
packSysUserDepartment(sessionUser,userInfo); //封装用户部门信息
packSysUserPosition(sessionUser,userInfo); //封装用户岗位信息
packSysUserOrganize(sessionUser,userInfo); //封装用户组织信息
packSysUserOrganize(userInfo); //封装用户组织信息
userInfo.setUser(user);
sessionUser.setUserName(userInfo.getName());
@ -522,11 +524,10 @@ public class SysUserService implements ISysUserService {
/**
*
* @param sessionUser
* @param userInfo
* @return
*/
public void packSysUserOrganize(SessionUser sessionUser, SysUserInfo userInfo){
public void packSysUserOrganize(SysUserInfo userInfo){
try {
LOGGER.debug("平台用户 SYS_USER user id :{}", userInfo.getId());
userInfo.setOrganize(organizeRDao.getById(userInfo.getOrganizeId()));
@ -538,8 +539,8 @@ public class SysUserService implements ISysUserService {
ids[i] = departmentList.get(i).getOrganizeId();
}
String hqlWhere = CoreHqlPack.packHqlIds("id", ids);
List<SysOrganize> organizeList = organizeRDao.findByHqlWhere(hqlWhere);
String strWhere = CoreHqlPack.packHqlSysOrganize(ids, ImppEnumUtil.ORGANIZE_YTPE.TYPE_FACTORY.getValue());
List<SysOrganize> organizeList = organizeRDao.findByHqlWhere(strWhere);
userInfo.setOrganizeList(organizeList);
}

Loading…
Cancel
Save