Ver código fonte

共享客户列表能查看本组内的组员的客户列表

xyxie 1 ano atrás
pai
commit
20e70b50d9
2 arquivos alterados com 58 adições e 3 exclusões
  1. 19 3
      controllers/company_share.go
  2. 39 0
      services/system.go

+ 19 - 3
controllers/company_share.go

@@ -175,7 +175,21 @@ func (this *CompanyController) CompanyShareList() {
 				condition += ` AND b.product_id=? `
 				pars = append(pars, productId)
 			}
-			if sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_ADMIN && sysUser.AdminId != 66 && sysUser.AdminId != 15 {
+
+			if sysUser.Authority == 2 && roleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP {
+				groupIdStr, 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 + `) `
+				}
+			} else if sysUser.Authority == 4 || roleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
+				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=? `
 					pars = append(pars, sysUser.AdminId)
@@ -192,8 +206,10 @@ func (this *CompanyController) CompanyShareList() {
 			//非咨询组销售,那么默认查看“未共享”的客户
 			if sysUser.GroupId != groupId {
 				listParam = 3
-				condition += ` AND b.seller_id = ? `
-				pars = append(pars, sysUser.AdminId)
+				if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER {
+					condition += ` AND b.seller_id = ? `
+					pars = append(pars, sysUser.AdminId)
+				}
 			} else {
 				condition += ` AND a.is_share=1 `
 			}

+ 39 - 0
services/system.go

@@ -6,6 +6,8 @@ import (
 	"hongze/hz_crm_api/models/roadshow"
 	"hongze/hz_crm_api/models/system"
 	"hongze/hz_crm_api/utils"
+	"strconv"
+	"strings"
 	"time"
 )
 
@@ -290,3 +292,40 @@ func CheckRaiAdmin(adminId int) (isRai bool, err error) {
 	}
 	return
 }
+
+func GetFiccChildGroupIdsByGroupIds(groupId int) (sid string, err error) {
+	pid, err := company.GetParentIdFromGroup(groupId)
+	if err != nil {
+		return
+	}
+	var ids []*string
+	if pid != nil {
+		if *pid != 0 {
+			//销售主管放在三级列表中
+			ids, err = company.GetGroupIdsByParentId(*pid)
+			if err != nil {
+				fmt.Println(err.Error())
+				return
+			}
+		} else {
+			//销售主管放在二级列表中
+			ids, err = company.GetGroupIdsByParentId(groupId)
+			if err != nil {
+				fmt.Println(err.Error())
+				return
+			}
+		}
+	}
+	var idSlice []string
+	for _, id := range ids {
+		idSlice = append(idSlice, *id)
+	}
+	//加入父级groupId
+	if *pid > 0 {
+		idSlice = append(idSlice, strconv.Itoa(*pid))
+	} else {
+		idSlice = append(idSlice, strconv.Itoa(groupId))
+	}
+	sid = strings.Join(idSlice, ",")
+	return
+}