rule.go 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706
  1. // rule
  2. package admin
  3. import (
  4. "fmt"
  5. . "jy/mongodbutil"
  6. "jy/util"
  7. qu "qfw/util"
  8. "time"
  9. "github.com/gin-contrib/sessions"
  10. "github.com/gin-gonic/gin"
  11. )
  12. var Date_Short_Layout = "2006-01-02"
  13. const (
  14. F_E = "F_E" //前置正则
  15. F_L = "F_L" //前置脚本
  16. B_E = "B_E" //后置正则
  17. B_L = "B_L" //后置脚本
  18. E_FE = "E_FE" //抽取前置正则
  19. E_FL = "E_FL" //抽取前置脚本
  20. E_BE = "E_BE" //抽取后置正则
  21. E_BL = "E_BL" //抽取后置脚本
  22. E_CE = "E_CE" //抽取逻辑正则
  23. E_CL = "E_CL" //抽取逻辑脚本
  24. C_CL = "C_CL" //清理逻辑脚本
  25. )
  26. func init() {
  27. Admin.GET("/rulepre", func(c *gin.Context) {
  28. version := c.Query("version")
  29. c.HTML(200, "rule_prelist.html", gin.H{"version": version})
  30. })
  31. Admin.POST("/rulepre/data", RulePreData)
  32. Admin.POST("/rulepre/save", RulePreSave)
  33. Admin.POST("/rulepre/searchbyid", RulePreSearchById)
  34. Admin.POST("/rulepre/del", RulePreDel)
  35. Admin.GET("/rulepre/luastr", RulePreLua)
  36. //ruleback
  37. Admin.GET("/ruleback", func(c *gin.Context) {
  38. version := c.Query("version")
  39. c.HTML(200, "rule_backlist.html", gin.H{"version": version})
  40. })
  41. Admin.POST("/ruleback/data", RuleBackData)
  42. Admin.POST("/ruleback/save", RuleBackSave)
  43. Admin.POST("/ruleback/searchbyid", RuleBackSearchById)
  44. Admin.POST("/ruleback/del", RuleBackDel)
  45. Admin.GET("/ruleback/luastr", RuleBackLua)
  46. //rulelogic
  47. Admin.GET("/rulelogic", func(c *gin.Context) {
  48. vid := c.Query("vid")
  49. pid := c.Query("pid")
  50. c.HTML(200, "rule_logiclist.html", gin.H{"vid": vid, "pid": pid})
  51. })
  52. Admin.POST("/rulelogic/data", RuleLogicData)
  53. Admin.POST("/rulelogic/save", RuleLogicSave)
  54. Admin.POST("/rulelogic/del", func(c *gin.Context) {
  55. _id, _ := c.GetPostForm("_id")
  56. //b := Mgo.Del("rule_logic", `{"_id":"`+_id+`"}`)
  57. b := Mgo.UpdateById("rule_logic", _id, `{"$set":{"delete":true}}`)
  58. go DelLogicPre(_id, false)
  59. go DelLogicCore(_id, false)
  60. go DelLogicBack(_id, false)
  61. c.JSON(200, gin.H{"rep": b})
  62. })
  63. Admin.POST("/rulelogic/use", RuleLogicUse)
  64. //pkglogic
  65. //Admin.GET("/pkglogic", func(c *gin.Context) {
  66. // vid := c.Query("vid")
  67. // pid := c.Query("pid")
  68. // c.HTML(200, "pkg_logiclist.html", gin.H{"vid": vid, "pid": pid})
  69. //})
  70. //Admin.POST("/pkglogic/data", PkgLogicData)
  71. //Admin.POST("/pkglogic/save", PkgLogicSave)
  72. //Admin.POST("/pkgrulelogic/del", func(c *gin.Context) {
  73. // _id, _ := c.GetPostForm("_id")
  74. // b := Mgo.UpdateById("pkg_logic", _id, `{"$set":{"delete":true}}`)
  75. // go DelPkgLogicBack(_id)
  76. // c.JSON(200, gin.H{"rep": b})
  77. //})
  78. //Admin.POST("/pkglogic/use", PkgLogicUse)
  79. Admin.GET("/logicpre", func(c *gin.Context) {
  80. vid := c.Query("vid")
  81. pid := c.Query("pid")
  82. sid := c.Query("sid")
  83. c.HTML(200, "rule_logicprelist.html", gin.H{"vid": vid, "pid": pid, "sid": sid})
  84. })
  85. Admin.POST("/logicpre/data", RuleLogicPreData)
  86. Admin.POST("/logicpre/save", RuleLogicPreSave)
  87. Admin.POST("/logicpre/del", RuleLogicPreDel)
  88. Admin.GET("/logicback", func(c *gin.Context) {
  89. vid := c.Query("vid")
  90. pid := c.Query("pid")
  91. sid := c.Query("sid")
  92. //查询属性字段
  93. tmp, _ := Mgo.FindById("versioninfo", pid, `{"s_field":1}`)
  94. c.HTML(200, "rule_logicbacklist.html", gin.H{"vid": vid, "pid": pid, "sid": sid, "field": (*tmp)["s_field"]})
  95. })
  96. Admin.POST("/logicback/data", RuleLogicBackData)
  97. Admin.POST("/logicback/save", RuleLogicBackSave)
  98. Admin.POST("/logicback/del", RuleLogicBackDel)
  99. Admin.GET("/logicore", func(c *gin.Context) {
  100. vid := c.Query("vid")
  101. pid := c.Query("pid")
  102. sid := c.Query("sid")
  103. //查询属性字段
  104. tmp, _ := Mgo.FindById("versioninfo", pid, `{"s_field":1}`)
  105. c.HTML(200, "rule_logicore.html", gin.H{"vid": vid, "pid": pid, "sid": sid, "field": (*tmp)["s_field"]})
  106. })
  107. Admin.POST("/logicore/data", RuleLogicCoreData)
  108. Admin.POST("/logicore/save", RuleLogicCoreSave)
  109. Admin.POST("/logicore/del", RuleLogicCoreDel)
  110. Admin.POST("/logicore/use", RuleLogicCoreUse)
  111. Admin.GET("/logickv", func(c *gin.Context) {
  112. vid := c.Query("vid")
  113. pid := c.Query("pid")
  114. sid := c.Query("sid")
  115. //查询属性字段
  116. tmp, _ := Mgo.FindById("versioninfo", pid, `{"s_field":1}`)
  117. c.HTML(200, "rule_logickv.html", gin.H{"vid": vid, "pid": pid, "sid": sid, "field": (*tmp)["s_field"]})
  118. })
  119. Admin.POST("/logickv/data", RuleLogicCoreDataKv)
  120. Admin.POST("/logickv/save", RuleLogicCoreSaveKv)
  121. Admin.POST("/logickv/del", RuleLogicCoreDelKv)
  122. Admin.POST("/logickv/use", RuleLogicCoreUseKv)
  123. Admin.GET("/pkglogicback", func(c *gin.Context) {
  124. vid := c.Query("vid")
  125. s_field := c.Query("s_field")
  126. sid := c.Query("sid")
  127. //查询属性字段
  128. //tmp, _ := Mgo.FindById("pkg_info", pid, `{"s_field":1}`)
  129. c.HTML(200, "pkg_logicbacklist.html", gin.H{"vid": vid, "sid": sid, "field": s_field,"s_field":s_field})
  130. })
  131. Admin.POST("/pkglogicback/data", PkgLogicBackData)
  132. Admin.POST("/pkglogicback/save", PkgLogicBackSave)
  133. Admin.POST("/pkglogicback/del", PkgRuleLogicBackDel)
  134. //clearule
  135. Admin.GET("/clearulelogic", func(c *gin.Context) {
  136. vid := c.Query("vid")
  137. pid := c.Query("pid")
  138. //查询属性字段
  139. tmp, _ := Mgo.FindById("clearversioninfo", pid, `{"s_field":1}`)
  140. c.HTML(200, "rule_clearlogiclist.html", gin.H{"vid": vid, "pid": pid, "field": (*tmp)["s_field"]})
  141. })
  142. Admin.POST("/clearulelogic/data", ClearRuleLogicData)
  143. Admin.POST("/clearulelogic/save", ClearRuleLogicSave)
  144. Admin.POST("/clearulelogic/use", ClearRuleLogicUse)
  145. Admin.POST("/clearulelogic/del", func(c *gin.Context) {
  146. _id, _ := c.GetPostForm("_id")
  147. b := Mgo.UpdateById("clearulelogic", _id, `{"$set":{"delete":true}}`)
  148. c.JSON(200, gin.H{"rep": b})
  149. })
  150. }
  151. func RulePreData(c *gin.Context) {
  152. version, _ := c.GetPostForm("version")
  153. data, _ := Mgo.Find("rule_pre", `{"s_version":"`+version+`","delete":false}`, `{"_id":-1}`, nil, false, -1, -1)
  154. c.JSON(200, gin.H{"data": data, "version": version})
  155. }
  156. func RulePreSave(c *gin.Context) {
  157. data := GetPostForm(c)
  158. _id, _ := c.GetPostForm("_id")
  159. b := false
  160. if _id == "" {
  161. data["l_createtime"] = time.Now().Unix()
  162. data["s_username"] = sessions.Default(c).Get("username")
  163. data["delete"] = false
  164. s_type := data["s_type"]
  165. code := ""
  166. if s_type == "0" { //前置正则
  167. code = util.GetSyncIndex(F_E)
  168. } else { //前置脚本
  169. code = util.GetSyncIndex(F_L)
  170. }
  171. data["s_code"] = code
  172. b = Mgo.Save("rule_pre", data) != ""
  173. } else {
  174. data["l_lasttime"] = time.Now().Unix()
  175. b = Mgo.Update("rule_pre", `{"_id":"`+_id+`"}`, map[string]interface{}{
  176. "$set": data,
  177. }, true, false)
  178. }
  179. c.JSON(200, gin.H{"rep": b})
  180. }
  181. func RulePreSearchById(c *gin.Context) {
  182. _id, _ := c.GetPostForm("_id")
  183. data, _ := Mgo.FindById("rule_pre", _id, nil)
  184. c.JSON(200, gin.H{"rep": data})
  185. }
  186. func RulePreDel(c *gin.Context) {
  187. _id, _ := c.GetPostForm("_id")
  188. //b := Mgo.Del("rule_pre", `{"_id":"`+_id+`"}`)
  189. b := Mgo.UpdateById("rule_pre", _id, `{"$set":{"delete":true}}`)
  190. c.JSON(200, gin.H{"rep": b})
  191. }
  192. func RulePreLua(c *gin.Context) {
  193. version := c.Query("version")
  194. _id := c.Query("_id")
  195. data := map[string]interface{}{}
  196. if _id != "" {
  197. tmp, _ := Mgo.FindById("rule_pre", _id, nil)
  198. data = *tmp
  199. if version == "" {
  200. version = fmt.Sprint((*tmp)["s_version"])
  201. }
  202. data["_id"] = _id
  203. }
  204. c.HTML(200, "rule_prelua.html", gin.H{"version": version, "data": data})
  205. }
  206. func RuleBackData(c *gin.Context) {
  207. version, _ := c.GetPostForm("version")
  208. data, _ := Mgo.Find("rule_back", `{"s_version":"`+version+`","delete":false}`, `{"_id":-1}`, nil, false, -1, -1)
  209. c.JSON(200, gin.H{"data": data, "version": version})
  210. }
  211. func RuleBackSave(c *gin.Context) {
  212. data := GetPostForm(c)
  213. _id, _ := c.GetPostForm("_id")
  214. b := false
  215. if _id == "" {
  216. data["l_createtime"] = time.Now().Unix()
  217. data["s_username"] = sessions.Default(c).Get("username")
  218. data["delete"] = false
  219. s_type := data["s_type"]
  220. code := ""
  221. if s_type == "0" { //前置正则
  222. code = util.GetSyncIndex(B_E)
  223. } else { //前置lua脚本
  224. code = util.GetSyncIndex(B_L)
  225. }
  226. data["s_code"] = code
  227. b = Mgo.Save("rule_back", data) != ""
  228. } else {
  229. data["l_lasttime"] = time.Now().Unix()
  230. b = Mgo.Update("rule_back", `{"_id":"`+_id+`"}`, map[string]interface{}{
  231. "$set": data,
  232. }, true, false)
  233. }
  234. c.JSON(200, gin.H{"rep": b})
  235. }
  236. func RuleBackSearchById(c *gin.Context) {
  237. _id, _ := c.GetPostForm("_id")
  238. data, _ := Mgo.FindById("rule_back", _id, nil)
  239. c.JSON(200, gin.H{"rep": data})
  240. }
  241. func RuleBackDel(c *gin.Context) {
  242. _id, _ := c.GetPostForm("_id")
  243. //b := Mgo.Del("rule_back", `{"_id":"`+_id+`"}`)
  244. b := Mgo.UpdateById("rule_back", _id, `{"$set":{"delete":true}}`)
  245. c.JSON(200, gin.H{"rep": b})
  246. }
  247. func RuleBackLua(c *gin.Context) {
  248. version := c.Query("version")
  249. _id := c.Query("_id")
  250. data := map[string]interface{}{}
  251. if _id != "" {
  252. tmp, _ := Mgo.FindById("rule_back", _id, nil)
  253. data = *tmp
  254. if version == "" {
  255. version = fmt.Sprint((*tmp)["s_version"])
  256. }
  257. data["_id"] = _id
  258. }
  259. c.HTML(200, "rule_backlua.html", gin.H{"version": version, "data": data})
  260. }
  261. func RuleLogicData(c *gin.Context) {
  262. vid, _ := c.GetPostForm("vid")
  263. pid, _ := c.GetPostForm("pid")
  264. data, _ := Mgo.Find("rule_logic", `{"vid":"`+vid+`","pid":"`+pid+`","delete":false}`, `{"_id":-1}`, nil, false, -1, -1)
  265. c.JSON(200, gin.H{"data": data, "vid": vid, "pid": pid})
  266. }
  267. func PkgLogicData(c *gin.Context) {
  268. vid, _ := c.GetPostForm("vid")
  269. pid, _ := c.GetPostForm("pid")
  270. data, _ := Mgo.Find("pkg_logic", `{"vid":"`+vid+`","pid":"`+pid+`","delete":false}`, `{"_id":-1}`, nil, false, -1, -1)
  271. c.JSON(200, gin.H{"data": data, "vid": vid, "pid": pid})
  272. }
  273. func RuleLogicSave(c *gin.Context) {
  274. data := GetPostForm(c)
  275. _id, _ := c.GetPostForm("_id")
  276. b := false
  277. if _id == "" {
  278. data["l_createtime"] = time.Now().Unix()
  279. data["s_username"] = sessions.Default(c).Get("username")
  280. data["delete"] = false
  281. b = Mgo.Save("rule_logic", data) != ""
  282. } else {
  283. data["l_lasttime"] = time.Now().Unix()
  284. b = Mgo.Update("rule_logic", `{"_id":"`+_id+`"}`, map[string]interface{}{
  285. "$set": data,
  286. }, true, false)
  287. }
  288. c.JSON(200, gin.H{"rep": b})
  289. }
  290. func PkgLogicSave(c *gin.Context) {
  291. data := GetPostForm(c)
  292. _id, _ := c.GetPostForm("_id")
  293. b := false
  294. if _id == "" {
  295. data["l_createtime"] = time.Now().Unix()
  296. data["s_username"] = sessions.Default(c).Get("username")
  297. data["delete"] = false
  298. b = Mgo.Save("pkg_logic", data) != ""
  299. } else {
  300. data["l_lasttime"] = time.Now().Unix()
  301. b = Mgo.Update("pkg_logic", `{"_id":"`+_id+`"}`, map[string]interface{}{
  302. "$set": data,
  303. }, true, false)
  304. }
  305. c.JSON(200, gin.H{"rep": b})
  306. }
  307. func RuleLogicUse(c *gin.Context) {
  308. _id, _ := c.GetPostForm("_id")
  309. isuse, _ := c.GetPostForm("isuse")
  310. b := Mgo.UpdateById("rule_logic", _id, `{"$set":{"isuse":`+isuse+`}}`)
  311. c.JSON(200, gin.H{"rep": b})
  312. }
  313. func PkgLogicUse(c *gin.Context) {
  314. _id, _ := c.GetPostForm("_id")
  315. isuse, _ := c.GetPostForm("isuse")
  316. b := Mgo.UpdateById("pkg_logic", _id, `{"$set":{"isuse":`+isuse+`}}`)
  317. c.JSON(200, gin.H{"rep": b})
  318. }
  319. func RuleLogicPreData(c *gin.Context) {
  320. vid, _ := c.GetPostForm("vid")
  321. pid, _ := c.GetPostForm("pid")
  322. sid, _ := c.GetPostForm("sid")
  323. data, _ := Mgo.Find("rule_logicpre", `{"sid":"`+sid+`","delete":false}`, `{"_id":-1}`, nil, false, -1, -1)
  324. c.JSON(200, gin.H{"data": data, "vid": vid, "pid": pid, "sid": sid})
  325. }
  326. func RuleLogicPreSave(c *gin.Context) {
  327. data := GetPostForm(c)
  328. _id, _ := c.GetPostForm("_id")
  329. b := false
  330. if _id == "" {
  331. data["l_createtime"] = time.Now().Unix()
  332. data["s_username"] = sessions.Default(c).Get("username")
  333. data["delete"] = false
  334. s_type := data["s_type"]
  335. code := ""
  336. if s_type == "0" { //抽取前置正则E_FE
  337. code = util.GetSyncIndex(E_FE)
  338. } else { //抽取前置脚本
  339. code = util.GetSyncIndex(E_FL)
  340. }
  341. data["s_code"] = code
  342. b = Mgo.Save("rule_logicpre", data) != ""
  343. } else {
  344. data["l_lasttime"] = time.Now().Unix()
  345. b = Mgo.Update("rule_logicpre", `{"_id":"`+_id+`"}`, map[string]interface{}{
  346. "$set": data,
  347. }, true, false)
  348. }
  349. c.JSON(200, gin.H{"rep": b})
  350. }
  351. func RuleLogicPreDel(c *gin.Context) {
  352. _id, _ := c.GetPostForm("_id")
  353. //b := Mgo.Del("rule_logicpre", `{"_id":"`+_id+`"}`)
  354. b := Mgo.UpdateById("rule_logicpre", _id, `{"$set":{"delete":true}}`)
  355. c.JSON(200, gin.H{"rep": b})
  356. }
  357. func RuleLogicBackData(c *gin.Context) {
  358. vid, _ := c.GetPostForm("vid")
  359. pid, _ := c.GetPostForm("pid")
  360. sid, _ := c.GetPostForm("sid")
  361. data, _ := Mgo.Find("rule_logicback", `{"sid":"`+sid+`","delete":false}`, `{"_id":-1}`, nil, false, -1, -1)
  362. c.JSON(200, gin.H{"data": data, "vid": vid, "pid": pid, "sid": sid})
  363. }
  364. func PkgLogicBackData(c *gin.Context) {
  365. vid, _ := c.GetPostForm("vid")
  366. s_field, _ := c.GetPostForm("s_field")
  367. sid, _ := c.GetPostForm("sid")
  368. data, _ := Mgo.Find("pkg_logicback", `{"sid":"`+sid+`","delete":false}`, `{"_id":-1}`, nil, false, -1, -1)
  369. c.JSON(200, gin.H{"data": data, "vid": vid, "s_field": s_field, "sid": sid})
  370. }
  371. func RuleLogicBackSave(c *gin.Context) {
  372. data := GetPostForm(c)
  373. _id, _ := c.GetPostForm("_id")
  374. b := false
  375. if _id == "" {
  376. data["l_createtime"] = time.Now().Unix()
  377. data["s_username"] = sessions.Default(c).Get("username")
  378. data["delete"] = false
  379. s_type := data["s_type"]
  380. code := ""
  381. if s_type == "0" { //抽取后置正则E_FE
  382. code = util.GetSyncIndex(E_BE)
  383. } else { //抽取后置脚本
  384. code = util.GetSyncIndex(E_BL)
  385. }
  386. data["s_code"] = code
  387. b = Mgo.Save("rule_logicback", data) != ""
  388. } else {
  389. data["l_lasttime"] = time.Now().Unix()
  390. b = Mgo.Update("rule_logicback", `{"_id":"`+_id+`"}`, map[string]interface{}{
  391. "$set": data,
  392. }, true, false)
  393. }
  394. c.JSON(200, gin.H{"rep": b})
  395. }
  396. func PkgLogicBackSave(c *gin.Context) {
  397. data := GetPostForm(c)
  398. _id, _ := c.GetPostForm("_id")
  399. b := false
  400. if _id == "" {
  401. data["l_createtime"] = time.Now().Unix()
  402. data["s_username"] = sessions.Default(c).Get("username")
  403. data["delete"] = false
  404. s_type := data["s_type"]
  405. code := ""
  406. if s_type == "0" { //抽取后置正则E_FE
  407. code = util.GetSyncIndex(E_BE)
  408. } else { //抽取后置脚本
  409. code = util.GetSyncIndex(E_BL)
  410. }
  411. data["s_code"] = code
  412. b = Mgo.Save("pkg_logicback", data) != ""
  413. } else {
  414. data["l_lasttime"] = time.Now().Unix()
  415. b = Mgo.Update("pkg_logicback", `{"_id":"`+_id+`"}`, map[string]interface{}{
  416. "$set": data,
  417. }, true, false)
  418. }
  419. c.JSON(200, gin.H{"rep": b})
  420. }
  421. func RuleLogicBackDel(c *gin.Context) {
  422. _id, _ := c.GetPostForm("_id")
  423. b := Mgo.UpdateById("rule_logicback", _id, `{"$set":{"delete":true}}`)
  424. c.JSON(200, gin.H{"rep": b})
  425. }
  426. func PkgRuleLogicBackDel(c *gin.Context) {
  427. _id, _ := c.GetPostForm("_id")
  428. b := Mgo.UpdateById("pkg_logicback", _id, `{"$set":{"delete":true}}`)
  429. c.JSON(200, gin.H{"rep": b})
  430. }
  431. func RuleLogicCoreData(c *gin.Context) {
  432. vid, _ := c.GetPostForm("vid")
  433. pid, _ := c.GetPostForm("pid")
  434. sid, _ := c.GetPostForm("sid")
  435. data, _ := Mgo.Find("rule_logicore", `{"sid":"`+sid+`","delete":false}`, `{"_id":-1}`, nil, false, -1, -1)
  436. c.JSON(200, gin.H{"data": data, "vid": vid, "pid": pid, "sid": sid})
  437. }
  438. func RuleLogicCoreDataKv(c *gin.Context) {
  439. vid, _ := c.GetPostForm("vid")
  440. pid, _ := c.GetPostForm("pid")
  441. sid, _ := c.GetPostForm("sid")
  442. data, _ := Mgo.Find("rule_logickv", `{"sid":"`+sid+`","delete":false}`, `{"_id":-1}`, nil, false, -1, -1)
  443. c.JSON(200, gin.H{"data": data, "vid": vid, "pid": pid, "sid": sid})
  444. }
  445. func RuleLogicCoreSave(c *gin.Context) {
  446. data := GetPostForm(c)
  447. _id, _ := c.GetPostForm("_id")
  448. b := false
  449. if _id == "" {
  450. data["l_createtime"] = time.Now().Unix()
  451. data["s_username"] = sessions.Default(c).Get("username")
  452. data["delete"] = false
  453. score := qu.Float64All(data["s_default_score"])
  454. if score<=0{
  455. data["s_default_score"] = 0.0
  456. }else {
  457. data["s_default_score"] = score
  458. }
  459. s_type := data["s_type"]
  460. code := ""
  461. if s_type == "0" { //抽取逻辑正则
  462. code = util.GetSyncIndex(E_CE)
  463. } else { //抽取逻辑脚本
  464. code = util.GetSyncIndex(E_CL)
  465. }
  466. data["s_code"] = code
  467. b = Mgo.Save("rule_logicore", data) != ""
  468. } else {
  469. data["l_lasttime"] = time.Now().Unix()
  470. score := qu.Float64All(data["s_default_score"])
  471. if score<=0{
  472. data["s_default_score"] = 0.0
  473. }else {
  474. data["s_default_score"] = score
  475. }
  476. b = Mgo.Update("rule_logicore", `{"_id":"`+_id+`"}`, map[string]interface{}{
  477. "$set": data,
  478. }, true, false)
  479. }
  480. c.JSON(200, gin.H{"rep": b})
  481. }
  482. func RuleLogicCoreSaveKv(c *gin.Context) {
  483. data := GetPostForm(c)
  484. _id, _ := c.GetPostForm("_id")
  485. b := false
  486. if _id == "" {
  487. data["l_createtime"] = time.Now().Unix()
  488. data["s_username"] = sessions.Default(c).Get("username")
  489. data["delete"] = false
  490. s_type := data["s_type"]
  491. code := ""
  492. if s_type == "0" { //抽取逻辑正则
  493. code = util.GetSyncIndex(E_CE)
  494. } else { //抽取逻辑脚本
  495. code = util.GetSyncIndex(E_CL)
  496. }
  497. data["s_code"] = code
  498. b = Mgo.Save("rule_logickv", data) != ""
  499. } else {
  500. data["l_lasttime"] = time.Now().Unix()
  501. b = Mgo.Update("rule_logickv", `{"_id":"`+_id+`"}`, map[string]interface{}{
  502. "$set": data,
  503. }, true, false)
  504. }
  505. c.JSON(200, gin.H{"rep": b})
  506. }
  507. func RuleLogicCoreDel(c *gin.Context) {
  508. _id, _ := c.GetPostForm("_id")
  509. //b := Mgo.Del("rule_logicore", `{"_id":"`+_id+`"}`)
  510. b := Mgo.UpdateById("rule_logicore", _id, `{"$set":{"delete":true}}`)
  511. c.JSON(200, gin.H{"rep": b})
  512. }
  513. func RuleLogicCoreDelKv(c *gin.Context) {
  514. _id, _ := c.GetPostForm("_id")
  515. //b := Mgo.Del("rule_logicore", `{"_id":"`+_id+`"}`)
  516. b := Mgo.UpdateById("rule_logickv", _id, `{"$set":{"delete":true}}`)
  517. c.JSON(200, gin.H{"rep": b})
  518. }
  519. func RuleLogicCoreUse(c *gin.Context) {
  520. _id, _ := c.GetPostForm("_id")
  521. isuse, _ := c.GetPostForm("isuse")
  522. b := Mgo.UpdateById("rule_logicore", _id, `{"$set":{"isuse":`+isuse+`}}`)
  523. c.JSON(200, gin.H{"rep": b})
  524. }
  525. func RuleLogicCoreUseKv(c *gin.Context) {
  526. _id, _ := c.GetPostForm("_id")
  527. isuse, _ := c.GetPostForm("isuse")
  528. b := Mgo.UpdateById("rule_logickv", _id, `{"$set":{"isuse":`+isuse+`}}`)
  529. c.JSON(200, gin.H{"rep": b})
  530. }
  531. func DelVersionInfo(vid string, isSite bool) { //刪除属性配置
  532. var versioninfodb string
  533. if isSite {
  534. versioninfodb = "site_versioninfo"
  535. } else {
  536. versioninfodb = "versioninfo"
  537. }
  538. vInfo, _ := Mgo.Find(versioninfodb, `{"vid":"`+vid+`","delete":false}`, nil, `{"_id":1}`, false, -1, -1)
  539. Mgo.Update(versioninfodb, `{"vid":"`+vid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
  540. for _, v := range *vInfo {
  541. DelLogic(vid, qu.BsonIdToSId((v)["_id"]), isSite)
  542. }
  543. }
  544. func DelPkgInfo(vid string) { //刪除分包配置
  545. vInfo, _ := Mgo.Find("pkg_info", `{"vid":"`+vid+`","delete":false}`, nil, `{"_id":1}`, false, -1, -1)
  546. Mgo.Update("pkg_info", `{"vid":"`+vid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
  547. for _, v := range *vInfo {
  548. DelPkgLogic(vid, qu.BsonIdToSId((v)["_id"]))
  549. }
  550. }
  551. func DelLogic(vid, pid string, isSite bool) { //删除逻辑
  552. var rule_logic string
  553. if isSite {
  554. rule_logic = "site_rule_logic"
  555. } else {
  556. rule_logic = "rule_logic"
  557. }
  558. logic, _ := Mgo.Find(rule_logic, `{"vid":"`+vid+`","pid":"`+pid+`","delete":false}`, nil, `{"_id":1}`, false, -1, -1)
  559. Mgo.Update(rule_logic, `{"vid":"`+vid+`","pid":"`+pid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
  560. for _, l := range *logic {
  561. DelLogicPre(qu.BsonIdToSId(l["_id"]), isSite)
  562. DelLogicCore(qu.BsonIdToSId(l["_id"]), isSite)
  563. DelLogicBack(qu.BsonIdToSId(l["_id"]), isSite)
  564. }
  565. }
  566. func DelPkgLogic(vid, pid string) { //删除分包逻辑
  567. logic, _ := Mgo.Find("pkg_logic", `{"vid":"`+vid+`","pid":"`+pid+`","delete":false}`, nil, `{"_id":1}`, false, -1, -1)
  568. Mgo.Update("pkg_logic", `{"vid":"`+vid+`","pid":"`+pid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
  569. for _, l := range *logic {
  570. DelPkgLogicBack(qu.BsonIdToSId(l["_id"]))
  571. }
  572. }
  573. func DelLogicPre(sid string, isSite bool) { //删除属性配置中的前置规则
  574. var rule_logicpre string
  575. if isSite {
  576. rule_logicpre = "site_rule_logicpre"
  577. } else {
  578. rule_logicpre = "rule_logicpre"
  579. }
  580. Mgo.Update(rule_logicpre, `{"sid":"`+sid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
  581. }
  582. func DelLogicCore(sid string, isSite bool) { //删除属性配置中的抽取规则
  583. var rule_logicore string
  584. if isSite {
  585. rule_logicore = "site_rule_logicore"
  586. } else {
  587. rule_logicore = "rule_logicore"
  588. }
  589. Mgo.Update(rule_logicore, `{"sid":"`+sid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
  590. }
  591. func DelLogicBack(sid string, isSite bool) { //删除属性配置中的后置规则
  592. var rule_logicback string
  593. if isSite {
  594. rule_logicback = "site_rule_logicback"
  595. } else {
  596. rule_logicback = "rule_logicback"
  597. }
  598. Mgo.Update(rule_logicback, `{"sid":"`+sid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
  599. }
  600. func DelPkgLogicBack(sid string) { //删除分包属性配置中的后置规则
  601. Mgo.Update("pkg_logicback", `{"sid":"`+sid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
  602. }
  603. func DelRulePre(s_version string) { //删除通用前置过滤
  604. Mgo.Update("rule_pre", `{"s_version":"`+s_version+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
  605. }
  606. func DelRuleBack(s_version string, isSite bool) { //删除通用后置过滤
  607. var rule_backdb string
  608. if isSite {
  609. rule_backdb = "site_rule_back"
  610. } else {
  611. rule_backdb = "rule_back"
  612. }
  613. Mgo.Update(rule_backdb, `{"s_version":"`+s_version+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
  614. }
  615. func DelTag(s_version string, isSite bool) {
  616. var tagdb, tagdetailinfodb string
  617. if isSite {
  618. tagdb = "site_tag"
  619. tagdetailinfodb = "site_tagdetailinfo"
  620. } else {
  621. tagdb = "tag"
  622. tagdetailinfodb = "tagdetailinfo"
  623. }
  624. tag, _ := Mgo.Find(tagdb, `{"s_version":"`+s_version+`","delete":false}`, nil, `{"_id":1}`, false, -1, -1)
  625. Mgo.Update(tagdb, `{"s_version":"`+s_version+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
  626. for _, t := range *tag {
  627. s_parentid := qu.BsonIdToSId(t["_id"])
  628. Mgo.Update(tagdetailinfodb, `{"s_version":"`+s_version+`","s_parentid":"`+s_parentid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
  629. }
  630. }
  631. func DelCleanUp(s_version string,isSite bool) {
  632. var cleanupdb string
  633. if isSite{
  634. cleanupdb = "site_cleanup"
  635. }else {
  636. cleanupdb = "cleanup"
  637. }
  638. Mgo.Update(cleanupdb, `{"s_version":"`+s_version+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
  639. }
  640. func ClearRuleLogicData(c *gin.Context) {
  641. vid, _ := c.GetPostForm("vid")
  642. pid, _ := c.GetPostForm("pid")
  643. data, _ := Mgo.Find("clearulelogic", `{"vid":"`+vid+`","pid":"`+pid+`","delete":false}`, `{"_id":-1}`, nil, false, -1, -1)
  644. c.JSON(200, gin.H{"data": data, "vid": vid, "pid": pid})
  645. }
  646. func ClearRuleLogicSave(c *gin.Context) {
  647. data := GetPostForm(c)
  648. delete(data, "resultcoll")
  649. delete(data, "rid")
  650. _id, _ := c.GetPostForm("_id")
  651. b := false
  652. if _id == "" {
  653. data["l_createtime"] = time.Now().Unix()
  654. data["s_username"] = sessions.Default(c).Get("username")
  655. data["delete"] = false
  656. data["s_code"] = util.GetSyncIndex(C_CL)
  657. b = Mgo.Save("clearulelogic", data) != ""
  658. } else {
  659. data["l_lasttime"] = time.Now().Unix()
  660. b = Mgo.Update("clearulelogic", `{"_id":"`+_id+`"}`, map[string]interface{}{
  661. "$set": data,
  662. }, true, false)
  663. }
  664. c.JSON(200, gin.H{"rep": b})
  665. }
  666. func ClearRuleLogicUse(c *gin.Context) {
  667. _id, _ := c.GetPostForm("_id")
  668. isuse, _ := c.GetPostForm("isuse")
  669. b := Mgo.UpdateById("clearulelogic", _id, `{"$set":{"isuse":`+isuse+`}}`)
  670. c.JSON(200, gin.H{"rep": b})
  671. }
  672. func DelClearVersionInfo(vid string) { //刪除清理的属性配置
  673. vInfo, _ := Mgo.Find("clearversioninfo", `{"vid":"`+vid+`","delete":false}`, nil, `{"_id":1}`, false, -1, -1)
  674. Mgo.Update("clearversioninfo", `{"vid":"`+vid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
  675. for _, v := range *vInfo {
  676. DelClearLogic(vid, qu.BsonIdToSId((v)["_id"]))
  677. }
  678. }
  679. func DelClearLogic(vid, pid string) { //删除清理逻辑
  680. Mgo.Update("clearulelogic", `{"vid":"`+vid+`","pid":"`+pid+`","delete":false}`, `{"$set":{"delete":true}}`, false, true)
  681. }