【通用】biz模块跟api增加其他模块调用的api接口,权限鉴权可设置数据范围

This commit is contained in:
俞宝山
2024-11-01 20:02:09 +08:00
parent f8ff3686a2
commit 563bdda3fa
4 changed files with 172 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
/*
* 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 vip.xiaonuo.biz.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 yubaoshan
* @date 2024/11/1 18:27:51
**/
public interface BizOrgApi {
/**
* 获取组织树选择器
*
* @author yubaoshan
* @date 2024/11/1 18:27:51
**/
List<Tree<String>> orgTreeSelector();
/**
* 获取组织列表选择器
*
* @author yubaoshan
* @date 2024/11/1 18:27:51
**/
Page<JSONObject> orgListSelector(String parentId);
}

View File

@@ -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 vip.xiaonuo.biz.api;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
/**
* 用户Api
*
* @author yubaoshan
* @date 2024/11/1 18:27:51
**/
public interface BizUserApi {
/**
* 获取用户选择器
*
* @author yubaoshan
* @date 2024/11/1 18:27:51
*/
Page<JSONObject> userSelector(String orgId, String searchKey);
}

View File

@@ -0,0 +1,50 @@
/*
* 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 vip.xiaonuo.biz.modular.org.provider;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.tree.Tree;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import vip.xiaonuo.biz.api.BizOrgApi;
import vip.xiaonuo.biz.modular.org.param.BizOrgSelectorOrgListParam;
import vip.xiaonuo.biz.modular.org.service.BizOrgService;
import java.util.List;
/**
* 组织API接口提供者
*
* @author yubaoshan
* @date 2024/11/1 18:27:51
**/
@Service
public class BizOrgApiProvider implements BizOrgApi {
@Resource
private BizOrgService bizOrgService;
@Override
public List<Tree<String>> orgTreeSelector() {
return bizOrgService.orgTreeSelector();
}
@SuppressWarnings("ALL")
@Override
public Page<JSONObject> orgListSelector(String parentId) {
BizOrgSelectorOrgListParam bizOrgSelectorOrgListParam = new BizOrgSelectorOrgListParam();
bizOrgSelectorOrgListParam.setParentId(parentId);
return BeanUtil.toBean(bizOrgService.orgListSelector(bizOrgSelectorOrgListParam), Page.class);
}
}

View File

@@ -0,0 +1,45 @@
/*
* 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 vip.xiaonuo.biz.modular.user.provider;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import vip.xiaonuo.biz.api.BizUserApi;
import vip.xiaonuo.biz.modular.user.param.BizUserSelectorUserParam;
import vip.xiaonuo.biz.modular.user.service.BizUserService;
/**
* 用户API接口提供者
*
* @author xuyuxiang
* @date 2022/6/20 18:24
**/
@Service
public class BizUserApiProvider implements BizUserApi {
@Resource
private BizUserService bizUserService;
@SuppressWarnings("ALL")
@Override
public Page<JSONObject> userSelector(String orgId, String searchKey) {
BizUserSelectorUserParam bizUserSelectorUserParam = new BizUserSelectorUserParam();
bizUserSelectorUserParam.setOrgId(orgId);
bizUserSelectorUserParam.setSearchKey(searchKey);
return BeanUtil.toBean(bizUserService.userSelector(bizUserSelectorUserParam), Page.class);
}
}