You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

47 lines
1.5 KiB

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)
}