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

60 lines
3.0 KiB

package models
import (
"time"
"github.com/ouxuanserver/osmanthuswine/src/core"
)
const SignHistoryTN = TableNamePrefix + "sign_history"
//签到历史表
type SignHistory struct {
Id int `json:"id" xorm:"pk autoincr comment('主键') INT(11)"`
AreaId int `json:"area_id" xorm:"not null default 0 comment('地区id') INT(11)"`
ArchId int `json:"arch_id" xorm:"not null default 0 comment('归档id') INT(11)"`
ActivityId int `json:"activity_id" xorm:"not null default 0 comment('主活动id') INT(11)"`
RehearsalId int `json:"rehearsal_id" xorm:"not null default 0 comment('彩排id/ 0正式') INT(11)"`
SignRuleId int `json:"sign_rule_id" xorm:"not null default 0 comment('sign_up表id') INT(11)"`
Type int `json:"type" xorm:"not null default 0 comment('普通签到') TINYINT(1)"`
UserId int `json:"user_id" xorm:"not null default 0 comment('用户表id') TINYINT(11)"`
SignMethod int `json:"sign_method" xorm:"not null default 0 comment('1扫码签到2实名签到3人脸签到') TINYINT(1)"`
Content string `json:"content" xorm:"json comment('提交审核的内容') TEXT"`
Nickname string `json:"nickname" xorm:"not null default('') comment('微信昵称') VARCHAR(128)"`
Status int `json:"status" xorm:"not null default 0 comment('是否通过审核[0未通过审核1申请审核2通过审核]') TINYINT(1)"`
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"`
}
func (t *SignHistory) TableName() string {
return SignHistoryTN
}
func (t *SignHistory) GetByUserId(activityId, archId, userId, rehearsalId, areaId interface{}) (bool, error) {
return core.GetXormAuto().Where("is_delete=0 and activity_id=? and arch_id=? and user_id=? and "+
"rehearsal_id=? and area_id=?", activityId, archId, userId, rehearsalId, areaId).Get(t)
}
func (t *SignHistory) Count(signUpId, activityId, archId, rehearsalId interface{}) (int64, error) {
// 签到人数
return core.GetXormAuto().Where("is_delete=0 and sign_rule_id=? and "+
" activity_id=? and arch_id=? and rehearsal_id=? and status=2",
signUpId, activityId, archId, rehearsalId).Count(t)
}
func (t *SignHistory) UpdateByIds(ids interface{}, fields ...string) (err error) {
if len(fields) > 0 {
_, err = core.GetXormAuto().In("id", ids).Cols(fields...).Update(t)
} else {
_, err = core.GetXormAuto().In("id", ids).Update(t)
}
return err
}
func GetApplyRealSigns(activityId, archId, rehearsalId interface{}) ([]*SignHistory, error) {
results := make([]*SignHistory, 0)
err := core.GetXormAuto().Where("is_delete=0 and activity_id=? and arch_id=? and rehearsal_id=? "+
" and status=1", activityId, archId, rehearsalId).Asc("updated_at").Find(&results)
return results, err
}