Преглед изворни кода

1.页面配置主表、组件类型编码、页面组件实例表、轮播图配置表、直播配置表、宣传视频配置表、品质农产配置表移除租户id权限控制
2.新增溯源视频上传模块

kongxianghui пре 2 месеци
родитељ
комит
6f82448509
34 измењених фајлова са 394 додато и 57 уклоњено
  1. 0 1
      application/domain/mini_carousel_config/entity.go
  2. 0 1
      application/domain/mini_carousel_config/info.go
  3. 0 2
      application/domain/mini_carousel_config/request_params.go
  4. 0 1
      application/domain/mini_component_type/entity.go
  5. 0 1
      application/domain/mini_component_type/info.go
  6. 0 2
      application/domain/mini_component_type/request_params.go
  7. 0 1
      application/domain/mini_live_config/entity.go
  8. 0 1
      application/domain/mini_live_config/info.go
  9. 0 2
      application/domain/mini_live_config/request_params.go
  10. 0 1
      application/domain/mini_page_component/entity.go
  11. 0 1
      application/domain/mini_page_component/info.go
  12. 0 2
      application/domain/mini_page_component/request_params.go
  13. 0 1
      application/domain/mini_page_config/entity.go
  14. 0 1
      application/domain/mini_page_config/info.go
  15. 0 2
      application/domain/mini_page_config/request_params.go
  16. 3 4
      application/domain/mini_quality_product_config/entity.go
  17. 0 1
      application/domain/mini_quality_product_config/info.go
  18. 3 5
      application/domain/mini_quality_product_config/request_params.go
  19. 0 1
      application/domain/mini_video_config/entity.go
  20. 0 1
      application/domain/mini_video_config/info.go
  21. 1 2
      application/domain/mini_video_config/request_params.go
  22. 56 0
      application/domain/traceability_video/entity.go
  23. 18 0
      application/domain/traceability_video/info.go
  24. 44 0
      application/domain/traceability_video/request_params.go
  25. 0 3
      application/service/mini_carousel_config.go
  26. 0 3
      application/service/mini_component_type.go
  27. 0 3
      application/service/mini_live_config.go
  28. 1 5
      application/service/mini_page_component.go
  29. 0 3
      application/service/mini_page_config.go
  30. 0 3
      application/service/mini_quality_product_config.go
  31. 14 3
      application/service/mini_video_config.go
  32. 1 0
      application/service/service.go
  33. 201 0
      application/service/traceability_video.go
  34. 52 0
      deployment/data_service/data_containers/traceability_video.yaml

+ 0 - 1
application/domain/mini_carousel_config/entity.go

