From 43434a68e073f9e6a078549da17020d44c4d44d0 Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Sun, 11 Jul 2021 15:47:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=A0=87=E5=87=86=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ActSarItemsEOService.java | 1 + .../slrs/sarResource/dao/TsResourceDao.java | 6 + .../slrs/sarResource/entity/TsResource.java | 6 + .../service/ITsResourceService.java | 7 + .../service/impl/TsResourceServiceImpl.java | 75 +++++ .../controller/SarStandMenuController.java | 8 +- .../service/impl/SarStandMenuServiceImpl.java | 3 +- .../mapper/sarResource/TsResourceMapper.xml | 256 ++++++++++++++++++ 8 files changed, 358 insertions(+), 4 deletions(-) diff --git a/adc-da-activiti/src/main/java/com/adc/da/workFlow/service/ActSarItemsEOService.java b/adc-da-activiti/src/main/java/com/adc/da/workFlow/service/ActSarItemsEOService.java index bbf82554..a724e332 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/workFlow/service/ActSarItemsEOService.java +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/service/ActSarItemsEOService.java @@ -1068,6 +1068,7 @@ public class ActSarItemsEOService { } break; case "standType": sarStandardsInfoEO.setStandType(valueStr); break; + case "standSystem": sarStandardsInfoEO.setStandSystem(valueStr); break; case "standYear": sarStandardsInfoEO.setStandYear(valueStr); break; case "standNature": sarStandardsInfoEO.setStandNature(valueStr); break; case "standEnName": sarStandardsInfoEO.setStandEnName(valueStr); break; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/dao/TsResourceDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/dao/TsResourceDao.java index be0671ec..335a7986 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/dao/TsResourceDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/dao/TsResourceDao.java @@ -3,6 +3,8 @@ package com.adc.da.slrs.sarResource.dao; import com.adc.da.slrs.sarResource.entity.TsResource; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; + /** *

* Mapper 接口 @@ -13,4 +15,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface TsResourceDao extends BaseMapper { + List queryMenuByDis(TsResource sarMenuEO); + + List selectMenuByRole(TsResource sarMenuEO); + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/entity/TsResource.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/entity/TsResource.java index c94365c1..39e2f196 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/entity/TsResource.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/entity/TsResource.java @@ -91,4 +91,10 @@ public class TsResource extends BaseEntity { @TableField(exist = false) private String parentIdsName; + @TableField(exist=false) + private List roleIds; + + @TableField(exist=false) + private List childMenuIds; + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/ITsResourceService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/ITsResourceService.java index 35feb558..e66ec54c 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/ITsResourceService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/ITsResourceService.java @@ -1,6 +1,7 @@ package com.adc.da.slrs.sarResource.service; import com.adc.da.http.ResponseMessage; +import com.adc.da.slrs.sarMenu.entity.SarMenu; import com.adc.da.slrs.sarResource.entity.TsResource; import com.baomidou.mybatisplus.extension.service.IService; @@ -16,8 +17,12 @@ import java.util.List; */ public interface ITsResourceService extends IService { + List selectMenuByRole(TsResource sarMenuEO); + List getParentMenuId(String menuId); + List queryRoleMenuIdList(String sordDivide, String menuId) throws Exception; + /** * 通过Ids查询menu * @param menuIds :菜单Ids @@ -25,6 +30,8 @@ public interface ITsResourceService extends IService { */ List getMenuByIds(List menuIds); + List queryMenuByDis(TsResource sarMenuEO); + List getAll(TsResource tsResource); ResponseMessage addResource(TsResource tsResource); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/impl/TsResourceServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/impl/TsResourceServiceImpl.java index 06a26365..3713fbf3 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/impl/TsResourceServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/impl/TsResourceServiceImpl.java @@ -3,6 +3,7 @@ package com.adc.da.slrs.sarResource.service.impl; import com.adc.da.http.ResponseMessage; import com.adc.da.http.Result; +import com.adc.da.login.util.UserUtils; import com.adc.da.slrs.sarResource.dao.TsResourceDao; import com.adc.da.slrs.sarResource.entity.TsResource; import com.adc.da.slrs.sarResource.service.ITsResourceService; @@ -15,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -30,6 +32,79 @@ public class TsResourceServiceImpl extends ServiceImpl selectMenuByRole(TsResource sarMenu) { + List list = dao.selectMenuByRole(sarMenu); + if (list == null) { + list = new ArrayList<>(); + } + TsResource collectMenu = new TsResource(); + collectMenu.setId("wdsc"); + collectMenu.setSorDivide(sarMenu.getSorDivide()); + collectMenu.setMenuName("我的收藏"); + collectMenu.setParentId("1"); + collectMenu.setDisplaySeq(9999); + list.add(collectMenu); + TsResource labeltMenu = new TsResource(); + labeltMenu.setId("gxhbq"); + labeltMenu.setSorDivide(sarMenu.getSorDivide()); + labeltMenu.setMenuName("个性化标签"); + labeltMenu.setParentId("1"); + labeltMenu.setDisplaySeq(10000); + if(!"BUSINESS_STAND".equals(sarMenu.getSorDivide())) { + list.add(labeltMenu); + } + return list; + } + + public List queryRoleMenuIdList(String sordDivide, String menuId) throws Exception{ + // 根据当前登录人id查出对应角色 + TsResource sarMenu = new TsResource(); + sarMenu.setSorDivide(sordDivide); + String roleIds = UserUtils.getRoleIds(); + String[] roleArr = roleIds.split(","); + List roleIdList = Arrays.asList(roleArr); + sarMenu.setRoleIds(roleIdList); + //角色未配置根节点,手动加入根节点权限 + List resultList = queryMenuByDis(sarMenu); + List list = selectMenuByRole(sarMenu); + if(!"BUSINESS_STAND".equals(sarMenu.getSorDivide())){ + resultList.addAll(list); + } else { + // 如果是企标,并且两个根节点都有权限,最先只查已分配下的节点 + if (resultList != null && resultList.size() == 2) { + TsResource menu1 = resultList.get(0); + TsResource menu2 = resultList.get(1); + if (list != null && list.size()>1) { + int menu1Index = -1; + int menu2Index = -1; + for (int i = 0;i < list.size();i++) { + if (list.get(i).getId().equals(menu1.getId())) { + menu1Index = i; + } else if (list.get(i).getId().equals(menu2.getId())) { + menu2Index = i; + } + } + if (menu1Index>0 && menu2Index>0 && StringUtils.isEmpty(menuId)) { + list.remove(menu2Index); + } + } + } + resultList = list; + } + List getMenuIds = new ArrayList<>(); + if(resultList != null && !resultList.isEmpty()){ + for(TsResource menu : resultList){ + getMenuIds.add(menu.getId()); + } + } + return getMenuIds; + } + + public List queryMenuByDis(TsResource sarMenu) { + return dao.queryMenuByDis(sarMenu); + } + + public List getParentMenuId (String menuId) { List parentIds = new ArrayList<>(); if (StringUtils.isNotEmpty(menuId)) { diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandMenu/controller/SarStandMenuController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandMenu/controller/SarStandMenuController.java index 93f94b8e..efa376f0 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandMenu/controller/SarStandMenuController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandMenu/controller/SarStandMenuController.java @@ -5,6 +5,8 @@ import com.adc.da.http.ResponseMessage; import com.adc.da.http.Result; import com.adc.da.slrs.sarMenu.entity.SarMenu; import com.adc.da.slrs.sarMenu.service.ISarMenuService; +import com.adc.da.slrs.sarResource.entity.TsResource; +import com.adc.da.slrs.sarResource.service.ITsResourceService; import com.adc.da.slrs.sarStandMenu.service.ISarStandMenuService; import com.adc.da.util.UUIDUtils; import io.swagger.annotations.ApiOperation; @@ -37,7 +39,7 @@ public class SarStandMenuController extends BaseController { private ISarStandMenuService sarStandMenuEOService; @Autowired - private ISarMenuService sarMenuEOService; + private ITsResourceService sarMenuEOService; @ApiOperation(value = "|SarStandMenuEO|修改") @PutMapping("/removeStandInfo") @@ -61,9 +63,9 @@ public class SarStandMenuController extends BaseController { List getList = sarStandMenuEOService.selectAllMenuByStandId(menuEO); if (getList == null || getList.isEmpty()) { // 查询根节点 - SarMenu sarMenuEO = new SarMenu(); + TsResource sarMenuEO = new TsResource(); sarMenuEO.setSorDivide(standardsInfoEO.getStandType() + "_STAND"); - List getRootMenu = sarMenuEOService.queryMenuByDis(sarMenuEO); + List getRootMenu = sarMenuEOService.queryMenuByDis(sarMenuEO); menuEO.setMenuId(getRootMenu.get(0).getId()); menuEO.setId(UUIDUtils.randomUUID20()); menuEO.setValidFlag(0); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandMenu/service/impl/SarStandMenuServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandMenu/service/impl/SarStandMenuServiceImpl.java index e05feb25..889b796e 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandMenu/service/impl/SarStandMenuServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandMenu/service/impl/SarStandMenuServiceImpl.java @@ -1,6 +1,7 @@ package com.adc.da.slrs.sarStandMenu.service.impl; import com.adc.da.slrs.sarMenu.service.ISarMenuService; +import com.adc.da.slrs.sarResource.service.ITsResourceService; import com.adc.da.slrs.sarStandMenu.entity.SarStandMenu; import com.adc.da.slrs.sarStandMenu.dao.SarStandMenuDao; import com.adc.da.slrs.sarStandMenu.service.ISarStandMenuService; @@ -25,7 +26,7 @@ public class SarStandMenuServiceImpl extends ServiceImpl + + + + + + + + + + + + + + + + + parent_id, menu_name, sor_divide, id, modify_time, creation_time, valid_flag, display_seq, parent_ids, remarks + + + + + where 1=1 + + + and parent_id ${parentIdOperator} #{parentId} + + + and menu_name ${menuNameOperator} #{menuName} + + + and sor_divide ${sorDivideOperator} #{sorDivide} + + + and id ${idOperator} #{id} + + + and modify_time ${modifyTimeOperator} #{modifyTime} + + + and modify_time >= #{modifyTime1} + + + and modify_time <= #{modifyTime2} + + + and creation_time ${creationTimeOperator} #{creationTime} + + + and creation_time >= #{creationTime1} + + + and creation_time <= #{creationTime2} + + + and valid_flag ${validFlagOperator} #{validFlag} + + + and display_seq ${displaySeqOperator} #{displaySeq} + + + and parent_ids ${parentIdsOperator} #{parentIds} + + + and remarks = #{remarks} + + + + + + + + insert into TS_RESOURCE() + values (#{parentId, jdbcType=VARCHAR}, #{menuName, jdbcType=VARCHAR}, #{sorDivide, jdbcType=VARCHAR}, #{id, jdbcType=VARCHAR}, #{modifyTime, jdbcType=TIMESTAMP}, #{creationTime, jdbcType=TIMESTAMP}, #{validFlag, jdbcType=INTEGER}, #{displaySeq, jdbcType=INTEGER}, #{parentIds, jdbcType=VARCHAR},#{remarks, jdbcType=VARCHAR}) + + + + + + insert into TS_RESOURCE + + parent_id, + menu_name, + sor_divide, + id, + modify_time, + creation_time, + valid_flag, + display_seq, + parent_ids, + remarks, + + + #{parentId, jdbcType=VARCHAR}, + #{menuName, jdbcType=VARCHAR}, + #{sorDivide, jdbcType=VARCHAR}, + #{id, jdbcType=VARCHAR}, + #{modifyTime, jdbcType=TIMESTAMP}, + #{creationTime, jdbcType=TIMESTAMP}, + #{validFlag, jdbcType=INTEGER}, + #{displaySeq, jdbcType=INTEGER}, + #{parentIds, jdbcType=VARCHAR}, + #{remarks, jdbcType=VARCHAR}, + + + + + + update TS_RESOURCE + set parent_id = #{parentId}, + menu_name = #{menuName}, + sor_divide = #{sorDivide}, + modify_time = #{modifyTime}, + creation_time = #{creationTime}, + valid_flag = #{validFlag}, + display_seq = #{displaySeq}, + parent_ids = #{parentIds} + remarks = #{remarks} + where id = #{id} + + + + + update TS_RESOURCE + + + parent_id = #{parentId}, + + + menu_name = #{menuName}, + + + sor_divide = #{sorDivide}, + + + modify_time = #{modifyTime}, + + + creation_time = #{creationTime}, + + + valid_flag = #{validFlag}, + + + display_seq = #{displaySeq}, + + + parent_ids = #{parentIds}, + + + remarks = #{remarks}, + + + where id = #{id} + + + + + + + + delete from TS_RESOURCE + where id = #{value} + + + + + + + + + + + + + + + + + + + + +