This commit is contained in:
郝大全
2018-07-03 00:38:31 +08:00
parent e6f96cd36c
commit b34de685b8
570 changed files with 33780 additions and 10 deletions

96
V2/models/admin.go Normal file
View File

@@ -0,0 +1,96 @@
/**********************************************
** @Des: This file ...
** @Author: haodaquan
** @Date: 2017-09-16 15:42:43
** @Last Modified by: haodaquan
** @Last Modified time: 2017-09-17 11:48:17
***********************************************/
package models
import (
"github.com/astaxie/beego/orm"
)
type Admin struct {
Id int
LoginName string
RealName string
Password string
RoleIds string
Phone string
Email string
Salt string
LastLogin int64
LastIp string
Status int
CreateId int
UpdateId int
CreateTime int64
UpdateTime int64
}
func (a *Admin) TableName() string {
return TableName("uc_admin")
}
func AdminAdd(a *Admin) (int64, error) {
return orm.NewOrm().Insert(a)
}
func AdminGetByName(loginName string) (*Admin, error) {
a := new(Admin)
err := orm.NewOrm().QueryTable(TableName("uc_admin")).Filter("login_name", loginName).One(a)
if err != nil {
return nil, err
}
return a, nil
}
func AdminGetList(page, pageSize int, filters ...interface{}) ([]*Admin, int64) {
offset := (page - 1) * pageSize
list := make([]*Admin, 0)
query := orm.NewOrm().QueryTable(TableName("uc_admin"))
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
}
func AdminGetById(id int) (*Admin, error) {
r := new(Admin)
err := orm.NewOrm().QueryTable(TableName("uc_admin")).Filter("id", id).One(r)
if err != nil {
return nil, err
}
return r, nil
}
func (a *Admin) Update(fields ...string) error {
if _, err := orm.NewOrm().Update(a, fields...); err != nil {
return err
}
return nil
}
// func RoleAuthDelete(id int) (int64, error) {
// query := orm.NewOrm().QueryTable(TableName("role_auth"))
// return query.Filter("role_id", id).Delete()
// }
// func RoleAuthMultiAdd(ras []*RoleAuth) (n int, err error) {
// query := orm.NewOrm().QueryTable(TableName("role_auth"))
// i, _ := query.PrepareInsert()
// for _, ra := range ras {
// _, err := i.Insert(ra)
// if err == nil {
// n = n + 1
// }
// }
// i.Close() // 别忘记关闭 statement
// return n, err
// }

92
V2/models/auth.go Normal file
View File

@@ -0,0 +1,92 @@
/**********************************************
** @Des: 权限因子
** @Author: haodaquan
** @Date: 2017-09-09 20:50:36
** @Last Modified by: haodaquan
** @Last Modified time: 2017-09-17 21:42:08
***********************************************/
package models
import (
"fmt"
"github.com/astaxie/beego/orm"
)
type Auth struct {
Id int
AuthName string
AuthUrl string
UserId int
Pid int
Sort int
Icon string
IsShow int
Status int
CreateId int
UpdateId int
CreateTime int64
UpdateTime int64
}
func (a *Auth) TableName() string {
return TableName("uc_auth")
}
func AuthGetList(page, pageSize int, filters ...interface{}) ([]*Auth, int64) {
offset := (page - 1) * pageSize
list := make([]*Auth, 0)
query := orm.NewOrm().QueryTable(TableName("uc_auth"))
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("pid", "sort").Limit(pageSize, offset).All(&list)
return list, total
}
func AuthGetListByIds(authIds string, userId int) ([]*Auth, error) {
list1 := make([]*Auth, 0)
var list []orm.Params
//list:=[]orm.Params
var err error
if userId == 1 {
//超级管理员
_, err = orm.NewOrm().Raw("select id,auth_name,auth_url,pid,icon,is_show from pp_uc_auth where status=? order by pid asc,sort asc", 1).Values(&list)
} else {
_, err = orm.NewOrm().Raw("select id,auth_name,auth_url,pid,icon,is_show from pp_uc_auth where status=1 and id in("+authIds+") order by pid asc,sort asc", authIds).Values(&list)
}
for k, v := range list {
fmt.Println(k, v)
}
fmt.Println(list)
return list1, err
}
func AuthAdd(auth *Auth) (int64, error) {
return orm.NewOrm().Insert(auth)
}
func AuthGetById(id int) (*Auth, error) {
a := new(Auth)
err := orm.NewOrm().QueryTable(TableName("uc_auth")).Filter("id", id).One(a)
if err != nil {
return nil, err
}
return a, nil
}
func (a *Auth) Update(fields ...string) error {
if _, err := orm.NewOrm().Update(a, fields...); err != nil {
return err
}
return nil
}

