refund.go 1.8 KB

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