package bo import ( "encoding/json" "fmt" "time" "voucher/internal/biz/vo" ) // ConsumeInformation 定义消费信息结构体 type ConsumeInformation struct { ConsumeTime time.Time `json:"consume_time"` // 核销时间 ConsumeMchid string `json:"consume_mchid"` // 核销商户号 TransactionID string `json:"transaction_id"` // 微信支付交易单号 ConsumeAmount int `json:"consume_amount"` // 核销金额(单位:分) } // PlainText 定义明文数据结构体 type PlainText struct { StockCreatorMchid string `json:"stock_creator_mchid"` StockID string `json:"stock_id"` CouponID string `json:"coupon_id"` CouponName string `json:"coupon_name"` Description string `json:"description"` Status vo.WechatVoucherStatus `json:"status"` CreateTime time.Time `json:"create_time"` CouponType string `json:"coupon_type"` NoCash bool `json:"no_cash"` Singleitem bool `json:"singleitem"` BusinessType string `json:"business_type"` // 业务类型 ConsumeInformation *ConsumeInformation `json:"consume_information,omitempty"` } type WechatVoucherNotifyBo struct { ID string `json:"id"` CreateTime string `json:"create_time"` ResourceType string `json:"resource_type"` EventType string `json:"event_type"` Summary string `json:"summary"` OriginalType string `json:"original_type"` AssociatedData string `json:"associated_data"` PlainText PlainText `json:"plain_text"` } func (d *WechatVoucherNotifyBo) Str() (string, error) { b, err := json.Marshal(d) if err != nil { return "", fmt.Errorf("json marshal original_data error: %v", err) } return string(b), nil }