Browse Source

no message

xingzai 8 months ago
parent
commit
b5725bfe61

+ 20 - 14
controllers/cygx/activity_meet.go

@@ -1562,24 +1562,30 @@ func (this *ActivityMeetCoAntroller) AttendanceDetail() {
 	err = cygx.AddCygxActivityMeetingHistory(item)
 	resplist := new(cygx.AttendanceDetailList)
 	if resp.IsCanDownload == false {
-		var conditionMobile string
-		if adminInfo.RoleTypeCode == "rai_group" {
-			//组长查看本组所有组员
-			conditionMobile = ` SELECT mobile FROM user_seller_relation WHERE seller_id IN (SELECT  admin_id FROM admin WHERE group_id = (SELECT group_id FROM admin WHERE admin_id = ` + strconv.Itoa(sysUser.AdminId) + ` )) `
-		} else {
-			//组员查看自己
-			conditionMobile = ` SELECT mobile FROM user_seller_relation WHERE seller_id  = ` + strconv.Itoa(sysUser.AdminId)
-		}
-		mobileList, err := cygx.GetSellerUserMobile(conditionMobile)
+		//var conditionMobile string
+		//if adminInfo.RoleTypeCode == "rai_group" {
+		//	//组长查看本组所有组员
+		//	conditionMobile = ` SELECT mobile FROM user_seller_relation WHERE seller_id IN (SELECT  admin_id FROM admin WHERE group_id = (SELECT group_id FROM admin WHERE admin_id = ` + strconv.Itoa(sysUser.AdminId) + ` )) `
+		//} else {
+		//	//组员查看自己
+		//	conditionMobile = ` SELECT mobile FROM user_seller_relation WHERE seller_id  = ` + strconv.Itoa(sysUser.AdminId)
+		//}
+		//mobileList, err := cygx.GetSellerUserMobile(conditionMobile)
+		//if err != nil {
+		//	br.Msg = "获取失败"
+		//	br.ErrMsg = "获取失败,GetSellerUserMobile Err:" + err.Error()
+		//	return
+		//}
+		mapUserMobile, err := cygxService.GetAdminLookUserMobile(adminInfo)
 		if err != nil {
 			br.Msg = "获取失败"
-			br.ErrMsg = "获取失败,GetSellerUserMobile Err:" + err.Error()
+			br.ErrMsg = "获取失败,销售对应权限,Err:" + err.Error()
 			return
 		}
-		mapUserMobile := make(map[string]string)
-		for _, v := range mobileList {
-			mapUserMobile[v.Mobile] = v.Mobile
-		}
+		//mapUserMobile := make(map[string]string)
+		//for _, v := range mobileList {
+		//	mapUserMobile[v.Mobile] = v.Mobile
+		//}
 		for _, v := range list1 {
 			if _, ok := mapUserMobile[v.Mobile]; ok {
 				resplist.List1 = append(resplist.List1, v)

+ 1 - 1
controllers/cygx/activity_signup.go

@@ -2482,7 +2482,7 @@ func (this *ActivitySignupCoAntroller) SignupCancel() {
 		return
 	}
 	go cygxService.YanXuanActivityPointsBillSignupCancel(detail.ActivityId, detail.UserId, adminInfo.AdminId)
-	if activityInfo.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN{
+	if activityInfo.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
 		go services.SendWxCategoryMsgWithYxActivityCancelSignUpBySell(detail.UserId, activityInfo.ActivityId)
 	}
 	//添加操作日志记录

+ 221 - 189
controllers/cygx/user.go

@@ -9,6 +9,7 @@ import (
 	"hongze/hz_crm_api/models"
 	"hongze/hz_crm_api/models/company"
 	"hongze/hz_crm_api/models/cygx"
+	"hongze/hz_crm_api/models/system"
 	"hongze/hz_crm_api/services"
 	cygxService "hongze/hz_crm_api/services/cygx"
 	"hongze/hz_crm_api/utils"
@@ -100,209 +101,240 @@ func (this *UserController) List() {
 	//var lossPars []interface{}
 
 	//状态分类查询条件
-	var permissionCondition string
+	//var permissionCondition string
 	if adminId != "" {
 		condition += ` AND b.seller_id IN (` + adminId + `) `
 	}
 
 	lossCondition = condition
 	//lossPars = pars
-	permissionCondition = condition
+	//permissionCondition = condition
 
 	//流失客户统计
 	lossCondition += ` AND status='流失' `
 
 	//productId := services.GetProductId(roleTypeCode)
-	productId := 2
+	//productId := 2
 	//权限控制
-	{
-		//如果不是超级管理员或者财务
-		if roleTypeCode != utils.ROLE_TYPE_CODE_ADMIN && roleTypeCode != utils.ROLE_TYPE_CODE_FINANCE {
-			//如果是部门管理员
-			if roleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN || roleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN {
-				condition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
-
-				lossCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
-
-				permissionCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
-
-			} else {
-				condition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
-
-				lossCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
-
-				permissionCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
-
-				if status == "全部" {
-					////如果是筛选了流失客户状态
-					if sysUser.Authority <= 0 {
-						condition += ` AND (b.seller_id= '` + strconv.Itoa(sysUser.AdminId) + `' OR status='流失')  `
-
-						permissionCondition += ` AND b.seller_id= ` + strconv.Itoa(sysUser.AdminId)
-					} else {
-						if sysUser.Authority == 1 {
-							condition += ` AND (b.department_id=` + strconv.Itoa(sysUser.DepartmentId) + `  OR status='流失')`
-							permissionCondition += ` AND b.department_id=` + strconv.Itoa(sysUser.DepartmentId)
-						}
-						if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
-							if status != utils.COMPANY_STATUS_LOSE {
-								condition += ` AND (b.group_id=` + strconv.Itoa(sysUser.GroupId) + `  OR status='流失') `
-							}
-							permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
-
-						}
-
-						if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP {
-							pid, err := company.GetParentIdFromGroup(sysUser.GroupId)
-							if err != nil {
-								br.Msg = "获取失败"
-								br.ErrMsg = "查询父级id异常" + err.Error()
-								return
-							}
-							var ids []*string
-							if pid != nil {
-								if *pid != 0 {
-									//销售主管放在三级列表中
-									ids, err = company.GetGroupIdsByParentId(*pid)
-									if err != nil {
-										fmt.Println(err.Error())
-									}
-								} else {
-									//销售主管放在二级列表中
-									ids, err = company.GetGroupIdsByParentId(sysUser.GroupId)
-									if err != nil {
-										fmt.Println(err.Error())
-									}
-								}
-							}
-							var idSlice []string
-							var sid string
-							for _, id := range ids {
-								idSlice = append(idSlice, *id)
-							}
-							//加入父级groupId
-							if *pid > 0 {
-								idSlice = append(idSlice, strconv.Itoa(*pid))
-							} else {
-								idSlice = append(idSlice, strconv.Itoa(sysUser.GroupId))
-							}
-
-							sid = strings.Join(idSlice, ",")
-							if len(sid) > 0 {
-								if status != utils.COMPANY_STATUS_LOSE {
-									condition += ` AND (b.group_id IN (` + sid + `) OR status='流失') `
-								}
-
-								permissionCondition += ` AND b.group_id IN (` + sid + `) `
-							} else {
-								if status != utils.COMPANY_STATUS_LOSE {
-									condition += ` AND (b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) OR status='流失') `
-								}
-								permissionCondition += ` AND b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) `
-							}
-						}
-						if sysUser.Authority == 4 {
-							if status != utils.COMPANY_STATUS_LOSE {
-								condition += ` AND (b.group_id =` + strconv.Itoa(sysUser.GroupId) + ` OR status='流失') `
-								//pars = append(pars, sysUser.GroupId)
-							}
-							permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
-							//permissionPars = append(permissionPars, sysUser.GroupId)
-						}
-					}
-				} else {
-					//如果没有筛选了流失客户状态,那么需要加客户归属条件加入到查询中去
-					if sysUser.Authority <= 0 {
-						if status != utils.COMPANY_STATUS_LOSE {
-							condition += ` AND b.seller_id=` + strconv.Itoa(sysUser.AdminId)
-							//pars = append(pars, sysUser.AdminId)
-						}
-
-						permissionCondition += ` AND b.seller_id=` + strconv.Itoa(sysUser.AdminId)
-						//permissionPars = append(permissionPars, sysUser.AdminId)
-					} else {
-						if sysUser.Authority == 1 {
-							if status != utils.COMPANY_STATUS_LOSE {
-								condition += ` AND b.department_id=` + strconv.Itoa(sysUser.DepartmentId)
-								//pars = append(pars, sysUser.DepartmentId)
-							}
-							permissionCondition += ` AND b.department_id=` + strconv.Itoa(sysUser.DepartmentId)
-							//permissionPars = append(permissionPars, sysUser.DepartmentId)
-						}
-						if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
-							if status != utils.COMPANY_STATUS_LOSE {
-								condition += ` AND b.group_id= ` + strconv.Itoa(sysUser.GroupId)
-								//pars = append(pars, sysUser.GroupId)
-							}
-							permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
-							//permissionPars = append(permissionPars, sysUser.GroupId)
-						}
-						if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP {
-							pid, err := company.GetParentIdFromGroup(sysUser.GroupId)
-							if err != nil {
-								br.Msg = "获取失败"
-								br.ErrMsg = "查询父级id异常" + err.Error()
-								return
-							}
-							var ids []*string
-							if pid != nil {
-								if *pid != 0 {
-									//销售主管放在三级列表中
-									ids, err = company.GetGroupIdsByParentId(*pid)
-									if err != nil {
-										fmt.Println(err.Error())
-									}
-								} else {
-									//销售主管放在二级列表中
-									ids, err = company.GetGroupIdsByParentId(sysUser.GroupId)
-									if err != nil {
-										fmt.Println(err.Error())
-									}
-								}
-							}
-							var idSlice []string
-							var sid string
-							for _, id := range ids {
-								idSlice = append(idSlice, *id)
-							}
-							//加入父级groupId
-							if *pid > 0 {
-								idSlice = append(idSlice, strconv.Itoa(*pid))
-							} else {
-								idSlice = append(idSlice, strconv.Itoa(sysUser.GroupId))
-							}
-
-							sid = strings.Join(idSlice, ",")
-							if len(sid) > 0 {
-								if status != utils.COMPANY_STATUS_LOSE {
-									condition += ` AND (b.group_id IN (` + sid + `) OR status='流失') `
-									//pars = append(pars, sysUser.GroupId)
-								}
-
-								permissionCondition += ` AND b.group_id IN (` + sid + `) `
-							} else {
-								if status != utils.COMPANY_STATUS_LOSE {
-									condition += ` AND (b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) OR status='流失') `
-									//pars = append(pars, sysUser.GroupId)
-								}
-
-								permissionCondition += ` AND b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) `
-							}
-						}
-
-						if sysUser.Authority == 4 {
-							if status != utils.COMPANY_STATUS_LOSE {
-								condition += ` AND b.group_id =` + strconv.Itoa(sysUser.GroupId)
-								//pars = append(pars, sysUser.GroupId)
-							}
+	//{
+	//	//如果不是超级管理员或者财务
+	//	if roleTypeCode != utils.ROLE_TYPE_CODE_ADMIN && roleTypeCode != utils.ROLE_TYPE_CODE_FINANCE {
+	//		//如果是部门管理员
+	//		if roleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN || roleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN {
+	//			condition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
+	//
+	//			lossCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
+	//
+	//			permissionCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
+	//
+	//		} else {
+	//			condition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
+	//
+	//			lossCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
+	//
+	//			permissionCondition += ` AND b.product_id= '` + strconv.Itoa(productId) + `'`
+	//
+	//			if status == "全部" {
+	//				////如果是筛选了流失客户状态
+	//				if sysUser.Authority <= 0 {
+	//					condition += ` AND (b.seller_id= '` + strconv.Itoa(sysUser.AdminId) + `' OR status='流失')  `
+	//
+	//					permissionCondition += ` AND b.seller_id= ` + strconv.Itoa(sysUser.AdminId)
+	//				} else {
+	//					if sysUser.Authority == 1 {
+	//						condition += ` AND (b.department_id=` + strconv.Itoa(sysUser.DepartmentId) + `  OR status='流失')`
+	//						permissionCondition += ` AND b.department_id=` + strconv.Itoa(sysUser.DepartmentId)
+	//					}
+	//					if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
+	//						if status != utils.COMPANY_STATUS_LOSE {
+	//							condition += ` AND (b.group_id=` + strconv.Itoa(sysUser.GroupId) + `  OR status='流失') `
+	//						}
+	//						permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
+	//
+	//					}
+	//
+	//					if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP {
+	//						pid, err := company.GetParentIdFromGroup(sysUser.GroupId)
+	//						if err != nil {
+	//							br.Msg = "获取失败"
+	//							br.ErrMsg = "查询父级id异常" + err.Error()
+	//							return
+	//						}
+	//						var ids []*string
+	//						if pid != nil {
+	//							if *pid != 0 {
+	//								//销售主管放在三级列表中
+	//								ids, err = company.GetGroupIdsByParentId(*pid)
+	//								if err != nil {
+	//									fmt.Println(err.Error())
+	//								}
+	//							} else {
+	//								//销售主管放在二级列表中
+	//								ids, err = company.GetGroupIdsByParentId(sysUser.GroupId)
+	//								if err != nil {
+	//									fmt.Println(err.Error())
+	//								}
+	//							}
+	//						}
+	//						var idSlice []string
+	//						var sid string
+	//						for _, id := range ids {
+	//							idSlice = append(idSlice, *id)
+	//						}
+	//						//加入父级groupId
+	//						if *pid > 0 {
+	//							idSlice = append(idSlice, strconv.Itoa(*pid))
+	//						} else {
+	//							idSlice = append(idSlice, strconv.Itoa(sysUser.GroupId))
+	//						}
+	//
+	//						sid = strings.Join(idSlice, ",")
+	//						if len(sid) > 0 {
+	//							if status != utils.COMPANY_STATUS_LOSE {
+	//								condition += ` AND (b.group_id IN (` + sid + `) OR status='流失') `
+	//							}
+	//
+	//							permissionCondition += ` AND b.group_id IN (` + sid + `) `
+	//						} else {
+	//							if status != utils.COMPANY_STATUS_LOSE {
+	//								condition += ` AND (b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) OR status='流失') `
+	//							}
+	//							permissionCondition += ` AND b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) `
+	//						}
+	//					}
+	//					if sysUser.Authority == 4 {
+	//						if status != utils.COMPANY_STATUS_LOSE {
+	//							condition += ` AND (b.group_id =` + strconv.Itoa(sysUser.GroupId) + ` OR status='流失') `
+	//							//pars = append(pars, sysUser.GroupId)
+	//						}
+	//						permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
+	//						//permissionPars = append(permissionPars, sysUser.GroupId)
+	//					}
+	//				}
+	//			} else {
+	//				//如果没有筛选了流失客户状态,那么需要加客户归属条件加入到查询中去
+	//				if sysUser.Authority <= 0 {
+	//					if status != utils.COMPANY_STATUS_LOSE {
+	//						condition += ` AND b.seller_id=` + strconv.Itoa(sysUser.AdminId)
+	//						//pars = append(pars, sysUser.AdminId)
+	//					}
+	//
+	//					permissionCondition += ` AND b.seller_id=` + strconv.Itoa(sysUser.AdminId)
+	//					//permissionPars = append(permissionPars, sysUser.AdminId)
+	//				} else {
+	//					if sysUser.Authority == 1 {
+	//						if status != utils.COMPANY_STATUS_LOSE {
+	//							condition += ` AND b.department_id=` + strconv.Itoa(sysUser.DepartmentId)
+	//							//pars = append(pars, sysUser.DepartmentId)
+	//						}
+	//						permissionCondition += ` AND b.department_id=` + strconv.Itoa(sysUser.DepartmentId)
+	//						//permissionPars = append(permissionPars, sysUser.DepartmentId)
+	//					}
+	//					if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
+	//						if status != utils.COMPANY_STATUS_LOSE {
+	//							condition += ` AND b.group_id= ` + strconv.Itoa(sysUser.GroupId)
+	//							//pars = append(pars, sysUser.GroupId)
+	//						}
+	//						permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
+	//						//permissionPars = append(permissionPars, sysUser.GroupId)
+	//					}
+	//					if sysUser.Authority == 2 && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP {
+	//						pid, err := company.GetParentIdFromGroup(sysUser.GroupId)
+	//						if err != nil {
+	//							br.Msg = "获取失败"
+	//							br.ErrMsg = "查询父级id异常" + err.Error()
+	//							return
+	//						}
+	//						var ids []*string
+	//						if pid != nil {
+	//							if *pid != 0 {
+	//								//销售主管放在三级列表中
+	//								ids, err = company.GetGroupIdsByParentId(*pid)
+	//								if err != nil {
+	//									fmt.Println(err.Error())
+	//								}
+	//							} else {
+	//								//销售主管放在二级列表中
+	//								ids, err = company.GetGroupIdsByParentId(sysUser.GroupId)
+	//								if err != nil {
+	//									fmt.Println(err.Error())
+	//								}
+	//							}
+	//						}
+	//						var idSlice []string
+	//						var sid string
+	//						for _, id := range ids {
+	//							idSlice = append(idSlice, *id)
+	//						}
+	//						//加入父级groupId
+	//						if *pid > 0 {
+	//							idSlice = append(idSlice, strconv.Itoa(*pid))
+	//						} else {
+	//							idSlice = append(idSlice, strconv.Itoa(sysUser.GroupId))
+	//						}
+	//
+	//						sid = strings.Join(idSlice, ",")
+	//						if len(sid) > 0 {
+	//							if status != utils.COMPANY_STATUS_LOSE {
+	//								condition += ` AND (b.group_id IN (` + sid + `) OR status='流失') `
+	//								//pars = append(pars, sysUser.GroupId)
+	//							}
+	//
+	//							permissionCondition += ` AND b.group_id IN (` + sid + `) `
+	//						} else {
+	//							if status != utils.COMPANY_STATUS_LOSE {
+	//								condition += ` AND (b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) OR status='流失') `
+	//								//pars = append(pars, sysUser.GroupId)
+	//							}
+	//
+	//							permissionCondition += ` AND b.group_id IN (` + strconv.Itoa(sysUser.GroupId) + `) `
+	//						}
+	//					}
+	//
+	//					if sysUser.Authority == 4 {
+	//						if status != utils.COMPANY_STATUS_LOSE {
+	//							condition += ` AND b.group_id =` + strconv.Itoa(sysUser.GroupId)
+	//							//pars = append(pars, sysUser.GroupId)
+	//						}
+	//
+	//						permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
+	//						//permissionPars = append(permissionPars, sysUser.GroupId)
+	//					}
+	//				}
+	//			}
+	//		}
+	//	}
+	//}
 
-							permissionCondition += ` AND b.group_id=` + strconv.Itoa(sysUser.GroupId)
-							//permissionPars = append(permissionPars, sysUser.GroupId)
-						}
-					}
-				}
-			}
+	if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER { //权益销售的查询逻辑
+		condition += ` AND ( cp.seller_id = ` + strconv.Itoa(sysUser.AdminId) + `  OR cp.share_seller_id = ` + strconv.Itoa(sysUser.AdminId) + `)`
+	} else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP { // 权益销售组长查询逻辑
+		adminList, err := system.GetAdminListByGroupId(sysUser.GroupId)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取失败,GetAdminListByGroupIdErr:" + err.Error()
+			return
+		}
+		var adminIds []string
+		var companyIdsStr []string
+		for _, v := range adminList {
+			adminIds = append(adminIds, strconv.Itoa(v.AdminId))
+		}
+		//再获取组员下被共享的公司
+		var parsShare []interface{}
+		var conditionShare string
+		conditionShare = "  AND  share_seller_id  IN (" + strings.Join(adminIds, ",") + ")  "
+		listCompanyProduct, err := company.GetCompanyProductList(conditionShare, parsShare)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取失败,GetCompanyProductList:" + err.Error()
+			return
+		}
+		for _, v := range listCompanyProduct {
+			companyIdsStr = append(companyIdsStr, strconv.Itoa(v.CompanyId))
 		}
+		//本组的或者被分享到本组下面的公司
+		condition += ` AND (cp.group_id = ` + strconv.Itoa(sysUser.GroupId) + `  OR cp.company_id IN (` + strings.Join(companyIdsStr, ",") + `) )`
 	}
 
 	//状态控制

+ 11 - 3
models/company/company_product.go

@@ -678,9 +678,17 @@ func GetCompanyProductRaiForeverCount(companyId int) (count int, err error) {
 }
 
 // 根据共享销售id查被共享的公司销售id
-func GetCompanyProductSellerIdByShareSellerId(shareSellerId int) (sellerId int, err error) {
-	sqlCount := ` SELECT seller_id FROM company_product WHERE share_seller_id = ? AND product_id = 2 `
+func GetCompanyProductSellerIdByShareSellerId(shareSellerId int) (sellerIds string, err error) {
+	sqlCount := ` SELECT 	GROUP_CONCAT( DISTINCT seller_id SEPARATOR ',' ) AS seller_ids FROM company_product WHERE share_seller_id = ? AND product_id = 2 `
 	o := orm.NewOrm()
-	err = o.Raw(sqlCount, shareSellerId).QueryRow(&sellerId)
+	err = o.Raw(sqlCount, shareSellerId).QueryRow(&sellerIds)
+	return
+}
+
+// 更新被分享销售的所属组ID
+func UpdateSharGroupid(sharGroupid, shareSellerId int) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE  company_product SET  share_group_id = ? WHERE  share_seller_id = ?`
+	_, err = o.Raw(sql, sharGroupid, shareSellerId).Exec()
 	return
 }

+ 15 - 15
models/user_seller_relation.go

@@ -18,7 +18,7 @@ type UserSellerRelation struct {
 	CreateTime time.Time `description:"创建时间"`
 }
 
-//添加销售员与员工的关系
+// 添加销售员与员工的关系
 func AddUserSellerRelation(userId int64, companyId, sellerId, productId int, seller, mobile, email string) (lastId int64, err error) {
 	o := orm.NewOrm()
 	relation := UserSellerRelation{
@@ -36,7 +36,7 @@ func AddUserSellerRelation(userId int64, companyId, sellerId, productId int, sel
 	return
 }
 
-//根据企业用户id修改所属销售
+// 根据企业用户id修改所属销售
 func UpdateUserSellerRelationByCompanyId(companyId, productId, sellerId int, seller string) (err error) {
 	o := orm.NewOrm()
 	sql := `UPDATE user_seller_relation SET seller_id=?,seller = ? ,modify_time=NOW() WHERE company_id = ? AND product_id=?`
@@ -44,7 +44,7 @@ func UpdateUserSellerRelationByCompanyId(companyId, productId, sellerId int, sel
 	return
 }
 
-//删除销售员与员工的关系
+// 删除销售员与员工的关系
 func DeleteUserSellerRelation(userId, sellerId int) (err error) {
 	o := orm.NewOrm()
 	sql := ` DELETE FROM user_seller_relation WHERE user_id=? and seller_id = ?`
@@ -52,7 +52,7 @@ func DeleteUserSellerRelation(userId, sellerId int) (err error) {
 	return
 }
 
-//根据产品id删除销售员与员工的关系
+// 根据产品id删除销售员与员工的关系
 func DeleteUserSellerRelationByProductId(userId, productId int) (err error) {
 	o := orm.NewOrm()
 	sql := ` DELETE FROM user_seller_relation WHERE user_id=? and product_id = ?`
@@ -60,7 +60,7 @@ func DeleteUserSellerRelationByProductId(userId, productId int) (err error) {
 	return
 }
 
-//根据联系人id删除所有销售员与该联系人的关系
+// 根据联系人id删除所有销售员与该联系人的关系
 func DeleteUserSellerRelationByUserId(userId int) (err error) {
 	o := orm.NewOrm()
 	sql := ` DELETE FROM user_seller_relation WHERE user_id=? `
@@ -68,7 +68,7 @@ func DeleteUserSellerRelationByUserId(userId int) (err error) {
 	return
 }
 
-//根据用户id和销售员id获取关系
+// 根据用户id和销售员id获取关系
 func GetUserSellerRelation(userId int64, sellerId int) (item *UserSellerRelation, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT * FROM user_seller_relation WHERE user_id = ? and seller_id= ?`
@@ -76,7 +76,7 @@ func GetUserSellerRelation(userId int64, sellerId int) (item *UserSellerRelation
 	return
 }
 
-//获取用户的销售员(产品)的关系数量
+// 获取用户的销售员(产品)的关系数量
 func GetUserSellerRelationCount(userId int) (count int, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT COUNT(*) AS count
@@ -85,7 +85,7 @@ func GetUserSellerRelationCount(userId int) (count int, err error) {
 	return
 }
 
-//通过用户id获取用户的销售员(产品)的关系
+// 通过用户id获取用户的销售员(产品)的关系
 func GetUserSellerRelationList(userId int) (list []*UserSellerRelation, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT *
@@ -94,14 +94,14 @@ func GetUserSellerRelationList(userId int) (list []*UserSellerRelation, err erro
 	return
 }
 
-//用户与销售员的关系数量切片
+// 用户与销售员的关系数量切片
 type UserSellerRelationSlice struct {
 	Total      int    `description:"总阅读数"`
 	UserId     int    `description:"用户id"`
 	ProductIds string `description:"所属权限id"`
 }
 
-//根据用户id字符串,获取用户与销售员的关系数量
+// 根据用户id字符串,获取用户与销售员的关系数量
 func GetUserSellerRelationCountByUserIds(userIds string) (items []*UserSellerRelationSlice, err error) {
 	o := orm.NewOrm()
 	sql := `select *,COUNT(1) AS total,GROUP_CONCAT( DISTINCT product_id SEPARATOR ',' ) AS product_ids from (SELECT user_id, product_id
@@ -110,7 +110,7 @@ func GetUserSellerRelationCountByUserIds(userIds string) (items []*UserSellerRel
 	return
 }
 
-//根据用户产品权限来获取名片数
+// 根据用户产品权限来获取名片数
 func GetCompanyUserBusinessCardCountByProductId(companyId, productId int) (count int, err error) {
 	o := orm.NewOrm()
 	sql := ` SELECT COUNT(1) AS count FROM user_seller_relation a 
@@ -127,7 +127,7 @@ func GetCompanyUserSellerRelationByProductId(companyId, productId int) (items []
 	return
 }
 
-//根据企业id和产品id获取所有不是该产品id的所有用户
+// 根据企业id和产品id获取所有不是该产品id的所有用户
 func GetNotCompanyUserSellerRelationByProductId(companyId, productId int) (items []*UserSellerRelation, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT user_id FROM user_seller_relation WHERE company_id = ? AND product_id != ?`
@@ -135,7 +135,7 @@ func GetNotCompanyUserSellerRelationByProductId(companyId, productId int) (items
 	return
 }
 
-//根据产品id删除某个客户下 销售员与员工的关系
+// 根据产品id删除某个客户下 销售员与员工的关系
 func DelCompanyUserSellerRelationByProductId(companyId, productId int) (err error) {
 	o := orm.NewOrm()
 	sql := ` DELETE FROM user_seller_relation WHERE company_id = ? AND product_id = ? `
@@ -143,7 +143,7 @@ func DelCompanyUserSellerRelationByProductId(companyId, productId int) (err erro
 	return
 }
 
-//获取联系人分组信息
+// 获取联系人分组信息
 type UserSellerRelationGroup struct {
 	RelationId     int64     `orm:"column(relation_id);pk"`
 	UserId         int       `description:"用户id"`
@@ -170,7 +170,7 @@ func GetUserGroupSellerByUserId(userId int) (item *UserSellerRelationGroup, err
 	return
 }
 
-//根据联系人id获所有的分组信息
+// 根据联系人id获所有的分组信息
 func GetUserGroupSellersByUserId(userId int) (list []*UserSellerRelationGroup, err error) {
 	o := orm.NewOrm()
 	sql := ` SELECT a.*,b.real_name AS seller_real_name,c.status  

+ 16 - 8
services/company_product.go

@@ -4,6 +4,7 @@ import (
 	"errors"
 	"fmt"
 	"hongze/hz_crm_api/models/company"
+	"hongze/hz_crm_api/models/system"
 	"hongze/hz_crm_api/services/alarm_msg"
 )
 
@@ -35,31 +36,38 @@ func GetSellNameMapByCompanyIds(companyIds []int) (respMap map[int]string) {
 	return
 }
 
+//	func init() {
+//		Need960init()
+//	}
 func Need960init() (respMap map[int]string) {
 	var err error
 	defer func() {
 		if err != nil {
 			fmt.Println(err)
-			go alarm_msg.SendAlarmMsg("根据公司ID获取权益销售名称,失败:"+err.Error(), 2)
 		}
 	}()
 
 	var pars []interface{}
 	var condition string
 	respMap = make(map[int]string, 0)
-	condition = "  share_seller_id > 0   GROUP BY share_seller_id   "
+	condition = "  AND  share_seller_id > 0   GROUP BY share_seller_id   "
 	list, e := company.GetCompanyProductList(condition, pars)
 	if e != nil {
 		err = errors.New("GetCompanyProductList, Err: " + e.Error())
 		return
 	}
 	for _, v := range list {
-		fmt.Println(v)
-		//seller, err := system.GetSysAdminById(v.ShareSellerId)
-		//if err != nil {
-		//	fmt.Println(err)
-		//	return
-		//}
+		fmt.Println(v.ShareSellerId)
+		seller, err := system.GetSysAdminById(v.ShareSellerId)
+		if err != nil {
+			fmt.Println(err)
+			return
+		}
+		err = company.UpdateSharGroupid(seller.GroupId, v.ShareSellerId)
+		if err != nil {
+			fmt.Println(err)
+			return
+		}
 	}
 	return
 }

+ 52 - 14
services/cygx/admin_power.go

@@ -13,23 +13,55 @@ import (
 // 获取这个销售所能查看的手机号权限
 func GetAdminLookUserMobile(adminInfo *system.Admin) (mapMobile map[string]string, err error) {
 
-	sellerId, e := company.GetCompanyProductSellerIdByShareSellerId(adminInfo.AdminId)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetCompanyProductSellerIdByShareSellerId 根据共享销售id查被共享的公司销售id, Err: " + e.Error())
-		return
-	}
-	var conditionMobile string
+	//sellerIds, e := company.GetCompanyProductSellerIdByShareSellerId(adminInfo.AdminId)
+	//if e != nil && e.Error() != utils.ErrNoRow() {
+	//	err = errors.New("GetCompanyProductSellerIdByShareSellerId 根据共享销售id查被共享的公司销售id, Err: " + e.Error())
+	//	return
+	//}
+	var companyIds []string
+	var adminIds []string
+
+	//如果是组长获取所属组员的ID
 	if adminInfo.RoleTypeCode == "rai_group" {
-		//组长查看本组所有组员
-		conditionMobile = ` SELECT mobile FROM user_seller_relation WHERE seller_id IN (SELECT  admin_id FROM admin WHERE group_id = (SELECT group_id FROM admin WHERE admin_id = ` + strconv.Itoa(adminInfo.AdminId) + ` )) `
-	} else {
-		//组员查看自己
-		if sellerId != 0 {
-			conditionMobile = ` SELECT mobile FROM user_seller_relation WHERE seller_id  IN ( ` + strconv.Itoa(adminInfo.AdminId) + `,` + strconv.Itoa(sellerId) + ` ) `
-		} else {
-			conditionMobile = ` SELECT mobile FROM user_seller_relation WHERE seller_id  IN ( ` + strconv.Itoa(adminInfo.AdminId) + ` ) `
+		adminList, e := system.GetAdminListByGroupId(adminInfo.GroupId)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			err = errors.New("GetAdminListByGroupId, Err: " + e.Error())
+			return
 		}
+		for _, v := range adminList {
+			adminIds = append(adminIds, strconv.Itoa(v.AdminId))
+		}
+	} else {
+		adminIds = append(adminIds, strconv.Itoa(adminInfo.AdminId))
+	}
+	//再获取组员下被共享的公司
+	var pars []interface{}
+	var condition string
+	condition = "  AND  share_seller_id  IN (" + strings.Join(adminIds, ",") + ")  "
+	listCompanyProduct, e := company.GetCompanyProductList(condition, pars)
+	if e != nil {
+		err = errors.New("GetCompanyProductList, Err: " + e.Error())
+		return
 	}
+	for _, v := range listCompanyProduct {
+		companyIds = append(companyIds, strconv.Itoa(v.CompanyId))
+	}
+	companyIds = append(companyIds, "0")
+	var conditionMobile string
+	//if adminInfo.RoleTypeCode == "rai_group" {
+	//
+	//	//组长查看本组所有组员
+	//	conditionMobile = ` SELECT mobile FROM user_seller_relation WHERE seller_id IN (SELECT  admin_id FROM admin WHERE group_id = (SELECT group_id FROM admin WHERE admin_id = ` + strconv.Itoa(adminInfo.AdminId) + ` )) `
+	//} else {
+	//	//组员查看自己
+	//	if sellerIds != "" {
+	//		conditionMobile = ` SELECT mobile FROM user_seller_relation WHERE seller_id  IN ( ` + strconv.Itoa(adminInfo.AdminId) + `,` + sellerIds + ` ) `
+	//	} else {
+	//		conditionMobile = ` SELECT mobile FROM user_seller_relation WHERE seller_id  IN ( ` + strconv.Itoa(adminInfo.AdminId) + ` ) `
+	//	}
+	//}
+	conditionMobile = ` SELECT mobile FROM user_seller_relation WHERE  1=1  AND product_id = 2   AND (seller_id  IN ( ` + strings.Join(adminIds, ",") + ` )  OR  company_id IN (` + strings.Join(companyIds, ",") + `))   `
+
 	mobileList, e := cygx.GetSellerUserMobile(conditionMobile)
 	if e != nil {
 		err = errors.New("GetSellerUserMobile 获取这个销售所能查看的手机号权限失败, Err: " + e.Error())
@@ -66,6 +98,12 @@ func GetAdminLookUserUserId(adminInfo *system.Admin) (userIds []int, err error)
 	return
 }
 
+//func init() {
+//	sellerId, e := company.GetCompanyProductSellerIdByShareSellerId(163)
+//	fmt.Println(e)
+//	fmt.Println(sellerId)
+//}
+
 // 获取这个销售所能查看的手机号权限
 func GetAdminLookUserCompanyIds(sysUser *system.Admin) (companyIds []int, err error) {
 	//如果不是管理员,权益管理员那么就对可见权限范围做处理