123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- package audit
- import (
- . "jy/admin"
- . "jy/mongodbutil"
- "log"
- qu "qfw/util"
- redis "qfw/util/redis"
- "strconv"
- "time"
- "github.com/gin-gonic/gin"
- )
- func init() {
- //列表、编辑
- Admin.GET("/audit/dataaudit", func(c *gin.Context) {
- name := c.Query("name")
- //s_coll := c.Query("s_coll")
- c.HTML(200, "audit_auditone.html", gin.H{"name": name})
- })
- Admin.POST("/audit/auditone", AuditOne)
- Admin.POST("/audit/buyerclass", BuyerClass) //采购单位分类
- Admin.POST("/audit/addsave", AddSave) //新增
- Admin.POST("/audit/auditsave", AuditSave) //保存
- }
- func AuditData(c *gin.Context) {
- v, _ := Mgo.FindOne("version", `{"isuse":true,"delete":false}`)
- if len(*v) > 0 {
- vid := qu.BsonIdToSId((*v)["_id"])
- query := map[string]interface{}{
- "isaudit": true,
- "delete": false,
- "vid": vid,
- }
- data, _ := Mgo.Find("versioninfo", query, `{"_id":-1}`, nil, false, -1, -1)
- for _, d := range *data {
- timeStr := time.Unix(d["l_lasttime"].(int64), 0).Format(Date_Short_Layout)
- d["l_lasttime"] = timeStr
- }
- c.JSON(200, gin.H{"data": data})
- } else {
- c.JSON(200, gin.H{"data": map[string]interface{}{}})
- }
- }
- func AuditOne(c *gin.Context) {
- name, _ := c.GetPostForm("name")
- coll, _ := c.GetPostForm("s_coll")
- source, _ := c.GetPostForm("source")
- limitstr, _ := c.GetPostForm("length")
- startstr, _ := c.GetPostForm("start")
- start, _ := strconv.Atoi(startstr)
- limit, _ := strconv.Atoi(limitstr)
- query := make(map[string]interface{})
- if source == "-1" && coll != "" { //外层
- query = map[string]interface{}{
- name + "_err": map[string]interface{}{
- "$exists": true,
- },
- name + "_isaudit": false,
- }
- data, _ := Mgo.Find(coll, query, `{"_id":-1}`, nil, false, start, limit)
- count := Mgo.Count(coll, query)
- for _, d := range *data {
- d["name"] = d[name]
- }
- c.JSON(200, gin.H{"data": data, "recordsFiltered": count, "recordsTotal": count})
- } else { //分包
- c.JSON(200, gin.H{"data": map[string]interface{}{}, "recordsFiltered": 0, "recordsTotal": 0})
- }
- }
- func BuyerClass(c *gin.Context) {
- data, _ := Mgo.Find("classify", `{"i_type":1}`, `{"_id":-1}`, `{"s_name":1,"child":1}`, false, -1, -1)
- c.JSON(200, gin.H{"data": data})
- }
- func AddSave(c *gin.Context) {
- field, _ := c.GetPostForm("field")
- auditname, _ := c.GetPostForm("auditname")
- parentclass, _ := c.GetPostForm("parentclass")
- childclass, _ := c.GetPostForm("childclass")
- update := make(map[string]interface{})
- if field == "buyer" {
- update["buyerclass"] = childclass
- update["parentclass"] = parentclass
- }
- update["name"] = auditname
- update["pici"] = time.Now().Unix()
- update["s_source"] = "手动"
- b := Mgo.Update(field, `{"name":"`+auditname+`"}`, map[string]interface{}{
- "$set": update}, true, false)
- if b { //新增的直接更新buyer redis
- p := redis.PutCKV(field, field+"_"+auditname, 1)
- log.Println("Add--Update "+field+" redis:", p)
- }
- c.JSON(200, gin.H{"rep": b})
- }
- func AuditSave(c *gin.Context) {
- field, _ := c.GetPostForm("field")
- name, _ := c.GetPostForm("name")
- _id, _ := c.GetPostForm("id")
- coll, _ := c.GetPostForm("coll")
- update := make(map[string]interface{})
- if field == "buyer" || field == "winner" { //更新buyer或winner库,并保存到redis
- if field == "buyer" {
- parentclass, _ := c.GetPostForm("parentclass")
- childclass, _ := c.GetPostForm("childclass")
- update["buyerclass"] = childclass
- update["parentclass"] = parentclass
- }
- update["name"] = name
- update["pici"] = time.Now().Unix()
- update["s_source"] = "抽取"
- //更新结果表数据
- b1 := Mgo.UpdateById(coll, _id, map[string]interface{}{
- "$set": map[string]interface{}{
- field + "_isaudit": true,
- field: name,
- },
- })
- //更新原有的winner或buyer库
- b2 := Mgo.Update(field, `{"name":"`+name+`"}`, map[string]interface{}{
- "$set": update}, true, false)
- log.Println("Audit--Update "+field, b2)
- //更新redis
- p := redis.PutCKV(field, field+"_"+name, 1)
- log.Println("Audit--Update "+field+" redis:", p)
- c.JSON(200, gin.H{"rep": b1})
- } else {
- b3 := Mgo.UpdateById(coll, _id, map[string]interface{}{
- "$set": map[string]interface{}{
- field + "_isaudit": true,
- field: name,
- },
- })
- c.JSON(200, gin.H{"rep": b3})
- }
- }
|