2026-04-21 22:36:48 +08:00
|
|
|
|
package certification
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
|
"context"
|
|
|
|
|
|
|
|
|
|
|
|
"hyapi-server/internal/application/certification/dto/commands"
|
|
|
|
|
|
"hyapi-server/internal/application/certification/dto/queries"
|
|
|
|
|
|
"hyapi-server/internal/application/certification/dto/responses"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
// CertificationApplicationService 认证应用服务接口
|
|
|
|
|
|
// 负责用例协调,提供精简的应用层接口
|
|
|
|
|
|
type CertificationApplicationService interface {
|
|
|
|
|
|
// ================ 用户操作用例 ================
|
|
|
|
|
|
// 提交企业信息
|
|
|
|
|
|
SubmitEnterpriseInfo(ctx context.Context, cmd *commands.SubmitEnterpriseInfoCommand) (*responses.CertificationResponse, error)
|
|
|
|
|
|
// 确认状态
|
|
|
|
|
|
ConfirmAuth(ctx context.Context, cmd *queries.ConfirmAuthCommand) (*responses.ConfirmAuthResponse, error)
|
|
|
|
|
|
// 确认签署
|
|
|
|
|
|
ConfirmSign(ctx context.Context, cmd *queries.ConfirmSignCommand) (*responses.ConfirmSignResponse, error)
|
|
|
|
|
|
// 申请合同签署
|
|
|
|
|
|
ApplyContract(ctx context.Context, cmd *commands.ApplyContractCommand) (*responses.ContractSignUrlResponse, error)
|
2026-07-21 15:53:29 +08:00
|
|
|
|
// RefreshContractSignURL 重新获取签署 iframe 长链(法大大 EmbedURL 约 10 分钟/单次有效)
|
|
|
|
|
|
RefreshContractSignURL(ctx context.Context, userID string) (*responses.ContractSignUrlResponse, error)
|
|
|
|
|
|
// RefreshContractPreviewURL 获取签署任务预览链接(法大大 get-preview-url)
|
|
|
|
|
|
RefreshContractPreviewURL(ctx context.Context, userID string) (*responses.ContractPreviewUrlResponse, error)
|
|
|
|
|
|
// ListSignPlatforms 可选签署平台列表
|
|
|
|
|
|
ListSignPlatforms(ctx context.Context) (*responses.SignPlatformsResponse, error)
|
|
|
|
|
|
// SelectSignPlatform 选择签署平台并生成企业认证链接
|
|
|
|
|
|
SelectSignPlatform(ctx context.Context, cmd *commands.SelectSignPlatformCommand) (*responses.CertificationResponse, error)
|
2026-04-21 22:36:48 +08:00
|
|
|
|
|
|
|
|
|
|
// OCR营业执照识别
|
|
|
|
|
|
RecognizeBusinessLicense(ctx context.Context, imageBytes []byte) (*responses.BusinessLicenseResult, error)
|
|
|
|
|
|
|
|
|
|
|
|
// ================ 查询用例 ================
|
|
|
|
|
|
|
|
|
|
|
|
// 获取认证详情
|
|
|
|
|
|
GetCertification(ctx context.Context, query *queries.GetCertificationQuery) (*responses.CertificationResponse, error)
|
|
|
|
|
|
|
|
|
|
|
|
// 获取认证列表(管理员)
|
|
|
|
|
|
ListCertifications(ctx context.Context, query *queries.ListCertificationsQuery) (*responses.CertificationListResponse, error)
|
|
|
|
|
|
|
|
|
|
|
|
// ================ 管理员后台操作用例 ================
|
|
|
|
|
|
|
|
|
|
|
|
// AdminCompleteCertificationWithoutContract 管理员代用户完成认证(暂不关联合同)
|
|
|
|
|
|
AdminCompleteCertificationWithoutContract(ctx context.Context, cmd *commands.AdminCompleteCertificationCommand) (*responses.CertificationResponse, error)
|
|
|
|
|
|
|
|
|
|
|
|
// AdminListSubmitRecords 管理端分页查询企业信息提交记录
|
|
|
|
|
|
AdminListSubmitRecords(ctx context.Context, query *queries.AdminListSubmitRecordsQuery) (*responses.AdminSubmitRecordsListResponse, error)
|
|
|
|
|
|
// AdminGetSubmitRecordByID 管理端获取单条提交记录详情
|
|
|
|
|
|
AdminGetSubmitRecordByID(ctx context.Context, recordID string) (*responses.AdminSubmitRecordDetail, error)
|
|
|
|
|
|
// AdminApproveSubmitRecord 管理端审核通过(按提交记录 ID)
|
|
|
|
|
|
AdminApproveSubmitRecord(ctx context.Context, recordID, adminID, remark string) error
|
|
|
|
|
|
// AdminRejectSubmitRecord 管理端审核拒绝(按提交记录 ID)
|
|
|
|
|
|
AdminRejectSubmitRecord(ctx context.Context, recordID, adminID, remark string) error
|
|
|
|
|
|
// AdminTransitionCertificationStatus 管理端按用户变更认证状态(以状态机为准:info_submitted=通过 / info_rejected=拒绝)
|
|
|
|
|
|
AdminTransitionCertificationStatus(ctx context.Context, cmd *commands.AdminTransitionCertificationStatusCommand) error
|
|
|
|
|
|
|
2026-07-21 15:53:29 +08:00
|
|
|
|
// ================ 第三方回调处理 ================
|
2026-04-21 22:36:48 +08:00
|
|
|
|
|
|
|
|
|
|
// 处理e签宝回调
|
|
|
|
|
|
HandleEsignCallback(ctx context.Context, cmd *commands.EsignCallbackCommand) error
|
2026-07-21 15:53:29 +08:00
|
|
|
|
// 处理法大大回调
|
|
|
|
|
|
HandleFadadaCallback(ctx context.Context, headers map[string]string, body []byte) error
|
2026-04-21 22:36:48 +08:00
|
|
|
|
}
|