This commit is contained in:
2026-07-26 22:24:57 +08:00
parent e51056e0eb
commit 6631f8d382
6 changed files with 144 additions and 0 deletions

View File

@@ -1003,6 +1003,48 @@ func (s *CertificationApplicationServiceImpl) AdminCompleteCertificationWithoutC
return response, nil
}
// AdminResetForResignContract 管理员触发重新认证(回退到提交企业信息)
// 回退到 pending用户可重新填写企业信息并走完整流程不改 is_certified不动钱包/API Key/历史合同
func (s *CertificationApplicationServiceImpl) AdminResetForResignContract(
ctx context.Context,
cmd *commands.AdminResetForResignContractCommand,
) (*responses.CertificationResponse, error) {
s.logger.Info("管理员触发重新认证",
zap.String("admin_id", cmd.AdminID),
zap.String("user_id", cmd.UserID),
zap.String("reason", cmd.Reason),
)
if strings.TrimSpace(cmd.UserID) == "" {
return nil, fmt.Errorf("用户ID不能为空")
}
if strings.TrimSpace(cmd.Reason) == "" {
return nil, fmt.Errorf("请填写操作原因")
}
cert, err := s.aggregateService.LoadCertificationByUserID(ctx, cmd.UserID)
if err != nil {
return nil, fmt.Errorf("加载认证信息失败: %s", err.Error())
}
if err := cert.ResetForResignContract(cmd.AdminID, fmt.Sprintf("管理员触发重新认证:%s", cmd.Reason)); err != nil {
return nil, err
}
if err := s.aggregateService.SaveCertification(ctx, cert); err != nil {
return nil, fmt.Errorf("保存认证信息失败: %s", err.Error())
}
response := s.convertToResponse(cert)
s.logger.Info("管理员触发重新认证成功",
zap.String("admin_id", cmd.AdminID),
zap.String("user_id", cmd.UserID),
zap.String("certification_id", cert.ID),
zap.String("status", string(cert.Status)),
)
return response, nil
}
// AdminListSubmitRecords 管理端分页查询企业信息提交记录
func (s *CertificationApplicationServiceImpl) AdminListSubmitRecords(
ctx context.Context,