Jelajahi Sumber

简化接口

yjp 1 tahun lalu
induk
melakukan
8f4198006f

+ 0 - 2
convenient/domain/configuration/api.go

@@ -38,8 +38,6 @@ func BindConfiguration(binder *binding.Binder, opts ...Option) {
 
 	value_object.BindSimple(binder, &value_object.Simple[any]{
 		ValueObject:       &Entity{},
-		TableName:         configurationTableName,
-		DomainPath:        "/configuration",
 		CreateJsonBody:    &AddConfigurationJsonBody{},
 		DeleteQueryParams: &RemoveConfigurationJsonBody{},
 	}, valueObjectOptions...)

+ 6 - 4
convenient/relation/many2many/simple.go

@@ -47,11 +47,13 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
 	leftRelationColumnName := fmt.Sprintf("%s_id", strcase.ToSnake(simple.Right.DomainCamelName()))
 	rightRelationColumnName := fmt.Sprintf("%s_id", strcase.ToSnake(simple.Left.DomainCamelName()))
 
+	middleTableName := entity.SnakeDomainName(simple.Left) + "_and_" + entity.SnakeDomainName(simple.Right)
+
 	if !options.disableLeft {
 		if !options.disableLeftUpdate {
 			// 左到右更新
 			binding.PostBind(binder, &binding.SimpleBindItem[any]{
-				Path:          simple.LeftDomainPath + simple.RightDomainPath + "/update",
+				Path:          leftDomainPath + rightDomainPath + "/update",
 				ResponseFunc:  response.SendMsgResponse,
 				RequestParams: simple.LeftUpdateJsonBody,
 				Objects:       []domain.Object{simple.Left},
@@ -62,7 +64,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
 		if !options.disableLeftQuery {
 			// 左到右查询
 			binding.GetBind(binder, &binding.SimpleBindItem[RI]{
-				Path:          simple.LeftDomainPath + simple.RightDomainPath + "/query",
+				Path:          leftDomainPath + rightDomainPath + "/query",
 				ResponseFunc:  response.SendInfoResponse[RI],
 				RequestParams: simple.LeftQueryQueryParams,
 				Objects:       []domain.Object{simple.Left},
@@ -75,7 +77,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
 		if !options.disableRightUpdate {
 			// 右到左更新
 			binding.PostBind(binder, &binding.SimpleBindItem[any]{
-				Path:          simple.RightDomainPath + simple.LeftDomainPath + "/update",
+				Path:          rightDomainPath + leftDomainPath + "/update",
 				ResponseFunc:  response.SendMsgResponse,
 				RequestParams: simple.RightUpdateJsonBody,
 				Objects:       []domain.Object{simple.Right},
@@ -86,7 +88,7 @@ func (simple *Simple[LI, RI]) bind(binder *binding.Binder) {
 		if !options.disableRightQuery {
 			// 右到左查询
 			binding.GetBind(binder, &binding.SimpleBindItem[RI]{
-				Path:          simple.RightDomainPath + simple.LeftDomainPath + "/query",
+				Path:          rightDomainPath + leftDomainPath + "/query",
 				ResponseFunc:  response.SendInfoResponse[RI],
 				RequestParams: simple.RightQueryQueryParams,
 				Objects:       []domain.Object{simple.Right},

+ 13 - 16
convenient/value_object/simple.go

@@ -15,12 +15,6 @@ type Simple[I any] struct {
 	// 使用的领域实体,注意是ValueObject类型
 	ValueObject value_object.ValueObject
 
-	// 表名
-	TableName string
-
-	// URL领域相对路径,如/class,后面会自动补充
-	DomainPath string
-
 	// 创建使用的请求参数
 	CreateJsonBody request.Params
 
@@ -37,23 +31,26 @@ type Simple[I any] struct {
 func (simple *Simple[I]) bind(binder *binding.Binder) {
 	options := simple.options
 
+	tableName := value_object.TableName(simple.ValueObject)
+	domainPath := value_object.RelativeDomainPath(simple.ValueObject)
+
 	// 创建
 	if !options.disableCreate {
 		if !options.createNeedTx {
 			binding.PostBind(binder, &binding.SimpleBindItem[any]{
-				Path:          simple.DomainPath + "/create",
+				Path:          domainPath + "/create",
 				ResponseFunc:  response.SendMsgResponse,
 				RequestParams: simple.CreateJsonBody,
 				Objects:       []domain.Object{simple.ValueObject},
-				ServiceFunc:   Create(simple.TableName, options.createCallbacks),
+				ServiceFunc:   Create(tableName, options.createCallbacks),
 			})
 		} else {
 			binding.PostBind(binder, &binding.SimpleBindItem[any]{
-				Path:          simple.DomainPath + "/create",
+				Path:          domainPath + "/create",
 				ResponseFunc:  response.SendMsgResponse,
 				RequestParams: simple.CreateJsonBody,
 				Objects:       []domain.Object{simple.ValueObject},
-				ServiceFunc:   CreateTx(simple.TableName, options.createCallbacks),
+				ServiceFunc:   CreateTx(tableName, options.createCallbacks),
 			})
 		}
 	}
@@ -62,21 +59,21 @@ func (simple *Simple[I]) bind(binder *binding.Binder) {
 	if !options.disableDelete {
 		if !options.deleteNeedTx {
 			binding.PostBind(binder, &binding.SimpleBindItem[any]{
-				Path:                  simple.DomainPath + "/delete",
+				Path:                  domainPath + "/delete",
 				ResponseFunc:          response.SendMsgResponse,
 				RequestParams:         simple.DeleteQueryParams,
 				RequestParamsBindFunc: request.JsonBody,
 				Objects:               []domain.Object{simple.ValueObject},
-				ServiceFunc:           Delete(simple.TableName, options.deleteCallbacks),
+				ServiceFunc:           Delete(tableName, options.deleteCallbacks),
 			})
 		} else {
 			binding.PostBind(binder, &binding.SimpleBindItem[any]{
-				Path:                  simple.DomainPath + "/delete",
+				Path:                  domainPath + "/delete",
 				ResponseFunc:          response.SendMsgResponse,
 				RequestParams:         simple.DeleteQueryParams,
 				RequestParamsBindFunc: request.JsonBody,
 				Objects:               []domain.Object{simple.ValueObject},
-				ServiceFunc:           DeleteTx(simple.TableName, options.deleteCallbacks),
+				ServiceFunc:           DeleteTx(tableName, options.deleteCallbacks),
 			})
 		}
 	}
@@ -84,11 +81,11 @@ func (simple *Simple[I]) bind(binder *binding.Binder) {
 	// 查询
 	if !options.disableQuery {
 		binding.GetBind(binder, &binding.SimpleBindItem[response.InfosData[I]]{
-			Path:          simple.DomainPath + "/query",
+			Path:          domainPath + "/query",
 			ResponseFunc:  response.SendInfosResponse[I],
 			RequestParams: simple.QueryQueryParams,
 			Objects:       []domain.Object{simple.ValueObject},
-			ServiceFunc:   Query(simple.TableName, options.queryCallbacks, options.queryConditionFieldCallback),
+			ServiceFunc:   Query(tableName, options.queryCallbacks, options.queryConditionFieldCallback),
 		})
 	}
 }

+ 1 - 1
framwork/domain/value_object/utils.go

@@ -9,7 +9,7 @@ func TableName(valueObject ValueObject) string {
 	return template.Plural(strcase.ToSnake(template.Id(valueObject.DomainCamelName())))
 }
 
-func RelativePath(valueObject ValueObject) string {
+func RelativeDomainPath(valueObject ValueObject) string {
 	return "/" + strcase.ToLowerCamel(template.Id(valueObject.DomainCamelName()))
 }