Преглед на файлове

Merge branch 'master' of http://8.136.199.33:3000/hongze/hz_crm_api into crm/crm_14.7.1

xingzai преди 7 месеца
родител
ревизия
890b4dc581

+ 11 - 4
controllers/company.go

@@ -803,8 +803,8 @@ func (this *CompanyController) List() {
 								condition += ` AND (b.seller_id = ? OR (b.share_seller_id = ? AND b.is_share = 1)) `
 								pars = append(pars, sysUser.AdminId, sysUser.AdminId)
 							} else {
-								condition += ` AND (b.seller_id = ? OR (b.share_seller_id = ? AND b.is_share = 1)) `
-								pars = append(pars, sysUser.AdminId, sysUser.AdminId)
+								condition += ` AND b.seller_id = ? `
+								pars = append(pars, sysUser.AdminId)
 							}
 						}
 
@@ -3141,6 +3141,7 @@ func (this *CompanyController) Detail() {
 		return
 	}
 	shareSellerId := 0
+	shareGroupId := 0
 	var productItem *company.CompanyProduct
 	if productId > 0 {
 		var e error
@@ -3152,6 +3153,7 @@ func (this *CompanyController) Detail() {
 		}
 		if productItem != nil {
 			shareSellerId = productItem.ShareSellerId
+			shareGroupId = productItem.ShareGroupId
 		}
 	}
 
@@ -3202,6 +3204,11 @@ func (this *CompanyController) Detail() {
 						isOk = true
 						break
 					}
