add f
This commit is contained in:
@@ -227,12 +227,20 @@ func (c *Certification) ApproveEnterpriseInfoReview(authURL, authFlowID string,
|
||||
return nil
|
||||
}
|
||||
|
||||
// RejectEnterpriseInfoReview 管理员审核拒绝
|
||||
// RejectEnterpriseInfoReview 管理员拒绝企业信息(info_pending_review 或 info_submitted)
|
||||
func (c *Certification) RejectEnterpriseInfoReview(actorID, message string) error {
|
||||
if c.Status != enums.StatusInfoPendingReview {
|
||||
return fmt.Errorf("当前状态 %s 不允许执行审核拒绝", enums.GetStatusName(c.Status))
|
||||
if !enums.CanAdminRejectEnterpriseInfoPhase(c.Status) {
|
||||
return fmt.Errorf("当前认证已进入企业认证/合同阶段,不可拒绝企业信息")
|
||||
}
|
||||
failureReason := enums.FailureReasonManualReviewRejected
|
||||
if c.Status == enums.StatusInfoSubmitted {
|
||||
failureReason = enums.FailureReasonEsignVerificationFailed
|
||||
}
|
||||
c.setFailureInfo(failureReason, message)
|
||||
if c.Status == enums.StatusInfoSubmitted {
|
||||
c.AuthURL = ""
|
||||
c.AuthFlowID = ""
|
||||
}
|
||||
c.setFailureInfo(enums.FailureReasonManualReviewRejected, message)
|
||||
if err := c.TransitionTo(enums.StatusInfoRejected, enums.ActorTypeAdmin, actorID, "管理员审核拒绝"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -242,7 +242,8 @@ func GetNextValidStatuses(currentStatus CertificationStatus) []CertificationStat
|
||||
// 最终状态,无后续状态
|
||||
},
|
||||
StatusInfoRejected: {
|
||||
StatusInfoSubmitted, // 可以重新提交
|
||||
StatusInfoPendingReview, // 用户修正后重新提交,进入人工审核
|
||||
StatusInfoSubmitted, // 兼容旧路径:直接重新提交
|
||||
// 管理员/系统可直接标记为完成
|
||||
StatusCompleted,
|
||||
},
|
||||
@@ -289,6 +290,7 @@ func GetTransitionReason(from, to CertificationStatus) string {
|
||||
string(StatusContractSigned) + "->" + string(StatusCompleted): "系统处理完成,认证成功",
|
||||
string(StatusContractApplied) + "->" + string(StatusContractRejected): "用户拒绝签署合同",
|
||||
string(StatusContractApplied) + "->" + string(StatusContractExpired): "合同签署超时",
|
||||
string(StatusInfoRejected) + "->" + string(StatusInfoPendingReview): "用户修正后重新提交企业信息",
|
||||
string(StatusInfoRejected) + "->" + string(StatusInfoSubmitted): "用户重新提交企业信息",
|
||||
string(StatusContractRejected) + "->" + string(StatusEnterpriseVerified): "重置状态,准备重新申请",
|
||||
string(StatusContractExpired) + "->" + string(StatusEnterpriseVerified): "重置状态,准备重新申请",
|
||||
@@ -300,3 +302,8 @@ func GetTransitionReason(from, to CertificationStatus) string {
|
||||
}
|
||||
return "未知转换"
|
||||
}
|
||||
|
||||
// CanAdminRejectEnterpriseInfoPhase 是否允许管理员拒绝企业信息(仅 early phase)
|
||||
func CanAdminRejectEnterpriseInfoPhase(status CertificationStatus) bool {
|
||||
return status == StatusInfoPendingReview || status == StatusInfoSubmitted
|
||||
}
|
||||
|
||||
@@ -30,5 +30,7 @@ type EnterpriseInfoSubmitRecordRepository interface {
|
||||
FindLatestVerifiedByUserID(ctx context.Context, userID string) (*entities.EnterpriseInfoSubmitRecord, error)
|
||||
// ExistsByUnifiedSocialCodeExcludeUser 检查该统一社会信用代码是否已被其他用户提交(已提交/已通过验证,排除指定用户)
|
||||
ExistsByUnifiedSocialCodeExcludeUser(ctx context.Context, unifiedSocialCode string, excludeUserID string) (bool, error)
|
||||
// MarkRejectedAndFailedForUser 仅当提交记录属于指定用户且为 verified 时,标记人工拒绝并 failed(释放该用户占用的 USCC)
|
||||
MarkRejectedAndFailedForUser(ctx context.Context, recordID, userID, reviewerID, remark string) (updated bool, err error)
|
||||
List(ctx context.Context, filter ListSubmitRecordsFilter) (*ListSubmitRecordsResult, error)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user