Compare commits

..

10 Commits

@ -185,6 +185,7 @@ public interface ICoreMemTreeService {
List<SysMenuDTO> packTreeToDto(List<SysMenu> list);
List<SysOrganize> setLanguageSysMenuName(String languageCode, List<SysOrganize> menuList);
/********************************************* End SysMenu Tree *********************************************/
}

@ -68,6 +68,13 @@ public interface ISysConfigService {
SysConfig getSysConfigByCode(String code);
/**
* code
* @return
*/
@ApiOperation(value = "根据code查询系统配置安全审计密码相关参数")
List<SysConfig> getSysConfigPwdByCode();
/**
*
* @return
*/

@ -70,4 +70,7 @@ public interface ISysMenuService extends ICrudService<SysMenu> {
@ApiOperation(value = "根据菜单ID删除菜单信息")
void deleteSysMenuById(Long id);
@ApiOperation(value = "根据菜单中的配置查询系统查询impp下面一层的数据")
List<SysMenu> querySysMenuSoftType();
}

@ -26,6 +26,9 @@ public interface ISysRoleService extends ICrudService<SysRole> {
@ApiOperation(value = "刷新角色菜单关系", notes = "批量刷新 角色 菜单关系信息")
void refreshBatchSysRoleRef(Long[] roleIds, Long[] ids, String userName);
@ApiOperation(value = "根据角色ID更新角色菜单关系")
void updateRoleMenuChangeRoleNameRdd(Long roleId, String roleName);
void refreshSysRoleRef(Long roleId, Integer softType, List<Long> idList, String userName);
@ApiOperation(value = "查信角色菜单关系", notes = "查询 ID 查询角色菜单关系")

@ -5,7 +5,9 @@ import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.core.api.iservice.busi.ICoreMemTreeService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysOrganizeService;
import cn.estsh.i3plus.platform.common.exception.BaseImppException;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.model.license.ImppLicense;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
@ -189,8 +191,10 @@ public class BackstageController extends CoreBaseController {
ImppLicenseTool.checkLicenseDateTime();
ImppLicenseTool.checkOrganize(organizeCodeList.size());
ImppLicenseTool.checkOrganizeCode(organizeCodeList.get(0));
}else {
throw (new BaseImppException("非授权工厂,请联系管理员")).setSystemId(CommonEnumUtil.SOFT_TYPE.IMPP.getCode()).setErrorCode(ImppExceptionEnum.LICENSE_ORGANIZE_ERROR.getCode()).setErrorSolution("请联系管理员");
}
ResultBean result = ResultBean.success("校验成功");
ResultBean result = ResultBean.success("校验成功").setResultList(organizeCodeList);
return result;
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);

@ -180,6 +180,9 @@ public class WhiteController extends CoreBaseController {
@Autowired
private ISysOrderNoRuleService sysOrderNoRuleService;
@Autowired
private ISysMenuService sysMenuService;
@Value(value = "${filter.ding.menu.parent.id}")
private Long filterDingPmcParentMenuId;
@ -771,7 +774,7 @@ public class WhiteController extends CoreBaseController {
* @param sysOrderNoRule
* @return
*/
@PostMapping(value = "/insert")
@PostMapping(value = "/sys-order-no-rule/insert")
@ApiOperation(value = "新增单号规则")
public ResultBean insertSysOrderNoRule(SysOrderNoRule sysOrderNoRule) {
try {
@ -1017,7 +1020,7 @@ public class WhiteController extends CoreBaseController {
@GetMapping(value = "/user-update-password-hint")
@ApiOperation(value = "获取修改密码提示信息", notes = "获取修改密码提示信息")
public ResultBean getUserUpdatePasswordHint() {
List<SysConfig> sysConfigs = configService.ListSysConfig();
List<SysConfig> sysConfigs = configService.getSysConfigPwdByCode();
return ResultBean.success().setResultList(sysConfigs);
}
@ -1557,6 +1560,18 @@ public class WhiteController extends CoreBaseController {
}
}
@GetMapping(value = "/query-sys-menu-softType")
@ApiOperation(value = "菜单中查询系统其实就是父级为impp的")
public ResultBean querySysMenuSoftType() {
try {
return ResultBean.success("操作成功").setResultList(sysMenuService.querySysMenuSoftType()).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
*
*

@ -176,8 +176,11 @@ public class SysMemTreeController extends CoreBaseController {
List<SysRefUserDepartment> refList = personnelService.findSysRefUserDepartmentByUserId(getSessionUser().getUser().getId());
List userTreeList = memTreeService.packTreeSysOrganizeBySysRefUserOrganize(listTree, refList);
userTreeList = memTreeService.setLanguageSysMenuName(AuthUtil.getSessionUser().getLanguageCode(), userTreeList);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(userTreeList);
} else {
listTree = memTreeService.setLanguageSysMenuName(AuthUtil.getSessionUser().getLanguageCode(), listTree);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(listTree);
}

@ -118,6 +118,8 @@ public class SysRoleController extends CrudBaseController<SysRole> {
try {
SysRole BeforeSysRole = sysRoleService.get(sysRole.getId());
sysRole = this.validatorUpdateBean(sysRole);
//修改角色菜单关联表中的角色名称
sysRoleService.updateRoleMenuChangeRoleNameRdd(sysRole.getId(), sysRole.getName());
//新增用户角色操作变更日志
if (!BeforeSysRole.getName().equals(sysRole.getName())) {
SysLogRoleOperate sysLogRoleOperate = new SysLogRoleOperate();

@ -148,6 +148,9 @@ public class PojoVersionQueueReceiver {
// pojoCompare = differing.toString();
// }
String pojoCompare = mapDiff == null ? null : mapDiff.toString();
if ("insert".equals(afterVersion.getVersionMethodName())) { //
pojoCompare = JSON.toJSONString(afterMap);
}
versionNo = Objects.nonNull(beforeVersion) ? beforeVersion.getVersionNo() : 0;
afterVersion.setVersionNo(++versionNo);

@ -2,11 +2,14 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.*;
import cn.estsh.i3plus.core.api.iservice.dto.SysMenuDTO;
import cn.estsh.i3plus.platform.common.tool.SerializeTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ModelEnumUtil;
import cn.estsh.i3plus.pojo.model.platform.CommonTreeModel;
import cn.estsh.i3plus.pojo.platform.bean.*;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
@ -14,12 +17,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
import static cn.estsh.i3plus.platform.common.util.CommonConstWords.RESOURCE_PREFIX_MENU;
/**
* @Description :
* @Reference :
@ -747,6 +749,27 @@ public class CoreMemTreeService implements ICoreMemTreeService {
return sysMenuDTOList;
}
@Override
public List<SysOrganize> setLanguageSysMenuName(String languageCode, List<SysOrganize> menuList) {
languageCode = StringUtils.isNotBlank(languageCode) ? languageCode : CommonConstWords.DEFAULT_LANGUAGE;
Map<String, String> localeResourceMap = SysMenuService.MEM_CACHE_LANGAGE.get(languageCode);
if (menuList != null && localeResourceMap != null) {
List<SysOrganize> resultList = (List<SysOrganize>) SerializeTool.copyObject(menuList);
for (SysOrganize menu : resultList) {
if (menu != null) {
if (StringUtils.isNotBlank(menu.getName())) {
String menuName = localeResourceMap.get(RESOURCE_PREFIX_MENU + menu.getName());
menu.setName(StringUtils.isNotBlank(menuName) ? menuName : menu.getName());
}
}
}
return resultList;
}
return menuList;
}
/********************************************* End SysMenu Tree *********************************************/
}

@ -1,6 +1,7 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
@ -89,6 +90,18 @@ public class SysConfigService implements ISysConfigService {
}
@Override
public List<SysConfig> getSysConfigPwdByCode() {
List<SysConfig> pwdConfig = new ArrayList();
pwdConfig.add(SysConfigRDao.getByProperty("configCode", CommonConstWords.CONFIG_PWD_EXIST_SPECIAL_CHAR));
pwdConfig.add(SysConfigRDao.getByProperty("configCode", CommonConstWords.CONFIG_PWD_EXIST_UPPERCASE_ENGLISH));
pwdConfig.add(SysConfigRDao.getByProperty("configCode", CommonConstWords.CONFIG_PWD_EXIST_LOWER_ENGLISH));
pwdConfig.add(SysConfigRDao.getByProperty("configCode", CommonConstWords.CONFIG_PWD_EXIST_NUMBER));
pwdConfig.add(SysConfigRDao.getByProperty("configCode", CommonConstWords.CONFIG_PWD_LENGTH));
pwdConfig.add(SysConfigRDao.getByProperty("configCode", CommonConstWords.CONFIG_PWD_REPEAT_DAY));
return pwdConfig;
}
@Override
@ApiOperation(value = "查询系统邮件配置项")
public List findMailConfig() {
List mailConfig = new ArrayList();

@ -42,6 +42,10 @@ public class SysMenuService extends CrudService<SysMenu> implements ISysMenuServ
public static final Logger LOGGER = LoggerFactory.getLogger(SysMenuService.class);
private static int menuType = 1;
private static Long parentId = 100000000L;
/**
*
*/
@ -340,6 +344,25 @@ public class SysMenuService extends CrudService<SysMenu> implements ISysMenuServ
}
}
@Override
public List<SysMenu> querySysMenuSoftType() {
// todo 临时这么写,需要优化
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getNumEqualPack(menuType,"menuType",packBean);
DdlPreparedPack.getNumEqualPack(parentId,"parentId",packBean);
List<SysMenu> sysMenus = sysMenuRDao.findByHqlWhere(packBean);
if (CollectionUtils.isEmpty(sysMenus)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode())
.setErrorDetail("未查到菜单中的系统")
.setErrorSolution("请确认数据维护是否正确menuType1;partentId100000000")
.build();
}
return sysMenus;
}
private List<Long> getIdList(Long id,List<Long> idList){
List<SysMenu> sysMenuTwoList = sysMenuRDao.findByProperty("parentId",id);
if(CollectionUtils.isEmpty(sysMenuTwoList)){

@ -6,6 +6,7 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
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.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersion;
@ -69,6 +70,7 @@ public class SysPojoVersionService extends CrudService<SysPojoVersion> implement
String userName = model.getUserName();
Long roleId = model.getRoleId();
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
DdlPackBean packBeanPlan = DdlPackBean.getDdlPackBean();
if (Strings.isNotBlank(userName)){
DdlPreparedPack.getStringEqualPack(userName, "modifyUser", packBean);
}
@ -83,7 +85,10 @@ public class SysPojoVersionService extends CrudService<SysPojoVersion> implement
DdlPreparedPack.timeBuilder(startDate, endDate, "modifyDatetime", true, false, packBean);
List<SysPojoVersion> pojoVersions = pojoVersionRDao.findByHqlWhere(packBean);
List<SysPojoVersionPlan> pojoVersionPlans = pojoVersionPlanRepository.findByHqlWhere(packBean);
DdlPreparedPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(),"isValid",packBeanPlan);
DdlPreparedPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(),"isDeleted",packBeanPlan);
List<SysPojoVersionPlan> pojoVersionPlans = pojoVersionPlanRepository.findByHqlWhere(packBeanPlan);
pojoVersions.stream().parallel().forEach(d -> {
Optional<SysPojoVersionPlan> plan = pojoVersionPlans.stream().filter(p -> d.getPlanId().equals(p.getId())).findFirst();

@ -41,6 +41,9 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.function.Function;
import java.util.stream.Collectors;
import static cn.estsh.i3plus.platform.common.util.CommonConstWords.RESOURCE_PREFIX_MENU;
import static cn.estsh.i3plus.platform.common.util.PlatformConstWords.IMPP_REQUEST_ID;
@ -188,6 +191,14 @@ public class SysRoleService extends CrudService<SysRole> implements ISysRoleServ
}
@Override
public void updateRoleMenuChangeRoleNameRdd(Long roleId, String roleName) {
if (StringUtil.isEmpty(roleId) || StringUtil.isEmpty(roleName)) {
return;
}
refRoleMenuRDao.updateByProperties("roleId",roleId,"roleNameRdd",roleName);
}
@Override
public void refreshSysRoleRef(Long roleId, Integer softType, List<Long> idList, String userName) {
SysRole role = roleRDao.getById(roleId);
ValidatorBean.checkNotNull(role, "不存在的角色信息");
@ -195,76 +206,70 @@ public class SysRoleService extends CrudService<SysRole> implements ISysRoleServ
SysMenu menu = new SysMenu();
menu.setSoftType(softType);
List<SysMenu> menuList = menuService.findAllByBean(menu);
//查询修改前角色对应的菜单
List<SysRefRoleMenu> menus = refRoleMenuRDao.findByProperty(new String[]{"roleId", "softType"}, new Object[]{roleId, softType});
/**
* 2024/7/19 ,softType,
*/
List<SysMenu> menuList = menuService.findByIdList(idList);
Map<Long, SysMenu> menuMap = menuList.stream().collect(Collectors.toMap(SysMenu::getId, Function.identity()));
refRoleMenuRDao.deleteByProperties(new String[]{"roleId", "softType"}, new Object[]{roleId, softType});
if (CollectionUtils.isNotEmpty(idList)) {
List<SysRefRoleMenu> refs = new ArrayList<>();
SysRefRoleMenu ref = null;
for (Long id : idList) {
if (CollectionUtils.isNotEmpty(menuList)) {
for (SysMenu sysMenu : menuList) {
if (sysMenu.getId().equals(id)) {
ref = new SysRefRoleMenu();
ref.setRoleId(role.getId());
ref.setRoleNameRdd(role.getName());
ref.setSoftType(sysMenu.getSoftType());
ref.setMenuNameRdd(sysMenu.getName());
ref.setMenuId(sysMenu.getId());
ref.setMenuTypeRdd(sysMenu.getMenuType());
ConvertBean.serviceModelInitialize(ref, AuthUtil.getSessionUser());
refs.add(ref);
break;
}
}
SysMenu sysMenu = menuMap.get(id);
if (sysMenu != null) {
ref = new SysRefRoleMenu();
ref.setRoleId(role.getId());
ref.setRoleNameRdd(role.getName());
ref.setSoftType(sysMenu.getSoftType());
ref.setMenuNameRdd(sysMenu.getName());
ref.setMenuId(sysMenu.getId());
ref.setMenuTypeRdd(sysMenu.getMenuType());
ConvertBean.serviceModelInitialize(ref, AuthUtil.getSessionUser());
refs.add(ref);
}
}
if (CollectionUtils.isNotEmpty(refs)) {
refRoleMenuRDao.saveAll(refs);
//记录角色权限变更日志
String newAuthority = "";
String delAuthority = "";
ArrayList<Long> menuIds = new ArrayList<>();
menus.stream().forEach(m -> {
menuIds.add(m.getMenuId());
});
List<Long> newAuthorityList = getAddaListThanbList(idList,menuIds);
List<Long> delAuthorityList = getReduceaListThanbList(idList,menuIds);
if (newAuthorityList != null) {
CompletableFuture.runAsync(() -> {
//记录角色权限变更日志
//查询修改前角色对应的菜单
List<SysRefRoleMenu> menus = refRoleMenuRDao.findByProperty(new String[]{"roleId", "softType"}, new Object[]{roleId, softType});
StringBuilder newAuthority = new StringBuilder();
StringBuilder delAuthority = new StringBuilder();
List<Long> menuIds = menus.stream().map(SysRefRoleMenu::getMenuId).collect(Collectors.toList());
List<Long> newAuthorityList = getAddaListThanbList(idList,menuIds);
List<Long> delAuthorityList = getReduceaListThanbList(idList,menuIds);
for (Long id : newAuthorityList) {
String menuTreeName = "";
List<String> newAuthoritys = new ArrayList<>();
getParentName(id, newAuthoritys);
if (newAuthoritys.get(0).length()>0) {
if (!CollectionUtils.isEmpty(newAuthoritys) && !newAuthoritys.get(0).isEmpty()) {
menuTreeName = newAuthoritys.get(0).substring(1);
}
newAuthority += menuTreeName + "\n";
newAuthority.append(menuTreeName).append("\n");
}
}
if (delAuthorityList != null) {
for (Long id : delAuthorityList) {
List<String> delAuthoritys = new ArrayList<>();
String menuTreeName = "";
getParentName(id,delAuthoritys);
if (delAuthoritys.get(0).length()>0) {
getParentName(id, delAuthoritys);
if (!CollectionUtils.isEmpty(delAuthoritys) && !delAuthoritys.get(0).isEmpty()) {
menuTreeName = delAuthoritys.get(0).substring(1);
}
delAuthority += menuTreeName + "\n";
delAuthority.append(menuTreeName).append("\n");
}
}
SysLogRoleMenuChange sysLogRoleMenuChange = new SysLogRoleMenuChange();
sysLogRoleMenuChange.setRoleId(roleId);
sysLogRoleMenuChange.setRoleName(role.getName());
sysLogRoleMenuChange.setNewAuthority(newAuthority);
sysLogRoleMenuChange.setDelAuthority(delAuthority);
insertSysLogRoleMenuChange(sysLogRoleMenuChange);
//更新角色
ConvertBean.serviceModelUpdate(role,AuthUtil.getSessionUser().getUserName());
roleRDao.update(role);
SysLogRoleMenuChange sysLogRoleMenuChange = new SysLogRoleMenuChange();
sysLogRoleMenuChange.setRoleId(roleId);
sysLogRoleMenuChange.setRoleName(role.getName());
sysLogRoleMenuChange.setNewAuthority(newAuthority.toString());
sysLogRoleMenuChange.setDelAuthority(delAuthority.toString());
insertSysLogRoleMenuChange(sysLogRoleMenuChange);
//更新角色
ConvertBean.serviceModelUpdate(role,AuthUtil.getSessionUser().getUserName());
roleRDao.update(role);
});
}
}
}

@ -150,9 +150,11 @@ public class SysUserService implements ISysUserService {
//校验 用户
ResultBean result = passwordUtil.checkSysUserLogin(user);
if (!result.isSuccess()) {
user.setUserLoginPassword(SysUserPasswordUtil.encoder(password));
resultBean = result;
return resultBean;
}
user.setUserLoginPassword(SysUserPasswordUtil.encoder(password));
BaseToken token = getToken(loginName, password, languageCode, loginPlatform);
sessionUser = AuthUtil.login(token);

Loading…
Cancel
Save