+					// 分享的客户的组长 也有权限
+					if productItem.IsShare == 1 && productItem.ShareGroupId == sysUser.GroupId {
+						isOk = true
+						break
+					}
 
 					// 如果是组长,且该客户属于本组客户
 					if sysUser.Authority == 4 && productInfo.GroupId > 0 && productInfo.GroupId == sysUser.GroupId && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_TEAM {
@@ -3281,7 +3288,7 @@ func (this *CompanyController) Detail() {
 				if item.Status == utils.COMPANY_STATUS_FREEZE || item.Status == utils.COMPANY_STATUS_LOSE {
 					btnDetailItem.BtnHistoryList = true
 				} else {
-					if item.SellerId == sysUser.AdminId || shareSellerId == sysUser.AdminId {
+					if item.SellerId == sysUser.AdminId || shareSellerId == sysUser.AdminId || shareGroupId == sysUser.GroupId {
 						btnDetailItem.BtnHistoryList = true
 					}
 					if sysUser.Authority > 0 {
@@ -3364,7 +3371,7 @@ func (this *CompanyController) Detail() {
 				if item.Status == utils.COMPANY_STATUS_FREEZE || item.Status == utils.COMPANY_STATUS_LOSE {
 					btnDetailItem.BtnHistoryList = true
 				} else {
-					if item.SellerId == sysUser.AdminId || item.ShareSellerId == sysUser.AdminId {
+					if item.SellerId == sysUser.AdminId || item.ShareSellerId == sysUser.AdminId || shareGroupId == sysUser.GroupId {
 						btnDetailItem.BtnHistoryList = true
 					}
 					if sysUser.Authority > 0 {

+ 129 - 1
controllers/company_seller.go

@@ -2442,7 +2442,7 @@ func (this *CompanySellerController) ShareSellerList() {
 			tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller)
 			resp = append(resp, tmpDepartmentGroupSeller...)
 		}
-	} else {
+	} else if productId == utils.COMPANY_PRODUCT_FICC_ID {
 		groupId := 0
 		if utils.RunMode == "release" {
 			groupId = 37
@@ -2466,6 +2466,134 @@ func (this *CompanySellerController) ShareSellerList() {
 			}
 			resp = append(resp, sellerItem)
 		}
+	} else {
+		enabled := 1
+		roleCodeTypeStr := ""
+		departmentList, err := system.GetDepartmentList()
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取部门失败,Err:" + err.Error()
+			return
+		}
+		for _, department := range departmentList {
+			departmentGroupSellerList := make([]company.DepartmentGroupSellers, 0)
+			item := company.DepartmentGroupSellers{
+				AdminId: fmt.Sprint("department_", department.DepartmentId),
+				//AdminName string `description:"系统用户名称"`
+				RealName:     department.DepartmentName,
+				ChildrenList: departmentGroupSellerList,
+			}
+
+			groupList, err := system.GetSysGroupByDepartmentId(department.DepartmentId)
+			if err != nil {
+				br.Msg = "获取失败"
+				br.ErrMsg = "获取分组失败,Err:" + err.Error()
+				return
+			}
+			for _, group := range groupList {
+				groupSellerList := make([]company.DepartmentGroupSellers, 0)
+				groupItem := company.DepartmentGroupSellers{
+					AdminId: fmt.Sprint("group_", group.DepartmentId),
+					//AdminName string `description:"系统用户名称"`
+					RealName:     group.GroupName,
+					ChildrenList: groupSellerList,
+				}
+				teamList, err := system.GetSysTeamByDepartmentId(group.GroupId)
+				if err != nil {
+					br.Msg = "获取小组失败"
+					br.ErrMsg = "获取小组失败,Err:" + err.Error()
+					return
+				}
+				for _, team := range teamList {
+					teamSellerList := make([]company.DepartmentGroupSellers, 0)
+					teamItem := company.DepartmentGroupSellers{
+						AdminId: fmt.Sprint("team_", team.GroupId),
+						//AdminName string `description:"系统用户名称"`
+						RealName:     team.GroupName,
+						ChildrenList: teamSellerList,
+					}
+					sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled)
+					if err != nil {
+						br.Msg = "获取销售失败"
+						br.ErrMsg = "获取销售失败,Err:" + err.Error()
+						return
+					}
+					for _, seller := range sellerList {
+						sellerItem := company.DepartmentGroupSellers{
+							AdminId: fmt.Sprint(seller.AdminId),
+							//AdminName string `description:"系统用户名称"`
+							RealName:     seller.RealName,
+							Authority:    seller.Authority,
+							RoleTypeCode: seller.RoleTypeCode,
+						}
+						//fmt.Println("seller.RealName:", seller.RealName)
+						teamSellerList = append(teamSellerList, sellerItem)
+					}
+					teamSellerList = sortDepartmentGroupSellers(teamSellerList)
+					teamItem.ChildrenList = teamSellerList
+					if len(teamSellerList) > 0 {
+						groupSellerList = append(groupSellerList, teamItem)
+					}
+				}
+				//分组为0的销售(直属分组)
+				groupTeamSellerList, err := system.GetGrooupsysUserList(group.GroupId, roleCodeTypeStr, enabled)
+				if err != nil {
+					br.Msg = "获取销售失败"
+					br.ErrMsg = "获取销售失败,Err:" + err.Error()
+					return
+				}
+				if len(groupTeamSellerList) > 0 {
+					tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
+					for _, seller := range groupTeamSellerList {
+						sellerItem := company.DepartmentGroupSellers{
+							AdminId: fmt.Sprint(seller.AdminId),
+							//AdminName string `description:"系统用户名称"`
+							RealName:     seller.RealName,
+							Authority:    seller.Authority,
+							RoleTypeCode: seller.RoleTypeCode,
+						}
+						tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
+					}
+					//排个序
+					tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
+					groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...)
+				}
+
+				groupItem.ChildrenList = groupSellerList
+				if len(groupSellerList) > 0 {
+					departmentGroupSellerList = append(departmentGroupSellerList, groupItem)
+				}
+			}
+
+			//分组为0的销售(直属部门)
+			departmentSellerList, err := system.GetDepartmentGroupSysUserList(department.DepartmentId, 0, roleCodeTypeStr)
+			if err != nil {
+				br.Msg = "获取销售失败"
+				br.ErrMsg = "获取销售失败,Err:" + err.Error()
+				return
+			}
+			if len(departmentSellerList) > 0 {
+				tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
+				for _, seller := range departmentSellerList {
+					sellerItem := company.DepartmentGroupSellers{
+						AdminId: fmt.Sprint(seller.AdminId),
+						//AdminName string `description:"系统用户名称"`
+						RealName:     seller.RealName,
+						Authority:    seller.Authority,
+						RoleTypeCode: seller.RoleTypeCode,
+					}
+					tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
+				}
+				//排个序
+				tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
+				departmentGroupSellerList = append(departmentGroupSellerList, tmpDepartmentGroupSellersList...)
+			}
+
+			item.ChildrenList = departmentGroupSellerList
+			if len(departmentGroupSellerList) > 0 {
+				resp = append(resp, item)
+			}
+		}
 	}
 
 	br.Ret = 200

+ 16 - 14
controllers/company_share.go

@@ -67,7 +67,8 @@ func (this *CompanyController) CompanyShare() {
 	if req.IsShare == 0 {
 		companyProductItem.ShareSeller = ""
 		companyProductItem.ShareSellerId = 0
-		updateCol = append(updateCol, "ShareSeller", "ShareSellerId")
+		companyProductItem.ShareGroupId = 0
+		updateCol = append(updateCol, "ShareSeller", "ShareSellerId", "ShareGroupId")
 	}
 
 	err = companyProductItem.Update(updateCol)
@@ -193,17 +194,18 @@ func (this *CompanyController) CompanyShareList() {
 						condition += ` AND b.group_id IN (` + groupIdStr + `) `
 					}
 				}
-			} else if sysUser.Authority == 4 || roleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
-				if sysUser.GroupId == groupId {
-					sellerIdStr, err := services.GetFiccSellerIdsByGroupId(sysUser.GroupId)
-					if err != nil {
-						br.Msg = "获取销售分组信息失败!"
-						br.ErrMsg = "获取销售分组信息失败!Err:" + err.Error()
-						return
-					}
-					if sellerIdStr != "" {
-						condition += ` AND b.share_seller_id IN (` + sellerIdStr + `) `
-					}
+			} else if roleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
+				//if sysUser.GroupId == groupId {
+				sellerIdStr, err := services.GetFiccSellerIdsByGroupId(sysUser.GroupId)
+				if err != nil {
+					br.Msg = "获取销售分组信息失败!"
+					br.ErrMsg = "获取销售分组信息失败!Err:" + err.Error()
+					return
+				}
+				//权益销售组长可以查看自己的组员以及共享给组员的客户
+				if sellerIdStr != "" {
+					condition += ` AND ( b.share_seller_id IN (` + sellerIdStr + `)  OR   b.group_id= ? )`
+					pars = append(pars, sysUser.GroupId)
 				} else {
 					condition += ` AND b.group_id=? `
 					pars = append(pars, sysUser.GroupId)
@@ -221,7 +223,6 @@ func (this *CompanyController) CompanyShareList() {
 		}
 	}
 
-
 	if listParam == 0 {
 		if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP ||
 			sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_TEAM || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER ||
@@ -753,7 +754,8 @@ func (this *CompanyController) MoveShareSeller() {
 	updateCol := make([]string, 0)
 	companyProductItem.ShareSeller = seller.RealName
 	companyProductItem.ShareSellerId = seller.AdminId
-	updateCol = append(updateCol, "ShareSeller", "ShareSellerId")
+	companyProductItem.ShareGroupId = seller.GroupId
+	updateCol = append(updateCol, "ShareSeller", "ShareSellerId", "ShareGroupId")
 
 	err = companyProductItem.Update(updateCol)
 	if err != nil {

+ 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)
 	}
 	//添加操作日志记录

+ 222 - 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,241 @@ 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))
 		}
+		companyIdsStr = append(companyIdsStr, "0")
+		//本组的或者被分享到本组下面的公司
+		condition += ` AND (cp.group_id = ` + strconv.Itoa(sysUser.GroupId) + `  OR cp.company_id IN (` + strings.Join(companyIdsStr, ",") + `) )`
 	}
 
 	//状态控制

