xuzhiheng 5 år sedan
förälder
incheckning
e931ecf123
2 ändrade filer med 71 tillägg och 45 borttagningar
  1. 69 43
      src/service/customer_service.go
  2. 2 2
      src/web/templates/private/cuser_rule_history_edit.html

+ 69 - 43
src/service/customer_service.go

@@ -876,22 +876,22 @@ func (c *Customer) CustomerAllRule() {
 		"b_delete": false,
 	}
 	inc_query := bson.M{
-		"s_appid":customerId,
+		"s_appid": 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
+	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
 				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_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_rules = append(inc_rules,inc_rule)
+				inc_rules = append(inc_rules, inc_rule)
 			}
 		}
 	}
@@ -917,9 +917,9 @@ func (c *Customer) CustomerAllRule() {
 			res = append(res, history_rule_data)
 		}
 		c.ServeJson(map[string]interface{}{
-			"status": "success",
-			"data":   res,
-			"inc_rules":inc_rules,
+			"status":    "success",
+			"data":      res,
+			"inc_rules": inc_rules,
 		})
 	} else {
 		c.ServeJson(map[string]interface{}{
@@ -931,45 +931,45 @@ func (c *Customer) CustomerAllRule() {
 
 //保存历史规则
 func (c *Customer) SaveHistoryRule() {
-	rules_id:=c.GetSlice("rulesid")
+	rules_id := c.GetSlice("rulesid")
 	userid := c.GetString("userid")
 	var tag_rules []map[string]interface{}
 	user_rules := make(map[string]interface{})
 	//获取私有标签
-	if userid !=""{
-		usertags,_:=Mgo.Find("eusertagrule",map[string]interface{}{"s_userid":userid,"b_delete":false},`{"i_createtime":-1}`,`{"o_list":1}`,false,0,0)
-		if usertags!=nil&&len(*usertags)!=0{
-			log.Println("usertags",*usertags)
-			for _,tag_rule:=range *usertags{
-				log.Println("tag_rule",tag_rule)
-				delete(tag_rule,"_id")
-				tag_rules = append(tag_rules,tag_rule)
+	if userid != "" {
+		usertags, _ := Mgo.Find("eusertagrule", map[string]interface{}{"s_userid": userid, "b_delete": false}, `{"i_createtime":-1}`, `{"o_list":1}`, false, 0, 0)
+		if usertags != nil && len(*usertags) != 0 {
+			log.Println("usertags", *usertags)
+			for _, tag_rule := range *usertags {
+				log.Println("tag_rule", tag_rule)
+				delete(tag_rule, "_id")
+				tag_rules = append(tag_rules, tag_rule)
 			}
 		}
-		userinfo,_ := Mgo.FindOne("euer",map[string]interface{}{
-			"s_userid":userid,
+		userinfo, _ := Mgo.FindOne("euer", map[string]interface{}{
+			"s_userid": userid,
 		})
-		if userinfo !=nil&&len(*userinfo)!=0{
-			log.Println("s_name",user_rules["s_name"])
+		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"]
 		}
 	}
 	//获取用户规则
-	if len(rules_id)>0{
+	if len(rules_id) > 0 {
 		dep_rules := []interface{}{}
-		for _,rule := range rules_id{
+		for _, rule := range rules_id {
 			dep_rule := make(map[string]interface{})
 			query := bson.M{
-				"_id":   bson.ObjectIdHex(rule),
-				"b_delete":   false,
+				"_id":      bson.ObjectIdHex(rule),
+				"b_delete": false,
 			}
-			res,_:=Mgo.FindOne("cuserdepartrule",query)
-			if res !=nil&&len(*res)!=0{
+			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,
+				department_info, _ := Mgo.FindOne("cuserdepart", map[string]interface{}{
+					"_id":      bson.ObjectIdHex((*res)["s_departid"].(string)),
+					"b_delete": false,
 				})
 				dep_rule["id"] = (*res)["_id"].(bson.ObjectId).Hex()
 				dep_rule["is_new"] = true
@@ -979,21 +979,21 @@ func (c *Customer) SaveHistoryRule() {
 				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"]
-				dep_rules = append(dep_rules,dep_rule)
+				dep_rules = append(dep_rules, dep_rule)
 			}
 		}
 		user_rules["dep_rules"] = dep_rules
 		user_rules["tag_rules"] = tag_rules
 		user_rules["createtime"] = time.Now().Unix()
 	}
-	issave :=Mgo.Save("historylog",user_rules)
-	if issave!=""{
+	issave := Mgo.Save("historylog", user_rules)
+	if issave != "" {
 		c.ServeJson(map[string]interface{}{
-			"status":"success",
+			"status": "success",
 		})
-	}else{
+	} else {
 		c.ServeJson(map[string]interface{}{
-			"status":"fail",
+			"status": "fail",
 		})
 	}
 
@@ -1045,9 +1045,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
 			}
@@ -1055,7 +1055,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{}{
@@ -1069,6 +1072,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
@@ -1082,3 +1086,25 @@ func (c *Customer) HistoryRuleCreate() {
 		c.Render("private/cuser_rule_history_edit.html", &c.T)
 	}
 }
+
+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
+	}
+
+}

+ 2 - 2
src/web/templates/private/cuser_rule_history_edit.html

@@ -22,13 +22,13 @@
                 <button class="btn btn-danger btn-sm" onclick="archive()"><i class="fa fa-fw fa-save fa-lg"></i>存档</button>
             </small>
         </h1>
-        <ol class="breadcrumb">
+        <!-- <ol class="breadcrumb">
             <li><a href="#"><i class="fa fa-dashboard"></i> 首页</a></li>
             <li><a href="/service/customer/list"> 客户列表</a></li>
             <li><a href="/service/customer/edit?id={{.T.cid}}"> 编辑客户</a></li>
             <li><a href="/service/cuser/rule/list?ids={{.T.ids}}"> 客户规则</a></li>
             <li><a href="#"> 新增客户规则</a></li>
-        </ol>
+        </ol> -->
     </section>
     <!-- Main content -->
     <section class="content">