互动
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.

71 lines
3.9 KiB

package models
import (
"time"
"github.com/ouxuanserver/osmanthuswine/src/core"
)
const CustomerOrderTableName = TableNamePrefix + "customer_order"
type CustomerOrder struct {
Id int64 `json:"id" xorm:"not null pk autoincr comment('主键') INT(11)"`
IsDelete bool `json:"is_delete" xorm:"not null default 0 comment('软删除') TINYINT(1)"`
CreatedAt time.Time `json:"created_at" xorm:"not null created comment('创建时间') DATETIME"`
UpdatedAt time.Time `json:"updated_at" xorm:"not null updated comment('更新时间') DATETIME"`
UserPrizeId int64 `json:"user_prize_id" xorm:"not null default 0 comment('用户奖品id') INT(11)"`
ActivityId int64 `json:"activity_id" xorm:"not null default 0 comment('主活动id') INT(11)"`
AreaId int64 `json:"area_id" xorm:"not null default 0 comment('地区id') INT(11)"`
AreaName string `json:"area_name" xorm:"not null default '' comment('地区名字') VARCHAR(255)"`
RehearsalId int64 `json:"rehearsal_id" xorm:"not null default 0 comment('彩排id/0正式') BIGINT(20)"`
OutTradeNo string `json:"out_trade_no" xorm:"not null default '' comment('订单流水号') VARCHAR(255)"`
OrderEntryPersonId int64 `json:"order_enter_person_id" xorm:"not null default 0 comment('订单录入人员id') BIGINT(20)"`
BuyerId int64 `json:"buyer_id" xorm:"not null default 0 comment('user表id') BIGINT(20)"`
GoodsId int64 `json:"goods_id" xorm:"not null default 0 comment('customer_goods表id') BIGINT(20)"`
GoodsName string `json:"goods_name" xorm:"not null default '' comment('商品名字') VARCHAR(255)"`
GoodsNum int `json:"goods_num" xorm:"not null default 0 comment('商品数量') INT(11)"`
TotalAmount float64 `json:"total_amount" xorm:"not null default 0.00 comment('订单总额') DECIMAL(18)"`
PayAmount float64 `json:"pay_amount" xorm:"not null default 0.00 comment('支付金额') DECIMAL(18)"`
Postage float64 `json:"postage" xorm:"not null default 0.00 comment('邮费[0免邮]') DECIMAL(18)"`
Status int `json:"status" xorm:"not null default 0 comment('订单状态[0未支付1已支付2待发货3已发货4确认收货5申请退款6已退款]')"`
// 快递信息
Receiver string `json:"receiver" xorm:"not null default '' comment('收件人') VARCHAR(128)"`
Address string `json:"address" xorm:"not null default '' comment('收件人地址') VARCHAR(255)"`
Phone string `json:"phone" xorm:"not null default '' comment('收件人电话') VARCHAR(128)"`
// 无关变量
OrderTime string `json:"order_time" xorm:"-"`
Good *CustomerGoods `json:"good" xorm:"-"`
User *User `json:"user" xorm:"-"`
OrderEntryPersonName string `json:"order_entry_person_name" xorm:"-"`
}
func (t *CustomerOrder) TableName() string {
return CustomerOrderTableName
}
func (t *CustomerOrder) SoftDeleteById(id int64) (int64, error) {
t.IsDelete = true
return core.GetXormAuto().Where("id=?", id).Cols("is_delete").Update(t)
}
func (t *CustomerOrder) Add() (int64, error) {
return core.GetXormAuto().InsertOne(t)
}
func (t *CustomerOrder) GetByOutTradeNO(outTradeNo string) (bool, error) {
return core.GetXormAuto().Where("is_delete=0 and out_trade_no=?", outTradeNo).Get(t)
}
func (t *CustomerOrder) Count(activityId, rehearsalId int64, limitTime time.Time) (int64, error) {
return core.GetXormAuto().Where("created_at >= ? and activity_id=? and rehearsal_id=? and is_delete=0",
limitTime, activityId, rehearsalId).Count(t)
}
func GetCustomerOrdersByActivityId(activityId, rehearsalId, areaId int64, status int) ([]*CustomerOrder, error) {
orders := make([]*CustomerOrder, 0)
err := core.GetXormAuto().Where("is_delete=0 and activity_id=? and rehearsal_id=? and status=? and area_id=?",
status, activityId, rehearsalId, areaId).Asc("created_at").Find(&orders)
return orders, err
}