package models import ( "time" "github.com/ouxuanserver/osmanthuswine/src/core" ) const LotteryDrawRecordTableName = TableNamePrefix + "lottery_draw_record" type LotteryDrawRecord struct { Id int `json:"id" xorm:"pk autoincr not null INT(11)"` ActivityId int `json:"activity_id" xorm:"not null comment('主活动id') INT(11)"` RehearsalId int `json:"rehearsal_id" xorm:"not null comment('彩排id/0正式') INT(11)"` UserPrizeId int `json:"user_prize_id" xorm:"not null comment('用户奖品id') INT(11)"` LotteryDrawActivityId int `json:"lottery_draw_activity_id" xorm:"not null comment('抽奖活动id') INT(11)"` LotteryDrawRuleId int `json:"lottery_draw_rule_id" xorm:"not null comment('抽奖规则id') INT(20)"` LotteryDrawRuleLadderId int `json:"lottery_draw_rule_ladder_id" xorm:"not null comment('规则阶梯id') INT(11)"` ArchId int `json:"arch_id" xorm:"not null default 0 comment('归档id') INT(11)"` UserId int `json:"user_id" xorm:"not null comment('用户id') INT(11)"` AreaId int `json:"area_id" xorm:"not null default(0) comment('地区id') INT(11)"` RollNum int `json:"roll_num" xrom:"not null default 0 comment('滚动次数') INT(11)"` UserName string `json:"user_name" xorm:"not null comment('用户名') VARCHAR(128)"` UserPhone string `json:"user_phone" xorm:"not null comment('电话号码') VARCHAR(128)"` PrizeName string `json:"prize_name" xorm:"not null comment('奖品名字') VARCHAR(128)"` AreaName string `json:"area_name" xorm:"not null comment('地区名字') VARCHAR(128)"` EntryPersonName string `json:"entry_person_name" xorm:"not null default '' comment('录入人员名单') VARCHAR(128)"` Status int `json:"status" xorm:"not null default 0 comment('是否已经兑奖0否1是') TINYINT(1)"` WxNo string `json:"wx_no" xorm:"not null default '' comment('微信号') VARCHAR(128)"` Address string `json:"address" xorm:"not null default '' comment('地址') VARCHAR(128)"` IsDelete bool `json:"-" xorm:"default(0)"` CreatedAt time.Time `json:"-" xorm:"created"` UpdatedAt time.Time `json:"-" xorm:"updated"` // 无关变量 User *User `json:"user" xorm:"-"` LotteryDrawRuleLadder *LotteryDrawRuleLadder `json:"lottery_draw_rule_ladder" xorm:"-"` } func (t *LotteryDrawRecord) TableName() string { return LotteryDrawRecordTableName } func (t *LotteryDrawRecord) GetByUserIdAndLadderId(userId, ladderId, archId interface{}, rollNum int) (bool, error) { session := core.GetXormAuto().Where("is_delete=0 and user_id=? and lottery_draw_rule_ladder_id=? and arch_id=?", userId, ladderId, archId) defer session.Close() if rollNum > 0 { session.Where("roll_num=?", rollNum) } return session.Get(t) } func (t *LotteryDrawRecord) GetByUserPrizeId(upId int) (bool, error) { return core.GetXormAuto().Where("is_delete=0 and user_prize_id=?", upId).Get(t) } func GetUserIdsByLotteryDrawRuleId(ruleId, rehearsalId, areaId, archId interface{}) ([]int, error) { recordIds := make([]int, 0) err := core.GetXormAuto().Table(new(LotteryDrawRecord)).Select("user_id"). Where("lottery_draw_rule_id=? and rehearsal_id=? and area_id=? and arch_id=? and is_delete=0", ruleId, rehearsalId, areaId, archId).Find(&recordIds) return recordIds, err } func (t *LotteryDrawRecord) CountRecord(ruleId, ladderId, rehearsalId, areaId, archId interface{}) (int64, error) { return core.GetXormAuto().Where("lottery_draw_rule_id=? and lottery_draw_rule_ladder_id=? and rehearsal_id=? "+ " and area_id=? and arch_id=? and is_delete=0", ruleId, ladderId, rehearsalId, areaId, archId).Count(t) }