init: Initialize the basic project.
This commit is contained in:
1
nl-plugin-api/nl-plugin-sys-api/README.md
Normal file
1
nl-plugin-api/nl-plugin-sys-api/README.md
Normal file
@@ -0,0 +1 @@
|
||||
# 系统功能插件api接口
|
||||
24
nl-plugin-api/nl-plugin-sys-api/pom.xml
Normal file
24
nl-plugin-api/nl-plugin-sys-api/pom.xml
Normal file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>org.nl</groupId>
|
||||
<artifactId>nl-plugin-api</artifactId>
|
||||
<version>3.0.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>nl-plugin-sys-api</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<description>系统功能插件api接口</description>
|
||||
|
||||
<dependencies>
|
||||
<!-- 每个插件接口都要引入common -->
|
||||
<dependency>
|
||||
<groupId>org.nl</groupId>
|
||||
<artifactId>nl-common</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@@ -0,0 +1 @@
|
||||
#系统API接口
|
||||
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||
*
|
||||
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
|
||||
*
|
||||
* 1.请不要删除和修改根目录下的LICENSE文件。
|
||||
* 2.请不要删除和修改Snowy源码头部的版权声明。
|
||||
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
|
||||
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
|
||||
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||
*/
|
||||
package org.nl.sys.api;
|
||||
|
||||
/**
|
||||
* 按钮API
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/11/1 13:45
|
||||
**/
|
||||
public interface SysButtonApi {
|
||||
|
||||
/**
|
||||
* 代码生成按钮插入
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/11/1 13:48
|
||||
**/
|
||||
void addForGenButton(String menuId, String className, String functionName);
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||
*
|
||||
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
|
||||
*
|
||||
* 1.请不要删除和修改根目录下的LICENSE文件。
|
||||
* 2.请不要删除和修改Snowy源码头部的版权声明。
|
||||
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
|
||||
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
|
||||
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||
*/
|
||||
package org.nl.sys.api;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.nl.sys.core.GroupUserVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户组Api
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/6 11:33
|
||||
**/
|
||||
public interface SysGroupApi {
|
||||
|
||||
/**
|
||||
* 获取用户组拥有人员
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/5/13 21:00
|
||||
*/
|
||||
List<String> ownUser(String groupId);
|
||||
|
||||
/**
|
||||
* 给用户组授权用户
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/8/1 18:28
|
||||
*/
|
||||
void grantUser(String groupId, List<String> userIdList);
|
||||
|
||||
/**
|
||||
* 获取用户组选择器
|
||||
*
|
||||
* @author yubaoshan
|
||||
* @date 2025/1/12 02:36
|
||||
*/
|
||||
Page<JSONObject> groupSelector(String searchKey, int current, int size);
|
||||
|
||||
|
||||
/**
|
||||
* 获取用户组下的用户
|
||||
* @param groupId
|
||||
* @return List<GroupUserVo>
|
||||
*/
|
||||
List<GroupUserVo> getAllUserInfoByGroupId(String groupId);
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||
*
|
||||
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
|
||||
*
|
||||
* 1.请不要删除和修改根目录下的LICENSE文件。
|
||||
* 2.请不要删除和修改Snowy源码头部的版权声明。
|
||||
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
|
||||
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
|
||||
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||
*/
|
||||
package org.nl.sys.api;
|
||||
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 菜单API
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/11/1 13:44
|
||||
**/
|
||||
public interface SysMenuApi {
|
||||
|
||||
/**
|
||||
* 代码生成菜单插入
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/11/1 13:48
|
||||
**/
|
||||
String addForGenMenu(String parentId, String busName, String module, String title, String path);
|
||||
|
||||
/**
|
||||
* 获取所有菜单树包括未授权的
|
||||
*
|
||||
* @author yubaoshan
|
||||
* @date 2024/9/6 01:24
|
||||
**/
|
||||
List<Tree<String>> menuTreeSelector(String module);
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||
*
|
||||
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
|
||||
*
|
||||
* 1.请不要删除和修改根目录下的LICENSE文件。
|
||||
* 2.请不要删除和修改Snowy源码头部的版权声明。
|
||||
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
|
||||
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
|
||||
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||
*/
|
||||
package org.nl.sys.api;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 模块API
|
||||
*
|
||||
* @author yubaoshan
|
||||
* @date 2024/9/6 01:24
|
||||
**/
|
||||
public interface SysModuleApi {
|
||||
|
||||
/**
|
||||
* 获取所有模块
|
||||
*
|
||||
* @author yubaoshan
|
||||
* @date 2024/9/6 01:24
|
||||
**/
|
||||
List<JSONObject> moduleSelector();
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||
*
|
||||
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
|
||||
*
|
||||
* 1.请不要删除和修改根目录下的LICENSE文件。
|
||||
* 2.请不要删除和修改Snowy源码头部的版权声明。
|
||||
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
|
||||
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
|
||||
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||
*/
|
||||
package org.nl.sys.api;
|
||||
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 组织API
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/6 11:35
|
||||
**/
|
||||
public interface SysOrgApi {
|
||||
|
||||
/**
|
||||
* 根据id获取名称
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/8/4 10:12
|
||||
**/
|
||||
String getNameById(String orgId);
|
||||
|
||||
/**
|
||||
* 根据组织id获取部门主管id
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/6 14:50
|
||||
**/
|
||||
String getSupervisorIdByOrgId(String orgId);
|
||||
|
||||
/**
|
||||
* 获取组织树选择器
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/7/22 14:46
|
||||
**/
|
||||
List<Tree<String>> orgTreeSelector();
|
||||
|
||||
/**
|
||||
* 获取组织列表选择器
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/7/22 14:45
|
||||
**/
|
||||
Page<JSONObject> orgListSelector(String parentId);
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||
*
|
||||
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
|
||||
*
|
||||
* 1.请不要删除和修改根目录下的LICENSE文件。
|
||||
* 2.请不要删除和修改Snowy源码头部的版权声明。
|
||||
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
|
||||
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
|
||||
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||
*/
|
||||
package org.nl.sys.api;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
||||
/**
|
||||
* 职位API
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/6 11:35
|
||||
**/
|
||||
public interface SysPositionApi {
|
||||
|
||||
/**
|
||||
* 根据id获取名称
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/8/4 10:13
|
||||
**/
|
||||
String getNameById(String positionId);
|
||||
|
||||
/**
|
||||
* 获取职位选择器
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/7/22 14:47
|
||||
**/
|
||||
Page<JSONObject> positionSelector(String orgId, String searchKey);
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||
*
|
||||
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
|
||||
*
|
||||
* 1.请不要删除和修改根目录下的LICENSE文件。
|
||||
* 2.请不要删除和修改Snowy源码头部的版权声明。
|
||||
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
|
||||
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
|
||||
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||
*/
|
||||
package org.nl.sys.api;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 关系API
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/6 11:41
|
||||
**/
|
||||
public interface SysRelationApi {
|
||||
|
||||
/**
|
||||
* 根据角色id集合获取角色下用户id集合
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/6 11:43
|
||||
**/
|
||||
List<String> getUserIdListByRoleIdList(List<String> roleIdList);
|
||||
|
||||
/**
|
||||
* 根据用户组id集合获取用户组下用户id集合
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/6 11:43
|
||||
**/
|
||||
List<String> getUserIdListByGroupIdList(List<String> groupIdList);
|
||||
|
||||
/**
|
||||
* 根据移动端菜单Id集合移除角色和移动端菜单关系
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2023/1/31 9:54
|
||||
**/
|
||||
void removeRoleHasMobileMenuRelation(List<String> targetIdList);
|
||||
|
||||
/**
|
||||
* 清除对应的角色与移动端菜单信息中的【授权的移动端按钮信息】
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2023/1/31 9:54
|
||||
**/
|
||||
void removeRoleHasMobileButtonRelation(List<String> targetIdList, List<String> buttonIdList);
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||
*
|
||||
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
|
||||
*
|
||||
* 1.请不要删除和修改根目录下的LICENSE文件。
|
||||
* 2.请不要删除和修改Snowy源码头部的版权声明。
|
||||
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
|
||||
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
|
||||
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||
*/
|
||||
package org.nl.sys.api;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 角色API
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/6 11:36
|
||||
**/
|
||||
public interface SysRoleApi {
|
||||
|
||||
/**
|
||||
* 判断组织下是否存在角色
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/8/2 11:16
|
||||
*/
|
||||
boolean orgHasRole(List<String> orgIdList);
|
||||
|
||||
/**
|
||||
* 获取角色选择器
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/7/22 14:49
|
||||
**/
|
||||
Page<JSONObject> roleSelector(String orgId, String category, String searchKey, List<String> dataScopeList, boolean excludeSuperAdmin);
|
||||
|
||||
/**
|
||||
* 代码生成菜单按钮授权
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/11/1 15:58
|
||||
**/
|
||||
void grantForGenMenuAndButton(String menuId);
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
/*
|
||||
* Copyright [2022] [https://www.xiaonuo.vip]
|
||||
*
|
||||
* Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
|
||||
*
|
||||
* 1.请不要删除和修改根目录下的LICENSE文件。
|
||||
* 2.请不要删除和修改Snowy源码头部的版权声明。
|
||||
* 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
|
||||
* 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
||||
* 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
|
||||
* 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
||||
*/
|
||||
package org.nl.sys.api;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户Api
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/6 11:33
|
||||
**/
|
||||
public interface SysUserApi {
|
||||
|
||||
/**
|
||||
* 根据用户id获取用户对象,没有则返回null
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/20 18:19
|
||||
**/
|
||||
JSONObject getUserByIdWithoutException(String userId);
|
||||
|
||||
/**
|
||||
* 根据用户id获取用户对象列表,没有的则为空,都没有则返回空集合
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/20 18:19
|
||||
**/
|
||||
List<JSONObject> getUserListByIdListWithoutException(List<String> userIdList);
|
||||
|
||||
/**
|
||||
* 根据用户id获取用户对象,没有则抛出异常
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/20 18:19
|
||||
**/
|
||||
JSONObject getUserByIdWithException(String userId);
|
||||
|
||||
/**
|
||||
* 根据用户id获取用户对象列表,只要有一个没有则抛出异常
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/20 18:19
|
||||
**/
|
||||
List<JSONObject> getUserListByIdWithException(List<String> userIdList);
|
||||
|
||||
/**
|
||||
* 获取用户拥有角色
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/5/13 21:00
|
||||
*/
|
||||
List<String> ownRole(String userId);
|
||||
|
||||
/**
|
||||
* 给用户授权角色
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/8/1 18:28
|
||||
*/
|
||||
void grantRole(String userId, List<String> roleIdList);
|
||||
|
||||
/**
|
||||
* 根据组织id集合获取组织下用户id集合(含兼职该机构的人)
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/6 11:40
|
||||
**/
|
||||
List<String> getUserIdListByOrgIdList(List<String> orgIdList);
|
||||
|
||||
/**
|
||||
* 根据职位id集合获取职位下用户id集合(含兼职该职位的人)
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/6 11:44
|
||||
**/
|
||||
List<String> getUserIdListByPositionIdList(List<String> positionIdList);
|
||||
|
||||
/**
|
||||
* 根据用户id和组织id和主管层级获取上级主管id
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/6 14:50
|
||||
**/
|
||||
JSONObject getSupervisorIdBySupervisorLevel(List<String> userIdList, String userId, String orgId, String supervisorLevel);
|
||||
|
||||
/**
|
||||
* 根据用户id和组织id和终点主管层级获取上级主管id集合
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/6 14:50
|
||||
**/
|
||||
List<String> getMulSupervisorIdListByEndLevel(String userId, String orgId, String endLevel);
|
||||
|
||||
/**
|
||||
* 获取用户选择器
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/4/24 20:08
|
||||
*/
|
||||
Page<JSONObject> userSelector(String orgId, String searchKey);
|
||||
|
||||
/**
|
||||
* 获取用户列表(排除当前用户)
|
||||
*
|
||||
* @author chengchuanyao
|
||||
* @date 2024/7/19 9:54
|
||||
*/
|
||||
List<JSONObject> listUserWithoutCurrent();
|
||||
|
||||
/**
|
||||
* 获取用户的职位列表
|
||||
*
|
||||
* @author xuyuxiang
|
||||
* @date 2022/6/20 18:19
|
||||
**/
|
||||
List<JSONObject> getPositionListByUserId(String userId);
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package org.nl.sys.core;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 组下用户
|
||||
* @Author: lyd
|
||||
* @Date: 2025/11/11
|
||||
*/
|
||||
@Data
|
||||
public class GroupUserVo {
|
||||
|
||||
private String userId;
|
||||
|
||||
private String name;
|
||||
}
|
||||
Reference in New Issue
Block a user