operation.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package tables
  2. import "Wine-Server/utils"
  3. type OperationTable struct {
  4. Id string `json:"id"`
  5. Who string `json:"who"`
  6. Time utils.TimeType `json:"time"`
  7. Describe string `json:"describe"`
  8. }
  9. func CreateOperationTable() error {
  10. SQL := "CREATE TABLE IF NOT EXISTS `operation`(" +
  11. "`id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL," +
  12. "`who` VARCHAR(32) NOT NULL," +
  13. "`time` DATETIME DEFAULT CURRENT_TIMESTAMP," +
  14. "`describe` VARCHAR(128) DEFAULT '');"
  15. _, err := utils.Mysql.Exec(SQL)
  16. return err
  17. }
  18. func (row *OperationTable) Insert() error {
  19. SQL := "INSERT INTO `operation`(`who`,`describe`) VALUES(?,?);"
  20. pre, err := utils.Mysql.Prepare(SQL)
  21. if err != nil {
  22. return err
  23. }
  24. _, err = pre.Exec(row.Who, row.Describe)
  25. return err
  26. }
  27. func (row *OperationTable) Delete() error {
  28. pre, err := utils.Mysql.Prepare("DELETE FROM `operation` WHERE `id`=?;")
  29. if err != nil {
  30. return err
  31. }
  32. _, err = pre.Exec(row.Id)
  33. return err
  34. }
  35. func (row *OperationTable) Update(args utils.JsonType) error {
  36. keys, values := utils.UnZip(args)
  37. SQL := utils.Format("UPDATE `operation` SET %s WHERE `id`=%d;", utils.SqlFields(keys), row.Id)
  38. pre, err := utils.Mysql.Prepare(SQL)
  39. if err != nil {
  40. return err
  41. }
  42. _, err = pre.Exec(values...)
  43. return err
  44. }
  45. func (row *OperationTable) UpdateSelf() error {
  46. SQL := "UPDATE `operation` SET `who`=?,`time`=?,`describe`=? WHERE `id`=?;"
  47. pre, err := utils.Mysql.Prepare(SQL)
  48. if err != nil {
  49. return err
  50. }
  51. row.Time = utils.TimeNow()
  52. _, err = pre.Exec(row.Who, row.Time, row.Describe, row.Id)
  53. return err
  54. }
  55. func (row *OperationTable) Get() error {
  56. SQL := "SELECT `who`,`time`,`describe` FROM `operation` WHERE `id`=?;"
  57. pre, err := utils.Mysql.Prepare(SQL)
  58. if err != nil {
  59. return err
  60. }
  61. err = pre.QueryRow(row.Id).Scan(&row.Who, &row.Time, &row.Describe)
  62. return err
  63. }