|
@@ -46,16 +46,18 @@ type Customer struct {
|
|
|
cuserRuleSetup xweb.Mapper `xweb:"/service/cuser/rule/setup"`
|
|
|
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"` //保存历史规则
|
|
|
- historyRuleCreate xweb.Mapper `xweb:"/service/cuser/rule/history/edit"`
|
|
|
+ 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"` //私有标签关联规则
|
|
|
+ historyTagAssociated xweb.Mapper `xweb:"/service/euser/historytag/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"`
|
|
|
+ historyCuserRuleList xweb.Mapper `xweb:"/service/tag/history/ruleList"` //私有标签关联历史规则
|
|
|
}
|
|
|
|
|
|
func (c *Customer) CustomerList() {
|
|
@@ -852,7 +854,6 @@ func (c *Customer) TagAssociated() {
|
|
|
|
|
|
func (c *Customer) CustomerHistory() {
|
|
|
defer qu.Catch()
|
|
|
- log.Println("&&&")
|
|
|
id := c.GetString("id")
|
|
|
query := bson.M{}
|
|
|
query["_id"] = qu.StringTOBsonId(id)
|
|
@@ -876,22 +877,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 +918,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,72 +932,125 @@ func (c *Customer) CustomerAllRule() {
|
|
|
|
|
|
//保存历史规则
|
|
|
func (c *Customer) SaveHistoryRule() {
|
|
|
- rules_id:=c.GetSlice("rulesid")
|
|
|
+ rules_id := c.GetString("rulesid")
|
|
|
userid := c.GetString("userid")
|
|
|
- var tag_rules []map[string]interface{}
|
|
|
+ log.Println("userid",userid)
|
|
|
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)
|
|
|
+ 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
|
|
|
}
|
|
|
- }
|
|
|
- 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"]
|
|
|
- }
|
|
|
- }
|
|
|
- //获取用户规则
|
|
|
- if len(rules_id)>0{
|
|
|
- dep_rules := []interface{}{}
|
|
|
- for _,rule := range rules_id{
|
|
|
- dep_rule := make(map[string]interface{})
|
|
|
- query := bson.M{
|
|
|
- "_id": bson.ObjectIdHex(rule),
|
|
|
- "b_delete": false,
|
|
|
+ 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,
|
|
|
+ })
|
|
|
+ //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(),
|
|
|
+ },
|
|
|
}
|
|
|
- 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,
|
|
|
+ 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"].(bson.ObjectId).Hex()
|
|
|
- dep_rule["is_new"] = true
|
|
|
- dep_rule["s_departid"] = (*res)["s_departid"]
|
|
|
- dep_rule["s_name"] = (*res)["s_tagname"]
|
|
|
- dep_rule["o_rules"] = (*res)["o_rules"]
|
|
|
- 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)
|
|
|
}
|
|
|
}
|
|
|
- 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!=""{
|
|
|
- c.ServeJson(map[string]interface{}{
|
|
|
- "status":"success",
|
|
|
- })
|
|
|
- }else{
|
|
|
- c.ServeJson(map[string]interface{}{
|
|
|
- "status":"fail",
|
|
|
- })
|
|
|
- }
|
|
|
+ } else {
|
|
|
+ if userid != "" {
|
|
|
+ //获取私有标签
|
|
|
+ usertags := getTserTag(userid)
|
|
|
+ user_rules["tag_rules"] = usertags
|
|
|
+ userinfo, _ := Mgo.FindOne("euer", map[string]interface{}{
|
|
|
+ "s_userid": userid,
|
|
|
+ })
|
|
|
+ if userinfo != nil && len(*userinfo) != 0 {
|
|
|
+ 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,
|
|
|
+ }
|
|
|
+ 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,
|
|
|
+ })
|
|
|
+ //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)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ 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() {
|
|
@@ -1082,3 +1136,47 @@ func (c *Customer) HistoryRuleCreate() {
|
|
|
c.Render("private/cuser_rule_history_edit.html", &c.T)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+//私有标签关联数据
|
|
|
+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,",")
|
|
|
+
|
|
|
+ if userid!=""{
|
|
|
+ user_info,_ :=Mgo.FindOne("historylog",map[string]interface{}{
|
|
|
+ "user_id":userid,
|
|
|
+ })
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ }
|
|
|
+ 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{
|
|
|
+ c.ServeJson(map[string]interface{}{
|
|
|
+ "rep": is_updata,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+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
|
|
|
+}
|