f
This commit is contained in:
@@ -467,7 +467,9 @@ func (s *UserAggregateServiceImpl) CheckUnifiedSocialCodeExists(ctx context.Cont
|
||||
return exists, nil
|
||||
}
|
||||
|
||||
// CreateOrUpdateEnterpriseInfo 认证域专用:写入/覆盖企业信息
|
||||
// CreateOrUpdateEnterpriseInfo 认证域专用:按两条链路写入企业信息
|
||||
// - 新用户:尚无企业信息 → 创建
|
||||
// - 重新认证:已有企业信息 → 覆盖更新
|
||||
func (s *UserAggregateServiceImpl) CreateOrUpdateEnterpriseInfo(
|
||||
ctx context.Context,
|
||||
userID, companyName, unifiedSocialCode, legalPersonName, legalPersonID, legalPersonPhone, enterpriseAddress string,
|
||||
@@ -476,19 +478,44 @@ func (s *UserAggregateServiceImpl) CreateOrUpdateEnterpriseInfo(
|
||||
if err != nil {
|
||||
return fmt.Errorf("用户不存在: %w", err)
|
||||
}
|
||||
if user.EnterpriseInfo == nil {
|
||||
enterpriseInfo, err := entities.NewEnterpriseInfo(userID, companyName, unifiedSocialCode, legalPersonName, legalPersonID, legalPersonPhone, enterpriseAddress)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
user.EnterpriseInfo = enterpriseInfo
|
||||
} else {
|
||||
err := user.EnterpriseInfo.UpdateEnterpriseInfo(companyName, unifiedSocialCode, legalPersonName, legalPersonID, legalPersonPhone, enterpriseAddress)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 统一校验 USCC(排除本人),新用户创建与重新认证更新均适用
|
||||
exists, err := s.CheckUnifiedSocialCodeExists(ctx, unifiedSocialCode, userID)
|
||||
if err != nil {
|
||||
return fmt.Errorf("检查统一社会信用代码失败: %w", err)
|
||||
}
|
||||
return s.SaveUser(ctx, user)
|
||||
if exists {
|
||||
return fmt.Errorf("统一社会信用代码已被其他用户使用")
|
||||
}
|
||||
|
||||
if user.HasEnterpriseInfo() {
|
||||
s.logger.Info("重新认证链路:更新已有企业信息",
|
||||
zap.String("user_id", userID),
|
||||
zap.String("unified_social_code", unifiedSocialCode),
|
||||
zap.String("enterprise_info_id", user.EnterpriseInfo.ID),
|
||||
)
|
||||
if err := user.UpdateEnterpriseInfo(companyName, unifiedSocialCode, legalPersonName, legalPersonID, legalPersonPhone, enterpriseAddress); err != nil {
|
||||
return fmt.Errorf("更新企业信息失败: %w", err)
|
||||
}
|
||||
if err := s.SaveUser(ctx, user); err != nil {
|
||||
return fmt.Errorf("保存企业信息失败: %w", err)
|
||||
}
|
||||
s.logger.Info("重新认证链路:企业信息更新成功", zap.String("user_id", userID))
|
||||
return nil
|
||||
}
|
||||
|
||||
s.logger.Info("新用户认证链路:创建企业信息",
|
||||
zap.String("user_id", userID),
|
||||
zap.String("unified_social_code", unifiedSocialCode),
|
||||
)
|
||||
if err := user.CreateEnterpriseInfo(companyName, unifiedSocialCode, legalPersonName, legalPersonID, legalPersonPhone, enterpriseAddress); err != nil {
|
||||
return fmt.Errorf("创建企业信息失败: %w", err)
|
||||
}
|
||||
if err := s.SaveUser(ctx, user); err != nil {
|
||||
return fmt.Errorf("保存企业信息失败: %w", err)
|
||||
}
|
||||
s.logger.Info("新用户认证链路:企业信息创建成功", zap.String("user_id", userID))
|
||||
return nil
|
||||
}
|
||||
|
||||
// CompleteCertification 完成认证
|
||||
|
||||
Reference in New Issue
Block a user