wine.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package tables
  2. import (
  3. "Wine-Server/utils"
  4. "fmt"
  5. )
  6. type WineTable struct {
  7. Id uint16
  8. Name string
  9. Price uint16
  10. Density float64
  11. Picture string
  12. Time utils.TimeType
  13. Describe string
  14. OrderCount uint32
  15. TotalIncome float64
  16. }
  17. func CreateWineTable() error {
  18. sql := "CREATE TABLE IF NOT EXISTS `wine`(" +
  19. "`id` SMALLINT UNSIGNED PRIMARY KEY," +
  20. "`name` VARCHAR(16) NOT NULL," +
  21. "`price` SMALLINT UNSIGNED DEFAULT 9999," +
  22. "`density` DOUBLE DEFAULT 1," +
  23. "`picture` VARCHAR(128) NOT NULL," +
  24. "`time` DATETIME DEFAULT CURRENT_TIMESTAMP," +
  25. "`describe` VARCHAR(256)," +
  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 *WineTable) Insert() error {
  35. sql := "INSERT INTO `wine` (`name`, `price`, `picture`, `describe`) VALUES (?, ?, ?, ?, ?, ?, ?);"
  36. pre, err := utils.Mysql.Prepare(sql)
  37. if err != nil {
  38. return err
  39. }
  40. _, err = pre.Exec(row.Name, row.Price, row.Picture, row.Describe)
  41. if err != nil {
  42. return err
  43. }
  44. return nil
  45. }
  46. func (row *WineTable) Delete() error {
  47. pre, err := utils.Mysql.Prepare("DELETE FROM `wine` 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 *WineTable) Update(args utils.JsonType) error {
  58. keys, values := utils.UnZip(args)
  59. sql := fmt.Sprintf("UPDATE `wine` SET %s WHERE `id`=%d;", 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 *WineTable) Get() error {
  71. sql := "SELECT `name`, `price`, `density`, `picture`, IFNULL(`describe`, ''), `time`, `order`, `income` FROM `wine` WHERE `id`=?;"
  72. pre, err := utils.Mysql.Prepare(sql)
  73. if err != nil {
  74. return err
  75. }
  76. err = pre.QueryRow(row.Id).Scan(
  77. &row.Name, &row.Price, &row.Density, &row.Picture, &row.Describe, &row.Time, &row.OrderCount, &row.TotalIncome,
  78. )
  79. if err != nil {
  80. return err
  81. }
  82. return nil
  83. }