diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemInitService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemInitService.java new file mode 100644 index 0000000..9b5a4fa --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemInitService.java @@ -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); +} diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IPersonnelService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IPersonnelService.java index 41ce6cc..2821e8a 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IPersonnelService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/IPersonnelService.java @@ -41,6 +41,9 @@ public interface IPersonnelService { @ApiOperation(value = "查询账号信息") List querySysUserByUserDetailModelOrIds(UserDetailModel model, List ids); + @ApiOperation(value = "查询账号信息") + ListPager querySysUserPagerByUserDetailModelOrIds(UserDetailModel model,Pager pager, List ids); + @ApiOperation(value = "获取用户信息") SysUserInfo getSysUserInfoById(Long id); @@ -101,7 +104,16 @@ public interface IPersonnelService { @ApiOperation(value = "岗位关系检查") 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); @ApiOperation(value = "岗位关系检查") diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysConfigService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysConfigService.java index 2cd9827..581b816 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysConfigService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysConfigService.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.platform.bean.SysConfig; import io.swagger.annotations.ApiOperation; +import java.util.Date; import java.util.List; /** @@ -81,4 +82,5 @@ public interface ISysConfigService { */ @ApiOperation(value = "根据系统配置代码修改配置项") void updateSysConfigByCode(String code,String value); + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/AppStartSystemInit.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/AppStartSystemInit.java new file mode 100644 index 0000000..30eb423 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/configuration/AppStartSystemInit.java @@ -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(); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java index 891c616..f99dfbc 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java @@ -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.TimeTool; 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.ResourceEnumUtil; 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.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.auth.AuthUtil; @@ -57,9 +60,23 @@ public class PersonnelController extends CoreBaseController { SysUserInfo info = model.getSysUserInfo(); checkUserDetailModel(model, false); + personnelService.checkSysUserPassword(model.getUserLoginPassword()); 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())); if(infoDepartment == null){ @@ -117,10 +134,9 @@ public class PersonnelController extends CoreBaseController { SysUserInfo info = model.getSysUserInfo(); checkUserDetailModel(model, true); + personnelService.checkSysUserPassword(model.getUserLoginPassword()); personnelService.checkSysUserOnly(user); - initUserDetail(info,user); - SysDepartment infoDepartment = personnelService.getSysDepartmentById(Long.parseLong(model.getInfoDepartmentId())); if(infoDepartment == null){ ValidatorBean.checkNotNull(infoDepartment,"用户主部门不存在"); @@ -166,7 +182,6 @@ public class PersonnelController extends CoreBaseController { } } - @PutMapping(value="/user/update") @ApiOperation(value="添加用户信息",notes="返回内容添加用户信息") public ResultBean updateUserModel(UserDetailModel model) { @@ -174,6 +189,7 @@ public class PersonnelController extends CoreBaseController { checkUserModel(model); SysUser user = personnelService.getSysUserById(Long.parseLong(model.getUserId())); initUser(model,user); + personnelService.checkSysUserPassword(model.getUserLoginPassword()); personnelService.checkSysUserOnly(user); SysDepartment userDepartment = personnelService.getSysDepartmentById(Long.parseLong(model.getUserDepartmentId())); @@ -380,14 +396,12 @@ public class PersonnelController extends CoreBaseController { } } - @PostMapping(value = "/query-ref-department") @ApiOperation(value = "查询角色的所有角色权限关系", notes = "查询角色的所有角色权限关系") - public ResultBean queryRefDepartment(UserDetailModel model) { + public ResultBean queryRefDepartment(@RequestBody UserDetailModel model) { try { - model.setUserDepartmentIdList(new ArrayList(Arrays.asList(new String[]{"1072037153732694016"}))); - List idList = new ArrayList<>(); + model.setUserDepartmentIdList(new ArrayList(Arrays.asList(new String[]{"1072037153732694016"}))); List refs = personnelService.querySysRefUserDepartmentByUserDetailModel(model); 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 idList = new ArrayList<>(); + List refs = personnelService.querySysRefUserDepartmentByUserDetailModel(model.getUserDetailModel()); + if(refs != null && refs.size() > 0){ + for (SysRefUserDepartment ref : refs) { + idList.add(ref.getUserId()); + } + } + + ListPager 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 @@ -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 user * @throws Exception diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDepartmentController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDepartmentController.java index 6941388..9fe63fd 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDepartmentController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDepartmentController.java @@ -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") @ApiOperation(value = "查询所有部门", notes = "查询所有部门") 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") @ApiOperation(value = "根据id批量删除", notes = "根据id批量删除") public ResultBean deleteSysDepartmentByIds(String[] ids){ diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysPositionController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysPositionController.java index dc0ec77..0a8ed72 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysPositionController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysPositionController.java @@ -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") @ApiOperation(value="查询所有岗位",notes="查询所有岗位") 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") @ApiOperation(value = "根据id批量删除", notes = "根据id批量删除") public ResultBean deleteSysPositionByIds(String[] ids){ @@ -182,5 +182,4 @@ public class SysPositionController extends CoreBaseController { return ResultBean.fail(e).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()); } } - } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/DataSimpleServiceImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/DataSimpleService.java similarity index 95% rename from modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/DataSimpleServiceImpl.java rename to modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/DataSimpleService.java index 4eda967..69663d6 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/DataSimpleServiceImpl.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/DataSimpleService.java @@ -13,7 +13,7 @@ import org.springframework.stereotype.Service; * @Modify: **/ @Service -public class DataSimpleServiceImpl implements IDataSimpleService { +public class DataSimpleService implements IDataSimpleService { private Logger LOGGER = LoggerFactory.getLogger(this.getClass()); /*@Autowired diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemInitService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemInitService.java new file mode 100644 index 0000000..bccc166 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemInitService.java @@ -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 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 list = dictionaryRDao.findAll(); + if(list != null && list.size() > 0){ + Map> parentCodeMap = list.stream().collect(Collectors.groupingBy(SysDictionary::getParentCodeRdd)); + Map> 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; + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java index 96df3fb..7237f47 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java @@ -1,12 +1,16 @@ 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.ISysRoleService; 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.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.model.platform.UserDetailModel; @@ -84,6 +88,12 @@ public class PersonnelServiceService implements IPersonnelService { @Resource(name="redisCore") protected ImppRedis redisCore; + @Resource(name="redisRes") + private ImppRedis redisRes; + + @Autowired + private ISystemInitService systemInitService; + @Override public SysUser saveSysUser(SysUser user) { LOGGER.debug("平台账号 SysUser user:{}", user); @@ -147,6 +157,16 @@ public class PersonnelServiceService implements IPersonnelService { } @Override + @ApiOperation(value = "查询账号信息") + public ListPager querySysUserPagerByUserDetailModelOrIds(UserDetailModel model,Pager pager, List 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) { return userInfoRDao.getById(id); } @@ -388,19 +408,52 @@ public class PersonnelServiceService implements IPersonnelService { .setErrorSolution("请先删除子集信息在操作") .build(); } - - long refPositionCount = refUserPositionRDao.findByPropertyCount("positionId",positionId); - if (refPositionCount >= 1) { +// 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 refUserInfoCount = userInfoRDao.findByPropertyCount("positionId",positionId); + if (refUserInfoCount >= 1) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("存在用户关系引用信息无法删除!") - .setErrorSolution("请先删除用户关系信息再操作") + .setErrorDetail("存在用户信息无法删除!") + .setErrorSolution("请先删除用户引用信息再操作") .build(); } + } + } - long refUserInfoCount = userInfoRDao.findByPropertyCount("positionId",positionId); - if (refUserInfoCount >= 1) { + @Override + 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() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) @@ -408,101 +461,146 @@ public class PersonnelServiceService implements IPersonnelService { .setErrorSolution("请先删除用户引用信息再操作") .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); - /** - * 登录名 唯一检查 - * @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()); + if(organizeId != null){ + long organizeCount = organizeRDao.findByPropertyCount("parentId",organizeId); + if (organizeCount >= 1) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("存在相关组织信息无法删除!") + .setErrorSolution("请先删除子集信息在操作") + .build(); + } - }else{ - count = userRDao.findByPropertyCount( - new String[]{"userLoginName","isValid"}, - new Object[]{userLoginName,CommonEnumUtil.IS_VAILD.VAILD.getValue()}); - } - return count <= 0 ; - } +// 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 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(); + } - /** - * 用户邮箱唯一检查 - * @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()); + long userInfoCount = userInfoRDao.findByPropertyCount("organizeId",organizeId); + if (userInfoCount >= 1) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("存在用户信息无法删除!") + .setErrorSolution("请先删除用户引用信息再操作") + .build(); + } - }else{ - count = userRDao.findByPropertyCount( - new String[]{"userEmail","isValid"}, - new Object[]{email,CommonEnumUtil.IS_VAILD.VAILD.getValue()}); + long userCount = userRDao.findByPropertyCount("organizeId",organizeId); + if (userCount >= 1) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("存在账号信息无法删除!") + .setErrorSolution("请先删除账号引用信息再操作") + .build(); + } } - 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()); + @Override + public void checkSysUserPassword(String password) { + LOGGER.debug("平台用户 SysUser password:{}", password); - }else{ - count = userRDao.findByPropertyCount( - new String[]{"userPhone","isValid"}, - new Object[]{phone,CommonEnumUtil.IS_VAILD.VAILD.getValue()}); - } - return count <= 0 ; - } + if(StringUtils.isNotBlank(password)){ + // 密码长度校验 + String redisKey = CommonConstWords.REDIS_PREFIX_CACHE_CONFIG + "_" + CommonConstWords.CONFIG_PWD_LENGTH; + SysConfig config = (SysConfig) systemInitService.getDataFromCache(redisKey, SysConfig.class); - /** - * 工号唯一检查 - * @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()); + if(!checkPasswordLength(config,password)){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode()) + .setErrorDetail("密码长度不足") + .setErrorSolution("请重新输入") + .build(); + } - }else{ - count = userRDao.findByPropertyCount( - new String[]{"userEmpNo","isValid"}, - new Object[]{empNo,CommonEnumUtil.IS_VAILD.VAILD.getValue()}); + // 密码小写校验 + redisKey = CommonConstWords.REDIS_PREFIX_CACHE_CONFIG + "_" + CommonConstWords.CONFIG_PWD_EXIST_LOWER_ENGLISH; + config = (SysConfig) systemInitService.getDataFromCache(redisKey, SysConfig.class); + + 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 @@ -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 ; + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java index 5a86ac2..061a1b6 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java @@ -95,9 +95,9 @@ public class SysDepartmentService implements ISysDepartmentService { .setErrorSolution("请先删除子集信息在操作") .build(); } - - // 删除部门 - LOGGER.info("部门信息 DEPARTMENT :{}", id); + // 检查部门引用管理 + personnelService.checkSysDepartmentRef(id); + // 删除数据 departmentRDao.deleteById(id); } @@ -114,6 +114,10 @@ public class SysDepartmentService implements ISysDepartmentService { .setErrorSolution("请先删除子集信息在操作") .build(); }else { + for (Long id : ids) { + personnelService.checkSysDepartmentRef(id); + } + departmentRDao.deleteByIds(ids); } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java index 958fdd7..354b4a3 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java @@ -102,6 +102,9 @@ public class SysOrganizeService implements ISysOrganizeService { .setErrorSolution("请先删除子集信息在操作") .build(); } + // 检查引用关系 + personnelService.checkSysOrganizeRef(id); + // 删除数据 organizeRDao.deleteById(id); } @@ -117,6 +120,10 @@ public class SysOrganizeService implements ISysOrganizeService { .setErrorSolution("请先删除子集信息在操作") .build(); }else { + // 检查引用关系 + for (Long id : ids) { + personnelService.checkSysOrganizeRef(id); + } organizeRDao.deleteByIds(ids); } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/HqlModelPack.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/HqlModelPack.java index 6995928..5c93ccb 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/HqlModelPack.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/HqlModelPack.java @@ -27,6 +27,8 @@ public class HqlModelPack { // And HqlPack.getNumEqualPack(model.getUserStatus(),"userStatus",result); + HqlPack.getNumEqualPack(model.getUserPhone(),"userPhone",result); + if(idList != null && idList.size() > 0){ HqlPack.getInPack(StringUtils.join(idList, ","), "id", result); }