xuzhiheng 5 anni fa
parent
commit
c1e79b8381

+ 14 - 3
src/history/historytask.go

@@ -42,9 +42,20 @@ func (this *HistoryData) HistoryTask(history_id string) {
 				cus.IsSearchEnps = true
 			}
 		}
-
-		cus.GetTagRules(c["tag_rules"].([]map[string]interface{}))               //获取客户打标签规则
-		cus.GetDepartments("history", c["dep_rules"].([]map[string]interface{})) //获取客户信息
+		tag_rule, ok := c["tag_rules"].([]interface{})
+		if !ok {
+			tag_rule = []interface{}{}
+		}
+		dep_rule, ok := c["dep_rules"].([]interface{})
+		if !ok {
+			dep_rule = []interface{}{}
+		}
+		tag_rules := qu.ObjArrToMapArr(tag_rule)
+		dep_rules := qu.ObjArrToMapArr(dep_rule)
+		log.Println(tag_rules)
+		log.Println(dep_rules)
+		cus.GetTagRules(tag_rules)               //获取客户打标签规则
+		cus.GetDepartments("history", dep_rules) //获取客户信息
 		//PrintLog(cus)        //打印查看初始化的信息
 		qu.Debug("customer:", cus.ID, cus.Name, cus.PushModel, cus.AppId, cus.IsTagRule, cus.IsSearchHosp, cus.IsSearchEnps, len(cus.TagRules), len(cus.Departments))
 		cus.GetData("history") //获取数据

+ 1 - 0
src/history/task.go

