package RouterManchong import ( "database/sql" "manchong" "manchong/utils" "sync" ) type par struct { PackageId string `json:"packageId"` STATUS string `json:"STATUS"` } type respBody struct { RESP struct { RCODE string `json:"RCODE "` RMSG string `json:"RMSG"` } `json:"RESP"` CONTENT []par `json:"CONTENT,omitempty"` } /* CREATE TABLE `flow_product_manchong_status` ( `flow_status_id` bigint(20) NOT NULL AUTO_INCREMENT, `package_id` varchar(64) NOT NULL DEFAULT "" COMMENT '产品id', `package_name` varchar(64) NOT NULL DEFAULT "" COMMENT '产品名称', `status` varchar(32) NOT NULL DEFAULT "" COMMENT '状态:1-上架,2-下架', `create_time` datetime NOT NULL DEFAULT NOW() COMMENT '创建时间', `update_time` datetime NOT NULL DEFAULT NOW() ON UPDATE NOW() COMMENT '修改时间', PRIMARY KEY (`flow_status_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin */ func (r *respBody) getData() { r.RESP.RCODE = "00" r.RESP.RMSG = "OK" result, err := DB.Query("select package_id,status from flow_product_manchong_status") if err != nil { r.RESP.RCODE = "99" r.RESP.RMSG = err.Error() return } for result.Next() { par := par{} err := result.Scan(&par.PackageId, &par.STATUS) if err != nil { r.RESP.RCODE = "99" r.RESP.RMSG = err.Error() return } r.CONTENT = append(r.CONTENT, par) } } var oneDO = &sync.Once{} var DB *sql.DB func init() { manchong.RegisterReloadConfigCall(func() { oneDO.Do(func() { t := manchong.CFG.MySQL t.ParseTime = true dns := t.FormatDSN() utils.DefaultLogger().Infof("MySQL dns:%s", dns) db, err := sql.Open("mysql", dns) if err != nil { utils.DefaultLogger().Panic(err) } err = db.Ping() if err != nil { utils.DefaultLogger().Panic(err) } DB = db }) }) }