浏览代码

Merge branch 'CRM_14.7.2'

zwxi 10 月之前
父节点
当前提交
d406e0087c

+ 63 - 31
controllers/company.go

@@ -369,10 +369,16 @@ func (this *CompanyController) SearchList() {
 
 		btnItem := new(company.ButtonPermission)
 		if item.CompanyId != 1 {
-			*btnItem = services.GetCompanyPermissionButton(roleTypeCode, itemStatus, item.SellerIds, item.GroupIds, item.GroupId, sysUser.GroupId, item.SellerId, sysUser.AdminId, sysUser.Authority, item.ProductId, item.ShareSellerId)
+			*btnItem = services.GetCompanyPermissionButton(roleTypeCode, itemStatus, item.SellerIds, item.GroupIds, item.GroupId, sysUser.GroupId, item.SellerId, sysUser.AdminId, sysUser.Authority, item.ProductId, -1, item.ShareSellerIds)
 			//根据销售"领取客户"的权限对部分按钮做限制
 			btnItem = services.GetCompanyPermissionButtonByReceiveEnabled(btnItem, receiveEnabled)
 		}
+		if list[i].IsShare == 1 && btnItem.BtnModifySeller == true && roleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN {
+			//如果已经是共享客户了,取消共享按钮全都显示,和修改销售权限一样
+			btnItem.BtnShare = true
+		}
+		// 客户搜索页不要共享客户按钮
+		btnItem.BtnShare = false
 		//如果是权益客户,操作者又是权益管理员,那么就对他进行展示研选详情按钮
 		if strings.Contains(item.CompanyType, utils.COMPANY_CLASSIFY_RAI) && sysUser.RoleName == utils.ROLE_TYPE_RAI_PRODUCT {
 			btnItem.IsResearchShow = true
@@ -679,11 +685,11 @@ func (this *CompanyController) List() {
 				if status == "全部" {
 					////如果是筛选了流失客户状态
 					if sysUser.Authority <= 0 {
-						condition += ` AND (b.seller_id=? OR status='流失')  `
-						pars = append(pars, sysUser.AdminId)
+						condition += ` AND (b.seller_id=? OR status='流失' OR (b.share_seller_id = ? AND b.is_share = 1))  `
+						pars = append(pars, sysUser.AdminId, sysUser.AdminId)
 
-						permissionCondition += ` AND b.seller_id=? `
-						permissionPars = append(permissionPars, sysUser.AdminId)
+						permissionCondition += `  AND (b.seller_id=? OR status='流失' OR (b.share_seller_id = ? AND b.is_share = 1))  `
+						permissionPars = append(permissionPars, sysUser.AdminId, sysUser.AdminId)
 					} else {
 						if sysUser.Authority == 1 {
 							condition += ` AND (b.department_id=?  OR status='流失')`
@@ -794,16 +800,16 @@ func (this *CompanyController) List() {
 
 							// 是否包含共享客户(新增合同时, 关键词搜索客户为true)
 							if includeShare {
-								condition += ` AND (b.seller_id = ? OR (a.share_seller_id = ? AND a.is_share = 1)) `
+								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=?  `
-								pars = append(pars, sysUser.AdminId)
+								condition += ` AND (b.seller_id = ? OR (b.share_seller_id = ? AND b.is_share = 1)) `
+								pars = append(pars, sysUser.AdminId, sysUser.AdminId)
 							}
 						}
 
-						permissionCondition += ` AND b.seller_id=? `
-						permissionPars = append(permissionPars, sysUser.AdminId)
+						permissionCondition += `  AND (b.seller_id=? OR (b.share_seller_id = ? AND b.is_share = 1))  `
+						permissionPars = append(permissionPars, sysUser.AdminId, sysUser.AdminId)
 					} else {
 						if sysUser.Authority == 1 {
 							if status != utils.COMPANY_STATUS_LOSE {
@@ -1323,11 +1329,11 @@ func (this *CompanyController) List() {
 		//按钮显示控制
 		btnItem := new(company.ButtonPermission)
 		if item.CompanyId != 1 {
-			*btnItem = services.GetCompanyPermissionButton(roleTypeCode, itemStatus, item.GroupIds, item.GroupIds, item.GroupId, sysUser.GroupId, item.SellerId, sysUser.AdminId, sysUser.Authority, item.ProductId, item.ShareSellerId)
+			*btnItem = services.GetCompanyPermissionButton(roleTypeCode, itemStatus, item.SellerIds, item.GroupIds, item.GroupId, sysUser.GroupId, item.SellerId, sysUser.AdminId, sysUser.Authority, item.ProductId, -1, item.ShareSellerIds)
 			//根据销售"领取客户"的权限对部分按钮做限制
 			btnItem = services.GetCompanyPermissionButtonByReceiveEnabled(btnItem, receiveEnabled)
 		}
-		if list[i].IsShare == 1 && btnItem.BtnModifySeller == true {
+		if list[i].IsShare == 1 && btnItem.BtnModifySeller == true && roleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN {
 			//如果已经是共享客户了,取消共享按钮全都显示,和修改销售权限一样
 			btnItem.BtnShare = true
 		}
@@ -1597,10 +1603,11 @@ func (this *CompanyController) List() {
 			//viewTotal:=GetviewTotal(v.CompanyId)
 
 			//活跃(客户状态)
-			tmpStatus := v.Status
-			if v.IsShare == 1 {
-				tmpStatus = v.Status + "(共享)"
-			}
+			//if v.IsShare != 1 {
+			//	if v.BtnItem.BtnModifySeller == true {
+			//		v.BtnItem.BtnModifySeller = false
+			//	}
+			//}
 			//productIdSlice := strings.Split(v.ProductIds, "/")
 			//statusSlice := strings.Split(v.Status, "/")
 			//for productIndex, tmpProductId := range productIdSlice {
@@ -1699,7 +1706,7 @@ func (this *CompanyController) List() {
 				RenewalReason:    v.RenewalReason,
 				FreezeReason:     v.FreezeReason,
 				LossTime:         v.LossTime,
-				Status:           tmpStatus,
+				Status:           v.StatusStr,
 				CompanyType:      v.CompanyType,
 				ApproveStatus:    v.ApproveStatus,
 				SellerName:       v.SellerName,
@@ -1750,14 +1757,23 @@ func (this *CompanyController) List() {
 				IsShare:         v.IsShare,
 				CloseTime:       v.CloseTime,
 				CloseReason:     v.CloseReason,
-				ShareSeller:     v.ShareSeller,
 				ShareSellerId:   v.ShareSellerId,
-			}
-			if v.ShareSellerId != 0 {
-				shareSeller := adminMap[v.ShareSellerId]
-				if shareSeller != nil {
-					companyList.ShareSeller = shareSeller.RealName + "(" + shareSeller.GroupName + ")"
+				ShareSellerIds:  v.ShareSellerIds,
+			}
+			if v.ShareSellerIds != "" {
+				shareSellerIds := strings.Split(v.ShareSellerIds, ",")
+				for _, idStr := range shareSellerIds {
+					shareSellerId, e := strconv.Atoi(idStr)
+					if e != nil {
+						err = e
+						return
+					}
+					shareSeller := adminMap[shareSellerId]
+					if shareSeller != nil {
+						companyList.ShareSeller += shareSeller.RealName + "(" + shareSeller.GroupName + ")" + "/"
+					}
 				}
+				companyList.ShareSeller = strings.TrimRight(companyList.ShareSeller, "/")
 			}
 			companyLists = append(companyLists, companyList)
 		}
@@ -3086,15 +3102,30 @@ func (this *CompanyController) Detail() {
 	}
 	// CRM8.8-是否为编辑页的客户详情
 	isEdit, _ := this.GetBool("IsEdit")
+
+	productId := services.GetProductId(sysUser.RoleTypeCode)
 	item, err := company.GetCompanyDetailById(companyId)
 	if err != nil {
 		br.Msg = "获取信息失败"
 		br.ErrMsg = "获取数据失败,Err:" + err.Error()
 		return
 	}
-	shareSellerId := item.ShareSellerId
+	shareSellerId := 0
+	var productItem *company.CompanyProduct
+	if productId > 0 {
+		var e error
+		productItem, e = company.GetCompanyProductByCompanyIdAndProductId(companyId, productId)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			br.Msg = "客户信息有误"
+			br.ErrMsg = "获取客户信息失败, Err: " + e.Error()
+			return
+		}
+		if productItem != nil {
+			shareSellerId = productItem.ShareSellerId
+		}
+	}
+
 	var productName string
-	productId := services.GetProductId(sysUser.RoleTypeCode)
 	if productId == 1 {
 		productName = utils.COMPANY_PRODUCT_FICC_NAME
 	} else if productId == 2 {
@@ -3137,7 +3168,7 @@ func (this *CompanyController) Detail() {
 						break
 					}
 					// 分享的客户 也有权限
-					if item.IsShare == 1 && item.ShareSellerId == sysUser.AdminId {
+					if productItem.IsShare == 1 && productItem.ShareSellerId == sysUser.AdminId {
 						isOk = true
 						break
 					}
@@ -3303,7 +3334,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 {
+					if item.SellerId == sysUser.AdminId || item.ShareSellerId == sysUser.AdminId {
 						btnDetailItem.BtnHistoryList = true
 					}
 					if sysUser.Authority > 0 {
@@ -3346,7 +3377,7 @@ func (this *CompanyController) Detail() {
 				resp.IsButtonShow = 1
 			}
 		}
-		btnItem := services.GetCompanyPermissionButton(roleTypeCode, item.Status, strconv.Itoa(item.SellerId), strconv.Itoa(item.GroupId), item.GroupId, sysUser.GroupId, item.SellerId, sysUser.AdminId, sysUser.Authority, item.ProductId, shareSellerId)
+		btnItem := services.GetCompanyPermissionButton(roleTypeCode, item.Status, strconv.Itoa(item.SellerId), strconv.Itoa(item.GroupId), item.GroupId, sysUser.GroupId, item.SellerId, sysUser.AdminId, sysUser.Authority, item.ProductId, shareSellerId, "")
 		//if itemLen > 1 {
 		//	btnDetailItem.BtnEdit = false
 		//	btnDetailItem.BtnDelete = false
@@ -3529,7 +3560,7 @@ func (this *CompanyController) DetailByCreditCode() {
 		br.Data = resp
 		return
 	}
-	shareSellerId := item.ShareSellerId
+
 	companyId := item.CompanyId
 	var productName string
 	productId := services.GetProductId(sysUser.RoleTypeCode)
@@ -3715,7 +3746,8 @@ func (this *CompanyController) DetailByCreditCode() {
 				resp.IsButtonShow = 1
 			}
 		}
-		btnItem := services.GetCompanyPermissionButton(roleTypeCode, item.Status, strconv.Itoa(item.SellerId), strconv.Itoa(item.GroupId), item.GroupId, sysUser.GroupId, item.SellerId, sysUser.AdminId, sysUser.Authority, item.ProductId, shareSellerId)
+		btnItem := services.GetCompanyPermissionButton(roleTypeCode, item.Status, strconv.Itoa(item.SellerId), strconv.Itoa(item.GroupId),
+			item.GroupId, sysUser.GroupId, item.SellerId, sysUser.AdminId, sysUser.Authority, item.ProductId, item.ShareSellerId, "")
 		//if itemLen > 1 {
 		//	btnDetailItem.BtnEdit = false
 		//	btnDetailItem.BtnDelete = false
@@ -3741,7 +3773,7 @@ func (this *CompanyController) DetailByCreditCode() {
 
 		//联系人操作权限
 		if resp.IsContractButtonShow == false {
-			resp.IsContractButtonShow = services.CheckCompanyUserButton(sysUser.RoleTypeCode, item.SellerId, sysUser.AdminId, item.ProductId, shareSellerId, item.Status)
+			resp.IsContractButtonShow = services.CheckCompanyUserButton(sysUser.RoleTypeCode, item.SellerId, sysUser.AdminId, item.ProductId, item.ShareSellerId, item.Status)
 		}
 	}
 

+ 5 - 30
controllers/company_apply_v2.go

@@ -159,15 +159,8 @@ func (this *CompanyApplyController) ApplyServiceUpdate() {
 		return
 	}
 
-	companyItem, e := company.GetCompanyById(req.CompanyId)
-	if e != nil {
-		br.Msg = "客户信息有误"
-		br.ErrMsg = "获取客户信息失败, Err: " + e.Error()
-		return
-	}
-
 	//客户归属判断-当前销售/咨询组共享销售
-	if companyProduct.SellerId != sysUser.AdminId && companyItem.ShareSellerId != sysUser.AdminId {
+	if companyProduct.SellerId != sysUser.AdminId && companyProduct.ShareSellerId != sysUser.AdminId {
 		br.Msg = "客户信息异常"
 		br.ErrMsg = "客户信息异常,不是当前所属销售,客户所属销售:" + companyProduct.SellerName + ";当前销售:" + sysUser.AdminName
 		return
@@ -564,14 +557,8 @@ func (this *CompanyApplyController) ApplyTurnPositive() {
 		return
 	}
 
-	companyItem, e := company.GetCompanyById(req.CompanyId)
-	if e != nil {
-		br.Msg = "客户信息有误"
-		br.ErrMsg = "获取客户信息失败, Err: " + e.Error()
-		return
-	}
 	//客户归属判断
-	if companyProduct.SellerId != sysUser.AdminId && companyItem.ShareSellerId != sysUser.AdminId {
+	if companyProduct.SellerId != sysUser.AdminId && companyProduct.ShareSellerId != sysUser.AdminId {
 		br.Msg = "客户信息异常"
 		br.ErrMsg = "客户信息异常,不是当前所属销售,客户所属销售:" + companyProduct.SellerName + ";当前销售:" + sysUser.AdminName
 		return
@@ -921,7 +908,7 @@ func (this *CompanyApplyController) ApplyBySystemContract() {
 		br.ErrMsg = "客户不存在,不可提交审批:companyId:" + strconv.Itoa(req.CompanyId) + ";productId:" + strconv.Itoa(productId)
 		return
 	}
-	if companyProduct.SellerId != sysUser.AdminId && companyInfo.ShareSellerId != sysUser.AdminId {
+	if companyProduct.SellerId != sysUser.AdminId && companyProduct.ShareSellerId != sysUser.AdminId {
 		br.Msg = "客户信息异常"
 		br.ErrMsg = "客户信息异常,不是当前所属销售,客户所属销售:" + companyProduct.SellerName + ";当前销售:" + sysUser.AdminName
 		return
@@ -1499,14 +1486,8 @@ func (this *CompanyApplyController) ApplyThaw() {
 		return
 	}
 
-	companyItem, e := company.GetCompanyById(req.CompanyId)
-	if e != nil {
-		br.Msg = "客户信息有误"
-		br.ErrMsg = "获取客户信息失败, Err: " + e.Error()
-		return
-	}
 	//客户归属判断
-	if companyProduct.SellerId != sysUser.AdminId && companyItem.ShareSellerId != sysUser.AdminId {
+	if companyProduct.SellerId != sysUser.AdminId && companyProduct.ShareSellerId != sysUser.AdminId {
 		br.Msg = "客户信息异常"
 		br.ErrMsg = "客户信息异常,不是当前所属销售,客户所属销售:" + companyProduct.SellerName + ";当前销售:" + sysUser.AdminName
 		return
@@ -1753,14 +1734,8 @@ func (this *CompanyApplyController) ApplyDelay() {
 		return
 	}
 
-	companyItem, e := company.GetCompanyById(req.CompanyId)
-	if e != nil {
-		br.Msg = "客户信息有误"
-		br.ErrMsg = "获取客户信息失败, Err: " + e.Error()
-		return
-	}
 	//客户归属判断
-	if companyProduct.SellerId != sysUser.AdminId && companyItem.ShareSellerId != sysUser.AdminId {
+	if companyProduct.SellerId != sysUser.AdminId && companyProduct.ShareSellerId != sysUser.AdminId {
 		br.Msg = "客户信息异常"
 		br.ErrMsg = "客户信息异常,不是当前所属销售,客户所属销售:" + companyProduct.SellerName + ";当前销售:" + sysUser.AdminName
 		return

+ 1844 - 20
controllers/company_seller.go

@@ -2331,30 +2331,141 @@ func (this *CompanySellerController) ShareSellerList() {
 		br.Ret = 408
 		return
 	}
+	resp := make([]company.DepartmentGroupSellers, 0)
+
+	productId := services.GetProductId(sysUser.RoleTypeCode)
+	if productId == utils.COMPANY_PRODUCT_RAI_ID {
+		// 权益管理员,查看所有权益的账号
+		roleCodeTypeStr := `"` + utils.ROLE_TYPE_CODE_RAI_SELLER + `","` + utils.ROLE_TYPE_CODE_RAI_GROUP + `","` + utils.ROLE_TYPE_CODE_RAI_RESEARCHR + `","` + utils.ROLE_TYPE_CODE_RAI_ADMIN + `"`
+		departmentId := 5
+		enabled := 1
+		groupList, err := system.GetSysGroupByDepartmentId(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...)
+			}
 
-	groupId := 0
-	if utils.RunMode == "release" {
-		groupId = 37
+			groupItem.ChildrenList = groupSellerList
+			if len(groupSellerList) > 0 {
+				resp = append(resp, groupItem)
+			}
+		}
+
+		//分组为0的销售(直属部门)
+		departmentSellerList, err := system.GetDepartmentGroupSysUserList(departmentId, 0, roleCodeTypeStr)
+		if err != nil {
+			br.Msg = "获取销售失败"
+			br.ErrMsg = "获取销售失败,Err:" + err.Error()
+			return
+		}
+		if len(departmentSellerList) > 0 {
+			tmpDepartmentGroupSeller := 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,
+				}
+				tmpDepartmentGroupSeller = append(tmpDepartmentGroupSeller, sellerItem)
+			}
+			tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller)
+			resp = append(resp, tmpDepartmentGroupSeller...)
+		}
 	} else {
-		groupId = 61
-	}
-	subAdmins, err := system.GetAdminByGroupId(groupId)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		br.Msg = "获取销售失败"
-		br.ErrMsg = "获取销售失败,Err:" + err.Error()
-		return
-	}
+		groupId := 0
+		if utils.RunMode == "release" {
+			groupId = 37
+		} else {
+			groupId = 61
+		}
+		subAdmins, err := system.GetAdminByGroupId(groupId)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取销售失败"
+			br.ErrMsg = "获取销售失败,Err:" + err.Error()
+			return
+		}
 
-	resp := make([]company.DepartmentGroupSellers, 0)
-	for _, seller := range subAdmins {
-		sellerItem := company.DepartmentGroupSellers{
-			AdminId: fmt.Sprint(seller.AdminId),
-			//AdminName string `description:"系统用户名称"`
-			RealName:     seller.RealName,
-			Authority:    seller.Authority,
-			RoleTypeCode: seller.RoleTypeCode,
+		for _, seller := range subAdmins {
+			sellerItem := company.DepartmentGroupSellers{
+				AdminId: fmt.Sprint(seller.AdminId),
+				//AdminName string `description:"系统用户名称"`
+				RealName:     seller.RealName,
+				Authority:    seller.Authority,
+				RoleTypeCode: seller.RoleTypeCode,
+			}
+			resp = append(resp, sellerItem)
 		}
-		resp = append(resp, sellerItem)
 	}
 
 	br.Ret = 200
@@ -3344,3 +3455,1716 @@ func (this *CompanySellerController) CheckListRai() {
 		List: list,
 	}
 }
+
+// ShareCheckList2
+// @Title 获取组长/组员下销售(根据部门、分组)
+// @Description 获取组长/组员下销售(根据部门、分组)接口
+// @Param   AllSeller   query   bool  true       "是否获取部门所有的销售信息"
+// @Param   Status   query   int  true       "客户状态 1:流失 0:非流失"
+// @Param   AllEnabled   query   bool  true       "是否获取包含禁用的用户"
+// @Success 200 {object} company.DepartmentGroupSellersResp
+// @router /seller/check/Sharelist2 [get]
+func (this *CompanySellerController) ShareCheckList2() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	roleCodeTypeStr := ``
+	productId := services.GetProductId(sysUser.RoleTypeCode)
+	switch productId {
+	case 1:
+		roleCodeTypeStr = `"` + utils.ROLE_TYPE_CODE_FICC_SELLER + `","` + utils.ROLE_TYPE_CODE_FICC_GROUP + `","` + utils.ROLE_TYPE_CODE_FICC_TEAM + `"`
+	case 2:
+		roleCodeTypeStr = `"` + utils.ROLE_TYPE_CODE_RAI_SELLER + `","` + utils.ROLE_TYPE_CODE_RAI_GROUP + `"`
+	}
+
+	// ficc管理员,不要只查销售
+	if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN {
+		roleCodeTypeStr = ``
+	} else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN {
+		// 权益管理员,查看所有权益的账号
+		roleCodeTypeStr = `"` + utils.ROLE_TYPE_CODE_RAI_SELLER + `","` + utils.ROLE_TYPE_CODE_RAI_GROUP + `","` + utils.ROLE_TYPE_CODE_RAI_RESEARCHR + `","` + utils.ROLE_TYPE_CODE_RAI_ADMIN + `"`
+	}
+
+	status, _ := this.GetInt("Status", 0)
+	getAllEnabled, _ := this.GetBool("AllEnabled", false)
+	enabled := 1       //默认只获取正常状态的用户
+	if getAllEnabled { //获取所有状态的用户
+		enabled = -1
+	}
+	resp := make([]company.DepartmentGroupSellers, 0)
+
+	list := make([]company.DepartmentGroupSellers, 0)
+	if productId != 2 {
+		//超管看部门、小组、销售
+		if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
+			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 {
+					//	list = append(list, item)
+					//}
+
+					//sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
+					//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,
+					//	}
+					//	groupSellerList = append(groupSellerList, sellerItem)
+					//}
+					//groupSellerList = sortDepartmentGroupSellers(groupSellerList)
+					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 {
+					list = append(list, item)
+				}
+			}
+		} else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_TEAM || sysUser.Authority == 4 {
+			//销售组长看销售
+			if status == 0 {
+				directorId := sysUser.GroupId
+				fmt.Println("directorId:", directorId)
+				groupList, err := system.GetSysGroupByDirectorId(directorId)
+				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 {
+						list = append(list, groupItem)
+					}
+				}
+			} else {
+				departmentStr := `1,2`
+				departmentList, err := system.GetDepartmentListByIds(departmentStr)
+				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.GetGroupSysUserList(group.GroupId)
+						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 {
+						//	list = append(list, item)
+						//}
+
+						//sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
+						//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,
+						//	}
+						//	groupSellerList = append(groupSellerList, sellerItem)
+						//}
+						//groupSellerList = sortDepartmentGroupSellers(groupSellerList)
+						groupItem.ChildrenList = groupSellerList
+						if len(groupSellerList) > 0 {
+							departmentGroupSellerList = append(departmentGroupSellerList, groupItem)
+						}
+					}
+
+					//分组为0的人,不光是销售(直属部门)
+					departmentSellerList, err := system.GetDepartmentGroupSysUserList(department.DepartmentId, 0, "")
+					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 {
+						list = append(list, item)
+					}
+				}
+			}
+		} else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FINANCE || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN { //合规或财务或ficc管理员
+			departmentStr := `2,5,7` //合规
+			switch sysUser.RoleTypeCode {
+			case utils.ROLE_TYPE_CODE_FINANCE: //财务
+				departmentStr = `2,5,8`
+			case utils.ROLE_TYPE_CODE_FICC_ADMIN: //ficc管理员
+				departmentStr = utils.GetFiccAdminDepartmentIds()
+			}
+			departmentList, err := system.GetDepartmentListByIds(departmentStr)
+			if err != nil {
+				br.Msg = "获取失败"
+				br.ErrMsg = "获取部门失败,Err:" + err.Error()
+				return
+			}
+			for _, department := range departmentList {
+				fmt.Println(department)
+				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 {
+					//	list = append(list, item)
+					//}
+
+					//sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
+					//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,
+					//	}
+					//	groupSellerList = append(groupSellerList, sellerItem)
+					//}
+					//groupSellerList = sortDepartmentGroupSellers(groupSellerList)
+					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 {
+					tmpDepartmentGroupSellerList := 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,
+						}
+						tmpDepartmentGroupSellerList = append(tmpDepartmentGroupSellerList, sellerItem)
+					}
+					//排个序
+					tmpDepartmentGroupSellerList = sortDepartmentGroupSellers(tmpDepartmentGroupSellerList)
+					departmentGroupSellerList = append(departmentGroupSellerList, tmpDepartmentGroupSellerList...)
+				}
+
+				item.ChildrenList = departmentGroupSellerList
+				if len(departmentGroupSellerList) > 0 {
+					list = append(list, item)
+				}
+			}
+		} else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN || sysUser.Authority == 1 {
+			//部门管理员看小组、销售
+			departmentId := sysUser.DepartmentId
+			switch sysUser.RoleTypeCode {
+			case utils.ROLE_TYPE_CODE_RAI_ADMIN: //权益管理员
+				departmentId = 5
+			case utils.ROLE_TYPE_CODE_FICC_ADMIN: //ficc管理员
+				departmentId = 2
+			}
+			groupList, err := system.GetSysGroupByDepartmentId(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 {
+				//	list = append(list, item)
+				//}
+
+				//sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
+				//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,
+				//	}
+				//	groupSellerList = append(groupSellerList, sellerItem)
+				//}
+				//groupSellerList = sortDepartmentGroupSellers(groupSellerList)
+				groupItem.ChildrenList = groupSellerList
+				if len(groupSellerList) > 0 {
+					list = append(list, groupItem)
+				}
+			}
+
+			//分组为0的销售(直属部门)
+			departmentSellerList, err := system.GetDepartmentGroupSysUserList(departmentId, 0, roleCodeTypeStr)
+			if err != nil {
+				br.Msg = "获取销售失败"
+				br.ErrMsg = "获取销售失败,Err:" + err.Error()
+				return
+			}
+			if len(departmentSellerList) > 0 {
+				tmpDepartmentGroupSeller := 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,
+					}
+					tmpDepartmentGroupSeller = append(tmpDepartmentGroupSeller, sellerItem)
+				}
+				tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller)
+				list = append(list, tmpDepartmentGroupSeller...)
+			}
+		} else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP || (sysUser.Authority == 2 && sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_FICC_GROUP) {
+			// 权益组长看小组
+			if status == 0 {
+				sellerList, err := system.GetTeamSysUserList(sysUser.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)
+					list = append(list, sellerItem)
+				}
+				list = sortDepartmentGroupSellers(list)
+
+				//正常来说没有所有人都应该在某个小组下,要不就是小组名为 无 的小组
+				//分组为0的销售(直属分组)
+				//groupTeamSellerList, err := system.GetGrooupsysUserList(sysUser.GroupId, 0, roleCodeTypeStr)
+				//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)
+				//	list = append(list, tmpDepartmentGroupSellersList...)
+				//}
+				//sellerList, err := system.GetDepartmentGroupSysUserList(sysUser.DepartmentId, sysUser.GroupId, roleCodeTypeStr)
+				//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,
+				//	}
+				//	list = append(list, sellerItem)
+				//	list = sortDepartmentGroupSellers(list)
+				//}
+			} else {
+				departmentId := 5
+				groupList, err := system.GetSysGroupByDepartmentId(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 {
+					//	list = append(list, item)
+					//}
+
+					//sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
+					//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,
+					//	}
+					//	groupSellerList = append(groupSellerList, sellerItem)
+					//}
+					//groupSellerList = sortDepartmentGroupSellers(groupSellerList)
+					groupItem.ChildrenList = groupSellerList
+					if len(groupSellerList) > 0 {
+						list = append(list, groupItem)
+					}
+				}
+
+				//分组为0的销售(直属部门)
+				departmentSellerList, err := system.GetDepartmentGroupSysUserList(departmentId, 0, roleCodeTypeStr)
+				if err != nil {
+					br.Msg = "获取销售失败"
+					br.ErrMsg = "获取销售失败,Err:" + err.Error()
+					return
+				}
+				if len(departmentSellerList) > 0 {
+					tmpDepartmentGroupSeller := 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,
+						}
+						tmpDepartmentGroupSeller = append(tmpDepartmentGroupSeller, sellerItem)
+					}
+					tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller)
+					list = append(list, tmpDepartmentGroupSeller...)
+				}
+			}
+
+		} else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP || sysUser.Authority == 2 {
+			// 销售主管看小组
+			if status == 0 {
+				pid, err := company.GetParentIdFromGroup(sysUser.GroupId)
+				if err != nil {
+					br.Msg = "获取失败"
+					br.ErrMsg = "查询父级id异常" + err.Error()
+					return
+				}
+				var realGroupId int
+				if pid != nil && *pid > 0 {
+					//主管角色放在了三级分组下
+					realGroupId = *pid
+				} else {
+					//主管角色放在了二级分组下
+					realGroupId = sysUser.GroupId
+				}
+				groupList, err := system.GetSysGroupByGroupId(realGroupId)
+				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(realGroupId, 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...)
+					}
+					list = groupSellerList
+					//groupItem.ChildrenList = groupSellerList
+					//if len(groupSellerList) > 0 {
+					//	list = append(list, item)
+					//}
+
+					//sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
+					//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,
+					//	}
+					//	groupSellerList = append(groupSellerList, sellerItem)
+					//}
+					//groupSellerList = sortDepartmentGroupSellers(groupSellerList)
+
+					//groupItem.ChildrenList = groupSellerList
+					//if len(groupSellerList) > 0 {
+					//	list = append(list, groupItem)
+					//}
+
+				}
+
+				//分组为0的销售(直属二级分组)
+				//departmentSellerList, err := system.GetDepartmentGroupSysUserList(2, realGroupId, roleCodeTypeStr)
+				//if err != nil {
+				//	br.Msg = "获取销售失败"
+				//	br.ErrMsg = "获取销售失败,Err:" + err.Error()
+				//	return
+				//}
+				//if len(departmentSellerList) > 0 {
+				//	tmpDepartmentGroupSeller := 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,
+				//		}
+				//		tmpDepartmentGroupSeller = append(tmpDepartmentGroupSeller, sellerItem)
+				//	}
+				//	tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller)
+				//	list = append(list, tmpDepartmentGroupSeller...)
+				//}
+				//pid, err := company.GetParentIdFromGroup(sysUser.GroupId)
+				//if err != nil {
+				//	br.Msg = "获取失败"
+				//	br.ErrMsg = "查询父级id异常" + err.Error()
+				//	return
+				//}
+				//if pid != nil && *pid > 0 {
+				//	//主管角色放在了三级分组下
+				//	//
+				//
+				//
+				//} else {
+				//	//主管角色放在了二级分组下
+				//
+				//}
+				//ids, err := company.GetGroupIdsByParentId(*pid)
+				//if err != nil {
+				//	br.Msg = "获取失败"
+				//	br.ErrMsg = "查询父级id异常" + err.Error()
+				//	return
+				//}
+				//var idSlice []string
+				//var sid string
+				//for _, id := range ids {
+				//	idSlice = append(idSlice, *id)
+				//}
+				//sid = strings.Join(idSlice, ",")
+				//sellerList, err := system.GetTeamSysUserListByIds(sid)
+				//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)
+				//	list = append(list, sellerItem)
+				//}
+				//list = sortDepartmentGroupSellers(list)
+				//
+				////分组为0的销售(直属分组)
+				//groupTeamSellerList, err := system.GetGrooupsysUserList(sysUser.GroupId, roleCodeTypeStr)
+				//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)
+				//	list = append(list, tmpDepartmentGroupSellersList...)
+				//}
+				//sellerList, err := system.GetDepartmentGroupSysUserList(sysUser.DepartmentId, sysUser.GroupId, roleCodeTypeStr)
+				//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,
+				//	}
+				//	list = append(list, sellerItem)
+				//	list = sortDepartmentGroupSellers(list)
+				//}
+
+				//正常来说没有所有人都应该在某个小组下,要不就是小组名为 无 的小组
+			} else {
+				//var departmentStr string
+				//if utils.RunMode == "release" {
+				//	departmentStr = `1,2`
+				//} else {
+				//	departmentStr = `1,2`
+				//}
+				departmentStr := `1,2`
+				departmentList, err := system.GetDepartmentListByIds(departmentStr)
+				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.GetGroupSysUserList(group.GroupId)
+						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 {
+						//	list = append(list, item)
+						//}
+
+						//sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
+						//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,
+						//	}
+						//	groupSellerList = append(groupSellerList, sellerItem)
+						//}
+						//groupSellerList = sortDepartmentGroupSellers(groupSellerList)
+						groupItem.ChildrenList = groupSellerList
+						if len(groupSellerList) > 0 {
+							departmentGroupSellerList = append(departmentGroupSellerList, groupItem)
+						}
+					}
+
+					//分组为0的人,不光是销售(直属部门)
+					departmentSellerList, err := system.GetDepartmentGroupSysUserList(department.DepartmentId, 0, "")
+					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 {
+						list = append(list, item)
+					}
+				}
+			}
+		} else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER && status == 1 {
+			//var departmentStr string
+			//if utils.RunMode == "release" {
+			//	departmentStr = `1,2`
+			//} else {
+			//	departmentStr = `1,2`
+			//}
+			departmentStr := `1,2`
+			departmentList, err := system.GetDepartmentListByIds(departmentStr)
+			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.GetGroupSysUserList(group.GroupId)
+					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 {
+					//	list = append(list, item)
+					//}
+
+					//sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
+					//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,
+					//	}
+					//	groupSellerList = append(groupSellerList, sellerItem)
+					//}
+					//groupSellerList = sortDepartmentGroupSellers(groupSellerList)
+					groupItem.ChildrenList = groupSellerList
+					if len(groupSellerList) > 0 {
+						departmentGroupSellerList = append(departmentGroupSellerList, groupItem)
+					}
+				}
+
+				//分组为0的人,不光是销售(直属部门)
+				departmentSellerList, err := system.GetDepartmentGroupSysUserList(department.DepartmentId, 0, "")
+				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 {
+					list = append(list, item)
+				}
+			}
+		} else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER && status == 1 {
+			// 权益销售可以看到权益销售部的所有人
+			departmentId := 5
+			groupList, err := system.GetSysGroupByDepartmentId(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 {
+				//	list = append(list, item)
+				//}
+
+				//sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
+				//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,
+				//	}
+				//	groupSellerList = append(groupSellerList, sellerItem)
+				//}
+				//groupSellerList = sortDepartmentGroupSellers(groupSellerList)
+				groupItem.ChildrenList = groupSellerList
+				if len(groupSellerList) > 0 {
+					list = append(list, groupItem)
+				}
+			}
+
+			//分组为0的销售(直属部门)
+			departmentSellerList, err := system.GetDepartmentGroupSysUserList(departmentId, 0, roleCodeTypeStr)
+			if err != nil {
+				br.Msg = "获取销售失败"
+				br.ErrMsg = "获取销售失败,Err:" + err.Error()
+				return
+			}
+			if len(departmentSellerList) > 0 {
+				tmpDepartmentGroupSeller := 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,
+					}
+					tmpDepartmentGroupSeller = append(tmpDepartmentGroupSeller, sellerItem)
+				}
+				tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller)
+				list = append(list, tmpDepartmentGroupSeller...)
+			}
+		} else {
+			//看自己
+			sellerItem := company.DepartmentGroupSellers{
+				AdminId: fmt.Sprint(sysUser.AdminId),
+				//AdminName string `description:"系统用户名称"`
+				RealName: sysUser.RealName,
+			}
+			list = append(list, sellerItem)
+		}
+	} else {
+		// 权益管理员,查看所有权益的账号
+		roleCodeTypeStr := `"` + utils.ROLE_TYPE_CODE_RAI_SELLER + `","` + utils.ROLE_TYPE_CODE_RAI_GROUP + `","` + utils.ROLE_TYPE_CODE_RAI_RESEARCHR + `","` + utils.ROLE_TYPE_CODE_RAI_ADMIN + `"`
+		departmentId := 5
+		enabled := 1
+		groupList, err := system.GetSysGroupByDepartmentId(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 {
+				resp = append(resp, groupItem)
+			}
+		}
+
+		//分组为0的销售(直属部门)
+		departmentSellerList, err := system.GetDepartmentGroupSysUserList(departmentId, 0, roleCodeTypeStr)
+		if err != nil {
+			br.Msg = "获取销售失败"
+			br.ErrMsg = "获取销售失败,Err:" + err.Error()
+			return
+		}
+		if len(departmentSellerList) > 0 {
+			tmpDepartmentGroupSeller := 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,
+				}
+				tmpDepartmentGroupSeller = append(tmpDepartmentGroupSeller, sellerItem)
+			}
+			tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller)
+			resp = append(resp, tmpDepartmentGroupSeller...)
+		}
+		list = resp
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = company.DepartmentGroupSellersResp{
+		List: list,
+	}
+}

+ 99 - 37
controllers/company_share.go

@@ -50,9 +50,10 @@ func (this *CompanyController) CompanyShare() {
 		br.ErrMsg = "IsShare:" + strconv.Itoa(req.IsShare)
 		return
 	}
+	productId := services.GetProductId(sysUser.RoleTypeCode)
 
 	//查询该客户
-	companyItem, err := company.GetCompanyById(req.CompanyId)
+	companyProductItem, err := company.GetCompanyProductByCompanyIdAndProductId(req.CompanyId, productId)
 	if err != nil {
 		br.Msg = "查找客户失败"
 		br.ErrMsg = "查找客户失败,Err:" + err.Error()
@@ -61,15 +62,15 @@ func (this *CompanyController) CompanyShare() {
 
 	//待更新字段
 	updateCol := make([]string, 0)
-	companyItem.IsShare = req.IsShare
+	companyProductItem.IsShare = req.IsShare
 	updateCol = append(updateCol, "IsShare")
 	if req.IsShare == 0 {
-		companyItem.ShareSeller = ""
-		companyItem.ShareSellerId = 0
+		companyProductItem.ShareSeller = ""
+		companyProductItem.ShareSellerId = 0
 		updateCol = append(updateCol, "ShareSeller", "ShareSellerId")
 	}
 
-	err = companyItem.Update(updateCol)
+	err = companyProductItem.Update(updateCol)
 	if err != nil {
 		br.Msg = "修改客户信息失败"
 		br.ErrMsg = "修改客户信息失败,Err:" + err.Error()
@@ -185,7 +186,7 @@ func (this *CompanyController) CompanyShareList() {
 				}
 				if sysUser.GroupId == groupId {
 					if sellerIdStr != "" {
-						condition += ` AND a.share_seller_id IN (` + sellerIdStr + `) `
+						condition += ` AND b.share_seller_id IN (` + sellerIdStr + `) `
 					}
 				} else {
 					if groupIdStr != "" {
@@ -201,7 +202,7 @@ func (this *CompanyController) CompanyShareList() {
 						return
 					}
 					if sellerIdStr != "" {
-						condition += ` AND a.share_seller_id IN (` + sellerIdStr + `) `
+						condition += ` AND b.share_seller_id IN (` + sellerIdStr + `) `
 					}
 				} else {
 					condition += ` AND b.group_id=? `
@@ -209,44 +210,54 @@ func (this *CompanyController) CompanyShareList() {
 				}
 			} else if sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_ADMIN && sysUser.AdminId != 66 && sysUser.AdminId != 15 && roleTypeCode != utils.ROLE_TYPE_CODE_FICC_ADMIN && roleTypeCode != utils.ROLE_TYPE_CODE_RAI_ADMIN {
 				if sysUser.GroupId == groupId {
-					condition += ` AND a.share_seller_id=? `
+					condition += ` AND b.share_seller_id=? `
 					pars = append(pars, sysUser.AdminId)
 				} else {
-					condition += ` AND b.seller_id=? `
-					pars = append(pars, sysUser.AdminId)
+					// 在此页面销售只能看分配给自己的客户
+					condition += ` AND (b.seller_id =? OR b.share_seller_id =? )`
+					pars = append(pars, sysUser.AdminId, sysUser.AdminId)
 				}
 			}
 		}
 	}
 
+
 	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 {
+		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 ||
+			sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
 			//非咨询组销售,那么默认查看“未共享”的客户
 			if sysUser.GroupId != groupId {
 				listParam = 3
-				if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER {
+				if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER {
 					condition += ` AND b.seller_id = ? `
 					pars = append(pars, sysUser.AdminId)
 				}
 			} else {
-				condition += ` AND a.is_share=1 `
+				condition += ` AND b.is_share=1 `
 			}
-		} else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN {
+		} else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN {
 			// 管理员,默认查看“待分配”客户
 			listParam = 2
 		}
 	}
 
 	if listParam == 1 {
-		condition += ` AND a.share_seller_id > 0 AND a.is_share=1 `
+		condition += ` AND b.share_seller_id > 0 AND b.is_share=1 `
 	} else if listParam == 2 {
-		condition += ` AND a.share_seller_id = 0 AND a.is_share=1 `
+		condition += ` AND b.share_seller_id = 0 AND b.is_share=1 `
 	} else if listParam == 3 { // 未共享
-		condition += ` AND a.is_share=0 and b.status="正式"`
+		if productId == 1 {
+			condition += ` AND b.is_share=0 and (b.status="正式" AND b.product_id = 1) `
+		} else if productId == 2 {
+			condition += ` AND b.is_share=0 and (b.status IN ("正式","试用","永续") AND b.product_id = 2) `
+		} else {
+			condition += ` AND b.is_share=0 and ((b.status="正式" AND b.product_id = 1) OR (b.status IN ("正式","试用") AND b.product_id = 2))`
+		}
 	}
 
 	if sellerIds != "" {
-		condition += ` AND a.share_seller_id IN (` + sellerIds + `) `
+		condition += ` AND b.share_seller_id IN (` + sellerIds + `) `
 	}
 	if originalSellerIds != "" {
 		condition += ` AND b.seller_id IN (` + originalSellerIds + `) `
@@ -328,6 +339,17 @@ func (this *CompanyController) CompanyShareList() {
 		sortStr += " DESC "
 	}
 
+	sysUserList, err := system.GetAdminList()
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取admin列表失败, Err:" + err.Error()
+		return
+	}
+	adminMap := make(map[int]*system.Admin, 0)
+	for _, v := range sysUserList {
+		adminMap[v.AdminId] = v
+	}
+
 	list, err := company.GetShareCompanyList(condition, sortStr, pars, startSize, pageSize)
 	if err != nil {
 		br.Msg = "获取失败"
@@ -559,16 +581,13 @@ func (this *CompanyController) CompanyShareList() {
 			//viewTotal:=GetviewTotal(v.CompanyId)
 
 			//活跃(客户状态)
-			tmpStatus := v.Status
-			if v.IsShare == 1 {
-				tmpStatus = v.Status + "(共享)"
-			} else {
+			if v.IsShare != 1 {
 				if v.BtnItem.BtnModifySeller == true {
 					v.BtnItem.BtnModifySeller = false
 				}
 			}
 
-			if v.IsShare == 1 && v.BtnItem.BtnModifySeller == true {
+			if v.IsShare == 1 && v.BtnItem.BtnModifySeller == true && sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
 				//如果已经是共享客户了,取消共享按钮全都显示,和修改销售权限一样
 				v.BtnItem.BtnShare = true
 			}
@@ -584,7 +603,7 @@ func (this *CompanyController) CompanyShareList() {
 				RenewalReason:    v.RenewalReason,
 				FreezeReason:     v.FreezeReason,
 				LossTime:         v.LossTime,
-				Status:           tmpStatus,
+				Status:           v.Status,
 				CompanyType:      v.CompanyType,
 				ApproveStatus:    v.ApproveStatus,
 				SellerName:       v.SellerName,
@@ -628,11 +647,25 @@ func (this *CompanyController) CompanyShareList() {
 				Deadline:        v.Deadline,
 				WeekViewActive:  v.WeekViewActive,
 				IsShare:         v.IsShare,
-				ShareSeller:     v.ShareSeller,
 				ShareSellerId:   v.ShareSellerId,
 				LastServiceTime: v.LastServiceTime,
 				ServiceTimes:    v.ServiceTimes,
 			}
+			if v.ShareSellerIds != "" {
+				shareSellerIds := strings.Split(v.ShareSellerIds, ",")
+				for _, idStr := range shareSellerIds {
+					shareSellerId, e := strconv.Atoi(idStr)
+					if e != nil {
+						err = e
+						return
+					}
+					shareSeller := adminMap[shareSellerId]
+					if shareSeller != nil {
+						companyList.ShareSeller += shareSeller.RealName + "(" + shareSeller.GroupName + ")" + "/"
+					}
+				}
+				companyList.ShareSeller = strings.TrimRight(companyList.ShareSeller, "/")
+			}
 			companyLists = append(companyLists, companyList)
 		}
 	}
@@ -700,9 +733,14 @@ func (this *CompanyController) MoveShareSeller() {
 		br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
 		return
 	}
-
+	productId := services.GetProductId(sysUser.RoleTypeCode)
+	if productId == 0 {
+		br.Msg = "该角色非ficc或权益角色"
+		br.ErrMsg = "该角色非ficc或权益角色"
+		return
+	}
 	//查询该客户
-	companyItem, err := company.GetCompanyById(req.CompanyId)
+	companyProductItem, err := company.GetCompanyProductByCompanyIdAndProductId(req.CompanyId, productId)
 	if err != nil {
 		br.Msg = "查找客户失败"
 		br.ErrMsg = "查找客户失败,Err:" + err.Error()
@@ -711,11 +749,11 @@ func (this *CompanyController) MoveShareSeller() {
 
 	//待更新字段
 	updateCol := make([]string, 0)
-	companyItem.ShareSeller = seller.RealName
-	companyItem.ShareSellerId = seller.AdminId
+	companyProductItem.ShareSeller = seller.RealName
+	companyProductItem.ShareSellerId = seller.AdminId
 	updateCol = append(updateCol, "ShareSeller", "ShareSellerId")
 
-	err = companyItem.Update(updateCol)
+	err = companyProductItem.Update(updateCol)
 	if err != nil {
 		br.Msg = "修改客户信息失败"
 		br.ErrMsg = "修改客户信息失败,Err:" + err.Error()
@@ -932,7 +970,7 @@ func (this *CompanyController) CompanyShareListByCity() {
 		}
 	}
 
-	condition += ` AND a.is_share=1 `
+	condition += ` AND b.is_share=1 `
 	if province != "" {
 		var provinceSql string
 		slice := strings.Split(province, ",")
@@ -959,7 +997,16 @@ func (this *CompanyController) CompanyShareListByCity() {
 		br.ErrMsg = "获取数据总数失败,Err:" + err.Error()
 		return
 	}
-
+	sysUserList, err := system.GetAdminList()
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取admin列表失败, Err:" + err.Error()
+		return
+	}
+	adminMap := make(map[int]*system.Admin, 0)
+	for _, v := range sysUserList {
+		adminMap[v.AdminId] = v
+	}
 	sortStr := ` `
 	//if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
 	//	sortStr = " ORDER BY sort_status asc, all_view_total desc, a.created_time "
@@ -1014,9 +1061,10 @@ func (this *CompanyController) CompanyShareListByCity() {
 			//viewTotal:=GetviewTotal(v.CompanyId)
 
 			//活跃(客户状态)
-			tmpStatus := v.Status
-			if v.IsShare == 1 {
-				tmpStatus = v.Status + "(共享)"
+			if v.IsShare != 1 {
+				if v.BtnItem.BtnModifySeller == true {
+					v.BtnItem.BtnModifySeller = false
+				}
 			}
 
 			companyList := &company.CompanyListItem{
@@ -1030,7 +1078,7 @@ func (this *CompanyController) CompanyShareListByCity() {
 				RenewalReason:    v.RenewalReason,
 				FreezeReason:     v.FreezeReason,
 				LossTime:         v.LossTime,
-				Status:           tmpStatus,
+				Status:           v.Status,
 				CompanyType:      v.CompanyType,
 				ApproveStatus:    v.ApproveStatus,
 				SellerName:       v.SellerName,
@@ -1074,11 +1122,25 @@ func (this *CompanyController) CompanyShareListByCity() {
 				Deadline:        v.Deadline,
 				WeekViewActive:  v.WeekViewActive,
 				IsShare:         v.IsShare,
-				ShareSeller:     v.ShareSeller,
 				ShareSellerId:   v.ShareSellerId,
 				LastServiceTime: v.LastServiceTime,
 				ServiceTimes:    v.ServiceTimes,
 			}
+			if v.ShareSellerIds != "" {
+				shareSellerIds := strings.Split(v.ShareSellerIds, ",")
+				for _, idStr := range shareSellerIds {
+					shareSellerId, e := strconv.Atoi(idStr)
+					if e != nil {
+						err = e
+						return
+					}
+					shareSeller := adminMap[shareSellerId]
+					if shareSeller != nil {
+						companyList.ShareSeller += shareSeller.RealName + "(" + shareSeller.GroupName + ")" + "/"
+					}
+				}
+				companyList.ShareSeller = strings.TrimRight(companyList.ShareSeller, "/")
+			}
 			companyLists = append(companyLists, companyList)
 		}
 	}

+ 21 - 24
controllers/company_user.go

@@ -93,25 +93,24 @@ func (this *CompanyUserController) AddUser() {
 		return
 	}
 	regionType := req.RegionType //区域来源
+	productId := services.GetProductId(sysUser.RoleTypeCode)
 
 	//操作员的产品权限
 	companyProductList := make([]*company.CompanyProduct, 0)
 
-	shareSellerId := 0
-	companyInfo := new(company.Company)
+	var companyInfo *company.Company
+	var e error
 	if req.CompanyId > 0 {
-		item, e := company.GetCompanyById(req.CompanyId)
+		companyInfo, e = company.GetCompanyById(req.CompanyId)
 		if e != nil {
 			br.Msg = "客户信息有误"
 			br.ErrMsg = "获取客户信息失败, Err: " + e.Error()
 			return
 		}
-		companyInfo = item
-		shareSellerId = item.ShareSellerId
 	}
 
+
 	//权益类客户,邮箱必填(2021-03-22 13:32:59修改)
-	productId := services.GetProductId(sysUser.RoleTypeCode)
 	if productId == 1 || regionType == "国内" { //ficc类客户
 		if req.MobileOne == "" && req.Email == "" {
 			br.Msg = "请输入手机号或邮箱"
@@ -206,6 +205,16 @@ func (this *CompanyUserController) AddUser() {
 			}
 			companyProductList = append(companyProductList, tmpCompanyProduct)
 		} else if req.Source == "add_user" {
+			shareSellerId := 0
+			if req.CompanyId > 0 {
+				item, e := company.GetCompanyProductByCompanyIdAndProductId(req.CompanyId, productId)
+				if e != nil {
+					br.Msg = "客户信息有误"
+					br.ErrMsg = "获取客户信息失败, Err: " + e.Error()
+					return
+				}
+				shareSellerId = item.ShareSellerId
+			}
 			//获取当前操作员产品权限
 			tmpCompanyProductList, productErr := getSysCompanyProductList(productId, req.CompanyId)
 			if productErr != nil {
@@ -1638,16 +1647,11 @@ func (this *CompanyUserController) EditUser() {
 		br.ErrMsg = "获取当前操作员找不到产品权限"
 		return
 	}
-	item, err := company.GetCompanyDetailById(wxUser.CompanyId)
-	if err != nil {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取数据失败,Err:" + err.Error()
-		return
-	}
+
 	//操作权限校验
 	for _, v := range companyProductList {
-		companyUserStatus := services.CheckCompanyUserButton(sysUser.RoleTypeCode, v.SellerId, sysUser.AdminId, v.ProductId, item.ShareSellerId, v.Status)
-		if item.ShareSellerId == sysUser.AdminId {
+		companyUserStatus := services.CheckCompanyUserButton(sysUser.RoleTypeCode, v.SellerId, sysUser.AdminId, v.ProductId, v.ShareSellerId, v.Status)
+		if v.ShareSellerId == sysUser.AdminId {
 			companyUserStatus = true
 		}
 		if companyUserStatus == false {
@@ -5035,13 +5039,10 @@ func checkOpCompanyUserByUserId(userId, productId, opId int, roleTypeCode string
 		err = errors.New("删除失败,获取当前操作员找不到产品权限")
 		return
 	}
-	item, err := company.GetCompanyDetailById(userInfo.CompanyId)
-	if err != nil {
-		return
-	}
+
 	//操作权限校验
 	for _, v := range companyProductList {
-		companyUserStatus := services.CheckCompanyUserButton(roleTypeCode, v.SellerId, opId, v.ProductId, item.ShareSellerId, v.Status)
+		companyUserStatus := services.CheckCompanyUserButton(roleTypeCode, v.SellerId, opId, v.ProductId, v.ShareSellerId, v.Status)
 		if companyUserStatus == false {
 			errMsg = "没有操作权限"
 			err = errors.New("没有操作权限")
@@ -5065,13 +5066,9 @@ func checkOpCompanyUserByCompanyId(companyId, productId, opId int, roleTypeCode
 		err = errors.New("删除失败,获取当前操作员找不到产品权限")
 		return
 	}
-	item, err := company.GetCompanyDetailById(companyId)
-	if err != nil {
-		return
-	}
 	//操作权限校验
 	for _, v := range companyProductList {
-		companyUserStatus := services.CheckCompanyUserButton(roleTypeCode, v.SellerId, opId, v.ProductId, item.ShareSellerId, v.Status)
+		companyUserStatus := services.CheckCompanyUserButton(roleTypeCode, v.SellerId, opId, v.ProductId, v.ShareSellerId, v.Status)
 		if companyUserStatus == false {
 			errMsg = "没有操作权限"
 			err = errors.New("没有操作权限")

+ 3 - 3
controllers/contract/contract.go

@@ -2589,7 +2589,7 @@ func (this *ContractController) BusinessContractCompanyList() {
 		cond := ` AND share_seller_id = ? AND is_share = 1 AND company_name LIKE ?`
 		pars := make([]interface{}, 0)
 		pars = append(pars, sysUser.AdminId, kw)
-		shares, e := company.GetCompanyListByCondition(cond, pars, []string{"company_id", "company_name"}, "")
+		shares, e := company.GetCompanyProductList(cond, pars)
 		if e != nil {
 			br.Msg = "获取失败"
 			br.ErrMsg = "获取共享客户信息失败, Err: " + e.Error()
@@ -2647,7 +2647,7 @@ func (this *ContractController) BusinessContractListByCompanyName() {
 	//pars = append(pars, sysUser.AdminId)
 
 	// 13.6正式共享客户-可以选择分配给自己的共享客户下的非自己创建的合同
-	joinStr := ` LEFT JOIN company AS b ON a.company_name = b.company_name `
+	joinStr := ` LEFT JOIN company_product AS b ON a.company_name = b.company_name `
 	condition += ` AND (a.seller_id = ? OR (b.is_share = 1 AND b.share_seller_id = ?))`
 	pars = append(pars, sysUser.AdminId, sysUser.AdminId)
 
@@ -2914,7 +2914,7 @@ func (this *ContractController) GetListBySeal() {
 	}
 
 	// 13.6正式共享客户
-	joinStr := ` LEFT JOIN company AS b ON a.company_name = b.company_name `
+	joinStr := ` LEFT JOIN company_product AS b ON a.company_name = b.company_name `
 	// 非合规角色可查看自己的合同或是自己的共享客户下的非自己创建的合同
 	if sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_COMPLIANCE {
 		condition += ` AND (a.seller_id = ? OR (b.is_share = 1 AND b.share_seller_id = ?))`

+ 10 - 8
controllers/full_company.go

@@ -1128,9 +1128,10 @@ func (this *FullCompanyController) List() {
 			//viewTotal:=GetviewTotal(v.CompanyId)
 
 			//活跃(客户状态)
-			tmpStatus := v.Status
-			if v.IsShare == 1 {
-				tmpStatus = v.Status + "(共享)"
+			if v.IsShare != 1 {
+				if v.BtnItem.BtnModifySeller == true {
+					v.BtnItem.BtnModifySeller = false
+				}
 			}
 			//productIdSlice := strings.Split(v.ProductIds, "/")
 			//statusSlice := strings.Split(v.Status, "/")
@@ -1230,7 +1231,7 @@ func (this *FullCompanyController) List() {
 				RenewalReason:    v.RenewalReason,
 				FreezeReason:     v.FreezeReason,
 				LossTime:         v.LossTime,
-				Status:           tmpStatus,
+				Status:           v.StatusStr,
 				CompanyType:      v.CompanyType,
 				ApproveStatus:    v.ApproveStatus,
 				SellerName:       v.SellerName,
@@ -1281,6 +1282,7 @@ func (this *FullCompanyController) List() {
 				IsShare:         v.IsShare,
 				CloseTime:       v.CloseTime,
 				CloseReason:     v.CloseReason,
+				ShareSellerId:   v.ShareSellerId,
 			}
 			companyLists = append(companyLists, companyList)
 		}
@@ -2312,7 +2314,6 @@ func (this *FullCompanyController) Detail() {
 		br.ErrMsg = "获取数据失败,Err:" + err.Error()
 		return
 	}
-	shareSellerId := item.ShareSellerId
 	var productName string
 	productId := services.GetProductId(sysUser.RoleTypeCode)
 	// 销售经理赋予admin查看权限
@@ -2361,7 +2362,7 @@ func (this *FullCompanyController) 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 || item.ShareSellerId == sysUser.AdminId {
 						btnDetailItem.BtnHistoryList = true
 					}
 					if sysUser.Authority > 0 {
@@ -2478,7 +2479,8 @@ func (this *FullCompanyController) Detail() {
 				resp.IsButtonShow = 1
 			}
 		}
-		btnItem := services.GetCompanyPermissionButton(roleTypeCode, item.Status, strconv.Itoa(item.SellerId), strconv.Itoa(item.GroupId), item.GroupId, sysUser.GroupId, item.SellerId, sysUser.AdminId, sysUser.Authority, item.ProductId, shareSellerId)
+		btnItem := services.GetCompanyPermissionButton(roleTypeCode, item.Status, strconv.Itoa(item.SellerId), strconv.Itoa(item.GroupId),
+			item.GroupId, sysUser.GroupId, item.SellerId, sysUser.AdminId, sysUser.Authority, item.ProductId, item.ShareSellerId, "")
 		//if itemLen > 1 {
 		//	btnDetailItem.BtnEdit = false
 		//	btnDetailItem.BtnDelete = false
@@ -2504,7 +2506,7 @@ func (this *FullCompanyController) Detail() {
 
 		//联系人操作权限
 		if resp.IsContractButtonShow == false {
-			resp.IsContractButtonShow = services.CheckCompanyUserButton(sysUser.RoleTypeCode, item.SellerId, sysUser.AdminId, item.ProductId, shareSellerId, item.Status)
+			resp.IsContractButtonShow = services.CheckCompanyUserButton(sysUser.RoleTypeCode, item.SellerId, sysUser.AdminId, item.ProductId, item.ShareSellerId, item.Status)
 		}
 	}
 

+ 6 - 8
go.mod

@@ -14,8 +14,8 @@ require (
 	github.com/alibabacloud-go/tea-utils/v2 v2.0.1
 	github.com/aliyun/alibaba-cloud-sdk-go v1.61.1656
 	github.com/aliyun/aliyun-oss-go-sdk v2.2.0+incompatible
-	github.com/beego/bee/v2 v2.0.4
-	github.com/beego/beego/v2 v2.0.7
+	github.com/beego/bee/v2 v2.1.0
+	github.com/beego/beego/v2 v2.1.0
 	github.com/dgrijalva/jwt-go v3.2.0+incompatible
 	github.com/go-sql-driver/mysql v1.7.0
 	github.com/go-xorm/xorm v0.7.9
@@ -64,7 +64,7 @@ require (
 	github.com/garyburd/redigo v1.6.3 // indirect
 	github.com/go-redis/redis/v8 v8.11.6-0.20220405070650-99c79f7041fc // indirect
 	github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
-	github.com/golang/protobuf v1.5.2 // indirect
+	github.com/golang/protobuf v1.5.3 // indirect
 	github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac // indirect
 	github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82 // indirect
 	github.com/gonum/integrate v0.0.0-20181209220457-a422b5c0fdf2 // indirect
@@ -83,9 +83,9 @@ require (
 	github.com/modern-go/reflect2 v1.0.2 // indirect
 	github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
 	github.com/pkg/errors v0.9.1 // indirect
-	github.com/prometheus/client_golang v1.14.0 // indirect
+	github.com/prometheus/client_golang v1.15.1 // indirect
 	github.com/prometheus/client_model v0.3.0 // indirect
-	github.com/prometheus/common v0.39.0 // indirect
+	github.com/prometheus/common v0.42.0 // indirect
 	github.com/prometheus/procfs v0.9.0 // indirect
 	github.com/richardlehane/mscfb v1.0.4 // indirect
 	github.com/richardlehane/msoleps v1.0.3 // indirect
@@ -93,7 +93,6 @@ require (
 	github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18 // indirect
 	github.com/sirupsen/logrus v1.9.0 // indirect
 	github.com/spf13/cast v1.5.0 // indirect
-	github.com/stretchr/testify v1.8.1 // indirect
 	github.com/tidwall/gjson v1.14.1 // indirect
 	github.com/tidwall/match v1.1.1 // indirect
 	github.com/tidwall/pretty v1.2.0 // indirect
@@ -106,10 +105,9 @@ require (
 	golang.org/x/sys v0.7.0 // indirect
 	golang.org/x/text v0.9.0 // indirect
 	golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect
-	google.golang.org/protobuf v1.28.1 // indirect
+	google.golang.org/protobuf v1.30.0 // indirect
 	gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
 	gopkg.in/ini.v1 v1.67.0 // indirect
-	gopkg.in/yaml.v2 v2.4.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
 	xorm.io/builder v0.3.6 // indirect
 	xorm.io/core v0.7.2-0.20190928055935-90aeac8d08eb // indirect

+ 14 - 17
go.sum

@@ -81,10 +81,10 @@ github.com/astaxie/beego v1.12.3/go.mod h1:p3qIm0Ryx7zeBHLljmd7omloyca1s4yu1a8kM
 github.com/aws/aws-sdk-go v1.42.23/go.mod h1:gyRszuZ/icHmHAVE4gc/r+cfCmhA1AD+vqfWbgI+eHs=
 github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f h1:ZNv7On9kyUzm7fvRZumSyy/IUiSC7AzL0I1jKKtwooA=
 github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc=
-github.com/beego/bee/v2 v2.0.4 h1:nEjPwxJ8D+cr54eWChJGoGRH7bJ7OQwbhx8rU0OQf7E=
-github.com/beego/bee/v2 v2.0.4/go.mod h1:wq0YrEmPcdNfDNpaUgiTkaW9zso7M8n0HCCShEBOzM0=
-github.com/beego/beego/v2 v2.0.7 h1:9KNnUM40tn3pbCOFfe6SJ1oOL0oTi/oBS/C/wCEdAXA=
-github.com/beego/beego/v2 v2.0.7/go.mod h1:f0uOEkmJWgAuDTlTxUdgJzwG3PDSIf3UWF3NpMohbFE=
+github.com/beego/bee/v2 v2.1.0 h1:4WngbAnkvVOyKy74WXcRH3clon76wkjhuzrV2mx2fQU=
+github.com/beego/bee/v2 v2.1.0/go.mod h1:wDhKy5TNxv46LHKsK2gyxo38ObCOm9PbCN89lWHK3EU=
+github.com/beego/beego/v2 v2.1.0 h1:Lk0FtQGvDQCx5V5yEu4XwDsIgt+QOlNjt5emUa3/ZmA=
+github.com/beego/beego/v2 v2.1.0/go.mod h1:6h36ISpaxNrrpJ27siTpXBG8d/Icjzsc7pU1bWpp0EE=
 github.com/beego/goyaml2 v0.0.0-20130207012346-5545475820dd/go.mod h1:1b+Y/CofkYwXMUU0OhQqGvsY2Bvgr4j6jfT699wyZKQ=
 github.com/beego/x2j v0.0.0-20131220205130-a0352aadc542/go.mod h1:kSeGC/p1AbBiEp5kat81+DSQrZenVBZXklMLaELspWU=
 github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
@@ -187,8 +187,9 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD
 github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
-github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
 github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
+github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
+github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
 github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
@@ -258,7 +259,7 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o
 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
-github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
+github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
@@ -330,8 +331,8 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP
 github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
 github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
 github.com/prometheus/client_golang v1.7.0/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
-github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw=
-github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y=
+github.com/prometheus/client_golang v1.15.1 h1:8tXpTmJbyH5lydzFPoxSIJ0J46jdh3tylbvM1xCv0LI=
+github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk=
 github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
 github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
 github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
@@ -342,8 +343,8 @@ github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3d
 github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
 github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
 github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
-github.com/prometheus/common v0.39.0 h1:oOyhkDq05hPZKItWVBkJ6g6AtGxi+fy7F4JvUV8uhsI=
-github.com/prometheus/common v0.39.0/go.mod h1:6XBZ7lYdLCbkAVhwRsWTZn+IN5AB9F/NXd5w0BbEX0Y=
+github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM=
+github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc=
 github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
 github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
 github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
@@ -358,7 +359,7 @@ github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7
 github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
 github.com/richardlehane/msoleps v1.0.3 h1:aznSZzrwYRl3rLKRT3gUk9am7T/mLNSnJINvN0AQoVM=
 github.com/richardlehane/msoleps v1.0.3/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
-github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8=
+github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
 github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=
 github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
 github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644/go.mod h1:nkxAfR/5quYxwPZhyDxgasBMnRtBZd0FCEpawpjMUFg=
@@ -390,8 +391,6 @@ 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,9 +398,7 @@ 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=
@@ -592,8 +589,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD
 google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
 google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
-google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
+google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
 gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
 gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk=
 gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk=

+ 23 - 13
models/company/company.go

@@ -27,14 +27,11 @@ type Company struct {
 	LastUpdatedTime time.Time `description:"最后一次阅读时间"`
 	Seller          string    `description:"销售员"`
 	SellsId         int       `description:"销售员id"`
-	ShareSeller     string    `description:"共享销售员"`
-	ShareSellerId   int       `description:"共享销售员id"`
 	CompanyBelong   string    `description:"客户所属,ficc:ficc客户,public_offering:公募客户,partner:合作伙伴"`
 	StartDate       string    `description:"合同开始日期"`
 	EndDate         string    `description:"合同结束日期"`
 	LastType        int       `description:"原客户标签"`
 	IsVip           int       `description:"0:普通用户,1:大客户"`
-	IsShare         int       `description:"0:非共享用户,1:共享客户"`
 	FirstStartDate  string    `description:"首次设置为试用客户开始时间"`
 	FirstEndDate    string    `description:"首次设置为试用客户结束时间"`
 	DateType        int       `description:"设置流失类型,1:1个月,2:2个月,3:3个月"`
@@ -93,6 +90,7 @@ type CompanySearchItem struct {
 	RegionType      string `description:"地区类型,国内,国外"`
 	ShareSeller     string `description:"共享销售员"`
 	ShareSellerId   int    `description:"共享销售员id"`
+	ShareSellerIds  string `description:"共享销售员id"`
 	IsShare         int    `description:"0:非共享用户,1:共享客户"`
 	IsScrounge      int    `description:"是否白嫖 0不是 1是"`
 	Nation          string `description:"所属国家"`
@@ -105,7 +103,7 @@ type CompanySearchListResp struct {
 
 func GetCompanySearchList(condition string, pars []interface{}, limitParam ...int) (items []*CompanySearchItem, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT DISTINCT a.company_id,a.company_name,a.credit_code,a.company_code,a.region_type,a.share_seller_id,a.share_seller,a.is_share,
+	sql := `SELECT DISTINCT a.company_id,a.company_name,a.credit_code,a.company_code,a.region_type,b.share_seller_id,b.share_seller,b.is_share,
             GROUP_CONCAT(b.status ORDER BY b.product_id ASC SEPARATOR '/') AS status,
 			GROUP_CONCAT(DISTINCT b.seller_name ORDER BY b.product_id ASC SEPARATOR '/' ) AS seller_name,
 			GROUP_CONCAT(DISTINCT b.seller_id ORDER BY b.product_id ASC SEPARATOR '/') AS seller_ids,
@@ -117,7 +115,8 @@ func GetCompanySearchList(condition string, pars []interface{}, limitParam ...in
 			GROUP_CONCAT(DISTINCT b.product_name ORDER BY b.product_id ASC SEPARATOR '/') AS company_type,
             GROUP_CONCAT(DISTINCT b.approve_status ORDER BY b.product_id ASC SEPARATOR '/') AS approve_status,
             GROUP_CONCAT(DISTINCT b.freeze_start_date ORDER BY b.product_id ASC SEPARATOR '/') AS freeze_start_date,
-            GROUP_CONCAT(DISTINCT b.freeze_end_date ORDER BY b.product_id ASC SEPARATOR '/') AS freeze_end_date
+            GROUP_CONCAT(DISTINCT b.freeze_end_date ORDER BY b.product_id ASC SEPARATOR '/') AS freeze_end_date,
+			GROUP_CONCAT(DISTINCT b.share_seller_id ORDER BY b.product_id ASC SEPARATOR ',') AS share_seller_ids
 			FROM company AS a
 			INNER JOIN company_product AS b ON a.company_id=b.company_id
 			WHERE a.enabled=1 `
@@ -157,6 +156,7 @@ type CompanyItem struct {
 	FreezeReason     string `description:"冻结理由"`
 	LossTime         string `description:"流失时间"`
 	Status           string `description:"客户状态:'试用','永续','冻结','流失','正式' "`
+	StatusStr        string `description:"客户状态:'试用','永续','冻结','流失','正式' 如果是共享客户会加上 '(共享)'" `
 	CompanyType      string `description:"客户类型:ficc/权益"`
 	ApproveStatus    string `description:"审批状态:'待审批','已审批','驳回' 审批状态为空时,表示没有审批申请"`
 	SellerName       string `description:"销售:吉根龙/颖丹"`
@@ -164,6 +164,7 @@ type CompanyItem struct {
 	SellerIds        string `description:"销售ID集合,包含ficc和权益的销售id"`
 	ShareSeller      string `description:"共享销售员"`
 	ShareSellerId    int    `description:"共享销售员id"`
+	ShareSellerIds   string `description:"共享销售员ids"`
 	PackageTypes     string `description:"套餐类型集合,包含ficc和权益的套餐类型" json:"-"`
 	FiccPackageType  int    `description:"ficc的套餐类型"`
 	ExpireDay        string `description:"到期天数"`
@@ -272,6 +273,7 @@ type CompanyListItem struct {
 	IsShare          int                  `description:"0:非共享用户,1:共享客户"`
 	ShareSeller      string               `description:"共享销售员"`
 	ShareSellerId    int                  `description:"共享销售员id"`
+	ShareSellerIds   string               `description:"共享销售员ids"`
 	LastServiceTime  string               `description:"最后服务时间"`
 	ServiceTimes     int                  `description:"服务次数"`
 	CloseReason      string               `description:"关闭客户原因"`
@@ -316,7 +318,7 @@ func GetCompanyList(condition, status, sortStr string, pars []interface{}, start
 	// 权益客户: 以权益最后一次阅读时间作为参考
 	t := time.Now().Local().AddDate(0, 0, -7).Format(utils.FormatDate)
 
-	sql := `SELECT a.company_id,a.company_name,a.credit_code,a.company_code,a.created_time,a.province,a.city,a.address,a.region_type,b.group_id,b.road_show_total,a.is_share,
+	sql := `SELECT a.company_id,a.company_name,a.credit_code,a.company_code,a.created_time,a.province,a.city,a.address,a.region_type,b.group_id,b.road_show_total,b.is_share,
 			CASE 
      WHEN GROUP_CONCAT(b.status) LIKE "%永续%" THEN 1
 	 WHEN GROUP_CONCAT(b.status) LIKE "%正式%" THEN 2
@@ -336,6 +338,10 @@ CASE
      WHEN GROUP_CONCAT(b.todo_status) LIKE "%未完成%" AND GROUP_CONCAT(b.todo_end_time) is not null THEN GROUP_CONCAT(b.todo_end_time)
 		 ELSE "9999-01-01" END
 as sort_todo_end_time,
+			GROUP_CONCAT(CASE 
+            WHEN b.is_share = 1 THEN CONCAT(b.status, '(共享)')
+            ELSE b.status 
+        END ORDER BY b.product_id ASC SEPARATOR '/') AS status_str,
 			GROUP_CONCAT(b.status ORDER BY b.product_id ASC SEPARATOR '/') AS status,
 			GROUP_CONCAT(DISTINCT b.seller_name ORDER BY b.product_id ASC SEPARATOR '/') AS seller_name,
 			GROUP_CONCAT(DISTINCT b.seller_id ORDER BY b.product_id ASC SEPARATOR '/') AS seller_ids,
@@ -368,8 +374,9 @@ as sort_todo_end_time,
             b.freeze_time,b.freeze_reason,b.renewal_reason,
 			b.view_total,
 			b.last_view_time,
-			a.share_seller,
-			a.share_seller_id,
+			GROUP_CONCAT(DISTINCT b.share_seller ORDER BY b.product_id ASC SEPARATOR '/') AS share_seller,
+			GROUP_CONCAT(DISTINCT b.share_seller_id ORDER BY b.product_id ASC SEPARATOR ',') AS share_seller_ids,
+			b.share_seller_id ,
 			MAX(b.last_view_time) as max_last_view_time,
 			MIN(b.last_view_time) as min_last_view_time,
 			MAX(b.end_date) as max_end_date,
@@ -586,9 +593,6 @@ type CompanyDetail struct {
 	Address         string `description:"详细地址"`
 	RegionType      string `description:"地区类型,1:国内,2:国外"`
 	OpenCompanyCode string `description:"开放给第三方的客户编码,不让第三方定位我们的客户信息"`
-	IsShare         int    `description:"0:非共享用户,1:共享客户"`
-	ShareSeller     string `description:"共享销售员"`
-	ShareSellerId   int    `description:"共享销售员id"`
 	IsScrounge      int    `description:"是否白嫖 0不是 1是"`
 	Nation          string `description:"所属国家"`
 }
@@ -1726,7 +1730,7 @@ func GetShareCompanyList(condition, sortStr string, pars []interface{}, startSiz
 	t := time.Now().Local().AddDate(0, 0, -7).Format(utils.FormatDate)
 
 	sql := `SELECT a.company_id,a.company_name,a.credit_code,a.company_code,a.created_time,a.province,a.city,
-a.address,a.region_type,b.group_id,b.road_show_total,a.is_share,a.share_seller_id,a.share_seller,
+a.address,a.region_type,b.group_id,b.road_show_total,b.is_share,
 			CASE 
      WHEN GROUP_CONCAT(b.status) LIKE "%永续%" THEN 1
 	 WHEN GROUP_CONCAT(b.status) LIKE "%正式%" THEN 2
@@ -1746,7 +1750,10 @@ CASE
      WHEN GROUP_CONCAT(b.todo_status) LIKE "%未完成%" AND GROUP_CONCAT(b.todo_end_time) is not null THEN GROUP_CONCAT(b.todo_end_time)
 		 ELSE "9999-01-01" END
 as sort_todo_end_time,
-			GROUP_CONCAT(b.status ORDER BY b.product_id ASC SEPARATOR '/') AS status,
+			GROUP_CONCAT(CASE 
+            WHEN b.is_share = 1 THEN CONCAT(b.status, '(共享)')
+            ELSE b.status 
+        END ORDER BY b.product_id ASC SEPARATOR '/') AS status,
 			GROUP_CONCAT(DISTINCT b.seller_name ORDER BY b.product_id ASC SEPARATOR '/') AS seller_name,
 			GROUP_CONCAT(DISTINCT b.seller_id ORDER BY b.product_id ASC SEPARATOR '/') AS seller_ids,
 			GROUP_CONCAT(DISTINCT b.package_type ORDER BY b.product_id ASC SEPARATOR '/') AS package_types,
@@ -1776,6 +1783,9 @@ as sort_todo_end_time,
             b.freeze_time,b.freeze_reason,b.renewal_reason,
 			b.view_total,
 			b.last_view_time,
+			GROUP_CONCAT(DISTINCT b.share_seller ORDER BY b.product_id ASC SEPARATOR '/') AS share_seller,
+			GROUP_CONCAT(DISTINCT b.share_seller_id ORDER BY b.product_id ASC SEPARATOR ',') AS share_seller_ids,
+			b.share_seller_id ,
 			MAX(b.last_view_time) as max_last_view_time,
 			MIN(b.last_view_time) as min_last_view_time,
 			MAX(b.end_date) as max_end_date,

+ 6 - 0
models/company/company_product.go

@@ -56,6 +56,9 @@ type CompanyProduct struct {
 	CloseTime           time.Time `description:"关闭时间"`
 	OverseasLabel       int       `description:"海外客户试用子标签:1未分类、2  推进、3 跟踪、4 预备、"`
 	IsOverseas          int       `description:"是否显示在海外客户0:显示,1:不显示"`
+	IsShare             int       `description:"0:非共享用户,1:共享客户"`
+	ShareSeller         string    `description:"共享销售员"`
+	ShareSellerId       int       `description:"共享销售员id"`
 }
 
 // 新增客户产品
@@ -95,6 +98,9 @@ type CompanyProductDetail struct {
 	Scale            string    `description:"管理规模,空不填,1::50亿以下,2:50~100亿,3:100亿以上。"`
 	SpecialSurplus   string    `description:"专项调研剩余次数"`
 	Points           string    `description:"公司研选服务剩余点数"`
+	IsShare          int       `description:"0:非共享用户,1:共享客户"`
+	ShareSeller      string    `description:"共享销售员"`
+	ShareSellerId    int       `description:"共享销售员id"`
 	PermissionList   []*PermissionLookList
 }
 

+ 1 - 1
models/roadshow/company.go

@@ -39,7 +39,7 @@ 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 AND b.product_id = 1
 			WHERE
-				b.status IN ('正式', '试用') AND (b.seller_id = ? OR a.share_seller_id = ?) AND a.company_name LIKE ?
+				b.status IN ('正式', '试用') AND (b.seller_id = ? OR b.share_seller_id = ?) AND a.company_name LIKE ?
 			GROUP BY
 				b.company_id`
 	_, err = o.Raw(sql, sellerId, sellerId, keyWord).QueryRows(&companies)

+ 9 - 0
routers/commentsRouter.go

@@ -9664,6 +9664,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:CompanySellerController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:CompanySellerController"],
+        beego.ControllerComments{
+            Method: "ShareCheckList2",
+            Router: `/seller/check/Sharelist2`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:CompanySellerController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:CompanySellerController"],
         beego.ControllerComments{
             Method: "CheckList",

+ 30 - 17
services/company.go

@@ -820,7 +820,7 @@ func CheckAdminIsSeller(roleTypeCode string) (isSeller bool) {
 //}
 //
 
-func GetCompanyPermissionButton(roleTypeCode, status, itemSellerIds, itemGroupIdS string, itemGroupId, sysUserGroupId, itemSellerId, sysUserId, authority, productId, shareSellerId int) (button company.ButtonPermission) {
+func GetCompanyPermissionButton(roleTypeCode, status, itemSellerIds, itemGroupIdS string, itemGroupId, sysUserGroupId, itemSellerId, sysUserId, authority, productId, shareSellerId int, shareSellerIds string) (button company.ButtonPermission) {
 	//产品状态map
 	productStatusMap := make(map[int]string)
 	if productId == 1 {
@@ -860,6 +860,8 @@ func GetCompanyPermissionButton(roleTypeCode, status, itemSellerIds, itemGroupId
 		groupIdMap[2], _ = strconv.Atoi(groupIdSlice[1])
 	}
 
+	shareSellerIdArr := strings.Split(shareSellerIds, ",")
+
 	if roleTypeCode == utils.ROLE_TYPE_CODE_ADMIN { //超级管理员
 		button.BtnView = true //查看详情权限
 		if !strings.Contains(status, "/") {
@@ -952,11 +954,15 @@ func GetCompanyPermissionButton(roleTypeCode, status, itemSellerIds, itemGroupId
 				//button.BtnDelete = true
 				button.BtnModifySeller = true
 				button.BtnFreeze = false
+				// CRM14.7.2 权益管理员可以设置试用客户为共享
+				button.BtnShare = true
 			} else if productStatus == utils.COMPANY_STATUS_FREEZE { //冻结
 				button.BtnModifySeller = true
 			} else if productStatus == utils.COMPANY_STATUS_LOSE { //流失
 				//button.BtnDelete = true
 			} else { //永续
+				button.BtnModifySeller = true
+				button.BtnShare = true
 			}
 		} else {
 			productStatus2, hasProduct2 := productStatusMap[1]
@@ -982,7 +988,7 @@ func GetCompanyPermissionButton(roleTypeCode, status, itemSellerIds, itemGroupId
 
 			//如果是自己客户,那么拥有查看权限
 			if hasSellerId {
-				if sellerId == sysUserId || shareSellerId == sysUserId {
+				if sellerId == sysUserId || utils.InArrayByStr(shareSellerIdArr, strconv.Itoa(sysUserId)) || shareSellerId == sysUserId {
 					button.BtnView = true                             //显示权限、详情
 					if productStatus == utils.COMPANY_STATUS_FORMAL { //正式
 						button.BtnUpdate = true       //服务更新
@@ -1040,7 +1046,7 @@ func GetCompanyPermissionButton(roleTypeCode, status, itemSellerIds, itemGroupId
 					button.BtnRemarkView = true
 					//button.BtnThaw = false
 				} else if productStatus == utils.COMPANY_STATUS_LOSE { //流失
-					if sellerId == sysUserId || groupId == sysUserGroupId || shareSellerId == sysUserId {
+					if sellerId == sysUserId || groupId == sysUserGroupId || utils.InArrayByStr(shareSellerIdArr, strconv.Itoa(sysUserId)) || shareSellerId == sysUserId {
 						button.BtnApplyReceive = true
 					} else {
 						button.BtnReceive = true
@@ -1080,7 +1086,7 @@ func GetCompanyPermissionButton(roleTypeCode, status, itemSellerIds, itemGroupId
 					button.BtnRemarkView = true
 					//button.BtnThaw = false
 				} else if productStatus == utils.COMPANY_STATUS_LOSE { //流失
-					if sellerId == sysUserId || groupId == sysUserGroupId || shareSellerId == sysUserId {
+					if sellerId == sysUserId || groupId == sysUserGroupId || utils.InArrayByStr(shareSellerIdArr, strconv.Itoa(sysUserId)) || shareSellerId == sysUserId {
 						button.BtnApplyReceive = true
 					} else {
 						button.BtnReceive = true
@@ -1140,13 +1146,13 @@ func GetCompanyPermissionButton(roleTypeCode, status, itemSellerIds, itemGroupId
 
 			//如果是自己客户,那么拥有查看权限
 			if hasSellerId {
-				if sellerId == sysUserId {
+				if sellerId == sysUserId ||utils.InArrayByStr(shareSellerIdArr, strconv.Itoa(sysUserId)) || shareSellerId == sysUserId {
 					button.BtnView = true                             //显示权限、详情
 					if productStatus == utils.COMPANY_STATUS_FORMAL { //正式
 						button.BtnUpdate = true
 						button.BtnTryOut = true
 						button.BtnModifySeller = true
-						button.BtnShare = true
+						//button.BtnShare = true
 						button.BtnRemarkEdit = true
 						button.BtnRemarkView = true
 					} else if productStatus == utils.COMPANY_STATUS_TRY_OUT { //试用
@@ -1159,6 +1165,7 @@ func GetCompanyPermissionButton(roleTypeCode, status, itemSellerIds, itemGroupId
 						button.BtnFreeze = true
 						button.BtnRemarkEdit = true
 						button.BtnRemarkView = true
+						//button.BtnShare = true
 					} else if productStatus == utils.COMPANY_STATUS_FREEZE { //冻结
 						button.BtnThaw = true
 						button.BtnModifySeller = true
@@ -1168,6 +1175,7 @@ func GetCompanyPermissionButton(roleTypeCode, status, itemSellerIds, itemGroupId
 						button.BtnApplyReceive = true
 					} else { //永续
 						//button.BtnDelete = true
+
 					}
 				} else {
 					if productStatus == utils.COMPANY_STATUS_LOSE { //流失
@@ -1187,16 +1195,17 @@ func GetCompanyPermissionButton(roleTypeCode, status, itemSellerIds, itemGroupId
 				button.BtnView = true                             //查看详情权限
 				if productStatus == utils.COMPANY_STATUS_FORMAL { //正式
 					button.BtnModifySeller = true
-					button.BtnShare = true
+					//button.BtnShare = true
 					button.BtnRemarkView = true
 				} else if productStatus == utils.COMPANY_STATUS_TRY_OUT { //试用
 					button.BtnModifySeller = true
 					button.BtnRemarkView = true
+					//button.BtnShare = true
 				} else if productStatus == utils.COMPANY_STATUS_FREEZE { //冻结
 					button.BtnModifySeller = true
 					button.BtnRemarkView = true
 				} else if productStatus == utils.COMPANY_STATUS_LOSE { //流失
-					if sellerId == sysUserId || groupId == sysUserGroupId {
+					if sellerId == sysUserId || groupId == sysUserGroupId ||utils.InArrayByStr(shareSellerIdArr, strconv.Itoa(sysUserId)) || shareSellerId == sysUserId {
 						button.BtnApplyReceive = true
 					} else {
 						button.BtnReceive = true
@@ -2370,7 +2379,7 @@ func FilterReadAndContractAuth(chartPermissions, contractPermissions, condition
 	return
 }
 
-// GetShareCompanyPermissionButton 正式客户共享-权限按钮(目前仅FICC有正式客户共享, 所以不管权益角色)
+// GetShareCompanyPermissionButton 正式客户共享-权限按钮
 func GetShareCompanyPermissionButton(roleTypeCode, statuses string, productId int, item *company.CompanyItem, sysUser *system.Admin) (button *company.ButtonPermission) {
 	statusMap := make(map[int]string)
 	statusMap[productId] = statuses
@@ -2405,25 +2414,29 @@ func GetShareCompanyPermissionButton(roleTypeCode, statuses string, productId in
 	button.BtnView = true
 
 	// 超管, FICC管理员
-	if roleTypeCode == utils.ROLE_TYPE_CODE_ADMIN || roleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN {
+	if roleTypeCode == utils.ROLE_TYPE_CODE_ADMIN || roleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN || roleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN {
 		button.BtnModifySeller = true
 		button.BtnRemarkView = true
 		button.BtnServiceRecord = true
 	}
-	status, ok := statusMap[1]
-	if !ok {
-		return
+	if roleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
+		button.BtnModifySeller = false
 	}
+	status, _ := statusMap[1]
+	//if !ok {
+	//	return
+	//}
 	// 客户非关闭状态可见沟通记录按钮
 	if status != utils.COMPANY_STATUS_CLOSE {
 		button.BtnServiceRecord = true
 	}
 
-	// ficc销售
-	ficcArr := []string{
+	// 销售
+	sellerArr := []string{
 		utils.ROLE_TYPE_CODE_FICC_GROUP, utils.ROLE_TYPE_CODE_FICC_TEAM, utils.ROLE_TYPE_CODE_FICC_SELLER,
+		utils.ROLE_TYPE_CODE_RAI_GROUP,utils.ROLE_TYPE_CODE_RAI_SELLER,utils.ROLE_TYPE_CODE_RAI_ADMIN,
 	}
-	if !utils.InArrayByStr(ficcArr, roleTypeCode) {
+	if !utils.InArrayByStr(sellerArr, roleTypeCode) {
 		return
 	}
 	if status == utils.COMPANY_STATUS_TRY_OUT {
@@ -2440,7 +2453,7 @@ func GetShareCompanyPermissionButton(roleTypeCode, statuses string, productId in
 		button.BtnRemarkView = true
 		button.BtnServiceRecord = true
 	}
-	companyButton := GetCompanyPermissionButton(roleTypeCode, statuses, item.SellerIds, item.GroupIds, item.GroupId, sysUser.GroupId, item.SellerId, sysUser.AdminId, sysUser.Authority, item.ProductId, item.ShareSellerId)
+	companyButton := GetCompanyPermissionButton(roleTypeCode, statuses, item.SellerIds, item.GroupIds, item.GroupId, sysUser.GroupId, item.SellerId, sysUser.AdminId, sysUser.Authority, item.ProductId, -1, item.ShareSellerIds)
 	if companyButton.BtnShare == true {
 		button.BtnShare = true
 	}

+ 1 - 1
services/statistic_report/company.go

@@ -555,8 +555,8 @@ func CompanyList(sysUser *system.Admin, req statisticModels.IncrementalCompanyLi
 				Deadline:        tmpDeadline,
 				IsShow:          isShow,
 				TryStageSlice:   tryStageSlice,
-				ShareSellerId:   v.ShareSellerId,
 				ShareSeller:     v.ShareSeller,
+				ShareSellerId: v.ShareSellerId,
 			}
 			if strings.Contains(companyList.ApproveStatus, "已审批") {
 				companyList.ApproveStatus = ""

+ 1 - 11
services/task.go

@@ -82,15 +82,7 @@ func InitContractUnusual() (err error) {
 				ficcNormalMap[v.CompanyId] = struct{}{}
 			}
 			for _, v := range contractList {
-				companyInfo, tErr := company.GetCompanyById(v.CompanyId)
-				if tErr != nil {
-					err = tErr
-					return
-				}
-				if companyInfo.IsShare == 0 {
-					companyInfo.ShareSellerId = 0
-					companyInfo.ShareSeller = ""
-				}
+
 				sellers, tErr := company.GetCompanyProductByCompanyIdAndProductId(v.CompanyId, v.ProductId)
 				if tErr != nil {
 					err = tErr
@@ -104,8 +96,6 @@ func InitContractUnusual() (err error) {
 						Source:          1,
 						SellerId:        sellers.SellerId,
 						SellerName:      sellers.SellerName,
-						ShareSellerId:   companyInfo.ShareSellerId,
-						ShareSellerName: companyInfo.ShareSeller,
 						CreateTime:      startDate,
 						ModifyTime:      startDate,
 					}