@@ -24,6 +24,7 @@ import (
2424
2525 "github.com/gin-gonic/gin"
2626 "github.com/koderover/zadig/v2/pkg/types"
27+ "go.uber.org/zap"
2728
2829 commonmodels "github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/repository/models"
2930 "github.com/koderover/zadig/v2/pkg/microservice/aslan/core/common/service/template"
@@ -467,7 +468,8 @@ func SyncYamlTemplateReference(c *gin.Context) {
467468 return
468469 }
469470
470- internalhandler .InsertOperationLog (c , ctx .UserName , "" , "同步" , "模板-YAML" , c .Param ("id" ), c .Param ("id" ), "" , types .RequestBodyTypeJSON , ctx .Logger )
471+ detail , detailEn := buildYamlTemplateSyncLogDetail (c .Param ("id" ), ctx .Logger )
472+ internalhandler .InsertOperationLog (c , ctx .UserName , "" , "同步" , "模板-YAML" , detail , detailEn , "" , types .RequestBodyTypeJSON , ctx .Logger )
471473
472474 // authorization check
473475 if ! ctx .Resources .IsSystemAdmin {
@@ -480,6 +482,43 @@ func SyncYamlTemplateReference(c *gin.Context) {
480482 ctx .RespErr = templateservice .SyncYamlTemplateReference (ctx .UserName , c .Param ("id" ), ctx .Logger )
481483}
482484
485+ func buildYamlTemplateSyncLogDetail (templateID string , logger * zap.SugaredLogger ) (string , string ) {
486+ templateDetail , err := templateservice .GetYamlTemplateDetail (templateID , logger )
487+ if err != nil {
488+ logger .Warnf ("failed to get yaml template detail for operation log, templateID: %s, err: %v" , templateID , err )
489+ return templateID , templateID
490+ }
491+
492+ references , err := templateservice .GetYamlTemplateReference (templateID , logger )
493+ if err != nil {
494+ logger .Warnf ("failed to get yaml template references for operation log, templateID: %s, err: %v" , templateID , err )
495+ return fmt .Sprintf ("模板名称:%s" , templateDetail .Name ), fmt .Sprintf ("Template Name: %s" , templateDetail .Name )
496+ }
497+
498+ serviceRefs := make ([]string , 0 , len (references ))
499+ serviceRefsEn := make ([]string , 0 , len (references ))
500+ for _ , reference := range references {
501+ if reference == nil {
502+ continue
503+ }
504+ envTypeCN := "测试"
505+ envTypeEN := "test"
506+ if reference .Production {
507+ envTypeCN = "生产"
508+ envTypeEN = "production"
509+ }
510+ serviceRefs = append (serviceRefs , fmt .Sprintf ("%s/%s(%s)" , reference .ProjectName , reference .ServiceName , envTypeCN ))
511+ serviceRefsEn = append (serviceRefsEn , fmt .Sprintf ("%s/%s(%s)" , reference .ProjectName , reference .ServiceName , envTypeEN ))
512+ }
513+
514+ if len (serviceRefs ) == 0 {
515+ return fmt .Sprintf ("模板名称:%s" , templateDetail .Name ), fmt .Sprintf ("Template Name: %s" , templateDetail .Name )
516+ }
517+
518+ return fmt .Sprintf ("模板名称:%s\n 影响服务:\n %s" , templateDetail .Name , strings .Join (serviceRefs , "\n " )),
519+ fmt .Sprintf ("Template Name: %s\n Affected Services:\n %s" , templateDetail .Name , strings .Join (serviceRefsEn , "\n " ))
520+ }
521+
483522type getYamlTemplateVariablesReq struct {
484523 Content string `json:"content" binding:"required"`
485524 VariableYaml string `json:"variable_yaml" binding:"required"`
0 commit comments