This commit is contained in:
淋雨一直走YH
2023-09-28 15:38:29 +08:00
commit 7bc57c75dc
1480 changed files with 144393 additions and 0 deletions

View File

@@ -0,0 +1,124 @@
<?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>mjkf.xinke</groupId>
<artifactId>mjkf-xinke-plugin-api</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>mjkf-xinke-plugin-dev-api</artifactId>
<packaging>jar</packaging>
<description>开发工具插件api接口</description>
<dependencies>
<!-- 每个插件接口都要引入common -->
<dependency>
<groupId>mjkf.xinke</groupId>
<artifactId>mjkf-xinke-common</artifactId>
</dependency>
<!--腾讯云上传文件客户端-->
<dependency>
<groupId>com.qcloud</groupId>
<artifactId>cos_api</artifactId>
<exclusions>
<exclusion>
<artifactId>tencentcloud-sdk-java-common</artifactId>
<groupId>com.tencentcloudapi</groupId>
</exclusion>
<exclusion>
<artifactId>joda-time</artifactId>
<groupId>joda-time</groupId>
</exclusion>
</exclusions>
</dependency>
<!--阿里云上传文件客户端-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<exclusions>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
<exclusion>
<groupId>org.codehaus.jettison</groupId>
<artifactId>jettison</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- jettison -->
<dependency>
<groupId>org.codehaus.jettison</groupId>
<artifactId>jettison</artifactId>
</dependency>
<!--minio上传文件客户端-->
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
</dependency>
<!--java邮件发送-->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
</dependency>
<!--阿里云邮件发送-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dm</artifactId>
</dependency>
<!-- 腾讯云邮件发送 -->
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java-ses</artifactId>
<exclusions>
<exclusion>
<artifactId>okio-jvm</artifactId>
<groupId>com.squareup.okio</groupId>
</exclusion>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
<!--阿里云短信发送-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20170525</artifactId>
<exclusions>
<exclusion>
<artifactId>org.jacoco.agent</artifactId>
<groupId>org.jacoco</groupId>
</exclusion>
<exclusion>
<artifactId>jaxb-impl</artifactId>
<groupId>com.sun.xml.bind</groupId>
</exclusion>
</exclusions>
</dependency>
<!--腾讯云短信发送-->
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java-sms</artifactId>
</dependency>
<!--系统硬件信息-->
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,27 @@
package mjkf.xinke.dev.api;
/**
* 开发工具模块综合API
*
*
* @date 2022/9/26 14:24
**/
public interface DevApi {
/**
* 初始化ID类型的租户开发工具模块数据
*
*
* @date 2022/9/26 14:25
**/
void initTenDataForCategoryId(String tenId, String tenName);
/**
* 删除ID类型的租户开发工具模块数据
*
*
* @date 2022/9/26 14:25
**/
void removeTenDataForCategoryId(String tenId);
}

View File

@@ -0,0 +1,19 @@
package mjkf.xinke.dev.api;
/**
* 配置APi接口
*
*
* @date 2022/6/17 10:37
**/
public interface DevConfigApi {
/**
* 根据键获取值
*
*
* @date 2022/6/17 11:11
**/
String getValueByKey(String key);
}

View File

@@ -0,0 +1,23 @@
package mjkf.xinke.dev.api;
import cn.hutool.json.JSONObject;
import java.util.List;
/**
* 动态字段API
*
*
* @date 2022/9/2 15:58
*/
public interface DevDfcApi {
/**
* 获取动态字段配置
*
*
* @date 2022/7/22 14:47
**/
List<JSONObject> getTableFieldList(String dbsId, String tableName);
}

View File

@@ -0,0 +1,11 @@
package mjkf.xinke.dev.api;
/**
* 字典API
*
*
* @date 2022/9/2 15:58
*/
public interface DevDictApi {
}

View File

