params.go 2.6 KB

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