Files
junhong_cmp_fiber/internal/model/dto/wecom_dto.go
break cb26217205 让七月迭代具备可直接部署的配置基线
补齐三套环境配置、测试环境部署门禁与 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;实际数据库迁移;真实测试环境部署;企微真实联调
2026-07-25 18:18:45 +08:00

73 lines
4.8 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 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 回调地址验证使用的加密随机串"`
}