|
@@ -2,16 +2,27 @@
|
|
|
package admin
|
|
|
|
|
|
import (
|
|
|
+ "fmt"
|
|
|
. "jy/mongodbutil"
|
|
|
+ "jy/util"
|
|
|
+ "log"
|
|
|
"regexp"
|
|
|
"strings"
|
|
|
"time"
|
|
|
|
|
|
+ "github.com/gin-contrib/sessions"
|
|
|
"github.com/gin-gonic/gin"
|
|
|
)
|
|
|
|
|
|
var Date_Short_Layout = "2006-01-02"
|
|
|
|
|
|
+const (
|
|
|
+ FE = "FE" //前置正则
|
|
|
+ FL = "FL" //前置脚本
|
|
|
+ BE = "BE" //后置正则
|
|
|
+ BL = "BL" //后置脚本
|
|
|
+)
|
|
|
+
|
|
|
func init() {
|
|
|
//rulepre
|
|
|
Admin.GET("/rulepre", func(c *gin.Context) {
|
|
@@ -22,7 +33,18 @@ func init() {
|
|
|
Admin.POST("/rulepre/save", RulePreSave)
|
|
|
Admin.POST("/rulepre/searchbyid", RulePreSearchById)
|
|
|
Admin.POST("/rulepre/del", RulePreDel)
|
|
|
- Admin.GET("/rulepre/newlua", RulePreNewLua)
|
|
|
+ Admin.GET("/rulepre/luastr", RulePreLua)
|
|
|
+
|
|
|
+ //ruleback
|
|
|
+ Admin.GET("/ruleback", func(c *gin.Context) {
|
|
|
+ version := c.Query("version")
|
|
|
+ c.HTML(200, "rule_backlist.html", gin.H{"version": version})
|
|
|
+ })
|
|
|
+ Admin.POST("/ruleback/data", RuleBackData)
|
|
|
+ Admin.POST("/ruleback/save", RuleBackSave)
|
|
|
+ Admin.POST("/ruleback/searchbyid", RuleBackSearchById)
|
|
|
+ Admin.POST("/ruleback/del", RuleBackDel)
|
|
|
+ Admin.GET("/ruleback/luastr", RuleBackLua)
|
|
|
|
|
|
//ruletag
|
|
|
Admin.GET("/ruletag", func(c *gin.Context) {
|
|
@@ -35,76 +57,116 @@ func init() {
|
|
|
Admin.POST("/ruletag/editsave", RuleTagEditSave)
|
|
|
}
|
|
|
|
|
|
-//前置规则列表
|
|
|
func RulePreData(c *gin.Context) {
|
|
|
version, _ := c.GetPostForm("version")
|
|
|
- data, _ := Mgo.Find("rule_pre", `{"version":"`+version+`"}`, `{"_id":-1}`, nil, false, -1, -1)
|
|
|
+ data, _ := Mgo.Find("rule_pre", `{"s_version":"`+version+`"}`, `{"_id":-1}`, nil, false, -1, -1)
|
|
|
c.JSON(200, gin.H{"data": data, "version": version})
|
|
|
}
|
|
|
-
|
|
|
-//前置规则创建
|
|
|
func RulePreSave(c *gin.Context) {
|
|
|
- stype, _ := c.GetPostForm("type")
|
|
|
- name, _ := c.GetPostForm("name")
|
|
|
- version, _ := c.GetPostForm("version")
|
|
|
- descript, _ := c.GetPostForm("descript")
|
|
|
- username, _ := c.GetPostForm("username")
|
|
|
- field, _ := c.GetPostForm("field")
|
|
|
- rule, _ := c.GetPostForm("rule")
|
|
|
- luastr, _ := c.GetPostForm("luastr")
|
|
|
- if stype == "0" { //正则
|
|
|
- if name == "" || rule == "" {
|
|
|
- c.JSON(200, gin.H{"rep": false, "msg": "表单不完整"})
|
|
|
- return
|
|
|
- }
|
|
|
- } else { //lua脚本
|
|
|
- if luastr == "" {
|
|
|
- c.JSON(200, gin.H{"rep": false, "msg": "表单不完整"})
|
|
|
- return
|
|
|
+ data := GetPostForm(c)
|
|
|
+ _id, _ := c.GetPostForm("_id")
|
|
|
+ b := false
|
|
|
+ if _id == "" {
|
|
|
+ data["l_createtime"] = time.Now().Unix()
|
|
|
+ data["s_username"] = sessions.Default(c).Get("username")
|
|
|
+ s_type := data["s_type"]
|
|
|
+ code := ""
|
|
|
+ if s_type == "0" { //前置正则
|
|
|
+ code = util.GetSyncIndex(FE)
|
|
|
+ } else { //前置lua脚本
|
|
|
+ code = util.GetSyncIndex(FL)
|
|
|
}
|
|
|
- }
|
|
|
- data := map[string]interface{}{
|
|
|
- "name": name,
|
|
|
- "version": version,
|
|
|
- "type": stype,
|
|
|
- "descript": descript,
|
|
|
- "username": username,
|
|
|
- "rule": rule,
|
|
|
- "field": field,
|
|
|
- "luastr": luastr,
|
|
|
- "intime": time.Now().Unix(),
|
|
|
- }
|
|
|
- b := Mgo.Update("rule_pre", `{"name":"`+name+`","version":"`+version+`"}`, data, true, false)
|
|
|
- if b {
|
|
|
- c.JSON(200, gin.H{"rep": true})
|
|
|
+ data["s_code"] = code
|
|
|
+ log.Println(code)
|
|
|
+ b = Mgo.Save("rule_pre", data) != ""
|
|
|
} else {
|
|
|
- c.JSON(200, gin.H{"rep": false})
|
|
|
+ data["l_lasttime"] = time.Now().Unix()
|
|
|
+ b = Mgo.Update("rule_pre", `{"_id":"`+_id+`"}`, map[string]interface{}{
|
|
|
+ "$set": data,
|
|
|
+ }, true, false)
|
|
|
}
|
|
|
+ c.JSON(200, gin.H{"rep": b})
|
|
|
}
|
|
|
-
|
|
|
func RulePreSearchById(c *gin.Context) {
|
|
|
_id, _ := c.GetPostForm("_id")
|
|
|
data, _ := Mgo.FindById("rule_pre", _id, nil)
|
|
|
c.JSON(200, gin.H{"rep": data})
|
|
|
}
|
|
|
-
|
|
|
func RulePreDel(c *gin.Context) {
|
|
|
_id, _ := c.GetPostForm("_id")
|
|
|
b := Mgo.Del("rule_pre", `{"_id":"`+_id+`"}`)
|
|
|
c.JSON(200, gin.H{"rep": b})
|
|
|
}
|
|
|
-
|
|
|
-func RulePreNewLua(c *gin.Context) {
|
|
|
+func RulePreLua(c *gin.Context) {
|
|
|
version := c.Query("version")
|
|
|
_id := c.Query("_id")
|
|
|
data := map[string]interface{}{}
|
|
|
if _id != "" {
|
|
|
tmp, _ := Mgo.FindById("rule_pre", _id, nil)
|
|
|
data = *tmp
|
|
|
+ if version == "" {
|
|
|
+ version = fmt.Sprint((*tmp)["s_version"])
|
|
|
+ }
|
|
|
+ data["_id"] = _id
|
|
|
}
|
|
|
c.HTML(200, "rule_prelua.html", gin.H{"version": version, "data": data})
|
|
|
}
|
|
|
|
|
|
+func RuleBackData(c *gin.Context) {
|
|
|
+ version, _ := c.GetPostForm("version")
|
|
|
+ data, _ := Mgo.Find("rule_back", `{"s_version":"`+version+`"}`, `{"_id":-1}`, nil, false, -1, -1)
|
|
|
+ c.JSON(200, gin.H{"data": data, "version": version})
|
|
|
+}
|
|
|
+func RuleBackSave(c *gin.Context) {
|
|
|
+ data := GetPostForm(c)
|
|
|
+ _id, _ := c.GetPostForm("_id")
|
|
|
+ b := false
|
|
|
+ if _id == "" {
|
|
|
+ data["l_createtime"] = time.Now().Unix()
|
|
|
+ data["s_username"] = sessions.Default(c).Get("username")
|
|
|
+ s_type := data["s_type"]
|
|
|
+ code := ""
|
|
|
+ if s_type == "0" { //前置正则
|
|
|
+ code = util.GetSyncIndex(BE)
|
|
|
+ } else { //前置lua脚本
|
|
|
+ code = util.GetSyncIndex(BL)
|
|
|
+ }
|
|
|
+ data["s_code"] = code
|
|
|
+ log.Println(code)
|
|
|
+ b = Mgo.Save("rule_back", data) != ""
|
|
|
+ } else {
|
|
|
+ data["l_lasttime"] = time.Now().Unix()
|
|
|
+ b = Mgo.Update("rule_back", `{"_id":"`+_id+`"}`, map[string]interface{}{
|
|
|
+ "$set": data,
|
|
|
+ }, true, false)
|
|
|
+ }
|
|
|
+ c.JSON(200, gin.H{"rep": b})
|
|
|
+}
|
|
|
+func RuleBackSearchById(c *gin.Context) {
|
|
|
+ _id, _ := c.GetPostForm("_id")
|
|
|
+ data, _ := Mgo.FindById("rule_back", _id, nil)
|
|
|
+ c.JSON(200, gin.H{"rep": data})
|
|
|
+}
|
|
|
+func RuleBackDel(c *gin.Context) {
|
|
|
+ _id, _ := c.GetPostForm("_id")
|
|
|
+ b := Mgo.Del("rule_back", `{"_id":"`+_id+`"}`)
|
|
|
+ c.JSON(200, gin.H{"rep": b})
|
|
|
+}
|
|
|
+func RuleBackLua(c *gin.Context) {
|
|
|
+ version := c.Query("version")
|
|
|
+ _id := c.Query("_id")
|
|
|
+ data := map[string]interface{}{}
|
|
|
+ if _id != "" {
|
|
|
+ tmp, _ := Mgo.FindById("rule_back", _id, nil)
|
|
|
+ data = *tmp
|
|
|
+ if version == "" {
|
|
|
+ version = fmt.Sprint((*tmp)["s_version"])
|
|
|
+ }
|
|
|
+ data["_id"] = _id
|
|
|
+ }
|
|
|
+ c.HTML(200, "rule_backlua.html", gin.H{"version": version, "data": data})
|
|
|
+}
|
|
|
+
|
|
|
//标签库列表
|
|
|
func RuleTagData(c *gin.Context) {
|
|
|
version, _ := c.GetPostForm("version")
|