Browse Source

新增客户,品种权限修改

xyxie 11 months ago
parent
commit
b4594b235a
3 changed files with 107 additions and 60 deletions
  1. 50 41
      controllers/company.go
  2. 31 14
      controllers/company_permission.go
  3. 26 5
      models/company/company_permission.go

+ 50 - 41
controllers/company.go

@@ -3226,51 +3226,60 @@ func (this *CompanyController) 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()
-						return
+			// 编辑回显
+			allPermissions, e := company.GetPermissionLookItemsByProductId(utils.COMPANY_PRODUCT_FICC_ID)
+			if e != nil {
+				br.Msg = "获取失败"
+				br.ErrMsg = "获取权限信息失败,Err:" + e.Error()
+				return
+			}
+			permissionMap := make(map[int][]*company.PermissionLookItem, 0)
+			permissionCheckMap := make(map[int][]int, 0)
+			for _, v := range allPermissions {
+				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 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
+				}
+			}
+			for _, v := range allPermissions {
+				if v.ParentId == 0 {
+					checkList := make([]int, 0)
+					plist := new(company.PermissionLookList)
+					items, ok := permissionMap[v.ChartPermissionId]
+					if ok {
+						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
+								}
+								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.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 resp.FiccItem.Status == utils.COMPANY_STATUS_FOREVER {

+ 31 - 14
controllers/company_permission.go

@@ -17,6 +17,7 @@ type CompanyPermissionController struct {
 	BaseAuthController
 }
 
+// List
 // @Title 获取权限设置基础信息
 // @Description 获取权限设置基础信息接口
 // @Param   CompanyType   query   string  true       "客户类型:传空字符串或者不传为全部,'ficc','权益'"
@@ -50,23 +51,39 @@ func (this *CompanyPermissionController) List() {
 
 	// FICC
 	if productId == utils.COMPANY_PRODUCT_FICC_ID || 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(utils.COMPANY_PRODUCT_FICC_ID, v)
-			if err != nil {
-				br.Msg = "获取失败"
-				br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
-				return
+		items, 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 items {
+			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 items {
+			if v.ParentId == 0 {
+				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
+				}
+				/*if v.PermissionName == "宏观经济" { //判断是否可选
+					checkList = append(checkList, 1)
+				}*/
+				resp.List = append(resp.List, p)
 			}
-			p.CheckList = checkList
-			resp.List = append(resp.List, p)
 		}
+
 		br.Ret = 200
 		br.Success = true
 		br.Msg = "获取成功"

+ 26 - 5
models/company/company_permission.go

@@ -21,14 +21,19 @@ type ChartPermission struct {
 	ClassifyName        string    `description:"分类"`
 	PermissionType      int       `description:"1主观,2客观"`
 	Checked             bool      `description:"选中状态"`
+	ParentId            int       `description:"父级权限id"`
+	IsPublic            int       `description:"是否是公有权限1:公有权限,0私有权限"`
 }
 
 type PermissionSetItem struct {
-	ChartPermissionId int                  `description:"权限id"`
-	PermissionName    string               `description:"权限名称"`
-	PermissionType    int                  `description:"1主观,2客观"`
-	Checked           bool                 `description:"选中状态"`
-	Child             []*PermissionSetItem `description:"具体的主客观-方便前端的排版用的"`
+	ChartPermissionId int    `description:"权限id"`
+	PermissionName    string `description:"权限名称"`
+	PermissionType    int    `description:"1主观,2客观"`
+	ParentId          int    `description:"父级权限id"`
+	IsPublic          int    `description:"是否是公有权限1:公有权限,0私有权限"`
+	Checked           bool   `description:"选中状态"`
+
+	Child []*PermissionSetItem `description:"具体的主客观-方便前端的排版用的"`
 }
 
 type PermissionSetItemType struct {
@@ -68,6 +73,12 @@ func GetPermissionSetItems(productId int, classifyName string) (items []*Permiss
 	return
 }
 
+func GetPermissionByProductId(productId int) (items []*PermissionSetItem, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND permission_type=0 ORDER BY sort ASC `
+	_, err = o.Raw(sql, productId).QueryRows(&items)
+	return
+}
 func GetPermissionSetItemsByType(productId int, classifyName string) (items []*PermissionSetItem, err error) {
 	o := orm.NewOrm()
 	sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND classify_name=?  AND permission_type!=2 ORDER BY sort ASC `
@@ -164,9 +175,12 @@ type PermissionLookItem struct {
 	IsUpgrade          int                   `description:"是否升级,1是,0否"`
 	ExpensiveYx        int                   `description:"权益研选: 0-3w; 1-5w ,2: 10W"`
 	Points             float64               `description:"研选扣点包点数"`
+	ParentId           int                   `description:"父级权限id"`
+	IsPublic           int                   `description:"是否是公有权限1:公有权限,0私有权限"`
 	Child              []*PermissionLookItem `description:"子权限"`
 }
 
+// todo 确认是否需要删除
 func GetPermissionLookItems(productId int, classifyName string) (items []*PermissionLookItem, err error) {
 	o := orm.NewOrm()
 	sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND classify_name=? ORDER BY sort ASC `
@@ -174,6 +188,13 @@ func GetPermissionLookItems(productId int, classifyName string) (items []*Permis
 	return
 }
 
+func GetPermissionLookItemsByProductId(productId int) (items []*PermissionLookItem, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? ORDER BY sort ASC `
+	_, err = o.Raw(sql, productId).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=? `