88 lines
1.8 KiB
Go
88 lines
1.8 KiB
Go
package model
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"go-common/library/time"
|
|
)
|
|
|
|
//Order...主订单表状态
|
|
const (
|
|
OrderPaid = 2
|
|
OrderRefunded = 3
|
|
OrderRefundPartly = 2
|
|
OrderRefundedAll = 4
|
|
)
|
|
|
|
//DistOrder...分销订单表状态
|
|
const (
|
|
DistOrderNormal = 1
|
|
DistOrderRefunded = 2
|
|
DistOrderPartlyRefunded = 3
|
|
)
|
|
|
|
// SpecsSeparator sku 规格分隔符
|
|
const SpecsSeparator = "_"
|
|
|
|
//OrderInfo 订单同步字段
|
|
type OrderInfo struct {
|
|
Oid uint64 `json:"oid"`
|
|
CmAmount uint64 `json:"cm_amount"`
|
|
CmMethod int64 `json:"cm_method"`
|
|
CmPrice uint64 `json:"cm_price"`
|
|
Duid uint64 `json:"duid"`
|
|
Stat int64 `json:"status"`
|
|
Pid uint64 `json:"pid"`
|
|
Count uint64 `json:"count"`
|
|
Sid uint64 `json:"sid"`
|
|
Type int64 `json:"type"`
|
|
PayAmount uint64 `json:"pay_amount"`
|
|
Serial string `json:"serial_num"`
|
|
Ctime time.Time `json:"ctime"`
|
|
Mtime time.Time `json:"mtime"`
|
|
}
|
|
|
|
//OrderStockCnt 订单库存
|
|
type OrderStockCnt struct {
|
|
OrderID int64
|
|
Count int64
|
|
}
|
|
|
|
//SkuCnt sku库存
|
|
type SkuCnt struct {
|
|
SkuID int64
|
|
Count int64
|
|
}
|
|
|
|
//Batch 批量库存操作
|
|
type Batch struct {
|
|
ScreenID int64 // 场次 ID
|
|
TicketPriceID int64 // 票价 ID 就是 sku_stock SKUID
|
|
SkAlert int64 // 库存预警数
|
|
TotalStock int64 // 总库存数
|
|
}
|
|
|
|
//Specs 生成库存规格
|
|
func (b *Batch) Specs() (s string) {
|
|
s = fmt.Sprintf("%d%s%d", b.ScreenID, SpecsSeparator, b.TicketPriceID)
|
|
return
|
|
}
|
|
|
|
//InsPlHlds insert语句占位符
|
|
func InsPlHlds(colCnt int, rowCnt int) string {
|
|
hLen := colCnt*2 + 2
|
|
h := make([]byte, hLen)
|
|
h[0] = '('
|
|
h[hLen-2] = ')'
|
|
h[hLen-1] = ','
|
|
copy(h[1:], []byte(strings.Repeat(",?", colCnt)[1:]))
|
|
bPlHlds := make([]byte, hLen*rowCnt-1)
|
|
j := 0
|
|
for i := 0; i < rowCnt; i++ {
|
|
copy(bPlHlds[j:], h)
|
|
j += hLen
|
|
}
|
|
return string(bPlHlds)
|
|
}
|