order_base.go 1.8 KB
package models

import (
	"context"
	"time"

	"github.com/go-pg/pg/v10"
	"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
)

//OrderBase 订单基础
type OrderBase struct {
	tableName struct{} `pg:"order_base"`
	//表id
	Id int64 `pg:",pk"`
	//订单类型
	OrderType int
	//订单编号
	OrderCode string
	//交货编号
	DeliveryCode string
	//买家
	Buyer *domain.Buyer
	//订单区域信息
	RegionInfo *domain.RegionInfo
	//订单对应的合伙人
	PartnerId int64
	//业务员抽成比例
	SalesmanBonusPercent float64
	//业务员抽成
	SalesmanBonus float64
	//预计的订单内货品总数
	PlanOrderCount int
	//预计的订单的总金额
	PlanOrderAmount float64
	//按需使用的订单内货品总数 (初始值=-1)
	//业务判定时0是有效值,负值无效
	UseOrderCount int
	//按需使用的订单内货总金额 (初始值=-1)
	//业务判定时0是有效值,负值无效
	UseOrderAmount float64
	//订单的创建时间
	CreateTime time.Time
	//发货时间
	DeliveryTime time.Time
	//更新时间
	UpdateTime time.Time
	//合伙人应收分红
	PlanPartnerBonus float64
	//调整后的合伙人应收分红 (初始值=-1);
	//业务判定时0是有效值,负值无效
	UsePartnerBonus float64
	//合伙人已收分红
	PartnerBonusHas float64
	//合伙人未收分红
	PartnerBonusNot float64
	//合伙人分红支出
	PartnerBonusExpense float64
	//上一次查看时间 已读情况
	LastViewTime time.Time
}

var _ pg.BeforeUpdateHook = (*OrderBase)(nil)

func (or *OrderBase) BeforeUpdate(ctx context.Context) (context.Context, error) {
	or.UpdateTime = time.Now()
	return ctx, nil
}

var _ pg.BeforeInsertHook = (*OrderBase)(nil)

func (or *OrderBase) BeforeInsert(ctx context.Context) (context.Context, error) {
	or.CreateTime = time.Now()
	or.UpdateTime = time.Now()
	return ctx, nil
}