f
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user