用户密码加密侧率功能完成

yun-zuoyi
wei.peng 6 years ago
parent 73629bfd1f
commit af5a43a4c5

@ -0,0 +1,41 @@
package cn.estsh.i3plus.core.api.iservice.base;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import io.swagger.annotations.ApiOperation;
/**
* @Description :
* @Reference :
* @Author : Adair Peng
* @CreateDate : 2019-01-11 10:02
* @Modify:
**/
public interface ISystemInitService {
/**
*
*/
@ApiOperation(value = "初始化加载所有数据",notes = "初始化加载所有数据")
void loadAll();
/**
*
*/
@ApiOperation(value = "加载系统配置",notes = "加载系统配置")
void loadSysConfig();
/**
*
*/
@ApiOperation(value = "加载字典数据",notes = "加载字典数据")
void loadSysDictionary();
/**
*
*/
@ApiOperation(value = "加载语言数据",notes = "加载语言数据")
void loadSysLocaleLanguage();
@ApiOperation(value = "获取缓存中的数据",notes = "获取缓存中的数据")
Object getDataFromCache(String key,Class dataType);
}

@ -41,6 +41,9 @@ public interface IPersonnelService {
@ApiOperation(value = "查询账号信息") @ApiOperation(value = "查询账号信息")
List<SysUser> querySysUserByUserDetailModelOrIds(UserDetailModel model, List<Long> ids); List<SysUser> querySysUserByUserDetailModelOrIds(UserDetailModel model, List<Long> ids);
@ApiOperation(value = "查询账号信息")
ListPager<SysUser> querySysUserPagerByUserDetailModelOrIds(UserDetailModel model,Pager pager, List<Long> ids);
@ApiOperation(value = "获取用户信息") @ApiOperation(value = "获取用户信息")
SysUserInfo getSysUserInfoById(Long id); SysUserInfo getSysUserInfoById(Long id);
@ -101,7 +104,16 @@ public interface IPersonnelService {
@ApiOperation(value = "岗位关系检查") @ApiOperation(value = "岗位关系检查")
void checkSysPositionRef(Long positionId); void checkSysPositionRef(Long positionId);
@ApiOperation(value = "岗位关系检查") @ApiOperation(value = "部门关系检查")
void checkSysDepartmentRef(Long departmentId);
@ApiOperation(value = "组织关系检查")
void checkSysOrganizeRef(Long organizeId);
@ApiOperation(value = "密码规则校验")
void checkSysUserPassword(String password);
@ApiOperation(value = "菜单关系检查")
void refreshMenuRdd(Long menuId); void refreshMenuRdd(Long menuId);
@ApiOperation(value = "岗位关系检查") @ApiOperation(value = "岗位关系检查")

@ -5,6 +5,7 @@ import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.platform.bean.SysConfig; import cn.estsh.i3plus.pojo.platform.bean.SysConfig;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -81,4 +82,5 @@ public interface ISysConfigService {
*/ */
@ApiOperation(value = "根据系统配置代码修改配置项") @ApiOperation(value = "根据系统配置代码修改配置项")
void updateSysConfigByCode(String code,String value); void updateSysConfigByCode(String code,String value);
} }

@ -0,0 +1,32 @@
package cn.estsh.i3plus.core.apiservice.configuration;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
/**
* @Description :
* @Reference :
* @Author : Adair Peng
* @CreateDate : 2019-01-11 9:55
* @Modify:
**/
@Component
public class AppStartSystemInit implements CommandLineRunner {
public static final Logger LOGGER = LoggerFactory.getLogger(CommonConstWords.SYSTEM_LOG);
@Autowired
private ISystemInitService systemInitService;
@Override
public void run(String... args) throws Exception {
LOGGER.info(" Start Core Init Thread ");
systemInitService.loadAll();
}
}

@ -7,9 +7,12 @@ import cn.estsh.i3plus.platform.common.tool.EncryptTool;
import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
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.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.model.platform.UserDetailModel; import cn.estsh.i3plus.pojo.model.platform.UserDetailModel;
import cn.estsh.i3plus.pojo.model.platform.UserDetailPagerModel;
import cn.estsh.i3plus.pojo.platform.bean.*; import cn.estsh.i3plus.pojo.platform.bean.*;
import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil;
@ -57,9 +60,23 @@ public class PersonnelController extends CoreBaseController {
SysUserInfo info = model.getSysUserInfo(); SysUserInfo info = model.getSysUserInfo();
checkUserDetailModel(model, false); checkUserDetailModel(model, false);
personnelService.checkSysUserPassword(model.getUserLoginPassword());
personnelService.checkSysUserOnly(user); personnelService.checkSysUserOnly(user);
initUserDetail(info,user); if(StringUtils.isBlank(info.getUserJoinDate())){
info.setUserJoinDate(TimeTool.getToday());
}
info.setUserInfoStatus(CommonEnumUtil.USER_INFO_STATUS.INCUMBENT.getValue());
info.setUserLoginNum(0);
info.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue());
ConvertBean.modelInitialize(info, AuthUtil.getSessionUser());
user.setUserType(CommonEnumUtil.USER_TYPE.USER.getValue());
user.setUserStatus(CommonEnumUtil.USER_STATUS.ENABLE.getValue());
user.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue());
user.setUserLoginNum(0);
ConvertBean.modelInitialize(user, AuthUtil.getSessionUser());
SysDepartment infoDepartment = personnelService.getSysDepartmentById(Long.parseLong(model.getInfoDepartmentId())); SysDepartment infoDepartment = personnelService.getSysDepartmentById(Long.parseLong(model.getInfoDepartmentId()));
if(infoDepartment == null){ if(infoDepartment == null){
@ -117,10 +134,9 @@ public class PersonnelController extends CoreBaseController {
SysUserInfo info = model.getSysUserInfo(); SysUserInfo info = model.getSysUserInfo();
checkUserDetailModel(model, true); checkUserDetailModel(model, true);
personnelService.checkSysUserPassword(model.getUserLoginPassword());
personnelService.checkSysUserOnly(user); personnelService.checkSysUserOnly(user);
initUserDetail(info,user);
SysDepartment infoDepartment = personnelService.getSysDepartmentById(Long.parseLong(model.getInfoDepartmentId())); SysDepartment infoDepartment = personnelService.getSysDepartmentById(Long.parseLong(model.getInfoDepartmentId()));
if(infoDepartment == null){ if(infoDepartment == null){
ValidatorBean.checkNotNull(infoDepartment,"用户主部门不存在"); ValidatorBean.checkNotNull(infoDepartment,"用户主部门不存在");
@ -166,7 +182,6 @@ public class PersonnelController extends CoreBaseController {
} }
} }
@PutMapping(value="/user/update") @PutMapping(value="/user/update")
@ApiOperation(value="添加用户信息",notes="返回内容添加用户信息") @ApiOperation(value="添加用户信息",notes="返回内容添加用户信息")
public ResultBean updateUserModel(UserDetailModel model) { public ResultBean updateUserModel(UserDetailModel model) {
@ -174,6 +189,7 @@ public class PersonnelController extends CoreBaseController {
checkUserModel(model); checkUserModel(model);
SysUser user = personnelService.getSysUserById(Long.parseLong(model.getUserId())); SysUser user = personnelService.getSysUserById(Long.parseLong(model.getUserId()));
initUser(model,user); initUser(model,user);
personnelService.checkSysUserPassword(model.getUserLoginPassword());
personnelService.checkSysUserOnly(user); personnelService.checkSysUserOnly(user);
SysDepartment userDepartment = personnelService.getSysDepartmentById(Long.parseLong(model.getUserDepartmentId())); SysDepartment userDepartment = personnelService.getSysDepartmentById(Long.parseLong(model.getUserDepartmentId()));
@ -380,14 +396,12 @@ public class PersonnelController extends CoreBaseController {
} }
} }
@PostMapping(value = "/query-ref-department") @PostMapping(value = "/query-ref-department")
@ApiOperation(value = "查询角色的所有角色权限关系", notes = "查询角色的所有角色权限关系") @ApiOperation(value = "查询角色的所有角色权限关系", notes = "查询角色的所有角色权限关系")
public ResultBean queryRefDepartment(UserDetailModel model) { public ResultBean queryRefDepartment(@RequestBody UserDetailModel model) {
try { try {
model.setUserDepartmentIdList(new ArrayList<String>(Arrays.asList(new String[]{"1072037153732694016"})));
List<Long> idList = new ArrayList<>(); List<Long> idList = new ArrayList<>();
model.setUserDepartmentIdList(new ArrayList<String>(Arrays.asList(new String[]{"1072037153732694016"})));
List<SysRefUserDepartment> refs = personnelService.querySysRefUserDepartmentByUserDetailModel(model); List<SysRefUserDepartment> refs = personnelService.querySysRefUserDepartmentByUserDetailModel(model);
if(refs != null && refs.size() > 0){ if(refs != null && refs.size() > 0){
@ -405,6 +419,27 @@ public class PersonnelController extends CoreBaseController {
} }
} }
@PostMapping(value = "/pager/query-ref-department")
@ApiOperation(value = "查询角色的所有角色权限关系", notes = "查询角色的所有角色权限关系")
public ResultBean queryPagerRefDepartment(@RequestBody UserDetailPagerModel model) {
try {
List<Long> idList = new ArrayList<>();
List<SysRefUserDepartment> refs = personnelService.querySysRefUserDepartmentByUserDetailModel(model.getUserDetailModel());
if(refs != null && refs.size() > 0){
for (SysRefUserDepartment ref : refs) {
idList.add(ref.getUserId());
}
}
ListPager<SysUser> result = personnelService.querySysUserPagerByUserDetailModelOrIds(model.getUserDetailModel(), model.getPager(), idList);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(result);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/** /**
* *
* @param model * @param model
@ -450,33 +485,6 @@ public class PersonnelController extends CoreBaseController {
/** /**
* *
* @param info
* @param user
* @throws Exception
*/
private void initUserDetail(SysUserInfo info ,SysUser user)throws Exception{
if(StringUtils.isBlank(info.getUserJoinDate())){
info.setUserJoinDate(TimeTool.getToday());
}
if(info != null){
info.setUserInfoStatus(CommonEnumUtil.USER_INFO_STATUS.INCUMBENT.getValue());
info.setUserLoginNum(0);
info.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue());
ConvertBean.modelInitialize(info, AuthUtil.getSessionUser());
}
if(user != null){
user.setUserType(CommonEnumUtil.USER_TYPE.USER.getValue());
user.setUserStatus(CommonEnumUtil.USER_STATUS.ENABLE.getValue());
user.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue());
user.setUserLoginNum(0);
ConvertBean.modelInitialize(user, AuthUtil.getSessionUser());
}
}
/**
*
* @param model * @param model
* @param user * @param user
* @throws Exception * @throws Exception

@ -109,22 +109,6 @@ public class SysDepartmentController extends CoreBaseController {
} }
} }
@DeleteMapping(value = "/delete/{id}")
@ApiOperation(value = "删除部门", notes = "根据部门id删除信息")
public ResultBean deleteSysDepartment(@PathVariable("id") String id) {
try {
//条件验证
ValidatorBean.checkNotNull(id, "id为空。");
departmentService.deleteSysDepartmentById(Long.parseLong(id));
return ResultBean.success("删除成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@GetMapping(value = "/list") @GetMapping(value = "/list")
@ApiOperation(value = "查询所有部门", notes = "查询所有部门") @ApiOperation(value = "查询所有部门", notes = "查询所有部门")
public ResultBean findSysDepartmentAll() { public ResultBean findSysDepartmentAll() {
@ -183,6 +167,22 @@ public class SysDepartmentController extends CoreBaseController {
} }
} }
@DeleteMapping(value = "/delete/{id}")
@ApiOperation(value = "删除部门", notes = "根据部门id删除信息")
public ResultBean deleteSysDepartment(@PathVariable("id") String id) {
try {
//条件验证
ValidatorBean.checkNotNull(id, "id为空。");
departmentService.deleteSysDepartmentById(Long.parseLong(id));
return ResultBean.success("删除成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@DeleteMapping(value = "/batch-delete") @DeleteMapping(value = "/batch-delete")
@ApiOperation(value = "根据id批量删除", notes = "根据id批量删除") @ApiOperation(value = "根据id批量删除", notes = "根据id批量删除")
public ResultBean deleteSysDepartmentByIds(String[] ids){ public ResultBean deleteSysDepartmentByIds(String[] ids){

@ -99,22 +99,6 @@ public class SysPositionController extends CoreBaseController {
} }
} }
@DeleteMapping(value="/delete/{id}")
@ApiOperation(value="删除岗位",notes="根据岗位id删除信息")
public ResultBean deleteSysPosition(@PathVariable("id") String id){
try {
//条件验证
ValidatorBean.checkNotNull(id,"id为空");
positionService.deleteSysPositionById(Long.parseLong(id));
return ResultBean.success("删除成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ResultBean.fail(e).setCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode());
}
}
@GetMapping(value="/list") @GetMapping(value="/list")
@ApiOperation(value="查询所有岗位",notes="查询所有岗位") @ApiOperation(value="查询所有岗位",notes="查询所有岗位")
public ResultBean findSysPositionAll(){ public ResultBean findSysPositionAll(){
@ -161,6 +145,22 @@ public class SysPositionController extends CoreBaseController {
} }
} }
@DeleteMapping(value="/delete/{id}")
@ApiOperation(value="删除岗位",notes="根据岗位id删除信息")
public ResultBean deleteSysPosition(@PathVariable("id") String id){
try {
//条件验证
ValidatorBean.checkNotNull(id,"id为空");
positionService.deleteSysPositionById(Long.parseLong(id));
return ResultBean.success("删除成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ResultBean.fail(e).setCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode());
}
}
@DeleteMapping(value = "/batch-delete") @DeleteMapping(value = "/batch-delete")
@ApiOperation(value = "根据id批量删除", notes = "根据id批量删除") @ApiOperation(value = "根据id批量删除", notes = "根据id批量删除")
public ResultBean deleteSysPositionByIds(String[] ids){ public ResultBean deleteSysPositionByIds(String[] ids){
@ -182,5 +182,4 @@ public class SysPositionController extends CoreBaseController {
return ResultBean.fail(e).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()); return ResultBean.fail(e).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
} }
} }
} }

@ -13,7 +13,7 @@ import org.springframework.stereotype.Service;
* @Modify: * @Modify:
**/ **/
@Service @Service
public class DataSimpleServiceImpl implements IDataSimpleService { public class DataSimpleService implements IDataSimpleService {
private Logger LOGGER = LoggerFactory.getLogger(this.getClass()); private Logger LOGGER = LoggerFactory.getLogger(this.getClass());
/*@Autowired /*@Autowired

@ -0,0 +1,144 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.base;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysConfig;
import cn.estsh.i3plus.pojo.platform.bean.SysDictionary;
import cn.estsh.i3plus.pojo.platform.repository.SysConfigRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysDictionaryRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysLocaleLanguageRepository;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Description :
* @Reference :
* @Author : Adair Peng
* @CreateDate : 2019-01-11 12:34
* @Modify:
**/
@Service
public class SystemInitService implements ISystemInitService {
private static final Logger LOGGER = LoggerFactory.getLogger(SystemLoginService.class);
@Autowired
private SysConfigRepository configRDao;
@Autowired
private SysDictionaryRepository dictionaryRDao;
@Autowired
private SysLocaleLanguageRepository localeLanguageRDao;
@Resource(name="redisRes")
private ImppRedis redisRes;
private int type = ImppEnumUtil.SYS_CACHE_TYPE.REDIS.getValue();
@Override
@ApiOperation(value = "初始化加载所有数据",notes = "初始化加载所有数据")
public void loadAll() {
type = ImppEnumUtil.SYS_CACHE_TYPE.REDIS.getValue();
loadSysConfig();
loadSysDictionary();
loadSysLocaleLanguage();
}
@Override
@ApiOperation(value = "加载系统配置",notes = "加载系统配置")
public void loadSysConfig() {
String redisKey = null;
List<SysConfig> list = configRDao.findAll();
for (SysConfig config : list) {
redisKey = CommonConstWords.REDIS_PREFIX_CACHE_CONFIG + "_" + config.getConfigCode();
//存放于缓存
putDataToCache(redisKey, config,SysConfig.class);
}
LOGGER.info("加载系统配置数量:【{}】",list.size());
}
@Override
@ApiOperation(value = "加载字典数据",notes = "加载字典数据")
public void loadSysDictionary() {
List<SysDictionary> list = dictionaryRDao.findAll();
if(list != null && list.size() > 0){
Map<String, List<SysDictionary>> parentCodeMap = list.stream().collect(Collectors.groupingBy(SysDictionary::getParentCodeRdd));
Map<Long, List<SysDictionary>> parentIdMap = list.stream().collect(Collectors.groupingBy(SysDictionary::getParentId));
for (String key : parentCodeMap.keySet()) {
//存放于缓存
putDataToCache(CommonConstWords.REDIS_PREFIX_CACHE_DICTIONARY + "_" + key,
parentCodeMap.get(key),List.class);
}
for (long key : parentIdMap.keySet()) {
putDataToCache(CommonConstWords.REDIS_PREFIX_CACHE_DICTIONARY + "_" + key,
parentIdMap.get(key),List.class);
}
}
}
@Override
@ApiOperation(value = "加载语言数据",notes = "加载语言数据")
public void loadSysLocaleLanguage() {
// Redis 缓存
if(type == ImppEnumUtil.SYS_CACHE_TYPE.REDIS.getValue()){
// TODO 汪云昊 实现
}
}
/**
*
* @param key
* @param data
* @param dataType
*/
private void putDataToCache(String key,Object data,Class dataType){
if(type == ImppEnumUtil.SYS_CACHE_TYPE.REDIS.getValue()){
LOGGER.info(" Put Cache Redis Key:{},value:{},dataType:{}",key,data,dataType);
// Redis 缓存
if(dataType == List.class){
redisRes.putList(key,data,-1);
}else if(dataType == SysConfig.class){
redisRes.putObject(key,data,-1);
}else{
LOGGER.error("不支持树形{}存放缓存!",dataType);
}
}
}
/**
*
* @param key
* @param dataType
* @return
*/
@Override
@ApiOperation(value = "获取缓存中的数据",notes = "获取缓存中的数据")
public Object getDataFromCache(String key,Class dataType){
if(type == ImppEnumUtil.SYS_CACHE_TYPE.REDIS.getValue()){
// Redis 缓存
if(dataType == List.class){
return redisRes.getList(key,0,-1);
}else if(dataType == SysConfig.class){
return redisRes.getObject(key);
}else{
LOGGER.error("不支持树形{}存放缓存!",dataType);
}
}
return null;
}
}

@ -1,12 +1,16 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService; import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService;
import cn.estsh.i3plus.core.apiservice.util.HqlModelPack; import cn.estsh.i3plus.core.apiservice.util.HqlModelPack;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; 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.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.base.shirotoken.UserToken; import cn.estsh.i3plus.pojo.base.shirotoken.UserToken;
import cn.estsh.i3plus.pojo.base.tool.HqlPack; import cn.estsh.i3plus.pojo.base.tool.HqlPack;
import cn.estsh.i3plus.pojo.model.platform.UserDetailModel; import cn.estsh.i3plus.pojo.model.platform.UserDetailModel;
@ -84,6 +88,12 @@ public class PersonnelServiceService implements IPersonnelService {
@Resource(name="redisCore") @Resource(name="redisCore")
protected ImppRedis redisCore; protected ImppRedis redisCore;
@Resource(name="redisRes")
private ImppRedis redisRes;
@Autowired
private ISystemInitService systemInitService;
@Override @Override
public SysUser saveSysUser(SysUser user) { public SysUser saveSysUser(SysUser user) {
LOGGER.debug("平台账号 SysUser user:{}", user); LOGGER.debug("平台账号 SysUser user:{}", user);
@ -147,6 +157,16 @@ public class PersonnelServiceService implements IPersonnelService {
} }
@Override @Override
@ApiOperation(value = "查询账号信息")
public ListPager<SysUser> querySysUserPagerByUserDetailModelOrIds(UserDetailModel model,Pager pager, List<Long> ids) {
LOGGER.debug("平台用户 SysUser model:{} ids:{}", model, ids);
String modeWhere = HqlModelPack.packHqlSysUserByModelOrIds(model, ids);
pager = PagerHelper.getPager(pager, userRDao.findByHqlWhereCount(modeWhere));
return new ListPager(userRDao.findByHqlWherePage(modeWhere + model.orderBy(), pager), pager);
}
@Override
public SysUserInfo getSysUserInfoById(Long id) { public SysUserInfo getSysUserInfoById(Long id) {
return userInfoRDao.getById(id); return userInfoRDao.getById(id);
} }
@ -388,19 +408,52 @@ public class PersonnelServiceService implements IPersonnelService {
.setErrorSolution("请先删除子集信息在操作") .setErrorSolution("请先删除子集信息在操作")
.build(); .build();
} }
// long refPositionCount = refUserPositionRDao.findByPropertyCount("positionId",positionId);
long refPositionCount = refUserPositionRDao.findByPropertyCount("positionId",positionId); // if (refPositionCount >= 1) {
if (refPositionCount >= 1) { // throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("存在用户关系引用信息无法删除!")
// .setErrorSolution("请先删除用户关系信息再操作")
// .build();
// }
long refUserInfoCount = userInfoRDao.findByPropertyCount("positionId",positionId);
if (refUserInfoCount >= 1) {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在用户关系引用信息无法删除!") .setErrorDetail("存在用户信息无法删除!")
.setErrorSolution("请先删除用户关系信息再操作") .setErrorSolution("请先删除用户引用信息再操作")
.build(); .build();
} }
}
}
long refUserInfoCount = userInfoRDao.findByPropertyCount("positionId",positionId); @Override
if (refUserInfoCount >= 1) { public void checkSysDepartmentRef(Long departmentId) {
LOGGER.debug("平台部门 SysDepartment departmentId:{}", departmentId);
if(departmentId != null){
long departmentCount = departmentRDao.findByPropertyCount("parentId",departmentId);
if (departmentCount >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在相关部门信息无法删除!")
.setErrorSolution("请先删除子集信息在操作")
.build();
}
// long refPositionCount = refUserPositionRDao.findByPropertyCount("positionId",positionId);
// if (refPositionCount >= 1) {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("存在用户关系引用信息无法删除!")
// .setErrorSolution("请先删除用户关系信息再操作")
// .build();
// }
long userInfoCount = userInfoRDao.findByPropertyCount("departmentId",departmentId);
if (userInfoCount >= 1) {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
@ -408,101 +461,146 @@ public class PersonnelServiceService implements IPersonnelService {
.setErrorSolution("请先删除用户引用信息再操作") .setErrorSolution("请先删除用户引用信息再操作")
.build(); .build();
} }
long userCount = userRDao.findByPropertyCount("departmentId",departmentId);
if (userCount >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在账号信息无法删除!")
.setErrorSolution("请先删除账号引用信息再操作")
.build();
}
} }
} }
/************************************ 用户唯一检查 ****************************************/ @Override
public void checkSysOrganizeRef(Long organizeId) {
LOGGER.debug("平台部门 SysOrganize organizeId:{}", organizeId);
/** if(organizeId != null){
* long organizeCount = organizeRDao.findByPropertyCount("parentId",organizeId);
* @param userLoginName if (organizeCount >= 1) {
* @param userId throw ImppExceptionBuilder.newInstance()
* @return .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
*/ .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
private boolean checkSysUserLoginName(String userLoginName, long userId) { .setErrorDetail("存在相关组织信息无法删除!")
int count = 0; .setErrorSolution("请先删除子集信息在操作")
if(userId > 0){ .build();
StringBuffer sw = new StringBuffer(); }
HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",sw);
HqlPack.getStringEqualPack(userLoginName,"userLoginName",sw);
HqlPack.getNumNOEqualPack(userId,"id",sw);
count = userRDao.findByHqlWhereCount(sw.toString());
}else{ // long refPositionCount = refUserPositionRDao.findByPropertyCount("positionId",positionId);
count = userRDao.findByPropertyCount( // if (refPositionCount >= 1) {
new String[]{"userLoginName","isValid"}, // throw ImppExceptionBuilder.newInstance()
new Object[]{userLoginName,CommonEnumUtil.IS_VAILD.VAILD.getValue()}); // .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
} // .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
return count <= 0 ; // .setErrorDetail("存在用户关系引用信息无法删除!")
} // .setErrorSolution("请先删除用户关系信息再操作")
// .build();
// }
long departmentCount = departmentRDao.findByPropertyCount("organizeId",organizeId);
if (departmentCount >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在部门信息无法删除!")
.setErrorSolution("请先删除部门引用信息再操作")
.build();
}
/** long userInfoCount = userInfoRDao.findByPropertyCount("organizeId",organizeId);
* if (userInfoCount >= 1) {
* @param email throw ImppExceptionBuilder.newInstance()
* @param infoId .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
* @return .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
*/ .setErrorDetail("存在用户信息无法删除!")
private boolean checkSysUserEmail(String email, long infoId) { .setErrorSolution("请先删除用户引用信息再操作")
int count; .build();
if(infoId > 0){ }
StringBuffer sw = new StringBuffer();
HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",sw);
HqlPack.getStringEqualPack(email,"userEmail",sw);
HqlPack.getNumNOEqualPack(infoId,"userInfoId",sw);
count = userRDao.findByHqlWhereCount(sw.toString());
}else{ long userCount = userRDao.findByPropertyCount("organizeId",organizeId);
count = userRDao.findByPropertyCount( if (userCount >= 1) {
new String[]{"userEmail","isValid"}, throw ImppExceptionBuilder.newInstance()
new Object[]{email,CommonEnumUtil.IS_VAILD.VAILD.getValue()}); .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在账号信息无法删除!")
.setErrorSolution("请先删除账号引用信息再操作")
.build();
}
} }
return count <= 0 ;
} }
/** @Override
* public void checkSysUserPassword(String password) {
* @param phone LOGGER.debug("平台用户 SysUser password:{}", password);
* @param infoId
* @return
*/
private boolean checkSysUserPhone(String phone, long infoId) {
int count;
if(infoId > 0){
StringBuffer sw = new StringBuffer();
HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",sw);
HqlPack.getStringEqualPack(phone,"userPhone",sw);
HqlPack.getNumNOEqualPack(infoId,"userInfoId",sw);
count = userRDao.findByHqlWhereCount(sw.toString());
}else{ if(StringUtils.isNotBlank(password)){
count = userRDao.findByPropertyCount( // 密码长度校验
new String[]{"userPhone","isValid"}, String redisKey = CommonConstWords.REDIS_PREFIX_CACHE_CONFIG + "_" + CommonConstWords.CONFIG_PWD_LENGTH;
new Object[]{phone,CommonEnumUtil.IS_VAILD.VAILD.getValue()}); SysConfig config = (SysConfig) systemInitService.getDataFromCache(redisKey, SysConfig.class);
}
return count <= 0 ;
}
/** if(!checkPasswordLength(config,password)){
* throw ImppExceptionBuilder.newInstance()
* @param empNo .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
* @param infoId .setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
* @return .setErrorDetail("密码长度不足")
*/ .setErrorSolution("请重新输入")
private boolean checkSysUserEmpNo(String empNo, long infoId) { .build();
int count; }
if(infoId > 0){
StringBuffer sw = new StringBuffer();
HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",sw);
HqlPack.getStringEqualPack(empNo,"userEmpNo",sw);
HqlPack.getNumNOEqualPack(infoId,"userInfoId",sw);
count = userRDao.findByHqlWhereCount(sw.toString());
}else{ // 密码小写校验
count = userRDao.findByPropertyCount( redisKey = CommonConstWords.REDIS_PREFIX_CACHE_CONFIG + "_" + CommonConstWords.CONFIG_PWD_EXIST_LOWER_ENGLISH;
new String[]{"userEmpNo","isValid"}, config = (SysConfig) systemInitService.getDataFromCache(redisKey, SysConfig.class);
new Object[]{empNo,CommonEnumUtil.IS_VAILD.VAILD.getValue()});
if(!checkPasswordLowerEnglish(config,password)){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("密码必须包含小写英文")
.setErrorSolution("请重新输入")
.build();
}
// 密码大写校验
redisKey = CommonConstWords.REDIS_PREFIX_CACHE_CONFIG + "_" + CommonConstWords.CONFIG_PWD_EXIST_UPPERCASE_ENGLISH;
config = (SysConfig) systemInitService.getDataFromCache(redisKey, SysConfig.class);
if(!checkPasswordUpperEnglish(config,password)){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("密码必须包含大写英文")
.setErrorSolution("请重新输入")
.build();
}
// 密码特殊字符
redisKey = CommonConstWords.REDIS_PREFIX_CACHE_CONFIG + "_" + CommonConstWords.CONFIG_PWD_EXIST_SPECIAL_CHAR;
config = (SysConfig) systemInitService.getDataFromCache(redisKey, SysConfig.class);
if(!checkPasswordSpecialChar(config,password)){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("密码必须包含特殊字符")
.setErrorSolution("请重新输入")
.build();
}
// 密码特殊字符
redisKey = CommonConstWords.REDIS_PREFIX_CACHE_CONFIG + "_" + CommonConstWords.CONFIG_PWD_EXIST_NUMBER;
config = (SysConfig) systemInitService.getDataFromCache(redisKey, SysConfig.class);
if(!checkPasswordNumber(config,password)){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("密码必须包含数字")
.setErrorSolution("请重新输入")
.build();
}
} }
return count <= 0 ;
} }
@Override @Override
@ -958,4 +1056,211 @@ public class PersonnelServiceService implements IPersonnelService {
} }
} }
} }
/*********************************** 检查方法封装 ***********************************/
/**
*
* @return
*/
private boolean checkPasswordLength(SysConfig config,String password){
if(config != null){
if(config.getConfigValue() == null || config.getConfigType().equals(ImppEnumUtil.SYS_VALUE_TYPE.NUMBER.getValue())){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("系统配置格式错误(密码长度)")
.setErrorSolution("请先配置系统参数")
.build();
}else {
int length = Integer.parseInt(config.getConfigValue());
return password.trim().length() >= length;
}
}
return true;
}
/**
*
* @param password
* @return
*/
private boolean checkPasswordLowerEnglish(SysConfig config,String password){
if(config != null){
if(config.getConfigValue() == null || config.getConfigType().equals(ImppEnumUtil.SYS_VALUE_TYPE.SWITCH.getValue())){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("系统配置格式错误(密码英文小写配置)")
.setErrorSolution("请先配置系统参数")
.build();
}else {
if(config.getConfigValue().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())){
return StringTool.isContainLowerCase(password);
}
}
}
return true;
}
/**
*
* @param password
* @return
*/
private boolean checkPasswordUpperEnglish(SysConfig config,String password){
if(config != null){
if(config.getConfigValue() == null || config.getConfigType().equals(ImppEnumUtil.SYS_VALUE_TYPE.SWITCH.getValue())){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("系统配置格式错误(密码英文大写配置)")
.setErrorSolution("请先配置系统参数")
.build();
}else {
if(config.getConfigValue().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())){
return StringTool.isContainUpperCase(password);
}
}
}
return true;
}
/**
*
* @param password
* @return
*/
private boolean checkPasswordNumber(SysConfig config,String password){
if(config != null){
if(config.getConfigValue() == null || config.getConfigType().equals(ImppEnumUtil.SYS_VALUE_TYPE.SWITCH.getValue())){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("系统配置格式错误(密码数字配置)")
.setErrorSolution("请先配置系统参数")
.build();
}else {
if(config.getConfigValue().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())){
return StringTool.isContainNumber(password);
}
}
}
return true;
}
/**
*
* @param password
* @return
*/
private boolean checkPasswordSpecialChar(SysConfig config,String password){
if(config != null){
if(config.getConfigValue() == null || config.getConfigType().equals(ImppEnumUtil.SYS_VALUE_TYPE.SWITCH.getValue())){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("系统配置格式错误(密码特殊字符配置)")
.setErrorSolution("请先配置系统参数")
.build();
}else {
if(config.getConfigValue().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())){
return StringTool.isConSpeCharacters(password);
}
}
}
return true;
}
/**
*
* @param userLoginName
* @param userId
* @return
*/
private boolean checkSysUserLoginName(String userLoginName, long userId) {
int count = 0;
if(userId > 0){
StringBuffer sw = new StringBuffer();
HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",sw);
HqlPack.getStringEqualPack(userLoginName,"userLoginName",sw);
HqlPack.getNumNOEqualPack(userId,"id",sw);
count = userRDao.findByHqlWhereCount(sw.toString());
}else{
count = userRDao.findByPropertyCount(
new String[]{"userLoginName","isValid"},
new Object[]{userLoginName,CommonEnumUtil.IS_VAILD.VAILD.getValue()});
}
return count <= 0 ;
}
/**
*
* @param email
* @param infoId
* @return
*/
private boolean checkSysUserEmail(String email, long infoId) {
int count;
if(infoId > 0){
StringBuffer sw = new StringBuffer();
HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",sw);
HqlPack.getStringEqualPack(email,"userEmail",sw);
HqlPack.getNumNOEqualPack(infoId,"userInfoId",sw);
count = userRDao.findByHqlWhereCount(sw.toString());
}else{
count = userRDao.findByPropertyCount(
new String[]{"userEmail","isValid"},
new Object[]{email,CommonEnumUtil.IS_VAILD.VAILD.getValue()});
}
return count <= 0 ;
}
/**
*
* @param phone
* @param infoId
* @return
*/
private boolean checkSysUserPhone(String phone, long infoId) {
int count;
if(infoId > 0){
StringBuffer sw = new StringBuffer();
HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",sw);
HqlPack.getStringEqualPack(phone,"userPhone",sw);
HqlPack.getNumNOEqualPack(infoId,"userInfoId",sw);
count = userRDao.findByHqlWhereCount(sw.toString());
}else{
count = userRDao.findByPropertyCount(
new String[]{"userPhone","isValid"},
new Object[]{phone,CommonEnumUtil.IS_VAILD.VAILD.getValue()});
}
return count <= 0 ;
}
/**
*
* @param empNo
* @param infoId
* @return
*/
private boolean checkSysUserEmpNo(String empNo, long infoId) {
int count;
if(infoId > 0){
StringBuffer sw = new StringBuffer();
HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",sw);
HqlPack.getStringEqualPack(empNo,"userEmpNo",sw);
HqlPack.getNumNOEqualPack(infoId,"userInfoId",sw);
count = userRDao.findByHqlWhereCount(sw.toString());
}else{
count = userRDao.findByPropertyCount(
new String[]{"userEmpNo","isValid"},
new Object[]{empNo,CommonEnumUtil.IS_VAILD.VAILD.getValue()});
}
return count <= 0 ;
}
} }

