params.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package tables
  2. import (
  3. "Wine-Server/utils"
  4. "fmt"
  5. )
  6. type ParamsTable struct {
  7. Id uint32 `json:"id"`
  8. Key string `json:"key"`
  9. Value uint32 `json:"value"`
  10. }
  11. func CreateParamsTable() error {
  12. sql := "CREATE TABLE IF NOT EXISTS `params`(" +
  13. "`id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY," +
  14. "`key` VARCHAR(32) NOT NULL," +
  15. "`value` INT UNSIGNED NOT NULL);"
  16. _, err := utils.Mysql.Exec(sql)
  17. if err != nil {
  18. return err
  19. }
  20. return nil
  21. }
  22. func (row *ParamsTable) Insert() error {
  23. sql := "INSERT INTO `params` (`key`, `value`) VALUES (?, ?);"
  24. pre, err := utils.Mysql.Prepare(sql)
  25. if err != nil {
  26. return err
  27. }
  28. _, err = pre.Exec(row.Key, row.Value)
  29. if err != nil {
  30. return err
  31. }
  32. return nil
  33. }
  34. func (row *ParamsTable) Delete() error {
  35. pre, err := utils.Mysql.Prepare("DELETE FROM `params` WHERE `id`=?;")
  36. if err != nil {
  37. return err
  38. }
  39. _, err = pre.Exec(row.Id)
  40. if err != nil {
  41. return err
  42. }
  43. return nil
  44. }
  45. func (row *ParamsTable) Update(args utils.JsonType) error {
  46. keys, values := utils.UnZip(args)
  47. sql := fmt.Sprintf("UPDATE `params` SET %s WHERE `id`=%d;", utils.SqlFields(keys), row.Id)
  48. pre, err := utils.Mysql.Prepare(sql)
  49. if err != nil {
  50. return err
  51. }
  52. _, err = pre.Exec(values...)
  53. if err != nil {
  54. return err
  55. }
  56. return nil
  57. }
  58. func (row *ParamsTable) Get() error {
  59. sql := "SELECT `key`, `value` FROM `params` WHERE `id`=?;"
  60. pre, err := utils.Mysql.Prepare(sql)
  61. if err != nil {
  62. return err
  63. }
  64. err = pre.QueryRow(row.Id).Scan(&row.Key, &row.Value)
  65. if err != nil {
  66. return err
  67. }
  68. return nil
  69. }
  70. func ParamsListAll() ([]ParamsTable, error) {
  71. var res []ParamsTable
  72. query, err := utils.Mysql.Query("SELECT `id`, `key`, `value` FROM `params`;")
  73. if err != nil {
  74. return nil, err
  75. }
  76. for query.Next() {
  77. var one ParamsTable
  78. err = query.Scan(&one.Id, &one.Key, &one.Value)
  79. if err != nil {
  80. return nil, err
  81. }
  82. res = append(res, one)
  83. }
  84. return res, nil
  85. }