@@ -99,6 +99,7 @@ func (c *Customer) GetData(stype string) {
 			ch := make(chan bool, 10)
 			wg := &sync.WaitGroup{}
 			escount := Es.Count(Index, Itype, sr.EsQuery)
+			log.Println("index", Index, "type", Itype)
 			log.Println("查询总数:", escount, "规则ID:", sr.ID, "EsQuery:", sr.EsQuery)
 			if escount == 0 {
 				continue

+ 166 - 81
src/service/customer_service.go

@@ -3,9 +3,6 @@ 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"
@@ -13,47 +10,52 @@ import (
 	"strings"
 	"time"
 	. "util"
+
+	"github.com/go-xweb/xweb"
+	"github.com/lauyoume/gopinyin"
+	"gopkg.in/mgo.v2/bson"
 )
 
 type Customer struct {
 	*xweb.Action
-	customerList   	xweb.Mapper `xweb:"/service/customer/list"`
-	customerCreate 	xweb.Mapper `xweb:"/service/customer/create"`
-	customerEdit   	xweb.Mapper `xweb:"/service/customer/edit"`
+	customerList    xweb.Mapper `xweb:"/service/customer/list"`
+	customerCreate  xweb.Mapper `xweb:"/service/customer/create"`
+	customerEdit    xweb.Mapper `xweb:"/service/customer/edit"`
 	customerEuser   xweb.Mapper `xweb:"/service/customer/euser"`
-	customerSave   	xweb.Mapper `xweb:"/service/customer/save"`
-	customerDel    	xweb.Mapper `xweb:"/service/customer/del"`
-	customerHistory	xweb.Mapper `xweb:"/service/customer/history"`
-	setupDepart    	xweb.Mapper `xweb:"/service/customer/setup"`
+	customerSave    xweb.Mapper `xweb:"/service/customer/save"`
+	customerDel     xweb.Mapper `xweb:"/service/customer/del"`
+	customerHistory xweb.Mapper `xweb:"/service/customer/history"`
+	setupDepart     xweb.Mapper `xweb:"/service/customer/setup"`
 
-	departDel 		xweb.Mapper `xweb:"/service/depart/del"`
-	departEdit		xweb.Mapper `xweb:"/service/depart/edit"`
+	departDel  xweb.Mapper `xweb:"/service/depart/del"`
+	departEdit xweb.Mapper `xweb:"/service/depart/edit"`
 
 	//转企
-	cuserToEuser 	xweb.Mapper `xweb:"/service/cuser/converted"`
+	cuserToEuser xweb.Mapper `xweb:"/service/cuser/converted"`
 	//同步
-	synEuser	 	xweb.Mapper `xweb:"/service/euser/synchronous"`
+	synEuser xweb.Mapper `xweb:"/service/euser/synchronous"`
 	//企业客户
-	entEuserList 	xweb.Mapper `xweb:"/service/entCustomer/list"`
-
-	cuserRule       xweb.Mapper `xweb:"/service/cuser/rule/list"`  	 	//规则列表	部门
-	euserRule   	xweb.Mapper `xweb:"/service/euser/rule/list"`
-	cuserRuleCreate xweb.Mapper `xweb:"/service/cuser/rule/create"` 		//新建规则
-	cuserRuleEdit 	xweb.Mapper `xweb:"/service/cuser/rule/Edit"`
-	euserRule1		xweb.Mapper `xweb:"/service/euser/rule"`
-	cuserRuleDel 	xweb.Mapper `xweb:"/service/cuser/rule/Del"`
+	entEuserList xweb.Mapper `xweb:"/service/entCustomer/list"`
+
+	cuserRule       xweb.Mapper `xweb:"/service/cuser/rule/list"` //规则列表	部门
+	euserRule       xweb.Mapper `xweb:"/service/euser/rule/list"`
+	cuserRuleCreate xweb.Mapper `xweb:"/service/cuser/rule/create"` //新建规则
+	cuserRuleEdit   xweb.Mapper `xweb:"/service/cuser/rule/Edit"`
+	euserRule1      xweb.Mapper `xweb:"/service/euser/rule"`
+	cuserRuleDel    xweb.Mapper `xweb:"/service/cuser/rule/Del"`
 	cuserRuleSetup  xweb.Mapper `xweb:"/service/cuser/rule/setup"`
-	productData      xweb.Mapper `xweb:"/service/cuser/produce"`          //生成预览数据
+	productData     xweb.Mapper `xweb:"/service/cuser/produce"` //生成预览数据
 	//企业标签
-	euserTagEdit	xweb.Mapper `xweb:"/service/euser/tag/edit"`
-	euserTag		xweb.Mapper `xweb:"/service/euser/tag"`
-	euserImport		xweb.Mapper `xweb:"/service/esuer/tag/import"`
-	tagSetup		xweb.Mapper `xweb:"/service/euser/tag/setup"`
-	tagDel			xweb.Mapper `xweb:"/service/euser/tag/del"`
-	cuserRuleList	xweb.Mapper `xweb:"/service/tag/ruleList"`			//规则列表	客户
-	tagAssociated	xweb.Mapper `xweb:"/service/euser/tag/associated"`   //私有标签关联规则
-	customerAllRule	xweb.Mapper `xweb:"/service/customer/history/allrule"`   //用户历史规则
-	saveHistoryRule	xweb.Mapper `xweb:"/service/customer/history/saverule"`   //保存历史规则
+	euserTagEdit      xweb.Mapper `xweb:"/service/euser/tag/edit"`
+	euserTag          xweb.Mapper `xweb:"/service/euser/tag"`
+	euserImport       xweb.Mapper `xweb:"/service/esuer/tag/import"`
+	tagSetup          xweb.Mapper `xweb:"/service/euser/tag/setup"`
+	tagDel            xweb.Mapper `xweb:"/service/euser/tag/del"`
+	cuserRuleList     xweb.Mapper `xweb:"/service/tag/ruleList"`              //规则列表	客户
+	tagAssociated     xweb.Mapper `xweb:"/service/euser/tag/associated"`      //私有标签关联规则
+	customerAllRule   xweb.Mapper `xweb:"/service/customer/history/allrule"`  //用户历史规则
+	saveHistoryRule   xweb.Mapper `xweb:"/service/customer/history/saverule"` //保存历史规则
+	historyRuleCreate xweb.Mapper `xweb:"/service/cuser/rule/history/edit"`
 }
 
 func (c *Customer) CustomerList() {
@@ -103,7 +105,7 @@ func (c *Customer) CustomerEdit() {
 	data, _ := Mgo.FindOneByField("cuser", query, `{}`)
 	depart, _ := Mgo.Find("cuserdepart", bson.M{"s_userid": id, "b_delete": false}, nil, nil, false, -1, -1)
 	(*data)["_id"] = qu.BsonIdToSId((*data)["_id"])
-	if (*data)["i_state"]  == 1 {
+	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
 	}
@@ -120,7 +122,7 @@ func (c *Customer) CustomerEuser() {
 	data, _ := Mgo.FindOneByField("euser", query, `{}`)
 	depart, _ := Mgo.Find("euserdepart", bson.M{"s_userid": id, "b_delete": false}, nil, nil, false, -1, -1)
 	(*data)["_id"] = qu.BsonIdToSId((*data)["_id"])
-	if (*data)["i_state"]  == 1 {
+	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
 	}
@@ -202,7 +204,7 @@ func (c *Customer) DepartEdit() {
 		if _id == "" {
 			b = false
 		}
-	}else {
+	} else {
 		set := bson.M{
 			"$set": data,
 		}
@@ -224,7 +226,7 @@ func (c *Customer) SetupDepart() {
 		set := bson.M{
 			"$set": bson.M{
 				"i_updatetime": nowtime,
-				"i_isuse": i_isuse,
+				"i_isuse":      i_isuse,
 			},
 		}
 		b := Mgo.UpdateById("cuserdepart", _id, set)
@@ -234,7 +236,7 @@ func (c *Customer) SetupDepart() {
 			ruleMap, _ := Mgo.Find("cuserdepartrule", bson.M{"s_userid": _id}, nil, nil, false, -1, -1)
 			for _, v := range *ruleMap {
 				idAndSet := []map[string]interface{}{}
-				idAndSet = append(idAndSet, bson.M{"_id": v["_id"]})    //查询条件
+				idAndSet = append(idAndSet, bson.M{"_id": v["_id"]})                             //查询条件
 				idAndSet = append(idAndSet, bson.M{"i_isuse": i_isuse, "i_updatetime": nowtime}) //修改的数据
 				update = append(update, idAndSet)
 			}
@@ -284,7 +286,7 @@ func (c *Customer) CuserToEuser() {
 		"$set": bson.M{
 			"i_toservicetime": nowTime,
 			"i_lastsynctime":  nowTime,
-			"s_appid": appid,
+			"s_appid":         appid,
 			"i_state":         1,
 		},
 	}
@@ -313,7 +315,7 @@ func (c *Customer) CuserToEuser() {
 	})
 }
 
-func GetCustomerAppId(customer string ) string {
+func GetCustomerAppId(customer string) string {
 	defer qu.Catch()
 	user, _ := MgoCus.FindOne("user", map[string]interface{}{"username": customer})
 	appid := ""
@@ -353,16 +355,17 @@ func GetCustomerAppId(customer string ) string {
 	//}
 	return appid
 }
+
 //同步
 func (c *Customer) SynEuser() {
 	defer qu.Catch()
 	_id := c.GetString("_id")
 	cuser, _ := Mgo.FindById("cuser", _id, nil)
 	nowTime := time.Now().Unix()
-	(*cuser)["i_lastsynctime"] = nowTime  //同步时间
+	(*cuser)["i_lastsynctime"] = nowTime //同步时间
 	set := bson.M{
 		"$set": bson.M{
-			"i_lastsynctime":  nowTime,
+			"i_lastsynctime": nowTime,
 		},
 	}
 	b := Mgo.Update("cuser", bson.M{"_id": qu.StringTOBsonId(_id)}, set, false, false)
@@ -384,8 +387,8 @@ func (c *Customer) SynEuser() {
 	update := [][]map[string]interface{}{}
 	for _, v := range *departMap {
 		idAndSet := []map[string]interface{}{}
-		idAndSet = append(idAndSet, bson.M{"_id": v["_id"]})    //查询条件
-		idAndSet = append(idAndSet, v) //修改的数据
+		idAndSet = append(idAndSet, bson.M{"_id": v["_id"]}) //查询条件
+		idAndSet = append(idAndSet, v)                       //修改的数据
 		update = append(update, idAndSet)
 	}
 	Mgo.UpSertBulk("euserdepart", update...)
@@ -394,8 +397,8 @@ func (c *Customer) SynEuser() {
 	update2 := [][]map[string]interface{}{}
 	for _, v := range *ruleMap {
 		idAndSet := []map[string]interface{}{}
-		idAndSet = append(idAndSet, bson.M{"_id": v["_id"]})    //查询条件
-		idAndSet = append(idAndSet, v) //修改的数据
+		idAndSet = append(idAndSet, bson.M{"_id": v["_id"]}) //查询条件
+		idAndSet = append(idAndSet, v)                       //修改的数据
 		update2 = append(update2, idAndSet)
 	}
 	b = Mgo.UpSertBulk("euserdepartrule", update2...)
@@ -541,7 +544,7 @@ func (c *Customer) CuserRuleCreate() {
 			} else {
 				rep = false
 			}
-		}else {
+		} else {
 			query := bson.M{
 				"_id": qu.StringTOBsonId(id),
 			}
@@ -579,7 +582,7 @@ func (c *Customer) CuserRuleEdit() {
 	data, _ := Mgo.FindOneByField("cuserdepartrule", query, `{}`)
 	(*data)["id"] = qu.BsonIdToSId((*data)["_id"])
 	c.T["cid"] = (*data)["s_userid"]
-	c.T["ids"] = qu.ObjToString((*data)["s_departid"]) + "," +  qu.ObjToString((*data)["s_userid"])
+	c.T["ids"] = qu.ObjToString((*data)["s_departid"]) + "," + qu.ObjToString((*data)["s_userid"])
 	c.T["data"] = *data
 	c.T["province"] = Province
 	c.T["city"] = ProvinceCitys
@@ -601,7 +604,7 @@ func (c *Customer) EuserRule1() {
 	data, _ := Mgo.FindOneByField("euserdepartrule", query, `{}`)
 	(*data)["id"] = qu.BsonIdToSId((*data)["_id"])
 	c.T["cid"] = (*data)["s_userid"]
-	c.T["ids"] = qu.ObjToString((*data)["s_departid"]) + "," +  qu.ObjToString((*data)["s_userid"])
+	c.T["ids"] = qu.ObjToString((*data)["s_departid"]) + "," + qu.ObjToString((*data)["s_userid"])
 	c.T["data"] = *data
 	c.T["province"] = Province
 	c.T["city"] = ProvinceCitys
@@ -630,7 +633,7 @@ func (c *Customer) CuserRuleDel() {
 	})
 }
 
-func (c *Customer) CuserRuleSetup()  {
+func (c *Customer) CuserRuleSetup() {
 	defer qu.Catch()
 	if c.Method() == "POST" {
 		_id := c.GetString("_id")
@@ -667,7 +670,7 @@ func (c *Customer) ProductData() {
 func (c *Customer) EuserTagEdit() {
 	defer qu.Catch()
 	if c.Method() == "POST" {
-		_id := c.GetString("_id");
+		_id := c.GetString("_id")
 		data := GetPostForm(c.Request)
 		cid := qu.ObjToString(data["s_userid"])
 		createTime := time.Now().Unix()
@@ -681,7 +684,7 @@ func (c *Customer) EuserTagEdit() {
 			data["i_updatetime"] = createTime
 			data["b_delete"] = false
 			_id = Mgo.Save("eusertagrule", data)
-		}else {
+		} else {
 			query := bson.M{
 				"_id": qu.StringTOBsonId(_id),
 			}
@@ -689,8 +692,8 @@ func (c *Customer) EuserTagEdit() {
 		}
 
 		c.ServeJson(map[string]interface{}{
-			"id":        cid,
-			"rep":       rep,
+			"id":  cid,
+			"rep": rep,
 		})
 	} else {
 		if c.GetString("id") != "" {
@@ -707,7 +710,7 @@ func (c *Customer) EuserTagEdit() {
 func (c *Customer) EuserTag() {
 	defer qu.Catch()
 	if c.Method() == "POST" {
-		_id := c.GetString("_id");
+		_id := c.GetString("_id")
 		data := GetPostForm(c.Request)
 		cid := qu.ObjToString(data["s_userid"])
 		createTime := time.Now().Unix()
@@ -721,7 +724,7 @@ func (c *Customer) EuserTag() {
 			data["i_updatetime"] = createTime
 			data["b_delete"] = false
 			_id = Mgo.Save("eusertagrule", data)
-		}else {
+		} else {
 			query := bson.M{
 				"_id": qu.StringTOBsonId(_id),
 			}
@@ -729,8 +732,8 @@ func (c *Customer) EuserTag() {
 		}
 
 		c.ServeJson(map[string]interface{}{
-			"id":        cid,
-			"rep":       rep,
+			"id":  cid,
+			"rep": rep,
 		})
 	} else {
 		if c.GetString("id") != "" {
@@ -808,9 +811,9 @@ func (c *Customer) CuserRuleList() {
 		searchStr := c.GetString("search[value]")
 		search := strings.TrimSpace(searchStr)
 		query := bson.M{
-			"s_userid":   eid,
-			"i_isuse": 1,
-			"b_delete":   false,
+			"s_userid": eid,
+			"i_isuse":  1,
+			"b_delete": false,
 		}
 		if search != "" {
 			query["$or"] = []interface{}{
@@ -847,8 +850,7 @@ func (c *Customer) TagAssociated() {
 	})
 }
 
-
-func (c *Customer)CustomerHistory(){
+func (c *Customer) CustomerHistory() {
 	defer qu.Catch()
 	log.Println("&&&")
 	id := c.GetString("id")
@@ -857,7 +859,7 @@ func (c *Customer)CustomerHistory(){
 	data, _ := Mgo.FindOneByField("cuser", query, `{}`)
 	depart, _ := Mgo.Find("cuserdepart", bson.M{"s_userid": id, "b_delete": false}, nil, nil, false, -1, -1)
 	(*data)["_id"] = qu.BsonIdToSId((*data)["_id"])
-	if (*data)["i_state"]  == 1 {
+	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
 	}
@@ -867,45 +869,128 @@ func (c *Customer)CustomerHistory(){
 }
 
 //选择历史规则
-func (c *Customer)CustomerAllRule(){
+func (c *Customer) CustomerAllRule() {
 	customerId := c.GetString("c_id")
 	query := bson.M{
-		"s_userid":   customerId,
-		"b_delete":   false,
+		"s_userid": customerId,
+		"b_delete": false,
 	}
-	data,_ := Mgo.Find("cuserdepart",query, `{"i_createtime":-1}`, nil, false, 0, 0)
-	if data!=nil&&len(*data)!=0{
+	data, _ := Mgo.Find("cuserdepart", query, `{"i_createtime":-1}`, nil, false, 0, 0)
+	if data != nil && len(*data) != 0 {
 		res := []map[string]interface{}{}
-		for _,m := range *data{
+		for _, m := range *data {
 			history_rule_data := make(map[string]interface{})
 			q := bson.M{
-				"s_departid":   m["_id"].(bson.ObjectId).Hex(),
+				"s_departid": m["_id"].(bson.ObjectId).Hex(),
 				"b_delete":   false,
 			}
 			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)
-			if depart_rule_data!=nil&&len(*depart_rule_data)!=0{
-				for _,j:= range *depart_rule_data{
+			depart_rule_data, _ := Mgo.Find("cuserdepartrule", 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()
 				}
 				history_rule_data["department_rule"] = depart_rule_data
 			}
-			res = append(res,history_rule_data)
+			res = append(res, history_rule_data)
 		}
 		c.ServeJson(map[string]interface{}{
-			"status":"success",
-			"data":res,
+			"status": "success",
+			"data":   res,
 		})
-	}else{
+	} else {
 		c.ServeJson(map[string]interface{}{
-			"status":"fail",
-			"data":"",
+			"status": "fail",
+			"data":   "",
 		})
 	}
 }
 
 //保存历史规则
-func (c *Customer)SaveHistoryRule(){
+func (c *Customer) SaveHistoryRule() {
 
-}
+}
+
+func (c *Customer) HistoryRuleCreate() {
+	defer qu.Catch()
+	if c.Method() == "POST" {
+		user := c.GetSession("user").(map[string]interface{})
+		data := GetPostForm(c.Request)
+		o_rules := []map[string]interface{}{}
+		o_rulesStr := data["o_rules"].(string)
+		json.Unmarshal([]byte(o_rulesStr), &o_rules)
+		data["o_rules"] = o_rules
+		id := qu.ObjToString(data["id"])
+		user_id := data["ids"]
+		delete(data, "id")
+		delete(data, "ids")
+		if qu.IntAll(data["i_esquerytype"]) == 1 { //自动生成es
+			data["s_esquery"] = Utiltags(data)
+		}
+		i_createtime := time.Now().Unix()
+		data["i_updatetime"] = i_createtime
+		data["s_updateuser"] = user["name"]
+		var rep = false
+		s_id := ""
+		if id == "" { //新建
+			dData, ok := Mgo.FindOne("euserdepart", bson.M{"s_userid": user_id, "s_name": data["departmentName"]})
+			if dData == nil || *dData == nil || !ok {
+				d_data := map[string]interface{}{
+					"i_isuse":      1,
+					"s_userid":     user_id,
+					"s_name":       data["departmentName"],
+					"i_createtime": time.Now().Unix(),
+					"i_updatetime": time.Now().Unix(),
+					"b_delete":     false,
+					"i_type":       "historyData",
+				}
+				s_id = Mgo.Save("euserdepart", d_data)
+			} else {
+				s_id = qu.BsonIdToSId((*dData)["_id"])
+			}
+			data["s_userid"] = user_id
+			data["s_departid"] = s_id
+			data["i_createtime"] = i_createtime
+			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["s_dataid"] = qu.SE.EncodeString(fmt.Sprintf("%v", i_createtime) + s_tagnamekey + s_id)
+			id = Mgo.Save("cuserdepartrule", data)
+			if id != "" {
+				rep = true
+			} else {
+				rep = false
+			}
+		} else {
+			query := bson.M{
+				"_id": qu.StringTOBsonId(id),
+			}
+			rep = Mgo.Update("cuserdepartrule", query, bson.M{"$set": data}, false, false)
+		}
+
+		c.ServeJson(map[string]interface{}{
+			"id":        id,
+			"rep":       rep,
+			"s_esquery": data["s_esquery"],
+			"s_dataid":  data["s_dataid"],
+		})
+	} else {
+		id := c.GetString("id")
+		c.T["did"] = id //部门id
+		c.T["cid"] = id //客户id
+		c.T["ids"] = id
+		c.T["province"] = Province
+		c.T["city"] = ProvinceCitys
+		c.T["district"] = CityDistricts
+		c.T["topTypeArr"] = TopTypeArr
+		c.T["subTypeArr"] = SubTypeArr
+		c.T["matchTypeMap"] = MatchTypeMap
+		c.T["matchTypeMap2"] = MatchTypeMap2
+		c.T["existField"] = ExistFiled
+		c.T["buyerClass"] = BuyerClass
+		c.T["scopeClass"] = ScopeClassMap
+		c.Render("private/cuser_rule_history_edit.html", &c.T)
+	}
+}

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

@@ -1108,7 +1108,7 @@
         dataMap["departmentName"] = $("#departmentName").val();
         console.log(dataMap)
         $.ajax({
-            url: "/service/cuser/rule/history/Edit",
+            url: "/service/cuser/rule/history/edit",
              type: 'POST',
              data: dataMap,
              success: function (r) {