feat: 标准库

This commit is contained in:
super_liu
2021-07-11 15:47:02 +08:00
parent 48933b44dc
commit 43434a68e0
8 changed files with 358 additions and 4 deletions
@@ -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;
/**
* <p>
* Mapper 接口
@@ -13,4 +15,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface TsResourceDao extends BaseMapper<TsResource> {
List<TsResource> queryMenuByDis(TsResource sarMenuEO);
List<TsResource> selectMenuByRole(TsResource sarMenuEO);
}
@@ -91,4 +91,10 @@ public class TsResource extends BaseEntity {
@TableField(exist = false)
private String parentIdsName;
@TableField(exist=false)
private List<String> roleIds;
@TableField(exist=false)
private List<String> childMenuIds;
}
@@ -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<TsResource> {
List<TsResource> selectMenuByRole(TsResource sarMenuEO);
List<String> getParentMenuId(String menuId);
List<String> queryRoleMenuIdList(String sordDivide, String menuId) throws Exception;
/**
* 通过Ids查询menu
* @param menuIds :菜单Ids
@@ -25,6 +30,8 @@ public interface ITsResourceService extends IService<TsResource> {
*/
List<TsResource> getMenuByIds(List<String> menuIds);
List<TsResource> queryMenuByDis(TsResource sarMenuEO);
List<TsResource> getAll(TsResource tsResource);
ResponseMessage<Object> addResource(TsResource tsResource);
@@ -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<TsResourceDao, TsResource
@Autowired
private TsResourceDao dao;
public List<TsResource> selectMenuByRole(TsResource sarMenu) {
List<TsResource> 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<String> queryRoleMenuIdList(String sordDivide, String menuId) throws Exception{
// 根据当前登录人id查出对应角色
TsResource sarMenu = new TsResource();
sarMenu.setSorDivide(sordDivide);
String roleIds = UserUtils.getRoleIds();
String[] roleArr = roleIds.split(",");
List<String> roleIdList = Arrays.asList(roleArr);
sarMenu.setRoleIds(roleIdList);
//角色未配置根节点,手动加入根节点权限
List<TsResource> resultList = queryMenuByDis(sarMenu);
List<TsResource> 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<String> getMenuIds = new ArrayList<>();
if(resultList != null && !resultList.isEmpty()){
for(TsResource menu : resultList){
getMenuIds.add(menu.getId());
}
}
return getMenuIds;
}
public List<TsResource> queryMenuByDis(TsResource sarMenu) {
return dao.queryMenuByDis(sarMenu);
}
public List<String> getParentMenuId (String menuId) {
List<String> parentIds = new ArrayList<>();
if (StringUtils.isNotEmpty(menuId)) {
@@ -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<SarStandMenu> {
private ISarStandMenuService sarStandMenuEOService;
@Autowired
private ISarMenuService sarMenuEOService;
private ITsResourceService sarMenuEOService;
@ApiOperation(value = "|SarStandMenuEO|修改")
@PutMapping("/removeStandInfo")
@@ -61,9 +63,9 @@ public class SarStandMenuController extends BaseController<SarStandMenu> {
List<SarStandMenu> getList = sarStandMenuEOService.selectAllMenuByStandId(menuEO);
if (getList == null || getList.isEmpty()) {
// 查询根节点
SarMenu sarMenuEO = new SarMenu();
TsResource sarMenuEO = new TsResource();
sarMenuEO.setSorDivide(standardsInfoEO.getStandType() + "_STAND");
List<SarMenu> getRootMenu = sarMenuEOService.queryMenuByDis(sarMenuEO);
List<TsResource> getRootMenu = sarMenuEOService.queryMenuByDis(sarMenuEO);
menuEO.setMenuId(getRootMenu.get(0).getId());
menuEO.setId(UUIDUtils.randomUUID20());
menuEO.setValidFlag(0);
@@ -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<SarStandMenuDao, SarSta
private SarStandMenuDao dao;
@Autowired
private ISarMenuService sarMenuEOService;
private ITsResourceService sarMenuEOService;
@Override
public int deleteByMenuId (SarStandMenu sarStandMenuEO){
@@ -1,4 +1,260 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.adc.da.slrs.sarResource.dao.TsResourceDao">
<!-- Result Map-->
<resultMap id="BaseResultMap" type="com.adc.da.slrs.sarResource.entity.TsResource" >
<id column="id" property="id" />
<result column="parent_id" property="parentId" />
<result column="menu_name" property="menuName" />
<result column="sor_divide" property="sorDivide" />
<result column="modify_time" property="modifyTime" />
<result column="creation_time" property="creationTime" />
<result column="valid_flag" property="validFlag" />
<result column="display_seq" property="displaySeq" />
<result column="parent_ids" property="parentIds" />
<result column="remarks" property="remarks" />
</resultMap>
<!-- SAR_MENU table all fields -->
<sql id="Base_Column_List" >
parent_id, menu_name, sor_divide, id, modify_time, creation_time, valid_flag, display_seq, parent_ids, remarks
</sql>
<!-- 查询条件 -->
<sql id="Base_Where_Clause">
where 1=1
<trim suffixOverrides="," >
<if test="parentId != null" >
and parent_id ${parentIdOperator} #{parentId}
</if>
<if test="menuName != null" >
and menu_name ${menuNameOperator} #{menuName}
</if>
<if test="sorDivide != null" >
and sor_divide ${sorDivideOperator} #{sorDivide}
</if>
<if test="id != null" >
and id ${idOperator} #{id}
</if>
<if test="modifyTime != null" >
and modify_time ${modifyTimeOperator} #{modifyTime}
</if>
<if test="modifyTime1 != null" >
and modify_time &gt;= #{modifyTime1}
</if>
<if test="modifyTime2 != null" >
and modify_time &lt;= #{modifyTime2}
</if>
<if test="creationTime != null" >
and creation_time ${creationTimeOperator} #{creationTime}
</if>
<if test="creationTime1 != null" >
and creation_time &gt;= #{creationTime1}
</if>
<if test="creationTime2 != null" >
and creation_time &lt;= #{creationTime2}
</if>
<if test="validFlag != null" >
and valid_flag ${validFlagOperator} #{validFlag}
</if>
<if test="displaySeq != null" >
and display_seq ${displaySeqOperator} #{displaySeq}
</if>
<if test="parentIds != null" >
and parent_ids ${parentIdsOperator} #{parentIds}
</if>
<if test="remarks != null" >
and remarks = #{remarks}
</if>
</trim>
</sql>
<!-- 插入记录 -->
<insert id="insert" parameterType="com.adc.da.slrs.sarResource.entity.TsResource" >
<!-- <selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
SELECT SEQ_SAR_MENU.NEXTVAL FROM DUAL
</selectKey> -->
insert into TS_RESOURCE(<include refid="Base_Column_List" />)
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>
<!-- 动态插入记录 主键是序列 -->
<insert id="insertSelective" parameterType="com.adc.da.slrs.sarResource.entity.TsResource" >
<!-- <selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
SELECT SEQ_SAR_MENU.NEXTVAL FROM DUAL
</selectKey> -->
insert into TS_RESOURCE
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="parentId != null" >parent_id,</if>
<if test="menuName != null" >menu_name,</if>
<if test="sorDivide != null" >sor_divide,</if>
<if test="id != null" >id,</if>
<if test="modifyTime != null" >modify_time,</if>
<if test="creationTime != null" >creation_time,</if>
<if test="validFlag != null" >valid_flag,</if>
<if test="displaySeq != null" >display_seq,</if>
<if test="parentIds != null" >parent_ids,</if>
<if test="remarks != null" >remarks,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="parentId != null" >#{parentId, jdbcType=VARCHAR},</if>
<if test="menuName != null" >#{menuName, jdbcType=VARCHAR},</if>
<if test="sorDivide != null" >#{sorDivide, jdbcType=VARCHAR},</if>
<if test="id != null" >#{id, jdbcType=VARCHAR},</if>
<if test="modifyTime != null" >#{modifyTime, jdbcType=TIMESTAMP},</if>
<if test="creationTime != null" >#{creationTime, jdbcType=TIMESTAMP},</if>
<if test="validFlag != null" >#{validFlag, jdbcType=INTEGER},</if>
<if test="displaySeq != null" >#{displaySeq, jdbcType=INTEGER},</if>
<if test="parentIds != null" >#{parentIds, jdbcType=VARCHAR},</if>
<if test="remarks != null" >#{remarks, jdbcType=VARCHAR},</if>
</trim>
</insert>
<!-- 根据pk,修改记录-->
<update id="updateByPrimaryKey" parameterType="com.adc.da.slrs.sarResource.entity.TsResource" >
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>
<!-- 修改记录,只修改只不为空的字段 -->
<update id="updateByPrimaryKeySelective" parameterType="com.adc.da.slrs.sarResource.entity.TsResource" >
update TS_RESOURCE
<set >
<if test="parentId != null" >
parent_id = #{parentId},
</if>
<if test="menuName != null" >
menu_name = #{menuName},
</if>
<if test="sorDivide != null" >
sor_divide = #{sorDivide},
</if>
<if test="modifyTime != null" >
modify_time = #{modifyTime},
</if>
<if test="creationTime != null" >
creation_time = #{creationTime},
</if>
<if test="validFlag != null" >
valid_flag = #{validFlag},
</if>
<if test="displaySeq != null" >
display_seq = #{displaySeq},
</if>
<if test="parentIds != null" >
parent_ids = #{parentIds},
</if>
<if test="remarks != null" >
remarks = #{remarks},
</if>
</set>
where id = #{id}
</update>
<!-- 根据id查询 SAR_MENU -->
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String">
select <include refid="Base_Column_List" />
from TS_RESOURCE
where id = #{value}
</select>
<!-- 删除记录 -->
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from TS_RESOURCE
where id = #{value}
</delete>
<!-- SAR_MENU 列表总数-->
<select id="queryByCount" resultType="java.lang.Integer" parameterType="com.adc.da.base.page.BasePage">
select count(1) from TS_RESOURCE
<include refid="Base_Where_Clause"/>
</select>
<!-- 查询SAR_MENU列表 -->
<select id="queryByPage" resultMap="BaseResultMap" parameterType="com.adc.da.base.page.BasePage">
select <include refid="Base_Column_List" /> from
(select tmp_tb.* from
(select <include refid="Base_Column_List" /> from TS_RESOURCE
<include refid="Base_Where_Clause"/>
<if test="pager.orderCondition != null and pager.orderCondition != ''" >
${pager.orderCondition}
</if>
) tmp_tb limit ${pager.startIndex-1},${pageSize}) a
</select>
<select id="queryByList" resultMap="BaseResultMap" parameterType="com.adc.da.base.page.BasePage">
select <include refid="Base_Column_List"/> from TS_RESOURCE
<include refid="Base_Where_Clause"/> and valid_flag=0
<if test="pager.orderCondition != null and pager.orderCondition != ''" >
${pager.orderCondition}
</if>
</select>
<select id="queryMenuByPid" resultMap="BaseResultMap" parameterType="com.adc.da.slrs.sarResource.entity.TsResource">
select TS_RESOURCE.* from TS_RESOURCE
where id in
<foreach collection="childMenuIds" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<select id="queryByPidExcpetSelf" resultMap="BaseResultMap" parameterType="com.adc.da.slrs.sarResource.entity.TsResource">
select TS_RESOURCE.* from TS_RESOURCE
where valid_flag=0 and id != #{id}
and id in
<foreach collection="childMenuIds" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<!-- 根据目录类型查询最外一层节点 -->
<select id="queryMenuByDis" resultMap="BaseResultMap" parameterType="com.adc.da.slrs.sarResource.entity.TsResource">
select <include refid="Base_Column_List"/> from TS_RESOURCE
where valid_flag = 0
and (parent_id is null or parent_id='1')
<if test='sorDivide != null and sorDivide != "ALL_STAND"' >
and sor_divide = #{sorDivide}
</if>
<if test='sorDivide != null and sorDivide == "ALL_STAND"' >
and (sor_divide = 'INLAND_STAND' or sor_divide = 'FOREIGN_STAND')
</if>
order by display_seq asc
</select>
<select id="selectMenuByRole" resultMap="BaseResultMap" parameterType="com.adc.da.slrs.sarResource.entity.TsResource">
select <include refid="Base_Column_List"/>
from TS_RESOURCE sm
LEFT JOIN TS_ROLE_SAR_MENU trsm ON sm.ID = trsm.sar_menu_id
where valid_flag = 0
<if test='sorDivide != null and sorDivide != "ALL_STAND"' >
and sor_divide = #{sorDivide}
</if>
<if test='sorDivide != null and sorDivide == "ALL_STAND"' >
and (sor_divide = 'INLAND_STAND' or sor_divide = 'FOREIGN_STAND')
</if>
<if test="roleIds != null" >
and trsm.ROLE_ID in
<foreach collection="roleIds" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
GROUP BY parent_id, menu_name, sor_divide, id, modify_time, creation_time, valid_flag, display_seq, parent_ids, remarks
order by display_seq asc,creation_time DESC
</select>
<select id="queryParentMenuById" resultType="java.lang.String" parameterType="java.lang.String">
select TS_RESOURCE.id
from TS_RESOURCE where valid_flag=0 and parent_id is not null start with id=#{id} connect by prior parent_id=id
</select>
</mapper>