resp.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package RouterManchong
  2. import (
  3. "database/sql"
  4. "manchong"
  5. "manchong/utils"
  6. "sync"
  7. )
  8. type par struct {
  9. PackageId string `json:"packageId"`
  10. STATUS string `json:"STATUS"`
  11. }
  12. type respBody struct {
  13. RESP struct {
  14. RCODE string `json:"RCODE "`
  15. RMSG string `json:"RMSG"`
  16. } `json:"RESP"`
  17. CONTENT []par `json:"CONTENT,omitempty"`
  18. }
  19. /*
  20. CREATE TABLE `flow_product_manchong_status` (
  21. `flow_status_id` bigint(20) NOT NULL AUTO_INCREMENT,
  22. `package_id` varchar(64) NOT NULL DEFAULT "" COMMENT '产品id',
  23. `package_name` varchar(64) NOT NULL DEFAULT "" COMMENT '产品名称',
  24. `status` varchar(32) NOT NULL DEFAULT "" COMMENT '状态:1-上架,2-下架',
  25. `create_time` datetime NOT NULL DEFAULT NOW() COMMENT '创建时间',
  26. `update_time` datetime NOT NULL DEFAULT NOW() ON UPDATE NOW() COMMENT '修改时间',
  27. PRIMARY KEY (`flow_status_id`)
  28. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
  29. */
  30. func (r *respBody) getData() {
  31. r.RESP.RCODE = "00"
  32. r.RESP.RMSG = "OK"
  33. result, err := DB.Query("select package_id,status from flow_product_manchong_status")
  34. if err != nil {
  35. r.RESP.RCODE = "99"
  36. r.RESP.RMSG = err.Error()
  37. utils.DefaultLogger().Errorf("Response getData Error:%s", err.Error())
  38. return
  39. }
  40. for result.Next() {
  41. par := par{}
  42. err := result.Scan(&par.PackageId, &par.STATUS)
  43. if err != nil {
  44. r.RESP.RCODE = "99"
  45. r.RESP.RMSG = err.Error()
  46. utils.DefaultLogger().Errorf("Response getData Error:%s", err.Error())
  47. return
  48. }
  49. r.CONTENT = append(r.CONTENT, par)
  50. }
  51. }
  52. var oneDO = &sync.Once{}
  53. var DB *sql.DB
  54. func init() {
  55. manchong.RegisterReloadConfigCall(func() {
  56. oneDO.Do(func() {
  57. t := manchong.CFG.MySQL
  58. t.ParseTime = true
  59. dns := t.FormatDSN()
  60. utils.DefaultLogger().Infof("MySQL dns:%s", dns)
  61. db, err := sql.Open("mysql", dns)
  62. if err != nil {
  63. utils.DefaultLogger().Panic(err)
  64. }
  65. err = db.Ping()
  66. if err != nil {
  67. utils.DefaultLogger().Panic(err)
  68. }
  69. DB = db
  70. })
  71. })
  72. }