Files
2026-02-17 13:06:23 +08:00

122 lines
2.5 KiB
Go

package vo
import (
"fmt"
"xiawan/wx/srv/srvconfig"
"github.com/gin-gonic/gin"
)
type DTO struct {
//自定义提示状态码
Code interface{}
//数据展示
Data interface{}
//提示文本
Text interface{}
//是否成功
Success bool
//62数据
Data62 string
//票据
Ticket string
//微信验证URL(当Ticket不为空时提供)
WechatVerifyUrl string `json:"wechat_verify_url,omitempty"`
//用户操作指引(当Ticket不为空时提供)
VerifyInstructions string `json:"verify_instructions,omitempty"`
}
func NewFail(errMsg string) DTO {
return DTO{
Code: FAIL,
Data: nil,
Text: errMsg,
}
}
func NewFailOffline(errMsg string) DTO {
return DTO{
Code: FAIL_Offline,
Data: nil,
Text: errMsg,
}
}
func NewSuccess(h gin.H, msg string) DTO {
return DTO{
Code: SUCCESS,
Data: h,
Text: msg,
}
}
func NewSuccessObj(h interface{}, msg string) DTO {
return DTO{
Code: SUCCESS,
Data: h,
Text: msg,
}
}
// NewSuccessWithTicket 创建包含ticket和微信验证信息的成功响应
func NewSuccessWithTicket(data interface{}, msg, data62, ticket string) DTO {
dto := DTO{
Code: SUCCESS,
Data: data,
Text: msg,
Success: true,
Data62: data62,
Ticket: ticket,
}
// 如果有ticket,添加微信验证相关信息
if ticket != "" {
dto.WechatVerifyUrl = fmt.Sprintf("https://weixin110.qq.com/security/acct/newreadtemplate?t=extdevsignin/slaveverify&ticket=%s&lang=zh_CN", ticket)
dto.VerifyInstructions = "请按照以下步骤完成微信验证:\n1. 复制上面的 wechat_verify_url 链接\n2. 打开微信客户端\n3. 在微信聊天窗口中粘贴并发送该链接\n4. 点击链接完成验证(8.30又被和谐咯, 现在只能走网页版滑块, 哎~)"
}
return dto
}
func NewFailObj(h interface{}, msg string) DTO {
return DTO{
Code: FAIL,
Data: h,
Text: msg,
}
}
func NewFailUUId(uuid string) DTO {
return DTO{
Code: FAIL_UUID,
Data: nil,
Text: fmt.Sprintf("%s 该链接不存在!", uuid),
}
}
func NewFAILDoesNotBelongToServer(uuid string) DTO {
return DTO{
Code: FAIL_DoesNotBelongToServer,
Data: nil,
Text: fmt.Sprintf("%s 不属于[%s]该服务器实例", uuid, srvconfig.GlobalSetting.TargetIp),
}
}
const (
FAIL_DATA = -1 //数据格式错误
FAIL_UUID = -2 //UUID 不存在
FAIL_Bound = -3 //账号被绑定
FAIL_Offline = -4 //账号掉线
FAIL_DoesNotBelongToServer = -5 //UUId不需要该服务器实例
SUCCESS = 200 // 执行成功
FAIL = 300 // 执行失败
)