Bläddra i källkod

feat:分发人员获取修改

duxin 2 år sedan
förälder
incheckning
d6e548de18
1 ändrade filer med 27 tillägg och 26 borttagningar
  1. 27 26
      jyBXSubscribe/rpc/model/distributor.go

+ 27 - 26
jyBXSubscribe/rpc/model/distributor.go

@@ -33,7 +33,6 @@ func Distributor(region []string, entId, entUserId int) []*User {
 	//判断企业是否为商机管理企业
 	isEnt := GetIsEnt(entId)
 	regions := []string{}
-
 	for _, v := range region {
 		//剔除空与全国
 		if v == "" || strings.Contains(v, "全国") {
@@ -51,6 +50,7 @@ func Distributor(region []string, entId, entUserId int) []*User {
 						o_area, _ := (*data)["o_area"].(map[string]interface{})
 						if regionCheck(o_area, regions) {
 							ss = append(ss, v)
+							continue
 						}
 					}
 				} else { // 企业未分配规则 查询个人
@@ -63,34 +63,34 @@ func Distributor(region []string, entId, entUserId int) []*User {
 						o_area, _ := o_entniche["o_area"].(map[string]interface{})
 						if regionCheck(o_area, regions) {
 							ss = append(ss, v)
+							continue
 						}
 					}
 				}
-			} else {
-				//非商机管理企业 是否分配大会员或超级订阅
-				//user表 判断区域是否符合
-				if status := powerUser[common.InterfaceToStr(v.Id)]; status != 0 {
-					//查询user表区域
-					data, ok := IC.Mgo.FindOne("user", map[string]interface{}{
-						"$or": []map[string]interface{}{{"s_phone": v.Phone}, {"s_m_phone": v.Phone}},
-					})
-					if ok && data != nil && len(*data) > 0 {
-						o_area := make(map[string]interface{})
-						i_member_status, _ := (*data)["i_member_status"].(int)
-						i_vip_status, _ := (*data)["i_vip_status"].(int)
-						o_member_jy, _ := (*data)["o_member_jy"].(map[string]interface{})
-						o_vipjy, _ := (*data)["o_vipjy"].(map[string]interface{})
-						if status == 1 && i_vip_status > 0 {
-							o_area, _ = o_vipjy["o_area"].(map[string]interface{})
-						} else if status == 2 && i_member_status > 0 {
-							o_area, _ = o_member_jy["o_area"].(map[string]interface{})
-						} else {
-							continue
-						}
+			}
+			//非商机管理企业或商机管理区域不满足 判断是否分配大会员或超级订阅
+			//user表 判断区域是否符合
+			if status := powerUser[common.InterfaceToStr(v.Id)]; status != 0 && v.Phone != "" {
+				//查询user表订阅区域
+				data, ok := IC.Mgo.FindOne("user", map[string]interface{}{
+					"$or": []map[string]interface{}{{"s_phone": v.Phone}, {"s_m_phone": v.Phone}},
+				})
+				if ok && data != nil && len(*data) > 0 {
+					o_area := make(map[string]interface{})
+					i_member_status, _ := (*data)["i_member_status"].(int)
+					i_vip_status, _ := (*data)["i_vip_status"].(int)
+					o_member_jy, _ := (*data)["o_member_jy"].(map[string]interface{})
+					o_vipjy, _ := (*data)["o_vipjy"].(map[string]interface{})
+					if status == 1 && i_vip_status > 0 {
+						o_area, _ = o_vipjy["o_area"].(map[string]interface{})
+					} else if status == 2 && i_member_status > 0 {
+						o_area, _ = o_member_jy["o_area"].(map[string]interface{})
+					} else {
+						continue
+					}
 
-						if regionCheck(o_area, regions) {
-							ss = append(ss, v)
-						}
+					if regionCheck(o_area, regions) {
+						ss = append(ss, v)
 					}
 				}
 			}
@@ -106,7 +106,7 @@ func Distributor(region []string, entId, entUserId int) []*User {
 }
 
 func regionCheck(o_area map[string]interface{}, regions []string) bool {
-	if o_area == nil {
+	if o_area == nil || len(o_area) == 0 {
 		return true
 	} else {
 		regionBool := true
@@ -115,6 +115,7 @@ func regionCheck(o_area map[string]interface{}, regions []string) bool {
 				continue
 			} else {
 				regionBool = false
+				break
 			}
 		}
 		return regionBool