|
@@ -269,7 +269,6 @@ func FormatData(data map[string]interface{}, item string) (bool, bool) {
|
|
if batch_import != "" && item == "users" { //有导入批次号还是新用户,不执行
|
|
if batch_import != "" && item == "users" { //有导入批次号还是新用户,不执行
|
|
return true, true
|
|
return true, true
|
|
}
|
|
}
|
|
- //oks = UpdateClue(*uCount, saleData, item, userId, uId, top_cluetype, sub_cluetype, topname, subname, cluename, name, saleName, phone, position, department, departments, industry, follow_project_area, role, seatNumber, level, position_id, source, sourceCode, remark, keyword, belong_to, isGroup, isCommerce, pIsOk, "")
|
|
|
|
oks = UpdateClue(*uCount, saleData, item, userId, uId, top_cluetype, sub_cluetype, topname, subname, cluename, name, saleName, phone, position, department, departments, industry, follow_project_area, role, seatNumber, level, position_id, source, sourceCode, remark, keyword, belong_to, isGroup, isCommerce, pIsOk)
|
|
oks = UpdateClue(*uCount, saleData, item, userId, uId, top_cluetype, sub_cluetype, topname, subname, cluename, name, saleName, phone, position, department, departments, industry, follow_project_area, role, seatNumber, level, position_id, source, sourceCode, remark, keyword, belong_to, isGroup, isCommerce, pIsOk)
|
|
} else { //不存在走新增
|
|
} else { //不存在走新增
|
|
oks = SaveClue(item, userId, uId, top_cluetype, sub_cluetype, topname, subname, cluename, name, saleName, phone, position, department, departments, industry, follow_project_area, role, seatNumber, position_id, source, sourceCode, remark, keyword, belong_to, isGroup, isCommerce, isFreeze, "")
|
|
oks = SaveClue(item, userId, uId, top_cluetype, sub_cluetype, topname, subname, cluename, name, saleName, phone, position, department, departments, industry, follow_project_area, role, seatNumber, position_id, source, sourceCode, remark, keyword, belong_to, isGroup, isCommerce, isFreeze, "")
|
|
@@ -822,7 +821,7 @@ func WorkUpdateClue(data map[string]interface{}, saleData []map[string]interface
|
|
clueUpdateData["level_open"] = nil
|
|
clueUpdateData["level_open"] = nil
|
|
clueUpdateData["clue_level"] = 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 {
|
|
if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
|
|
} else {
|
|
} else {
|
|
clueUpdateData["trailstatus"] = "01"
|
|
clueUpdateData["trailstatus"] = "01"
|
|
@@ -834,7 +833,7 @@ func WorkUpdateClue(data map[string]interface{}, saleData []map[string]interface
|
|
clueUpdateData["trailstatus_time"] = nowTime
|
|
clueUpdateData["trailstatus_time"] = nowTime
|
|
}
|
|
}
|
|
is_ok := false
|
|
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 {
|
|
if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
|
|
} else {
|
|
} else {
|
|
if item == "eventReg" {
|
|
if item == "eventReg" {
|
|
@@ -883,6 +882,7 @@ func WorkUpdateClue(data map[string]interface{}, saleData []map[string]interface
|
|
//线索
|
|
//线索
|
|
ok = TiDb.UpdateByTx(tx, "dwd_f_crm_clue_info", map[string]interface{}{"uid": uId}, clueUpdateData)
|
|
ok = TiDb.UpdateByTx(tx, "dwd_f_crm_clue_info", map[string]interface{}{"uid": uId}, clueUpdateData)
|
|
//变更记录
|
|
//变更记录
|
|
|
|
+
|
|
if (trailstatus == "00" || old_position_id == 0 || (pIsOk && old_cluename != cluename && cluename != "")) && is_assign == 1 {
|
|
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 {
|
|
if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
|
|
} else if old_position_id == 0 {
|
|
} else if old_position_id == 0 {
|
|
@@ -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 {
|
|
if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
|
|
} else {
|
|
} else {
|
|
updateId1 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
|
|
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,
|
|
"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{}{
|
|
updateId1 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
|
|
"clue_id": clueId,
|
|
"clue_id": clueId,
|
|
"position_id": positionId,
|
|
"position_id": positionId,
|
|
@@ -1043,21 +1043,11 @@ func WorkUpdateClue(data map[string]interface{}, saleData []map[string]interface
|
|
"operator_id": -1,
|
|
"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 {
|
|
if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
|
|
} else {
|
|
} else {
|
|
- if old_sub_cluetype != sub_cluetype && !is_ok {
|
|
|
|
- if is_transfer != 1 {
|
|
|
|
- updateId5 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", 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,
|
|
|
|
- "createtime": nowTime,
|
|
|
|
- "BCPCID": common.GetRandom(32),
|
|
|
|
- "operator_id": -1,
|
|
|
|
- })
|
|
|
|
- } else {
|
|
|
|
|
|
+ if is_transfer == 1 {
|
|
|
|
+ if old_sub_cluetype != sub_cluetype && !is_ok {
|
|
cdata := TiDb.FindOne("dwd_f_csm_customer_info", map[string]interface{}{"clue_id": clueId}, "", "")
|
|
cdata := TiDb.FindOne("dwd_f_csm_customer_info", map[string]interface{}{"clue_id": clueId}, "", "")
|
|
if cdata != nil && len(*cdata) > 0 {
|
|
if cdata != nil && len(*cdata) > 0 {
|
|
kcpositionId := common.Int64All((*cdata)["position_id"])
|
|
kcpositionId := common.Int64All((*cdata)["position_id"])
|
|
@@ -1091,9 +1081,20 @@ func WorkUpdateClue(data map[string]interface{}, saleData []map[string]interface
|
|
})
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ } else if !is_ok {
|
|
|
|
+ updateId5 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
|
|
|
|
+ "clue_id": clueId,
|
|
|
|
+ "position_id": common.If(trailstatus == "00" || is_assign == 0 || is_assign == -1, positionId, common.Int64All(data["position_id"])),
|
|
|
|
+ "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 != "" {
|
|
if old_top_cluetype != "" {
|
|
pcodeData := TiDb.FindOne("dwd_d_crm_cluetype_code", map[string]interface{}{"code": old_top_cluetype}, "", "")
|
|
pcodeData := TiDb.FindOne("dwd_d_crm_cluetype_code", map[string]interface{}{"code": old_top_cluetype}, "", "")
|
|
if pcodeData != nil && len(*pcodeData) > 0 {
|
|
if pcodeData != nil && len(*pcodeData) > 0 {
|
|
@@ -1363,8 +1364,13 @@ 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 {
|
|
if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
|
|
|
|
+ //无意向几天以内不参与分配
|
|
|
|
+ } else if trailstatus == "09" && (topname != "付费产品落地页主动留资" && topname != "受理系统") {
|
|
|
|
+ //线索状态为“拒绝沟通客户”,则仅针对线索来源一级分类为“付费产品落地页主动留资”和“受理系统”产生的线索进行线索分配,其他类线上线索只做线索更新但不再自动分配。
|
|
|
|
+ positionId = 0
|
|
|
|
+ seatNumber = ""
|
|
} else {
|
|
} else {
|
|
clueUpdateData["seatNumber"] = seatNumber
|
|
clueUpdateData["seatNumber"] = seatNumber
|
|
clueUpdateData["position_id"] = positionId
|
|
clueUpdateData["position_id"] = positionId
|
|
@@ -1387,8 +1393,12 @@ func UpdateClue(data map[string]interface{}, saleData []map[string]interface{},
|
|
clueUpdateData["level_open"] = nil
|
|
clueUpdateData["level_open"] = nil
|
|
clueUpdateData["clue_level"] = 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 {
|
|
if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
|
|
|
|
+ } else if trailstatus == "09" && (topname != "付费产品落地页主动留资" && topname != "受理系统") {
|
|
|
|
+ //线索状态为“拒绝沟通客户”,则仅针对线索来源一级分类为“付费产品落地页主动留资”和“受理系统”产生的线索进行线索分配,其他类线上线索只做线索更新但不再自动分配。
|
|
|
|
+ positionId = 0
|
|
|
|
+ seatNumber = ""
|
|
} else {
|
|
} else {
|
|
clueUpdateData["trailstatus"] = "01"
|
|
clueUpdateData["trailstatus"] = "01"
|
|
clueUpdateData["trailstatus_time"] = nowTime
|
|
clueUpdateData["trailstatus_time"] = nowTime
|
|
@@ -1399,8 +1409,12 @@ func UpdateClue(data map[string]interface{}, saleData []map[string]interface{},
|
|
clueUpdateData["trailstatus_time"] = nowTime
|
|
clueUpdateData["trailstatus_time"] = nowTime
|
|
}
|
|
}
|
|
is_ok := false
|
|
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 {
|
|
if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
|
|
|
|
+ } else if trailstatus == "09" && (topname != "付费产品落地页主动留资" && topname != "受理系统") {
|
|
|
|
+ //线索状态为“拒绝沟通客户”,则仅针对线索来源一级分类为“付费产品落地页主动留资”和“受理系统”产生的线索进行线索分配,其他类线上线索只做线索更新但不再自动分配。
|
|
|
|
+ positionId = 0
|
|
|
|
+ seatNumber = ""
|
|
} else {
|
|
} else {
|
|
if item == "eventReg" {
|
|
if item == "eventReg" {
|
|
eData := TiDb.Find("dwd_f_crm_clue_change_record", map[string]interface{}{"clue_id": clueId, "change_type": "加入任务车"}, "", "", -1, -1)
|
|
eData := TiDb.Find("dwd_f_crm_clue_change_record", map[string]interface{}{"clue_id": clueId, "change_type": "加入任务车"}, "", "", -1, -1)
|
|
@@ -1450,6 +1464,9 @@ 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" || old_position_id == 0 || (pIsOk && old_cluename != cluename && cluename != "")) && is_assign == 1 {
|
|
if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
|
|
if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
|
|
|
|
+ } else if trailstatus == "09" && (topname != "付费产品落地页主动留资" && topname != "受理系统") {
|
|
|
|
+ positionId = 0
|
|
|
|
+ seatNumber = ""
|
|
} else if old_position_id == 0 {
|
|
} else if old_position_id == 0 {
|
|
updateId1 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
|
|
updateId1 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
|
|
"clue_id": clueId,
|
|
"clue_id": clueId,
|
|
@@ -1533,8 +1550,11 @@ 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 {
|
|
if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
|
|
|
|
+ } else if trailstatus == "09" && (topname != "付费产品落地页主动留资" && topname != "受理系统") {
|
|
|
|
+ positionId = 0
|
|
|
|
+ seatNumber = ""
|
|
} else {
|
|
} else {
|
|
updateId1 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
|
|
updateId1 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
|
|
"clue_id": clueId,
|
|
"clue_id": clueId,
|
|
@@ -1572,7 +1592,7 @@ func UpdateClue(data map[string]interface{}, saleData []map[string]interface{},
|
|
"operator_id": -1,
|
|
"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{}{
|
|
updateId1 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
|
|
"clue_id": clueId,
|
|
"clue_id": clueId,
|
|
"position_id": positionId,
|
|
"position_id": positionId,
|
|
@@ -1596,21 +1616,14 @@ func UpdateClue(data map[string]interface{}, saleData []map[string]interface{},
|
|
"operator_id": -1,
|
|
"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 {
|
|
if trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400 {
|
|
|
|
+ } else if trailstatus == "09" && (topname != "付费产品落地页主动留资" && topname != "受理系统") {
|
|
|
|
+ positionId = 0
|
|
|
|
+ seatNumber = ""
|
|
} else {
|
|
} else {
|
|
- if old_sub_cluetype != sub_cluetype && !is_ok {
|
|
|
|
- if is_transfer != 1 {
|
|
|
|
- updateId5 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
|
|
|
|
- "clue_id": clueId,
|
|
|
|
- "position_id": common.If(trailstatus == "00" || is_assign == 0 || is_assign == -1, positionId, common.Int64All(data["position_id"])),
|
|
|
|
- "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,
|
|
|
|
- })
|
|
|
|
- } else {
|
|
|
|
|
|
+ if is_transfer == 1 {
|
|
|
|
+ if old_sub_cluetype != sub_cluetype && !is_ok {
|
|
cdata := TiDb.FindOne("dwd_f_csm_customer_info", map[string]interface{}{"clue_id": clueId}, "", "")
|
|
cdata := TiDb.FindOne("dwd_f_csm_customer_info", map[string]interface{}{"clue_id": clueId}, "", "")
|
|
if cdata != nil && len(*cdata) > 0 {
|
|
if cdata != nil && len(*cdata) > 0 {
|
|
kcpositionId := common.Int64All((*cdata)["position_id"])
|
|
kcpositionId := common.Int64All((*cdata)["position_id"])
|
|
@@ -1644,6 +1657,16 @@ func UpdateClue(data map[string]interface{}, saleData []map[string]interface{},
|
|
})
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ } else if !is_ok {
|
|
|
|
+ updateId5 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
|
|
|
|
+ "clue_id": clueId,
|
|
|
|
+ "position_id": common.If(trailstatus == "00" || is_assign == 0 || is_assign == -1, positionId, common.Int64All(data["position_id"])),
|
|
|
|
+ "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,
|
|
|
|
+ })
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1700,7 +1723,16 @@ func UpdateClue(data map[string]interface{}, saleData []map[string]interface{},
|
|
})
|
|
})
|
|
}
|
|
}
|
|
if old_role != role && role != "" {
|
|
if old_role != role && role != "" {
|
|
- updateId9 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{"clue_id": clueId, "position_id": common.If(trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400, -1, common.If(trailstatus == "00" || is_assign == 0, positionId, common.Int64All(data["position_id"]))), "change_field": "role", "change_type": "基本信息变更", "old_value": common.If(old_role != "", old_role, "/"), "new_value": common.If(role != "", role, "/"), "createtime": nowTime, "BCPCID": BCPCID, "operator_id": -1})
|
|
|
|
|
|
+ updateId9 = TiDb.InsertByTx(tx, "dwd_f_crm_clue_change_record", map[string]interface{}{
|
|
|
|
+ "clue_id": clueId,
|
|
|
|
+ "position_id": common.If(trailstatus == "00" && trailstatusTime != "" && time.Now().Unix()-trailstatusTimes.Unix() < 86400, -1, common.If(trailstatus == "00" || is_assign == 0, positionId, common.Int64All(data["position_id"]))),
|
|
|
|
+ "change_field": "role",
|
|
|
|
+ "change_type": "基本信息变更",
|
|
|
|
+ "old_value": common.If(old_role != "", old_role, "/"),
|
|
|
|
+ "new_value": common.If(role != "", role, "/"),
|
|
|
|
+ "createtime": nowTime,
|
|
|
|
+ "BCPCID": BCPCID,
|
|
|
|
+ "operator_id": -1})
|
|
}
|
|
}
|
|
if old_follow_project_area != follow_project_area && follow_project_area != "" {
|
|
if old_follow_project_area != follow_project_area && follow_project_area != "" {
|
|
old_area, old_area_arr := "", []string{}
|
|
old_area, old_area_arr := "", []string{}
|