65 lines
1.6 KiB
Go
65 lines
1.6 KiB
Go
package customer
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.guxuan/haibei/internal/config"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"github.guxuan/haibei/internal/mods/customer/api"
|
|
"github.guxuan/haibei/internal/mods/customer/schema"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type Customer struct {
|
|
DB *gorm.DB
|
|
CustomerAPI *api.Customer
|
|
BalanceAPI *api.Balance
|
|
ProductOrderAPI *api.ProductOrder
|
|
}
|
|
|
|
func (a *Customer) AutoMigrate(ctx context.Context) error {
|
|
return a.DB.AutoMigrate(new(schema.Customer), new(schema.Balance), new(schema.ProductOrder))
|
|
}
|
|
|
|
func (a *Customer) Init(ctx context.Context) error {
|
|
if config.C.Storage.DB.AutoMigrate {
|
|
if err := a.AutoMigrate(ctx); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (a *Customer) RegisterV1Routers(ctx context.Context, v1 *gin.RouterGroup) error {
|
|
customer := v1.Group("customers")
|
|
{
|
|
customer.GET("", a.CustomerAPI.Query)
|
|
customer.GET(":id", a.CustomerAPI.Get)
|
|
customer.POST("", a.CustomerAPI.Create)
|
|
customer.PUT(":id", a.CustomerAPI.Update)
|
|
customer.DELETE(":id", a.CustomerAPI.Delete)
|
|
}
|
|
balance := v1.Group("balances")
|
|
{
|
|
balance.GET("", a.BalanceAPI.Query)
|
|
balance.GET(":id", a.BalanceAPI.Get)
|
|
balance.POST("", a.BalanceAPI.Create)
|
|
balance.PUT(":id", a.BalanceAPI.Update)
|
|
balance.DELETE(":id", a.BalanceAPI.Delete)
|
|
}
|
|
productOrder := v1.Group("product-orders")
|
|
{
|
|
productOrder.GET("", a.ProductOrderAPI.Query)
|
|
productOrder.GET(":id", a.ProductOrderAPI.Get)
|
|
productOrder.POST("", a.ProductOrderAPI.Create)
|
|
productOrder.PUT(":id", a.ProductOrderAPI.Update)
|
|
productOrder.DELETE(":id", a.ProductOrderAPI.Delete)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (a *Customer) Release(ctx context.Context) error {
|
|
return nil
|
|
}
|