Skip to content
Snippets Groups Projects
Unverified Commit c429de22 authored by Pengfei Jiang's avatar Pengfei Jiang Committed by GitHub
Browse files

fix: fix example (#17)

parent 1d6e3495
No related branches found
No related tags found
No related merge requests found
...@@ -16,16 +16,24 @@ ...@@ -16,16 +16,24 @@
package event_handler package event_handler
import ( import (
"context"
ddd "github.com/bytedance/dddfirework" ddd "github.com/bytedance/dddfirework"
"github.com/bytedance/dddfirework/example/common/domain_event/sale" "github.com/bytedance/dddfirework/example/common/domain_event/sale"
) )
// OnOrderCreatedHandler 实现了 ICommandMain 的接口
type OnOrderCreatedHandler struct { type OnOrderCreatedHandler struct {
ddd.Command
event *sale.OrderCreatedEvent event *sale.OrderCreatedEvent
} }
func (h *OnOrderCreatedHandler) Main(ctx context.Context, repo *ddd.Repository) (err error) {
// handle order created event here
logger.Info("order created")
return nil
}
func NewOnOrderCreatedHandler(evt *sale.OrderCreatedEvent) *OnOrderCreatedHandler { func NewOnOrderCreatedHandler(evt *sale.OrderCreatedEvent) *OnOrderCreatedHandler {
return &OnOrderCreatedHandler{ return &OnOrderCreatedHandler{
event: evt, event: evt,
......
...@@ -16,18 +16,23 @@ ...@@ -16,18 +16,23 @@
package event_handler package event_handler
import ( import (
"context"
ddd "github.com/bytedance/dddfirework" ddd "github.com/bytedance/dddfirework"
"github.com/bytedance/dddfirework/example/common/domain_event/sale" "github.com/bytedance/dddfirework/example/common/domain_event/sale"
"github.com/bytedance/dddfirework/logger/stdr"
) )
type OnSaleItemAddedHandler struct { var logger = stdr.NewStdr("handler")
ddd.Command
// OnSaleItemAddedHandler 是 MainFunc 类型
func OnSaleItemAddedHandler(ctx context.Context, repo *ddd.Repository) (err error) {
// handle sale item added event here
logger.Info("sale item added")
event *sale.OrderSaleItemAddedEvent return nil
} }
func NewOnSaleItemAddedHandler(evt *sale.OrderSaleItemAddedEvent) *OnSaleItemAddedHandler { func NewOnSaleItemAddedHandler(evt *sale.OrderSaleItemAddedEvent) ddd.MainFunc {
return &OnSaleItemAddedHandler{ return OnSaleItemAddedHandler
event: evt,
}
} }
...@@ -28,7 +28,15 @@ type RuleEngine interface { ...@@ -28,7 +28,15 @@ type RuleEngine interface {
Validate(order *Order, rule string) error Validate(order *Order, rule string) error
} }
var ruler RuleEngine var ruler OrderRuleEngine
type OrderRuleEngine struct {
}
func (o *OrderRuleEngine) Validate(order *Order, rule string) error {
// validate here
return nil
}
type UpdateOrderOpt struct { type UpdateOrderOpt struct {
Remark *string Remark *string
...@@ -147,6 +155,8 @@ func (o *Order) AddCoupon(couponID, rule string, discount int64) error { ...@@ -147,6 +155,8 @@ func (o *Order) AddCoupon(couponID, rule string, discount int64) error {
CouponID: couponID, CouponID: couponID,
Rule: rule, Rule: rule,
Discount: discount, Discount: discount,
order: o,
}) })
if invalid := o.fixCoupons(); len(invalid) > 0 { if invalid := o.fixCoupons(); len(invalid) > 0 {
return fmt.Errorf("coupon invalid") return fmt.Errorf("coupon invalid")
......
...@@ -36,6 +36,11 @@ import ( ...@@ -36,6 +36,11 @@ import (
) )
func initPO(db *gorm.DB) { func initPO(db *gorm.DB) {
// 可选,如果使用 mysql 实现 eventbus,需要提前建表。
if err := db.AutoMigrate(&db_eventbus.EventPO{}, &db_eventbus.Transaction{}, &db_eventbus.ServicePO{}); err != nil {
panic(err)
}
if err := db.AutoMigrate(&po.OrderPO{}, &po.CouponPO{}, &po.SaleItemPO{}); err != nil { if err := db.AutoMigrate(&po.OrderPO{}, &po.CouponPO{}, &po.SaleItemPO{}); err != nil {
panic(err) panic(err)
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment