This commit is contained in:
@@ -62,6 +62,34 @@ func NewSceneService(db *gorm.DB, provider TemplateProvider, repo SceneRepositor
|
||||
return &SceneService{db: db, provider: provider, repo: repo, audit: audit, now: time.Now}
|
||||
}
|
||||
|
||||
// InspectTemplate 实时读取企微模板详情,供管理员配置控件映射。
|
||||
func (s *SceneService) InspectTemplate(ctx context.Context, applicationID uint, request dto.InspectWeComTemplateRequest) (*dto.WeComTemplateDetailResponse, error) {
|
||||
if s == nil || s.provider == nil {
|
||||
return nil, errors.New(errors.CodeServiceUnavailable, "企业微信模板服务未配置")
|
||||
}
|
||||
if middleware.GetUserTypeFromContext(ctx) != constants.UserTypeSuperAdmin {
|
||||
return nil, errors.New(errors.CodeForbidden)
|
||||
}
|
||||
templateID := strings.TrimSpace(request.TemplateID)
|
||||
if applicationID == 0 || templateID == "" {
|
||||
return nil, errors.New(errors.CodeInvalidParam)
|
||||
}
|
||||
definition, err := s.provider.GetTemplateDetail(ctx, applicationID, templateID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
controls := make([]dto.WeComTemplateControlResponse, 0, len(definition.Controls))
|
||||
for _, control := range definition.Controls {
|
||||
controls = append(controls, dto.WeComTemplateControlResponse{
|
||||
ID: control.ID, Type: control.Type, Title: control.Title,
|
||||
Required: control.Required, OptionKeys: control.OptionKeys,
|
||||
})
|
||||
}
|
||||
return &dto.WeComTemplateDetailResponse{
|
||||
TemplateID: definition.TemplateID, Name: definition.Name, Controls: controls,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// Save 校验模板控件后创建或替换指定稳定业务场景映射。
|
||||
func (s *SceneService) Save(ctx context.Context, businessType string, request dto.SaveWeComApprovalSceneRequest) (*dto.WeComApprovalSceneResponse, error) {
|
||||
if s == nil || s.db == nil || s.provider == nil || s.repo == nil {
|
||||
|
||||
Reference in New Issue
Block a user