operation.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package tables
  2. import "Wine-Server/utils"
  3. type OperationTable struct {
  4. Id string
  5. UserType uint8 // 0: admin, 1: worker
  6. UserId string
  7. OpType uint8 // 0: insert, 1: modify, 2: delete(warn), 3: open-front, 4: open-back(danger), 5: refund(danger)
  8. Level uint8 // 0: info, 1: warn, 2: danger
  9. Time utils.TimeType
  10. Describe string
  11. }
  12. func CreateOperationTable() error {
  13. SQL := "CREATE TABLE IF NOT EXISTS `operation`(" +
  14. "`id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL," +
  15. "`user_type` TINYINT UNSIGNED DEFAULT 0," +
  16. "`user_id` VARCHAR(16) NOT NULL," +
  17. "`op_type` TINYINT UNSIGNED DEFAULT 0," +
  18. "`level` TINYINT UNSIGNED DEFAULT 0," +
  19. "`time` DATETIME DEFAULT CURRENT_TIMESTAMP," +
  20. "`describe` VARCHAR(128) DEFAULT '');"
  21. _, err := utils.Mysql.Exec(SQL)
  22. return err
  23. }
  24. func (row *OperationTable) Insert() error {
  25. SQL := "INSERT INTO `operation`(`user_type`,`user_id`,`op_type`,`level`,`describe`) VALUES(?,?,?,?,?);"
  26. _, err := utils.Mysql.Exec(SQL, row.UserType, row.UserId, row.OpType, row.Level, row.Describe)
  27. return err
  28. }
  29. func (row *OperationTable) Delete() error {
  30. _, err := utils.Mysql.Exec("DELETE FROM `operation` WHERE `id`=?;", row.Id)
  31. return err
  32. }
  33. // Update deprecated
  34. func (row *OperationTable) Update(args utils.JsonType) error {
  35. keys, values := utils.UnZip(args)
  36. SQL := utils.Format("UPDATE `operation` SET %s WHERE `id`=%d;", utils.SqlFields(keys), row.Id)
  37. pre, err := utils.Mysql.Prepare(SQL)
  38. if err != nil {
  39. return err
  40. }
  41. _, err = pre.Exec(values...)
  42. return err
  43. }
  44. // UpdateSelf deprecated
  45. func (row *OperationTable) UpdateSelf() error {
  46. SQL := "UPDATE `operation` SET `user_type`=?,`user_id`=?,`op_type`=?,`level`=?,`describe`=? WHERE `id`=?;"
  47. _, err := utils.Mysql.Exec(SQL, row.UserType, row.UserId, row.OpType, row.Level, row.Describe)
  48. return err
  49. }
  50. func (row *OperationTable) Get() error {
  51. SQL := "SELECT `user_type`,`user_id`,`op_type`,`level`,`time`,`describe` FROM `operation` WHERE `id`=?;"
  52. return utils.Mysql.QueryRow(SQL, row.Id).Scan(&row.UserType, &row.UserId, &row.OpType, &row.Level, &row.Time, &row.Describe)
  53. }