@@ -0,0 +1,131 @@
package mjkf.xinke.dev.api;
import cn.hutool.json.JSONObject;
import java.io.File;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
/**
* 邮件API接口
*
*
* @date 2022/6/22 15:21
**/
public interface DevEmailApi {
/* =========本地邮件========= */
/**
* 发送纯文本邮件
*
* @param tos 收件人邮箱,逗号拼接
* @param subject 邮件主题
* @param content 邮件内容
* @param files 附件列表
*
* @date 2022/2/7 22:29
*/
void sendTextEmailLocal(String tos, String subject, String content, List<File> files);
/**
* 发送HTML邮件
*
* @param tos 收件人邮箱,逗号拼接
* @param subject 邮件主题
* @param content 邮件内容
* @param imageMap 图片与占位符占位符格式为cid:$IMAGE_PLACEHOLDER
* @param files 附件列表
*
* @date 2022/2/7 22:29
*/
void sendHtmlEmailLocal(String tos, String subject, String content, Map<String, InputStream> imageMap, List<File> files);
/* =========阿里云邮件========= */
/**
* 发送纯文本邮件不使用模板频率限制100 QPS
*
* @param from 管理控制台中配置的发信地址,必传且必须正确
* @param user 发信人昵称长度小于15个字符可不传
* @param tos 目标地址,多个 email 地址可以用逗号分隔最多100个地址必传且必须正确
* @param subject 邮件主题,必传
* @param content 邮件 txt 正文限制28K必传
*
* @date 2022/2/23 14:24
**/
void sendTextEmailAliyun(String from, String user, String tos, String subject, String content);
/**
* 发送HTML邮件不使用模板频率限制100 QPS
*
* @param from 管理控制台中配置的发信地址,必传且必须正确
* @param user 发信人昵称长度小于15个字符可不传
* @param tos 目标地址,多个 email 地址可以用逗号分隔最多100个地址必传且必须正确
* @param subject 邮件主题,必传
* @param content 邮件 html 正文限制28K必传
*
* @date 2022/2/23 14:24
**/
void sendHtmlEmailAliyun(String from, String user, String tos, String subject, String content);
/**
* 使用模板发送邮件国内频率限制是20/min海外频率限制是10/min。
*
* @param from 管理控制台中配置的发信地址,必传且必须正确
* @param tagName 控制台创建的邮件标签,可不传
* @param toName 预先创建且上传了收件人的收件人列表名称,必传且必须正确
* @param templateName 预先创建且通过审核的模板名称,必传且必须正确
*
* @date 2022/2/23 14:24
**/
void sendEmailWithTemplateAliyun(String from, String tagName, String toName, String templateName);
/* =========腾讯云邮件========= */
/**
* 发送纯文本邮件不使用模板默认接口请求频率限制20次/秒。)
*
* @param from 管理控制台中配置的发信地址,必传且必须正确
* @param user 发信人昵称,可不传
* @param tos 目标地址,多个 email 地址可以用逗号分隔最多50个地址必传且必须正确非群发邮件请多次调用API发送
* @param subject 邮件主题,必传
* @param content 邮件 txt 正文必传注意腾讯云api目前要求请求包大小不得超过8 MB。
* @param attachmentList 需要发送附件时,填写附件相关参数,格式:[{"FileName": "xxxx", "Content": "xxx"}]
* 支持的格式与说明见https://cloud.tencent.com/document/api/1288/51053#Attachment
*
* @date 2022/2/23 14:24
**/
void sendTextEmailTencent(String from, String user, String tos, String subject, String content, List<JSONObject> attachmentList);
/**
* 发送HTML邮件不使用模板默认接口请求频率限制20次/秒。)
*
* @param from 管理控制台中配置的发信地址,必传且必须正确
* @param user 发信人昵称,可不传
* @param tos 目标地址,多个 email 地址可以用逗号分隔最多50个地址必传且必须正确非群发邮件请多次调用API发送
* @param subject 邮件主题,必传
* @param content 邮件 txt 正文必传注意腾讯云api目前要求请求包大小不得超过8 MB。
* @param attachmentList 需要发送附件时,填写附件相关参数,格式:[{"FileName": "xxxx", "Content": "xxx"}]
* 支持的格式与说明见https://cloud.tencent.com/document/api/1288/51053#Attachment
*
* @date 2022/2/23 14:24
**/
void sendHtmlEmailTencent(String from, String user, String tos, String subject, String content, List<JSONObject> attachmentList);
/**
* 使用模板发送邮件默认接口请求频率限制20次/秒。
*
* @param from 管理控制台中配置的发信地址,必传且必须正确
* @param user 发信人昵称,可不传
* @param toId 预先创建且上传了收件人的收件人列表id必传且必须正确
* @param templateId 预先创建且通过审核的模板Id必传且必须正确
* @param templateParam 预先创建且通过审核的模板的参数json格式{"name":"张三"},可不传
* @param subject 邮件主题,必传
*
* @date 2022/2/23 14:24
**/
void sendEmailWithTemplateTencent(String from, String user, String toId, String templateId, String templateParam, String subject, List<JSONObject> attachmentList);
}

