This commit is contained in:
2026-02-25 19:33:56 +08:00
parent 8c0c16006e
commit f17e22f4c8
8 changed files with 383 additions and 20 deletions

View File

@@ -18,7 +18,9 @@ import (
"tyapi-server/internal/domains/certification/services"
finance_service "tyapi-server/internal/domains/finance/services"
user_entities "tyapi-server/internal/domains/user/entities"
user_service "tyapi-server/internal/domains/user/services"
user_service "tyapi-server/internal/domains/user/services"
"tyapi-server/internal/config"
"tyapi-server/internal/infrastructure/external/notification"
"tyapi-server/internal/infrastructure/external/storage"
"tyapi-server/internal/shared/database"
"tyapi-server/internal/shared/esign"
@@ -47,7 +49,8 @@ type CertificationApplicationServiceImpl struct {
enterpriseInfoSubmitRecordRepo repositories.EnterpriseInfoSubmitRecordRepository
txManager *database.TransactionManager
logger *zap.Logger
wechatWorkService *notification.WeChatWorkService
logger *zap.Logger
}
// NewCertificationApplicationService 创建认证应用服务
@@ -67,7 +70,12 @@ func NewCertificationApplicationService(
ocrService sharedOCR.OCRService,
txManager *database.TransactionManager,
logger *zap.Logger,
cfg *config.Config,
) CertificationApplicationService {
var wechatSvc *notification.WeChatWorkService
if cfg != nil && cfg.WechatWork.WebhookURL != "" {
wechatSvc = notification.NewWeChatWorkService(cfg.WechatWork.WebhookURL, cfg.WechatWork.Secret, logger)
}
return &CertificationApplicationServiceImpl{
aggregateService: aggregateService,
userAggregateService: userAggregateService,
@@ -83,6 +91,7 @@ func NewCertificationApplicationService(
enterpriseInfoSubmitRecordService: enterpriseInfoSubmitRecordService,
ocrService: ocrService,
txManager: txManager,
wechatWorkService: wechatSvc,
logger: logger,
}
}
@@ -1104,6 +1113,35 @@ func (s *CertificationApplicationServiceImpl) completeUserActivationWithoutContr
return err
}
// 企业认证成功企业微信通知(仅展示企业名称和联系手机)
if s.wechatWorkService != nil {
user, err := s.userAggregateService.GetUserWithEnterpriseInfo(ctx, cert.UserID)
if err == nil {
companyName := "未知企业"
phone := ""
if user.EnterpriseInfo != nil {
companyName = user.EnterpriseInfo.CompanyName
if user.EnterpriseInfo.LegalPersonPhone != "" {
phone = user.EnterpriseInfo.LegalPersonPhone
}
}
if user.Phone != "" && phone == "" {
phone = user.Phone
}
content := fmt.Sprintf(
"### 【天远API】企业认证成功\n"+
"> 企业名称:%s\n"+
"> 联系手机:%s\n"+
"> 完成时间:%s\n"+
"\n该企业已完成认证请相关同事同步更新内部系统。",
companyName,
phone,
time.Now().Format("2006-01-02 15:04:05"),
)
_ = s.wechatWorkService.SendMarkdownMessage(ctx, content)
}
}
return nil
}