telco_server/app/admin/models/bus_models/m_sms_manage.go

295 lines
13 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package bus_models
import (
"go-admin/app/admin/models"
"time"
)
const (
AESKey = "3ca176c2d9d0273695f48c55c3170e32d204e125ac06c050c94e0fcec01679ed"
ShowCount = 100 // 前端展示手机号数量
)
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"` // 导入记录IDUUID可为空
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"` // 计划发送时间(定时时间)
}
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"` // 导入记录IDUUID可为空
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"` // 计划发送时间(定时时间)
}
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:是否启用"`
}
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
}
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 有效)
}
// SmsContact 通讯录
type SmsContact struct {
models.Model
CooperativeNumber string `gorm:"column:cooperative_number"` // 合作商编号
CooperativeName string `gorm:"column: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"`
}
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"`
}
// ContactQuery 请求结构体
type ContactQuery struct {
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列表
}