|
@@ -0,0 +1,96 @@
|
|
|
+package main
|
|
|
+
|
|
|
+import (
|
|
|
+ "database/sql"
|
|
|
+ "encoding/json"
|
|
|
+ "io/ioutil"
|
|
|
+ "net/http"
|
|
|
+ "net/url"
|
|
|
+ "os"
|
|
|
+ "qfw/util"
|
|
|
+
|
|
|
+ _ "github.com/go-sql-driver/mysql"
|
|
|
+
|
|
|
+ "github.com/aiwuTech/fileLogger"
|
|
|
+)
|
|
|
+
|
|
|
+var (
|
|
|
+ config map[string]interface{}
|
|
|
+ DB *sql.DB
|
|
|
+ storesmt *sql.Stmt
|
|
|
+ logFile *fileLogger.FileLogger
|
|
|
+)
|
|
|
+
|
|
|
+func init() {
|
|
|
+ ReadConfig(&config)
|
|
|
+ logFile = fileLogger.NewDefaultLogger("./", config["log-filename"].(string))
|
|
|
+ level, _ := config["log-level"].(int)
|
|
|
+ var l fileLogger.LEVEL
|
|
|
+ switch level {
|
|
|
+ case 0:
|
|
|
+ l = fileLogger.TRACE
|
|
|
+ case 1:
|
|
|
+ l = fileLogger.INFO
|
|
|
+ case 2:
|
|
|
+ l = fileLogger.WARN
|
|
|
+ case 3:
|
|
|
+ l = fileLogger.ERROR
|
|
|
+ case 4:
|
|
|
+ l = fileLogger.OFF
|
|
|
+
|
|
|
+ }
|
|
|
+ logFile.SetLogLevel(l)
|
|
|
+ logFile.SetMaxFileCount(3)
|
|
|
+ logFile.SetMaxFileSize(1, fileLogger.KB)
|
|
|
+ dns, _ := config["mysql-url"].(string)
|
|
|
+ pool := util.IntAllDef(config["mysql-pool"], 5)
|
|
|
+ InitDb(dns, 3000, pool)
|
|
|
+}
|
|
|
+
|
|
|
+//数据库封装
|
|
|
+func InitDb(dns string, idle, maxpool int) {
|
|
|
+ var err error
|
|
|
+ DB, err = sql.Open("mysql", dns)
|
|
|
+ if err != nil {
|
|
|
+ logFile.E("数据库连接错误,程序退出", err)
|
|
|
+ os.Exit(0)
|
|
|
+ }
|
|
|
+ DB.SetMaxIdleConns(idle)
|
|
|
+ DB.SetMaxOpenConns(maxpool)
|
|
|
+}
|
|
|
+
|
|
|
+func ReadConfig(config ...interface{}) {
|
|
|
+ var r *os.File
|
|
|
+ if len(config) > 1 {
|
|
|
+ filepath, _ := config[0].(string)
|
|
|
+ r, _ = os.Open(filepath)
|
|
|
+ defer r.Close()
|
|
|
+ bs, _ := ioutil.ReadAll(r)
|
|
|
+ json.Unmarshal(bs, config[1])
|
|
|
+ } else {
|
|
|
+ r, _ = os.Open("./config.json")
|
|
|
+ defer r.Close()
|
|
|
+ bs, _ := ioutil.ReadAll(r)
|
|
|
+ json.Unmarshal(bs, config[0])
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func POST(addr string, data url.Values) (m map[string]interface{}, res bool) {
|
|
|
+ defer util.Catch()
|
|
|
+ resp, err := http.PostForm(addr, data)
|
|
|
+ if err != nil {
|
|
|
+ logFile.E("post请求错误:%s,%s,%v", addr, data, err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer resp.Body.Close()
|
|
|
+ bs, err := ioutil.ReadAll(resp.Body)
|
|
|
+ if err == nil {
|
|
|
+ ej := json.Unmarshal(bs, &m)
|
|
|
+ if ej == nil {
|
|
|
+ res = true
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ logFile.E("post请求错误", addr, data, err)
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|