81
V2/models/ban.go Normal file
View File

@@ -0,0 +1,81 @@
/************************************************************
** @Description: models
** @Author: haodaquan
** @Date: 2018-06-10 19:51
** @Last Modified by: haodaquan
** @Last Modified time: 2018-06-10 19:51
*************************************************************/
/************************************************************
** @Description: models
** @Author: haodaquan
** @Date: 2018-06-08 21:49
** @Last Modified by: haodaquan
** @Last Modified time: 2018-06-08 21:49
*************************************************************/
package models
import (
"fmt"
"github.com/astaxie/beego/orm"
)
type Ban struct {
Id int
Code string
CreateTime int64
UpdateTime int64
Status int
}
func (t *Ban) TableName() string {
return TableName("task_ban")
}
func (t *Ban) Update(fields ...string) error {
if t.Code == "" {
return fmt.Errorf("命令不能为空")
}
if _, err := orm.NewOrm().Update(t, fields...); err != nil {
return err
}
return nil
}
func BanAdd(obj *Ban) (int64, error) {
if obj.Code == "" {
return 0, fmt.Errorf("命令不能为空")
}
return orm.NewOrm().Insert(obj)
}
func BanGetById(id int) (*Ban, error) {
obj := &Ban{
Id: id,
}
err := orm.NewOrm().Read(obj)
if err != nil {
return nil, err
}
return obj, nil
}
func BanDelById(id int) error {
_, err := orm.NewOrm().QueryTable(TableName("task_ban")).Filter("id", id).Delete()
return err
}
func BanGetList(page, pageSize int, filters ...interface{}) ([]*Ban, int64) {
offset := (page - 1) * pageSize
list := make([]*Ban, 0)
query := orm.NewOrm().QueryTable(TableName("task_ban"))
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
}

55
V2/models/init.go Normal file
View File

@@ -0,0 +1,55 @@
/*
* @Author: haodaquan
* @Date: 2017-06-20 09:44:44
* @Last Modified by: haodaquan
* @Last Modified time: 2017-06-21 12:21:37
*/
package models
import (
"net/url"
"fmt"
"github.com/astaxie/beego"
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql"
)
func Init() {
dbhost := beego.AppConfig.String("db.host")
dbport := beego.AppConfig.String("db.port")
dbuser := beego.AppConfig.String("db.user")
dbpassword := beego.AppConfig.String("db.password")
dbname := beego.AppConfig.String("db.name")
timezone := beego.AppConfig.String("db.timezone")
if dbport == "" {
dbport = "3306"
}
dsn := dbuser + ":" + dbpassword + "@tcp(" + dbhost + ":" + dbport + ")/" + dbname + "?charset=utf8"
fmt.Println(dsn)
if timezone != "" {
dsn = dsn + "&loc=" + url.QueryEscape(timezone)
}
orm.RegisterDataBase("default", "mysql", dsn)
orm.RegisterModel(
new(Admin),
new(Auth),
new(Role),
new(RoleAuth),
new(ServerGroup),
new(TaskServer),
new(Ban),
new(Group),
new(Task),
)
if beego.AppConfig.String("runmode") == "dev" {
orm.Debug = true
}
}
func TableName(name string) string {
return beego.AppConfig.String("db.prefix") + name
}

66
V2/models/role.go Normal file
View File

@@ -0,0 +1,66 @@
/**********************************************
** @Des: This file ...
** @Author: haodaquan
** @Date: 2017-09-14 15:24:51
** @Last Modified by: haodaquan
** @Last Modified time: 2017-09-17 11:48:52
***********************************************/
package models
import (
"github.com/astaxie/beego/orm"
)
type Role struct {
Id int
RoleName string
Detail string
Status int
CreateId int
UpdateId int
CreateTime int64
UpdateTime int64
}
func (a *Role) TableName() string {
return TableName("uc_role")
}
func RoleGetList(page, pageSize int, filters ...interface{}) ([]*Role, int64) {
offset := (page - 1) * pageSize
list := make([]*Role, 0)
query := orm.NewOrm().QueryTable(TableName("uc_role"))
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
}
func RoleAdd(role *Role) (int64, error) {
id, err := orm.NewOrm().Insert(role)
if err != nil {
return 0, err
}
return id, nil
}
func RoleGetById(id int) (*Role, error) {
r := new(Role)
err := orm.NewOrm().QueryTable(TableName("uc_role")).Filter("id", id).One(r)
if err != nil {
return nil, err
}
return r, nil
}
func (r *Role) Update(fields ...string) error {
if _, err := orm.NewOrm().Update(r, fields...); err != nil {
return err
}
return nil
}

