Quellcode durchsuchen

fix:客户权限,兼容权益状态下有着策略的用户

Roc vor 3 Jahren
Ursprung
Commit
12f0d778ff
1 geänderte Dateien mit 45 neuen und 1 gelöschten Zeilen
  1. 45 1
      services/company/permission.go

+ 45 - 1
services/company/permission.go

@@ -120,10 +120,13 @@ func CheckPermissionByFicc(companyId int64, permissionId int) (ok bool, permissi
 	return
 }
 
-// CheckPermissionByPermissionIdList2Ficc 根据权限id集合权限校验
+// CheckPermissionByPermissionIdList2Ficc 根据权限id集合权限校验(ficc)
 func CheckPermissionByPermissionIdList2Ficc(companyId int64, userId int, permissionIdList []int) (ok bool, permissionCheckInfo PermissionCheckInfo, err error) {
 	defer func() {
 		// 如果无权限,那么就去查询是否申请过
+		if ok == false {
+			ok, _ = checkPermissionByPermissionIdList2Rai(companyId, permissionIdList)
+		}
 		if ok == false && permissionCheckInfo.Type == "apply" {
 			_, err = yb_apply_record.GetLastNotOpRecordByUserId(userId)
 			//查询是否有申请过,如果有申请过的话,那么err是nil
@@ -232,3 +235,44 @@ func CheckPermissionByPermissionIdList2Ficc(companyId int64, userId int, permiss
 
 	return
 }
+
+// checkPermissionByPermissionIdList2Rai 根据权限id集合权限校验(权益)
+func checkPermissionByPermissionIdList2Rai(companyId int64, permissionIdList []int) (ok bool, err error) {
+	//非潜在客户
+	if len(permissionIdList) <= 0 {
+		err = fmt.Errorf("权限异常,请传入需要校验的权限")
+		return
+	}
+
+	//市场策略(ficc权限id):33
+	ficcPermissionId := 33
+	//市场策略(权益权限id):23
+	raiPermissionId := 23
+
+	//是否往下校验
+	var permissionOk bool
+	for _, permissionId := range permissionIdList {
+		if permissionId == ficcPermissionId {
+			permissionOk = true
+		}
+	}
+	var productId int64
+	productId = 2
+	if companyId > 1 && permissionOk {
+		// 获取有效的权限id列表
+		validPermissionIdList, tmpErr := GetValidPermissionIdListByCompany2ProductId(companyId, productId)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		// 校验在有效的权限id列表中是否存在该权限
+		for _, validPermissionId := range validPermissionIdList {
+			if validPermissionId == raiPermissionId {
+				ok = true
+				return
+			}
+		}
+	}
+
+	return
+}