View File

@@ -0,0 +1,93 @@
package mjkf.xinke.dev.api;
import org.springframework.web.multipart.MultipartFile;
/**
* 文件API接口可参考mjkf.xinke.dev.core.util.file包下的工具类扩展更多需要的方法
*
*
* @date 2022/6/22 15:21
**/
public interface DevFileApi {
/* =========本地文件========= */
/**
* 上传文件返回Url
*
* @param file 文件
*
* @date 2022/6/22 17:44
**/
String storageFileWithReturnUrlLocal(MultipartFile file);
/**
* 上传文件返回Id
*
* @param file 文件
*
* @date 2022/6/22 17:44
**/
String storageFileWithReturnIdLocal(MultipartFile file);
/* =========阿里云文件========= */
/**
* 上传文件返回Url
*
* @param file 文件
*
* @date 2022/6/22 17:44
**/
String storageFileWithReturnUrlAliyun(MultipartFile file);
/**
* 上传文件返回Id
*
* @param file 文件
*
* @date 2022/6/22 17:44
**/
String storageFileWithReturnIdAliyun(MultipartFile file);
/* =========腾讯云件========= */
/**
* 上传文件返回Url
*
* @param file 文件
*
* @date 2022/6/22 17:44
**/
String storageFileWithReturnUrlTencent(MultipartFile file);
/**
* 上传文件返回Id
*
* @param file 文件
*
* @date 2022/6/22 17:44
**/
String storageFileWithReturnIdTencent(MultipartFile file);
/* =========MINIO件========= */
/**
* 上传文件返回Url
*
* @param file 文件
*
* @date 2022/6/22 17:44
**/
String storageFileWithReturnUrlMinio(MultipartFile file);
/**
* 上传文件返回Id
*
* @param file 文件
*
* @date 2022/6/22 17:44
**/
String storageFileWithReturnIdMinio(MultipartFile file);
}

View File

@@ -0,0 +1,11 @@
package mjkf.xinke.dev.api;
/**
* 定时任务API
*
*
* @date 2022/9/2 15:59
*/
public interface DevJobApi {
}

View File

@@ -0,0 +1,47 @@
package mjkf.xinke.dev.api;
import cn.hutool.json.JSONObject;
import java.util.List;
/**
* 日志API
*
*
* @date 2022/9/2 15:59
*/
public interface DevLogApi {
/**
* 记录登录日志
*
*
* @date 2022/9/2 16:03
*/
void executeLoginLog(String userName);
/**
* 记录登出日志
*
*
* @date 2022/9/2 16:03
*/
void executeLogoutLog(String userName);
/**
* 获取当前用户的访问日志列表
*
*
* @date 2022/9/4 15:12
*/
List<JSONObject> currentUserVisLogList();
/**
* 获取当前用户的操作日志列表
*
*
* @date 2022/9/4 15:12
*/
List<JSONObject> currentUserOpLogList();
}

View File

@@ -0,0 +1,100 @@
package mjkf.xinke.dev.api;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List;
/**
* 站内信API接口
*
*
* @date 2022/6/22 17:33
**/
public interface DevMessageApi {
/**
* 发送站内信,默认:分类系统通知
*
* @param receiverIdList 接收的用户id集合
* @param subject 主题
*
* @date 2022/6/22 17:35
**/
void sendMessage(List<String> receiverIdList, String subject);
/**
* 发送站内信指定分类
*
* @param receiverIdList 接收的用户id集合
* @param subject 主题
*
* @date 2022/6/22 17:35
**/
void sendMessage(List<String> receiverIdList, String category, String subject);
/**
* 发送站内信带内容,默认:分类系统通知
*
* @param receiverIdList 接收的用户id集合
* @param subject 主题
* @param content 站内信内容
*
* @date 2022/6/22 17:35
**/
void sendMessageWithContent(List<String> receiverIdList, String subject, String content);
/**
* 发送站内信带内容,指定分类
*
* @param receiverIdList 接收的用户id集合
* @param subject 主题
* @param content 站内信内容
*
* @date 2022/6/22 17:35
**/
void sendMessageWithContent(List<String> receiverIdList, String category, String subject, String content);
/**
* 获取未读站内信列表
*
*
* @date 2022/9/2 11:48
*/
List<JSONObject> list(List<String> receiverIdList, Integer limit);
/**
* 获取未读站内信数量
*
* @author diantu
* @date 2023/7/10
*/
Long unreadCount(String loginId);
/**
* 获取站内信分页
*
*
* @date 2022/9/2 11:48
*/
Page<JSONObject> page(List<String> receiverIdList, String category);
/**
* 获取站内信详情
*
* @param id 站内信id
*
* @date 2022/4/24 20:08
*/
JSONObject detail(String id);
/**
* 站内信全部标记已读
*
* @author diantu
* @date 2023/7/10
*/
void allMessageMarkRead();
}