@ -95,9 +95,9 @@ public class SysDepartmentService implements ISysDepartmentService {
.setErrorSolution("请先删除子集信息在操作") .setErrorSolution("请先删除子集信息在操作")
.build(); .build();
} }
// 检查部门引用管理
// 删除部门 personnelService.checkSysDepartmentRef(id);
LOGGER.info("部门信息 DEPARTMENT :{}", id); // 删除数据
departmentRDao.deleteById(id); departmentRDao.deleteById(id);
} }
@ -114,6 +114,10 @@ public class SysDepartmentService implements ISysDepartmentService {
.setErrorSolution("请先删除子集信息在操作") .setErrorSolution("请先删除子集信息在操作")
.build(); .build();
}else { }else {
for (Long id : ids) {
personnelService.checkSysDepartmentRef(id);
}
departmentRDao.deleteByIds(ids); departmentRDao.deleteByIds(ids);
} }
} }

@ -102,6 +102,9 @@ public class SysOrganizeService implements ISysOrganizeService {
.setErrorSolution("请先删除子集信息在操作") .setErrorSolution("请先删除子集信息在操作")
.build(); .build();
} }
// 检查引用关系
personnelService.checkSysOrganizeRef(id);
// 删除数据
organizeRDao.deleteById(id); organizeRDao.deleteById(id);
} }
@ -117,6 +120,10 @@ public class SysOrganizeService implements ISysOrganizeService {
.setErrorSolution("请先删除子集信息在操作") .setErrorSolution("请先删除子集信息在操作")
.build(); .build();
}else { }else {
// 检查引用关系
for (Long id : ids) {
personnelService.checkSysOrganizeRef(id);
}
organizeRDao.deleteByIds(ids); organizeRDao.deleteByIds(ids);
} }
} }

@ -27,6 +27,8 @@ public class HqlModelPack {
// And // And
HqlPack.getNumEqualPack(model.getUserStatus(),"userStatus",result); HqlPack.getNumEqualPack(model.getUserStatus(),"userStatus",result);
HqlPack.getNumEqualPack(model.getUserPhone(),"userPhone",result);
if(idList != null && idList.size() > 0){ if(idList != null && idList.size() > 0){
HqlPack.getInPack(StringUtils.join(idList, ","), "id", result); HqlPack.getInPack(StringUtils.join(idList, ","), "id", result);
} }

Loading…
Cancel
Save