Sfoglia il codice sorgente

Merge branch 'feature/eta1.7.6_permission' of hongze/hongze_yb into master

xyxie 1 anno fa
parent
commit
e96d53f74a

+ 5 - 1
controller/public.go

@@ -41,7 +41,11 @@ import (
 // @failure 400 {string} string "获取失败"
 // @Router /public/get_apply_variety_list [get]
 func GetApplyVarietyList(c *gin.Context) {
-	list := logic.GetApplyVarietyList()
+	list, err := logic.GetApplyVarietyList()
+	if err != nil {
+		response.FailData("获取品种失败", "获取品种失败,Err:"+err.Error(), c)
+		return
+	}
 	response.OkData("获取成功", list, c)
 }
 

+ 58 - 3
logic/public.go

@@ -1,5 +1,11 @@
 package logic
 
+import (
+	"fmt"
+	"hongze/hongze_yb/models/tables/chart_permission"
+	"hongze/hongze_yb/utils"
+)
+
 type ApplyVariety struct {
 	PermissionName string `json:"permission_name" description:"权限名称"`
 	Name           string `json:"name" description:"品种名称"`
@@ -7,8 +13,57 @@ type ApplyVariety struct {
 }
 
 // GetApplyVarietyList 获取所有可以申请的品种权限
-func GetApplyVarietyList() (list []ApplyVariety) {
-	list = append(list, ApplyVariety{PermissionName: "宏观经济", Name: "宏观经济", PicUrl: "https://hzstatic.hzinsights.com/static/yb_variety/宏观经济.png"})
+func GetApplyVarietyList() (list []ApplyVariety, err error) {
+	// 查询所有的二级品种,按照顺序排序,
+	permissionImgMap := make(map[string]string, 0)
+	permissionImgMap["宏观经济"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/宏观经济.png"
+	permissionImgMap["资产配置"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/资产配置.png"
+	permissionImgMap["贵金属"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/贵金属.png"
+	permissionImgMap["汇率"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/汇率.png"
+	permissionImgMap["利率债"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/利率债.png"
+	permissionImgMap["原油"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/原油.png"
+	permissionImgMap["成品油"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/成品油.png"
+	permissionImgMap["LPG"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/LPG.png"
+	permissionImgMap["PTA"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/PTA.png"
+	permissionImgMap["MEG"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/MEG.png"
+	permissionImgMap["纺服"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/纺服.png"
+	permissionImgMap["甲醇"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/甲醇.png"
+	permissionImgMap["聚烯烃"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/聚烯烃.png"
+	permissionImgMap["尿素"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/尿素.png"
+	permissionImgMap["沥青"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/沥青.png"
+	permissionImgMap["苯乙烯"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/苯乙烯.png"
+	permissionImgMap["PVC"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/PVC.png"
+	permissionImgMap["聚酯"] = "https://hzstatic.hzinsights.com/static/yb_variety/聚酯.png"
+	permissionImgMap["钢材"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/钢材.png"
+	permissionImgMap["铁矿"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/铁矿.png"
+	permissionImgMap["玻璃纯碱"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/玻璃纯碱.png"
+	permissionImgMap["烧碱"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/烧碱.png"
+	permissionImgMap["双焦"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/双焦.png"
+	permissionImgMap["铜"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/铜.png"
+	permissionImgMap["铝"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/铝.png"
+	permissionImgMap["镍/不锈钢"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/镍不锈钢.png"
+	permissionImgMap["锌"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/锌.png"
+	permissionImgMap["钴锂"] = "https://hzstatic.hzinsights.com/static/yb_variety/钴锂.png"
+	permissionImgMap["碳酸锂"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/碳酸锂.png"
+	permissionImgMap["工业硅"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/工业硅.png"
+	permissionImgMap["策略"] = "https://hzstatic.hzinsights.com/static/yb_variety/v2/策略.png"
+	allFiccPermissions, e := chart_permission.GetListByProductIdAndPermissionType(1)
+	if e != nil {
+		err = fmt.Errorf("获取品种权限失败 Err:%s", e.Error())
+		return
+	}
+
+	for _, v := range allFiccPermissions {
+		if v.ParentId > 0 {
+			tmp := ApplyVariety{PermissionName: v.PermissionName, Name: v.PermissionName, PicUrl: utils.APPLY_VARIETY_IMG_DEFAULT}
+			img, ok := permissionImgMap[v.PermissionName]
+			if ok {
+				tmp.PicUrl = img
+			}
+			list = append(list, tmp)
+		}
+	}
+	/*list = append(list, ApplyVariety{PermissionName: "宏观经济", Name: "宏观经济", PicUrl: "https://hzstatic.hzinsights.com/static/yb_variety/宏观经济.png"})
 	list = append(list, ApplyVariety{PermissionName: "利率债", Name: "利率债", PicUrl: "https://hzstatic.hzinsights.com/static/yb_variety/利率债.png"})
 	list = append(list, ApplyVariety{PermissionName: "原油", Name: "原油", PicUrl: "https://hzstatic.hzinsights.com/static/yb_variety/原油.png"})
 	list = append(list, ApplyVariety{PermissionName: "PTA", Name: "PTA", PicUrl: "https://hzstatic.hzinsights.com/static/yb_variety/PTA.png"})
@@ -27,7 +82,7 @@ func GetApplyVarietyList() (list []ApplyVariety) {
 	list = append(list, ApplyVariety{PermissionName: "有色(铜、铝)", Name: "有色(铜、铝)", PicUrl: "https://hzstatic.hzinsights.com/static/yb_variety/有色(铜、铝).png"})
 	list = append(list, ApplyVariety{PermissionName: "镍+不锈钢", Name: "镍+不锈钢", PicUrl: "https://hzstatic.hzinsights.com/static/yb_variety/镍2不锈钢.png"})
 	list = append(list, ApplyVariety{PermissionName: "有色(锌)", Name: "有色(锌)", PicUrl: "https://hzstatic.hzinsights.com/static/yb_variety/有色锌.png"})
-	list = append(list, ApplyVariety{PermissionName: "钴锂", Name: "钴锂", PicUrl: "https://hzstatic.hzinsights.com/static/yb_variety/钴锂.png"})
+	list = append(list, ApplyVariety{PermissionName: "钴锂", Name: "钴锂", PicUrl: "https://hzstatic.hzinsights.com/static/yb_variety/钴锂.png"})*/
 	//list = append(list, ApplyVariety{PermissionName: "苯乙烯", Name: "苯乙烯", PicUrl: "https://hzstatic.hzinsights.com/static/yb_variety/苯乙烯.png"})
 	//list = append(list, ApplyVariety{PermissionName: "橡胶", Name: "橡胶", PicUrl: "https://hzstatic.hzinsights.com/static/yb_variety/橡胶.png"})
 	//list = append(list, ApplyVariety{PermissionName: "策略", Name: "市场策略", PicUrl: "https://hzstatic.hzinsights.com/static/yb_variety/市场策略.png"})

+ 6 - 0
models/tables/chart_permission/chart_permission.go

@@ -23,6 +23,8 @@ type ChartPermission struct {
 	CygxAuth            int8      `gorm:"column:cygx_auth;type:tinyint(4);not null;default:0" json:"cygxAuth"`                    // 是否是权限,用于查研观向小程序前台权限校验
 	YbImgUrl            string    `gorm:"column:yb_img_url;type:varchar(255)" json:"yb_img_url"`                                  // 研报小程序报告列表icon
 	PriceDrivenState    int       `gorm:"column:price_driven_state;type:tinyint(4);not null;default:0" json:"price_driven_state"` // 品种价格驱动状态:0-关闭 1-开启
+	ParentId            int       `gorm:"column:parent_id;default:0;NOT NULL;comment:'父级权限id'" json:"parent_id"`
+	IsPublic            int       `gorm:"column:is_public;default:0;NOT NULL;comment:'是否是公有权限1:公有权限,0私有权限'" json:"is_public"`
 }
 
 // TableName get sql table name.获取数据库表名
@@ -49,6 +51,8 @@ var ChartPermissionColumns = struct {
 	IsOther             string
 	IsReport            string
 	CygxAuth            string
+	ParentId            string
+	IsPublic            string
 }{
 	ChartPermissionID:   "chart_permission_id",
 	ChartPermissionName: "chart_permission_name",
@@ -67,4 +71,6 @@ var ChartPermissionColumns = struct {
 	IsOther:             "is_other",
 	IsReport:            "is_report",
 	CygxAuth:            "cygx_auth",
+	ParentId:            "parent_id",
+	IsPublic:            "is_public",
 }

+ 13 - 13
models/tables/chart_permission/query.go

@@ -13,17 +13,11 @@ func GetListByProductId(productId int64) (list []*ChartPermission, err error) {
 }
 
 // GetFiccListExceptTacticByProductId 获取ficc 除了市场策略的所有权限
-func GetFiccListExceptTacticByProductId() (list []*ChartPermission, err error)  {
-	err = global.DEFAULT_MYSQL.Where(" enabled = 1 AND permission_type = 0 AND product_id = 1 and classify_name != '市场策略'").Find(&list).Error
+func GetFiccListExceptTacticByProductId() (list []*ChartPermission, err error) {
+	err = global.DEFAULT_MYSQL.Where(" enabled = 1 AND permission_type = 0 AND product_id = 1 and parent_id >0 and classify_name != '市场策略'").Order("sort asc").Find(&list).Error
 	return
 }
 
-// GetFiccListExceptTacticByProductIdOrderSort 获取ficc 除了市场策略的所有权限
-func GetFiccListExceptTacticByProductIdOrderSort() (list []*ChartPermission, err error)  {
-	err = global.DEFAULT_MYSQL.Where(" enabled = 1 AND permission_type = 0 AND product_id = 1 and classify_name != '市场策略'").
-	Order("sort asc").Find(&list).Error
-	return
-}
 // GetClassNameListByProductId 根据权限id获取权限分类
 func GetClassNameListByProductId(productId int64) (list []*ChartPermission, err error) {
 	err = global.DEFAULT_MYSQL.Where(" product_id = ?", productId).Group("classify_name").Find(&list).Error
@@ -47,17 +41,23 @@ func GetListByIds(permissionIds []int) (list []*ChartPermission, err error) {
 	return
 }
 
-// GetListByProductIdAndClassifyName 根据product及classify_name获取集合
-func GetListByProductIdAndClassifyName(productId int, classifyName string) (items []*ChartPermission, err error) {
-	err = global.DEFAULT_MYSQL.Model(ChartPermission{}).Where("enabled = 1 AND permission_type = 0 AND product_id = ? AND classify_name = ?", productId, classifyName).Order("sort ASC").Scan(&items).Error
+// GetListByProductIdAndPermissionType 根据product及classify_name获取集合
+func GetListByProductIdAndPermissionType(productId int) (items []*ChartPermission, err error) {
+	err = global.DEFAULT_MYSQL.Model(ChartPermission{}).Where("enabled = 1 AND permission_type = 0 AND product_id = ? ", productId).Order("sort ASC").Scan(&items).Error
 	return
 }
 
 // GetByChartPermissionId 根据chartPermissionId 查找权限基本信息
-func GetByChartPermissionId(chartPermissionId int) (item *ChartPermission, err error)  {
+func GetByChartPermissionId(chartPermissionId int) (item *ChartPermission, err error) {
 	err = global.DEFAULT_MYSQL.Model(ChartPermission{}).Where("chart_permission_id = ?", chartPermissionId).First(&item).Error
 	if err == utils.ErrNoRow {
 		err = nil
 	}
 	return
-}
+}
+
+// GetFiccFirstListExceptTacticByProductId 获取ficc 除了市场策略的所有父级
+func GetFiccFirstListExceptTacticByProductId() (list []*ChartPermission, err error) {
+	err = global.DEFAULT_MYSQL.Where(" enabled = 1 AND permission_type = 0 AND product_id = 1 and classify_name != '市场策略' AND parent_id = 0").Order("sort asc").Find(&list).Error
+	return
+}

+ 12 - 12
models/tables/rddp/classify/query.go

@@ -5,10 +5,11 @@ import (
 	"hongze/hongze_yb/utils"
 )
 
-func GetSimpleAll()(list []*Classify, err error)  {// 过滤权益研报的分类
-	err = global.MYSQL["rddp"].Select("id, classify_name, yb_icon_url, yb_bg_url, parent_id").Model(Classify{}).Where("is_show = 1  AND parent_id != 56 AND id != 56").Scan(&list).Error
+func GetSimpleAll() (list []*Classify, err error) { // 过滤权益研报的分类
+	err = global.MYSQL["rddp"].Select("id, classify_name, yb_icon_url, yb_bg_url, parent_id").Model(Classify{}).Where("is_show = 1 AND parent_id != 56 AND id != 56").Scan(&list).Error
 	return
 }
+
 // GetByClassifyName 根据分类名称查找专栏详情
 func GetByClassifyName(classifyName string) (item *Classify, err error) {
 	err = global.MYSQL["rddp"].Model(Classify{}).Where("classify_name = ?", classifyName).First(&item).Error
@@ -30,7 +31,7 @@ func GetByClassifyNameFirst(classifyName string) (item *Classify, err error) {
 // GetSecondIdsByClassifyNames 根据权限相关的二级分类名称获取名称ID
 func GetSecondIdsByClassifyNames(names []string) (ids []int, err error) {
 	var list []*Classify
-	err = global.MYSQL["rddp"].Model(Classify{}).Select("id").Where("classify_name in (?) and parent_id >0 AND is_show = 1 AND parent_id != 56", names).Scan(&list).Error
+	err = global.MYSQL["rddp"].Model(Classify{}).Select("id").Where("classify_name in (?) and parent_id >0 AND is_show = 1 AND enabled = 1 AND parent_id != 56", names).Scan(&list).Error
 	if err != nil {
 		if err == utils.ErrNoRow {
 			err = nil
@@ -47,7 +48,7 @@ func GetSecondIdsByClassifyNames(names []string) (ids []int, err error) {
 func GetParentList() (list []*Classify, err error) {
 	err = global.MYSQL["rddp"].Model(Classify{}).
 		Select("id, classify_name, show_type, yb_ficc_icon, yb_ficc_pc_icon, yb_ficc_sort").
-		Where("parent_id = 0 and classify_name != '权益研报' AND is_show = 1").
+		Where("parent_id = 0 and classify_name != '权益研报' AND is_show = 1 AND enabled = 1").
 		Order("sort asc, id asc").Scan(&list).Error
 	if err == utils.ErrNoRow {
 		err = nil
@@ -57,7 +58,7 @@ func GetParentList() (list []*Classify, err error) {
 
 // GetByClassifyId 根据分类ID查询分类详情
 func GetByClassifyId(id int) (item *Classify, err error) {
-	err = global.MYSQL["rddp"].Model(Classify{}).Where("id = ? AND is_show = 1", id).First(&item).Error
+	err = global.MYSQL["rddp"].Model(Classify{}).Where("id = ? AND is_show = 1 AND enabled = 1", id).First(&item).Error
 	if err == utils.ErrNoRow {
 		err = nil
 	}
@@ -68,18 +69,17 @@ func GetByClassifyId(id int) (item *Classify, err error) {
 func GetListByPid(pid int) (list []*Classify, err error) {
 	err = global.MYSQL["rddp"].Model(Classify{}).
 		Select("id, classify_name, parent_id, abstract, report_author, author_descript, home_img_url, vip_title, avatar_img_url").
-		Where("parent_id = ? AND is_show = 1 ", pid).Order("sort asc, id asc").Scan(&list).Error
+		Where("parent_id = ? AND is_show = 1 AND enabled = 1", pid).Order("sort asc, id asc").Scan(&list).Error
 	if err == utils.ErrNoRow {
 		err = nil
 	}
 	return
 }
 
-
 // GetIdsByClassifyNameAndParentId 查询
 func GetIdsByClassifyNameAndParentId(names []string, parentId int) (ids []int, err error) {
 	var list []*Classify
-	err = global.MYSQL["rddp"].Model(Classify{}).Select("id").Where("classify_name in (?) and parent_id = ? AND is_show = 1", names, parentId).Scan(&list).Error
+	err = global.MYSQL["rddp"].Model(Classify{}).Select("id").Where("classify_name in (?) and parent_id = ? AND is_show = 1 AND enabled = 1", names, parentId).Scan(&list).Error
 	if err != nil {
 		return
 	}
@@ -92,7 +92,7 @@ func GetIdsByClassifyNameAndParentId(names []string, parentId int) (ids []int, e
 // GetOtherIdsByClassifyNames 查询
 func GetOtherIdsByClassifyNames(names []string) (ids []int, err error) {
 	var list []*Classify
-	err = global.MYSQL["rddp"].Model(Classify{}).Select("id").Where("classify_name in (?) and parent_id > 0 AND is_show = 1", names).Scan(&list).Error
+	err = global.MYSQL["rddp"].Model(Classify{}).Select("id").Where("classify_name in (?) and parent_id > 0 AND is_show = 1 AND enabled = 1", names).Scan(&list).Error
 	if err != nil {
 		return
 	}
@@ -105,7 +105,7 @@ func GetOtherIdsByClassifyNames(names []string) (ids []int, err error) {
 // GetOtherIdsByClassifyNames 查询
 func GetOtherSecondIds(names []string) (ids []int, err error) {
 	var list []*Classify
-	err = global.MYSQL["rddp"].Model(Classify{}).Select("id").Where("parent_id IN (SELECT id FROM classify WHERE classify_name IN (?) AND parent_id = 0 AND is_show = 1)", names).Scan(&list).Error
+	err = global.MYSQL["rddp"].Model(Classify{}).Select("id").Where("parent_id IN (SELECT id FROM classify WHERE classify_name IN (?) AND parent_id = 0 AND is_show = 1 AND enabled = 1)", names).Scan(&list).Error
 	if err != nil {
 		return
 	}
@@ -117,7 +117,7 @@ func GetOtherSecondIds(names []string) (ids []int, err error) {
 
 // GetChildByPid 根据一级分类查找二级分类
 func GetChildByPid(pid int) (list []*Classify, err error) {
-	err = global.MYSQL["rddp"].Model(Classify{}).Where("parent_id = ? AND is_show = 1 ", pid).Scan(&list).Error
+	err = global.MYSQL["rddp"].Model(Classify{}).Where("parent_id = ? AND is_show = 1 AND enabled = 1", pid).Scan(&list).Error
 	if err == utils.ErrNoRow {
 		err = nil
 	}
@@ -128,4 +128,4 @@ func GetChildByPid(pid int) (list []*Classify, err error) {
 func GetClassifyList() (list []*Classify, err error) {
 	err = global.MYSQL["rddp"].Model(Classify{}).Scan(&list).Error
 	return
-}
+}

+ 1 - 0
models/tables/rddp/report/query.go

@@ -376,6 +376,7 @@ WHERE
 	r.classify_name_first = c.classify_name
 	AND c.show_type = 2
 	AND c.is_show = 1
+    AND c.enabled = 1
 	AND state IN (2, 6)
 	ORDER BY publish_time DESC LIMIT 1
 	`

+ 8 - 9
models/tables/report_chapter_type/query.go

@@ -5,9 +5,9 @@ import (
 	"hongze/hongze_yb/utils"
 )
 
-func GetEffectTypeID() (chapterIds []int, err error ) {
+func GetEffectTypeID() (chapterIds []int, err error) {
 	var chapterList []*ReportChapterType
-	err = global.DEFAULT_MYSQL.Model(ReportChapterType{}).Select("report_chapter_type_id ").Where("is_show=1").Scan(&chapterList).Error
+	err = global.DEFAULT_MYSQL.Model(ReportChapterType{}).Select("report_chapter_type_id ").Where("is_show=1 AND enabled = 1").Scan(&chapterList).Error
 	if err != nil {
 		if err == utils.ErrNoRow {
 			err = nil
@@ -22,16 +22,15 @@ func GetEffectTypeID() (chapterIds []int, err error ) {
 	return
 }
 
-
-func GetEffectTypes() (list []*ReportChapterType, err error ) {
-	err = global.DEFAULT_MYSQL.Model(ReportChapterType{}).Where("is_show=1").Scan(&list).Error
+func GetEffectTypes() (list []*ReportChapterType, err error) {
+	err = global.DEFAULT_MYSQL.Model(ReportChapterType{}).Where("is_show=1 AND enabled = 1").Scan(&list).Error
 	return
 }
 
 // GetTypeIDByReportChapterTypeName 根据章节类型查找章节ID
-func GetTypeIDByReportChapterTypeName(name string) (chapterIds []int, err error ) {
+func GetTypeIDByReportChapterTypeName(name string) (chapterIds []int, err error) {
 	var chapterList []*ReportChapterType
-	err = global.DEFAULT_MYSQL.Model(ReportChapterType{}).Select("report_chapter_type_id ").Where("is_show=1 and report_chapter_type_name =?", name).Scan(&chapterList).Error
+	err = global.DEFAULT_MYSQL.Model(ReportChapterType{}).Select("report_chapter_type_id ").Where("is_show=1 AND enabled = 1 and report_chapter_type_name =?", name).Scan(&chapterList).Error
 	if err != nil {
 		if err == utils.ErrNoRow {
 			err = nil
@@ -47,7 +46,7 @@ func GetTypeIDByReportChapterTypeName(name string) (chapterIds []int, err error
 }
 
 // GetTickerTitleByTypeId 根据类型获取指标标题
-func GetTickerTitleByTypeId(id int) (chapterType *ReportChapterType , err error)  {
+func GetTickerTitleByTypeId(id int) (chapterType *ReportChapterType, err error) {
 	err = global.DEFAULT_MYSQL.Model(ReportChapterType{}).Select("ticker_title, report_chapter_type_id, report_chapter_type_name, report_chapter_type_key").Where("report_chapter_type_id=?", id).First(&chapterType).Error
 	if err != nil {
 		if err == utils.ErrNoRow {
@@ -56,4 +55,4 @@ func GetTickerTitleByTypeId(id int) (chapterType *ReportChapterType , err error)
 		return
 	}
 	return
-}
+}

+ 76 - 63
services/company/permission.go

@@ -8,7 +8,6 @@ import (
 	"hongze/hongze_yb/models/response"
 	"hongze/hongze_yb/models/tables/admin"
 	"hongze/hongze_yb/models/tables/chart_permission"
-	"hongze/hongze_yb/models/tables/chart_permission_first"
 	"hongze/hongze_yb/models/tables/company"
 	"hongze/hongze_yb/models/tables/company_product"
 	"hongze/hongze_yb/models/tables/company_report_permission"
@@ -628,23 +627,33 @@ type PermissionItem struct {
 func GetFiccPermissionList() (list []*FiccPermissionList, err error) {
 	productId := 1
 	list = make([]*FiccPermissionList, 0)
-	for _, v := range utils.PermissionFiccClassifyArr {
-		classify := new(FiccPermissionList)
-		classify.ClassifyName = v
-		items, e := chart_permission.GetListByProductIdAndClassifyName(productId, v)
-		if e != nil {
-			err = errors.New("获取品种权限失败 Err:" + e.Error())
-			return
+	allFiccPermissions, e := chart_permission.GetListByProductIdAndPermissionType(productId)
+	if e != nil {
+		err = errors.New("获取品种权限失败 Err:" + e.Error())
+		return
+	}
+	permissionMap := make(map[int][]*chart_permission.ChartPermission, 0)
+	for _, v := range allFiccPermissions {
+		if v.ParentId > 0 {
+			permissionMap[v.ParentId] = append(permissionMap[v.ParentId], v)
 		}
-		tmpItems := make([]*PermissionItem, 0)
-		for _, iv := range items {
-			item := new(PermissionItem)
-			item.PermissionId = int(iv.ChartPermissionID)
-			item.PermissionName = iv.PermissionName
-			tmpItems = append(tmpItems, item)
+	}
+	for _, v := range allFiccPermissions {
+		if v.ParentId == 0 {
+			classify := new(FiccPermissionList)
+			classify.ClassifyName = v.PermissionName
+			classify.Items = make([]*PermissionItem, 0)
+			items, ok := permissionMap[int(v.ChartPermissionID)]
+			if ok {
+				for _, iv := range items {
+					item := new(PermissionItem)
+					item.PermissionId = int(iv.ChartPermissionID)
+					item.PermissionName = iv.PermissionName
+					classify.Items = append(classify.Items, item)
+				}
+			}
+			list = append(list, classify)
 		}
-		classify.Items = tmpItems
-		list = append(list, classify)
 	}
 	return
 }
@@ -669,50 +678,54 @@ func GetHomeFiccPermissions(user user.UserInfo) (ret response.PermissionFiccResp
 		return
 	}
 	permissionMap := make(map[uint64]bool)
-	permissionFirstMap := make(map[string]*response.PermissionFirstItem)
+	permissionFirstMap := make(map[int]*response.PermissionFirstItem)
 
 	//查询首页展示的图标
-	permissionFirstList, err := chart_permission_first.GetIndexShowList()
+	permissionFirstList, err := chart_permission.GetFiccFirstListExceptTacticByProductId()
 	if err != nil {
 		return
 	}
 	for _, v := range permissionFirstList {
-		permissionFirstMap[v.ClassifyName] = &response.PermissionFirstItem{
-			Id:          int(v.Id),
-			Sort:        v.YbIndexSort + 1000,
-			YbIndexName: v.YbIndexName,
-			YbIndexIcon: v.YbIndexIcon,
+		permissionFirstMap[int(v.ChartPermissionID)] = &response.PermissionFirstItem{
+			Id:          int(v.ChartPermissionID),
+			Sort:        v.Sort + 1000,
+			YbIndexName: v.PermissionName,
+			YbIndexIcon: "",
 		}
 	}
 
 	for k, v := range permissionList {
-		permissionMap[v.ChartPermissionID] = false
-		for _, myPerId := range validPermissionIds {
-			if int(v.ChartPermissionID) == myPerId {
-				permissionMap[v.ChartPermissionID] = true
-				permissionList[k].Sort = v.Sort - 1000
-				if _, ok := permissionFirstMap[v.ClassifyName]; ok && !permissionFirstMap[v.ClassifyName].IsCheck {
-					permissionFirstMap[v.ClassifyName].AuthOk = true
-					permissionFirstMap[v.ClassifyName].Sort -= 1000
-					permissionFirstMap[v.ClassifyName].IsCheck = true
+		if v.ParentId > 0 {
+			permissionMap[v.ChartPermissionID] = false
+			for _, myPerId := range validPermissionIds {
+				if int(v.ChartPermissionID) == myPerId {
+					permissionMap[v.ChartPermissionID] = true
+					permissionList[k].Sort = v.Sort - 1000
+					if _, ok := permissionFirstMap[v.ParentId]; ok && !permissionFirstMap[v.ParentId].IsCheck {
+						permissionFirstMap[v.ParentId].AuthOk = true
+						permissionFirstMap[v.ParentId].Sort -= 1000
+						permissionFirstMap[v.ParentId].IsCheck = true
+					}
+					break
 				}
-				break
 			}
 		}
 	}
 
 	for _, v := range permissionList {
-		temp := new(response.PermissionFiccSecondItem)
-		temp.Sort = v.Sort
-		temp.ChartPermissionID = int(v.ChartPermissionID)
-		temp.ChartPermissionName = v.PermissionName
-		temp.AuthOk = permissionMap[v.ChartPermissionID]
-		temp.PirceDrivenState = v.PriceDrivenState
-		if _, ok := permissionFirstMap[v.ClassifyName]; ok {
-			permissionFirstMap[v.ClassifyName].List = append(permissionFirstMap[v.ClassifyName].List, temp)
-		} else {
-			permissionFirstMap[v.ClassifyName] = &response.PermissionFirstItem{
-				List: []*response.PermissionFiccSecondItem{temp},
+		if v.ParentId > 0 {
+			temp := new(response.PermissionFiccSecondItem)
+			temp.Sort = v.Sort
+			temp.ChartPermissionID = int(v.ChartPermissionID)
+			temp.ChartPermissionName = v.PermissionName
+			temp.AuthOk = permissionMap[v.ChartPermissionID]
+			temp.PirceDrivenState = v.PriceDrivenState
+			if _, ok := permissionFirstMap[v.ParentId]; ok {
+				permissionFirstMap[v.ParentId].List = append(permissionFirstMap[v.ParentId].List, temp)
+			} else {
+				permissionFirstMap[v.ParentId] = &response.PermissionFirstItem{
+					List: []*response.PermissionFiccSecondItem{temp},
+				}
 			}
 		}
 	}
@@ -948,22 +961,22 @@ func GetBindFiccPermissions(user user.UserInfo) (ret response.BindPermissionFicc
 	for _, item := range validPermissionList {
 		validPermissionIds = append(validPermissionIds, item.ChartPermissionID)
 	}
-	permissionList, err := chart_permission.GetFiccListExceptTacticByProductIdOrderSort()
+	permissionList, err := chart_permission.GetFiccListExceptTacticByProductId()
 	if err != nil {
 		return
 	}
 	permissionMap := make(map[uint64]bool)
-	permissionFirstMap := make(map[string]*response.BindPermissionFiccItem)
+	permissionFirstMap := make(map[int]*response.BindPermissionFiccItem)
 
 	//查询首页展示的图标
-	permissionFirstList, err := chart_permission_first.GetIndexShowListOrderSort()
+	permissionFirstList, err := chart_permission.GetFiccFirstListExceptTacticByProductId()
 	if err != nil {
 		return
 	}
 	for _, v := range permissionFirstList {
-		permissionFirstMap[v.ClassifyName] = &response.BindPermissionFiccItem{
-			Id:           int(v.Id),
-			ClassifyName: v.YbIndexName,
+		permissionFirstMap[int(v.ChartPermissionID)] = &response.BindPermissionFiccItem{
+			Id:           int(v.ChartPermissionID),
+			ClassifyName: v.ChartPermissionName,
 		}
 	}
 
@@ -981,14 +994,14 @@ func GetBindFiccPermissions(user user.UserInfo) (ret response.BindPermissionFicc
 		temp := new(response.BindPermissionFiccSecondItem)
 		temp.ChartPermissionID = int(v.ChartPermissionID)
 		temp.ChartPermissionName = v.PermissionName
-		if _, ok := permissionFirstMap[v.ClassifyName]; ok && permissionMap[v.ChartPermissionID] {
-			permissionFirstMap[v.ClassifyName].List = append(permissionFirstMap[v.ClassifyName].List, temp)
+		if _, ok := permissionFirstMap[v.ParentId]; ok && permissionMap[v.ChartPermissionID] {
+			permissionFirstMap[v.ParentId].List = append(permissionFirstMap[v.ParentId].List, temp)
 		}
 	}
 
 	var list []*response.BindPermissionFiccItem
 	for _, v := range permissionFirstList {
-		item := permissionFirstMap[v.ClassifyName]
+		item := permissionFirstMap[int(v.ChartPermissionID)]
 		if len(item.List) > 0 {
 			temp := new(response.BindPermissionFiccItem)
 			temp.Id = item.Id
@@ -1041,22 +1054,22 @@ func GetCommoditiesBindFiccPermissions(user user.UserInfo) (ret response.BindPer
 	for _, item := range validPermissionList {
 		validPermissionIds = append(validPermissionIds, item.ChartPermissionID)
 	}
-	permissionList, err := chart_permission.GetFiccListExceptTacticByProductIdOrderSort()
+	permissionList, err := chart_permission.GetFiccListExceptTacticByProductId()
 	if err != nil {
 		return
 	}
 	permissionMap := make(map[uint64]bool)
-	permissionFirstMap := make(map[string]*response.BindPermissionFiccItem)
+	permissionFirstMap := make(map[int]*response.BindPermissionFiccItem)
 
 	//查询首页展示的图标
-	permissionFirstList, err := chart_permission_first.GetIndexShowListOrderSort()
+	permissionFirstList, err := chart_permission.GetFiccFirstListExceptTacticByProductId()
 	if err != nil {
 		return
 	}
 	for _, v := range permissionFirstList {
-		permissionFirstMap[v.ClassifyName] = &response.BindPermissionFiccItem{
-			Id:           int(v.Id),
-			ClassifyName: v.YbIndexName,
+		permissionFirstMap[int(v.ChartPermissionID)] = &response.BindPermissionFiccItem{
+			Id:           int(v.ChartPermissionID),
+			ClassifyName: v.ChartPermissionName,
 		}
 	}
 
@@ -1074,22 +1087,22 @@ func GetCommoditiesBindFiccPermissions(user user.UserInfo) (ret response.BindPer
 		temp := new(response.BindPermissionFiccSecondItem)
 		temp.ChartPermissionID = int(v.ChartPermissionID)
 		temp.ChartPermissionName = v.PermissionName
-		if _, ok := permissionFirstMap[v.ClassifyName]; ok && permissionMap[v.ChartPermissionID] {
-			permissionFirstMap[v.ClassifyName].List = append(permissionFirstMap[v.ClassifyName].List, temp)
+		if _, ok := permissionFirstMap[v.ParentId]; ok && permissionMap[v.ChartPermissionID] {
+			permissionFirstMap[v.ParentId].List = append(permissionFirstMap[v.ParentId].List, temp)
 		}
 	}
 
 	var list []*response.BindPermissionFiccItem
 LOOP:
 	for _, v := range permissionFirstList {
-		item := permissionFirstMap[v.ClassifyName]
+		item := permissionFirstMap[int(v.ChartPermissionID)]
 		if len(item.List) > 0 {
 			temp := new(response.BindPermissionFiccItem)
 			temp.Id = item.Id
 			temp.ClassifyName = item.ClassifyName
 			temp.List = item.List
 			//大宗商品分类内合并PTA&MEG
-			if temp.ClassifyName == "化工" {
+			if temp.ClassifyName == "化工产业" {
 				count := 0
 				for i, secondItem := range temp.List {
 					if secondItem.ChartPermissionName == "PTA" || secondItem.ChartPermissionName == "MEG" {

+ 6 - 3
utils/constants.go

@@ -4,7 +4,7 @@ package utils
 const (
 	FormatTime            = "15:04:05"                //时间格式
 	FormatDate            = "2006-01-02"              //日期格式
-	FormatDateCN          = "2006年01月02日"             //日期格式(中文)
+	FormatDateCN          = "2006年01月02日"          //日期格式(中文)
 	FormatDateUnSpace     = "20060102"                //日期格式
 	FormatDateTime        = "2006-01-02 15:04:05"     //完整时间格式
 	HlbFormatDateTime     = "2006-01-02_15:04:05.999" //完整时间格式
@@ -197,9 +197,9 @@ const (
 )
 
 const (
-	AdminId     = 11      //系统操作的用户id
+	AdminId     = 11           //系统操作的用户id
 	RealName    = "超级管理员" //系统操作的用户名称
-	HzCompanyId = 16      // 弘则研究公司ID
+	HzCompanyId = 16           // 弘则研究公司ID
 )
 
 // 图表样式类型
@@ -351,3 +351,6 @@ const (
 	DATA_SUB_SOURCE_EDB  = iota //经济数据库
 	DATA_SUB_SOURCE_DATE        //日期序列
 )
+
+// 默认的品种图片
+const APPLY_VARIETY_IMG_DEFAULT = "https://hzstatic.hzinsights.com/static/yb_variety/default_permission.png"