manager.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package tables
  2. import (
  3. "Wine-Server/utils"
  4. "fmt"
  5. )
  6. type ManagerTable struct {
  7. Id string
  8. Super bool
  9. First utils.TimeType
  10. Last utils.TimeType
  11. Name string
  12. Account string
  13. Password string
  14. OrderCount uint32
  15. TotalIncome float64
  16. }
  17. func CreateManagerTable() error {
  18. sql := "CREATE TABLE IF NOT EXISTS `manager`(" +
  19. "`id` VARCHAR(16) PRIMARY KEY," +
  20. "`super` BOOL DEFAULT FALSE," +
  21. "`first` DATETIME DEFAULT CURRENT_TIMESTAMP," +
  22. "`last` DATETIME DEFAULT CURRENT_TIMESTAMP," +
  23. "`name` VARCHAR(16) NOT NULL," +
  24. "`account` VARCHAR(32) NOT NULL," +
  25. "`password` VARCHAR(512) NOT NULL," +
  26. "`order` INT UNSIGNED DEFAULT 0," +
  27. "`income` DOUBLE DEFAULT 0);"
  28. _, err := utils.Mysql.Exec(sql)
  29. if err != nil {
  30. return err
  31. }
  32. return nil
  33. }
  34. func (row *ManagerTable) Insert() error {
  35. sql := "INSERT INTO `manager` (`id`, `name`, `account`, `password`) VALUES (?, ?, ?, ?);"
  36. pre, err := utils.Mysql.Prepare(sql)
  37. if err != nil {
  38. return err
  39. }
  40. _, err = pre.Exec(row.Id, row.Name, row.Account, row.Password)
  41. if err != nil {
  42. return err
  43. }
  44. return nil
  45. }
  46. func (row *ManagerTable) Delete() error {
  47. pre, err := utils.Mysql.Prepare("DELETE FROM `manager` WHERE `id`=?;")
  48. if err != nil {
  49. return err
  50. }
  51. _, err = pre.Exec(row.Id)
  52. if err != nil {
  53. return err
  54. }
  55. return nil
  56. }
  57. func (row *ManagerTable) Update(args utils.JsonType) error {
  58. keys, values := utils.UnZip(args)
  59. sql := fmt.Sprintf("UPDATE `manager` SET %s WHERE `id`='%s';", utils.SqlFields(keys), row.Id)
  60. pre, err := utils.Mysql.Prepare(sql)
  61. if err != nil {
  62. return err
  63. }
  64. _, err = pre.Exec(values...)
  65. if err != nil {
  66. return err
  67. }
  68. return nil
  69. }
  70. func (row *ManagerTable) Get() error {
  71. sql := "SELECT `super`, `first`, `last`, `name`, `account`, `password`, `count`, `income` FROM `manager` WHERE `id`=?;"
  72. pre, err := utils.Mysql.Prepare(sql)
  73. if err != nil {
  74. return err
  75. }
  76. err = pre.QueryRow(row.Id).Scan(&row.Super, &row.First, &row.Last, &row.Name, &row.Account, &row.Password, &row.OrderCount, &row.TotalIncome)
  77. if err != nil {
  78. return err
  79. }
  80. return nil
  81. }