feat: add producer account management

This commit is contained in:
2026-08-04 15:21:39 +08:00
parent fb59e80fd0
commit 402f050b17
21 changed files with 223 additions and 36 deletions

View File

@@ -107,10 +107,19 @@ func registerGasorderRoute(group *gin.RouterGroup) {
}
func registerProductRoute(group *gin.RouterGroup) {
producer := group.Group("/producer_account")
producer.GET("", product.ListProducerAccount)
producer.POST("", product.CreateProducerAccount)
producer.GET("/:identity", product.GetProducerAccount)
producer.PUT("/:identity", product.UpdateProducerAccount)
producer.PATCH("/:identity/status", func(ctx *gin.Context) { common.UpdateRecordStatus(ctx, &models.ProducerAccount{}) })
producer.DELETE("/:identity", product.DeleteProducerAccount)
registerRestrictedNoDeleteResource(group, "/product_type", &models.ProductType{}, []string{"code", "name"})
registerRestrictedNoDeleteResource(group, "/product_warehouse", &models.ProductWarehouse{}, []string{"code", "name", "address", "manager", "phone"})
infoRelations := []common.ResourceRelation{
requiredRelation("producer_account_identity", "producer_account_id", &models.ProducerAccount{}),
requiredRelation("product_type_identity", "product_type_id", &models.ProductType{}),
optionalRelation("warehouse_identity", "warehouse_id", &models.ProductWarehouse{}),
optionalRelation("gas_basic_identity", "gas_basic_id", &models.GasBasic{}),

View File

@@ -166,6 +166,10 @@ func TestPlatformProductCommerceAndDeliveryRoutesFollowTheirContracts(t *testing
assertRouteMethods(t, routes, path+"/:identity/status", http.MethodPatch)
assertNoRouteMethods(t, routes, path+"/:identity", http.MethodDelete)
}
producer := "/heqi/platform/v1/producer_account"
assertRouteMethods(t, routes, producer, http.MethodGet, http.MethodPost)
assertRouteMethods(t, routes, producer+"/:identity", http.MethodGet, http.MethodPut, http.MethodDelete)
assertRouteMethods(t, routes, producer+"/:identity/status", http.MethodPatch)
owner := "/heqi/platform/v1/product_owner"
assertRouteMethods(t, routes, owner, http.MethodGet)
assertNoRouteMethods(t, routes, owner, http.MethodPost)