View File

@@ -0,0 +1,43 @@
package mjkf.xinke.dev.api;
/**
* 短信API
*
*
* @date 2022/6/22 15:22
**/
public interface DevSmsApi {
/* =========阿里云邮件========= */
/**
* 发送短信
*
* @param phoneNumbers 手机号码,支持对多个手机号码发送短信,手机号码之间以半角逗号(,)分隔。
* 上限为1000个手机号码。批量调用相对于单条调用及时性稍有延迟。
* @param signName 短信服务控制台配置且审核通过的短信签名
* @param templateCode 短信服务控制台配置且审核通过的模板编码
* @param templateParam 短信模板变量对应的实际值JSON格式。支持传入多个参数示例{"name":"张三","number":"15038****76"}
*
* @date 2022/2/24 13:42
**/
void sendSmsAliyun(String phoneNumbers, String signName, String templateCode, String templateParam);
/* =========腾讯云邮件========= */
/**
* 发送短信
*
* @param sdkAppId 短信 SdkAppId在 短信控制台 添加应用后生成的实际 SdkAppId示例如1400006666。
* 可前往 [短信控制台](https://console.cloud.tencent.com/smsv2/app-manage) 查看
* @param phoneNumbers 手机号码,支持对多个手机号码发送短信,手机号码之间以半角逗号(,)分隔。
* 上限为1000个手机号码。批量调用相对于单条调用及时性稍有延迟。
* @param signName 短信服务控制台配置且审核通过的短信签名
* @param templateCode 短信服务控制台配置且审核通过的模板编码
* @param templateParam 短信模板变量对应的顺序。支持传入多个参数,逗号拼接,示例:"张三,15038****76,进行中"}
*
* @date 2022/2/24 13:42
**/
void sendSmsTencent(String sdkAppId, String phoneNumbers, String signName, String templateCode, String templateParam);
}

View File

@@ -0,0 +1,57 @@
package mjkf.xinke.dev.api;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
import mjkf.xinke.common.sse.CommonSseParam;
import java.util.function.Consumer;
/**
* SSE API接口
*
* @author diantu
* @date 2023/7/5
**/
public interface DevSseApi {
/**
* 创建SSE连接
*
* @param clientId 客户端id,不传则自动生成
* @param setHeartBeat 是否设置心跳定时任务,默认为falsetrue:设置 false:不设置)
* @param defaultHeartbeat 是否使用默认心跳任务
* @param consumer 自定义心跳任务,需要自定义实现Consumer接口中的accept方法setHeartBeat必须为true,defaultHeartbeat为false才有意义
* @return 初次建立连接会推送客户端id,状态码为0
* @author diantu
* @date 2023/7/5
**/
public SseEmitter createSseConnect(String clientId, Boolean setHeartBeat, Boolean defaultHeartbeat, Consumer<CommonSseParam> consumer);
/**
* 关闭连接
*
* @param clientId 客户端id
* @author diantu
* @date 2023/7/5
**/
public void closeSseConnect(String clientId);
/**
* 推送消息到所有客户端
*
* @param msg 推送消息
* @author diantu
* @date 2023/7/5
**/
public void sendMessageToAllClient(String msg);
/**
* 根据clientId发送消息给某一客户端
*
* @param clientId 客户端id
* @param msg 推送消息
* @author diantu
* @date 2023/7/5
**/
public void sendMessageToOneClient(String clientId, String msg);
}