/************************************************************ ** @Description: models ** @Author: haodaquan ** @Date: 2018-06-09 16:11 ** @Last Modified by: haodaquan ** @Last Modified time: 2018-06-09 16:11 *************************************************************/ package models import ( "fmt" "github.com/astaxie/beego/orm" ) type TaskServer struct { Id int GroupId int ServerName string ServerAccount string ServerOuterIp string ServerIp string Port int Password string PrivateKeySrc string PublicKeySrc string Type int Detail string CreateTime int64 UpdateTime int64 Status int } func (t *TaskServer) TableName() string { return TableName("task_server") } func (t *TaskServer) Update(fields ...string) error { if t.ServerName == "" { return fmt.Errorf("服务器名不能为空") } if t.ServerIp == "" { return fmt.Errorf("服务器IP不能为空") } if t.ServerAccount == "" { return fmt.Errorf("登录账户不能为空") } if t.Type == 0 && t.Password == "" { return fmt.Errorf("服务器密码不能为空") } if t.Type == 1 && t.PrivateKeySrc == "" { return fmt.Errorf("私钥不能为空") } if _, err := orm.NewOrm().Update(t, fields...); err != nil { return err } return nil } func TaskServerAdd(obj *TaskServer) (int64, error) { if obj.ServerName == "" { return 0, fmt.Errorf("服务器名不能为空") } if obj.ServerIp == "" { return 0, fmt.Errorf("服务器IP不能为空") } if obj.ServerAccount == "" { return 0, fmt.Errorf("登录账户不能为空") } if obj.Type == 0 && obj.Password == "" { return 0, fmt.Errorf("服务器密码不能为空") } if obj.Type == 1 && obj.PrivateKeySrc == "" { return 0, fmt.Errorf("私钥不能为空") } return orm.NewOrm().Insert(obj) } func TaskServerGetById(id int) (*TaskServer, error) { obj := &TaskServer{ Id: id, } err := orm.NewOrm().Read(obj) if err != nil { return nil, err } return obj, nil } func TaskServerDelById(id int) error { _, err := orm.NewOrm().QueryTable(TableName("task_server")).Filter("id", id).Delete() return err } func TaskServerGetList(page, pageSize int, filters ...interface{}) ([]*TaskServer, int64) { offset := (page - 1) * pageSize list := make([]*TaskServer, 0) query := orm.NewOrm().QueryTable(TableName("task_server")) if len(filters) > 0 { l := len(filters) for k := 0; k < l; k += 2 { query = query.Filter(filters[k].(string), filters[k+1]) } } total, _ := query.Count() query.OrderBy("-id").Limit(pageSize, offset).All(&list) return list, total }