package sandbox import ( "github.com/beego/beego/v2/client/orm" "time" ) // Sandbox 沙盘推演主表 type Sandbox struct { SandboxId int `orm:"column(sandbox_id);pk" description:"沙盘id"` Name string `description:"沙盘名称"` ChartPermissionId int `description:"品种id"` ChartPermissionName string `description:"品种名称"` CurrVersion int `description:"当前版本"` Code string `description:"沙盘code"` Content string `description:"沙盘数据"` PicUrl string `description:"沙盘图片地址"` OpUserId int `description:"最近一次编辑操作的用户id"` OpUserName string `description:"最近一次编辑的用户名称(冗余字段,避免查表)"` IsDelete int8 `description:"是否删除,0:未删除,1:已删除"` ModifyTime time.Time `description:"修改时间"` CreateTime time.Time `description:"创建时间"` } // Update 沙盘字段变更 func (sandbox *Sandbox) Update(cols []string) (err error) { o := orm.NewOrm() _, err = o.Update(sandbox, cols...) return } // SandboxListItem 沙盘推演列表数据 type SandboxListItem struct { SandboxId int `description:"沙盘id"` Name string `description:"沙盘名称"` ChartPermissionId int `description:"品种id"` ChartPermissionName string `description:"品种名称"` CurrVersion int `description:"当前版本"` Code string `description:"沙盘code"` VersionCode string `description:"沙盘版本code"` //Content string `description:"沙盘数据"` PicUrl string `description:"沙盘图片地址"` OpUserId int `description:"最近一次编辑操作的用户id"` OpUserName string `description:"最近一次编辑的用户名称(冗余字段,避免查表)"` IsDelete int8 `description:"是否删除,0:未删除,1:已删除" json:"is_delete"` CanEdit bool `description:"是否可编辑"` Editor string `description:"编辑人"` VersionTotal int `description:"历史版本数量"` ModifyTime time.Time `description:"修改时间"` CreateTime time.Time `description:"创建时间"` } // GetList 获取沙盘列表页 func GetList(condition string, pars []interface{}, startSize, pageSize int) (total int, list []*SandboxListItem, err error) { o := orm.NewOrm() sql := "select a.sandbox_id,a.name,a.chart_permission_id,a.chart_permission_name,a.curr_version,a.code,a.pic_url,a.op_user_id,a.op_user_name,a.modify_time,a.create_time,b.version_code from sandbox as a join sandbox_version b on a.sandbox_id=b.sandbox_id and a.curr_version=b.curr_version where 1=1 AND a.is_delete = 0 " sql += condition sql += ` order by a.modify_time desc,a.sandbox_id desc` totalSql := `select count(1) total from (` + sql + `) z ` err = o.Raw(totalSql, pars).QueryRow(&total) if err != nil { return } sql += ` LIMIT ?,? ` _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list) return }