فهرست منبع

603需求更新

WH01243 11 ماه پیش
والد
کامیت
e0fdf14f72
3فایلهای تغییر یافته به همراه58 افزوده شده و 18 حذف شده
  1. 6 5
      clueSync/autoTask.go
  2. 49 12
      clueSync/job.go
  3. 3 1
      clueSync/jobutil.go

+ 6 - 5
clueSync/autoTask.go

@@ -301,16 +301,17 @@ func autoExitSea() {
 			}
 		}
 	}
-	datas := TiDb.Find("dwd_f_crm_clue_info", map[string]interface{}{"trailstatus": "00", "is_assign": 1}, "", "", -1, -1)
+	datas := TiDb.SelectBySql("select  * from  dwd_f_crm_clue_info where   (trailstatus='09' or   trailstatus='00') and   is_assign=1")
 	if datas != nil && len(*datas) > 0 {
 		for _, v := range *datas {
+			trailstatus := gconv.String(v["trailstatus"])
 			clueId := common.Int64All(v["id"])
 			positionId := common.Int64All(v["position_id"])
 			seatNumber := common.ObjToString(v["seatNumber"])
 			nowTime := time.Now().Format(date.Date_Full_Layout)
 			// is_assign := common.IntAll(v["is_assign"])
 			if TiDb.ExecTx("自动退海", func(tx *sql.Tx) bool {
-				recordId := TiDb.UpdateOrDeleteBySqlByTx(tx, `UPDATE dwd_f_crm_clue_info SET is_assign=0,position_id=null,seatNumber=null,updatetime = ?,comeintime_open = ?,comeinsource_open=8,level_open=4,next_trail_time=null,is_task=null,tasktime=null,taskstatus=null,comeinsource_private=null,tasksource=null WHERE id = ?`, nowTime, nowTime, clueId) //,content=null,start_trail_time=null
+				recordId := TiDb.UpdateOrDeleteBySqlByTx(tx, `UPDATE dwd_f_crm_clue_info SET is_assign=0,position_id=null,seatNumber=null,updatetime = ?,comeintime_open = ?,comeinsource_open=?,level_open=4,next_trail_time=null,is_task=null,tasktime=null,taskstatus=null,comeinsource_private=null,tasksource=null WHERE id = ?`, nowTime, nowTime, common.If(trailstatus == "00", 8, 11), clueId) //,content=null,start_trail_time=null
 				recordId1 := TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
 					"clue_id":      clueId,
 					"position_id":  positionId,
@@ -327,7 +328,7 @@ func autoExitSea() {
 					"position_id":  positionId,
 					"change_field": "trailstatus",
 					"change_type":  "基本信息变更",
-					"old_value":    "无意向客户",
+					"old_value":    common.If(trailstatus == "00", "无意向客户", "拒绝客户"),
 					"new_value":    "流失",
 					"createtime":   nowTime,
 					"BCPCID":       common.GetRandom(32),
@@ -337,7 +338,7 @@ func autoExitSea() {
 					"clue_id":     clueId,
 					"position_id": positionId,
 					"change_type": "退出任务车",
-					"new_value":   "无意向客户自动退回公海",
+					"new_value":   common.If(trailstatus == "00", "无意向客户自动退回公海", "拒绝客户自动退回公海"),
 					"createtime":  nowTime,
 					"BCPCID":      common.GetRandom(32),
 					"operator_id": -1,
@@ -346,7 +347,7 @@ func autoExitSea() {
 					"clue_id":     clueId,
 					"position_id": positionId,
 					"change_type": "退回公海",
-					"new_value":   "无意向客户自动退回公海",
+					"new_value":   common.If(trailstatus == "00", "无意向客户自动退回公海", "拒绝客户自动退回公海"),
 					"createtime":  nowTime,
 					"BCPCID":      common.GetRandom(32),
 					"operator_id": -1,

+ 49 - 12
clueSync/job.go

@@ -822,7 +822,7 @@ func WorkUpdateClue(data map[string]interface{}, saleData []map[string]interface
 		clueUpdateData["level_open"] = nil
 		clueUpdateData["clue_level"] = nil
 	}
-	if trailstatus != "08" && is_assign == 0 { //在公海的成交客户
+	if is_assign == 0 { //在公海的成交客户
 		if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
 		} else {
 			clueUpdateData["trailstatus"] = "01"
@@ -834,7 +834,7 @@ func WorkUpdateClue(data map[string]interface{}, saleData []map[string]interface
 		clueUpdateData["trailstatus_time"] = nowTime
 	}
 	is_ok := false
-	if (trailstatus != "08" && recordCount <= 0) || is_assign == 0 {
+	if recordCount <= 0 || is_assign == 0 {
 		if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
 		} else {
 			if item == "eventReg" {
@@ -968,7 +968,7 @@ func WorkUpdateClue(data map[string]interface{}, saleData []map[string]interface
 					})
 				}
 			}
-		} else if trailstatus != "08" && is_assign == 0 {
+		} else if is_assign == 0 {
 			if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
 			} else {
 				updateId1 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
@@ -1007,7 +1007,7 @@ func WorkUpdateClue(data map[string]interface{}, saleData []map[string]interface
 					"operator_id":  -1,
 				})
 			}
-		} else if trailstatus != "08" && is_assign == -1 {
+		} else if is_assign == -1 {
 			updateId1 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
 				"clue_id":      clueId,
 				"position_id":  positionId,
@@ -1043,7 +1043,7 @@ func WorkUpdateClue(data map[string]interface{}, saleData []map[string]interface
 				"operator_id":  -1,
 			})
 		}
-		if (trailstatus != "08" && recordCount <= 0) || is_assign == 0 {
+		if recordCount <= 0 || is_assign == 0 {
 			if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
 			} else {
 				if old_sub_cluetype != sub_cluetype && !is_ok {
@@ -1052,7 +1052,7 @@ func WorkUpdateClue(data map[string]interface{}, saleData []map[string]interface
 							"clue_id":     clueId,
 							"position_id": common.If(trailstatus == "00" || is_assign == 0 || is_assign == -1, positionId, common.If(is_assign == 1, positionId, common.Int64All(data["position_id"]))),
 							"change_type": "加入任务车",
-							"new_value":   "线索来源自动更新" + "-" + topname + "-" + subname,
+							"new_value":   gconv.String(common.If(gconv.Int64(data["position_id"]) == 0, "线索自动分配", "线索来源自动更新")) + "-" + topname + "-" + subname,
 							"createtime":  nowTime,
 							"BCPCID":      common.GetRandom(32),
 							"operator_id": -1,
@@ -1091,6 +1091,20 @@ func WorkUpdateClue(data map[string]interface{}, saleData []map[string]interface
 							})
 						}
 					}
+
+				}
+				if old_sub_cluetype == sub_cluetype && !is_ok {
+					if trailstatus == "00" || is_assign == 0 || is_assign == -1 {
+						updateId5 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
+							"clue_id":     clueId,
+							"position_id": positionId,
+							"change_type": "加入任务车",
+							"new_value":   gconv.String(common.If(gconv.Int64(data["position_id"]) == 0, "线索自动分配", "线索来源自动更新")) + "-" + topname + "-" + subname,
+							"createtime":  nowTime,
+							"BCPCID":      common.GetRandom(32),
+							"operator_id": -1,
+						})
+					}
 				}
 			}
 		}
@@ -1363,8 +1377,11 @@ func UpdateClue(data map[string]interface{}, saleData []map[string]interface{},
 			}
 		}
 	}