77
V2/models/role_auth.go Normal file
View File

@@ -0,0 +1,77 @@
/**********************************************
** @Des: This file ...
** @Author: haodaquan
** @Date: 2017-09-15 11:44:13
** @Last Modified by: haodaquan
** @Last Modified time: 2017-09-17 11:49:13
***********************************************/
package models
import (
"bytes"
"strconv"
"strings"
"github.com/astaxie/beego/orm"
)
type RoleAuth struct {
AuthId int `orm:"pk"`
RoleId int64
}
func (ra *RoleAuth) TableName() string {
return TableName("uc_role_auth")
}
func RoleAuthAdd(ra *RoleAuth) (int64, error) {
return orm.NewOrm().Insert(ra)
}
func RoleAuthGetById(id int) ([]*RoleAuth, error) {
list := make([]*RoleAuth, 0)
query := orm.NewOrm().QueryTable(TableName("uc_role_auth"))
_, err := query.Filter("role_id", id).All(&list, "AuthId")
if err != nil {
return nil, err
}
return list, nil
}
func RoleAuthDelete(id int) (int64, error) {
query := orm.NewOrm().QueryTable(TableName("uc_role_auth"))
return query.Filter("role_id", id).Delete()
}
//获取多个
func RoleAuthGetByIds(RoleIds string) (Authids string, err error) {
list := make([]*RoleAuth, 0)
query := orm.NewOrm().QueryTable(TableName("uc_role_auth"))
ids := strings.Split(RoleIds, ",")
_, err = query.Filter("role_id__in", ids).All(&list, "AuthId")
if err != nil {
return "", err
}
b := bytes.Buffer{}
for _, v := range list {
if v.AuthId != 0 && v.AuthId != 1 {
b.WriteString(strconv.Itoa(v.AuthId))
b.WriteString(",")
}
}
Authids = strings.TrimRight(b.String(), ",")
return Authids, nil
}
func RoleAuthMultiAdd(ras []*RoleAuth) (n int, err error) {
query := orm.NewOrm().QueryTable(TableName("uc_role_auth"))
i, _ := query.PrepareInsert()
for _, ra := range ras {
_, err := i.Insert(ra)
if err == nil {
n = n + 1
}
}
i.Close() // 别忘记关闭 statement
return n, err
}

116
V2/models/server.go Normal file
View File

@@ -0,0 +1,116 @@
/************************************************************
** @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
}

77
V2/models/server_group.go Normal file
View File

@@ -0,0 +1,77 @@
/************************************************************
** @Description: models
** @Author: haodaquan
** @Date: 2018-06-08 21:49
** @Last Modified by: haodaquan
** @Last Modified time: 2018-06-08 21:49
*************************************************************/
package models
import (
"fmt"
"github.com/astaxie/beego/orm"
)
type ServerGroup struct {
Id int
CreateId int
UpdateId int
GroupName string
Description string
CreateTime int64
UpdateTime int64
Status int
}
func (t *ServerGroup) TableName() string {
return TableName("task_server_group")
}
func (t *ServerGroup) Update(fields ...string) error {
if t.GroupName == "" {
return fmt.Errorf("组名不能为空")
}
if _, err := orm.NewOrm().Update(t, fields...); err != nil {
return err
}
return nil
}
func ServerGroupAdd(obj *ServerGroup) (int64, error) {
if obj.GroupName == "" {
return 0, fmt.Errorf("组名不能为空")
}
return orm.NewOrm().Insert(obj)
}
func TaskGroupGetById(id int) (*ServerGroup, error) {
obj := &ServerGroup{
Id: id,
}
err := orm.NewOrm().Read(obj)
if err != nil {
return nil, err
}
return obj, nil
}
func ServerGroupDelById(id int) error {
_, err := orm.NewOrm().QueryTable(TableName("task_server_group")).Filter("id", id).Delete()
return err
}
func ServerGroupGetList(page, pageSize int, filters ...interface{}) ([]*ServerGroup, int64) {
offset := (page - 1) * pageSize
list := make([]*ServerGroup, 0)
query := orm.NewOrm().QueryTable(TableName("task_server_group"))
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
}

