|
@@ -3,18 +3,16 @@ package service
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
"fmt"
|
|
|
+ "github.com/go-xweb/xweb"
|
|
|
+ "github.com/lauyoume/gopinyin"
|
|
|
+ "gopkg.in/mgo.v2/bson"
|
|
|
"io/ioutil"
|
|
|
- "log"
|
|
|
"net/http"
|
|
|
mongoutil "qfw/mongodb"
|
|
|
qu "qfw/util"
|
|
|
"strings"
|
|
|
"time"
|
|
|
. "util"
|
|
|
-
|
|
|
- "github.com/go-xweb/xweb"
|
|
|
- "github.com/lauyoume/gopinyin"
|
|
|
- "gopkg.in/mgo.v2/bson"
|
|
|
)
|
|
|
|
|
|
type Customer struct {
|
|
@@ -125,6 +123,7 @@ func (c *Customer) CustomerEuser() {
|
|
|
defer qu.Catch()
|
|
|
id := c.GetString("id")
|
|
|
query := bson.M{}
|
|
|
+
|
|
|
query["_id"] = mongoutil.StringTOBsonId(id)
|
|
|
data, _ := Mgo.FindOneByField("euser", query, `{}`)
|
|
|
depart, _ := Mgo.Find("euserdepart", bson.M{"s_userid": id, "b_delete": false}, nil, nil, false, -1, -1)
|
|
@@ -297,7 +296,9 @@ func (c *Customer) CuserToEuser() {
|
|
|
"i_state": 1,
|
|
|
},
|
|
|
}
|
|
|
+
|
|
|
b := Mgo.Update("cuser", bson.M{"_id": mongoutil.StringTOBsonId(_id)}, set, false, false)
|
|
|
+
|
|
|
if !b {
|
|
|
c.ServeJson(map[string]interface{}{
|
|
|
"rep": b,
|
|
@@ -685,19 +686,38 @@ func (c *Customer) EuserTagEdit() {
|
|
|
o_rulesStr := data["o_list"].(string)
|
|
|
json.Unmarshal([]byte(o_rulesStr), &o_rules)
|
|
|
data["o_list"] = o_rules
|
|
|
+ hid := qu.ObjToString(data["hid"])
|
|
|
var rep = true
|
|
|
- if _id == "" {
|
|
|
- data["i_createtime"] = createTime
|
|
|
- data["i_updatetime"] = createTime
|
|
|
- data["b_delete"] = false
|
|
|
- _id = Mgo.Save("eusertagrule", data)
|
|
|
+ if hid == "" {
|
|
|
+ if _id == "" {
|
|
|
+ data["i_createtime"] = createTime
|
|
|
+ data["i_updatetime"] = createTime
|
|
|
+ data["b_delete"] = false
|
|
|
+ _id = Mgo.Save("eusertagrule", data)
|
|
|
+ } else {
|
|
|
+ query := bson.M{
|
|
|
+ "_id": mongoutil.StringTOBsonId(_id),
|
|
|
+ }
|
|
|
+ rep = Mgo.Update("eusertagrule", query, bson.M{"$set": data}, false, false)
|
|
|
+ }
|
|
|
} else {
|
|
|
- query := bson.M{
|
|
|
- "_id": mongoutil.StringTOBsonId(_id),
|
|
|
+ if _id == "" {
|
|
|
+ data["i_createtime"] = createTime
|
|
|
+ data["i_updatetime"] = createTime
|
|
|
+ data["i_type"] = "historyData"
|
|
|
+ data["b_delete"] = true
|
|
|
+ _id = Mgo.Save("eusertagrule", data)
|
|
|
+ rep = AddHistoryLogTag(data, false, _id)
|
|
|
+ } else {
|
|
|
+ query := bson.M{
|
|
|
+ "_id": mongoutil.StringTOBsonId(_id),
|
|
|
+ }
|
|
|
+ reps := Mgo.Update("eusertagrule", query, bson.M{"$set": data}, false, false)
|
|
|
+ if reps {
|
|
|
+ rep = AddHistoryLogTag(data, true, _id)
|
|
|
+ }
|
|
|
}
|
|
|
- rep = Mgo.Update("eusertagrule", query, bson.M{"$set": data}, false, false)
|
|
|
}
|
|
|
-
|
|
|
c.ServeJson(map[string]interface{}{
|
|
|
"id": cid,
|
|
|
"rep": rep,
|
|
@@ -710,10 +730,10 @@ func (c *Customer) EuserTagEdit() {
|
|
|
cid := c.GetString("cid")
|
|
|
c.T["cid"] = cid
|
|
|
c.T["matchTypeMap"] = MatchTypeMap3
|
|
|
+ c.T["hid"] = c.GetString("hid")
|
|
|
c.Render("private/euser_tag_rule.html", &c.T)
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
func (c *Customer) EuserTag() {
|
|
|
defer qu.Catch()
|
|
|
if c.Method() == "POST" {
|
|
@@ -863,20 +883,17 @@ func (c *Customer) CustomerHistory() {
|
|
|
user := c.GetSession("user").(map[string]interface{})
|
|
|
query := bson.M{}
|
|
|
query["_id"] = mongoutil.StringTOBsonId(id)
|
|
|
- data, _ := Mgo.FindOneByField("euser", query, `{}`)
|
|
|
- depart, _ := Mgo.Find("euserdepart", bson.M{"s_userid": id, "b_delete": false}, nil, nil, false, -1, -1)
|
|
|
- (*data)["_id"] = mongoutil.BsonIdToSId((*data)["_id"])
|
|
|
- if (*data)["i_state"] == 1 {
|
|
|
- tagRule, _ := Mgo.Find("eusertagrule", bson.M{"s_userid": id, "b_delete": false}, nil, nil, false, -1, -1)
|
|
|
- c.T["tagrule"] = *tagRule
|
|
|
- }
|
|
|
+
|
|
|
hid := c.GetString("hid")
|
|
|
history_id := ""
|
|
|
if hid != "" {
|
|
|
history_id = hid
|
|
|
hData, ok := Mgo.FindOne("historylog", bson.M{"_id": mongoutil.StringTOBsonId(history_id)})
|
|
|
if ok && hData != nil && len(*hData) > 0 {
|
|
|
- // (*hData)["dep_rules"]
|
|
|
+ c.T["history_rule"] = (*hData)["dep_rules"]
|
|
|
+ c.T["tagrule"] = (*hData)["tag_rules"]
|
|
|
+ (*hData)["_id"] = id
|
|
|
+ c.T["data"] = *hData
|
|
|
}
|
|
|
} else {
|
|
|
history_id = Mgo.Save("historylog", map[string]interface{}{
|
|
@@ -886,10 +903,14 @@ func (c *Customer) CustomerHistory() {
|
|
|
"create_user": user["name"],
|
|
|
"state": 0,
|
|
|
})
|
|
|
- c.T["data"] = *data
|
|
|
- c.T["depart"] = *depart
|
|
|
+ c.Redirect("/service/customer/history?id=" + id + "&hid=" + history_id)
|
|
|
+ // c.T["depart"] = *depart
|
|
|
+ // if (*data)["i_state"] == 1 {
|
|
|
+ // tagRule, _ := Mgo.Find("eusertagrule", bson.M{"s_userid": id, "b_delete": false}, nil, nil, false, -1, -1)
|
|
|
+ // c.T["tagrule"] = *tagRule
|
|
|
+ // }
|
|
|
}
|
|
|
-
|
|
|
+ // c.T["data"] = *data
|
|
|
c.T["history_id"] = history_id
|
|
|
c.Render("private/customer_history.html", &c.T)
|
|
|
}
|
|
@@ -910,7 +931,7 @@ func (c *Customer) CustomerAllRule() {
|
|
|
inc_rules := []map[string]interface{}{}
|
|
|
inc_rule := make(map[string]interface{})
|
|
|
inc_data, _ := Mgo.FindOne("historylog", inc_query)
|
|
|
- if inc_data != nil && (len(*inc_data) != 0) {
|
|
|
+ if inc_data != nil && *inc_data != nil {
|
|
|
for _, t := range (*inc_data)["dep_rules"].([]interface{}) {
|
|
|
if !t.(map[string]interface{})["is_new"].(bool) {
|
|
|
inc_rule["id"] = t.(map[string]interface{})["_id"].(bson.ObjectId).Hex() //规则id
|
|
@@ -935,7 +956,7 @@ func (c *Customer) CustomerAllRule() {
|
|
|
}
|
|
|
history_rule_data["department_isuse"] = m["i_isuse"]
|
|
|
history_rule_data["depart_name"] = m["s_name"]
|
|
|
- depart_rule_data, _ := Mgo.Find("cuserdepartrule", q, `{"i_createtime":-1}`, `{"s_tagname":1,"i_updatetime":1,"i_isuse":1,"_id":1}`, false, 0, 0)
|
|
|
+ depart_rule_data, _ := Mgo.Find("euserdepartrule", q, `{"i_createtime":-1}`, `{"s_tagname":1,"i_updatetime":1,"i_isuse":1,"_id":1}`, false, 0, 0)
|
|
|
if depart_rule_data != nil && len(*depart_rule_data) != 0 {
|
|
|
for _, j := range *depart_rule_data {
|
|
|
j["_id"] = j["_id"].(bson.ObjectId).Hex()
|
|
@@ -962,75 +983,72 @@ func (c *Customer) CustomerAllRule() {
|
|
|
func (c *Customer) SaveHistoryRule() {
|
|
|
rules_id := c.GetString("rulesid")
|
|
|
history_id := c.GetString("hid")
|
|
|
- userid := c.GetString("userid")
|
|
|
- if userid != "" {
|
|
|
- //user_rules := make(map[string]interface{})
|
|
|
+ // userid := c.GetString("userid")
|
|
|
+ if history_id != "" {
|
|
|
user_history, _ := Mgo.FindOne("historylog", map[string]interface{}{
|
|
|
"_id": mongoutil.StringTOBsonId(history_id),
|
|
|
})
|
|
|
- if *user_history != nil && len(*user_history) != 0 {
|
|
|
+ if *user_history != nil && user_history != nil {
|
|
|
//获取私有标签
|
|
|
- usertags := getTserTag(userid)
|
|
|
- if _, ok := (*user_history)["dep_rules"]; ok {
|
|
|
- dep_rules := (*user_history)["dep_rules"].([]interface{})
|
|
|
- for _, m := range dep_rules {
|
|
|
- if strings.Contains(rules_id, m.(map[string]interface{})["_id"].(bson.ObjectId).Hex()) {
|
|
|
- continue
|
|
|
+ // usertags := getTserTag(userid)
|
|
|
+ if (*user_history)["dep_rules"] != nil {
|
|
|
+ dep_rules := qu.ObjArrToMapArr((*user_history)["dep_rules"].([]interface{}))
|
|
|
+ dep_new_rules := []map[string]interface{}{}
|
|
|
+ ruleMap := map[string]bool{}
|
|
|
+ if len(dep_rules) > 0 {
|
|
|
+ for _, r := range dep_rules {
|
|
|
+ dep_new_rules = append(dep_new_rules, r)
|
|
|
+ ruleMap[mongoutil.BsonIdToSId(r["_id"])] = true
|
|
|
}
|
|
|
- rules_id_list := strings.Split(rules_id, ",")
|
|
|
- for _, rule := range rules_id_list {
|
|
|
- //dep_rule := make(map[string]interface{})
|
|
|
+ }
|
|
|
+ rules_id_list := strings.Split(rules_id, ",")
|
|
|
+ for _, rule := range rules_id_list {
|
|
|
+ if !ruleMap[rule] {
|
|
|
query := bson.M{
|
|
|
- "_id": bson.ObjectIdHex(rule),
|
|
|
+ "_id": mongoutil.StringTOBsonId(rule),
|
|
|
"b_delete": false,
|
|
|
}
|
|
|
res, _ := Mgo.FindOne("euserdepartrule", query)
|
|
|
if res != nil && len(*res) != 0 {
|
|
|
//获取规则所属部门信息
|
|
|
department_info, _ := Mgo.FindOne("euserdepart", map[string]interface{}{
|
|
|
- "_id": bson.ObjectIdHex((*res)["s_departid"].(string)),
|
|
|
+ "_id": mongoutil.StringTOBsonId((*res)["s_departid"].(string)),
|
|
|
"b_delete": false,
|
|
|
})
|
|
|
(*res)["is_new"] = false
|
|
|
(*res)["s_depart_name"] = (*department_info)["s_name"]
|
|
|
- dep_rules = append(dep_rules, *res)
|
|
|
+ dep_new_rules = append(dep_new_rules, *res)
|
|
|
}
|
|
|
}
|
|
|
- set := bson.M{
|
|
|
- "$set": bson.M{
|
|
|
- "dep_rules": dep_rules,
|
|
|
- "tag_rules": usertags,
|
|
|
- "updatetime": time.Now().Unix(),
|
|
|
- },
|
|
|
- }
|
|
|
- isupdata := Mgo.Update("historylog", map[string]interface{}{
|
|
|
- "user_id": userid,
|
|
|
- "_id": mongoutil.StringTOBsonId(history_id),
|
|
|
- }, set, false, false)
|
|
|
- if isupdata {
|
|
|
- c.ServeJson(map[string]interface{}{
|
|
|
- "status": "success",
|
|
|
- })
|
|
|
- } else {
|
|
|
- c.ServeJson(map[string]interface{}{
|
|
|
- "status": "fail",
|
|
|
- })
|
|
|
- }
|
|
|
- return
|
|
|
}
|
|
|
+ set := bson.M{
|
|
|
+ "$set": bson.M{
|
|
|
+ "dep_rules": dep_new_rules,
|
|
|
+ // "tag_rules": usertags,
|
|
|
+ "updatetime": time.Now().Unix(),
|
|
|
+ },
|
|
|
+ }
|
|
|
+ ok := Mgo.Update("historylog", map[string]interface{}{
|
|
|
+ "_id": mongoutil.StringTOBsonId(history_id),
|
|
|
+ }, set, false, false)
|
|
|
+ //log.Println("ok", ok)
|
|
|
+ c.ServeJson(map[string]interface{}{
|
|
|
+ "status": ok,
|
|
|
+ })
|
|
|
+ return
|
|
|
} else {
|
|
|
rules_id_list := strings.Split(rules_id, ",")
|
|
|
dep_rules := []map[string]interface{}{}
|
|
|
for _, rule := range rules_id_list {
|
|
|
query := bson.M{
|
|
|
- "_id": bson.ObjectIdHex(rule),
|
|
|
+ "_id": mongoutil.StringTOBsonId(rule),
|
|
|
"b_delete": false,
|
|
|
}
|
|
|
res, _ := Mgo.FindOne("euserdepartrule", query)
|
|
|
- if res != nil && len(*res) != 0 {
|
|
|
+ if res != nil && *res != nil {
|
|
|
//获取规则所属部门信息
|
|
|
department_info, _ := Mgo.FindOne("euserdepart", map[string]interface{}{
|
|
|
- "_id": bson.ObjectIdHex((*res)["s_departid"].(string)),
|
|
|
+ "_id": mongoutil.StringTOBsonId((*res)["s_departid"].(string)),
|
|
|
"b_delete": false,
|
|
|
})
|
|
|
(*res)["is_new"] = false
|
|
@@ -1040,24 +1058,17 @@ func (c *Customer) SaveHistoryRule() {
|
|
|
}
|
|
|
set := bson.M{
|
|
|
"$set": bson.M{
|
|
|
- "dep_rules": dep_rules,
|
|
|
- "tag_rules": usertags,
|
|
|
+ "dep_rules": dep_rules,
|
|
|
+ // "tag_rules": usertags,
|
|
|
"updatetime": time.Now().Unix(),
|
|
|
},
|
|
|
}
|
|
|
isupdata := Mgo.Update("historylog", map[string]interface{}{
|
|
|
- "user_id": userid,
|
|
|
- "_id": mongoutil.StringTOBsonId(history_id),
|
|
|
+ "_id": mongoutil.StringTOBsonId(history_id),
|
|
|
}, set, false, false)
|
|
|
- if isupdata {
|
|
|
- c.ServeJson(map[string]interface{}{
|
|
|
- "status": "success",
|
|
|
- })
|
|
|
- } else {
|
|
|
- c.ServeJson(map[string]interface{}{
|
|
|
- "status": "fail",
|
|
|
- })
|
|
|
- }
|
|
|
+ c.ServeJson(map[string]interface{}{
|
|
|
+ "status": isupdata,
|
|
|
+ })
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -1089,6 +1100,7 @@ func (c *Customer) HistoryRuleCreate() {
|
|
|
i_createtime := time.Now().Unix()
|
|
|
data["i_updatetime"] = i_createtime
|
|
|
data["s_updateuser"] = user["name"]
|
|
|
+ data["s_depart_name"] = data["departmentName"]
|
|
|
var rep = false
|
|
|
s_id := ""
|
|
|
if id == "" { //新建
|
|
@@ -1097,10 +1109,10 @@ func (c *Customer) HistoryRuleCreate() {
|
|
|
d_data := map[string]interface{}{
|
|
|
"i_isuse": 1,
|
|
|
"s_userid": user_id,
|
|
|
- "s_name": data["departmentName"],
|
|
|
+ "s_name": data["s_depart_name"],
|
|
|
"i_createtime": time.Now().Unix(),
|
|
|
"i_updatetime": time.Now().Unix(),
|
|
|
- "b_delete": false,
|
|
|
+ "b_delete": true,
|
|
|
"i_type": "historyData",
|
|
|
}
|
|
|
s_id = Mgo.Save("euserdepart", d_data)
|
|
@@ -1113,12 +1125,12 @@ func (c *Customer) HistoryRuleCreate() {
|
|
|
data["s_createuser"] = user["name"]
|
|
|
s_tagnamekey := gopinyin.Convert(qu.ObjToString(data["s_tagname"]), false)
|
|
|
data["s_tagnamekey"] = s_tagnamekey
|
|
|
- data["b_delete"] = false
|
|
|
+ data["b_delete"] = true
|
|
|
data["s_dataid"] = qu.SE.EncodeString(fmt.Sprintf("%v", i_createtime) + s_tagnamekey + s_id)
|
|
|
data["i_type"] = "historyData"
|
|
|
id = Mgo.Save("euserdepartrule", data)
|
|
|
if id != "" {
|
|
|
- rep = AddHistoryLog(data, false, id)
|
|
|
+ rep = AddHistoryLogDep(data, false, id)
|
|
|
} else {
|
|
|
rep = false
|
|
|
}
|
|
@@ -1128,7 +1140,7 @@ func (c *Customer) HistoryRuleCreate() {
|
|
|
}
|
|
|
reps := Mgo.Update("euserdepartrule", query, bson.M{"$set": data}, false, false)
|
|
|
if reps {
|
|
|
- rep = AddHistoryLog(data, true, id)
|
|
|
+ rep = AddHistoryLogDep(data, true, id)
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1164,31 +1176,29 @@ func (c *Customer) HistoryTagAssociated() {
|
|
|
userid := c.GetString("userid")
|
|
|
rule_id := c.GetString("_id")
|
|
|
tags := c.GetString("ids")
|
|
|
- tags_id := strings.Split(tags, ",")
|
|
|
+ hid := c.GetString("hid")
|
|
|
|
|
|
if userid != "" {
|
|
|
user_info, _ := Mgo.FindOne("historylog", map[string]interface{}{
|
|
|
- "user_id": userid,
|
|
|
+ "_id": mongoutil.StringTOBsonId(hid),
|
|
|
})
|
|
|
- log.Println("tag_id", tags_id)
|
|
|
- if user_info != nil {
|
|
|
+ if user_info != nil && *user_info != nil {
|
|
|
tagrules := (*user_info)["tag_rules"]
|
|
|
- for _, m := range tagrules.([]interface{}) {
|
|
|
- if m.(map[string]interface{})["_id"].(bson.ObjectId).Hex() == rule_id {
|
|
|
- log.Println("&&")
|
|
|
- m.(map[string]interface{})["o_departruleids"] = tags
|
|
|
+ if tagrules != nil {
|
|
|
+ tagrulesArr := qu.ObjArrToMapArr(tagrules.([]interface{}))
|
|
|
+ for _, m := range tagrulesArr {
|
|
|
+ if rule_id == mongoutil.BsonIdToSId(m["_id"]) {
|
|
|
+ m["o_departruleids"] = tags
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- set := bson.M{
|
|
|
- "$set": bson.M{
|
|
|
- "tag_rules": tagrules,
|
|
|
- },
|
|
|
- }
|
|
|
- log.Println("set", set)
|
|
|
- is_updata := Mgo.Update("historylog", map[string]interface{}{
|
|
|
- "user_id": userid,
|
|
|
- }, set, false, false)
|
|
|
- if is_updata {
|
|
|
+ set := bson.M{
|
|
|
+ "$set": bson.M{
|
|
|
+ "tag_rules": tagrulesArr,
|
|
|
+ },
|
|
|
+ }
|
|
|
+ is_updata := Mgo.Update("historylog", map[string]interface{}{
|
|
|
+ "_id": mongoutil.StringTOBsonId(hid),
|
|
|
+ }, set, false, false)
|
|
|
c.ServeJson(map[string]interface{}{
|
|
|
"rep": is_updata,
|
|
|
})
|
|
@@ -1202,7 +1212,7 @@ func getTserTag(userid string) *[]map[string]interface{} {
|
|
|
return usertags
|
|
|
}
|
|
|
|
|
|
-func AddHistoryLog(ruleData map[string]interface{}, isUpdate bool, id string) bool {
|
|
|
+func AddHistoryLogDep(ruleData map[string]interface{}, isUpdate bool, id string) bool {
|
|
|
history_id := mongoutil.StringTOBsonId(ruleData["history_id"].(string))
|
|
|
hData, ok := Mgo.FindOne("historylog", bson.M{"_id": history_id})
|
|
|
if ok && hData != nil && *hData != nil && len(*hData) > 0 {
|
|
@@ -1212,9 +1222,9 @@ func AddHistoryLog(ruleData map[string]interface{}, isUpdate bool, id string) bo
|
|
|
}
|
|
|
ruleData["is_new"] = true
|
|
|
if isUpdate {
|
|
|
- for _, v := range dep_rules {
|
|
|
+ for k, v := range dep_rules {
|
|
|
if mongoutil.BsonIdToSId(v["_id"]) == id {
|
|
|
- v = ruleData
|
|
|
+ dep_rules[k] = ruleData
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
@@ -1227,29 +1237,54 @@ func AddHistoryLog(ruleData map[string]interface{}, isUpdate bool, id string) bo
|
|
|
|
|
|
}
|
|
|
|
|
|
+func AddHistoryLogTag(ruleData map[string]interface{}, isUpdate bool, id string) bool {
|
|
|
+ history_id := mongoutil.StringTOBsonId(qu.ObjToString(ruleData["hid"]))
|
|
|
+ hData, ok := Mgo.FindOne("historylog", bson.M{"_id": history_id})
|
|
|
+ if ok && hData != nil && *hData != nil && len(*hData) > 0 {
|
|
|
+ tag_rules := []map[string]interface{}{}
|
|
|
+ if (*hData)["tag_rules"] != nil {
|
|
|
+ tag_rules = qu.ObjArrToMapArr((*hData)["tag_rules"].([]interface{}))
|
|
|
+ }
|
|
|
+ ruleData["is_new"] = true
|
|
|
+ if isUpdate {
|
|
|
+ for k, v := range tag_rules {
|
|
|
+ if mongoutil.BsonIdToSId(v["_id"]) == id {
|
|
|
+ tag_rules[k] = ruleData
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ tag_rules = append(tag_rules, ruleData)
|
|
|
+ }
|
|
|
+ return Mgo.Update("historylog", bson.M{"_id": history_id}, bson.M{"$set": bson.M{"tag_rules": tag_rules}}, false, false)
|
|
|
+ } else {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
//历史任务删除私有标签
|
|
|
func (c *Customer) HistoryTagDel() {
|
|
|
defer qu.Catch()
|
|
|
- userid := c.GetString("userid")
|
|
|
+ // userid := c.GetString("userid")
|
|
|
tagid := c.GetString("tagid")
|
|
|
- if userid != "" && tagid != "" {
|
|
|
- user_info, _ := Mgo.FindOne("historylog", map[string]interface{}{"user_id": userid})
|
|
|
- if user_info != nil && len(*user_info) != 0 {
|
|
|
- user_tag_rules := (*user_info)["tag_rules"].([]interface{})
|
|
|
+ hid := c.GetString("hid")
|
|
|
+ user_info, _ := Mgo.FindOne("historylog", bson.M{"_id": mongoutil.StringTOBsonId(hid)})
|
|
|
+ if user_info != nil && *user_info != nil {
|
|
|
+ if (*user_info)["tag_rules"] != nil {
|
|
|
+ user_tag_rules := qu.ObjArrToMapArr((*user_info)["tag_rules"].([]interface{}))
|
|
|
+ ruleMap := map[string]bool{tagid: true}
|
|
|
+ ruleArr := []map[string]interface{}{}
|
|
|
for _, m := range user_tag_rules {
|
|
|
- if m.(map[string]interface{})["_id"].(bson.ObjectId).Hex() == tagid {
|
|
|
- m.(map[string]interface{})["b_delete"] = true
|
|
|
+ if !ruleMap[mongoutil.BsonIdToSId(m["_id"])] {
|
|
|
+ ruleArr = append(ruleArr, m)
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- is_updata := Mgo.Update("historylog", bson.M{"user_id": userid}, bson.M{"$set": bson.M{"tag_rules": user_tag_rules}}, false, false)
|
|
|
- if is_updata {
|
|
|
- c.ServeJson(map[string]interface{}{
|
|
|
- "rep": true,
|
|
|
- })
|
|
|
- }
|
|
|
- return
|
|
|
+ is_updata := Mgo.Update("historylog", bson.M{"_id": mongoutil.StringTOBsonId(hid)}, bson.M{"$set": bson.M{"tag_rules": ruleArr}}, false, false)
|
|
|
+ c.ServeJson(map[string]interface{}{
|
|
|
+ "rep": is_updata,
|
|
|
+ })
|
|
|
}
|
|
|
+ return
|
|
|
}
|
|
|
c.ServeJson(map[string]interface{}{
|
|
|
"rep": false,
|
|
@@ -1290,7 +1325,7 @@ func (c *Customer) Addhistoryrule() {
|
|
|
defer qu.Catch()
|
|
|
if c.Method() == "POST" {
|
|
|
his_id := c.GetString("history_id")
|
|
|
- log.Println("hisid", his_id)
|
|
|
+ //log.Println("hisid", his_id)
|
|
|
if his_id != "" {
|
|
|
//newHistory["tag_rules"] = usertags
|
|
|
set := bson.M{
|
|
@@ -1304,14 +1339,14 @@ func (c *Customer) Addhistoryrule() {
|
|
|
"i_updatetime": c.GetString("i_updatetime"),
|
|
|
},
|
|
|
}
|
|
|
- isupdata := Mgo.UpdateById("historylog", his_id, set)
|
|
|
+ isupdata := Mgo.UpdateById("historylog", mongoutil.StringTOBsonId(his_id), set)
|
|
|
if isupdata {
|
|
|
c.ServeJson(map[string]interface{}{
|
|
|
"history_id": his_id,
|
|
|
"rep": true,
|
|
|
})
|
|
|
} else {
|
|
|
- log.Println(666)
|
|
|
+ //log.Println(666)
|
|
|
c.ServeJson(map[string]interface{}{
|
|
|
"history_id": "",
|
|
|
"rep": false,
|