99 lines
4.0 KiB
Go
99 lines
4.0 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
|
|
RejectedCertifications 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)
|
|
|
|
// 复杂查询 - 使用查询参数
|
|
ListCertifications(ctx context.Context, query *queries.ListCertificationsQuery) ([]*entities.Certification, int64, error)
|
|
|
|
// 业务操作
|
|
UpdateStatus(ctx context.Context, certificationID string, status string, adminID *string, notes string) error
|
|
|
|
// 统计信息
|
|
GetStats(ctx context.Context) (*CertificationStats, error)
|
|
GetStatsByDateRange(ctx context.Context, startDate, endDate string) (*CertificationStats, error)
|
|
}
|
|
|
|
// FaceVerifyRecordRepository 人脸识别记录仓储接口
|
|
type FaceVerifyRecordRepository interface {
|
|
interfaces.Repository[entities.FaceVerifyRecord]
|
|
|
|
// 基础查询 - 直接使用实体
|
|
GetByCertificationID(ctx context.Context, certificationID string) ([]*entities.FaceVerifyRecord, error)
|
|
GetLatestByCertificationID(ctx context.Context, certificationID string) (*entities.FaceVerifyRecord, error)
|
|
|
|
// 复杂查询 - 使用查询参数
|
|
ListRecords(ctx context.Context, query *queries.ListFaceVerifyRecordsQuery) ([]*entities.FaceVerifyRecord, int64, error)
|
|
|
|
// 统计信息
|
|
GetSuccessRate(ctx context.Context, days int) (float64, error)
|
|
}
|
|
|
|
// ContractRecordRepository 合同记录仓储接口
|
|
type ContractRecordRepository interface {
|
|
interfaces.Repository[entities.ContractRecord]
|
|
|
|
// 基础查询 - 直接使用实体
|
|
GetByCertificationID(ctx context.Context, certificationID string) ([]*entities.ContractRecord, error)
|
|
GetLatestByCertificationID(ctx context.Context, certificationID string) (*entities.ContractRecord, error)
|
|
|
|
// 复杂查询 - 使用查询参数
|
|
ListRecords(ctx context.Context, query *queries.ListContractRecordsQuery) ([]*entities.ContractRecord, int64, error)
|
|
|
|
// 业务操作
|
|
UpdateContractStatus(ctx context.Context, recordID string, status string, adminID *string, notes string) error
|
|
}
|
|
|
|
// LicenseUploadRecordRepository 营业执照上传记录仓储接口
|
|
type LicenseUploadRecordRepository interface {
|
|
interfaces.Repository[entities.LicenseUploadRecord]
|
|
|
|
// 基础查询 - 直接使用实体
|
|
GetByCertificationID(ctx context.Context, certificationID string) (*entities.LicenseUploadRecord, error)
|
|
|
|
// 复杂查询 - 使用查询参数
|
|
ListRecords(ctx context.Context, query *queries.ListLicenseUploadRecordsQuery) ([]*entities.LicenseUploadRecord, int64, error)
|
|
|
|
// 业务操作
|
|
UpdateOCRResult(ctx context.Context, recordID string, ocrResult string, confidence float64) error
|
|
}
|
|
|
|
// NotificationRecordRepository 通知记录仓储接口
|
|
type NotificationRecordRepository interface {
|
|
interfaces.Repository[entities.NotificationRecord]
|
|
|
|
// 基础查询 - 直接使用实体
|
|
GetByCertificationID(ctx context.Context, certificationID string) ([]*entities.NotificationRecord, error)
|
|
GetUnreadByUserID(ctx context.Context, userID string) ([]*entities.NotificationRecord, error)
|
|
|
|
// 复杂查询 - 使用查询参数
|
|
ListRecords(ctx context.Context, query *queries.ListNotificationRecordsQuery) ([]*entities.NotificationRecord, int64, error)
|
|
|
|
// 批量操作
|
|
BatchCreate(ctx context.Context, records []entities.NotificationRecord) error
|
|
MarkAsRead(ctx context.Context, recordIDs []string) error
|
|
MarkAllAsReadByUser(ctx context.Context, userID string) error
|
|
}
|