Browse Source

行业客户类型权限校验

xingzai 3 years ago
parent
commit
536d5546a0
2 changed files with 53 additions and 33 deletions
  1. 42 33
      controllers/activity.go
  2. 11 0
      models/company.go

+ 42 - 33
controllers/activity.go

@@ -112,44 +112,53 @@ func (this *ActivityCoAntroller) ActivityList() {
 	if user.CompanyId <= 1 {
 		userType = 0
 	} else {
-		companyDetail, err := models.GetCompanyDetailByIdGroup(user.CompanyId)
+		total, err := models.GetCountCompanyDetailByIdGroup(user.CompanyId)
 		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取失败,Err:" + err.Error()
 			return
 		}
-		if companyDetail == nil {
-			br.Msg = "获取信息失败!"
-			br.ErrMsg = "客户不存在,uid:" + strconv.Itoa(user.UserId) + "CompanyId:" + strconv.Itoa(user.CompanyId)
-			return
-		}
-		permissionStr, err = models.GetCompanyPermission(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
-			return
-		}
-
-		//1、永续客户
-		//2、大套餐客户(4个行业全开通的正式客户)
-		//3、分行业套餐客户(开通对应行业的正式客户)
-		//4、仅开通专家套餐的正式客户
-		//5、开通对应行业套餐或专家套餐的试用客户
-		if companyDetail.Status == "永续" {
-			userType = 1
-		} else if companyDetail.Status == "试用" {
-			userType = 5
-		} else if companyDetail.Status == "正式" {
-			if permissionStr == "专家" {
-				userType = 4
-			} else if strings.Contains(permissionStr, "医药") && strings.Contains(permissionStr, "消费") && strings.Contains(permissionStr, "科技") && strings.Contains(permissionStr, "智造") {
-				userType = 2
-			} else {
-				userType = 3
+		if total == 0 {
+			userType = 0
+		} else {
+			companyDetail, err := models.GetCompanyDetailByIdGroup(user.CompanyId)
+			if err != nil {
+				br.Msg = "获取信息失败!"
+				br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
+				return
 			}
-			if userType == 3 {
-				if !strings.Contains(permissionStr, "医药") && !strings.Contains(permissionStr, "消费") && !strings.Contains(permissionStr, "科技") && !strings.Contains(permissionStr, "智造") {
+			if companyDetail == nil {
+				br.Msg = "获取信息失败!"
+				br.ErrMsg = "客户不存在,uid:" + strconv.Itoa(user.UserId) + "CompanyId:" + strconv.Itoa(user.CompanyId)
+				return
+			}
+			permissionStr, err = models.GetCompanyPermission(user.CompanyId)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+				return
+			}
+			//1、永续客户
+			//2、大套餐客户(4个行业全开通的正式客户)
+			//3、分行业套餐客户(开通对应行业的正式客户)
+			//4、仅开通专家套餐的正式客户
+			//5、开通对应行业套餐或专家套餐的试用客户
+			if companyDetail.Status == "永续" {
+				userType = 1
+			} else if companyDetail.Status == "试用" {
+				userType = 5
+			} else if companyDetail.Status == "正式" {
+				if permissionStr == "专家" {
 					userType = 4
+				} else if strings.Contains(permissionStr, "医药") && strings.Contains(permissionStr, "消费") && strings.Contains(permissionStr, "科技") && strings.Contains(permissionStr, "智造") {
+					userType = 2
+				} else {
+					userType = 3
+				}
+				if userType == 3 {
+					if !strings.Contains(permissionStr, "医药") && !strings.Contains(permissionStr, "消费") && !strings.Contains(permissionStr, "科技") && !strings.Contains(permissionStr, "智造") {
+						userType = 4
+					}
 				}
 			}
 		}

+ 11 - 0
models/company.go

@@ -33,6 +33,17 @@ func GetCompanyDetailByIdGroup(companyId int) (item *CompanyDetail, err error) {
 	return
 }
 
+func GetCountCompanyDetailByIdGroup(companyId int) (count int, err error) {
+	sql := ` SELECT COUNT(1) AS count
+            FROM company AS a
+			INNER JOIN company_product AS b ON a.company_id=b.company_id
+			LEFT JOIN admin AS c ON b.seller_id=c.admin_id
+			WHERE a.company_id=? AND b.product_id = 2  `
+	o := orm.NewOrm()
+	err = o.Raw(sql, companyId).QueryRow(&count)
+	return
+}
+
 //原有权限叫校验,下方更改与2021-5.18
 //func GetCompanyPermission(companyId int) (permission string, err error) {
 //	sql := ` SELECT GROUP_CONCAT(DISTINCT b.chart_permission_name  ORDER BY b.sort ASC SEPARATOR ',') AS permission