浏览代码

咨询组内的ficc销售组长可以查看被分配给下级销售的客户

xyxie 1 年之前
父节点
当前提交
4ff878b607
共有 2 个文件被更改,包括 59 次插入6 次删除
  1. 23 5
      controllers/company_share.go
  2. 36 1
      services/system.go

+ 23 - 5
controllers/company_share.go

@@ -177,18 +177,36 @@ func (this *CompanyController) CompanyShareList() {
 			}
 
 			if sysUser.Authority == 2 && roleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP {
-				groupIdStr, err := services.GetFiccChildGroupIdsByGroupIds(sysUser.GroupId)
+				groupIdStr, sellerIdStr, err := services.GetFiccChildGroupIdsByGroupIds(sysUser.GroupId)
 				if err != nil {
 					br.Msg = "获取销售分组信息失败!"
 					br.ErrMsg = "获取销售分组信息失败!Err:" + err.Error()
 					return
 				}
-				if groupIdStr != "" {
-					condition += ` AND b.group_id IN (` + groupIdStr + `) `
+				if sysUser.GroupId == groupId {
+					if sellerIdStr != "" {
+						condition += ` AND a.share_seller_id IN (` + sellerIdStr + `) `
+					}
+				} else {
+					if groupIdStr != "" {
+						condition += ` AND b.group_id IN (` + groupIdStr + `) `
+					}
 				}
 			} else if sysUser.Authority == 4 || roleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
-				condition += ` AND b.group_id=? `
-				pars = append(pars, sysUser.GroupId)
+				if sysUser.GroupId == groupId {
+					sellerIdStr, err := services.GetFiccSellerIdsByGroupId(sysUser.GroupId)
+					if err != nil {
+						br.Msg = "获取销售分组信息失败!"
+						br.ErrMsg = "获取销售分组信息失败!Err:" + err.Error()
+						return
+					}
+					if sellerIdStr != "" {
+						condition += ` AND a.share_seller_id IN (` + sellerIdStr + `) `
+					}
+				} else {
+					condition += ` AND b.group_id=? `
+					pars = append(pars, sysUser.GroupId)
+				}
 			} 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=? `

+ 36 - 1
services/system.go

@@ -293,7 +293,7 @@ func CheckRaiAdmin(adminId int) (isRai bool, err error) {
 	return
 }
 
-func GetFiccChildGroupIdsByGroupIds(groupId int) (sid string, err error) {
+func GetFiccChildGroupIdsByGroupIds(groupId int) (sid string, sellerIds string, err error) {
 	pid, err := company.GetParentIdFromGroup(groupId)
 	if err != nil {
 		return
@@ -327,5 +327,40 @@ func GetFiccChildGroupIdsByGroupIds(groupId int) (sid string, err error) {
 		idSlice = append(idSlice, strconv.Itoa(groupId))
 	}
 	sid = strings.Join(idSlice, ",")
+
+	//查询这些组内的所有seller_ids
+	if len(idSlice) > 0 {
+		admins, tErr := system.GetTeamSysUserListByIds(sid)
+		if tErr != nil {
+			err = tErr
+			fmt.Println(tErr.Error())
+			return
+		}
+		var sellerIdSlice []string
+		for _, v := range admins {
+			sellerIdSlice = append(sellerIdSlice, strconv.Itoa(v.AdminId))
+		}
+		sellerIds = strings.Join(sellerIdSlice, ",")
+	}
+
+	return
+}
+
+func GetFiccSellerIdsByGroupId(groupId int) (sellerIds string, err error) {
+	//查询这些组内的所有seller_ids
+	if groupId > 0 {
+		admins, tErr := system.GetAdminByGroupId(groupId)
+		if tErr != nil {
+			err = tErr
+			fmt.Println(tErr.Error())
+			return
+		}
+		var sellerIdSlice []string
+		for _, v := range admins {
+			sellerIdSlice = append(sellerIdSlice, strconv.Itoa(v.AdminId))
+		}
+		sellerIds = strings.Join(sellerIdSlice, ",")
+	}
+
 	return
 }