+ 26 - 13
controllers/roadshow/calendar.go

@@ -70,6 +70,18 @@ func (this *CalendarController) Add() {
 
 	researcherMap := make(map[int]string)
 	var checkIsAdd []string
+
+	//获取所有自定义的权益研究员
+	sysUserList, err := cygx.GetAskEmailList()
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,GetAskEmailList Err: " + err.Error()
+		return
+	}
+	raiAskadminMap := make(map[int]bool, 0)
+	for _, v := range sysUserList {
+		raiAskadminMap[v.AdminId] = true
+	}
 	//var tipMsg string
 	for _, v := range req.ResearcherList {
 		if v.ResearcherId <= 0 {
@@ -106,6 +118,11 @@ func (this *CalendarController) Add() {
 			return
 		}
 
+		if req.ActivityType == "沙龙" && !raiAskadminMap[v.ResearcherId] {
+			br.Msg = "ficc研究员暂不支持添加沙龙"
+			return
+		}
+
 		startDateTime := v.StartDate + " " + v.StartTime
 		endDateTime := v.EndDate + " " + v.EndTime
 
@@ -174,16 +191,6 @@ func (this *CalendarController) Add() {
 		br.IsSendEmail = false
 		return
 	}
-	sysUserList, err := cygx.GetAskEmailList()
-	if err != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取失败,GetAskEmailList Err: " + err.Error()
-		return
-	}
-	raiAskadminMap := make(map[int]bool, 0)
-	for _, v := range sysUserList {
-		raiAskadminMap[v.AdminId] = true
-	}
 
 	rsCalendar := new(roadshow.RsCalendar)
 	rsCalendar.SysUserId = sysUser.AdminId
@@ -1180,7 +1187,7 @@ func (this *CalendarController) CalendarList() {
 	}
 	if calendarType == 2 {
 		condition += ` AND b.status>=2`
-		condition += ` AND a.activity_type IN('路演','公开会议') `
+		condition += ` AND a.activity_type IN('路演','公开会议','沙龙') `
 	}
 	if calendarType == 3 {
 		condition += ` AND a.activity_type='内部会议' `
@@ -1276,7 +1283,7 @@ func (this *CalendarController) CalendarList() {
 			}
 		}
 		//如果是已结束的权益销售添加的活动,就行进行按钮展示
-		if mapRaiSllerId[dataList[i].SysUserId] && utils.InArrayByInt([]int{2, 6}, dataList[i].Status) {
+		if mapRaiSllerId[dataList[i].SysUserId] && utils.InArrayByInt([]int{2, 6}, dataList[i].Status) && dataList[i].ActivityType != "沙龙" {
 			if mapMeetingCount[dataList[i].RsCalendarId] == 0 {
 				dataList[i].SubmitButton = true
 			} else {
@@ -2288,6 +2295,12 @@ func (this *CalendarController) ResearcherCalendarDetail() {
 
 	if calendarList == nil {
 		calendarList = make([]*roadshow.CalendarListView, 0)
+	} else {
+		for _, v := range calendarList { //上海同步过来信息展示逻辑替换 需求池 953
+			if v.Source == 1 && v.CompanyName == "" {
+				v.CompanyName = v.Title
+			}
+		}
 	}
 
 	if matterList == nil {
@@ -2488,7 +2501,7 @@ func getTitle(activityType, roadshowType, activityCategory, roadshowPlatform, pr
 	switch activityType {
 	case "内部会议":
 		title = "内部会议"
-	case "公开会议", "路演":
+	case "公开会议", "路演", "沙龙":
 		if roadshowType == "线上" {
 			title = roadshowType + activityType + roadshowPlatform
 		} else {

+ 8 - 1
controllers/roadshow/company.go

@@ -33,7 +33,14 @@ func (this *CalendarController) CompanySearch() {
 		return
 	}
 	KeyWord = "%" + KeyWord + "%"
-	list, err := roadshow.CompanySearchV2(sysUser.AdminId, KeyWord)
+	var groupId int
+	if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
+		groupId = sysUser.GroupId
+	} else {
+		groupId = -1
+	}
+
+	list, err := roadshow.CompanySearchV2(sysUser.AdminId, groupId, KeyWord)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "搜索客户失败!"
 		br.ErrMsg = "搜索客户失败!Err:" + err.Error()

+ 4 - 0
go.sum

@@ -392,6 +392,8 @@ github.com/ssdb/gossdb v0.0.0-20180723034631-88f6b59b84ec/go.mod h1:QBvMkMya+gXc
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
+github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
+github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
 github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
 github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
@@ -399,7 +401,9 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5
 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
 github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
+github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
 github.com/syndtr/goleveldb v0.0.0-20160425020131-cfa635847112/go.mod h1:Z4AUp2Km+PwemOoO/VB5AOx9XSsIItzFjoJlOSiYmn0=
 github.com/syndtr/goleveldb v0.0.0-20181127023241-353a9fca669c/go.mod h1:Z4AUp2Km+PwemOoO/VB5AOx9XSsIItzFjoJlOSiYmn0=
 github.com/tealeg/xlsx v1.0.5 h1:+f8oFmvY8Gw1iUXzPk+kz+4GpbDZPK1FhPiQRd+ypgE=

+ 12 - 3
models/company/company_product.go

@@ -60,6 +60,7 @@ type CompanyProduct struct {
 	IsShare             int       `description:"0:非共享用户,1:共享客户"`
 	ShareSeller         string    `description:"共享销售员"`
 	ShareSellerId       int       `description:"共享销售员id"`
+	ShareGroupId        int       `description:"共享销售员所属分组ID"`
 }
 
 // 新增客户产品
@@ -677,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
 }

+ 4 - 4
models/roadshow/company.go

@@ -25,7 +25,7 @@ func CompanySearch(sellerId int, keyWord string) (list []*CompanySearchView, err
 	return
 }
 
-func CompanySearchV2(sellerId int, keyWord string) (list []*CompanySearchView, err error) {
+func CompanySearchV2(sellerId, groupId int, keyWord string) (list []*CompanySearchView, err error) {
 	list = make([]*CompanySearchView, 0)
 
 	// 中文客户
@@ -39,10 +39,10 @@ func CompanySearchV2(sellerId int, keyWord string) (list []*CompanySearchView, e
 				company AS a
 			INNER JOIN company_product AS b ON a.company_id = b.company_id 
 			WHERE
-				b.status IN ('正式', '试用') AND (b.seller_id = ? OR b.share_seller_id = ?) AND a.company_name LIKE ?
+				b.status IN ('正式', '试用', '永续') AND (b.seller_id = ? OR b.share_seller_id = ?  OR b.group_id = ? OR b.share_group_id = ?  ) AND a.company_name LIKE ?
 			GROUP BY
-				b.company_id`
-	_, err = o.Raw(sql, sellerId, sellerId, keyWord).QueryRows(&companies)
+				b.company_id `
+	_, err = o.Raw(sql, sellerId, sellerId, groupId, groupId, keyWord).QueryRows(&companies)
 	if err != nil {
 		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  

+ 8 - 8
models/yb/apply_record.go

@@ -173,7 +173,7 @@ WHERE
 	AND ( y.apply_record_id > 0 or a.company_id=1 or bp.company_product_id is null)
 	AND ( a.mobile IS NOT NULL || a.email IS NOT NULL ) 
 	AND ( a.mobile <> '' OR a.email <> '' ) 
-	AND ( c.create_platform <> 4 OR c.create_platform IS NULL )
+	AND ( c.create_platform in (1,3,6,9) OR c.create_platform IS NULL )
     AND ((y.apply_record_id > 0 and y.create_time > ?) OR (y.apply_record_id is null AND a.created_time > ?) )
 	AND ( y.source > 0 OR y.source IS NULL)
 `
@@ -181,10 +181,10 @@ WHERE
 	sql += ` GROUP BY a.user_id ORDER BY last_time desc`
 
 	sql += ` LIMIT ?,?`
-	pars = append(pars, startTime)
-	pars = append(pars, startTime)
+	//pars = append(pars, startTime)
+	//pars = append(pars, startTime)
 
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	_, err = o.Raw(sql, startTime, startTime, pars, startSize, pageSize).QueryRows(&list)
 	return
 }
 
@@ -259,17 +259,17 @@ WHERE
 	AND ( y.apply_record_id > 0 or a.company_id=1 or bp.company_product_id is null)
 	AND ( a.mobile IS NOT NULL || a.email IS NOT NULL ) 
 	AND ( a.mobile <> '' OR a.email <> '' ) 
-	AND ( c.create_platform <> 4 OR c.create_platform IS NULL )
+	AND ( c.create_platform in (1,3,6,9) OR c.create_platform IS NULL )
     AND ((y.apply_record_id > 0 and y.create_time > ?) OR (y.apply_record_id is null AND a.created_time > ?) )
 	AND ( y.source > 0 OR y.source IS NULL)
 `
 	sql += condition
 	sql += ` GROUP BY a.user_id ORDER BY last_time desc`
 
-	pars = append(pars, startTime)
-	pars = append(pars, startTime)
+	//pars = append(pars, startTime)
+	//pars = append(pars, startTime)
 
-	_, err = o.Raw(sql, pars).QueryRows(&list)
+	_, err = o.Raw(sql, startTime, startTime, pars).QueryRows(&list)
 	return
 }
 

+ 5 - 0
services/company.go

@@ -2418,6 +2418,11 @@ func GetShareCompanyPermissionButton(roleTypeCode, statuses string, productId in
 		button.BtnRemarkView = true
 		button.BtnServiceRecord = true
 	}
+
+	//梁春悦的单独展示
+	if sysUser.RoleName == "权益服务组长" {
+		button.BtnModifySeller = true
+	}
 	if roleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
 		button.BtnModifySeller = false
 	}

+ 37 - 0
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"
 )
 
@@ -34,3 +35,39 @@ 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)
+		}
+	}()
+
+	var pars []interface{}
+	var condition string
+	respMap = make(map[int]string, 0)
+	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.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) {
 	//如果不是管理员,权益管理员那么就对可见权限范围做处理