jianghan преди 5 месеца
родител
ревизия
e860664db5
променени са 1 файла, в които са добавени 46 реда и са изтрити 12 реда
  1. 46 12
      service/clueInfoList.go

+ 46 - 12
service/clueInfoList.go

@@ -15,14 +15,17 @@ type ClueInfo struct {
 	ClueName            string `json:"cluename"`
 	PositionId          int64  `json:"position_id"`
 	SeatNumber          string `json:"seatNumber"`
-	CompanyNature       int    `json:"company_natural"` // 公司性质  集团/非集团
-	LockStatus          int    `json:"lock_status"`     // 锁定状态
-	LockPerson          string `json:"lock_person"`     // 锁定人
-	LockTime            string `json:"lock_time"`       // 锁定时间
+	CompanyNature       int    `json:"company_natural"`     // 公司性质  集团/非集团
+	CompanyNatureStr    string `json:"company_natural_str"` // 公司性质  集团/非集团
+	LockStatus          int    `json:"lock_status"`         // 锁定状态
+	LockStatusStr       string `json:"lock_status_str"`
+	LockPerson          string `json:"lock_person"` // 锁定人
+	LockTime            string `json:"lock_time"`   // 锁定时间
 	LockPositionId      int64  `json:"lock_position_id"`
 	Name                string `json:"name"`              // 联系人
-	SalesPeople         int    `json:"sales_people"`      // 销售人员
+	SalesPeople         string `json:"sales_people"`      // 销售人员
 	IsAssign            int    `json:"is_assign"`         // 线索池
+	IsAssignStr         string `json:"is_assign_str"`     // 线索池
 	CustomerDemand      string `json:"customer_demand"`   // 客户需求
 	IntendedProducts    string `json:"intended_products"` // 意向产品
 	CustomerBudget      int64  `json:"customer_budget"`   // 客户预算
@@ -42,19 +45,22 @@ type ClueInfo struct {
 }
 
 func CheckingList(in *pb.ClueInfoReq) *pb.BiReply {
-	sql0 := `SELECT a1.*, a3.name as customer, a4.name as trailstatus_name FROM dwd_f_crm_clue_info a1 LEFT JOIN ent_relation a2 ON a1.cluename = a2.a_name OR a1.cluename = a2.b_name 
+	sql0 := `SELECT a1.*, a3.name as customer, a4.name as trailstatus_name, a5.name as sales_people FROM dwd_f_crm_clue_info a1 LEFT JOIN ent_relation a2 ON a1.cluename = a2.a_name OR a1.cluename = a2.b_name 
     	LEFT JOIN dwd_f_csm_customer_info a3 ON a1.id = a3.clue_id 
-    	LEFT JOIN dwd_d_crm_trailstatus_code a4 ON a1.trailstatus = a4.code WHERE a1.cluename LIKE '%%%s%%' limit ? offset ?`
+    	LEFT JOIN dwd_d_crm_trailstatus_code a4 ON a1.trailstatus = a4.code
+	    LEFT JOIN dwd_d_crm_department_level_succbi a5 ON a1.position_id = a5.position_id WHERE a1.cluename LIKE '%%%s%%' limit ? offset ?`
 	cq0 := `SELECT COUNT(1) FROM dwd_f_crm_clue_info a1 LEFT JOIN ent_relation a2 ON a1.cluename = a2.a_name OR a1.cluename = a2.b_name WHERE a1.cluename LIKE '%%%s%%'`
 
-	sql1 := `SELECT a1.*, a3.name as customer, a4.name as trailstatus_name FROM dwd_f_crm_clue_info a1 LEFT JOIN ent_relation a2 ON a1.cluename = a2.a_name OR a1.cluename = a2.b_name 
+	sql1 := `SELECT a1.*, a3.name as customer, a4.name as trailstatus_name, a5.name as sales_people FROM dwd_f_crm_clue_info a1 LEFT JOIN ent_relation a2 ON a1.cluename = a2.a_name OR a1.cluename = a2.b_name 
     	LEFT JOIN dwd_f_csm_customer_info a3 ON a1.id = a3.clue_id 
-    	LEFT JOIN dwd_d_crm_trailstatus_code a4 ON a1.trailstatus = a4.code WHERE a1.name = '%s' limit ? offset ?`
+    	LEFT JOIN dwd_d_crm_trailstatus_code a4 ON a1.trailstatus = a4.code 
+	    LEFT JOIN dwd_d_crm_department_level_succbi a5 ON a1.position_id = a5.position_id WHERE a1.name = '%s' limit ? offset ?`
 	cq1 := `SELECT COUNT(1) FROM dwd_f_crm_clue_info a1 LEFT JOIN ent_relation a2 ON a1.cluename = a2.a_name OR a1.cluename = a2.b_name WHERE a1.name = '%s'`
 
-	sql2 := `SELECT a1.*, a3.name as customer, a4.name as trailstatus_name FROM dwd_f_crm_clue_info a1 LEFT JOIN ent_relation a2 ON a1.cluename = a2.a_name OR a1.cluename = a2.b_name 
+	sql2 := `SELECT a1.*, a3.name as customer, a4.name as trailstatus_name, a5.name as sales_people FROM dwd_f_crm_clue_info a1 LEFT JOIN ent_relation a2 ON a1.cluename = a2.a_name OR a1.cluename = a2.b_name 
     	LEFT JOIN dwd_f_csm_customer_info a3 ON a1.id = a3.clue_id 
-    	LEFT JOIN dwd_d_crm_trailstatus_code a4 ON a1.trailstatus = a4.code WHERE a1.phone = '%s' limit ? offset ?`
+    	LEFT JOIN dwd_d_crm_trailstatus_code a4 ON a1.trailstatus = a4.code
+	    LEFT JOIN dwd_d_crm_department_level_succbi a5 ON a1.position_id = a5.position_id WHERE a1.phone = '%s' limit ? offset ?`
 	cq2 := `SELECT COUNT(1) FROM dwd_f_crm_clue_info a1 LEFT JOIN ent_relation a2 ON a1.cluename = a2.a_name OR a1.cluename = a2.b_name WHERE a1.phone = '%s'`
 
 	sql, cq := "", ""
@@ -103,6 +109,7 @@ func getClueInfo(tmp map[string]interface{}) *ClueInfo {
 		ClueName:            common.ObjToString(tmp["cluename"]),
 		SeatNumber:          common.ObjToString(tmp["seatNumber"]),
 		CompanyNature:       common.IntAll(tmp["COMPANY_NATURE"]),
+		CompanyNatureStr:    common.ObjToString(common.If(common.IntAll(tmp["COMPANY_NATURE"]) == 0, "非集团公司", "集团公司")),
 		LockStatus:          common.IntAll(tmp["lock_status"]),
 		LockTime:            common.ObjToString(tmp["lock_time"]),
 		LockPositionId:      common.Int64All(tmp["lock_position_id"]),
@@ -113,11 +120,38 @@ func getClueInfo(tmp map[string]interface{}) *ClueInfo {
 		CustomerBudget:      common.Int64All(tmp["customer_budget"]),
 		Content:             common.ObjToString(tmp["content"]),
 		TrailTime:           common.ObjToString(tmp["trail_time"]),
-		SucManager:          common.ObjToString(tmp["customer"]),
+		SalesPeople:         common.ObjToString(tmp["sales_people"]),
+		SucManager:          common.ObjToString(common.If(common.ObjToString(tmp["customer"]) != "", common.ObjToString(tmp["customer"]), "/")),
 		ClueStatus:          common.ObjToString(tmp["trailstatus_name"]),
 		IsTransfer:          common.IntAll(tmp["IS_TRANSFER"]),
 		CompanyVerification: common.IntAll(tmp["COMPANY_VERIFICATION"]),
 	}
+	switch clueInfo.IsAssign {
+	case 0:
+		clueInfo.IsAssignStr = "公海"
+	case 1:
+		clueInfo.IsAssignStr = "私海"
+	case -1:
+		clueInfo.IsAssignStr = "退出公海"
+	case -2:
+		clueInfo.IsAssignStr = "域外"
+	case -3:
+		clueInfo.IsAssignStr = "冻结池"
+	case -4:
+		clueInfo.IsAssignStr = "内部员工"
+	case -5:
+		clueInfo.IsAssignStr = "存在大会员子账号权益,临时处理"
+	case -6:
+		clueInfo.IsAssignStr = "特殊原因,不允许销售进行跟进"
+	}
+	switch clueInfo.LockStatus {
+	case 1:
+		clueInfo.LockStatusStr = "已锁定"
+	case 2:
+		clueInfo.LockStatusStr = "未锁定"
+	case 3:
+		clueInfo.LockStatusStr = "无需锁定"
+	}
 	clueInfo.LockPerson, _ = getSeatNumber(common.Int64All(tmp["lock_position_id"]))
 	if common.IntAll(tmp["COMPANY_VERIFICATION"]) == 1 {
 		ent, b := entity.MgoQyxy.FindOneByField("qyxy_std", map[string]interface{}{"company_name": clueInfo.ClueName},