92 lines
4.2 KiB
Go
92 lines
4.2 KiB
Go
package repositories
|
|
|
|
import (
|
|
"context"
|
|
"tyapi-server/internal/domains/certification/entities"
|
|
"tyapi-server/internal/domains/certification/repositories/queries"
|
|
"tyapi-server/internal/shared/interfaces"
|
|
)
|
|
|
|
// CertificationStats 认证统计信息
|
|
type CertificationStats struct {
|
|
TotalCertifications int64
|
|
PendingCertifications int64
|
|
CompletedCertifications int64
|
|
TodaySubmissions int64
|
|
}
|
|
|
|
// CertificationRepository 认证申请仓储接口
|
|
type CertificationRepository interface {
|
|
interfaces.Repository[entities.Certification]
|
|
|
|
// 基础查询 - 直接使用实体
|
|
GetByUserID(ctx context.Context, userID string) (*entities.Certification, error)
|
|
GetByStatus(ctx context.Context, status string) ([]*entities.Certification, error)
|
|
GetPendingCertifications(ctx context.Context) ([]*entities.Certification, error)
|
|
GetByAuthFlowID(ctx context.Context, authFlowID string) (entities.Certification, error)
|
|
GetByEsignFlowID(ctx context.Context, esignFlowID string) (entities.Certification, error)
|
|
// 复杂查询 - 使用查询参数
|
|
ListCertifications(ctx context.Context, query *queries.ListCertificationsQuery) ([]*entities.Certification, int64, error)
|
|
|
|
// 业务操作
|
|
UpdateStatus(ctx context.Context, certificationID string, status string) error
|
|
|
|
// 统计信息
|
|
GetStats(ctx context.Context) (*CertificationStats, error)
|
|
GetStatsByDateRange(ctx context.Context, startDate, endDate string) (*CertificationStats, error)
|
|
}
|
|
|
|
// EnterpriseInfoSubmitRecordRepository 企业信息提交记录仓储接口
|
|
type EnterpriseInfoSubmitRecordRepository interface {
|
|
interfaces.Repository[entities.EnterpriseInfoSubmitRecord]
|
|
|
|
// 基础查询
|
|
GetByUserID(ctx context.Context, userID string) ([]*entities.EnterpriseInfoSubmitRecord, error)
|
|
GetLatestByUserID(ctx context.Context, userID string) (*entities.EnterpriseInfoSubmitRecord, error)
|
|
|
|
// 复杂查询
|
|
ListRecords(ctx context.Context, query *queries.ListEnterpriseInfoSubmitRecordsQuery) ([]*entities.EnterpriseInfoSubmitRecord, int64, error)
|
|
|
|
// 业务操作
|
|
UpdateStatus(ctx context.Context, recordID string, status string, reason string) error
|
|
}
|
|
|
|
// EsignContractGenerateRecordRepository e签宝生成合同记录仓储接口
|
|
type EsignContractGenerateRecordRepository interface {
|
|
interfaces.Repository[entities.EsignContractGenerateRecord]
|
|
|
|
// 基础查询
|
|
GetByCertificationID(ctx context.Context, certificationID string) (*entities.EsignContractGenerateRecord, error)
|
|
GetByUserID(ctx context.Context, userID string) ([]*entities.EsignContractGenerateRecord, error)
|
|
GetLatestByCertificationID(ctx context.Context, certificationID string) (*entities.EsignContractGenerateRecord, error)
|
|
|
|
// 复杂查询
|
|
ListRecords(ctx context.Context, query *queries.ListEsignContractGenerateRecordsQuery) ([]*entities.EsignContractGenerateRecord, int64, error)
|
|
|
|
// 业务操作
|
|
UpdateStatus(ctx context.Context, recordID string, status string, reason string) error
|
|
UpdateSuccessInfo(ctx context.Context, recordID, esignFlowID, contractFileID, contractURL string) error
|
|
IncrementRetry(ctx context.Context, recordID string) error
|
|
}
|
|
|
|
// EsignContractSignRecordRepository e签宝签署合同记录仓储接口
|
|
type EsignContractSignRecordRepository interface {
|
|
interfaces.Repository[entities.EsignContractSignRecord]
|
|
|
|
// 基础查询
|
|
GetByCertificationID(ctx context.Context, certificationID string) (*entities.EsignContractSignRecord, error)
|
|
GetByUserID(ctx context.Context, userID string) ([]*entities.EsignContractSignRecord, error)
|
|
GetLatestByCertificationID(ctx context.Context, certificationID string) (*entities.EsignContractSignRecord, error)
|
|
GetByGenerateRecordID(ctx context.Context, generateRecordID string) (*entities.EsignContractSignRecord, error)
|
|
|
|
// 复杂查询
|
|
ListRecords(ctx context.Context, query *queries.ListEsignContractSignRecordsQuery) ([]*entities.EsignContractSignRecord, int64, error)
|
|
|
|
// 业务操作
|
|
UpdateStatus(ctx context.Context, recordID string, status string, reason string) error
|
|
UpdateSuccessInfo(ctx context.Context, recordID, signedFileURL string) error
|
|
SetSignURL(ctx context.Context, recordID, signURL string) error
|
|
IncrementRetry(ctx context.Context, recordID string) error
|
|
MarkExpiredRecords(ctx context.Context) error
|
|
}
|