Browse Source

合同管理

xyxie 11 months ago
parent
commit
f797e5e689
3 changed files with 92 additions and 50 deletions
  1. 36 21
      controllers/company_apply.go
  2. 30 18
      controllers/company_permission.go
  3. 26 11
      services/contract/contract.go

+ 36 - 21
controllers/company_apply.go

@@ -1920,30 +1920,45 @@ func (this *CompanyApplyController) ApplyContract() {
 	companyId := approvalRecord.CompanyId
 
 	if productId == 1 {
-		for _, v := range utils.PermissionFiccClassifyArr {
-			checkList := make([]int, 0)
-			plist := new(company.PermissionLookList)
-			items, err := company.GetPermissionLookItems(productId, v)
-			if err != nil {
-				br.Msg = "获取失败"
-				br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
-				return
-			}
-			for _, n := range items {
-				count, err := company.GetCompanyContractPermissionCheckByContractId(companyId, contractItem.CompanyContractId, n.ChartPermissionId)
-				if err != nil {
-					br.Msg = "获取失败"
-					br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
-					return
+		allFiccPermissions, e := company.GetPermissionLookItemsByProductId(utils.COMPANY_PRODUCT_FICC_ID)
+		if e != nil {
+			br.Msg = "获取权限信息失败"
+			br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
+			return
+		}
+		permissionMap := make(map[int][]*company.PermissionLookItem, 0)
+		permissionCheckMap := make(map[int][]int, 0)
+		for _, v := range allFiccPermissions {
+			if v.ParentId > 0 {
+				permissionMap[v.ParentId] = append(permissionMap[v.ParentId], v)
+				if v.IsPublic == 1 {
+					permissionCheckMap[v.ParentId] = append(permissionCheckMap[v.ParentId], v.ChartPermissionId)
 				}
-				if count > 0 {
-					checkList = append(checkList, n.ChartPermissionId)
+			}
+		}
+		for _, v := range allFiccPermissions {
+			if v.ParentId == 0 {
+				checkList := make([]int, 0)
+				plist := new(company.PermissionLookList)
+				items, ok := permissionMap[v.ChartPermissionId]
+				if ok {
+					plist.Items = items
+					for _, n := range items {
+						count, err := company.GetCompanyContractPermissionCheckByContractId(companyId, contractItem.CompanyContractId, 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
+				contractItem.PermissionList = append(contractItem.PermissionList, plist)
 			}
-			plist.Items = items
-			plist.ClassifyName = v
-			plist.CheckList = checkList
-			contractItem.PermissionList = append(contractItem.PermissionList, plist)
 		}
 	}
 

+ 30 - 18
controllers/company_permission.go

@@ -237,26 +237,38 @@ func (this *CompanyPermissionController) ListByContract() {
 	roleTypeCode := sysUser.RoleTypeCode
 	productId = services.GetProductId(roleTypeCode)
 	if productId == 1 {
-		for _, v := range utils.PermissionFiccClassifyArr {
-			//合同这边市场策略不需要体现出来,所以调整返回
-			if v == "市场策略" {
-				continue
-			}
-			checkList := make([]int, 0)
-			p := new(company.PermissionSetList)
-			p.ClassifyName = v
-			items, err := company.GetPermissionSetItems(productId, v)
-			if err != nil {
-				br.Msg = "获取失败"
-				br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
-				return
+		allFiccPermissions, err := company.GetPermissionByProductId(utils.COMPANY_PRODUCT_FICC_ID)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
+			return
+		}
+		permissionMap := make(map[int][]*company.PermissionSetItem, 0)
+		permissionCheckMap := make(map[int][]int, 0)
+		for _, v := range allFiccPermissions {
+			if v.ParentId > 0 {
+				permissionMap[v.ParentId] = append(permissionMap[v.ParentId], v)
+				if v.IsPublic == 1 {
+					permissionCheckMap[v.ParentId] = append(permissionCheckMap[v.ParentId], v.ChartPermissionId)
+				}
 			}
-			p.Items = items
-			if v == "宏观经济" {
-				checkList = append(checkList, 1)
+		}
+		for _, v := range allFiccPermissions {
+			if v.ParentId == 0 {
+				//合同这边市场策略不需要体现出来,所以调整返回
+				if v.PermissionName == "市场策略" {
+					continue
+				}
+				p := new(company.PermissionSetList)
+				p.ClassifyName = v.PermissionName
+				if subList, ok := permissionMap[v.ChartPermissionId]; ok {
+					p.Items = subList
+				}
+				if checkList, ok := permissionCheckMap[v.ChartPermissionId]; ok {
+					p.CheckList = checkList
+				}
+				resp.List = append(resp.List, p)
 			}
-			p.CheckList = checkList
-			resp.List = append(resp.List, p)
 		}
 	} else if productId == 2 {
 		checkList := make([]int, 0)

+ 26 - 11
services/contract/contract.go

@@ -1235,18 +1235,33 @@ func GetServicePermissionMap(serviceList []*contract.ContractServiceAndDetail) (
 		}
 		switch contractService.ServiceTemplateId {
 		case 1: //ficc 大套餐
-			for _, v := range utils.PermissionFiccClassifyArr {
-				//大套餐中 市场策略暂时不作为勾选项
-				if v == "市场策略" {
-					continue
-				}
-				items, tmpErr := company.GetPermissionLookItems(1, v)
-				if tmpErr != nil {
-					err = tmpErr
-					return
+			allFiccPermissions, e := company.GetPermissionLookItemsByProductId(utils.COMPANY_PRODUCT_FICC_ID)
+			if e != nil {
+				err = fmt.Errorf("获取权限失败 Err:%v", e)
+				return
+			}
+			permissionMap := make(map[int][]*company.PermissionLookItem, 0)
+			permissionCheckMap := make(map[int][]int, 0)
+			for _, v := range allFiccPermissions {
+				if v.ParentId > 0 {
+					permissionMap[v.ParentId] = append(permissionMap[v.ParentId], v)
+					if v.IsPublic == 1 {
+						permissionCheckMap[v.ParentId] = append(permissionCheckMap[v.ParentId], v.ChartPermissionId)
+					}
 				}
-				for _, n := range items {
-					checkPermissionIdMap[n.ChartPermissionId] = n.ChartPermissionId
+			}
+			for _, v := range allFiccPermissions {
+				if v.ParentId == 0 {
+					//合同这边市场策略不需要体现出来,所以调整返回
+					if v.PermissionName == "市场策略" {
+						continue
+					}
+					items, ok := permissionMap[v.ChartPermissionId]
+					if ok {
+						for _, n := range items {
+							checkPermissionIdMap[n.ChartPermissionId] = n.ChartPermissionId
+						}
+					}
 				}
 			}
 		case 2: //ficc小套餐