|
|
package models
import ( "hudongzhuanjia/utils/define" "time"
"github.com/ouxuanserver/osmanthuswine/src/core" )
const NewAuctionActivityTableName = TableNamePrefix + "new_auction_activity"
type NewAuctionActivity struct { Id int64 `json:"id" xorm:"not null pk autoincr INT(11)"` Pid int64 `json:"pid" xorm:"not null default(0) comment('排序id') INT(11)"` ActivityId int64 `json:"activity_id" xorm:"not null default(0) comment('主活动id') INT(11)"` Histories []*AuctionHistory `json:"histories" xorm:"-"` AuctionModel string `json:"auction_model" xorm:"not null default('加价竞拍') comment('竞拍模式:加价竞拍|减价竞拍') VARCHAR(128)"` AuctionGoodsName string `json:"auction_goods_name" xorm:"not null default('') comment('竞拍商品名字') VARCHAR(255)"` AuctionDuration string `json:"auction_duration" xorm:"not null default(0) comment('竞拍时长单位秒') INT(11)"` AuctionEndTime int64 `json:"auction_end_time" xorm:"not null default(0) comment('竞拍结束时间') INT(11)"` GoodsNum int `json:"goods_num" xorm:"not null default(0) comment('减价竞拍的商品数量') INT(11)"` StartPrice float64 `json:"start_price" xorm:"not null default(0.00) comment('起拍价格') DECIMAL(18)"` Step float64 `json:"step" xorm:"not null default(0.00) comment('加价或减价幅度') DECIMAL(18)"` ReduceRate string `json:"reduce_rate" xorm:"not null default(0) comment('减价频率单位秒') VARCHAR(255)"` Desc string `json:"desc" xorm:"not null comment('商品描述') TEXT"` GoodsPicUrl string `json:"goods_pic_url" xorm:"not null default('') comment('商品图片url') VARCHAR(255)"` Status string `json:"status" xorm:"not null default('未开始') comment('状态[未开始,装备中, 进行中,已结束]') VARCHAR(128)"` CurrentMoney float64 `json:"current_money,omitempty" xorm:"-" description:"当前价格"` Unit int `json:"unit" xorm:"not null default(1) comment('单位') TINYINT(1)"` IsSort int `json:"is_sort" xorm:"not null default(0) comment('1表示排过序') INT(11)"` IsDelete bool `json:"-" xorm:"not null default(0) comment('软删除') TINYINT(1)" description:"删除 "` CreatedAt time.Time `json:"-" xorm:"not null created comment('创建时间') DATETIME" description:"创建"` UpdatedAt time.Time `json:"-" xorm:"not null updated comment('更新时间') DATETIME" description:"更新"` }
func (t *NewAuctionActivity) TableName() string { return NewAuctionActivityTableName }
func (t *NewAuctionActivity) Alias(name string) string { return AliasTableName(t, name) }
func (t *NewAuctionActivity) IncrMoneyById(id int64, money float64) (int64, error) { return core.GetXormAuto().Id(id).Incr("money", money).Update(t) }
func (t *NewAuctionActivity) DecrMoneyById(id int64, money float64) (int64, error) { return core.GetXormAuto().Id(id).Decr("money", money).Decr("goods_num", 1).Update(t) }
func (t *NewAuctionActivity) UpdateToStatusByAid(aid int64, before, after string) (int64, error) { t.Status = after t.UpdatedAt = time.Now() return core.GetXormAuto().Where("is_delete=0 and activity_id=? and status=?", aid, before). Cols("status", "updated_at").Update(t) } func (t *NewAuctionActivity) UpdateStatusById(id int64, status string) (int64, error) { t.Status = status t.UpdatedAt = time.Now() return core.GetXormAuto().Where("is_delete=0 and id=?", id). Cols("status", "updated_at").Update(t) }
func (t *NewAuctionActivity) GetByActivityId(aid int64, status string) (bool, error) { return core.GetXormAuto().Where("is_delete=0 and activity_id=? and status=?", aid, status). Desc("created_at").Get(t) } func (t *NewAuctionActivity) GetCurrent(aid int64) (bool, error) { return core.GetXormAuto().Where("is_delete=0 and activity_id=? and (status=? or status=?)", aid, define.StatusReady, define.StatusRunning).Get(t) }
func UpdateAuctionStatusByActivityId(aid int64) (int64, error) { return core.GetXormAuto().Where("is_delete=0 and activity_id=?", aid). Update(&NewAuctionActivity{Status: define.StatusNotBegin}) }
func GetAuctionsByActivityId(aid int64, orderBy string) ([]*NewAuctionActivity, error) { auctions := make([]*NewAuctionActivity, 0) err := core.GetXormAuto().Where("is_delete=0 and activity_id=?", aid). OrderBy(orderBy).Find(&auctions) return auctions, err }
|