yun-zuoyi
yunhao.wang 6 years ago
commit 7c290b944f

@ -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 = "查询账号信息")
List<SysUser> querySysUserByUserDetailModelOrIds(UserDetailModel model, List<Long> ids);
@ApiOperation(value = "查询账号信息")
ListPager<SysUser> querySysUserPagerByUserDetailModelOrIds(UserDetailModel model,Pager pager, List<Long> 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 = "岗位关系检查")

@ -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);
}

@ -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.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<String>(Arrays.asList(new String[]{"1072037153732694016"})));
List<Long> idList = new ArrayList<>();
model.setUserDepartmentIdList(new ArrayList<String>(Arrays.asList(new String[]{"1072037153732694016"})));
List<SysRefUserDepartment> 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<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
@ -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

@ -1,5 +1,6 @@
package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService;
import cn.estsh.i3plus.core.apiservice.util.MailUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
@ -45,6 +46,9 @@ public class SysConfigController extends CoreBaseController {
@Autowired
private MailUtil mailUtil;
@Autowired
private ISystemInitService systemInitService;
@PostMapping("/insert")
@ApiOperation(value = "添加系统参数",notes = "添加系统参数")
public ResultBean insertSysConfig(SysConfig sysConfig) {
@ -63,6 +67,7 @@ public class SysConfigController extends CoreBaseController {
ConvertBean.modelInitialize(sysConfig,user);
sysConfigService.insertSysConfig(sysConfig);
systemInitService.loadSysConfig();
return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
@ -87,6 +92,7 @@ public class SysConfigController extends CoreBaseController {
}
sysConfigService.deleteSysConfigById(Long.parseLong(idStr));
systemInitService.loadSysConfig();
return ResultBean.success("删除成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
@ -113,6 +119,7 @@ public class SysConfigController extends CoreBaseController {
ConvertBean.modelUpdate(sysConfig,user);
sysConfigService.updateSysConfig(sysConfig);
systemInitService.loadSysConfig();
return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
@ -213,6 +220,7 @@ public class SysConfigController extends CoreBaseController {
ValidatorBean.checkNotNull(value,"值不能为空");
sysConfigService.updateSysConfigByCode(code,value);
systemInitService.loadSysConfig();
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);

@ -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){

@ -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());
}
}
}

@ -412,6 +412,8 @@ public class SysUserController extends CoreBaseController{
ValidatorBean.checkNotNull(password,"新密码不能为空");
ValidatorBean.checkNotNull(email,"邮件不能为空");
personnelService.checkSysUserPassword(password);
String redisKey = CommonConstWords.SESSION_VERIFICATION_USER_EMAIL + "_" + getSessionUser().getUserId();
Object redisValue = redisCore.getObject(redisKey);
if(redisValue != null){

@ -0,0 +1,117 @@
package cn.estsh.i3plus.core.apiservice.controller.report;
import cn.estsh.i3plus.platform.common.tool.ClassTool;
import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.model.common.ClassFieldModel;
import cn.estsh.i3plus.pojo.model.common.ClassModel;
import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.persistence.Transient;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/impp/cloud/report")
@Api(description="报表服务")
public class CoreReportController {
private static final Logger LOGGER = LoggerFactory.getLogger(CoreReportController.class);
@Value("${impp.app.pojo-packages}.bean")
public String pojoPackagePath;
@GetMapping(value="/list-clz")
@ApiOperation(value="查询管理后台所有类",notes = "根据核心包路径列出所有类")
public BaseResultBean<ClassModel> listClz() {
LOGGER.info("【类路径:{}】",pojoPackagePath);
List<String> clzNameList = ClassTool.getClassName(pojoPackagePath, true);
List<ClassModel> clzList = new ArrayList<>(clzNameList.size());
Class tmpClz = null;
Api api = null;
ClassModel classModel = null;
for(String clzName : clzNameList){
try {
//注册类
tmpClz = Class.forName(clzName);
classModel = new ClassModel();
classModel.setPackageName(pojoPackagePath);
classModel.setClzFullName(clzName);
classModel.setClzSimpleName(tmpClz.getSimpleName());
api = (Api) tmpClz.getAnnotation(Api.class);
if(api != null) {
classModel.setClzDesc(api.value());
clzList.add(classModel);
}else{
//classModel.setClzDesc(clzName);
LOGGER.warn("不添加类:{},因为没有添加api描述", tmpClz);
}
} catch (ClassNotFoundException e) {
LOGGER.error("【类:{}注册出错】",clzName,clzName,e);
}
}
return ResultBean.success("获取类:" + clzList.size())
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultList(clzList);
}
@GetMapping(value="/pojo-property")
@ApiOperation(value="查询类所有属性")
public ResultBean<ClassFieldModel> testWms(@RequestParam("clzFullName") String clzFullName) {
LOGGER.info("【查询类属性:{}】",clzFullName);
ApiParam apiParam = null;
Transient tran = null;
List<ClassFieldModel> fieldModelList = new ArrayList<>();
try {
Class tmpClz = Class.forName(clzFullName);
List<Field> fields = ClassTool.getAllFieldsList(tmpClz);
ClassFieldModel fieldModel = null;
for(Field f : fields){
tran = f.getAnnotation(Transient.class);
if(tran == null) {
// 临时对象不需要处理
fieldModel = new ClassFieldModel();
fieldModel.setPackageName(pojoPackagePath);
fieldModel.setClzFullName(clzFullName);
fieldModel.setClzSimpleName(tmpClz.getSimpleName());
fieldModel.setFieldName(f.getName());
apiParam = f.getAnnotation(ApiParam.class);
if(apiParam != null){
fieldModel.setFieldDesc(apiParam.value());
fieldModelList.add(fieldModel);
}else{
//fieldModel.setFieldDesc(fieldModel.getFieldName());
LOGGER.warn("不添加属性:{},因为没有添加api描述", f.getName());
}
}else{
LOGGER.info("【临时属性:{}】",f.getName());
}
}
} catch (ClassNotFoundException e) {
LOGGER.error("【类:{}实例化出错】",clzFullName,e);
}
return ResultBean.success("获取属性:" + fieldModelList.size())
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultList(fieldModelList);
}
}

@ -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

@ -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;
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<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) {
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 ;
}
}

@ -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);
}
}

