feat: 迁移国内标准法规部分1

This commit is contained in:
super_liu
2021-06-02 21:39:20 +08:00
parent ac33a531ec
commit 4cc558befc
140 changed files with 12514 additions and 58 deletions
@@ -0,0 +1,23 @@
package com.adc.da.slrs.sarMenu.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.adc.da.slrs.sarMenu.entity.SarMenu;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;
import com.adc.da.base.web.BaseController;
/**
* <p>
* 前端控制器
* </p>
*
* @author super_liu
* @since 2021-06-01
*/
@RestController
@Api(description = "|SarMenu|")
@RequestMapping("/sarMenu/sar-menu")
public class SarMenuController extends BaseController<SarMenu> {
}
@@ -0,0 +1,26 @@
package com.adc.da.slrs.sarMenu.dao;
import com.adc.da.slrs.sarMenu.entity.SarMenu;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author super_liu
* @since 2021-06-01
*/
public interface SarMenuDao extends BaseMapper<SarMenu> {
List<SarMenu> queryMenuByDis(SarMenu sarMenuEO);
List<SarMenu> selectMenuByRole(SarMenu sarMenuEO);
List<SarMenu> queryMenuByPid(SarMenu sarMenuEO);
List<SarMenu> queryByPidExcpetSelf(SarMenu sarMenuEO);
}
@@ -0,0 +1,79 @@
package com.adc.da.slrs.sarMenu.entity;
import com.adc.da.base.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Transient;
/**
* <p>
*
* </p>
*
* @author super_liu
* @since 2021-06-01
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="SarMenu对象", description="")
public class SarMenu extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
@TableId("ID")
private String id;
@ApiModelProperty(value = "标准法规划分")
@TableField("SOR_DIVIDE")
private String sorDivide;
@ApiModelProperty(value = "目录名称")
@TableField("MENU_NAME")
private String menuName;
@ApiModelProperty(value = "父级ID")
@TableField("PARENT_ID")
private String parentId;
@ApiModelProperty(value = "父级ID集合")
@TableField("PARENT_IDS")
private String parentIds;
@ApiModelProperty(value = "排序序号")
@TableField("DISPLAY_SEQ")
private Integer displaySeq;
@ApiModelProperty(value = "是否有效")
@TableField("VALID_FLAG")
private Integer validFlag;
@ApiModelProperty(value = "创建时间")
@TableField("CREATION_TIME")
private Date creationTime;
@ApiModelProperty(value = "修改时间")
@TableField("MODIFY_TIME")
private Date modifyTime;
@ApiModelProperty(value = "备注")
@TableField("REMARKS")
private String remarks;
@TableField(exist=false)
private List<String> roleIds;
@TableField(exist=false)
private List<String> childMenuIds;
}
@@ -0,0 +1,23 @@
package com.adc.da.slrs.sarMenu.service;
import com.adc.da.slrs.sarMenu.entity.SarMenu;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author super_liu
* @since 2021-06-01
*/
public interface ISarMenuService extends IService<SarMenu> {
List<String> getParentMenuId(String menuId);
List<String> queryRoleMenuIdList(String sordDivide, String menuId) throws Exception;
List<String> getChildMenuList(String menuId);
}
@@ -0,0 +1,155 @@
package com.adc.da.slrs.sarMenu.service.impl;
import com.adc.da.login.util.UserUtils;
import com.adc.da.slrs.sarMenu.entity.SarMenu;
import com.adc.da.slrs.sarMenu.dao.SarMenuDao;
import com.adc.da.slrs.sarMenu.service.ISarMenuService;
import com.adc.da.utils.treetool.Tree;
import com.adc.da.utils.treetool.TreeNode;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author super_liu
* @since 2021-06-01
*/
@Service
public class SarMenuServiceImpl extends ServiceImpl<SarMenuDao, SarMenu> implements ISarMenuService {
@Autowired
private SarMenuDao dao;
public List<String> getParentMenuId (String menuId) {
List<String> parentIds = new ArrayList<>();
if (StringUtils.isNotEmpty(menuId)) {
List<SarMenu> sarMenuEOList = dao.selectList(new QueryWrapper<>());
Tree tree = new Tree(sarMenuEOList);
TreeNode treeNode = tree.getTreeNode(menuId);
while (treeNode.getParent() != null) {
parentIds.add(treeNode.getParent().getNodeId());
treeNode = treeNode.getParent();
}
}
return parentIds;
}
public List<String> queryRoleMenuIdList(String sordDivide, String menuId) throws Exception{
// 根据当前登录人id查出对应角色
SarMenu sarMenu = new SarMenu();
sarMenu.setSorDivide(sordDivide);
String roleIds = UserUtils.getRoleIds();
String[] roleArr = roleIds.split(",");
List<String> roleIdList = Arrays.asList(roleArr);
sarMenu.setRoleIds(roleIdList);
//角色未配置根节点,手动加入根节点权限
List<SarMenu> resultList = queryMenuByDis(sarMenu);
List<SarMenu> list = selectMenuByRole(sarMenu);
if(!"BUSINESS_STAND".equals(sarMenu.getSorDivide())){
resultList.addAll(list);
} else {
// 如果是企标,并且两个根节点都有权限,最先只查已分配下的节点
if (resultList != null && resultList.size() == 2) {
SarMenu menu1 = resultList.get(0);
SarMenu 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(SarMenu menu : resultList){
getMenuIds.add(menu.getId());
}
}
return getMenuIds;
}
public List<SarMenu> queryMenuByDis(SarMenu sarMenu) {
return dao.queryMenuByDis(sarMenu);
}
public List<SarMenu> selectMenuByRole(SarMenu sarMenu) {
List<SarMenu> list = dao.selectMenuByRole(sarMenu);
if (list == null) {
list = new ArrayList<>();
}
SarMenu collectMenu = new SarMenu();
collectMenu.setId("wdsc");
collectMenu.setSorDivide(sarMenu.getSorDivide());
collectMenu.setMenuName("我的收藏");
collectMenu.setParentId("1");
collectMenu.setDisplaySeq(9999);
list.add(collectMenu);
SarMenu labeltMenu = new SarMenu();
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> queryRoleMenuIdListForLaws(String sordDivide) throws Exception{
// 根据当前登录人id查出对应角色
SarMenu sarMenu = new SarMenu();
sarMenu.setSorDivide(sordDivide);
String roleIds = UserUtils.getRoleIds();
String[] roleArr = roleIds.split(",");
List<String> roleIdList = Arrays.asList(roleArr);
sarMenu.setRoleIds(roleIdList);
//角色未配置根节点,手动加入根节点权限
// List<SarMenu> resultList = queryMenuByDis(SarMenu);
List<SarMenu> list = selectMenuByRole(sarMenu);
// resultList.addAll(list);
List<String> getMenuIds = new ArrayList<>();
if(list != null && !list.isEmpty()){
for(SarMenu menu : list){
getMenuIds.add(menu.getId());
}
}
return getMenuIds;
}
public List<String> getChildMenuList (String menuId) {
List<String> menuIds = new ArrayList<>();
if (StringUtils.isNotEmpty(menuId)) {
List<SarMenu> SarMenuList = dao.selectList(new QueryWrapper<>());
Tree tree = new Tree(SarMenuList);
TreeNode treeNode = tree.getTreeNode(menuId);
if (treeNode != null) {
menuIds.add(treeNode.getNodeId());
for (TreeNode node : treeNode.getAllChildren()) {
menuIds.add(node.getNodeId());
}
}
}
return menuIds;
}
}