Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b7131603c4 | |||
| 2f3a5a0a59 | |||
| c2468a7389 | |||
| b6ba3486d6 | |||
| f59e909d30 | |||
| 3bb47de45a | |||
| c71973850e | |||
| 65f062b860 | |||
| 7b502fed36 | |||
| fd6b15bdaf | |||
| f31bf24ec2 | |||
| 30edb4d9fa | |||
| a32c3a1589 |
+9
-3
@@ -357,14 +357,18 @@ func (that *Application) handler(w http.ResponseWriter, req *http.Request) {
|
|||||||
defer func() {
|
defer func() {
|
||||||
//是否展示日志
|
//是否展示日志
|
||||||
if that.WebConnectLog != nil {
|
if that.WebConnectLog != nil {
|
||||||
ipStr := Substr(context.Req.RemoteAddr, 0, strings.Index(context.Req.RemoteAddr, ":"))
|
|
||||||
//负载均衡优化
|
//负载均衡优化
|
||||||
if ipStr == "127.0.0.1" {
|
ipStr := ""
|
||||||
if req.Header.Get("X-Forwarded-For") != "" {
|
if req.Header.Get("X-Forwarded-For") != "" {
|
||||||
ipStr = req.Header.Get("X-Forwarded-For")
|
ipStr = req.Header.Get("X-Forwarded-For")
|
||||||
} else if req.Header.Get("X-Real-IP") != "" {
|
} else if req.Header.Get("X-Real-IP") != "" {
|
||||||
ipStr = req.Header.Get("X-Real-IP")
|
ipStr = req.Header.Get("X-Real-IP")
|
||||||
}
|
}
|
||||||
|
//负载均衡优化
|
||||||
|
if ipStr == "" {
|
||||||
|
//RemoteAddr := that.Req.RemoteAddr
|
||||||
|
ipStr = Substr(context.Req.RemoteAddr, 0, strings.Index(context.Req.RemoteAddr, ":"))
|
||||||
}
|
}
|
||||||
|
|
||||||
that.WebConnectLog.Infoln(ipStr, context.Req.Method,
|
that.WebConnectLog.Infoln(ipStr, context.Req.Method,
|
||||||
@@ -679,7 +683,9 @@ func setMakeCodeListener(name string, appIns *Application) {
|
|||||||
if context.RouterString[1] == "hotime" && context.RouterString[2] == "config" {
|
if context.RouterString[1] == "hotime" && context.RouterString[2] == "config" {
|
||||||
return isFinished
|
return isFinished
|
||||||
}
|
}
|
||||||
|
if context.RouterString[1] == "hotime" && context.RouterString[2] == "wallpaper" {
|
||||||
|
return isFinished
|
||||||
|
}
|
||||||
if context.Session(codeIns.FileConfig.GetString("table")+"_id").Data == nil {
|
if context.Session(codeIns.FileConfig.GetString("table")+"_id").Data == nil {
|
||||||
context.Display(2, "你还没有登录")
|
context.Display(2, "你还没有登录")
|
||||||
return true
|
return true
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import (
|
|||||||
"github.com/360EntSecGroup-Skylar/excelize"
|
"github.com/360EntSecGroup-Skylar/excelize"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
@@ -907,6 +908,53 @@ var TptProject = Proj{
|
|||||||
|
|
||||||
that.Display(0, conf)
|
that.Display(0, conf)
|
||||||
},
|
},
|
||||||
|
//壁纸
|
||||||
|
"wallpaper": func(that *Context) {
|
||||||
|
random := ObjToCeilInt(that.Req.FormValue("random")) //壁纸随机,0为默认,1,为随机
|
||||||
|
|
||||||
|
tp := ObjToCeilInt(that.Req.FormValue("type")) //返回类型,0,json,1,302跳转到图片
|
||||||
|
|
||||||
|
images := that.Application.Cache("wallpaper").ToSlice()
|
||||||
|
if images == nil || len(images) == 0 {
|
||||||
|
|
||||||
|
url := "https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=7&mkt=zh-CN"
|
||||||
|
res, e := http.Get(url)
|
||||||
|
if e != nil {
|
||||||
|
that.Display(4, "无法取得数据0")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer res.Body.Close()
|
||||||
|
b, err := ioutil.ReadAll(res.Body)
|
||||||
|
if err != nil {
|
||||||
|
that.Display(4, "无法取得数据1")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
w := ObjToMap(string(b))
|
||||||
|
if len(w) == 0 {
|
||||||
|
that.Display(4, "无法取得数据2")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
images = w.GetSlice("images")
|
||||||
|
that.Application.Cache("wallpaper", images)
|
||||||
|
}
|
||||||
|
if random == 1 {
|
||||||
|
random = RandX(0, len(images)-1)
|
||||||
|
}
|
||||||
|
|
||||||
|
img := images.GetMap(random)
|
||||||
|
if !strings.Contains(img.GetString("url"), "http") {
|
||||||
|
img["url"] = "https://cn.bing.com" + img.GetString("url")
|
||||||
|
}
|
||||||
|
if tp == 0 {
|
||||||
|
that.Display(0, img)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
that.Resp.Header().Set("Location", img.GetString("url"))
|
||||||
|
that.Resp.WriteHeader(302)
|
||||||
|
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+30
-14
@@ -193,6 +193,12 @@ func (that *MakeCode) Db2JSON(db *db.HoTimeDB, config Map) {
|
|||||||
if indexNum > -1 {
|
if indexNum > -1 {
|
||||||
coloum["label"] = info.GetString("label")[:indexNum]
|
coloum["label"] = info.GetString("label")[:indexNum]
|
||||||
}
|
}
|
||||||
|
psStart := strings.Index(info.GetString("label"), "{")
|
||||||
|
psEnd := strings.Index(info.GetString("label"), "}")
|
||||||
|
if psStart != -1 && psEnd > psStart {
|
||||||
|
coloum["ps"] = info.GetString("label")[psStart+1 : psEnd]
|
||||||
|
}
|
||||||
|
|
||||||
//去除数据信息,是用:号分割的
|
//去除数据信息,是用:号分割的
|
||||||
indexNum = strings.Index(coloum.GetString("label"), ":")
|
indexNum = strings.Index(coloum.GetString("label"), ":")
|
||||||
if indexNum > -1 {
|
if indexNum > -1 {
|
||||||
@@ -1016,7 +1022,7 @@ func (that *MakeCode) Search(table string, userData Map, req *http.Request, db *
|
|||||||
|
|
||||||
if keywordTableStr != "" {
|
if keywordTableStr != "" {
|
||||||
if keywordTableStr == v.GetString("name") {
|
if keywordTableStr == v.GetString("name") {
|
||||||
keyword[table+"."+keywordTableStr+"[~]"] = keywordStr
|
data[table+"."+keywordTableStr+"[~]"] = keywordStr
|
||||||
}
|
}
|
||||||
|
|
||||||
if keywordTableStr == v.GetString("value") {
|
if keywordTableStr == v.GetString("value") {
|
||||||
@@ -1026,7 +1032,7 @@ func (that *MakeCode) Search(table string, userData Map, req *http.Request, db *
|
|||||||
childIds = append(childIds, cv.GetString("id"))
|
childIds = append(childIds, cv.GetString("id"))
|
||||||
}
|
}
|
||||||
if len(childIds) != 0 {
|
if len(childIds) != 0 {
|
||||||
keyword[v.GetString("link")+".id"] = childIds
|
data[v.GetString("link")+".id"] = childIds
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
@@ -1069,9 +1075,10 @@ func (that *MakeCode) Search(table string, userData Map, req *http.Request, db *
|
|||||||
parentID = userData.GetCeilInt(table + "_id")
|
parentID = userData.GetCeilInt(table + "_id")
|
||||||
data["OR"] = Map{table + ".id": parentID, table + ".parent_id": nil}
|
data["OR"] = Map{table + ".id": parentID, table + ".parent_id": nil}
|
||||||
} else {
|
} else {
|
||||||
|
//是否展示全部子级
|
||||||
if req.FormValue("showself") != "" {
|
|
||||||
where := Map{}
|
where := Map{}
|
||||||
|
if req.FormValue("showall") == "1" {
|
||||||
|
|
||||||
for _, v := range reqValue {
|
for _, v := range reqValue {
|
||||||
if len(where) == 0 {
|
if len(where) == 0 {
|
||||||
where[table+"."+parent_idsStr] = "," + v + ","
|
where[table+"."+parent_idsStr] = "," + v + ","
|
||||||
@@ -1079,9 +1086,21 @@ func (that *MakeCode) Search(table string, userData Map, req *http.Request, db *
|
|||||||
}
|
}
|
||||||
where = Map{"OR": where, table + "." + parent_idsStr: "," + v + ","}
|
where = Map{"OR": where, table + "." + parent_idsStr: "," + v + ","}
|
||||||
}
|
}
|
||||||
data["OR"] = Map{"OR": where, table + ".id": reqValue}
|
|
||||||
} else {
|
} else {
|
||||||
data[table+".parent_id"] = reqValue
|
where[table+".parent_id"] = reqValue
|
||||||
|
}
|
||||||
|
//是否展示自己
|
||||||
|
if req.FormValue("showself") == "1" {
|
||||||
|
if len(where) == 0 {
|
||||||
|
data["OR"] = Map{table + ".id": reqValue}
|
||||||
|
} else {
|
||||||
|
data["OR"] = Map{"OR": where, table + ".id": reqValue}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if len(where) != 0 {
|
||||||
|
data["OR"] = where
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1093,14 +1112,9 @@ func (that *MakeCode) Search(table string, userData Map, req *http.Request, db *
|
|||||||
if parent_idsStr != "" {
|
if parent_idsStr != "" {
|
||||||
|
|
||||||
where := Map{}
|
where := Map{}
|
||||||
if len(reqValue) == 1 {
|
//是否全部展示
|
||||||
if len(where) == 0 {
|
if req.FormValue("showall") != "1" {
|
||||||
where[table+"."+searchItem.GetString("name")] = reqValue[0]
|
where[table+"."+searchItem.GetString("name")] = reqValue
|
||||||
|
|
||||||
} else {
|
|
||||||
where = Map{"OR": where, table + "." + searchItem.GetString("name"): reqValue[0]}
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
for _, v := range reqValue {
|
for _, v := range reqValue {
|
||||||
if len(where) == 0 {
|
if len(where) == 0 {
|
||||||
@@ -1110,6 +1124,7 @@ func (that *MakeCode) Search(table string, userData Map, req *http.Request, db *
|
|||||||
where = Map{"OR": where, searchItem.GetString("link") + "." + parent_idsStr: "," + v + ","}
|
where = Map{"OR": where, searchItem.GetString("link") + "." + parent_idsStr: "," + v + ","}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//用户
|
//用户
|
||||||
if userData[searchItem.GetString("name")] != nil {
|
if userData[searchItem.GetString("name")] != nil {
|
||||||
|
|
||||||
@@ -1143,6 +1158,7 @@ func (that *MakeCode) Search(table string, userData Map, req *http.Request, db *
|
|||||||
data[k] = v
|
data[k] = v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(keyword) > 1 {
|
if len(keyword) > 1 {
|
||||||
if data["OR"] != nil {
|
if data["OR"] != nil {
|
||||||
data = Map{"AND": data, "OR": keyword}
|
data = Map{"AND": data, "OR": keyword}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import (
|
|||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"math"
|
"math"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
//安全锁
|
//安全锁
|
||||||
@@ -36,6 +37,42 @@ func StrFirstToUpper(str string) string {
|
|||||||
return strings.ToUpper(first) + other
|
return strings.ToUpper(first) + other
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 时间转字符串,第二个参数支持1-5对应显示年月日时分秒
|
||||||
|
func Time2Str(t *time.Time, qu ...interface{}) string {
|
||||||
|
if t == nil || t.Unix() < 0 {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
tp := 5
|
||||||
|
if len(qu) != 0 {
|
||||||
|
tp = (qu[0]).(int)
|
||||||
|
}
|
||||||
|
|
||||||
|
switch tp {
|
||||||
|
case 1:
|
||||||
|
return t.Format("2006-01")
|
||||||
|
case 2:
|
||||||
|
return t.Format("2006-01-02")
|
||||||
|
case 3:
|
||||||
|
return t.Format("2006-01-02 15")
|
||||||
|
case 4:
|
||||||
|
return t.Format("2006-01-02 15:04")
|
||||||
|
case 5:
|
||||||
|
return t.Format("2006-01-02 15:04:05")
|
||||||
|
case 12:
|
||||||
|
return t.Format("01-02")
|
||||||
|
case 14:
|
||||||
|
return t.Format("01-02 15:04")
|
||||||
|
case 15:
|
||||||
|
return t.Format("01-02 15:04:05")
|
||||||
|
case 34:
|
||||||
|
return t.Format("15:04")
|
||||||
|
case 35:
|
||||||
|
return t.Format("15:04:05")
|
||||||
|
}
|
||||||
|
return t.Format("2006-01-02 15:04:05")
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// StrLd 相似度计算 ld compares two strings and returns the levenshtein distance between them.
|
// StrLd 相似度计算 ld compares two strings and returns the levenshtein distance between them.
|
||||||
func StrLd(s, t string, ignoreCase bool) int {
|
func StrLd(s, t string, ignoreCase bool) int {
|
||||||
if ignoreCase {
|
if ignoreCase {
|
||||||
|
|||||||
+5
-2
@@ -75,14 +75,17 @@ func (that *Context) View() {
|
|||||||
if that.Session("user_id").Data != nil {
|
if that.Session("user_id").Data != nil {
|
||||||
that.Log["user_id"] = that.Session("user_id").ToCeilInt()
|
that.Log["user_id"] = that.Session("user_id").ToCeilInt()
|
||||||
}
|
}
|
||||||
ipStr := Substr(that.Req.RemoteAddr, 0, strings.Index(that.Req.RemoteAddr, ":"))
|
|
||||||
//负载均衡优化
|
//负载均衡优化
|
||||||
if ipStr == "127.0.0.1" {
|
ipStr := ""
|
||||||
if that.Req.Header.Get("X-Forwarded-For") != "" {
|
if that.Req.Header.Get("X-Forwarded-For") != "" {
|
||||||
ipStr = that.Req.Header.Get("X-Forwarded-For")
|
ipStr = that.Req.Header.Get("X-Forwarded-For")
|
||||||
} else if that.Req.Header.Get("X-Real-IP") != "" {
|
} else if that.Req.Header.Get("X-Real-IP") != "" {
|
||||||
ipStr = that.Req.Header.Get("X-Real-IP")
|
ipStr = that.Req.Header.Get("X-Real-IP")
|
||||||
}
|
}
|
||||||
|
//负载均衡优化
|
||||||
|
if ipStr == "" {
|
||||||
|
//RemoteAddr := that.Req.RemoteAddr
|
||||||
|
ipStr = Substr(that.Req.RemoteAddr, 0, strings.Index(that.Req.RemoteAddr, ":"))
|
||||||
}
|
}
|
||||||
that.Log["ip"] = ipStr
|
that.Log["ip"] = ipStr
|
||||||
that.Db.Insert("logs", that.Log)
|
that.Db.Insert("logs", that.Log)
|
||||||
|
|||||||
@@ -18,13 +18,13 @@ func Down(url, path, name string, e ...*Error) bool {
|
|||||||
}
|
}
|
||||||
out, err := os.Create(path + name)
|
out, err := os.Create(path + name)
|
||||||
|
|
||||||
if err != nil && e[0] != nil {
|
if err != nil && len(e) != 0 {
|
||||||
e[0].SetError(err)
|
e[0].SetError(err)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
defer out.Close()
|
defer out.Close()
|
||||||
resp, err := http.Get(url)
|
resp, err := http.Get(url)
|
||||||
if err != nil && e[0] != nil {
|
if err != nil && len(e) != 0 {
|
||||||
e[0].SetError(err)
|
e[0].SetError(err)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@@ -32,7 +32,7 @@ func Down(url, path, name string, e ...*Error) bool {
|
|||||||
|
|
||||||
pix, err := ioutil.ReadAll(resp.Body)
|
pix, err := ioutil.ReadAll(resp.Body)
|
||||||
_, err = io.Copy(out, bytes.NewReader(pix))
|
_, err = io.Copy(out, bytes.NewReader(pix))
|
||||||
if err != nil && e[0] != nil {
|
if err != nil && len(e) != 0 {
|
||||||
e[0].SetError(err)
|
e[0].SetError(err)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,149 @@
|
|||||||
|
package mongodb
|
||||||
|
|
||||||
|
import (
|
||||||
|
. "code.hoteas.com/golang/hotime/common"
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"go.mongodb.org/mongo-driver/mongo"
|
||||||
|
"go.mongodb.org/mongo-driver/mongo/options"
|
||||||
|
)
|
||||||
|
|
||||||
|
type MongoDb struct {
|
||||||
|
Client *mongo.Client
|
||||||
|
Ctx context.Context
|
||||||
|
DataBase *mongo.Database
|
||||||
|
Connect *mongo.Collection
|
||||||
|
LastErr error
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetMongoDb(database, url string) (*MongoDb, error) {
|
||||||
|
db := MongoDb{}
|
||||||
|
clientOptions := options.Client().ApplyURI(url)
|
||||||
|
|
||||||
|
db.Ctx = context.TODO()
|
||||||
|
// Connect to MongoDb
|
||||||
|
var err error
|
||||||
|
db.Client, err = mongo.Connect(db.Ctx, clientOptions)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
// Check the connection
|
||||||
|
err = db.Client.Ping(db.Ctx, nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
fmt.Println("Connected to MongoDb!")
|
||||||
|
//databases, err := db.Client.ListDatabaseNames(db.Ctx, bson.M{})
|
||||||
|
//if err != nil {
|
||||||
|
// return nil, err
|
||||||
|
//}
|
||||||
|
//fmt.Println(databases)
|
||||||
|
db.DataBase = db.Client.Database(database)
|
||||||
|
return &db, nil
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (that *MongoDb) Insert(table string, data interface{}) string {
|
||||||
|
collection := that.DataBase.Collection(table)
|
||||||
|
re, err := collection.InsertOne(that.Ctx, data)
|
||||||
|
if err != nil {
|
||||||
|
that.LastErr = err
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return ObjToStr(re.InsertedID)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (that *MongoDb) InsertMany(table string, data ...interface{}) Slice {
|
||||||
|
collection := that.DataBase.Collection(table)
|
||||||
|
re, err := collection.InsertMany(that.Ctx, data)
|
||||||
|
if err != nil {
|
||||||
|
that.LastErr = err
|
||||||
|
return Slice{}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ObjToSlice(re.InsertedIDs)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (that *MongoDb) Update(table string, data Map, where Map) int64 {
|
||||||
|
collection := that.DataBase.Collection(table)
|
||||||
|
re, err := collection.UpdateMany(that.Ctx, where, data)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
that.LastErr = err
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
return re.ModifiedCount
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (that *MongoDb) Delete(table string, where Map) int64 {
|
||||||
|
collection := that.DataBase.Collection(table)
|
||||||
|
re, err := collection.DeleteMany(that.Ctx, where)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
that.LastErr = err
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
return re.DeletedCount
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (that *MongoDb) Get(table string, where Map) Map {
|
||||||
|
results := []Map{}
|
||||||
|
var cursor *mongo.Cursor
|
||||||
|
var err error
|
||||||
|
collection := that.DataBase.Collection(table)
|
||||||
|
if cursor, err = collection.Find(that.Ctx, where, options.Find().SetSkip(0), options.Find().SetLimit(2)); err != nil {
|
||||||
|
that.LastErr = err
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
//延迟关闭游标
|
||||||
|
defer func() {
|
||||||
|
if err := cursor.Close(that.Ctx); err != nil {
|
||||||
|
that.LastErr = err
|
||||||
|
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
//这里的结果遍历可以使用另外一种更方便的方式:
|
||||||
|
if err = cursor.All(that.Ctx, &results); err != nil {
|
||||||
|
that.LastErr = err
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if len(results) > 0 {
|
||||||
|
|
||||||
|
return results[0]
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (that MongoDb) Select(table string, where Map, page, pageRow int64) []Map {
|
||||||
|
page = (page - 1) * pageRow
|
||||||
|
if page < 0 {
|
||||||
|
page = 0
|
||||||
|
}
|
||||||
|
results := []Map{}
|
||||||
|
var cursor *mongo.Cursor
|
||||||
|
var err error
|
||||||
|
collection := that.DataBase.Collection(table)
|
||||||
|
if cursor, err = collection.Find(that.Ctx, where, options.Find().SetSkip(page), options.Find().SetLimit(pageRow)); err != nil {
|
||||||
|
that.LastErr = err
|
||||||
|
return results
|
||||||
|
}
|
||||||
|
//延迟关闭游标
|
||||||
|
defer func() {
|
||||||
|
if err := cursor.Close(that.Ctx); err != nil {
|
||||||
|
that.LastErr = err
|
||||||
|
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
//这里的结果遍历可以使用另外一种更方便的方式:
|
||||||
|
|
||||||
|
if err = cursor.All(that.Ctx, &results); err != nil {
|
||||||
|
that.LastErr = err
|
||||||
|
return results
|
||||||
|
}
|
||||||
|
return results
|
||||||
|
}
|
||||||
@@ -12,5 +12,6 @@ require (
|
|||||||
github.com/sirupsen/logrus v1.8.1
|
github.com/sirupsen/logrus v1.8.1
|
||||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.364
|
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.364
|
||||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ocr v1.0.364
|
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ocr v1.0.364
|
||||||
|
go.mongodb.org/mongo-driver v1.10.1
|
||||||
golang.org/x/net v0.0.0-20220225172249-27dd8689420f
|
golang.org/x/net v0.0.0-20220225172249-27dd8689420f
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -14,10 +14,16 @@ github.com/go-pay/gopay v1.5.78 h1:wIHp8g/jK0ik5bZo2MWt3jAQsktT3nkdXZxlRZvljko=
|
|||||||
github.com/go-pay/gopay v1.5.78/go.mod h1:M6Nlk2VdZHCbWphOw3rtbnz4SiOk6Xvxg6mxwDfg+Ps=
|
github.com/go-pay/gopay v1.5.78/go.mod h1:M6Nlk2VdZHCbWphOw3rtbnz4SiOk6Xvxg6mxwDfg+Ps=
|
||||||
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
|
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
|
||||||
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
||||||
|
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
|
||||||
|
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||||
github.com/gomodule/redigo v1.8.5 h1:nRAxCa+SVsyjSBrtZmG/cqb6VbTmuRzpg/PoTFlpumc=
|
github.com/gomodule/redigo v1.8.5 h1:nRAxCa+SVsyjSBrtZmG/cqb6VbTmuRzpg/PoTFlpumc=
|
||||||
github.com/gomodule/redigo v1.8.5/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0=
|
github.com/gomodule/redigo v1.8.5/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0=
|
||||||
|
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 h1:2VTzZjLZBgl62/EtslCrtky5vbi9dd7HrQPQIx6wqiw=
|
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 h1:2VTzZjLZBgl62/EtslCrtky5vbi9dd7HrQPQIx6wqiw=
|
||||||
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI=
|
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI=
|
||||||
|
github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc=
|
||||||
|
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
|
||||||
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||||
@@ -25,8 +31,12 @@ github.com/mattn/go-sqlite3 v1.14.12 h1:TJ1bhYJPV44phC+IMu1u2K/i5RriLTPe+yc68XDJ
|
|||||||
github.com/mattn/go-sqlite3 v1.14.12/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
|
github.com/mattn/go-sqlite3 v1.14.12/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
|
||||||
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
|
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
|
||||||
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
|
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
|
||||||
|
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe h1:iruDEfMl2E6fbMZ9s0scYfZQ84/6SPL6zC8ACM2oIL0=
|
||||||
|
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
|
||||||
github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms=
|
github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms=
|
||||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
||||||
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/silenceper/wechat/v2 v2.1.2 h1:+QfIMiYfwST2ZloTwmYp0O0p5Y1LYRZxfLWfMuSE30k=
|
github.com/silenceper/wechat/v2 v2.1.2 h1:+QfIMiYfwST2ZloTwmYp0O0p5Y1LYRZxfLWfMuSE30k=
|
||||||
@@ -39,20 +49,36 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
|
|||||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
github.com/stretchr/testify v1.2.3-0.20181224173747-660f15d67dbb/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
github.com/stretchr/testify v1.2.3-0.20181224173747-660f15d67dbb/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||||
|
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
||||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.364 h1:X1Jws4XqrTH+p7FBQ7BpjW4qFXObKHWm0/XhW/GvqRs=
|
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.364 h1:X1Jws4XqrTH+p7FBQ7BpjW4qFXObKHWm0/XhW/GvqRs=
|
||||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.364/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
|
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.364/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
|
||||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ocr v1.0.364 h1:kbor60vo37v7Hu+i17gooox9Rw281fVHNna8zwtDG1w=
|
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ocr v1.0.364 h1:kbor60vo37v7Hu+i17gooox9Rw281fVHNna8zwtDG1w=
|
||||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ocr v1.0.364/go.mod h1:LeIUBOLhc+Y5YCEpZrULPD9lgoXXV4/EmIcoEvmHz9c=
|
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ocr v1.0.364/go.mod h1:LeIUBOLhc+Y5YCEpZrULPD9lgoXXV4/EmIcoEvmHz9c=
|
||||||
|
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
|
||||||
|
github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
|
||||||
|
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
|
||||||
|
github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E=
|
||||||
|
github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g=
|
||||||
|
github.com/xdg-go/stringprep v1.0.3 h1:kdwGpVNwPFtjs98xCGkHjQtGKh86rDcRZN17QEMCOIs=
|
||||||
|
github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8=
|
||||||
|
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM6xpdFEAYOk8iySO56hMFq6uLyA=
|
||||||
|
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
|
||||||
|
go.mongodb.org/mongo-driver v1.10.1 h1:NujsPveKwHaWuKUer/ceo9DzEe7HIj1SlJ6uvXZG0S4=
|
||||||
|
go.mongodb.org/mongo-driver v1.10.1/go.mod h1:z4XpeoU6w+9Vht+jAFyLgVrD+jGSQQe0+CBWFHNiHt8=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
||||||
golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29 h1:tkVvjkPTB7pnW3jnid7kNyAMPVWllTNOf/qKDze4p9o=
|
golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29 h1:tkVvjkPTB7pnW3jnid7kNyAMPVWllTNOf/qKDze4p9o=
|
||||||
golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||||
|
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d h1:sK3txAijHtOK88l68nt020reeT1ZdKLIYetKl95FzVY=
|
||||||
|
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
golang.org/x/net v0.0.0-20220225172249-27dd8689420f h1:oA4XRj0qtSt8Yo1Zms0CUlsT3KG69V2UGQWPBxujDmc=
|
golang.org/x/net v0.0.0-20220225172249-27dd8689420f h1:oA4XRj0qtSt8Yo1Zms0CUlsT3KG69V2UGQWPBxujDmc=
|
||||||
golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||||
|
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
|
||||||
|
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
@@ -66,12 +92,16 @@ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9sn
|
|||||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
|
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
|
||||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/h2non/gock.v1 v1.0.15 h1:SzLqcIlb/fDfg7UvukMpNcWsu7sI5tWwL+KCATZqks0=
|
gopkg.in/h2non/gock.v1 v1.0.15 h1:SzLqcIlb/fDfg7UvukMpNcWsu7sI5tWwL+KCATZqks0=
|
||||||
gopkg.in/h2non/gock.v1 v1.0.15/go.mod h1:sX4zAkdYX1TRGJ2JY156cFspQn4yRWn6p9EMdODlynE=
|
gopkg.in/h2non/gock.v1 v1.0.15/go.mod h1:sX4zAkdYX1TRGJ2JY156cFspQn4yRWn6p9EMdODlynE=
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
|
|||||||
Vendored
+66
-1
@@ -23,13 +23,26 @@ github.com/go-pay/gopay/wechat/v3
|
|||||||
# github.com/go-sql-driver/mysql v1.6.0
|
# github.com/go-sql-driver/mysql v1.6.0
|
||||||
## explicit
|
## explicit
|
||||||
github.com/go-sql-driver/mysql
|
github.com/go-sql-driver/mysql
|
||||||
|
# github.com/golang/snappy v0.0.1
|
||||||
|
github.com/golang/snappy
|
||||||
# github.com/gomodule/redigo v1.8.5
|
# github.com/gomodule/redigo v1.8.5
|
||||||
github.com/gomodule/redigo/redis
|
github.com/gomodule/redigo/redis
|
||||||
|
# github.com/klauspost/compress v1.13.6
|
||||||
|
github.com/klauspost/compress
|
||||||
|
github.com/klauspost/compress/fse
|
||||||
|
github.com/klauspost/compress/huff0
|
||||||
|
github.com/klauspost/compress/internal/snapref
|
||||||
|
github.com/klauspost/compress/zstd
|
||||||
|
github.com/klauspost/compress/zstd/internal/xxhash
|
||||||
# github.com/mattn/go-sqlite3 v1.14.12
|
# github.com/mattn/go-sqlite3 v1.14.12
|
||||||
## explicit
|
## explicit
|
||||||
github.com/mattn/go-sqlite3
|
github.com/mattn/go-sqlite3
|
||||||
# github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826
|
# github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826
|
||||||
github.com/mohae/deepcopy
|
github.com/mohae/deepcopy
|
||||||
|
# github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe
|
||||||
|
github.com/montanaflynn/stats
|
||||||
|
# github.com/pkg/errors v0.9.1
|
||||||
|
github.com/pkg/errors
|
||||||
# github.com/silenceper/wechat/v2 v2.1.2
|
# github.com/silenceper/wechat/v2 v2.1.2
|
||||||
## explicit
|
## explicit
|
||||||
github.com/silenceper/wechat/v2
|
github.com/silenceper/wechat/v2
|
||||||
@@ -106,13 +119,65 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/regions
|
|||||||
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ocr v1.0.364
|
# github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ocr v1.0.364
|
||||||
## explicit
|
## explicit
|
||||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ocr/v20181119
|
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ocr/v20181119
|
||||||
# golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29
|
# github.com/xdg-go/pbkdf2 v1.0.0
|
||||||
|
github.com/xdg-go/pbkdf2
|
||||||
|
# github.com/xdg-go/scram v1.1.1
|
||||||
|
github.com/xdg-go/scram
|
||||||
|
# github.com/xdg-go/stringprep v1.0.3
|
||||||
|
github.com/xdg-go/stringprep
|
||||||
|
# github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d
|
||||||
|
github.com/youmark/pkcs8
|
||||||
|
# go.mongodb.org/mongo-driver v1.10.1
|
||||||
|
## explicit
|
||||||
|
go.mongodb.org/mongo-driver/bson
|
||||||
|
go.mongodb.org/mongo-driver/bson/bsoncodec
|
||||||
|
go.mongodb.org/mongo-driver/bson/bsonoptions
|
||||||
|
go.mongodb.org/mongo-driver/bson/bsonrw
|
||||||
|
go.mongodb.org/mongo-driver/bson/bsontype
|
||||||
|
go.mongodb.org/mongo-driver/bson/primitive
|
||||||
|
go.mongodb.org/mongo-driver/event
|
||||||
|
go.mongodb.org/mongo-driver/internal
|
||||||
|
go.mongodb.org/mongo-driver/internal/randutil
|
||||||
|
go.mongodb.org/mongo-driver/internal/randutil/rand
|
||||||
|
go.mongodb.org/mongo-driver/internal/uuid
|
||||||
|
go.mongodb.org/mongo-driver/mongo
|
||||||
|
go.mongodb.org/mongo-driver/mongo/address
|
||||||
|
go.mongodb.org/mongo-driver/mongo/description
|
||||||
|
go.mongodb.org/mongo-driver/mongo/options
|
||||||
|
go.mongodb.org/mongo-driver/mongo/readconcern
|
||||||
|
go.mongodb.org/mongo-driver/mongo/readpref
|
||||||
|
go.mongodb.org/mongo-driver/mongo/writeconcern
|
||||||
|
go.mongodb.org/mongo-driver/tag
|
||||||
|
go.mongodb.org/mongo-driver/version
|
||||||
|
go.mongodb.org/mongo-driver/x/bsonx
|
||||||
|
go.mongodb.org/mongo-driver/x/bsonx/bsoncore
|
||||||
|
go.mongodb.org/mongo-driver/x/mongo/driver
|
||||||
|
go.mongodb.org/mongo-driver/x/mongo/driver/auth
|
||||||
|
go.mongodb.org/mongo-driver/x/mongo/driver/auth/internal/awsv4
|
||||||
|
go.mongodb.org/mongo-driver/x/mongo/driver/auth/internal/gssapi
|
||||||
|
go.mongodb.org/mongo-driver/x/mongo/driver/connstring
|
||||||
|
go.mongodb.org/mongo-driver/x/mongo/driver/dns
|
||||||
|
go.mongodb.org/mongo-driver/x/mongo/driver/mongocrypt
|
||||||
|
go.mongodb.org/mongo-driver/x/mongo/driver/mongocrypt/options
|
||||||
|
go.mongodb.org/mongo-driver/x/mongo/driver/ocsp
|
||||||
|
go.mongodb.org/mongo-driver/x/mongo/driver/operation
|
||||||
|
go.mongodb.org/mongo-driver/x/mongo/driver/session
|
||||||
|
go.mongodb.org/mongo-driver/x/mongo/driver/topology
|
||||||
|
go.mongodb.org/mongo-driver/x/mongo/driver/wiremessage
|
||||||
|
# golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d
|
||||||
|
golang.org/x/crypto/ocsp
|
||||||
|
golang.org/x/crypto/pbkdf2
|
||||||
golang.org/x/crypto/pkcs12
|
golang.org/x/crypto/pkcs12
|
||||||
golang.org/x/crypto/pkcs12/internal/rc2
|
golang.org/x/crypto/pkcs12/internal/rc2
|
||||||
# golang.org/x/net v0.0.0-20220225172249-27dd8689420f
|
# golang.org/x/net v0.0.0-20220225172249-27dd8689420f
|
||||||
## explicit
|
## explicit
|
||||||
golang.org/x/net/websocket
|
golang.org/x/net/websocket
|
||||||
|
# golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
|
||||||
|
golang.org/x/sync/errgroup
|
||||||
# golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e
|
# golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e
|
||||||
golang.org/x/sys/internal/unsafeheader
|
golang.org/x/sys/internal/unsafeheader
|
||||||
golang.org/x/sys/unix
|
golang.org/x/sys/unix
|
||||||
golang.org/x/sys/windows
|
golang.org/x/sys/windows
|
||||||
|
# golang.org/x/text v0.3.7
|
||||||
|
golang.org/x/text/transform
|
||||||
|
golang.org/x/text/unicode/norm
|
||||||
|
|||||||
Reference in New Issue
Block a user