bilibili-backup/app/service/main/tv/internal/model/change_history.go
2019-04-22 02:59:20 +00:00

48 lines
1.5 KiB
Go

package model
import (
"strconv"
"time"
"go-common/library/log"
xtime "go-common/library/time"
)
// UserChangeHistory 会员变动流水.
type UserChangeHistory struct {
ID int32 `json:"id"` // vip开通历史
Mid int64 `json:"mid"` // 用户mid
ChangeType int8 `json:"change_type"` // 变更类型(1:充值开通 2:系统发放 3:活动赠送 4:重复领取扣除)
ChangeTime xtime.Time `json:"change_time"` // 变更时间
OrderNo string `json:"order_no"` // 关联订单号
Days int32 `json:"days"` // 开通天数
OperatorId string `json:"operator_id"` // 操作人id
Remark string `json:"remark"` // 备注
Ctime xtime.Time `json:"ctime"` // 创建时间
Mtime xtime.Time `json:"mtime"` // 修改时间
}
func (uc *UserChangeHistory) orderType2ChangeType(orderType int8) int8 {
var ct int8
switch orderType {
case PayOrderTypeNormal:
ct = UserChangeTypeRecharge
case PayOrderTypeSub:
ct = UserChangeTypeSystem
default:
log.Error("uc.CopyFromPayOrder() err(UnknownOrderType) orderType(%d)", orderType)
ct = UserChangeTypeRecharge
}
return ct
}
// CopyFromPayOrder copies fields from pay order.
func (uc *UserChangeHistory) CopyFromPayOrder(po *PayOrder) {
uc.Mid = po.Mid
uc.OrderNo = po.OrderNo
uc.Days = int32(po.BuyMonths) * 31
uc.OperatorId = strconv.Itoa(int(po.Mid))
uc.ChangeTime = xtime.Time(time.Now().Unix())
uc.ChangeType = uc.orderType2ChangeType(po.OrderType)
}