608 lines
23 KiB
Go
608 lines
23 KiB
Go
package bus_models
|
||
|
||
import (
|
||
"go-admin/app/admin/models"
|
||
"time"
|
||
)
|
||
|
||
const (
|
||
AESKey = "3ca176c2d9d0273695f48c55c3170e32d204e125ac06c050c94e0fcec01679ed"
|
||
ShowCount = 100 // 前端展示手机号数量
|
||
)
|
||
|
||
// SmsTask 短信下行记录
|
||
type SmsTask struct {
|
||
models.Model
|
||
|
||
CooperativeNumber string `gorm:"column:cooperative_number"` // 合作商编号
|
||
CooperativeName string `gorm:"column:cooperative_name"` // 合作商名称
|
||
BatchID string `gorm:"column:batch_id"` // 批次ID
|
||
ImportID string `gorm:"column:import_id"` // 导入记录ID(UUID,可为空)
|
||
SmsContent string `gorm:"column:sms_content"` // 短信内容
|
||
SmsContentCost int `gorm:"column:sms_content_cost"` // 短信内容消耗条数
|
||
TotalPhoneCount int `gorm:"column:total_phone_count"` // 手机号总数
|
||
TotalSmsCount int `gorm:"column:total_sms_count"` // 短信计费条数(条数 * 手机数)
|
||
Status int `gorm:"column:status"` // 任务状态(0待发送 1发送中 2已完成 3失败 4取消)
|
||
InterceptFailCount int `gorm:"column:intercept_fail_count"` // 拦截失败数量
|
||
ChannelFailCount int `gorm:"column:channel_fail_count"` // 通道失败数量
|
||
ScheduleTime *time.Time `gorm:"schedule_time"` // 计划发送时间(定时时间)
|
||
}
|
||
|
||
// SmsTaskBatch 短信批量任务记录
|
||
type SmsTaskBatch struct {
|
||
models.Model
|
||
|
||
TaskID uint64 `gorm:"column:task_id"` // 关联任务ID
|
||
BatchID string `gorm:"column:batch_id"` // 批次ID
|
||
CooperativeNumber string `gorm:"column:cooperative_number"` // 合作商编号
|
||
CooperativeName string `gorm:"column:cooperative_name"` // 合作商名称
|
||
ImportID string `gorm:"column:import_id"` // 导入记录ID(UUID,可为空)
|
||
Num int `gorm:"column:num"` // 本次批次编号
|
||
PhoneCount int `gorm:"column:phone_count"` // 本批手机号数量
|
||
SmsCount int `gorm:"column:sms_count"` // 本批短信条数
|
||
SmsContent string `gorm:"column:sms_content"` // 短信内容
|
||
Status int `gorm:"column:status"` // 状态(0待发 1发送中 2已完成 3失败 4取消)
|
||
InterceptFailCount int `gorm:"column:intercept_fail_count"` // 拦截失败数量
|
||
ChannelFailCount int `gorm:"column:channel_fail_count"` // 通道发送失败数量
|
||
ScheduleTime *time.Time `gorm:"schedule_time"` // 计划发送时间(定时时间)
|
||
}
|
||
|
||
// SmsSendRecord 短信发送明细
|
||
type SmsSendRecord struct {
|
||
models.Model
|
||
|
||
TaskID uint64 `gorm:"column:task_id"` // 任务ID
|
||
TaskBatchID uint64 `gorm:"column:task_batch_id"` // 批次任务ID
|
||
BatchID string `gorm:"column:batch_id"` // 批次ID
|
||
CooperativeNumber string `gorm:"column:cooperative_number"` // 合作商编号
|
||
CooperativeName string `gorm:"column:cooperative_name"` // 合作商名称
|
||
Phone string `gorm:"column:phone"` // 手机号码
|
||
SmsContent string `gorm:"column:sms_content"` // 发送内容
|
||
ReceiveTime *time.Time `gorm:"column:receive_time"` // 回执时间
|
||
Status int `gorm:"column:status"` // 任务状态(1 已发送 2 发送失败)
|
||
SmsCode string `gorm:"column:sms_code"` // 发送状态码
|
||
}
|
||
|
||
// SensitiveWord 敏感词
|
||
type SensitiveWord struct {
|
||
models.Model
|
||
|
||
Word string `json:"word" gorm:"not null;uniqueIndex:uq_word;column:word;comment:敏感词"`
|
||
Category string `json:"category,omitempty" gorm:"column:category;comment:分类"` // Category can be optional.
|
||
Description string `json:"description,omitempty" gorm:"column:description;comment:描述"` // Description can be optional.
|
||
IsEnabled bool `json:"is_enabled" gorm:"default:1;column:is_enabled;comment:是否启用"`
|
||
}
|
||
|
||
// SmsUplinkLog 短信上行记录
|
||
type SmsUplinkLog struct {
|
||
models.Model
|
||
|
||
PhoneNumber string `gorm:"column:phone_number;type:varchar(20);not null" json:"phone_number"` // 手机号
|
||
ReplyContent string `gorm:"column:reply_content;type:text;not null" json:"reply_content"` // 回复内容
|
||
BatchID string `gorm:"column:batch_id;type:varchar(64);not null" json:"batch_id"` // 下行短信批次 ID
|
||
}
|
||
|
||
// SmsSignatureRealname 签名实名制
|
||
type SmsSignatureRealname struct {
|
||
models.Model
|
||
|
||
CooperativeNumber string `gorm:"column:cooperative_number"` // 合作商编号
|
||
CooperativeName string `gorm:"column:cooperative_name"` // 合作商名称
|
||
Signature string `json:"signature"` // 签名
|
||
SignatureSource string `json:"signature_source"` // 签名来源
|
||
CompanyName string `json:"company_name"` // 企业名称
|
||
CompanyCreditCode string `json:"company_credit_code"` // 企业信用代码
|
||
ResponsibleName string `json:"responsible_name"` // 责任人名称
|
||
ResponsibleIDType int `json:"responsible_id_type"` // 责任人证件类型
|
||
ResponsibleIDNumber string `json:"responsible_id_number"` // 责任人证件号
|
||
BusinessType int `json:"business_type"` // 业务类型
|
||
UsageCategory int `json:"usage_category"` // 用途类别
|
||
UsageDetail string `json:"usage_detail"` // 具体用途
|
||
AgentName string `json:"agent_name"` // 经办人名称
|
||
AgentIDType int `json:"agent_id_type"` // 经办人证件类型
|
||
AgentIDNumber string `json:"agent_id_number"` // 经办人证件号
|
||
SmsTemplate string `json:"sms_template"` // 短信模板
|
||
IsActive int `json:"is_active"` // 是否有效(0 无效;1 有效)
|
||
}
|
||
|
||
// SmsContactCategory 通讯录分类
|
||
type SmsContactCategory struct {
|
||
models.Model
|
||
Name string `json:"name" gorm:"type:varchar(100);not null"`
|
||
ParentID uint64 `json:"parent_id" gorm:"default:0"`
|
||
Children []SmsContactCategory `json:"children,omitempty" gorm:"-"`
|
||
}
|
||
|
||
// SmsContact 通讯录
|
||
type SmsContact struct {
|
||
models.Model
|
||
|
||
CategoryID uint64 `json:"category_id" gorm:"default:0"`
|
||
CooperativeNumber string `json:"cooperative_number"` // 合作商编号
|
||
CooperativeName string `json:"cooperative_name"` // 合作商名称
|
||
Name string `json:"name"`
|
||
PhoneNumber string `json:"phone_number"`
|
||
Gender string `json:"gender"`
|
||
Birthday *time.Time `json:"birthday"`
|
||
Company string `json:"company"`
|
||
Address string `json:"address"`
|
||
Remark string `json:"remark"`
|
||
}
|
||
|
||
// SmsPhraseCategory 短语分类
|
||
type SmsPhraseCategory struct {
|
||
models.Model
|
||
Name string `json:"name" gorm:"type:varchar(100);not null"`
|
||
ParentID uint64 `json:"parent_id" gorm:"default:0"`
|
||
Children []SmsPhraseCategory `json:"children,omitempty" gorm:"-"`
|
||
}
|
||
|
||
// SmsPhrase 通讯录-常用短语
|
||
type SmsPhrase struct {
|
||
models.Model
|
||
|
||
Content string `json:"content" gorm:"type:varchar(255);not null"`
|
||
CategoryID uint `json:"category_id" gorm:"default:0"`
|
||
}
|
||
|
||
// SmsCommonNumber 常用号码列表
|
||
type SmsCommonNumber struct {
|
||
models.Model
|
||
|
||
Name string `json:"name"`
|
||
PhoneNumbers string `json:"phone_numbers"` // 如:"12345678901,13322223333"
|
||
PhoneCount int `json:"phone_count" gorm:"-"` // 号码数量(从 phone_numbers 计算)
|
||
}
|
||
|
||
// SmsBlackList 黑名单列表
|
||
type SmsBlackList struct {
|
||
models.Model
|
||
|
||
PhoneNumber string `json:"phone_number"`
|
||
Remark string `json:"remark"`
|
||
}
|
||
|
||
// SmsTemplate 短信模版表
|
||
type SmsTemplate struct {
|
||
models.Model
|
||
|
||
CooperativeNumber string `gorm:"column:cooperative_number"` // 合作商编号
|
||
CooperativeName string `gorm:"column:cooperative_name"` // 合作商名称
|
||
Content string `json:"content"` // 模版内容(必填)
|
||
ExpireAt *time.Time `json:"expire_at"` // 到期时间(有效期)
|
||
Remark string `json:"remark"` // 备注
|
||
Status int `json:"status"` // 状态:0=审核中 1=正常 2=拒绝 3=过期
|
||
}
|
||
|
||
type ContactInput struct {
|
||
CategoryID []uint64 `json:"category_id" binding:"required"`
|
||
ID uint64 `json:"id"` // 联系人ID
|
||
Name string `json:"name"`
|
||
PhoneNumber string `json:"phone_number"`
|
||
Gender string `json:"gender"`
|
||
BirthdayStr string `json:"birthday"` // 先用 string 接收
|
||
Company string `json:"company"`
|
||
Address string `json:"address"`
|
||
Remark string `json:"remark"`
|
||
}
|
||
|
||
type EditContactInput struct {
|
||
CategoryID uint64 `json:"category_id" binding:"required"`
|
||
ID uint64 `json:"id"` // 联系人ID
|
||
Name string `json:"name"`
|
||
PhoneNumber string `json:"phone_number"`
|
||
Gender string `json:"gender"`
|
||
BirthdayStr string `json:"birthday"` // 先用 string 接收
|
||
Company string `json:"company"`
|
||
Address string `json:"address"`
|
||
Remark string `json:"remark"`
|
||
}
|
||
|
||
type MassImportPhoneResp struct {
|
||
List []string `json:"list"` // 加密后的数据
|
||
ImportSerialNumber string `json:"import_serial_number"` // 导入excel返回的编号
|
||
}
|
||
|
||
type SendSmsReq struct {
|
||
Data string `json:"data"` // 加密数据
|
||
PhoneList []string `json:"phone_list"` // 手机号码列表
|
||
ImportSerialNumber string `json:"import_serial_number"` // 导入excel返回的编号
|
||
SmsContent string `json:"sms_content"` // 短信内容
|
||
SendTime string `json:"send_time"` // 发送时间(定时设置)
|
||
}
|
||
|
||
type ExportMessPhoneReq struct {
|
||
Data string `json:"data"` // 加密数据
|
||
PhoneList []string `json:"phone_list"` // 手机号码列表
|
||
ImportSerialNumber string `json:"import_serial_number"` // 导入excel返回的编号
|
||
}
|
||
|
||
type ExportMessPhoneResp struct {
|
||
ExportUrl string `json:"export_url"` // 下载链接
|
||
}
|
||
|
||
type CheckSensitiveWordsReq struct {
|
||
Content string `json:"content" binding:"required"` // 短信内容
|
||
}
|
||
|
||
type CheckSensitiveWordsResponse struct {
|
||
HasSensitiveWords bool `json:"has_sensitive_words"` // 是否检测到敏感词:true 检测到; false 未检测到
|
||
SensitiveWords []string `json:"sensitive_words"` // 敏感词
|
||
}
|
||
|
||
// SmsTaskQueryRequest 请求参数结构体(带分页)
|
||
type SmsTaskQueryRequest struct {
|
||
BatchID string `json:"batch_id"` // 批次ID
|
||
StartTime string `json:"start_time"` // 格式:2006-01-02 15:04:05
|
||
EndTime string `json:"end_time"` // 格式:2006-01-02 15:04:05
|
||
MinTotalSms int `json:"min_total_sms"` // 最小短信计费条数
|
||
MinPhoneCount int `json:"min_phone_count"` // 最小手机号总数
|
||
Status *int `json:"status"` // 状态(可选)
|
||
Page int `json:"page"` // 页码,从 1 开始
|
||
PageSize int `json:"page_size"` // 每页条数
|
||
}
|
||
|
||
// SmsTaskQueryResponse 响应结构体(带分页)
|
||
type SmsTaskQueryResponse struct {
|
||
List []SmsTask `json:"list"` // 数据列表
|
||
Total int64 `json:"total"` // 总条数
|
||
Page int `json:"page"` // 当前页码
|
||
PageSize int `json:"page_size"` // 每页条数
|
||
TotalPage int `json:"total_page"` // 总页数
|
||
}
|
||
|
||
type SmsSendRecordQueryReq struct {
|
||
BatchID string `json:"batch_id"`
|
||
Phone string `json:"phone"`
|
||
StartTime string `json:"start_time"`
|
||
EndTime string `json:"end_time"`
|
||
MinSegments int `json:"min_segments"`
|
||
SmsCode string `json:"sms_code"`
|
||
Page int `json:"page"` // 页码,从 1 开始
|
||
PageSize int `json:"page_size"` // 每页条数
|
||
}
|
||
|
||
type SmsSendRecordQueryResp struct {
|
||
List []SmsSendRecord `json:"list"`
|
||
Total int64 `json:"total"` // 总条数
|
||
Page int `json:"page"` // 当前页码
|
||
PageSize int `json:"page_size"` // 每页条数
|
||
TotalPage int `json:"total_page"` // 总页数
|
||
}
|
||
|
||
// GetPhonesByBatchIDReq 请求结构体
|
||
type GetPhonesByBatchIDReq struct {
|
||
BatchID string `json:"batch_id" binding:"required"` // 批次ID
|
||
}
|
||
|
||
// GetPhonesByBatchIDResp 响应结构体
|
||
type GetPhonesByBatchIDResp struct {
|
||
Phones []string `json:"phones"` // 手机号列表
|
||
}
|
||
|
||
type SmsTaskScheduledQueryRequest struct {
|
||
Page int `json:"page"`
|
||
PageSize int `json:"page_size"`
|
||
StartTime string `json:"start_time"` // 查询开始时间(schedule_time)
|
||
EndTime string `json:"end_time"` // 查询结束时间(schedule_time)
|
||
}
|
||
|
||
type SmsUplinkQueryRequest struct {
|
||
PhoneNumber string `json:"phone_number"` // 手机号
|
||
SendID uint64 `json:"send_id"` // 下行ID
|
||
UplinkID uint64 `json:"uplink_id"` // 上行ID
|
||
ReplyContent string `json:"reply_content"` // 回复内容关键字
|
||
StartTime string `json:"start_time"` // 接收开始时间
|
||
EndTime string `json:"end_time"` // 接收结束时间
|
||
Page int `json:"page"` // 分页页码
|
||
PageSize int `json:"page_size"` // 每页数量
|
||
}
|
||
|
||
type SmsUplinkRecordResponse struct {
|
||
UplinkID uint64 `json:"uplink_id"` // 上行ID
|
||
PhoneNumber string `json:"phone_number"` // 手机号
|
||
SendID uint64 `json:"send_id"` // 下行发送记录ID
|
||
SmsContent string `json:"sms_content"` // 下行发送内容
|
||
ReplyContent string `json:"reply_content"` // 上行回复内容
|
||
ReceiveTime time.Time `json:"receive_time"` // 上行接收时间
|
||
SendTime time.Time `json:"send_time"` // 下行发送时间
|
||
}
|
||
|
||
type SmsUplinkQueryResponse struct {
|
||
List []SmsUplinkRecordResponse `json:"list"`
|
||
Total int64 `json:"total"`
|
||
Page int `json:"page"`
|
||
PageSize int `json:"page_size"`
|
||
TotalPage int64 `json:"total_page"`
|
||
}
|
||
|
||
// BatchUpdateSmsContentRequest 批量修改短信内容请求
|
||
type BatchUpdateSmsContentRequest struct {
|
||
TaskIDs []uint64 `json:"task_ids"` // 任务ID列表
|
||
SmsContent string `json:"sms_content"` // 新的短信内容
|
||
}
|
||
|
||
type BatchUpdateRequest struct {
|
||
TaskIDs []uint64 `json:"task_ids"` // 任务ID列表
|
||
}
|
||
|
||
type BatchResetScheduleTimeRequest struct {
|
||
TaskIDs []uint64 `json:"task_ids"` // 任务ID列表
|
||
ScheduleTime string `json:"schedule_time"` // 新定时时间
|
||
}
|
||
|
||
type DeleteSignatureRealnameRequest struct {
|
||
IDs []uint `json:"ids" binding:"required"` // 要删除的记录ID列表
|
||
}
|
||
|
||
type SignatureRealnameQuery struct {
|
||
Signature string `json:"signature"`
|
||
CooperativeName string `json:"cooperative_name"`
|
||
CompanyName string `json:"company_name"`
|
||
CompanyCreditCode string `json:"company_credit_code"`
|
||
ResponsibleName string `json:"responsible_name"`
|
||
UsageCategory int `json:"usage_category"`
|
||
IsActive int `json:"is_active"`
|
||
Page int `json:"page"`
|
||
PageSize int `json:"page_size"`
|
||
}
|
||
|
||
type SignatureRealnameQueryResp struct {
|
||
List []SmsSignatureRealname `json:"list"`
|
||
Total int64 `json:"total"`
|
||
Page int `json:"page"`
|
||
PageSize int `json:"page_size"`
|
||
TotalPage int64 `json:"total_page"`
|
||
}
|
||
|
||
type AddContactCategoryReq struct {
|
||
Name string `json:"name" binding:"required"`
|
||
ParentID uint `json:"parent_id"` // 默认 0 表示顶级
|
||
}
|
||
|
||
type EditContactCategoryReq struct {
|
||
ID uint `json:"id" binding:"required"`
|
||
Name string `json:"name" binding:"required"`
|
||
}
|
||
|
||
// DeleteContactCategoryRequest 删除通讯录分类请求
|
||
type DeleteContactCategoryRequest struct {
|
||
IDs []uint `json:"ids" binding:"required"` // 要删除的分类ID列表
|
||
}
|
||
|
||
// ListContactCategoryRequest 查询通讯录分类树的请求
|
||
type ListContactCategoryRequest struct {
|
||
CategoryID uint64 `json:"category_id"` // 为空表示查询整个树
|
||
}
|
||
|
||
type SmsContactCategoryTree struct {
|
||
ID uint64 `json:"id"`
|
||
Name string `json:"name"`
|
||
ParentID uint64 `json:"parent_id"`
|
||
Children []SmsContactCategoryTree `json:"children,omitempty"`
|
||
}
|
||
|
||
// ContactQuery 请求结构体
|
||
type ContactQuery struct {
|
||
CategoryID []uint64 `json:"category_id" binding:"required"`
|
||
Name string `form:"name"` // 模糊搜索
|
||
PhoneNumber string `form:"phone_number"` // 模糊搜索
|
||
Page int `form:"page"`
|
||
PageSize int `form:"page_size"`
|
||
}
|
||
|
||
// ContactQueryResp 响应结构体
|
||
type ContactQueryResp struct {
|
||
List []SmsContact `json:"list"`
|
||
Total int64 `json:"total"`
|
||
Page int `json:"page"`
|
||
PageSize int `json:"page_size"`
|
||
TotalPage int64 `json:"total_page"`
|
||
}
|
||
|
||
type ContactDeleteRequest struct {
|
||
ContactIDs []uint `json:"contact_ids" binding:"required"` // 要删除的记录ID列表
|
||
}
|
||
|
||
// ExportContactsRequest 导出联系人请求参数
|
||
type ExportContactsRequest struct {
|
||
IDs []uint `json:"ids"` // 联系人ID列表(优先)
|
||
All bool `json:"all"` // 是否导出全部
|
||
}
|
||
|
||
type ExportContactsResp struct {
|
||
ExportUrl string `json:"export_url"` // 下载链接
|
||
}
|
||
|
||
type AddPhraseCategoryReq struct {
|
||
Name string `json:"name" binding:"required"`
|
||
ParentID uint `json:"parent_id"` // 默认 0 表示顶级
|
||
}
|
||
|
||
type EditPhraseCategoryReq struct {
|
||
ID uint `json:"id" binding:"required"`
|
||
Name string `json:"name" binding:"required"`
|
||
}
|
||
|
||
// DeletePhraseCategoryRequest 删除短语分类请求
|
||
type DeletePhraseCategoryRequest struct {
|
||
IDs []uint `json:"ids" binding:"required"` // 要删除的分类ID列表
|
||
}
|
||
|
||
// SmsPhraseQuery 查询参数
|
||
type SmsPhraseQuery struct {
|
||
Content string `form:"content" binding:"required"` // 模糊搜索内容
|
||
CategoryID uint `form:"category_id"` // 所属分类ID
|
||
Page int `form:"page"`
|
||
PageSize int `form:"page_size"`
|
||
}
|
||
|
||
type SmsPhraseListResp struct {
|
||
List []SmsPhrase `json:"list"` // 短语列表
|
||
Total int64 `json:"total"` // 总条数
|
||
Page int `json:"page"` // 当前页
|
||
PageSize int `json:"page_size"` // 每页大小
|
||
TotalPage int64 `json:"total_page"` // 总页数
|
||
}
|
||
|
||
// SmsPhraseAddOrEdit 新增或编辑参数
|
||
type SmsPhraseAddOrEdit struct {
|
||
ID uint `json:"id"` // 编辑时用
|
||
Content string `json:"content" binding:"required"`
|
||
CategoryID uint `json:"category_id" binding:"required"`
|
||
}
|
||
|
||
// SmsPhraseBatchDeleteReq 批量删除
|
||
type SmsPhraseBatchDeleteReq struct {
|
||
IDs []uint `json:"ids" binding:"required"`
|
||
}
|
||
|
||
// ListPhraseCategoryRequest 查询短语分类树的请求
|
||
type ListPhraseCategoryRequest struct {
|
||
CategoryID uint64 `json:"category_id"` // 为空表示查询整个树
|
||
}
|
||
|
||
type SmsPhraseCategoryTree struct {
|
||
ID uint64 `json:"id"`
|
||
Name string `json:"name"`
|
||
ParentID uint64 `json:"parent_id"`
|
||
Children []SmsPhraseCategoryTree `json:"children,omitempty"`
|
||
}
|
||
|
||
// SmsCommonNumberQuery 查询
|
||
type SmsCommonNumberQuery struct {
|
||
Name string `json:"name"`
|
||
Page int `json:"page"`
|
||
PageSize int `json:"pageSize"`
|
||
}
|
||
|
||
// SmsCommonNumberAddReq 添加常用号码请求结构体
|
||
type SmsCommonNumberAddReq struct {
|
||
Name string `json:"name" binding:"required"` // 名称
|
||
PhoneList []string `json:"phone_list" binding:"required"` // 号码列表
|
||
}
|
||
|
||
// SmsCommonNumberAppendReq 追加常用号码请求结构体
|
||
type SmsCommonNumberAppendReq struct {
|
||
ID int64 `json:"id" binding:"required"` // 记录ID
|
||
PhoneList []string `json:"phone_list" binding:"required"` // 需要追加的号码列表
|
||
}
|
||
|
||
// SmsCommonNumberDetailReq 常用号码详情
|
||
type SmsCommonNumberDetailReq struct {
|
||
ID int64 `json:"id" binding:"required"` // 记录ID
|
||
}
|
||
|
||
// SmsCommonNumberDeleteReq 删除
|
||
type SmsCommonNumberDeleteReq struct {
|
||
Ids []uint64 `json:"ids"`
|
||
}
|
||
|
||
// SmsCommonNumberExportReq 导出
|
||
type SmsCommonNumberExportReq struct {
|
||
All bool `json:"all"` // 是否导出全部
|
||
Ids []uint64 `json:"ids"`
|
||
}
|
||
|
||
type SmsCommonNumberExportResp struct {
|
||
ExportUrl string `json:"export_url"` // 下载链接
|
||
}
|
||
|
||
type SmsCommonNumberListResp struct {
|
||
List []SmsCommonNumber `json:"list"`
|
||
Total int64 `json:"total"`
|
||
Page int `json:"page"`
|
||
PageSize int `json:"pageSize"`
|
||
TotalPage int64 `json:"totalPage"`
|
||
}
|
||
|
||
type BlacklistAddReq struct {
|
||
PhoneList []string `json:"phone_list" binding:"required"`
|
||
Remark string `json:"remark"`
|
||
}
|
||
|
||
// ExportBlacklistRequest 导出黑名单请求
|
||
type ExportBlacklistRequest struct {
|
||
All bool `json:"all"` // 是否导出全部
|
||
Ids []string `json:"ids"` // 指定导出的手机号ID
|
||
}
|
||
|
||
// ExportBlacklistResp 导出响应
|
||
type ExportBlacklistResp struct {
|
||
ExportUrl string `json:"export_url"`
|
||
}
|
||
|
||
type BlacklistQuery struct {
|
||
PhoneNumber string `json:"phone_number"`
|
||
Page int `json:"page"`
|
||
PageSize int `json:"page_size"`
|
||
}
|
||
|
||
type BlacklistListResp struct {
|
||
List []SmsBlackList `json:"list"`
|
||
Total int64 `json:"total"`
|
||
Page int `json:"page"`
|
||
PageSize int `json:"page_size"`
|
||
TotalPage int64 `json:"total_page"`
|
||
}
|
||
|
||
// SmsBlacklistBatchDeleteReq 批量删除黑名单请求
|
||
type SmsBlacklistBatchDeleteReq struct {
|
||
IDs []uint `json:"ids"` // 黑名单记录ID
|
||
}
|
||
|
||
// SmsTemplateQuery 短信模版查询参数
|
||
type SmsTemplateQuery struct {
|
||
Content string `json:"content"` // 模版内容模糊查询
|
||
Status int `json:"status"` // 模版状态(0=待审核,1=正常,2=审核拒绝,3=已过期)
|
||
CreateStart time.Time `json:"create_start"` // 创建时间起
|
||
CreateEnd time.Time `json:"create_end"` // 创建时间止
|
||
Page int `json:"page"`
|
||
PageSize int `json:"page_size"`
|
||
}
|
||
|
||
// SmsTemplateListResp 返回模版列表结构
|
||
type SmsTemplateListResp struct {
|
||
List []SmsTemplate `json:"list"`
|
||
Total int64 `json:"total"`
|
||
Page int `json:"page"`
|
||
PageSize int `json:"page_size"`
|
||
TotalPage int64 `json:"total_page"`
|
||
}
|
||
|
||
// SmsTemplateExportReq 短信模版导出请求
|
||
type SmsTemplateExportReq struct {
|
||
Ids []uint `json:"ids"` // 选择的模版 ID 列表
|
||
All bool `json:"all"` // 是否导出全部
|
||
}
|
||
|
||
// ExportTemplateResp 导出结果
|
||
type ExportTemplateResp struct {
|
||
ExportUrl string `json:"export_url"` // 下载地址
|
||
}
|
||
|
||
type ApproveTemplateRequest struct {
|
||
ID uint `json:"id"`
|
||
Status int `json:"status"` // 1 正常, 2 审核不通过
|
||
}
|
||
|
||
// SmsTemplateUpdateRequest 修改短信模版请求
|
||
type SmsTemplateUpdateRequest struct {
|
||
ID uint `json:"id" binding:"required"`
|
||
Content string `json:"content" binding:"required"`
|
||
ExpireAt *time.Time `json:"expire_at"`
|
||
Remark string `json:"remark"`
|
||
}
|
||
|
||
// DeleteIdsRequest 批量删除模版时使用
|
||
type DeleteIdsRequest struct {
|
||
IDs []uint `json:"ids" binding:"required"`
|
||
}
|
||
|
||
// SmsTemplateCreateRequest 创建短信模版请求
|
||
type SmsTemplateCreateRequest struct {
|
||
Content string `json:"content" binding:"required"` // 模版内容
|
||
ExpireAt *time.Time `json:"expire_at"` // 到期时间
|
||
Remark string `json:"remark"` // 备注
|
||
}
|