params.go 2.1 KB

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