108
V2/models/task.go Normal file
View File

@@ -0,0 +1,108 @@
/************************************************************
** @Description: models
** @Author: haodaquan
** @Date: 2018-06-11 21:26
** @Last Modified by: haodaquan
** @Last Modified time: 2018-06-11 21:26
*************************************************************/
package models
import (
"fmt"
"time"
"github.com/astaxie/beego/orm"
)
const (
TASK_SUCCESS = 0 // 任务执行成功
TASK_ERROR = -1 // 任务执行出错
TASK_TIMEOUT = -2 // 任务执行超时
)
type Task struct {
Id int
GroupId int
TaskName string
Description string
CronSpec string
Concurrent int
Command string
Timeout int
ExecuteTimes int
PrevTime int64
Status int
CreateId int
UpdateId int
CreateTime int64
UpdateTime int64
}
func (t *Task) TableName() string {
return TableName("task")
}
func (t *Task) Update(fields ...string) error {
if _, err := orm.NewOrm().Update(t, fields...); err != nil {
return err
}
return nil
}
func TaskAdd(task *Task) (int64, error) {
if task.TaskName == "" {
return 0, fmt.Errorf("TaskName字段不能为空")
}
if task.CronSpec == "" {
return 0, fmt.Errorf("CronSpec字段不能为空")
}
if task.Command == "" {
return 0, fmt.Errorf("Command字段不能为空")
}
if task.CreateTime == 0 {
task.CreateTime = time.Now().Unix()
}
return orm.NewOrm().Insert(task)
}
func TaskGetList(page, pageSize int, filters ...interface{}) ([]*Task, int64) {
offset := (page - 1) * pageSize
tasks := make([]*Task, 0)
query := orm.NewOrm().QueryTable(TableName("task"))
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(&tasks)
return tasks, total
}
func TaskResetGroupId(groupId int) (int64, error) {
return orm.NewOrm().QueryTable(TableName("task")).Filter("group_id", groupId).Update(orm.Params{
"group_id": 0,
})
}
func TaskGetById(id int) (*Task, error) {
task := &Task{
Id: id,
}
err := orm.NewOrm().Read(task)
if err != nil {
return nil, err
}
return task, nil
}
func TaskDel(id int) error {
_, err := orm.NewOrm().QueryTable(TableName("task")).Filter("id", id).Delete()
return err
}

78
V2/models/task_group.go Normal file
View File

@@ -0,0 +1,78 @@
/************************************************************
** @Description: models
** @Author: haodaquan
** @Date: 2018-06-10 22:24
** @Last Modified by: haodaquan
** @Last Modified time: 2018-06-10 22:24
*************************************************************/
package models
import (
"fmt"
"github.com/astaxie/beego/orm"
)
type Group struct {
Id int
CreateId int
UpdateId int
GroupName string
Description string
CreateTime int64
UpdateTime int64
Status int
}
func (t *Group) TableName() string {
return TableName("task_group")
}
func (t *Group) Update(fields ...string) error {
if t.GroupName == "" {
return fmt.Errorf("组名不能为空")
}
if _, err := orm.NewOrm().Update(t, fields...); err != nil {
return err
}
return nil
}
func GroupAdd(obj *Group) (int64, error) {
if obj.GroupName == "" {
return 0, fmt.Errorf("组名不能为空")
}
return orm.NewOrm().Insert(obj)
}
func GroupGetById(id int) (*Group, error) {
obj := &Group{
Id: id,
}
err := orm.NewOrm().Read(obj)
if err != nil {
return nil, err
}
return obj, nil
}
func GroupDelById(id int) error {
_, err := orm.NewOrm().QueryTable(TableName("task_group")).Filter("id", id).Delete()
return err
}
func GroupGetList(page, pageSize int, filters ...interface{}) ([]*Group, int64) {
offset := (page - 1) * pageSize
list := make([]*Group, 0)
query := orm.NewOrm().QueryTable(TableName("task_group"))
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
}