@ -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);
}
}

@ -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);
}

@ -1,7 +1,7 @@
#项目端口
server.port=8100
#本机ip
impp.server.ip=192.168.1.56
impp.server.ip=192.168.1.40
#console控制台服务zipkin追踪全路径
impp.console.ip=http://csd.estsh.com
@ -63,14 +63,14 @@ eureka.instance.lease-renewal-interval-in-seconds=20
#打开feign的熔断
feign.hystrix.enabled=true
#读取数据时长
ribbon.ReadTimeout=3000
#连接时长
ribbon.ConnectTimeout=3000
#重试
ribbon.maxAutoRetries=2
#读取数据时长
ribbon.ReadTimeout=30000
#连接时长
ribbon.ConnectTimeout=30000
#响应超过时长,进行熔断(熔断超时需要大于读取时长及连接时长)
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=35000
#集群名
eureka.instance.metadata-map.cluster=impp_cluster

@ -58,14 +58,14 @@ eureka.instance.lease-renewal-interval-in-seconds=20
#打开feign的熔断
feign.hystrix.enabled=true
#读取数据时长
ribbon.ReadTimeout=3000
#连接时长
ribbon.ConnectTimeout=3000
#重试
ribbon.maxAutoRetries=2
#读取数据时长
ribbon.ReadTimeout=30000
#连接时长
ribbon.ConnectTimeout=30000
#响应超过时长,进行熔断(熔断超时需要大于读取时长及连接时长)
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=35000
#集群名
eureka.instance.metadata-map.cluster=impp_cluster

@ -63,14 +63,14 @@ eureka.instance.lease-renewal-interval-in-seconds=20
#打开feign的熔断
feign.hystrix.enabled=true
#读取数据时长
ribbon.ReadTimeout=3000
#连接时长
ribbon.ConnectTimeout=3000
#重试
ribbon.maxAutoRetries=2
#读取数据时长
ribbon.ReadTimeout=30000
#连接时长
ribbon.ConnectTimeout=30000
#响应超过时长,进行熔断(熔断超时需要大于读取时长及连接时长)
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=35000
#集群名
eureka.instance.metadata-map.cluster=impp_cluster

Loading…
Cancel
Save