|
|
@@ -20,25 +20,51 @@ type QueryTraderMenuReq struct {
|
|
|
LoginID int `form:"loginid" binding:"required"`
|
|
|
}
|
|
|
|
|
|
+// QueryTraderMenuRsp 交易端菜单
|
|
|
+type QueryTraderMenuRsp struct {
|
|
|
+ QuoteMenu []QuotePrimaryMenu `json:"QuoteMenu"` // 报价牌分类菜单
|
|
|
+ OperationMenu []OperationPrimaryMenu `json:"OperationMenu"` // 功能菜单
|
|
|
+}
|
|
|
+
|
|
|
// QuotePrimaryMenu 报价牌一级分类菜单
|
|
|
type QuotePrimaryMenu struct {
|
|
|
- Index int `json:"index"` // 序号
|
|
|
- Key string `json:"key"` // 键名
|
|
|
- Name string `json:"name"` // 菜单名称
|
|
|
- SubTitleType int `json:"titletype"` // 子菜单标题模式:0-市场名称;1-外部交易所名称
|
|
|
- TradeModes string `json:"trademodes"` // 包含市场交易类型
|
|
|
- SubMenus []QuoteSecondaryMenu `json:"submenus"` // 子菜单
|
|
|
+ Index int `json:"Index"` // 序号
|
|
|
+ Key string `json:"Key"` // 键名
|
|
|
+ Name string `json:"Name"` // 菜单名称
|
|
|
+ SubTitleType int `json:"SubTitleType"` // 子菜单标题模式:0-市场名称;1-外部交易所名称
|
|
|
+ TradeModes string `json:"TradeModes"` // 包含市场交易类型
|
|
|
+ SubMenus []QuoteSecondaryMenu `json:"SubMenus"` // 子菜单
|
|
|
}
|
|
|
|
|
|
// QuoteSecondaryMenu 报价牌二级分类菜单
|
|
|
type QuoteSecondaryMenu struct {
|
|
|
- Index int `json:"index"` // 序号
|
|
|
- MarketID int `json:"marketid"` // 市场ID
|
|
|
- TradeMode int `json:"trademode"` // 交易模式
|
|
|
- MenuTitle string `json:"menutitle" xorm:"'ExExchangeName'"` // 菜单标题(市场名称或外部交易所名称)
|
|
|
- GoodsGroupIDs []int `json:"goodsgroupids"` // 商品组ID列表
|
|
|
- ExExchangeID int `json:"exexchangeid" xorm:"'ExExchangeID'"` // 外部交易所ID
|
|
|
- ExExchangeCode string `json:"exexchangecode" xorm:"'ExExchangeCode'"` // 外部交易所代码
|
|
|
+ Index int `json:"Index"` // 序号
|
|
|
+ MarketID int `json:"MarketID"` // 市场ID
|
|
|
+ TradeMode int `json:"TradeMode"` // 交易模式
|
|
|
+ MenuTitle string `json:"MenuTitle" xorm:"'ExExchangeName'"` // 菜单标题(市场名称或外部交易所名称)
|
|
|
+ GoodsGroupIDs []int `json:"GoodsGroupIDs"` // 商品组ID列表
|
|
|
+ ExExchangeID int `json:"ExExchangeID" xorm:"'ExExchangeID'"` // 外部交易所ID
|
|
|
+ ExExchangeCode string `json:"ExExchangeCode" xorm:"'ExExchangeCode'"` // 外部交易所代码
|
|
|
+}
|
|
|
+
|
|
|
+// OperationPrimaryMenu 一级功能菜单
|
|
|
+type OperationPrimaryMenu struct {
|
|
|
+ Key string `json:"Key"` // 菜单KEY
|
|
|
+ Label string `json:"Label"` // 菜单标题
|
|
|
+ Children []OperationSecondaryMenu `json:"Children"` // 二级功能菜单
|
|
|
+}
|
|
|
+
|
|
|
+// OperationSecondaryMenu 二级功能菜单
|
|
|
+type OperationSecondaryMenu struct {
|
|
|
+ Key string `json:"Key"` // 菜单KEY
|
|
|
+ Label string `json:"Label"` // 菜单标题
|
|
|
+ TabList []OperationTabMenu `json:"TabList"` // 三级功能菜单
|
|
|
+}
|
|
|
+
|
|
|
+// OperationTabMenu 三级功能菜单
|
|
|
+type OperationTabMenu struct {
|
|
|
+ Key string `json:"Key"` // 菜单KEY
|
|
|
+ Label string `json:"Label"` // 菜单标题
|
|
|
}
|
|
|
|
|
|
// QueryTraderMenu 查询交易端菜单
|
|
|
@@ -46,7 +72,7 @@ type QuoteSecondaryMenu struct {
|
|
|
// @Produce json
|
|
|
// @Security ApiKeyAuth
|
|
|
// @Param loginid query int true "登录账号"
|
|
|
-// @Success 200 {object} QuotePrimaryMenu
|
|
|
+// @Success 200 {object} QueryTraderMenuRsp
|
|
|
// @Failure 500 {object} app.Response
|
|
|
// @Router /Common/QueryTraderMenu [get]
|
|
|
// @Tags 通用
|
|
|
@@ -61,16 +87,23 @@ func QueryTraderMenu(c *gin.Context) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- datas, _ := getMenu(req.LoginID)
|
|
|
- menuMap := make(map[string]interface{})
|
|
|
- menuMap["menu"] = datas
|
|
|
+ var queryTraderMenuRsp QueryTraderMenuRsp
|
|
|
+ // 获取行情报价牌分类菜单
|
|
|
+ if datas, err := getQuoteMenu(req.LoginID); err == nil {
|
|
|
+ queryTraderMenuRsp.QuoteMenu = datas
|
|
|
+ }
|
|
|
+ // 获取功能菜单
|
|
|
+ if datas, err := getOperationMenu(); err == nil {
|
|
|
+ queryTraderMenuRsp.OperationMenu = datas
|
|
|
+ }
|
|
|
|
|
|
// 查询成功
|
|
|
- logger.GetLogger().Infof("QueryPreasleApply successed: %v", menuMap)
|
|
|
- appG.Response(http.StatusOK, e.SUCCESS, menuMap)
|
|
|
+ logger.GetLogger().Infof("QueryPreasleApply successed: %v", queryTraderMenuRsp)
|
|
|
+ appG.Response(http.StatusOK, e.SUCCESS, queryTraderMenuRsp)
|
|
|
}
|
|
|
|
|
|
-func getMenu(loginID int) ([]QuotePrimaryMenu, error) {
|
|
|
+// getQuoteMenu 获取行情报价牌分类菜单
|
|
|
+func getQuoteMenu(loginID int) ([]QuotePrimaryMenu, error) {
|
|
|
engine := db.GetEngine()
|
|
|
rst := make([]QuotePrimaryMenu, 0)
|
|
|
|
|
|
@@ -178,3 +211,55 @@ func getMenu(loginID int) ([]QuotePrimaryMenu, error) {
|
|
|
|
|
|
return rst, nil
|
|
|
}
|
|
|
+
|
|
|
+// getOperationMenu 获取功能菜单
|
|
|
+func getOperationMenu() ([]OperationPrimaryMenu, error) {
|
|
|
+ engine := db.GetEngine()
|
|
|
+ rst := make([]OperationPrimaryMenu, 0)
|
|
|
+
|
|
|
+ // 获取一级功能菜单
|
|
|
+ opm := make([]models.Tablecolumnconfig, 0)
|
|
|
+ if err := engine.Where("IsShow = 1 and TableKey = ?", "trader_operation_master_menu").Asc("ORDERINDEX").Find(&opm); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ for _, pv := range opm {
|
|
|
+ var operationPrimaryMenu = OperationPrimaryMenu{
|
|
|
+ Key: pv.Columnfield,
|
|
|
+ Label: pv.Columntitle,
|
|
|
+ Children: make([]OperationSecondaryMenu, 0),
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取二级功能菜单
|
|
|
+ osm := make([]models.Tablecolumnconfig, 0)
|
|
|
+ if err := engine.Where("IsShow = 1 and Remark = ?", operationPrimaryMenu.Key).Asc("ORDERINDEX").Find(&osm); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ for _, sv := range osm {
|
|
|
+ var operationSecondaryMenu = OperationSecondaryMenu{
|
|
|
+ Key: sv.Columnfield,
|
|
|
+ Label: sv.Columntitle,
|
|
|
+ TabList: make([]OperationTabMenu, 0),
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取三级功能菜单
|
|
|
+ otm := make([]models.Tablecolumnconfig, 0)
|
|
|
+ if err := engine.Where("IsShow = 1 and Remark = ?", operationSecondaryMenu.Key).Asc("ORDERINDEX").Find(&otm); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ for _, tv := range otm {
|
|
|
+ var operationTabMenu = OperationTabMenu{
|
|
|
+ Key: tv.Columnfield,
|
|
|
+ Label: tv.Columntitle,
|
|
|
+ }
|
|
|
+
|
|
|
+ operationSecondaryMenu.TabList = append(operationSecondaryMenu.TabList, operationTabMenu)
|
|
|
+ }
|
|
|
+
|
|
|
+ operationPrimaryMenu.Children = append(operationPrimaryMenu.Children, operationSecondaryMenu)
|
|
|
+ }
|
|
|
+
|
|
|
+ rst = append(rst, operationPrimaryMenu)
|
|
|
+ }
|
|
|
+
|
|
|
+ return rst, nil
|
|
|
+}
|