-	if trailstatus == "00" || old_position_id == 0 || is_assign != 1 || (pIsOk && old_cluename != cluename && cluename != "") {
+	if trailstatus == "00" || trailstatus == "09" || old_position_id == 0 || is_assign != 1 || (pIsOk && old_cluename != cluename && cluename != "") {
 		if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
+			//无意向几天以内不参与分配
+		} else if trailstatus == "09" && (topname != "付费产品落地页主动留资" || topname != "受理系统") {
+			//线索状态为“拒绝沟通客户”,则仅针对线索来源一级分类为“付费产品落地页主动留资”和“受理系统”产生的线索进行线索分配,其他类线上线索只做线索更新但不再自动分配。
 		} else {
 			clueUpdateData["seatNumber"] = seatNumber
 			clueUpdateData["position_id"] = positionId
@@ -1388,8 +1405,10 @@ func UpdateClue(data map[string]interface{}, saleData []map[string]interface{},
 		clueUpdateData["level_open"] = nil
 		clueUpdateData["clue_level"] = nil
 	}
-	if trailstatus != "08" && is_assign == 0 { //在公海的成交客户
+	if is_assign == 0 { //在公海的成交客户
 		if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
+		} else if trailstatus == "09" && (topname != "付费产品落地页主动留资" || topname != "受理系统") {
+			//线索状态为“拒绝沟通客户”,则仅针对线索来源一级分类为“付费产品落地页主动留资”和“受理系统”产生的线索进行线索分配,其他类线上线索只做线索更新但不再自动分配。
 		} else {
 			clueUpdateData["trailstatus"] = "01"
 			clueUpdateData["trailstatus_time"] = nowTime
@@ -1400,8 +1419,10 @@ func UpdateClue(data map[string]interface{}, saleData []map[string]interface{},
 		clueUpdateData["trailstatus_time"] = nowTime
 	}
 	is_ok := false
-	if (trailstatus != "08" && recordCount <= 0) || is_assign == 0 {
+	if recordCount <= 0 || is_assign == 0 {
 		if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
+		} else if trailstatus == "09" && (topname != "付费产品落地页主动留资" || topname != "受理系统") {
+			//线索状态为“拒绝沟通客户”,则仅针对线索来源一级分类为“付费产品落地页主动留资”和“受理系统”产生的线索进行线索分配,其他类线上线索只做线索更新但不再自动分配。
 		} else {
 			if item == "eventReg" {
 				eData := TiDb.Find("dwd_f_crm_clue_change_record", map[string]interface{}{"clue_id": clueId, "change_type": "加入任务车"}, "", "", -1, -1)
@@ -1451,6 +1472,7 @@ func UpdateClue(data map[string]interface{}, saleData []map[string]interface{},
 		//变更记录
 		if (trailstatus == "00" || old_position_id == 0 || (pIsOk && old_cluename != cluename && cluename != "")) && is_assign == 1 {
 			if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
+			} else if trailstatus == "09" && (topname != "付费产品落地页主动留资" || topname != "受理系统") {
 			} else if old_position_id == 0 {
 				updateId1 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
 					"clue_id":      clueId,
@@ -1534,8 +1556,9 @@ func UpdateClue(data map[string]interface{}, saleData []map[string]interface{},
 					})
 				}
 			}
-		} else if trailstatus != "08" && is_assign == 0 {
+		} else if is_assign == 0 {
 			if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
+			} else if trailstatus == "09" && (topname != "付费产品落地页主动留资" || topname != "受理系统") {
 			} else {
 				updateId1 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
 					"clue_id":      clueId,
@@ -1573,7 +1596,7 @@ func UpdateClue(data map[string]interface{}, saleData []map[string]interface{},
 					"operator_id":  -1,
 				})
 			}
-		} else if trailstatus != "08" && is_assign == -1 {
+		} else if is_assign == -1 {
 			updateId1 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
 				"clue_id":      clueId,
 				"position_id":  positionId,
@@ -1597,8 +1620,9 @@ func UpdateClue(data map[string]interface{}, saleData []map[string]interface{},
 				"operator_id":  -1,
 			})
 		}
-		if (trailstatus != "08" && recordCount <= 0) || is_assign == 0 {
+		if recordCount <= 0 || is_assign == 0 {
 			if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
+			} else if trailstatus == "09" && (topname != "付费产品落地页主动留资" || topname != "受理系统") {
 			} else {
 				if old_sub_cluetype != sub_cluetype && !is_ok {
 					if is_transfer != 1 {
@@ -1646,6 +1670,19 @@ func UpdateClue(data map[string]interface{}, saleData []map[string]interface{},
 						}
 					}
 				}
+				if old_sub_cluetype == sub_cluetype && !is_ok {
+					if trailstatus == "00" || trailstatus == "09" || is_assign == 0 || is_assign == -1 {
+						updateId5 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
+							"clue_id":     clueId,
+							"position_id": positionId,
+							"change_type": "加入任务车",
+							"new_value":   gconv.String(common.If(gconv.Int64(data["position_id"]) == 0, "线索自动分配", "线索来源自动更新")) + "-" + topname + "-" + subname,
+							"createtime":  nowTime,
+							"BCPCID":      common.GetRandom(32),
+							"operator_id": -1,
+						})
+					}
+				}
 			}
 		}
 		if old_top_cluetype != "" {

+ 3 - 1
clueSync/jobutil.go

@@ -1040,8 +1040,10 @@ func autoDraw(mode, cluename, phone string, isGroup, isCommerce int) (positionId
 						positionid := gconv.Int64(m["position_id"])
 						for _, v := range *pdata {
 							resign := common.IntAll(v["resign"])
+							assign_type := common.IntAll(v["assign_type"])
+							role_id := common.IntAll(v["role_id"])
 							if positionid == common.Int64All(v["position_id"]) {
-								if resign == 0 {
+								if resign == 0 && (assign_type == 1 || role_id == 8) {
 									if !FindUpperLimit(gconv.String(positionid), mode, true) {
 										personMap[positionid] = true
 										m["saleName"] = common.ObjToString(v["name"])