unknown 7 年之前
父節點
當前提交
01328fe28d
共有 6 個文件被更改,包括 134 次插入2 次删除
  1. 二進制
      pkg/windows_amd64/apiservice/tools.a
  2. 65 0
      src/apiservice/oamanager/createuser.go
  3. 48 2
      src/apiservice/oamanager/oamanager.go
  4. 18 0
      src/apiservice/tools/mongo.go
  5. 3 0
      src/config.json
  6. 二進制
      src/src.exe

二進制
pkg/windows_amd64/apiservice/tools.a


+ 65 - 0
src/apiservice/oamanager/createuser.go

@@ -0,0 +1,65 @@
+package oamanager
+
+import (
+	"fmt"
+	"log"
+	"qfw/util"
+	"regexp"
+	"time"
+
+	"github.com/go-xweb/xweb"
+)
+
+type Createuser struct {
+	*xweb.Action
+	createUser xweb.Mapper `xweb:"/createUser"`
+}
+
+func init() {
+	xweb.AddAction(&Createuser{})
+}
+
+var EncodeUtil = &util.SimpleEncrypt{"openapi2018jy"}
+var strReg = regexp.MustCompile("^[0-9a-zA-Z]+$")
+
+//创建用户信息 生成appid和secret
+func (c *Createuser) CreateUser() error {
+	defer util.Catch()
+	username := c.GetString("username")
+	userip := c.GetString("ip")
+	t := time.Now()
+	status := "1"
+	var appid, secret string
+	res, _ := mongodb.FindOneByField("user", &map[string]interface{}{
+		"username": username,
+		"userip":   userip,
+	}, nil)
+	if len(*res) > 0 {
+		log.Println((*res)["status"], "--", util.ObjToString((*res)["status"]))
+		appid = util.ObjToString((*res)["appid"])
+		secret = util.ObjToString((*res)["secret"])
+		status = util.ObjToString((*res)["status"])
+	} else {
+		appid = GetAppid(t.Unix())
+		secret = util.GetComplexRandom(8, 3, 5)
+		id := mongodb.Save("user", &map[string]interface{}{"username": username, "userip": userip, "createtime": t.Unix(), "appid": appid, "secret": secret, "status": "1"})
+		if len(id) > 0 {
+			log.Println("保存用户成功!")
+		}
+	}
+	c.ServeJson(map[string]interface{}{"appid": appid, "secret": secret, "status": status})
+	return nil
+}
+
+func GetAppid(tn int64) (appid string) {
+	for {
+		randomstr := util.GetLetterRandom(5)
+		str := fmt.Sprintf("%s%d%s", randomstr[:2], tn, randomstr[2:])
+		appid = EncodeUtil.EncodeString(str)
+		if strReg.MatchString(appid) {
+			break
+		}
+	}
+	appid = "jyoa" + appid
+	return
+}

+ 48 - 2
src/apiservice/oamanager/oamanager.go

@@ -1,6 +1,12 @@
 package oamanager
 
 import (
+	"apiservice/tools"
+	"log"
+	"qfw/util"
+	"strconv"
+	"time"
+
 	"github.com/go-xweb/xweb"
 )
 
@@ -13,7 +19,10 @@ func init() {
 	xweb.AddAction(&Oamanager{})
 }
 
+var mongodb = tools.MQFW
+
 const (
+	LIMIT_TIME  = 300
 	REDISDB     = "jyOpenAPI"
 	CODE_E1     = 40000
 	MSG_E1      = "签名错误"
@@ -30,6 +39,43 @@ const (
 	MSG_SUCCESS = "请求成功"
 )
 
-func (o *Oamanager) OpenAction() error {
-	return o.Render("/pc/article.html")
+func (o *Oamanager) OpenAction() {
+	rData := make(map[string]interface{})
+	defer util.Catch()
+	//if o.Method() == "POST"
+
+	var (
+		//action    = "" //o.GetString("action")
+		//keyword   = "" //o.GetString("keyword")
+		appid   = o.GetString("appid")
+		secret  = o.GetString("secret")
+		pagenum = "" //o.GetString("pagenum")
+		//signature = "" //o.GetString("signature")
+		ttamp     = time.Now().Unix()
+		timestamp int64
+	)
+	if appid == "" || secret == "" || o.GetString("timestamp") == "" {
+		rData["code"] = CODE_E1
+	} else {
+		if pagenum == "" {
+			pagenum = "1"
+		}
+		timestamp, _ = strconv.ParseInt(o.GetString("timestamp"), 10, 64)
+
+		log.Println(timestamp, "---", ttamp)
+		if (ttamp - timestamp) > LIMIT_TIME {
+
+		}
+		res, _ := mongodb.FindOneByField("user", &map[string]interface{}{
+			"appid":  appid,
+			"secret": secret,
+		}, nil)
+		if len(*res) > 0 {
+			//log.Println("res;", *res)
+		}
+	}
+	log.Println("----")
+	o.ServeJson(map[string]interface{}{
+		"rData": rData,
+	})
 }

+ 18 - 0
src/apiservice/tools/mongo.go

@@ -0,0 +1,18 @@
+package tools
+
+import (
+	. "apiservice/config"
+	"qfw/util"
+	"qfw/util/mongodb"
+)
+
+var MQFW mongodb.MongodbSim
+
+func init() {
+	MQFW = mongodb.MongodbSim{
+		MongodbAddr: Sysconfig["mongodbServers"].(string),
+		Size:        util.IntAll(Sysconfig["mongodbPoolSize"]),
+		DbName:      Sysconfig["mongodbName"].(string),
+	}
+	MQFW.InitPool()
+}

+ 3 - 0
src/config.json

@@ -1,4 +1,7 @@
 {
+    "mongodbServers": "192.168.3.18:27080",
+    "mongodbPoolSize": "5",
+    "mongodbName": "jyopenapi",
     "elasticsearch": "http://192.168.3.18:9800",
     "elasticPoolSize": 30,
     "redisaddrs": "jyOpenAPI=192.168.3.18:3380",

二進制
src/src.exe