Przeglądaj źródła

所有一级品种权限改成从表中获取

xyxie 11 miesięcy temu
rodzic
commit
a8e6b156b9

+ 54 - 49
controllers/company.go

@@ -3577,51 +3577,50 @@ func (this *CompanyController) DetailByCreditCode() {
 					}
 				}
 			}
-			for _, v := range utils.PermissionFiccClassifyArr {
-				checkList := make([]int, 0)
-				plist := new(company.PermissionLookList)
-				items, err := company.GetPermissionLookItems(item.ProductId, v)
-				if err != nil {
-					br.Msg = "获取失败"
-					br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
-					return
-				}
-				for itemK, n := range items {
-					permission, err := company.GetCompanyPermissionCheckItem(companyId, n.ChartPermissionId)
-					if err != nil && err.Error() != utils.ErrNoRow() {
-						br.Msg = "获取失败"
-						br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
-						return
-					}
-					if permission != nil && permission.ChartPermissionId > 0 {
-						checkList = append(checkList, n.ChartPermissionId)
-						items[itemK].StartDate = permission.StartDate
-						items[itemK].EndDate = permission.EndDate
-						items[itemK].Status = permission.Status
+			//子权限切片集合
+			allFiccPermissions, permissionMap, e := services.GetBasePermissionLookItem(utils.COMPANY_PRODUCT_FICC_ID)
+			if e != nil {
+				br.Msg = "查询基础权限失败"
+				br.ErrMsg = "查询基础权限失败,Err:" + e.Error()
+				return
+			}
+			//遍历获取
+			for _, v := range allFiccPermissions {
+				if v.ParentId == 0 {
+					checkList := make([]int, 0)
+					plist := new(company.PermissionLookList)
+					plist.Items = make([]*company.PermissionLookItem, 0)
+					items, ok1 := permissionMap[v.ChartPermissionId]
+					if ok1 {
+						plist.Items = items
+						for itemK, n := range items {
+							permission, e := company.GetCompanyPermissionCheckItem(companyId, n.ChartPermissionId)
+							if e != nil && e.Error() != utils.ErrNoRow() {
+								br.Msg = "获取失败"
+								br.ErrMsg = "获取权限信息失败,Err:" + e.Error()
+								return
+							}
+							if permission != nil && permission.ChartPermissionId > 0 {
+								checkList = append(checkList, n.ChartPermissionId)
+								items[itemK].StartDate = permission.StartDate
+								items[itemK].EndDate = permission.EndDate
+								items[itemK].Status = permission.Status
 
-						endDateTime, _ := time.Parse(utils.FormatDate, permission.EndDate)
-						endDateTime = endDateTime.AddDate(0, 0, 1)
-						sub := endDateTime.Sub(time.Now())
-						if sub < 0 {
-							sub = 0
+								endDateTime, _ := time.Parse(utils.FormatDate, permission.EndDate)
+								endDateTime = endDateTime.AddDate(0, 0, 1)
+								sub := endDateTime.Sub(time.Now())
+								if sub < 0 {
+									sub = 0
+								}
+								expireDay := fmt.Sprintf("%v", int(sub.Hours()/24))
+								items[itemK].ExpireDay = expireDay
+							}
 						}
-						expireDay := fmt.Sprintf("%v", int(sub.Hours()/24))
-						items[itemK].ExpireDay = expireDay
 					}
-					//count, err := company.GetCompanyPermissionCheck(companyId, n.ChartPermissionId)
-					//if err != nil {
-					//	br.Msg = "获取失败"
-					//	br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
-					//	return
-					//}
-					//if count > 0 {
-					//	checkList = append(checkList, n.ChartPermissionId)
-					//}
+					plist.ClassifyName = v.PermissionName
+					plist.CheckList = checkList
+					item.PermissionList = append(item.PermissionList, plist)
 				}
-				plist.Items = items
-				plist.ClassifyName = v
-				plist.CheckList = checkList
-				item.PermissionList = append(item.PermissionList, plist)
 			}
 			resp.FiccItem = item
 			if (roleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER ||
@@ -7597,20 +7596,26 @@ func (this *CompanyController) PermissionList() {
 
 	for _, companyType := range companySlice {
 		//子权限切片集合
-		var permissionClassifyArr []string
+		//var permissionClassifyArr []string
+		var permissionProductId int
 		if companyType == "ficc" {
-			for _, v := range utils.PermissionFiccClassifyArr {
-				permissionClassifyArr = append(permissionClassifyArr, v)
-			}
+			permissionProductId = utils.COMPANY_PRODUCT_FICC_ID
 		} else {
-			permissionClassifyArr = append(permissionClassifyArr, "权益")
+			permissionProductId = utils.COMPANY_PRODUCT_RAI_ID
+		}
+		//子权限切片集合
+		permissionClassifyArr, err := models.GetPermissionFirstByProductId(permissionProductId)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
+			return
 		}
 
 		//遍历获取
 		for _, v := range permissionClassifyArr {
 			checkList := make([]int, 0)
 			plist := new(company.PermissionLookList)
-			items, err := company.GetPermissionLookItems(classifyMap[companyType], v)
+			items, err := company.GetPermissionLookItemsByParentId(classifyMap[companyType], v.ChartPermissionId)
 			if err != nil {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
@@ -7657,7 +7662,7 @@ func (this *CompanyController) PermissionList() {
 				}
 				expireDay := fmt.Sprintf("%v", int(sub.Hours()/24))
 				items[i].ExpireDay = expireDay
-				items[i].ClassifyName = v
+				items[i].ClassifyName = v.PermissionName
 				//if n.PermissionType == 1 {
 				//	items[i].PermissionTypeName = "主观"
 				//} else if n.PermissionType == 2 {
@@ -7678,7 +7683,7 @@ func (this *CompanyController) PermissionList() {
 					}
 				}
 			}
-			plist.ClassifyName = v
+			plist.ClassifyName = v.PermissionName
 			plist.CheckList = checkList
 			if companyType == "ficc" {
 				resp.FiccPermissionList = append(resp.FiccPermissionList, plist)

+ 38 - 23
controllers/company_apply.go

@@ -81,10 +81,16 @@ func (this *CompanyApplyController) ApplyContractHistoryList() {
 
 		productId = list[i].ProductId
 		if productId == 1 {
-			for _, v := range utils.PermissionFiccClassifyArr {
+			permissionClassifyArr, e := services.GetPermissionFirstArr(utils.COMPANY_PRODUCT_FICC_ID)
+			if e != nil {
+				br.Msg = "获取失败"
+				br.ErrMsg = "获取权限分类失败,Err:" + e.Error()
+				return
+			}
+			for _, v := range permissionClassifyArr {
 				checkList := make([]int, 0)
 				plist := new(company.ContractPermissionList)
-				items, err := company.GetPermissionLookItemsExt(productIdStr, v)
+				items, err := company.GetPermissionLookItemsExtByParentId(productIdStr, v.ChartPermissionId)
 				if err != nil {
 					br.Msg = "获取失败"
 					br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
@@ -102,7 +108,7 @@ func (this *CompanyApplyController) ApplyContractHistoryList() {
 					}
 				}
 				plist.Items = items
-				plist.ClassifyName = v
+				plist.ClassifyName = v.PermissionName
 				plist.CheckList = checkList
 				list[i].PermissionList = append(list[i].PermissionList, plist)
 			}
@@ -398,30 +404,39 @@ func (this *CompanyApplyController) ApplyContractDetail() {
 	}
 
 	if detail.ProductId == 1 {
-		for _, v := range utils.PermissionFiccClassifyArr {
-			checkList := make([]int, 0)
-			plist := new(company.PermissionLookList)
-			items, err := company.GetPermissionLookItems(detail.ProductId, v)
-			if err != nil {
-				br.Msg = "获取失败"
-				br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
-				return
-			}
-			for _, n := range items {
-				count, err := company.GetCompanyContractPermissionCheckByContractId(companyId, detail.CompanyContractId, n.ChartPermissionId)
-				if err != nil {
-					br.Msg = "获取失败"
-					br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
+		//子权限切片集合
+		allFiccPermissions, permissionMap, e := services.GetBasePermissionLookItem(utils.COMPANY_PRODUCT_FICC_ID)
+		if e != nil {
+			br.Msg = "查询基础权限失败"
+			br.ErrMsg = "查询基础权限失败,Err:" + e.Error()
+			return
+		}
+		//遍历获取
+		for _, v := range allFiccPermissions {
+			if v.ParentId == 0 {
+				checkList := make([]int, 0)
+				plist := new(company.PermissionLookList)
+				items, ok := permissionMap[v.ChartPermissionId]
+				if !ok {
+					br.Msg = "获取权限信息失败"
 					return
 				}
-				if count > 0 {
-					checkList = append(checkList, n.ChartPermissionId)
+				for _, n := range items {
+					count, err := company.GetCompanyContractPermissionCheckByContractId(companyId, detail.CompanyContractId, n.ChartPermissionId)
+					if err != nil {
+						br.Msg = "获取失败"
+						br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
+						return
+					}
+					if count > 0 {
+						checkList = append(checkList, n.ChartPermissionId)
+					}
 				}
+				plist.Items = items
+				plist.ClassifyName = v.PermissionName
+				plist.CheckList = checkList
+				detail.PermissionList = append(detail.PermissionList, plist)
 			}
-			plist.Items = items
-			plist.ClassifyName = v
-			plist.CheckList = checkList
-			detail.PermissionList = append(detail.PermissionList, plist)
 		}
 	}
 

+ 12 - 8
controllers/company_approval.go

@@ -655,15 +655,19 @@ func (this *CompanyApprovalController) GetApprovalPermissionList() {
 	}
 
 	//子权限切片集合
-	var permissionClassifyArr []string
+	var permissionProductId int
+
 	if approvalInfo.ProductId == 1 {
-		for _, v := range utils.PermissionFiccClassifyArr {
-			permissionClassifyArr = append(permissionClassifyArr, v)
-		}
+		permissionProductId = 1
 	} else {
-		permissionClassifyArr = append(permissionClassifyArr, "权益")
+		permissionProductId = 2
+	}
+	permissionClassifyArr, err := services.GetPermissionFirstArr(permissionProductId)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取权限分类失败,Err:" + err.Error()
+		return
 	}
-
 	//获取需要审批的权限
 	delayPermissionList, err := company.GetDelayPermissionItems(approvalInfo.CompanyId, approvalInfo.CompanyApprovalId)
 	if err != nil && err.Error() != utils.ErrNoRow() {
@@ -682,7 +686,7 @@ func (this *CompanyApprovalController) GetApprovalPermissionList() {
 	for _, v := range permissionClassifyArr {
 		checkList := make([]int, 0)
 		plist := new(company.PermissionLookList)
-		items, err := company.GetPermissionLookItems(approvalInfo.ProductId, v)
+		items, err := company.GetPermissionLookItemsByParentId(approvalInfo.ProductId, v.ChartPermissionId)
 		if err != nil {
 			br.Msg = "获取失败"
 			br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
@@ -710,7 +714,7 @@ func (this *CompanyApprovalController) GetApprovalPermissionList() {
 		//	}
 		//}
 		plist.Items = items
-		plist.ClassifyName = v
+		plist.ClassifyName = v.PermissionName
 		plist.CheckList = checkList
 		if approvalInfo.ProductId == 1 {
 			resp.FiccPermissionList = append(resp.FiccPermissionList, plist)

+ 18 - 56
controllers/company_permission.go

@@ -237,7 +237,7 @@ func (this *CompanyPermissionController) ListByContract() {
 
 	roleTypeCode := sysUser.RoleTypeCode
 	productId = services.GetProductId(roleTypeCode)
-	if productId == 1 {
+	if productId == 1 || companyType == utils.COMPANY_PRODUCT_FICC_NAME {
 		allFiccPermissions, err := company.GetPermissionByProductId(utils.COMPANY_PRODUCT_FICC_ID)
 		if err != nil {
 			br.Msg = "获取失败"
@@ -288,25 +288,7 @@ func (this *CompanyPermissionController) ListByContract() {
 		p.CheckList = checkList
 		resp.List = append(resp.List, p)
 	} else {
-		if companyType == utils.COMPANY_PRODUCT_FICC_NAME {
-			for _, v := range utils.PermissionFiccClassifyArr {
-				checkList := make([]int, 0)
-				p := new(company.PermissionSetList)
-				p.ClassifyName = v
-				items, err := company.GetPermissionSetItems(1, v)
-				if err != nil {
-					br.Msg = "获取失败"
-					br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
-					return
-				}
-				p.Items = items
-				if v == "宏观经济" {
-					checkList = append(checkList, 1)
-				}
-				p.CheckList = checkList
-				resp.List = append(resp.List, p)
-			}
-		} else {
+		if companyType != utils.COMPANY_PRODUCT_FICC_NAME {
 			v := "权益"
 			checkList := make([]int, 0)
 			p := new(company.PermissionSetList)
@@ -359,23 +341,17 @@ func (this *CompanyPermissionController) PermissionLook() {
 	productId := services.GetProductId(roleTypeCode)
 
 	resp := new(company.PermissionLookResp)
-	permissionArr := []string{}
+	permissionArr := make([]*models.ChartPermission, 0)
+	var err error
 	if lookType == 1 {
-		if productId == 1 {
-			for _, permission := range utils.PermissionFiccClassifyArr {
-				permissionArr = append(permissionArr, permission)
-			}
-		} else if productId == 2 {
-			permissionArr = []string{"权益"}
-		} else {
-			for _, permission := range utils.PermissionAllClassifyArr {
-				permissionArr = append(permissionArr, permission)
-			}
-		}
+		permissionArr, err = services.GetPermissionFirstArr(productId)
 	} else {
-		for _, permission := range utils.PermissionAllClassifyArr {
-			permissionArr = append(permissionArr, permission)
-		}
+		permissionArr, err = services.GetPermissionFirstArr(0)
+	}
+	if err != nil {
+		br.Msg = "获取权限失败"
+		br.ErrMsg = "获取权限失败 err:" + err.Error()
+		return
 	}
 	//ficc权限类目
 	for _, v := range permissionArr {
@@ -387,10 +363,10 @@ func (this *CompanyPermissionController) PermissionLook() {
 		//} else {
 		//	productId = 1
 		//}
-		if v != "权益" {
+		if v.PermissionName != "权益" {
 			productId = 1
 			//mapPermissionName := make(map[string]int)
-			items, err := company.GetPermissionLookItems(productId, v)
+			items, err := company.GetPermissionLookItemsByParentId(productId, v.ChartPermissionId)
 			if err != nil {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
@@ -436,7 +412,7 @@ func (this *CompanyPermissionController) PermissionLook() {
 				}
 				expireDay := fmt.Sprintf("%v", int(sub.Hours()/24))
 				items[i].ExpireDay = expireDay
-				items[i].ClassifyName = v
+				items[i].ClassifyName = v.PermissionName
 				if lookType == 1 {
 					permissionList = append(permissionList, items[i])
 				} else {
@@ -453,7 +429,7 @@ func (this *CompanyPermissionController) PermissionLook() {
 					mapPermissionNameList[v.PermissionName] = v.ChartPermissionId
 				}
 			}
-			p.ClassifyName = v
+			p.ClassifyName = v.PermissionName
 			//p.Items = permissionList
 			p.CheckList = checkList
 			if lookType == 1 {
@@ -469,7 +445,7 @@ func (this *CompanyPermissionController) PermissionLook() {
 	//权益权限类目
 	for _, v := range permissionArr {
 
-		if v == "权益" {
+		if v.PermissionName == "权益" {
 			// CRM8.8-权益权限列表调用较多、统一进行调整
 			unify := false
 			if lookType == 1 {
@@ -777,7 +753,7 @@ func (this *CompanyPermissionController) PermissionVariety() {
 		productId = 0
 	}
 
-	if productId == 1 {
+	if productId == 1 || companyType == utils.COMPANY_PRODUCT_FICC_NAME {
 		allFiccPermissions, e := company.GetPermissionVarietyItemsByProductId(utils.COMPANY_PRODUCT_FICC_ID)
 		if e != nil {
 			br.Msg = "获取权限信息失败"
@@ -829,21 +805,7 @@ func (this *CompanyPermissionController) PermissionVariety() {
 		p.Items = items
 		resp.List = append(resp.List, p)
 	} else {
-		if companyType == utils.COMPANY_PRODUCT_FICC_NAME {
-			for k, v := range utils.PermissionFiccClassifyArr {
-				p := new(company.PermissionVarietyList)
-				p.ClassifyName = v
-				p.ChartPermissionId = k + 100
-				items, err := company.GetPermissionVarietyItems(1, v)
-				if err != nil {
-					br.Msg = "获取失败"
-					br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
-					return
-				}
-				p.Items = items
-				resp.List = append(resp.List, p)
-			}
-		} else if companyType == utils.COMPANY_PRODUCT_RAI_NAME {
+		if companyType == utils.COMPANY_PRODUCT_RAI_NAME {
 			v := "权益"
 			p := new(company.PermissionVarietyList)
 			p.ClassifyName = v

+ 13 - 7
controllers/contract/contract.go

@@ -901,14 +901,20 @@ func contractListExport(this *ContractController, list []*contract.ContractList,
 					}
 
 					permissionList := make([]*company.PermissionSetItem, 0)
-					for _, v := range utils.PermissionFiccClassifyArr {
-						items, err := company.GetPermissionSetItems(1, v)
-						if err != nil {
-							br.Msg = "获取失败"
-							br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
-							return
+					allPermissions, permissionMap, e := services.GetBaseFiccPermissionSetItem()
+					if e != nil {
+						br.Msg = "查询基础权限失败"
+						br.ErrMsg = "查询基础权限失败,Err:" + e.Error()
+						return
+					}
+					//遍历获取
+					for _, v := range allPermissions {
+						if v.ParentId == 0 {
+							items, ok := permissionMap[v.ChartPermissionId]
+							if ok {
+								permissionList = append(permissionList, items...)
+							}
 						}
-						permissionList = append(permissionList, items...)
 					}
 
 					//权限列表

+ 34 - 4
controllers/contract/contract_approval.go

@@ -624,7 +624,22 @@ func contractApprovalListExport(this *ContractApprovalController, list []*contra
 					}
 
 					permissionList := make([]*company.PermissionSetItem, 0)
-					for _, v := range utils.PermissionFiccClassifyArr {
+					allPermissions, permissionMap, e := services.GetBaseFiccPermissionSetItem()
+					if e != nil {
+						br.Msg = "查询基础权限失败"
+						br.ErrMsg = "查询基础权限失败,Err:" + e.Error()
+						return
+					}
+					//遍历获取
+					for _, v := range allPermissions {
+						if v.ParentId == 0 {
+							items, ok := permissionMap[v.ChartPermissionId]
+							if ok {
+								permissionList = append(permissionList, items...)
+							}
+						}
+					}
+					/*for _, v := range utils.PermissionFiccClassifyArr {
 						items, err := company.GetPermissionSetItems(1, v)
 						if err != nil {
 							br.Msg = "获取失败"
@@ -632,7 +647,7 @@ func contractApprovalListExport(this *ContractApprovalController, list []*contra
 							return
 						}
 						permissionList = append(permissionList, items...)
-					}
+					}*/
 
 					//权限列表
 					for j := 0; j < len(permissionList); j++ {
@@ -1259,7 +1274,22 @@ func (this *ContractApprovalController) Export() {
 					}
 
 					permissionList := make([]*company.PermissionSetItem, 0)
-					for _, v := range utils.PermissionFiccClassifyArr {
+					allPermissions, permissionMap, e := services.GetBaseFiccPermissionSetItem()
+					if e != nil {
+						br.Msg = "查询基础权限失败"
+						br.ErrMsg = "查询基础权限失败,Err:" + e.Error()
+						return
+					}
+					//遍历获取
+					for _, v := range allPermissions {
+						if v.ParentId == 0 {
+							items, ok := permissionMap[v.ChartPermissionId]
+							if ok {
+								permissionList = append(permissionList, items...)
+							}
+						}
+					}
+					/*for _, v := range utils.PermissionFiccClassifyArr {
 						items, err := company.GetPermissionSetItems(1, v)
 						if err != nil {
 							br.Msg = "获取失败"
@@ -1268,7 +1298,7 @@ func (this *ContractApprovalController) Export() {
 						}
 						permissionList = append(permissionList, items...)
 					}
-
+					*/
 					//权限列表
 					for j := 0; j < len(permissionList); j++ {
 						key := fmt.Sprint(item.ServiceTemplateId, "_permission_", permissionList[j].ChartPermissionId)

+ 66 - 46
controllers/full_company.go

@@ -2374,51 +2374,60 @@ func (this *FullCompanyController) Detail() {
 					}
 				}
 			}
-			for _, v := range utils.PermissionFiccClassifyArr {
-				checkList := make([]int, 0)
-				plist := new(company.PermissionLookList)
-				items, err := company.GetPermissionLookItems(item.ProductId, v)
-				if err != nil {
-					br.Msg = "获取失败"
-					br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
-					return
-				}
-				for itemK, n := range items {
-					permission, err := company.GetCompanyPermissionCheckItem(companyId, n.ChartPermissionId)
-					if err != nil && err.Error() != utils.ErrNoRow() {
-						br.Msg = "获取失败"
-						br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
+			//子权限切片集合
+			allFiccPermissions, permissionMap, e := services.GetBasePermissionLookItem(utils.COMPANY_PRODUCT_FICC_ID)
+			if e != nil {
+				br.Msg = "查询基础权限失败"
+				br.ErrMsg = "查询基础权限失败,Err:" + e.Error()
+				return
+			}
+			//遍历获取
+			for _, v := range allFiccPermissions {
+				if v.ParentId == 0 {
+					checkList := make([]int, 0)
+					plist := new(company.PermissionLookList)
+					items, ok := permissionMap[v.ChartPermissionId]
+					if !ok {
+						br.Msg = "获取权限信息失败"
 						return
 					}
-					if permission != nil && permission.ChartPermissionId > 0 {
-						checkList = append(checkList, n.ChartPermissionId)
-						items[itemK].StartDate = permission.StartDate
-						items[itemK].EndDate = permission.EndDate
-						items[itemK].Status = permission.Status
+					for itemK, n := range items {
+						permission, err := company.GetCompanyPermissionCheckItem(companyId, n.ChartPermissionId)
+						if err != nil && err.Error() != utils.ErrNoRow() {
+							br.Msg = "获取失败"
+							br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
+							return
+						}
+						if permission != nil && permission.ChartPermissionId > 0 {
+							checkList = append(checkList, n.ChartPermissionId)
+							items[itemK].StartDate = permission.StartDate
+							items[itemK].EndDate = permission.EndDate
+							items[itemK].Status = permission.Status
 
-						endDateTime, _ := time.Parse(utils.FormatDate, permission.EndDate)
-						endDateTime = endDateTime.AddDate(0, 0, 1)
-						sub := endDateTime.Sub(time.Now())
-						if sub < 0 {
-							sub = 0
+							endDateTime, _ := time.Parse(utils.FormatDate, permission.EndDate)
+							endDateTime = endDateTime.AddDate(0, 0, 1)
+							sub := endDateTime.Sub(time.Now())
+							if sub < 0 {
+								sub = 0
+							}
+							expireDay := fmt.Sprintf("%v", int(sub.Hours()/24))
+							items[itemK].ExpireDay = expireDay
 						}
-						expireDay := fmt.Sprintf("%v", int(sub.Hours()/24))
-						items[itemK].ExpireDay = expireDay
+						//count, err := company.GetCompanyPermissionCheck(companyId, n.ChartPermissionId)
+						//if err != nil {
+						//	br.Msg = "获取失败"
+						//	br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
+						//	return
+						//}
+						//if count > 0 {
+						//	checkList = append(checkList, n.ChartPermissionId)
+						//}
 					}
-					//count, err := company.GetCompanyPermissionCheck(companyId, n.ChartPermissionId)
-					//if err != nil {
-					//	br.Msg = "获取失败"
-					//	br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
-					//	return
-					//}
-					//if count > 0 {
-					//	checkList = append(checkList, n.ChartPermissionId)
-					//}
+					plist.Items = items
+					plist.ClassifyName = v.PermissionName
+					plist.CheckList = checkList
+					item.PermissionList = append(item.PermissionList, plist)
 				}
-				plist.Items = items
-				plist.ClassifyName = v
-				plist.CheckList = checkList
-				item.PermissionList = append(item.PermissionList, plist)
 			}
 			resp.FiccItem = item
 			if (roleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER ||
@@ -2635,8 +2644,19 @@ func (this *FullCompanyController) PermissionLook() {
 	}
 
 	resp := new(company.PermissionLookResp)
-	permissionArr := []string{}
+	permissionArr := make([]*models.ChartPermission, 0)
+	var err error
 	if lookType == 1 {
+		permissionArr, err = services.GetPermissionFirstArr(productId)
+	} else {
+		permissionArr, err = services.GetPermissionFirstArr(0)
+	}
+	if err != nil {
+		br.Msg = "获取权限失败"
+		br.ErrMsg = "获取权限失败 err:" + err.Error()
+		return
+	}
+	/*if lookType == 1 {
 		if productId == 1 {
 			for _, permission := range utils.PermissionFiccClassifyArr {
 				permissionArr = append(permissionArr, permission)
@@ -2652,7 +2672,7 @@ func (this *FullCompanyController) PermissionLook() {
 		for _, permission := range utils.PermissionAllClassifyArr {
 			permissionArr = append(permissionArr, permission)
 		}
-	}
+	}*/
 	//ficc权限类目
 	for _, v := range permissionArr {
 		checkList := make([]int, 0)
@@ -2663,10 +2683,10 @@ func (this *FullCompanyController) PermissionLook() {
 		//} else {
 		//	productId = 1
 		//}
-		if v != "权益" {
+		if v.PermissionName != "权益" {
 			productId = 1
 			//mapPermissionName := make(map[string]int)
-			items, err := company.GetPermissionLookItems(productId, v)
+			items, err := company.GetPermissionLookItemsByParentId(productId, v.ChartPermissionId)
 			if err != nil {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
@@ -2712,7 +2732,7 @@ func (this *FullCompanyController) PermissionLook() {
 				}
 				expireDay := fmt.Sprintf("%v", int(sub.Hours()/24))
 				items[i].ExpireDay = expireDay
-				items[i].ClassifyName = v
+				items[i].ClassifyName = v.PermissionName
 				if lookType == 1 {
 					permissionList = append(permissionList, items[i])
 				} else {
@@ -2729,7 +2749,7 @@ func (this *FullCompanyController) PermissionLook() {
 					mapPermissionNameList[v.PermissionName] = v.ChartPermissionId
 				}
 			}
-			p.ClassifyName = v
+			p.ClassifyName = v.PermissionName
 			//p.Items = permissionList
 			p.CheckList = checkList
 			if lookType == 1 {
@@ -2745,7 +2765,7 @@ func (this *FullCompanyController) PermissionLook() {
 	//权益权限类目
 	for _, v := range permissionArr {
 
-		if v == "权益" {
+		if v.PermissionName == "权益" {
 			// CRM8.8-权益权限列表调用较多、统一进行调整
 			unify := false
 			if lookType == 1 {

+ 16 - 0
models/chart_permission.go

@@ -80,6 +80,22 @@ func GetFiccPermissionSecondPublic() (items []*ChartPermission, err error) {
 	return
 }
 
+// GetPermissionFirstByProductId 获取一级品种
+func GetPermissionFirstByProductId(productId int) (items []*ChartPermission, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM chart_permission WHERE enabled = 1 AND product_id = ? and parent_id=0  ORDER BY sort ASC`
+	_, err = o.Raw(sql, productId).QueryRows(&items)
+	return
+}
+
+// GetPermissionFirst 获取一级品种
+func GetPermissionFirst() (items []*ChartPermission, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM chart_permission WHERE enabled = 1 and parent_id=0  ORDER BY sort ASC`
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
 // GetPermissionByProductIdAndClassifyName 获取子分类
 func GetPermissionByProductIdAndClassifyName(productId int, classifyName string) (items []*ChartPermission, err error) {
 	o := orm.NewOrm()

+ 13 - 0
models/company/company_permission.go

@@ -196,6 +196,13 @@ func GetPermissionLookItemsByProductId(productId int) (items []*PermissionLookIt
 	return
 }
 
+func GetPermissionLookItemsByParentId(productId int, parentId int) (items []*PermissionLookItem, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND parent_id=? ORDER BY sort ASC `
+	_, err = o.Raw(sql, productId, parentId).QueryRows(&items)
+	return
+}
+
 func GetCompanyPermissionCheck(companyId, permissionId int) (count int, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT COUNT(1) AS count FROM company_report_permission AS a WHERE a.company_id=? AND a.chart_permission_id=? `
@@ -384,6 +391,12 @@ func GetPermissionLookItemsExt(productId string, classifyName string) (items []*
 	_, err = o.Raw(sql, classifyName).QueryRows(&items)
 	return
 }
+func GetPermissionLookItemsExtByParentId(productId string, parentId int) (items []*PermissionLookItem, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id IN(` + productId + `) AND parent_id=? ORDER BY sort ASC `
+	_, err = o.Raw(sql, parentId).QueryRows(&items)
+	return
+}
 
 // 客户授权产品结构体(包含产品名称)
 type CompanyReportPermissionAndName struct {

+ 41 - 0
services/company_permission.go

@@ -368,3 +368,44 @@ func GetPermissionNameMap() (mapItem map[int]string, err error) {
 	mapItem = mapPermissionName
 	return
 }
+
+func GetBasePermissionLookItem(productId int) (allPermissions []*company.PermissionLookItem, permissionMap map[int][]*company.PermissionLookItem, err error) {
+	//子权限切片集合
+	allPermissions, err = company.GetPermissionLookItemsByProductId(productId)
+	if err != nil {
+		err = fmt.Errorf("获取权限失败,Err:%s", err.Error())
+		return
+	}
+	permissionMap = make(map[int][]*company.PermissionLookItem, 0)
+	for _, v := range allPermissions {
+		if v.ParentId > 0 {
+			permissionMap[v.ParentId] = append(permissionMap[v.ParentId], v)
+		}
+	}
+	return
+}
+
+func GetBaseFiccPermissionSetItem() (allPermissions []*company.PermissionSetItem, permissionMap map[int][]*company.PermissionSetItem, err error) {
+	//子权限切片集合
+	allPermissions, err = company.GetPermissionByProductId(utils.COMPANY_PRODUCT_FICC_ID)
+	if err != nil {
+		err = fmt.Errorf("获取权限失败,Err:%s", err.Error())
+		return
+	}
+	permissionMap = make(map[int][]*company.PermissionSetItem, 0)
+	for _, v := range allPermissions {
+		if v.ParentId > 0 {
+			permissionMap[v.ParentId] = append(permissionMap[v.ParentId], v)
+		}
+	}
+	return
+}
+
+func GetPermissionFirstArr(productId int) (list []*models.ChartPermission, err error) {
+	if productId == 0 {
+		list, err = models.GetPermissionFirst()
+	} else {
+		list, err = models.GetPermissionFirstByProductId(productId)
+	}
+	return
+}

+ 29 - 40
services/contract/contract.go

@@ -1167,52 +1167,41 @@ func GetPermissionByContractService(productId int, serviceList []*contract.Contr
 // GetPermissionByPermissionIdMap 通过权限id的map,获取权限列表
 func GetPermissionByPermissionIdMap(productId int, checkPermissionIdMap map[int]int) (permissionList []*company.PermissionLookList, err error) {
 	//子权限切片集合
-	var permissionClassifyArr []string
-	if productId == 1 {
-		for _, v := range utils.PermissionFiccClassifyArr {
-			permissionClassifyArr = append(permissionClassifyArr, v)
+	allPermissions, err := company.GetPermissionLookItemsByProductId(productId)
+	if err != nil {
+		err = fmt.Errorf("获取权限失败,Err:%s", err.Error())
+		return
+	}
+	permissionMap := make(map[int][]*company.PermissionLookItem, 0)
+	for _, v := range allPermissions {
+		if v.ParentId > 0 {
+			permissionMap[v.ParentId] = append(permissionMap[v.ParentId], v)
 		}
-	} else {
-		permissionClassifyArr = append(permissionClassifyArr, "权益")
 	}
-
 	//遍历获取
-	for _, v := range permissionClassifyArr {
-		checkList := make([]int, 0)
-		plist := new(company.PermissionLookList)
-		items, tmpErr := company.GetPermissionLookItems(productId, v)
-		if tmpErr != nil {
-			err = tmpErr
-			return
-		}
-		for _, n := range items {
-			if _, ok := checkPermissionIdMap[n.ChartPermissionId]; ok {
-				checkList = append(checkList, n.ChartPermissionId)
-			} else if _, ok2 := checkPermissionIdMap[n.ChartPermissionId+utils.PERMISSION_ID_UPGRADE]; ok2 {
-				checkList = append(checkList, n.ChartPermissionId)
-				n.IsUpgrade = 1
+	for _, v := range allPermissions {
+		if v.ParentId == 0 {
+			checkList := make([]int, 0)
+			plist := new(company.PermissionLookList)
+			plist.Items = make([]*company.PermissionLookItem, 0)
+			items, ok1 := permissionMap[v.ChartPermissionId]
+			if ok1 {
+				plist.Items = items
+				for _, n := range items {
+					if _, ok := checkPermissionIdMap[n.ChartPermissionId]; ok {
+						checkList = append(checkList, n.ChartPermissionId)
+					} else if _, ok2 := checkPermissionIdMap[n.ChartPermissionId+utils.PERMISSION_ID_UPGRADE]; ok2 {
+						checkList = append(checkList, n.ChartPermissionId)
+						n.IsUpgrade = 1
+					}
+				}
 			}
+			plist.ClassifyName = v.PermissionName
+			plist.CheckList = checkList
+
+			permissionList = append(permissionList, plist)
 		}
-		//sandoPermissionIdMap := make(map[string]int)
-		////权益客户下,主观客观同时选择,进行合并
-		//for _, n := range items {
-		//	if _, ok := checkPermissionIdMap[n.ChartPermissionId]; ok {
-		//		if sandoPermissionIdMap[n.PermissionName] == 0 {
-		//			checkList = append(checkList, n.ChartPermissionId)
-		//		}
-		//		sandoPermissionIdMap[n.PermissionName] += 1
-		//	}
-		//}
-		//for i, n := range items {
-		//	if sandoPermissionIdMap[n.PermissionName] == 1 {
-		//		items[i].PermissionName = n.Remark
-		//	}
-		//}
-		plist.Items = items
-		plist.ClassifyName = v
-		plist.CheckList = checkList
 
-		permissionList = append(permissionList, plist)
 	}
 	return
 }