|
@@ -2,6 +2,7 @@ package tables
|
|
|
|
|
|
import (
|
|
import (
|
|
"Wine-Server/utils"
|
|
"Wine-Server/utils"
|
|
|
|
+ "database/sql"
|
|
)
|
|
)
|
|
|
|
|
|
type ManagerTable struct {
|
|
type ManagerTable struct {
|
|
@@ -19,7 +20,7 @@ type ManagerTable struct {
|
|
}
|
|
}
|
|
|
|
|
|
func CreateManagerTable() error {
|
|
func CreateManagerTable() error {
|
|
- sql := "CREATE TABLE IF NOT EXISTS `manager`(" +
|
|
|
|
|
|
+ SQL := "CREATE TABLE IF NOT EXISTS `manager`(" +
|
|
"`id` VARCHAR(16) PRIMARY KEY," +
|
|
"`id` VARCHAR(16) PRIMARY KEY," +
|
|
"`super` BOOL DEFAULT FALSE," +
|
|
"`super` BOOL DEFAULT FALSE," +
|
|
"`first` DATETIME DEFAULT CURRENT_TIMESTAMP," +
|
|
"`first` DATETIME DEFAULT CURRENT_TIMESTAMP," +
|
|
@@ -29,24 +30,18 @@ func CreateManagerTable() error {
|
|
"`password` CHAR(128) NOT NULL," +
|
|
"`password` CHAR(128) NOT NULL," +
|
|
"`order` INT UNSIGNED DEFAULT 0," +
|
|
"`order` INT UNSIGNED DEFAULT 0," +
|
|
"`income` BIGINT UNSIGNED DEFAULT 0);"
|
|
"`income` BIGINT UNSIGNED DEFAULT 0);"
|
|
- _, err := utils.Mysql.Exec(sql)
|
|
|
|
- if err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- return nil
|
|
|
|
|
|
+ _, err := utils.Mysql.Exec(SQL)
|
|
|
|
+ return err
|
|
}
|
|
}
|
|
|
|
|
|
func (row *ManagerTable) Insert() error {
|
|
func (row *ManagerTable) Insert() error {
|
|
- sql := "INSERT INTO `manager`(`id`,`name`,`account`,`password`) VALUES(?,?,?,?);"
|
|
|
|
- pre, err := utils.Mysql.Prepare(sql)
|
|
|
|
|
|
+ SQL := "INSERT INTO `manager`(`id`,`name`,`account`,`password`) VALUES(?,?,?,?);"
|
|
|
|
+ pre, err := utils.Mysql.Prepare(SQL)
|
|
if err != nil {
|
|
if err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
_, err = pre.Exec(row.Id, row.Name, row.Account, row.Password)
|
|
_, err = pre.Exec(row.Id, row.Name, row.Account, row.Password)
|
|
- if err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- return nil
|
|
|
|
|
|
+ return err
|
|
}
|
|
}
|
|
|
|
|
|
func (row *ManagerTable) Delete() error {
|
|
func (row *ManagerTable) Delete() error {
|
|
@@ -55,43 +50,34 @@ func (row *ManagerTable) Delete() error {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
_, err = pre.Exec(row.Id)
|
|
_, err = pre.Exec(row.Id)
|
|
- if err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- return nil
|
|
|
|
|
|
+ return err
|
|
}
|
|
}
|
|
|
|
|
|
func (row *ManagerTable) Update(args utils.JsonType) error {
|
|
func (row *ManagerTable) Update(args utils.JsonType) error {
|
|
keys, values := utils.UnZip(args)
|
|
keys, values := utils.UnZip(args)
|
|
- sql := utils.Format("UPDATE `manager` SET %s WHERE `id`='%s';", utils.SqlFields(keys), row.Id)
|
|
|
|
- pre, err := utils.Mysql.Prepare(sql)
|
|
|
|
|
|
+ SQL := utils.Format("UPDATE `manager` SET %s WHERE `id`='%s';", utils.SqlFields(keys), row.Id)
|
|
|
|
+ pre, err := utils.Mysql.Prepare(SQL)
|
|
if err != nil {
|
|
if err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
_, err = pre.Exec(values...)
|
|
_, err = pre.Exec(values...)
|
|
- if err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- return nil
|
|
|
|
|
|
+ return err
|
|
}
|
|
}
|
|
|
|
|
|
func (row *ManagerTable) UpdateSelf() error {
|
|
func (row *ManagerTable) UpdateSelf() error {
|
|
- sql := "UPDATE `manager` SET `super`=?,`last`=?,`name`=?,`account`=?,`password`=?,`order`=?,`income`=? WHERE `id`=?;"
|
|
|
|
- pre, err := utils.Mysql.Prepare(sql)
|
|
|
|
|
|
+ SQL := "UPDATE `manager` SET `super`=?,`last`=?,`name`=?,`account`=?,`password`=?,`order`=?,`income`=? WHERE `id`=?;"
|
|
|
|
+ pre, err := utils.Mysql.Prepare(SQL)
|
|
if err != nil {
|
|
if err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
row.Last = utils.TimeNow()
|
|
row.Last = utils.TimeNow()
|
|
_, err = pre.Exec(row.Super, row.Last, row.Name, row.Account, row.Password, row.Order, row.Income, row.Id)
|
|
_, err = pre.Exec(row.Super, row.Last, row.Name, row.Account, row.Password, row.Order, row.Income, row.Id)
|
|
- if err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- return nil
|
|
|
|
|
|
+ return err
|
|
}
|
|
}
|
|
|
|
|
|
func (row *ManagerTable) Get() error {
|
|
func (row *ManagerTable) Get() error {
|
|
- sql := "SELECT `super`,`first`,`last`,`name`,`account`,`password`,`order`,`income` FROM `manager` WHERE `id`=?;"
|
|
|
|
- pre, err := utils.Mysql.Prepare(sql)
|
|
|
|
|
|
+ SQL := "SELECT `super`,`first`,`last`,`name`,`account`,`password`,`order`,`income` FROM `manager` WHERE `id`=?;"
|
|
|
|
+ pre, err := utils.Mysql.Prepare(SQL)
|
|
if err != nil {
|
|
if err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
@@ -99,15 +85,12 @@ func (row *ManagerTable) Get() error {
|
|
&row.Super, &row.First, &row.Last, &row.Name,
|
|
&row.Super, &row.First, &row.Last, &row.Name,
|
|
&row.Account, &row.Password, &row.Order, &row.Income,
|
|
&row.Account, &row.Password, &row.Order, &row.Income,
|
|
)
|
|
)
|
|
- if err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- return nil
|
|
|
|
|
|
+ return err
|
|
}
|
|
}
|
|
|
|
|
|
func (row *ManagerTable) GetByAcc() error {
|
|
func (row *ManagerTable) GetByAcc() error {
|
|
- sql := "SELECT `id`,`super`,`first`,`last`,`name`,`password`,`order`,`income` FROM `manager` WHERE `account`=? LIMIT 1;"
|
|
|
|
- pre, err := utils.Mysql.Prepare(sql)
|
|
|
|
|
|
+ SQL := "SELECT `id`,`super`,`first`,`last`,`name`,`password`,`order`,`income` FROM `manager` WHERE `account`=? LIMIT 1;"
|
|
|
|
+ pre, err := utils.Mysql.Prepare(SQL)
|
|
if err != nil {
|
|
if err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
@@ -115,16 +98,13 @@ func (row *ManagerTable) GetByAcc() error {
|
|
&row.Id, &row.Super, &row.First, &row.Last,
|
|
&row.Id, &row.Super, &row.First, &row.Last,
|
|
&row.Name, &row.Password, &row.Order, &row.Income,
|
|
&row.Name, &row.Password, &row.Order, &row.Income,
|
|
)
|
|
)
|
|
- if err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- return nil
|
|
|
|
|
|
+ return err
|
|
}
|
|
}
|
|
|
|
|
|
-func QueryManager(name string) ([]utils.JsonType, error) {
|
|
|
|
|
|
+func ManagerQuery(name string) ([]utils.JsonType, error) {
|
|
like := utils.Format("%%%s%%", name)
|
|
like := utils.Format("%%%s%%", name)
|
|
- sql := "SELECT `id`,`name` FROM `manager` WHERE `super`=0 AND `name` LIKE ? LIMIT 10;"
|
|
|
|
- pre, err := utils.Mysql.Prepare(sql)
|
|
|
|
|
|
+ SQL := "SELECT `id`,`name` FROM `manager` WHERE `super`=0 AND `name` LIKE ? LIMIT 10;"
|
|
|
|
+ pre, err := utils.Mysql.Prepare(SQL)
|
|
if err != nil {
|
|
if err != nil {
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|
|
@@ -141,3 +121,44 @@ func QueryManager(name string) ([]utils.JsonType, error) {
|
|
_ = rows.Close()
|
|
_ = rows.Close()
|
|
return res, nil
|
|
return res, nil
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+func ManagerQueryForAdmin(cond string, limit, page int) (int, []utils.JsonType, error) {
|
|
|
|
+ SQL := utils.Format(
|
|
|
|
+ "SELECT COUNT(`id`) AS `total` FROM `manager` WHERE `super`=0 AND (`name` LIKE '%%%s%%' OR `account` LIKE '%%%s%%');",
|
|
|
|
+ cond, cond,
|
|
|
|
+ )
|
|
|
|
+ total := 0
|
|
|
|
+ err := utils.Mysql.QueryRow(SQL).Scan(&total)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return 0, nil, err
|
|
|
|
+ }
|
|
|
|
+ if total == 0 {
|
|
|
|
+ return 0, []utils.JsonType{}, nil
|
|
|
|
+ }
|
|
|
|
+ SQL = utils.Format(
|
|
|
|
+ "SELECT `id`,`first`,`last`,`name`,`account`,`order`,`income` FROM `manager` "+
|
|
|
|
+ "WHERE `super`=0 AND (`name` LIKE '%%%s%%' OR `account` LIKE '%%%s%%') LIMIT %d OFFSET %d;",
|
|
|
|
+ cond, cond, limit, (page-1)*limit,
|
|
|
|
+ )
|
|
|
|
+ var rows *sql.Rows
|
|
|
|
+ res := make([]utils.JsonType, 0)
|
|
|
|
+ rows, err = utils.Mysql.Query(SQL)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return 0, nil, err
|
|
|
|
+ }
|
|
|
|
+ for rows.Next() {
|
|
|
|
+ var one ManagerTable
|
|
|
|
+ _ = rows.Scan(&one.Id, &one.First, &one.Last, &one.Name, &one.Account, &one.Order, &one.Income)
|
|
|
|
+ res = append(res, utils.JsonType{
|
|
|
|
+ "id": one.Id, "name": one.Name, "first": one.First, "last": one.Last,
|
|
|
|
+ "account": one.Account, "order": one.Order, "income": one.Income,
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ return total, res, nil
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func ManagersDelete(ids []string) error {
|
|
|
|
+ SQL := utils.Format("DELETE FROM `manager` WHERE `id` IN (%s);", utils.SqlStringListJoin(ids))
|
|
|
|
+ _, err := utils.Mysql.Exec(SQL)
|
|
|
|
+ return err
|
|
|
|
+}
|