|
@@ -58,6 +58,9 @@ type Customer struct {
|
|
|
saveHistoryRule xweb.Mapper `xweb:"/service/customer/history/saverule"` //保存历史规则
|
|
|
historyRuleCreate xweb.Mapper `xweb:"/service/cuser/rule/history/edit"`
|
|
|
historyCuserRuleList xweb.Mapper `xweb:"/service/tag/history/ruleList"` //私有标签关联历史规则
|
|
|
+ historyTagDel xweb.Mapper `xweb:"/service/tag/history/del"` //历史任务删除私有标签
|
|
|
+ historyTagEdit xweb.Mapper `xweb:"/service/tag/history/del"` //历史任务修改私有标签
|
|
|
+
|
|
|
}
|
|
|
|
|
|
func (c *Customer) CustomerList() {
|
|
@@ -872,26 +875,28 @@ func (c *Customer) CustomerHistory() {
|
|
|
//选择历史规则
|
|
|
func (c *Customer) CustomerAllRule() {
|
|
|
customerId := c.GetString("c_id")
|
|
|
+ log.Println("cid",customerId)
|
|
|
query := bson.M{
|
|
|
"s_userid": customerId,
|
|
|
"b_delete": false,
|
|
|
}
|
|
|
inc_query := bson.M{
|
|
|
- "s_appid": customerId,
|
|
|
+ "user_id": customerId,
|
|
|
}
|
|
|
//获取新增历史规则
|
|
|
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) {
|
|
|
- for _, t := range (*inc_data)["dep_rule"].([]interface{}) {
|
|
|
- if t.(map[string]interface{})["is_new"].(bool) {
|
|
|
- inc_rule["id"] = t.(map[string]interface{})["id"] //规则id
|
|
|
+ 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
|
|
|
inc_rule["s_depart_name"] = t.(map[string]interface{})["s_depart_name"]
|
|
|
- inc_rule["s_name"] = t.(map[string]interface{})["s_name"]
|
|
|
+ inc_rule["s_name"] = t.(map[string]interface{})["s_tagname"]
|
|
|
inc_rule["s_depart_status"] = t.(map[string]interface{})["s_depart_status"]
|
|
|
inc_rule["s_rule_status"] = t.(map[string]interface{})["s_rule_status"]
|
|
|
- inc_rule["rule_updatetime"] = t.(map[string]interface{})["rule_updatetime"]
|
|
|
+ inc_rule["rule_updatetime"] = t.(map[string]interface{})["i_updatetime"]
|
|
|
+ inc_rule["isinc"] = true
|
|
|
inc_rules = append(inc_rules, inc_rule)
|
|
|
}
|
|
|
}
|
|
@@ -933,66 +938,58 @@ func (c *Customer) CustomerAllRule() {
|
|
|
//保存历史规则
|
|
|
func (c *Customer) SaveHistoryRule() {
|
|
|
rules_id := c.GetString("rulesid")
|
|
|
+ //rules_id := c.GetSlice("rulesid")
|
|
|
userid := c.GetString("userid")
|
|
|
- log.Println("userid",userid)
|
|
|
- user_rules := make(map[string]interface{})
|
|
|
- user_history, _ := Mgo.FindOne("historylog", map[string]interface{}{
|
|
|
- "user_id":userid,
|
|
|
- })
|
|
|
- if *user_history != nil&&len(*user_history)!=0 {
|
|
|
- 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
|
|
|
- }
|
|
|
- rules_id_list := strings.Split(rules_id, ",")
|
|
|
- for _, rule := range rules_id_list {
|
|
|
- //dep_rule := make(map[string]interface{})
|
|
|
- query := bson.M{
|
|
|
- "_id": bson.ObjectIdHex(rule),
|
|
|
- "b_delete": false,
|
|
|
+ if userid != "" {
|
|
|
+ user_rules := make(map[string]interface{})
|
|
|
+ user_history, _ := Mgo.FindOne("historylog", map[string]interface{}{
|
|
|
+ "user_id": userid,
|
|
|
+ })
|
|
|
+ if *user_history != nil && len(*user_history) != 0 {
|
|
|
+ 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
|
|
|
}
|
|
|
- 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)),
|
|
|
+ rules_id_list := strings.Split(rules_id, ",")
|
|
|
+ for _, rule := range rules_id_list {
|
|
|
+ //dep_rule := make(map[string]interface{})
|
|
|
+ query := bson.M{
|
|
|
+ "_id": bson.ObjectIdHex(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)),
|
|
|
+ "b_delete": false,
|
|
|
+ })
|
|
|
+ (*res)["is_new"] = false
|
|
|
+ (*res)["s_depart_name"] = (*department_info)["s_name"]
|
|
|
+ dep_rules = append(dep_rules, *res)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ set := bson.M{
|
|
|
+ "$set": bson.M{
|
|
|
+ "dep_rules": dep_rules,
|
|
|
+ "updatetime": time.Now().Unix(),
|
|
|
+ },
|
|
|
+ }
|
|
|
+ isupdata := Mgo.Update("historylog", map[string]interface{}{
|
|
|
+ "user_id": userid,
|
|
|
+ }, set, false, false)
|
|
|
+ if isupdata {
|
|
|
+ c.ServeJson(map[string]interface{}{
|
|
|
+ "status": "success",
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ c.ServeJson(map[string]interface{}{
|
|
|
+ "status": "fail",
|
|
|
})
|
|
|
- //dep_rule["_id"] = (*res)["_id"]
|
|
|
- //dep_rule["is_new"] = false
|
|
|
- //dep_rule["s_departid"] = (*res)["s_departid"]
|
|
|
- //dep_rule["s_name"] = (*res)["s_tagname"]
|
|
|
- //dep_rule["o_rules"] = *res
|
|
|
- //dep_rule["rule_updatetime"] = (*department_info)["i_updatetime"]
|
|
|
- //dep_rule["s_depart_name"] =
|
|
|
- //dep_rule["s_depart_status"] = (*department_info)["i_isuse"]
|
|
|
- (*res)["is_new"] = false
|
|
|
- (*res)["s_depart_name"] = (*department_info)["s_name"]
|
|
|
- dep_rules = append(dep_rules, *res)
|
|
|
}
|
|
|
}
|
|
|
- set := bson.M{
|
|
|
- "$set": bson.M{
|
|
|
- "dep_rules": dep_rules,
|
|
|
- "createtime": time.Now().Unix(),
|
|
|
- },
|
|
|
- }
|
|
|
- isupdata:=Mgo.Update("historylog", map[string]interface{}{
|
|
|
- "user_id": userid,
|
|
|
- }, set,false,false)
|
|
|
- if isupdata {
|
|
|
- c.ServeJson(map[string]interface{}{
|
|
|
- "status": "success",
|
|
|
- })
|
|
|
- } else {
|
|
|
- c.ServeJson(map[string]interface{}{
|
|
|
- "status": "fail",
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- if userid != "" {
|
|
|
+ } else {
|
|
|
//获取私有标签
|
|
|
usertags := getTserTag(userid)
|
|
|
user_rules["tag_rules"] = usertags
|
|
@@ -1003,54 +1000,83 @@ func (c *Customer) SaveHistoryRule() {
|
|
|
user_rules["s_name"] = (*userinfo)["s_customername"]
|
|
|
user_rules["s_appid"] = (*userinfo)["s_appid"]
|
|
|
}
|
|
|
- }
|
|
|
- //获取用户规则
|
|
|
- if rules_id != "" {
|
|
|
- dep_rules := []interface{}{}
|
|
|
- rules_id_list := strings.Split(rules_id, ",")
|
|
|
- for _, rule := range rules_id_list {
|
|
|
- //dep_rule := make(map[string]interface{})
|
|
|
- query := bson.M{
|
|
|
- "_id": bson.ObjectIdHex(rule),
|
|
|
- "b_delete": false,
|
|
|
+ //获取用户规则
|
|
|
+ if rules_id != "" {
|
|
|
+ dep_rules := []interface{}{}
|
|
|
+ rules_id_list := strings.Split(rules_id, ",")
|
|
|
+ for _, rule := range rules_id_list {
|
|
|
+ //dep_rule := make(map[string]interface{})
|
|
|
+ query := bson.M{
|
|
|
+ "_id": bson.ObjectIdHex(rule),
|
|
|
+ "b_delete": false,
|
|
|
+ }
|
|
|
+ res, _ := Mgo.FindOne("cuserdepartrule", query)
|
|
|
+ if res != nil && len(*res) != 0 {
|
|
|
+ //获取规则所属部门信息
|
|
|
+ department_info, _ := Mgo.FindOne("cuserdepart", map[string]interface{}{
|
|
|
+ "_id": bson.ObjectIdHex((*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)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ user_rules["dep_rules"] = dep_rules
|
|
|
+ user_rules["user_id"] = userid
|
|
|
+ user_rules["createtime"] = time.Now().Unix()
|
|
|
+ user_rules["state"] = 0
|
|
|
+
|
|
|
+ userinfo, _ := Mgo.FindOne("euer", map[string]interface{}{
|
|
|
+ "s_userid": userid,
|
|
|
+ })
|
|
|
+ if userinfo != nil && len(*userinfo) != 0 {
|
|
|
+ log.Println("s_name", user_rules["s_name"])
|
|
|
+ user_rules["s_name"] = (*userinfo)["s_customername"]
|
|
|
+ user_rules["s_appid"] = (*userinfo)["s_appid"]
|
|
|
}
|
|
|
- res, _ := Mgo.FindOne("cuserdepartrule", query)
|
|
|
- if res != nil && len(*res) != 0 {
|
|
|
- //获取规则所属部门信息
|
|
|
- department_info, _ := Mgo.FindOne("cuserdepart", map[string]interface{}{
|
|
|
- "_id": bson.ObjectIdHex((*res)["s_departid"].(string)),
|
|
|
+ }
|
|
|
+ //获取用户规则
|
|
|
+ if rules_id != "" {
|
|
|
+ dep_rules := []interface{}{}
|
|
|
+ for _, rule := range strings.Split(rules_id, ",") {
|
|
|
+ //dep_rule := make(map[string]interface{})
|
|
|
+ query := bson.M{
|
|
|
+ "_id": bson.ObjectIdHex(rule),
|
|
|
"b_delete": false,
|
|
|
- })
|
|
|
- //dep_rule["id"] = (*res)["_id"].(bson.ObjectId).Hex()
|
|
|
- //dep_rule["is_new"] = false
|
|
|
- //dep_rule["s_departid"] = (*res)["s_departid"]
|
|
|
- //dep_rule["s_name"] = (*res)["s_tagname"]
|
|
|
- //dep_rule["o_rules"] = *res
|
|
|
- //dep_rule["rule_updatetime"] = (*department_info)["i_updatetime"]
|
|
|
- //dep_rule["s_depart_name"] = (*department_info)["s_name"]
|
|
|
- //dep_rule["s_depart_status"] = (*department_info)["i_isuse"]
|
|
|
- (*res)["is_new"] = false
|
|
|
- (*res)["s_depart_name"] = (*department_info)["s_name"]
|
|
|
- dep_rules = append(dep_rules, *res)
|
|
|
+ }
|
|
|
+ res, _ := Mgo.FindOne("cuserdepartrule", query)
|
|
|
+ if res != nil && len(*res) != 0 {
|
|
|
+ //获取规则所属部门信息
|
|
|
+ department_info, _ := Mgo.FindOne("cuserdepart", map[string]interface{}{
|
|
|
+ "_id": bson.ObjectIdHex((*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)
|
|
|
+ }
|
|
|
}
|
|
|
+ //获取私有标签
|
|
|
+ usertags := getTserTag(userid)
|
|
|
+ user_rules["dep_rules"] = dep_rules
|
|
|
+ user_rules["tag_rules"] = usertags
|
|
|
+ user_rules["createtime"] = time.Now().Unix()
|
|
|
+ }
|
|
|
+ issave := Mgo.Save("historylog", user_rules)
|
|
|
+ if issave != "" {
|
|
|
+ c.ServeJson(map[string]interface{}{
|
|
|
+ "status": "success",
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ c.ServeJson(map[string]interface{}{
|
|
|
+ "status": "fail",
|
|
|
+ })
|
|
|
}
|
|
|
- user_rules["dep_rules"] = dep_rules
|
|
|
- user_rules["user_id"] = userid
|
|
|
- user_rules["createtime"] = time.Now().Unix()
|
|
|
- user_rules["state"] = 0
|
|
|
|
|
|
}
|
|
|
- issave := Mgo.Save("historylog", user_rules)
|
|
|
- if issave != "" {
|
|
|
- c.ServeJson(map[string]interface{}{
|
|
|
- "status": "success",
|
|
|
- })
|
|
|
- } else {
|
|
|
- c.ServeJson(map[string]interface{}{
|
|
|
- "status": "fail",
|
|
|
- })
|
|
|
- }
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
func (c *Customer) HistoryRuleCreate() {
|
|
@@ -1099,9 +1125,9 @@ func (c *Customer) HistoryRuleCreate() {
|
|
|
data["b_delete"] = false
|
|
|
data["s_dataid"] = qu.SE.EncodeString(fmt.Sprintf("%v", i_createtime) + s_tagnamekey + s_id)
|
|
|
data["i_type"] = "historyData"
|
|
|
- id = Mgo.Save("cuserdepartrule", data)
|
|
|
+ id = Mgo.Save("euserdepartrule", data)
|
|
|
if id != "" {
|
|
|
- rep = true
|
|
|
+ rep = AddHistoryLog(data, false, id)
|
|
|
} else {
|
|
|
rep = false
|
|
|
}
|
|
@@ -1109,7 +1135,10 @@ func (c *Customer) HistoryRuleCreate() {
|
|
|
query := bson.M{
|
|
|
"_id": qu.StringTOBsonId(id),
|
|
|
}
|
|
|
- rep = Mgo.Update("cuserdepartrule", query, bson.M{"$set": data}, false, false)
|
|
|
+ reps := Mgo.Update("euserdepartrule", query, bson.M{"$set": data}, false, false)
|
|
|
+ if reps {
|
|
|
+ rep = AddHistoryLog(data, true, id)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
c.ServeJson(map[string]interface{}{
|
|
@@ -1123,6 +1152,7 @@ func (c *Customer) HistoryRuleCreate() {
|
|
|
c.T["did"] = id //部门id
|
|
|
c.T["cid"] = id //客户id
|
|
|
c.T["ids"] = id
|
|
|
+ c.T["history_id"] = c.GetString("hid")
|
|
|
c.T["province"] = Province
|
|
|
c.T["city"] = ProvinceCitys
|
|
|
c.T["district"] = CityDistricts
|
|
@@ -1142,20 +1172,20 @@ func (c *Customer) HistoryTagAssociated() {
|
|
|
defer qu.Catch()
|
|
|
userid := c.GetString("userid")
|
|
|
rule_id := c.GetString("_id")
|
|
|
- tags :=c.GetString("ids")
|
|
|
- tags_id := strings.Split(tags,",")
|
|
|
+ tags := c.GetString("ids")
|
|
|
+ tags_id := strings.Split(tags, ",")
|
|
|
|
|
|
- if userid!=""{
|
|
|
- user_info,_ :=Mgo.FindOne("historylog",map[string]interface{}{
|
|
|
- "user_id":userid,
|
|
|
+ if userid != "" {
|
|
|
+ user_info, _ := Mgo.FindOne("historylog", map[string]interface{}{
|
|
|
+ "user_id": userid,
|
|
|
})
|
|
|
- log.Println("tag_id",tags_id)
|
|
|
- if user_info!=nil{
|
|
|
+ log.Println("tag_id", tags_id)
|
|
|
+ if 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
|
|
|
+ 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
|
|
|
}
|
|
|
}
|
|
|
set := bson.M{
|
|
@@ -1163,11 +1193,11 @@ func (c *Customer) HistoryTagAssociated() {
|
|
|
"tag_rules": tagrules,
|
|
|
},
|
|
|
}
|
|
|
- log.Println("set",set)
|
|
|
- is_updata:=Mgo.Update("historylog",map[string]interface{}{
|
|
|
- "user_id":userid,
|
|
|
- },set,false,false)
|
|
|
- if is_updata{
|
|
|
+ log.Println("set", set)
|
|
|
+ is_updata := Mgo.Update("historylog", map[string]interface{}{
|
|
|
+ "user_id": userid,
|
|
|
+ }, set, false, false)
|
|
|
+ if is_updata {
|
|
|
c.ServeJson(map[string]interface{}{
|
|
|
"rep": is_updata,
|
|
|
})
|
|
@@ -1180,3 +1210,86 @@ func getTserTag(userid string) *[]map[string]interface{} {
|
|
|
usertags, _ := Mgo.Find("eusertagrule", map[string]interface{}{"s_userid": userid, "b_delete": false}, `{"i_createtime":-1}`, nil, false, 0, 0)
|
|
|
return usertags
|
|
|
}
|
|
|
+
|
|
|
+func AddHistoryLog(ruleData map[string]interface{}, isUpdate bool, id string) bool {
|
|
|
+ history_id := qu.StringTOBsonId(ruleData["history_id"].(string))
|
|
|
+ hData, ok := Mgo.FindOne("historylog", bson.M{"_id": history_id})
|
|
|
+ if ok && hData != nil && *hData != nil {
|
|
|
+ dep_rules := qu.ObjArrToMapArr((*hData)["dep_rules"].([]interface{}))
|
|
|
+ ruleData["is_new"] = true
|
|
|
+ if isUpdate {
|
|
|
+ for _, v := range dep_rules {
|
|
|
+ if qu.BsonIdToSId(v["_id"]) == id {
|
|
|
+ v = ruleData
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ dep_rules = append(dep_rules, ruleData)
|
|
|
+ }
|
|
|
+ return Mgo.Update("historylog", bson.M{"_id": history_id}, bson.M{"$set": bson.M{"dep_rules": dep_rules}}, false, false)
|
|
|
+ } else {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+//历史任务删除私有标签
|
|
|
+func (c *Customer)HistoryTagDel(){
|
|
|
+ defer qu.Catch()
|
|
|
+ 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{})
|
|
|
+ for _,m:=range user_tag_rules{
|
|
|
+ if m.(map[string]interface{})["_id"].(bson.ObjectId).Hex() == tagid{
|
|
|
+ m.(map[string]interface{})["b_delete"] = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ }
|
|
|
+ c.ServeJson(map[string]interface{}{
|
|
|
+ "rep":false,
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+func (c *Customer)HistoryTagEdit(){
|
|
|
+ defer qu.Catch()
|
|
|
+ _id := c.GetString("_id")
|
|
|
+ userid := c.GetString("userid")
|
|
|
+ data := GetPostForm(c.Request)
|
|
|
+ cid := qu.ObjToString(data["s_userid"])
|
|
|
+ createTime := time.Now().Unix()
|
|
|
+ o_rules := []map[string]interface{}{}
|
|
|
+ o_rulesStr := data["o_list"].(string)
|
|
|
+ json.Unmarshal([]byte(o_rulesStr), &o_rules)
|
|
|
+ data["o_list"] = o_rules
|
|
|
+ var rep = true
|
|
|
+ if _id == "" {
|
|
|
+ data["i_createtime"] = createTime
|
|
|
+ data["i_updatetime"] = createTime
|
|
|
+ data["b_delete"] = false
|
|
|
+ _id = Mgo.Save("eusertagrule", data)
|
|
|
+ } else {
|
|
|
+ query := bson.M{
|
|
|
+ "user_id": userid,
|
|
|
+ }
|
|
|
+ rep = Mgo.Update("historylog", query, bson.M{"$set": data}, false, false)
|
|
|
+ }
|
|
|
+
|
|
|
+ c.ServeJson(map[string]interface{}{
|
|
|
+ "id": cid,
|
|
|
+ "rep": rep,
|
|
|
+ })
|
|
|
+}
|