dataaudit.go 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. package audit
  2. import (
  3. . "jy/admin"
  4. . "jy/mongodbutil"
  5. "log"
  6. qu "qfw/util"
  7. redis "qfw/util/redis"
  8. "strconv"
  9. "time"
  10. "github.com/gin-gonic/gin"
  11. )
  12. func init() {
  13. //列表、编辑
  14. Admin.GET("/audit/dataaudit", func(c *gin.Context) {
  15. name := c.Query("name")
  16. //s_coll := c.Query("s_coll")
  17. c.HTML(200, "audit_auditone.html", gin.H{"name": name})
  18. })
  19. Admin.POST("/audit/auditone", AuditOne)
  20. Admin.POST("/audit/buyerclass", BuyerClass) //采购单位分类
  21. Admin.POST("/audit/addsave", AddSave) //新增
  22. Admin.POST("/audit/auditsave", AuditSave) //保存
  23. }
  24. func AuditData(c *gin.Context) {
  25. v, _ := Mgo.FindOne("version", `{"isuse":true,"delete":false}`)
  26. if len(*v) > 0 {
  27. vid := qu.BsonIdToSId((*v)["_id"])
  28. query := map[string]interface{}{
  29. "isaudit": true,
  30. "delete": false,
  31. "vid": vid,
  32. }
  33. data, _ := Mgo.Find("versioninfo", query, `{"_id":-1}`, nil, false, -1, -1)
  34. for _, d := range *data {
  35. timeStr := time.Unix(d["l_lasttime"].(int64), 0).Format(Date_Short_Layout)
  36. d["l_lasttime"] = timeStr
  37. }
  38. c.JSON(200, gin.H{"data": data})
  39. } else {
  40. c.JSON(200, gin.H{"data": map[string]interface{}{}})
  41. }
  42. }
  43. func AuditOne(c *gin.Context) {
  44. name, _ := c.GetPostForm("name")
  45. coll, _ := c.GetPostForm("s_coll")
  46. source, _ := c.GetPostForm("source")
  47. limitstr, _ := c.GetPostForm("length")
  48. startstr, _ := c.GetPostForm("start")
  49. start, _ := strconv.Atoi(startstr)
  50. limit, _ := strconv.Atoi(limitstr)
  51. query := make(map[string]interface{})
  52. if source == "-1" && coll != "" { //外层
  53. query = map[string]interface{}{
  54. name + "_err": map[string]interface{}{
  55. "$exists": true,
  56. },
  57. name + "_isaudit": false,
  58. }
  59. data, _ := Mgo.Find(coll, query, `{"_id":-1}`, nil, false, start, limit)
  60. count := Mgo.Count(coll, query)
  61. for _, d := range *data {
  62. d["name"] = d[name]
  63. }
  64. c.JSON(200, gin.H{"data": data, "recordsFiltered": count, "recordsTotal": count})
  65. } else { //分包
  66. c.JSON(200, gin.H{"data": map[string]interface{}{}, "recordsFiltered": 0, "recordsTotal": 0})
  67. }
  68. }
  69. func BuyerClass(c *gin.Context) {
  70. data, _ := Mgo.Find("classify", `{"i_type":1}`, `{"_id":-1}`, `{"s_name":1,"child":1}`, false, -1, -1)
  71. c.JSON(200, gin.H{"data": data})
  72. }
  73. func AddSave(c *gin.Context) {
  74. field, _ := c.GetPostForm("field")
  75. auditname, _ := c.GetPostForm("auditname")
  76. parentclass, _ := c.GetPostForm("parentclass")
  77. childclass, _ := c.GetPostForm("childclass")
  78. update := make(map[string]interface{})
  79. if field == "buyer" {
  80. update["buyerclass"] = childclass
  81. update["parentclass"] = parentclass
  82. }
  83. update["name"] = auditname
  84. update["pici"] = time.Now().Unix()
  85. update["s_source"] = "手动"
  86. b := Mgo.Update(field, `{"name":"`+auditname+`"}`, map[string]interface{}{
  87. "$set": update}, true, false)
  88. if b { //新增的直接更新buyer redis
  89. p := redis.PutCKV(field, field+"_"+auditname, 1)
  90. log.Println("Add--Update "+field+" redis:", p)
  91. }
  92. c.JSON(200, gin.H{"rep": b})
  93. }
  94. func AuditSave(c *gin.Context) {
  95. field, _ := c.GetPostForm("field")
  96. name, _ := c.GetPostForm("name")
  97. _id, _ := c.GetPostForm("id")
  98. coll, _ := c.GetPostForm("coll")
  99. update := make(map[string]interface{})
  100. if field == "buyer" || field == "winner" { //更新buyer或winner库,并保存到redis
  101. if field == "buyer" {
  102. parentclass, _ := c.GetPostForm("parentclass")
  103. childclass, _ := c.GetPostForm("childclass")
  104. update["buyerclass"] = childclass
  105. update["parentclass"] = parentclass
  106. }
  107. update["name"] = name
  108. update["pici"] = time.Now().Unix()
  109. update["s_source"] = "抽取"
  110. //更新结果表数据
  111. b1 := Mgo.UpdateById(coll, _id, map[string]interface{}{
  112. "$set": map[string]interface{}{
  113. field + "_isaudit": true,
  114. field: name,
  115. },
  116. })
  117. //更新原有的winner或buyer库
  118. b2 := Mgo.Update(field, `{"name":"`+name+`"}`, map[string]interface{}{
  119. "$set": update}, true, false)
  120. log.Println("Audit--Update "+field, b2)
  121. //更新redis
  122. p := redis.PutCKV(field, field+"_"+name, 1)
  123. log.Println("Audit--Update "+field+" redis:", p)
  124. c.JSON(200, gin.H{"rep": b1})
  125. } else {
  126. b3 := Mgo.UpdateById(coll, _id, map[string]interface{}{
  127. "$set": map[string]interface{}{
  128. field + "_isaudit": true,
  129. field: name,
  130. },
  131. })
  132. c.JSON(200, gin.H{"rep": b3})
  133. }
  134. }