补齐三套环境配置、测试环境部署门禁与 system_config 初始化,并按当前无企微应用的约束将企微凭据改为明文存储。 Constraint: 当前测试环境尚无企微应用及历史企微密文数据 Rejected: 使用启动环境变量加密企微凭据 | 用户明确要求直接明文保存并移除加密密钥 Confidence: high Scope-risk: moderate Directive: 企微真实闭环完成前保持两个旧审批入口开关为 true Tested: gofmt;git diff --check;bash -n;docker compose config;Gitea workflow YAML 解析;OpenAPI 重新生成 Not-tested: go test;常规 go build;LSP;实际数据库迁移;真实测试环境部署;企微真实联调
73 lines
4.8 KiB
Go
73 lines
4.8 KiB
Go
package dto
|
||
|
||
import "time"
|
||
|
||
// SaveWeComApplicationRequest 保存企业微信自建应用请求。
|
||
type SaveWeComApplicationRequest struct {
|
||
CorpID string `json:"corp_id" validate:"required,min=1,max=64" description:"企业微信企业 ID"`
|
||
AgentID int64 `json:"agent_id" validate:"required,gt=0" description:"企业微信自建应用 AgentID"`
|
||
Name string `json:"name" validate:"required,min=1,max=100" description:"应用展示名称"`
|
||
Secret string `json:"secret" validate:"required,min=1,max=512" description:"应用 Secret,服务端明文保存"`
|
||
CallbackToken string `json:"callback_token" validate:"required,min=1,max=512" description:"回调 Token,服务端明文保存"`
|
||
EncodingAESKey string `json:"encoding_aes_key" validate:"required,len=43" description:"回调 EncodingAESKey,服务端明文保存"`
|
||
Status int `json:"status" validate:"oneof=0 1" enum:"0,1" description:"状态 (0:禁用, 1:启用)"`
|
||
}
|
||
|
||
// WeComApplicationListRequest 查询企业微信应用配置列表请求。
|
||
type WeComApplicationListRequest struct {
|
||
Page int `json:"page" query:"page" validate:"omitempty,min=1" minimum:"1" default:"1" description:"页码,默认 1"`
|
||
PageSize int `json:"page_size" query:"page_size" validate:"omitempty,min=1,max=100" minimum:"1" maximum:"100" default:"20" description:"每页数量,默认 20,最大 100"`
|
||
}
|
||
|
||
// WeComApplicationResponse 企业微信应用配置响应,仅允许超级管理员读取明文凭据。
|
||
type WeComApplicationResponse struct {
|
||
ID uint `json:"id" description:"应用配置 ID"`
|
||
CorpID string `json:"corp_id" description:"企业微信企业 ID"`
|
||
AgentID int64 `json:"agent_id" description:"企业微信自建应用 AgentID"`
|
||
Name string `json:"name" description:"应用展示名称"`
|
||
Secret string `json:"secret" description:"应用 Secret 明文,仅超级管理员可见"`
|
||
CallbackToken string `json:"callback_token" description:"回调 Token 明文,仅超级管理员可见"`
|
||
EncodingAESKey string `json:"encoding_aes_key" description:"回调 EncodingAESKey 明文,仅超级管理员可见"`
|
||
DefaultCreatorUserID string `json:"default_creator_userid" description:"代理等非企微账号发起审批时使用的默认企微成员 userid"`
|
||
DefaultCreatorName string `json:"default_creator_name" description:"默认企微审批发起人姓名快照"`
|
||
Status int `json:"status" description:"状态 (0:禁用, 1:启用)"`
|
||
StatusName string `json:"status_name" description:"状态名称(中文)"`
|
||
CredentialsSet bool `json:"credentials_set" description:"Secret、回调 Token 和 EncodingAESKey 是否均已配置"`
|
||
LastConnectedAt *time.Time `json:"last_connected_at" description:"最近一次成功取得 access_token 的时间"`
|
||
CreatedAt time.Time `json:"created_at" description:"创建时间"`
|
||
UpdatedAt time.Time `json:"updated_at" description:"更新时间"`
|
||
}
|
||
|
||
// SaveWeComDefaultCreatorRequest 保存企业微信应用默认审批发起人请求。
|
||
type SaveWeComDefaultCreatorRequest struct {
|
||
UserID string `json:"userid" validate:"required,min=1,max=64" description:"从应用当前可见成员中选择的默认发起人 userid"`
|
||
}
|
||
|
||
// SaveWeComDefaultCreatorParams 保存默认审批发起人的路径与请求参数。
|
||
type SaveWeComDefaultCreatorParams struct {
|
||
ID uint `path:"id" required:"true" description:"企业微信应用配置 ID"`
|
||
SaveWeComDefaultCreatorRequest
|
||
}
|
||
|
||
// WeComApplicationListResponse 企业微信应用列表响应。
|
||
type WeComApplicationListResponse struct {
|
||
Items []WeComApplicationResponse `json:"items" description:"企业微信应用配置列表"`
|
||
Total int64 `json:"total" description:"总数量"`
|
||
Page int `json:"page" description:"当前页码"`
|
||
PageSize int `json:"page_size" description:"每页数量"`
|
||
}
|
||
|
||
// WeComConnectionTestResponse 企业微信连接测试响应。
|
||
type WeComConnectionTestResponse struct {
|
||
Success bool `json:"success" description:"是否成功取得 access_token"`
|
||
}
|
||
|
||
// WeComApprovalCallbackRequest 企业微信审批回调路径与签名参数。
|
||
type WeComApprovalCallbackRequest struct {
|
||
ApplicationID uint `path:"application_id" required:"true" minimum:"1" description:"企业微信应用配置 ID"`
|
||
MsgSignature string `query:"msg_signature" required:"true" description:"企业微信回调消息签名"`
|
||
Timestamp string `query:"timestamp" required:"true" description:"企业微信回调时间戳"`
|
||
Nonce string `query:"nonce" required:"true" description:"企业微信回调随机串"`
|
||
EchoStr string `query:"echostr" description:"GET 回调地址验证使用的加密随机串"`
|
||
}
|