!64 feat: 短信管理

Merge pull request !64 from puhui999/v5-next-tmp
This commit is contained in:
芋道源码
2025-04-03 13:59:44 +00:00
committed by Gitee
18 changed files with 1775 additions and 3 deletions

View File

@@ -0,0 +1,77 @@
import type { PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace SystemMailAccountApi {
export interface MailAccountVO {
id: number;
mail: string;
username: string;
password: string;
host: string;
port: number;
sslEnable: boolean;
starttlsEnable: boolean;
status: number;
createTime: Date;
remark: string;
}
}
// 查询邮箱账号列表
export const getMailAccountPage = async (params: any) => {
return await requestClient.get<
PageResult<SystemMailAccountApi.MailAccountVO>
>('/system/mail-account/page', { params });
};
// 查询邮箱账号详情
export const getMailAccount = async (id: number) => {
return await requestClient.get<SystemMailAccountApi.MailAccountVO>(
'/system/mail-account/get',
{
params: { id },
},
);
};
// 新增邮箱账号
export const createMailAccount = async (
data: SystemMailAccountApi.MailAccountVO,
) => {
return await requestClient.post<SystemMailAccountApi.MailAccountVO>(
'/system/mail-account/create',
data,
);
};
// 修改邮箱账号
export const updateMailAccount = async (
data: SystemMailAccountApi.MailAccountVO,
) => {
return await requestClient.put<SystemMailAccountApi.MailAccountVO>(
'/system/mail-account/update',
data,
);
};
// 删除邮箱账号
export const deleteMailAccount = async (id: number) => {
return await requestClient.delete<boolean>('/system/mail-account/delete', {
params: { id },
});
};
// 获得邮箱账号精简列表
export const getSimpleMailAccountList = async () => {
return await requestClient.get<SystemMailAccountApi.MailAccountVO[]>(
'/system/mail-account/simple-list',
);
};
// 测试邮箱连接
export const testMailAccount = async (id: number) => {
return await requestClient.post<boolean>('/system/mail-account/test', null, {
params: { id },
});
};

View File

@@ -0,0 +1,57 @@
import type { PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace SystemMailLogApi {
export interface MailLogVO {
id: number;
userId: number;
userType: number;
toMail: string;
accountId: number;
fromMail: string;
templateId: number;
templateCode: string;
templateNickname: string;
templateTitle: string;
templateContent: string;
templateParams: string;
sendStatus: number;
sendTime: Date;
sendMessageId: string;
sendException: string;
createTime: Date;
}
}
// 查询邮件日志列表
export const getMailLogPage = async (params: any) => {
return await requestClient.get<PageResult<SystemMailLogApi.MailLogVO>>(
'/system/mail-log/page',
{ params },
);
};
// 查询邮件日志详情
export const getMailLog = async (id: number) => {
return await requestClient.get<SystemMailLogApi.MailLogVO>(
'/system/mail-log/get',
{
params: { id },
},
);
};
// 重新发送邮件
export const resendMail = async (id: number) => {
return await requestClient.put<boolean>('/system/mail-log/resend', null, {
params: { id },
});
};
// 批量删除邮件日志
export const deleteMailLogs = async (ids: number[]) => {
return await requestClient.delete<boolean>('/system/mail-log/delete', {
data: { ids },
});
};

View File

@@ -0,0 +1,77 @@
import type { PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace SystemMailTemplateApi {
export interface MailTemplateVO {
id: number;
name: string;
code: string;
accountId: number;
nickname: string;
title: string;
content: string;
params: string;
status: number;
remark: string;
createTime: Date;
}
export interface MailSendReqVO {
mail: string;
templateCode: string;
templateParams: Record<string, any>;
}
}
// 查询邮件模版列表
export const getMailTemplatePage = async (params: any) => {
return await requestClient.get<
PageResult<SystemMailTemplateApi.MailTemplateVO>
>('/system/mail-template/page', { params });
};
// 查询邮件模版详情
export const getMailTemplate = async (id: number) => {
return await requestClient.get<SystemMailTemplateApi.MailTemplateVO>(
'/system/mail-template/get',
{
params: { id },
},
);
};
// 新增邮件模版
export const createMailTemplate = async (
data: SystemMailTemplateApi.MailTemplateVO,
) => {
return await requestClient.post<SystemMailTemplateApi.MailTemplateVO>(
'/system/mail-template/create',
data,
);
};
// 修改邮件模版
export const updateMailTemplate = async (
data: SystemMailTemplateApi.MailTemplateVO,
) => {
return await requestClient.put<SystemMailTemplateApi.MailTemplateVO>(
'/system/mail-template/update',
data,
);
};
// 删除邮件模版
export const deleteMailTemplate = async (id: number) => {
return await requestClient.delete<boolean>('/system/mail-template/delete', {
params: { id },
});
};
// 发送邮件
export const sendMail = async (data: SystemMailTemplateApi.MailSendReqVO) => {
return await requestClient.post<boolean>(
'/system/mail-template/send-mail',
data,
);
};

View File

@@ -0,0 +1,60 @@
import type { PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace SystemSmsChannelApi {
/** 短信渠道信息 */
export interface SmsChannelVO {
id?: number;
code: string;
status: number;
signature: string;
remark: string;
apiKey: string;
apiSecret: string;
callbackUrl: string;
createTime?: Date;
}
}
/** 查询短信渠道列表 */
export function getSmsChannelPage(params: any) {
return requestClient.get<PageResult<SystemSmsChannelApi.SmsChannelVO>>(
'/system/sms-channel/page',
{ params },
);
}
/** 获得短信渠道精简列表 */
export function getSimpleSmsChannelList() {
return requestClient.get<SystemSmsChannelApi.SmsChannelVO[]>(
'/system/sms-channel/simple-list',
);
}
/** 查询短信渠道详情 */
export function getSmsChannel(id: number) {
return requestClient.get<SystemSmsChannelApi.SmsChannelVO>(
`/system/sms-channel/get?id=${id}`,
);
}
/** 新增短信渠道 */
export function createSmsChannel(data: SystemSmsChannelApi.SmsChannelVO) {
return requestClient.post('/system/sms-channel/create', data);
}
/** 修改短信渠道 */
export function updateSmsChannel(data: SystemSmsChannelApi.SmsChannelVO) {
return requestClient.put('/system/sms-channel/update', data);
}
/** 删除短信渠道 */
export function deleteSmsChannel(id: number) {
return requestClient.delete(`/system/sms-channel/delete?id=${id}`);
}
/** 导出短信渠道 */
export function exportSmsChannel(params: any) {
return requestClient.download('/system/sms-channel/export', { params });
}

View File

@@ -0,0 +1,45 @@
import type { PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace SystemSmsLogApi {
/** 短信日志信息 */
export interface SmsLogVO {
id?: number;
channelId?: number;
channelCode: string;
templateId?: number;
templateCode: string;
templateType?: number;
templateContent: string;
templateParams?: Record<string, any>;
apiTemplateId: string;
mobile: string;
userId?: number;
userType?: number;
sendStatus?: number;
sendTime?: Date;
apiSendCode: string;
apiSendMsg: string;
apiRequestId: string;
apiSerialNo: string;
receiveStatus?: number;
receiveTime?: Date;
apiReceiveCode: string;
apiReceiveMsg: string;
createTime?: Date;
}
}
/** 查询短信日志列表 */
export function getSmsLogPage(params: any) {
return requestClient.get<PageResult<SystemSmsLogApi.SmsLogVO>>(
'/system/sms-log/page',
{ params },
);
}
/** 导出短信日志 */
export function exportSmsLog(params: any) {
return requestClient.download('/system/sms-log/export-excel', { params });
}

View File

@@ -0,0 +1,70 @@
import type { PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace SystemSmsTemplateApi {
/** 短信模板信息 */
export interface SmsTemplateVO {
id?: number;
type?: number;
status: number;
code: string;
name: string;
content: string;
remark: string;
apiTemplateId: string;
channelId?: number;
channelCode?: string;
params?: string[];
createTime?: Date;
}
/** 发送短信请求 */
export interface SendSmsReqVO {
mobile: string;
templateCode: string;
templateParams: Record<string, any>;
}
}
/** 查询短信模板列表 */
export function getSmsTemplatePage(params: any) {
return requestClient.get<PageResult<SystemSmsTemplateApi.SmsTemplateVO>>(
'/system/sms-template/page',
{ params },
);
}
/** 查询短信模板详情 */
export function getSmsTemplate(id: number) {
return requestClient.get<SystemSmsTemplateApi.SmsTemplateVO>(
`/system/sms-template/get?id=${id}`,
);
}
/** 新增短信模板 */
export function createSmsTemplate(data: SystemSmsTemplateApi.SmsTemplateVO) {
return requestClient.post('/system/sms-template/create', data);
}
/** 修改短信模板 */
export function updateSmsTemplate(data: SystemSmsTemplateApi.SmsTemplateVO) {
return requestClient.put('/system/sms-template/update', data);
}
/** 删除短信模板 */
export function deleteSmsTemplate(id: number) {
return requestClient.delete(`/system/sms-template/delete?id=${id}`);
}
/** 导出短信模板 */
export function exportSmsTemplate(params: any) {
return requestClient.download('/system/sms-template/export-excel', {
params,
});
}
/** 发送短信 */
export function sendSms(data: SystemSmsTemplateApi.SendSmsReqVO) {
return requestClient.post('/system/sms-template/send-sms', data);
}

View File

@@ -1,6 +1,7 @@
import { requestClient } from '#/api/request';
import type { PageParam } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace SystemUserApi {
/** 用户信息 */
export interface SystemUser {