@@ -48,7 +48,6 @@ type Entity struct {
 	LinkParams  string `sqlmapping:"column:link_params;" sqlresult:"column:link_params;" check:"required,when=create/update"`
 	SortOrder   int    `sqlmapping:"column:sort_order;" sqlresult:"column:sort_order;" check:"required,when=create/update"`
 	IsEnabled   string `sqlmapping:"column:is_enabled;" sqlresult:"column:is_enabled;" check:"required,lte=10,when=create/update"`
-	entity.TenantIDField
 	entity.UserIDFields
 	entity.OperatorUserNameField
 	entity.TimeFields

+ 0 - 1
application/domain/mini_carousel_config/info.go

@@ -14,7 +14,6 @@ type Info struct {
 	LinkParams  string `json:"linkParams" sqlresult:"column:link_params;"`
 	SortOrder   int    `json:"sortOrder" sqlresult:"column:sort_order;"`
 	IsEnabled   string `json:"isEnabled" sqlresult:"column:is_enabled;"`
-	application.InfoTenantIDField
 	application.InfoUserIDFields
 	application.InfoTimeFields
 }

+ 0 - 2
application/domain/mini_carousel_config/request_params.go

@@ -14,7 +14,6 @@ type (
 		LinkParams  string `json:"linkParams" binding:"required" assign:"toField:LinkParams"`
 		SortOrder   int    `json:"sortOrder" binding:"required" assign:"toField:SortOrder"`
 		IsEnabled   string `json:"isEnabled" binding:"required" assign:"toField:IsEnabled"`
-		request.TenantIDJsonBody
 		request.CreateUserIDJsonBody
 		request.OperatorUserNameJsonBody
 	}
@@ -44,7 +43,6 @@ type (
 		LinkType    int    `form:"linkType" assign:"toField:LinkType"`
 		IsEnabled   string `form:"isEnabled" assign:"toField:IsEnabled"`
 		request.BaseQueryParams
-		request.TenantIDQueryParam
 	}
 
 	GetMiniCarouselConfigQueryParams2 struct {

+ 0 - 1
application/domain/mini_component_type/entity.go

@@ -40,7 +40,6 @@ type Entity struct {
 	ComponentConfig string `sqlmapping:"column:component_config;" sqlresult:"column:component_config;" check:"required,when=create/update"`
 	IsEnabled       string `sqlmapping:"column:is_enabled;" sqlresult:"column:is_enabled;" check:"required,lte=10,when=create/update"`
 	SortOrder       int    `sqlmapping:"column:sort_order;" sqlresult:"column:sort_order;" check:"required,when=create/update"`
-	entity.TenantIDField
 	entity.UserIDFields
 	entity.OperatorUserNameField
 	entity.TimeFields

+ 0 - 1
application/domain/mini_component_type/info.go

@@ -12,7 +12,6 @@ type Info struct {
 	ComponentConfig string `json:"componentConfig" sqlresult:"column:component_config;"`
 	IsEnabled       string `json:"isEnabled" sqlresult:"column:is_enabled;"`
 	SortOrder       int    `json:"sortOrder" sqlresult:"column:sort_order;"`
-	application.InfoTenantIDField
 	application.InfoUserIDFields
 	application.InfoTimeFields
 }

+ 0 - 2
application/domain/mini_component_type/request_params.go

@@ -12,7 +12,6 @@ type (
 		ComponentConfig string `json:"componentConfig" binding:"required" assign:"toField:ComponentConfig"`
 		IsEnabled       string `json:"isEnabled" binding:"required" assign:"toField:IsEnabled"`
 		SortOrder       int    `json:"sortOrder" binding:"required" assign:"toField:SortOrder"`
-		request.TenantIDJsonBody
 		request.CreateUserIDJsonBody
 		request.OperatorUserNameJsonBody
 	}
@@ -40,7 +39,6 @@ type (
 		TypeName  string `form:"typeName" assign:"toField:TypeName"`
 		IsEnabled string `form:"isEnabled" assign:"toField:IsEnabled"`
 		request.BaseQueryParams
-		request.TenantIDQueryParam
 	}
 
 	GetMiniComponentTypeQueryParams struct {

+ 0 - 1
application/domain/mini_live_config/entity.go

@@ -48,7 +48,6 @@ type Entity struct {
 	PlaceholderImage string `sqlmapping:"column:placeholder_image;" sqlresult:"column:placeholder_image;" check:"required,lte=500,when=create/update"`
 	PlaceholderText  string `sqlmapping:"column:placeholder_text;" sqlresult:"column:placeholder_text;" check:"required,lte=200,when=create/update"`
 	IsEnabled        string `sqlmapping:"column:is_enabled;" sqlresult:"column:is_enabled;" check:"required,lte=10,when=create/update"`
-	entity.TenantIDField
 	entity.UserIDFields
 	entity.OperatorUserNameField
 	entity.TimeFields

+ 0 - 1
application/domain/mini_live_config/info.go

@@ -17,7 +17,6 @@ type Info struct {
 	PlaceholderImage    []oss.FileObject `json:"placeholderImage" sqlresult:"column:-;"`
 	PlaceholderText     string           `json:"placeholderText" sqlresult:"column:placeholder_text;"`
 	IsEnabled           string           `json:"isEnabled" sqlresult:"column:is_enabled;"`
-	application.InfoTenantIDField
 	application.InfoUserIDFields
 	application.InfoTimeFields
 }

+ 0 - 2
application/domain/mini_live_config/request_params.go

@@ -14,7 +14,6 @@ type (
 		PlaceholderImage string `json:"placeholderImage" binding:"required" assign:"toField:PlaceholderImage"`
 		PlaceholderText  string `json:"placeholderText" binding:"required" assign:"toField:PlaceholderText"`
 		IsEnabled        string `json:"isEnabled" binding:"required" assign:"toField:IsEnabled"`
-		request.TenantIDJsonBody
 		request.CreateUserIDJsonBody
 		request.OperatorUserNameJsonBody
 	}
@@ -42,7 +41,6 @@ type (
 	GetMiniLiveConfigsQueryParams struct {
 		ComponentID string `form:"componentId" assign:"toField:ComponentID"`
 		request.BaseQueryParams
-		request.TenantIDQueryParam
 	}
 
 	GetMiniLiveConfigQueryParams struct {

+ 0 - 1
application/domain/mini_page_component/entity.go

@@ -40,7 +40,6 @@ type Entity struct {
 	ComponentConfig string `sqlmapping:"column:component_config;" sqlresult:"column:component_config;" check:"required,when=create/update"`
 	SortOrder       int    `sqlmapping:"column:sort_order;" sqlresult:"column:sort_order;" check:"required,when=create/update"`
 	IsEnabled       string `sqlmapping:"column:is_enabled;" sqlresult:"column:is_enabled;" check:"required,lte=10,when=create/update"`
-	entity.TenantIDField
 	entity.UserIDFields
 	entity.OperatorUserNameField
 	entity.TimeFields

+ 0 - 1
application/domain/mini_page_component/info.go

@@ -12,7 +12,6 @@ type Info struct {
 	ComponentConfig string `json:"componentConfig" sqlresult:"column:component_config;"`
 	SortOrder       int    `json:"sortOrder" sqlresult:"column:sort_order;"`
 	IsEnabled       string `json:"isEnabled" sqlresult:"column:is_enabled;"`
-	application.InfoTenantIDField
 	application.InfoUserIDFields
 	application.InfoTimeFields
 }

+ 0 - 2
application/domain/mini_page_component/request_params.go

@@ -13,7 +13,6 @@ type (
 		ComponentConfig string `json:"componentConfig" binding:"required" assign:"toField:ComponentConfig"`
 		SortOrder       int    `json:"sortOrder" binding:"required" assign:"toField:SortOrder"`
 		IsEnabled       string `json:"isEnabled" binding:"required" assign:"toField:IsEnabled"`
-		request.TenantIDJsonBody
 		request.CreateUserIDJsonBody
 		request.OperatorUserNameJsonBody
 	}
@@ -42,7 +41,6 @@ type (
 		TypeName        string `form:"typeName" assign:"toField:TypeName"`
 		IsEnabled       string `form:"isEnabled" assign:"toField:IsEnabled"`
 		request.BaseQueryParams
-		request.TenantIDQueryParam
 	}
 
 	GetMiniPageComponentQueryParams struct {

+ 0 - 1
application/domain/mini_page_config/entity.go

@@ -36,7 +36,6 @@ type Entity struct {
 	Description string `sqlmapping:"column:description;" sqlresult:"column:description;" check:"required,when=create/update"`
 	IsEnabled   string `sqlmapping:"column:is_enabled;" sqlresult:"column:is_enabled;" check:"required,lte=10,when=create/update"`
 	SortOrder   int    `sqlmapping:"column:sort_order;" sqlresult:"column:sort_order;" check:"required,when=create/update"`
-	entity.TenantIDField
 	entity.UserIDFields
 	entity.OperatorUserNameField
 	entity.TimeFields

+ 0 - 1
application/domain/mini_page_config/info.go

@@ -11,7 +11,6 @@ type Info struct {
 	Description string `json:"description" sqlresult:"column:description;"`
 	IsEnabled   string `json:"isEnabled" sqlresult:"column:is_enabled;"`
 	SortOrder   int    `json:"sortOrder" sqlresult:"column:sort_order;"`
-	application.InfoTenantIDField
 	application.InfoUserIDFields
 	application.InfoTimeFields
 }

+ 0 - 2
application/domain/mini_page_config/request_params.go

@@ -11,7 +11,6 @@ type (
 		Description string `json:"description" binding:"required" assign:"toField:Description"`
 		IsEnabled   string `json:"isEnabled" binding:"required" assign:"toField:IsEnabled"`
 		SortOrder   int    `json:"sortOrder" binding:"required" assign:"toField:SortOrder"`
-		request.TenantIDJsonBody
 		request.CreateUserIDJsonBody
 		request.OperatorUserNameJsonBody
 	}
@@ -36,7 +35,6 @@ type (
 	GetMiniPageConfigsQueryParams struct {
 		PageCode string `form:"pageCode" assign:"toField:PageCode"`
 		request.BaseQueryParams
-		request.TenantIDQueryParam
 	}
 
 	GetMiniPageConfigQueryParams struct {

+ 3 - 4
application/domain/mini_quality_product_config/entity.go

@@ -42,13 +42,12 @@ type Entity struct {
 	entity.Base
 	ComponentID     string `sqlmapping:"column:component_id;" sqlresult:"column:component_id;" check:"required,lte=32,when=create/update"`
 	ProductID       string `sqlmapping:"column:product_id;" sqlresult:"column:product_id;" check:"required,lte=32,when=create/update"`
-	CustomTitle     string `sqlmapping:"column:custom_title;" sqlresult:"column:custom_title;" check:"required,lte=200,when=create/update"`
-	CustomSubtitle  string `sqlmapping:"column:custom_subtitle;" sqlresult:"column:custom_subtitle;" check:"required,lte=200,when=create/update"`
-	CustomImage     string `sqlmapping:"column:custom_image;" sqlresult:"column:custom_image;" check:"required,lte=500,when=create/update"`
+	CustomTitle     string `sqlmapping:"column:custom_title;updateClear;" sqlresult:"column:custom_title;"`
+	CustomSubtitle  string `sqlmapping:"column:custom_subtitle;updateClear;" sqlresult:"column:custom_subtitle;"`
+	CustomImage     string `sqlmapping:"column:custom_image;updateClear;" sqlresult:"column:custom_image;"`
 	BackgroundColor string `sqlmapping:"column:background_color;" sqlresult:"column:background_color;" check:"required,lte=20,when=create/update"`
 	SortOrder       int    `sqlmapping:"column:sort_order;" sqlresult:"column:sort_order;" check:"required,when=create/update"`
 	IsEnabled       string `sqlmapping:"column:is_enabled;" sqlresult:"column:is_enabled;" check:"required,lte=10,when=create/update"`
-	entity.TenantIDField
 	entity.UserIDFields
 	entity.OperatorUserNameField
 	entity.TimeFields

+ 0 - 1
application/domain/mini_quality_product_config/info.go

@@ -16,7 +16,6 @@ type Info struct {
 	BackgroundColor string           `json:"backgroundColor" sqlresult:"column:background_color;"`
 	SortOrder       int              `json:"sortOrder" sqlresult:"column:sort_order;"`
 	IsEnabled       string           `json:"isEnabled" sqlresult:"column:is_enabled;"`
-	application.InfoTenantIDField
 	application.InfoUserIDFields
 	application.InfoTimeFields
 }

+ 3 - 5
application/domain/mini_quality_product_config/request_params.go

@@ -8,13 +8,12 @@ type (
 	CreateMiniQualityProductConfigJsonBody struct {
 		ComponentID     string `json:"componentId" binding:"required" assign:"toField:ComponentID"`
 		ProductID       string `json:"productId" binding:"required" assign:"toField:ProductID"`
-		CustomTitle     string `json:"customTitle" binding:"required" assign:"toField:CustomTitle"`
-		CustomSubtitle  string `json:"customSubtitle" binding:"required" assign:"toField:CustomSubtitle"`
-		CustomImage     string `json:"customImage" binding:"required" assign:"toField:CustomImage"`
+		CustomTitle     string `json:"customTitle" assign:"toField:CustomTitle"`
+		CustomSubtitle  string `json:"customSubtitle" assign:"toField:CustomSubtitle"`
+		CustomImage     string `json:"customImage" assign:"toField:CustomImage"`
 		BackgroundColor string `json:"backgroundColor" binding:"required" assign:"toField:BackgroundColor"`
 		SortOrder       int    `json:"sortOrder" binding:"required" assign:"toField:SortOrder"`
 		IsEnabled       string `json:"isEnabled" binding:"required" assign:"toField:IsEnabled"`
-		request.TenantIDJsonBody
 		request.CreateUserIDJsonBody
 		request.OperatorUserNameJsonBody
 	}
@@ -42,7 +41,6 @@ type (
 	GetMiniQualityProductConfigsQueryParams struct {
 		ComponentID string `form:"componentId" assign:"toField:ComponentID"`
 		request.BaseQueryParams
-		request.TenantIDQueryParam
 	}
 
 	GetMiniQualityProductConfigQueryParams struct {

+ 0 - 1
application/domain/mini_video_config/entity.go

@@ -48,7 +48,6 @@ type Entity struct {
 	AutoPlay      string `sqlmapping:"column:auto_play;" sqlresult:"column:auto_play;" check:"required,when=create/update"`
 	ShowControls  string `sqlmapping:"column:show_controls;" sqlresult:"column:show_controls;" check:"required,when=create/update"`
 	IsEnabled     string `sqlmapping:"column:is_enabled;" sqlresult:"column:is_enabled;" check:"required,lte=10,when=create/update"`
-	entity.TenantIDField
 	entity.UserIDFields
 	entity.OperatorUserNameField
 	entity.TimeFields

+ 0 - 1
application/domain/mini_video_config/info.go

@@ -17,7 +17,6 @@ type Info struct {
 	AutoPlay      string           `json:"autoPlay" sqlresult:"column:auto_play;"`
 	ShowControls  string           `json:"showControls" sqlresult:"column:show_controls;"`
 	IsEnabled     string           `json:"isEnabled" sqlresult:"column:is_enabled;"`
-	application.InfoTenantIDField
 	application.InfoUserIDFields
 	application.InfoTimeFields
 }

+ 1 - 2
application/domain/mini_video_config/request_params.go

@@ -14,7 +14,6 @@ type (
 		AutoPlay      string `json:"autoPlay" binding:"required" assign:"toField:AutoPlay"`
 		ShowControls  string `json:"showControls" binding:"required" assign:"toField:ShowControls"`
 		IsEnabled     string `json:"isEnabled" binding:"required" assign:"toField:IsEnabled"`
-		request.TenantIDJsonBody
 		request.CreateUserIDJsonBody
 		request.OperatorUserNameJsonBody
 	}
@@ -41,8 +40,8 @@ type (
 
 	GetMiniVideoConfigsQueryParams struct {
 		ComponentID string `form:"componentId" assign:"toField:ComponentID"`
+		VideoTitle  string `form:"videoTitle" assign:"toField:VideoTitle"`
 		request.BaseQueryParams
-		request.TenantIDQueryParam
 	}
 
 	GetMiniVideoConfigQueryParams struct {

+ 56 - 0
application/domain/traceability_video/entity.go

@@ -0,0 +1,56 @@
+package traceability_video
+
+import (
+	"git.sxidc.com/go-framework/baize/framework/core/domain"
+	"git.sxidc.com/go-framework/baize/framework/core/domain/entity"
+)
+
+const (
+	FieldVideoTitle       = "VideoTitle"
+	FieldVideoCoverUrl    = "VideoCoverUrl"
+	FieldVideoUrl         = "VideoUrl"
+	FieldVideoDescription = "VideoDescription"
+)
+
+var fieldMap = map[string]string{
+	FieldVideoTitle:       "视频标题",
+	FieldVideoCoverUrl:    "视频封面图",
+	FieldVideoUrl:         "视频地址",
+	FieldVideoDescription: "视频描述",
+}
+
+var (
+	ColumnVideoTitle       = domain.ColumnName(FieldVideoTitle)
+	ColumnVideoCoverUrl    = domain.ColumnName(FieldVideoCoverUrl)
+	ColumnVideoUrl         = domain.ColumnName(FieldVideoUrl)
+	ColumnVideoDescription = domain.ColumnName(FieldVideoDescription)
+)
+
+type Entity struct {
+	entity.Base
+	VideoTitle       string `sqlmapping:"column:video_title;" sqlresult:"column:video_title;" check:"required,lte=200,when=create/update"`
+	VideoCoverUrl    string `sqlmapping:"column:video_cover_url;" sqlresult:"column:video_cover_url;" check:"required,lte=500,when=create/update"`
+	VideoUrl         string `sqlmapping:"column:video_url;" sqlresult:"column:video_url;" check:"required,lte=500,when=create/update"`
+	VideoDescription string `sqlmapping:"column:video_description;updateClear;" sqlresult:"column:video_description;"`
+	entity.UserIDFields
+	entity.OperatorUserNameField
+	entity.TimeFields
+
+	/* HAC: ENTITY RELATION FIELDS */
+	/* HAC: END ENTITY RELATION FIELDS */
+}
+
+func (e *Entity) DomainCNName() string {
+	return "溯源视频上传"
+}
+
+func (e *Entity) DomainCamelName() string {
+	return "TraceabilityVideo"
+}
+
+func (e *Entity) GetFieldMap() map[string]string {
+	return fieldMap
+}
+
+/* HAC: ENTITY RELATION METHODS */
+/* HAC: END ENTITY RELATION METHODS */

+ 18 - 0
application/domain/traceability_video/info.go

@@ -0,0 +1,18 @@
+package traceability_video
+
+import (
+	"ecos/application/domain/oss"
+	"git.sxidc.com/go-framework/baize/framework/core/application"
+)
+
+type Info struct {
+	application.InfoIDField
+	VideoTitle       string           `json:"videoTitle" sqlresult:"column:video_title;"`
+	VideoCoverUrlStr string           `json:"videoCoverUrlStr" sqlresult:"column:video_cover_url;"`
+	VideoCoverUrl    []oss.FileObject `json:"videoCoverUrl" sqlresult:"column:-;"`
+	VideoUrlStr      string           `json:"videoUrlStr" sqlresult:"column:video_url;"`
+	VideoUrl         []oss.FileObject `json:"videoUrl" sqlresult:"column:-;"`
+	VideoDescription string           `json:"videoDescription" sqlresult:"column:video_description;"`
+	application.InfoUserIDFields
+	application.InfoTimeFields
+}

+ 44 - 0
application/domain/traceability_video/request_params.go

@@ -0,0 +1,44 @@
+package traceability_video
+
+import (
+	"git.sxidc.com/go-framework/baize/framework/core/api/request"
+)
+
+type (
+	CreateTraceabilityVideoJsonBody struct {
+		VideoTitle       string `json:"videoTitle" binding:"required" assign:"toField:VideoTitle"`
+		VideoCoverUrl    string `json:"videoCoverUrl" binding:"required" assign:"toField:VideoCoverUrl"`
+		VideoUrl         string `json:"videoUrl" binding:"required" assign:"toField:VideoUrl"`
+		VideoDescription string `json:"videoDescription" binding:"required" assign:"toField:VideoDescription"`
+		request.CreateUserIDJsonBody
+		request.OperatorUserNameJsonBody
+	}
+
+	DeleteTraceabilityVideoQueryParams struct {
+		request.IDQueryParam
+		request.DeleteUserIDQueryParams
+		request.OperatorUserNameQueryParams
+	}
+
+	UpdateTraceabilityVideoJsonBody struct {
+		request.IDJsonBody
+		VideoTitle       string `json:"videoTitle" assign:"toField:VideoTitle"`
+		VideoCoverUrl    string `json:"videoCoverUrl" assign:"toField:VideoCoverUrl"`
+		VideoUrl         string `json:"videoUrl" assign:"toField:VideoUrl"`
+		VideoDescription string `json:"videoDescription" assign:"toField:VideoDescription"`
+		request.UpdateUserIDJsonBody
+		request.OperatorUserNameJsonBody
+	}
+
+	GetTraceabilityVideosQueryParams struct {
+		VideoTitle string `json:"videoTitle" assign:"toField:VideoTitle"`
+		request.BaseQueryParams
+	}
+
+	GetTraceabilityVideoQueryParams struct {
+		request.IDQueryParam
+	}
+
+	/* HAC: HTTP RELATION REQUEST PARAMS */
+	/* HAC: END HTTP RELATION REQUEST PARAMS */
+)

+ 0 - 3
application/service/mini_carousel_config.go

@@ -49,9 +49,6 @@ func (svc *MiniCarouselConfigService) v1(appInstance *application.App) {
 				return nil, err
 			}
 			conditions := sql.NewConditions()
-			if strutils.IsStringNotEmpty(requestParams.TenantID) {
-				conditions.Equal(entity.ColumnTenantID, requestParams.TenantID)
-			}
 
 			if strutils.IsStringNotEmpty(requestParams.ComponentID) {
 				conditions.Equal(mini_carousel_config.ColumnComponentID, requestParams.ComponentID)

+ 0 - 3
application/service/mini_component_type.go

@@ -141,9 +141,6 @@ func (svc *MiniComponentTypeService) v1(appInstance *application.App) {
 				return nil, err
 			}
 			conditions := sql.NewConditions()
-			if strutils.IsStringNotEmpty(requestParams.TenantID) {
-				conditions.Equal(entity.ColumnTenantID, requestParams.TenantID)
-			}
 
 			if strutils.IsStringNotEmpty(requestParams.IsEnabled) {
 				conditions.Equal(mini_component_type.ColumnIsEnabled, requestParams.IsEnabled)

+ 0 - 3
application/service/mini_live_config.go

@@ -107,9 +107,6 @@ func (svc *MiniLiveConfigService) v1(appInstance *application.App) {
 				return nil, err
 			}
 			conditions := sql.NewConditions()
-			if strutils.IsStringNotEmpty(requestParams.TenantID) {
-				conditions.Equal(entity.ColumnTenantID, requestParams.TenantID)
-			}
 			if strutils.IsStringNotEmpty(requestParams.ComponentID) {
 				conditions.Equal(mini_live_config.ColumnComponentID, requestParams.ComponentID)
 			}

+ 1 - 5
application/service/mini_page_component.go

@@ -251,9 +251,6 @@ func (svc *MiniPageComponentService) v1(appInstance *application.App) {
 			}
 			conditions := sql.NewConditions()
 
-			if strutils.IsStringNotEmpty(requestParams.TenantID) {
-				conditions = conditions.Equal(entity.ColumnTenantID, requestParams.TenantID)
-			}
 			if strutils.IsStringNotEmpty(requestParams.PageID) {
 				conditions = conditions.Equal(mini_page_component.ColumnPageID, requestParams.PageID)
 			}
@@ -521,8 +518,7 @@ func (svc *MiniPageComponentService) v1(appInstance *application.App) {
 			}
 
 			err = database.Transaction(i.DBExecutor(), func(tx database.Executor) error {
-				for i2 := range requestParams.SortOrders {
-					sortOrder := requestParams.SortOrders[i2]
+				for _, sortOrder := range requestParams.SortOrders {
 					err = database.Update(tx, &sql.UpdateExecuteParams{
 						TableName:  domain.TableName(dbSchema, &mini_page_component.Entity{}),
 						Conditions: sql.NewConditions().Equal(entity.ColumnID, sortOrder.ID),

+ 0 - 3
application/service/mini_page_config.go

@@ -49,9 +49,6 @@ func (svc *MiniPageConfigService) v1(appInstance *application.App) {
 				return nil, err
 			}
 			conditions := sql.NewConditions()
-			if strutils.IsStringNotEmpty(requestParams.TenantID) {
-				conditions.Equal(entity.ColumnTenantID, requestParams.TenantID)
-			}
 			if strutils.IsStringNotEmpty(requestParams.PageCode) {
 				conditions.Equal(mini_page_config.ColumnPageCode, requestParams.PageCode)
 			}

+ 0 - 3
application/service/mini_quality_product_config.go

@@ -50,9 +50,6 @@ func (svc *MiniQualityProductConfigService) v1(appInstance *application.App) {
 				return nil, err
 			}
 			conditions := sql.NewConditions()
-			if strutils.IsStringNotEmpty(requestParams.TenantID) {
-				conditions.Equal(entity.ColumnTenantID, requestParams.TenantID)
-			}
 			if strutils.IsStringNotEmpty(requestParams.ComponentID) {
 				conditions.Equal(mini_quality_product_config.ColumnComponentID, requestParams.ComponentID)
 			}

+ 14 - 3
application/service/mini_video_config.go

@@ -2,6 +2,7 @@ package service
 
 import (
 	"ecos/application/domain/mini_video_config"
+	"ecos/application/domain/traceability_video"
 	"ecos/osm"
 	"git.sxidc.com/go-framework/baize/convenient/entity_crud"
 	"git.sxidc.com/go-framework/baize/framework/binding"
@@ -50,12 +51,12 @@ func (svc *MiniVideoConfigService) v1(appInstance *application.App) {
 				return nil, err
 			}
 			conditions := sql.NewConditions()
-			if strutils.IsStringNotEmpty(requestParams.TenantID) {
-				conditions.Equal(entity.ColumnTenantID, requestParams.TenantID)
-			}
 			if strutils.IsStringNotEmpty(requestParams.ComponentID) {
 				conditions.Equal(mini_video_config.ColumnComponentID, requestParams.ComponentID)
 			}
+			if strutils.IsStringNotEmpty(requestParams.VideoTitle) {
+				conditions.Equal(traceability_video.ColumnVideoTitle, "%"+requestParams.VideoTitle+"%")
+			}
 			return &entity_crud.CustomCondition{
 				Conditions: conditions,
 				OrderBy:    entity.ColumnCreatedTime + " DESC",
@@ -142,6 +143,16 @@ func (svc *MiniVideoConfigService) v1(appInstance *application.App) {
 				infos := output.Infos
 				for i1 := range infos {
 					info := &infos[i1]
+					if strutils.IsStringNotEmpty(info.VideoCoverStr) {
+						fileObjects, err := osm.MultipleFileUrl(info.VideoCoverStr)
+						if err != nil {
+							if err != nil {
+								return output, err
+							}
+						}
+						info.VideoCover = fileObjects
+					}
+
 					if strutils.IsStringNotEmpty(info.VideoUrlStr) {
 						fileObjects, err := osm.MultipleFileUrl(info.VideoUrlStr)
 						if err != nil {

+ 1 - 0
application/service/service.go

@@ -27,5 +27,6 @@ var RegisteredServices = []Service{
 	miniPageConfigService,
 	miniQualityProductConfigService,
 	miniVideoConfigService,
+	traceabilityVideoService,
 	/* HAC: END REGISTER SERVICE */
 }

+ 201 - 0
application/service/traceability_video.go

@@ -0,0 +1,201 @@
+package service
+
+import (
+	"ecos/application/domain/traceability_video"
+	"ecos/osm"
+	"git.sxidc.com/go-framework/baize/convenient/entity_crud"
+	"git.sxidc.com/go-framework/baize/framework/binding"
+	"git.sxidc.com/go-framework/baize/framework/core/api"
+	"git.sxidc.com/go-framework/baize/framework/core/api/request"
+	"git.sxidc.com/go-framework/baize/framework/core/api/response"
+	"git.sxidc.com/go-framework/baize/framework/core/application"
+	"git.sxidc.com/go-framework/baize/framework/core/domain"
+	"git.sxidc.com/go-framework/baize/framework/core/domain/entity"
+	"git.sxidc.com/go-framework/baize/framework/core/infrastructure"
+	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/database"
+	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/database/sql"
+	"git.sxidc.com/go-tools/utils/strutils"
+	"github.com/pkg/errors"
+)
+
+var traceabilityVideoService = &TraceabilityVideoService{}
+
+type TraceabilityVideoService struct{}
+
+func (svc *TraceabilityVideoService) Init(appInstance *application.App) error {
+	svc.v1(appInstance)
+	return nil
+}
+
+func (svc *TraceabilityVideoService) Destroy() error {
+	return nil
+}
+
+func (svc *TraceabilityVideoService) v1(appInstance *application.App) {
+	v1Binder := binding.NewBinder(appInstance.ChooseRouter(api.RouterPrefix, "v1"),
+		appInstance.Infrastructure())
+
+	entity_crud.BindSimple[traceability_video.Info](v1Binder, &entity_crud.Simple[traceability_video.Info]{
+		Entity:             &traceability_video.Entity{},
+		Schema:             dbSchema,
+		CreateJsonBody:     &traceability_video.CreateTraceabilityVideoJsonBody{},
+		DeleteQueryParams:  &traceability_video.DeleteTraceabilityVideoQueryParams{},
+		UpdateJsonBody:     &traceability_video.UpdateTraceabilityVideoJsonBody{},
+		QueryQueryParams:   &traceability_video.GetTraceabilityVideosQueryParams{},
+		GetByIDQueryParams: &traceability_video.GetTraceabilityVideoQueryParams{},
+	},
+		entity_crud.WithCreateTx(),
+		entity_crud.WithUpdateTx(),
+		entity_crud.WithCreateCallbacks(&entity_crud.CreateCallbacks{
+			Before: func(c *api.Context, params request.Params, e entity.Entity, prepared map[string]any, i *infrastructure.Infrastructure, tx database.Executor) error {
+				requestParams, err := request.ToConcrete[*traceability_video.CreateTraceabilityVideoJsonBody](params)
+				if err != nil {
+					return err
+				}
+				record, err := domain.ToConcrete[*traceability_video.Entity](e)
+				if err != nil {
+					return err
+				}
+				if strutils.IsStringNotEmpty(requestParams.VideoCoverUrl) {
+					newFilePath, err := osm.MultipleFileMv(requestParams.VideoCoverUrl)
+					if err != nil {
+						return err
+					}
+					record.VideoCoverUrl = newFilePath
+				}
+				if strutils.IsStringNotEmpty(requestParams.VideoUrl) {
+					newFilePath, err := osm.MultipleFileMv(requestParams.VideoUrl)
+					if err != nil {
+						return err
+					}
+					record.VideoUrl = newFilePath
+				}
+				return nil
+			},
+		}),
+		entity_crud.WithUpdateCallbacks(&entity_crud.UpdateCallbacks{
+			Before: func(c *api.Context, params request.Params, e entity.Entity, prepared map[string]any, i *infrastructure.Infrastructure, tx database.Executor) error {
+				requestParams, err := request.ToConcrete[*traceability_video.UpdateTraceabilityVideoJsonBody](params)
+				if err != nil {
+					return err
+				}
+
+				record, err := domain.ToConcrete[*traceability_video.Entity](e)
+				if err != nil {
+					return err
+				}
+				if strutils.IsStringNotEmpty(requestParams.VideoCoverUrl) {
+					newFilePath, err := osm.MultipleFileMv(requestParams.VideoCoverUrl)
+					if err != nil {
+						return err
+					}
+					record.VideoCoverUrl = newFilePath
+				}
+				if strutils.IsStringNotEmpty(requestParams.VideoUrl) {
+					newFilePath, err := osm.MultipleFileMv(requestParams.VideoUrl)
+					if err != nil {
+						return err
+					}
+					record.VideoUrl = newFilePath
+				}
+				return nil
+			},
+		}),
+		entity_crud.WithGetByIDCallbacks(&entity_crud.GetByIDCallbacks[traceability_video.Info]{
+			OnSuccessReturn: func(c *api.Context, params request.Params, e entity.Entity, i *infrastructure.Infrastructure, output traceability_video.Info) (traceability_video.Info, error) {
+				if strutils.IsStringNotEmpty(output.VideoCoverUrlStr) {
+					fileObjects, err := osm.MultipleFileUrl(output.VideoCoverUrlStr)
+					if err != nil {
+						return output, err
+					}
+					output.VideoCoverUrl = fileObjects
+				}
+				if strutils.IsStringNotEmpty(output.VideoUrlStr) {
+					fileObjects, err := osm.MultipleFileUrl(output.VideoUrlStr)
+					if err != nil {
+						return output, err
+					}
+					output.VideoUrl = fileObjects
+				}
+				return output, nil
+			},
+		}),
+		entity_crud.WithQueryCallbacks(&entity_crud.QueryCallbacks[traceability_video.Info]{
+			OnSuccessReturn: func(c *api.Context, params request.Params, e entity.Entity, i *infrastructure.Infrastructure, output response.InfosData[traceability_video.Info]) (response.InfosData[traceability_video.Info], error) {
+				infos := output.Infos
+				for i1 := range infos {
+					info := &infos[i1]
+					if strutils.IsStringNotEmpty(info.VideoCoverUrlStr) {
+						fileObjects, err := osm.MultipleFileUrl(info.VideoCoverUrlStr)
+						if err != nil {
+							if err != nil {
+								return output, err
+							}
+						}
+						info.VideoCoverUrl = fileObjects
+					}
+					if strutils.IsStringNotEmpty(info.VideoUrlStr) {
+						fileObjects, err := osm.MultipleFileUrl(info.VideoUrlStr)
+						if err != nil {
+							return output, err
+						}
+						info.VideoUrl = fileObjects
+					}
+				}
+				return output, nil
+			},
+		}),
+		entity_crud.WithQueryFormCustomConditionFunc[traceability_video.Info](func(c *api.Context, params request.Params, e entity.Entity, i *infrastructure.Infrastructure) (*entity_crud.CustomCondition, error) {
+			requestParams, err := request.ToConcrete[*traceability_video.GetTraceabilityVideosQueryParams](params)
+			if err != nil {
+				return nil, err
+			}
+			conditions := sql.NewConditions()
+			if strutils.IsStringNotEmpty(requestParams.VideoTitle) {
+				conditions.Equal(traceability_video.ColumnVideoTitle, "%"+requestParams.VideoTitle+"%")
+			}
+			return &entity_crud.CustomCondition{
+				Conditions: conditions,
+				OrderBy:    entity.ColumnCreatedTime + " DESC",
+			}, nil
+		}),
+	)
+}
+
+func (svc *TraceabilityVideoService) queryByKeyFields(e *traceability_video.Entity, dbExecutor database.Executor) (*traceability_video.Entity, error) {
+	result, err := database.QueryOne(dbExecutor, &sql.QueryOneExecuteParams{
+		TableName:  domain.TableName(dbSchema, e),
+		Conditions: sql.NewConditions().Equal(entity.ColumnID, e.ID),
+	})
+	if err != nil {
+		if database.IsErrorDBRecordNotExist(err) {
+			return nil, errors.New(e.DomainCNName() + "不存在")
+		}
+
+		return nil, err
+	}
+
+	existEntity := new(traceability_video.Entity)
+	err = sql.ParseSqlResult(result, existEntity)
+	if err != nil {
+		return nil, err
+	}
+
+	return existEntity, nil
+}
+
+func (svc *TraceabilityVideoService) checkExistByKeyFields(e *traceability_video.Entity, dbExecutor database.Executor) error {
+	exist, err := database.CheckExist(dbExecutor, &sql.CheckExistExecuteParams{
+		TableName:  domain.TableName(dbSchema, e),
+		Conditions: sql.NewConditions().Equal(entity.ColumnID, e.ID),
+	})
+	if err != nil {
+		return err
+	}
+
+	if !exist {
+		return errors.New(e.DomainCNName() + "不存在")
+	}
+
+	return nil
+}

+ 52 - 0
deployment/data_service/data_containers/traceability_video.yaml

@@ -0,0 +1,52 @@
+kind: DataContainer
+spec:
+  namespace: ecos
+  data_source: ecos
+  name: ecos.traceability_videos
+  spec:
+    table_name: ecos.traceability_videos
+    columns:
+      - name: id
+        type: "varchar(32)"
+        comment: id
+        primary_key: true
+      - name: video_title
+        type: "varchar(200)"
+        comment: 视频标题
+        not_null: true
+        index: true
+      - name: video_cover_url
+        type: "varchar(500)"
+        comment: 视频封面图
+        not_null: true
+        index: true
+      - name: video_url
+        type: "varchar(500)"
+        comment: 视频地址
+        not_null: true
+        index: true
+      - name: video_description
+        type: "text"
+        comment: 视频描述
+        not_null: true
+        index: true
+      - name: create_user_id
+        type: "varchar(32)"
+        comment: 创建者ID
+        not_null: true
+        index: true
+      - name: last_update_user_id
+        type: "varchar(32)"
+        comment: 最后修改者ID
+        not_null: true
+        index: true
+      - name: created_time
+        type: "timestamp with time zone"
+        comment: 创建时间
+        not_null: true
+      - name: last_updated_time
+        type: "timestamp with time zone"
+        comment: 最近更新时间
+        not_null: true
+# HAC: DB TABLE TRACEABILITYVIDEO RELATION COLUMNS #
+# HAC: END DB TABLE TRACEABILITYVIDEO RELATION COLUMNS #