Explorar o código

增加“账户登录后信息查询”接口

zhou.xiaoning %!s(int64=4) %!d(string=hai) anos
pai
achega
5d33e13873
Modificáronse 8 ficheiros con 1060 adicións e 3 borrados
  1. 2 2
      config/config.xml
  2. 108 0
      controllers/user/user.go
  3. 340 0
      docs/docs.go
  4. 340 0
      docs/swagger.json
  5. 247 0
      docs/swagger.yaml
  6. 1 1
      models/account.go
  7. 20 0
      models/market.go
  8. 2 0
      routers/router.go

+ 2 - 2
config/config.xml

@@ -13,7 +13,7 @@
     <DbAddress value="192.168.31.117"/>
     <DbName value="orcl"/>
     <DbPort value="1521"/>
-    <DbUser value="mtp2_test104"/>
+    <DbUser value="mtp2_test114"/>
     <DbPwd value="muchinfo"/>
   </DbSetting>
   <RedisSetting>
@@ -42,4 +42,4 @@
     <Username value="quote_test114"/>
     <Password value="123456"/>
   </MySQLSetting>
-</Configuration>
+</Configuration>

+ 108 - 0
controllers/user/user.go

@@ -180,6 +180,114 @@ func GetUserAccount(c *gin.Context) {
 	appG.Response(http.StatusOK, e.SUCCESS, userAccount)
 }
 
+// LoginQueryReq 账户登录后信息查询请求参数
+type LoginQueryReq struct {
+	LoginID int `form:"loginID" binding:"required"`
+}
+
+// LoginQueryRsp 账户登录后信息查询返回模型
+type LoginQueryRsp struct {
+	LoginAccount      models.Loginaccount       `json:"loginAccount"`      // 登录账号
+	UserAccount       models.Useraccount        `json:"userAccount"`       // 用户账号
+	UserInfo          models.Userinfo           `json:"userInfo"`          // 用户信息
+	Markets           []models.Market           `json:"markets"`           // 市场
+	Goodsgroups       []models.Goodsgroup       `json:"goodsgroups"`       // 商品组
+	ExternalExchanges []models.Externalexchange `json:"externalExchanges"` // 外部交易所
+}
+
+// LoginQuery 账户登录后信息查询
+// @Summary 账户登录后信息查询
+// @Produce json
+// @Security ApiKeyAuth
+// @Param loginID query int true "登录账号"
+// @Success 200 {object} LoginQueryRsp
+// @Failure 500 {object} app.Response
+// @Router /User/LoginQuery [get]
+// @Tags 用户信息
+func LoginQuery(c *gin.Context) {
+	appG := app.Gin{C: c}
+
+	// 获取请求参数
+	var req LoginQueryReq
+	if err := appG.C.ShouldBindQuery(&req); err != nil {
+		logger.GetLogger().Errorf("LoginQuery failed: %s", err.Error())
+		appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
+		return
+	}
+
+	var rsp LoginQueryRsp
+	// 登录账号
+	loginAccount, err := models.GetLoginAccount(req.LoginID)
+	if err != nil {
+		// 查询失败
+		logger.GetLogger().Errorf("LoginQuery failed: %s", err.Error())
+		appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
+		return
+	}
+	rsp.LoginAccount = *loginAccount
+	// 用户账号
+	userAccount, err := models.GetUserAccount(int(loginAccount.Userid))
+	if err != nil {
+		// 查询失败
+		logger.GetLogger().Errorf("LoginQuery failed: %s", err.Error())
+		appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
+		return
+	}
+	rsp.UserAccount = *userAccount
+	// 用户信息
+	userInfo, err := models.GetUserInfo(int(loginAccount.Userid))
+	if err != nil {
+		// 查询失败
+		logger.GetLogger().Errorf("LoginQuery failed: %s", err.Error())
+		appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
+		return
+	}
+	rsp.UserInfo = *userInfo
+	// 有权限的市场
+	markets, err := models.GetMarketsByLoginID(req.LoginID)
+	if err != nil {
+		// 查询失败
+		logger.GetLogger().Errorf("LoginQuery failed: %s", err.Error())
+		appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
+		return
+	}
+	rsp.Markets = markets
+	// 商品组
+	if len(rsp.Markets) > 0 {
+		marketIDs := make([]int, 0)
+		for _, v := range rsp.Markets {
+			marketIDs = append(marketIDs, int(v.Marketid))
+		}
+		goodsgroups, err := models.GetGoodsgroupInMarketIDs(marketIDs)
+		if err != nil {
+			// 查询失败
+			logger.GetLogger().Errorf("LoginQuery failed: %s", err.Error())
+			appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
+			return
+		}
+		rsp.Goodsgroups = goodsgroups
+	}
+	// 外部交易所
+	if len(rsp.Goodsgroups) > 0 {
+		exchangeIDs := make([]int, 0)
+		for _, v := range rsp.Goodsgroups {
+			exchangeIDs = append(exchangeIDs, int(v.Exexchangeid))
+		}
+		exExchanges, err := models.GetExExchangeByIDs(exchangeIDs)
+		if err != nil {
+			// 查询失败
+			logger.GetLogger().Errorf("LoginQuery failed: %s", err.Error())
+			appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
+			return
+		}
+		rsp.ExternalExchanges = exExchanges
+	}
+
+	// 查询成功
+	logger.GetLogger().Debugln("LoginQuery successed: %v", rsp)
+	appG.Response(http.StatusOK, e.SUCCESS, rsp)
+}
+
 // QueryUserFavoriteGoodsesReq 获取用户商品收藏信息请求参数
 type QueryUserFavoriteGoodsesReq struct {
 	UserID int `form:"userID" binding:"required"`

+ 340 - 0
docs/docs.go

@@ -5882,6 +5882,45 @@ var doc = `{
                 }
             }
         },
+        "/User/LoginQuery": {
+            "get": {
+                "security": [
+                    {
+                        "ApiKeyAuth": []
+                    }
+                ],
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "用户信息"
+                ],
+                "summary": "账户登录后信息查询",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "登录账号",
+                        "name": "loginID",
+                        "in": "query",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/user.LoginQueryRsp"
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/User/QueryMessageBoard": {
             "get": {
                 "security": [
@@ -12139,6 +12178,46 @@ var doc = `{
                 }
             }
         },
+        "models.Externalexchange": {
+            "type": "object",
+            "required": [
+                "autoid"
+            ],
+            "properties": {
+                "autoid": {
+                    "description": "AutoID - SEQ_EXTERNALEXCHANGE",
+                    "type": "integer"
+                },
+                "exchangefullname": {
+                    "description": "外部交易所全称",
+                    "type": "string"
+                },
+                "exexchangecode": {
+                    "description": "外部交易所代码",
+                    "type": "string"
+                },
+                "exexchangename": {
+                    "description": "外部交易所名称(简称)",
+                    "type": "string"
+                },
+                "ismarketprice": {
+                    "description": "是否支持市价 - 0:不支持 1:支持",
+                    "type": "integer"
+                },
+                "quotegear": {
+                    "description": "行情档位(1-10)",
+                    "type": "integer"
+                },
+                "showbrokerflag": {
+                    "description": "是否显示买卖经纪盘 - 0:不显示 1:显示",
+                    "type": "integer"
+                },
+                "updatetime": {
+                    "description": "更新时间",
+                    "type": "string"
+                }
+            }
+        },
         "models.Goods": {
             "type": "object",
             "required": [
@@ -12412,6 +12491,137 @@ var doc = `{
                 }
             }
         },
+        "models.Goodsgroup": {
+            "type": "object",
+            "required": [
+                "goodsgroupid",
+                "goodsgroupname",
+                "goodsgroupstatus",
+                "marketid"
+            ],
+            "properties": {
+                "agreeunit": {
+                    "description": "合约单位",
+                    "type": "number"
+                },
+                "canshort": {
+                    "description": "是否允许做空[通道交易] - 0:不能做空 1:可以做空",
+                    "type": "integer"
+                },
+                "closepricemode": {
+                    "description": "强平价格方式 - 1:市价 2:最新价 3:涨跌停(未实现)",
+                    "type": "integer"
+                },
+                "closepriceparam": {
+                    "description": "强平最新价浮动比例 - 方式为2时使用",
+                    "type": "number"
+                },
+                "createtime": {
+                    "description": "创建时间",
+                    "type": "string"
+                },
+                "creatorid": {
+                    "description": "创建人",
+                    "type": "integer"
+                },
+                "currencyid": {
+                    "description": "报价货币ID",
+                    "type": "integer"
+                },
+                "decimalplace": {
+                    "description": "报价小数位",
+                    "type": "integer"
+                },
+                "exercisetype": {
+                    "description": "行权类型[场外期权]-1:欧式期权 2:美式期权",
+                    "type": "integer"
+                },
+                "exexchangeid": {
+                    "description": "外部交易所ID[通道交易]",
+                    "type": "integer"
+                },
+                "goodsgroupid": {
+                    "description": "商品组ID(自增ID)",
+                    "type": "integer"
+                },
+                "goodsgroupname": {
+                    "description": "商品组名称",
+                    "type": "string"
+                },
+                "goodsgroupstatus": {
+                    "description": "商品组状态 - 1:正常 2:注销",
+                    "type": "integer"
+                },
+                "goodunitid": {
+                    "description": "报价单位ID",
+                    "type": "integer"
+                },
+                "innerdealmode": {
+                    "description": "内部成交方式[通道交易] - 1:净头寸 2:开平 3:平今",
+                    "type": "integer"
+                },
+                "isbuylimited": {
+                    "description": "是否限制建仓量 - 0:不限制 1:限制",
+                    "type": "integer"
+                },
+                "marketid": {
+                    "description": "所属市场ID",
+                    "type": "integer"
+                },
+                "modifierid": {
+                    "description": "修改人",
+                    "type": "integer"
+                },
+                "modifytime": {
+                    "description": "修改时间",
+                    "type": "string"
+                },
+                "outerdealmode": {
+                    "description": "外部成交方式[通道交易]- 1:净头寸 2:开平 3:平今",
+                    "type": "integer"
+                },
+                "outergroupcode": {
+                    "description": "外部商品组代码[通道交易]",
+                    "type": "string"
+                },
+                "premiumdecimalplace": {
+                    "description": "权利金小数位[场外期权]",
+                    "type": "integer"
+                },
+                "premiumspreadalgorithm": {
+                    "description": "权利金点差方式[场外期权]  1:比率  2:固定",
+                    "type": "integer"
+                },
+                "premiumspreadvalue": {
+                    "description": "权利金点差值[场外期权]",
+                    "type": "number"
+                },
+                "qtydecimalplace": {
+                    "description": "成交量小数位",
+                    "type": "integer"
+                },
+                "quotegear": {
+                    "description": "行情档位(1-10)",
+                    "type": "integer"
+                },
+                "quoteminunit": {
+                    "description": "行情最小变动单位 [整数,报价小数位一起使用]",
+                    "type": "integer"
+                },
+                "quoterid": {
+                    "description": "报价商ID[场外期权]",
+                    "type": "integer"
+                },
+                "quotesourcegroupid": {
+                    "description": "所属行情源分组ID[参考行情市场用\\通道交易]",
+                    "type": "integer"
+                },
+                "syncgoodsqty": {
+                    "description": "同步合约数[通道交易-投资管理用] - 0表示不限",
+                    "type": "integer"
+                }
+            }
+        },
         "models.HsbyBuyMyPayOrder": {
             "type": "object",
             "required": [
@@ -13915,6 +14125,98 @@ var doc = `{
                 }
             }
         },
+        "models.Loginaccount": {
+            "type": "object",
+            "required": [
+                "loginid"
+            ],
+            "properties": {
+                "canoutin": {
+                    "description": "是否可出入金 - 0:不可 1:可",
+                    "type": "integer"
+                },
+                "clientroleid": {
+                    "description": "终端角色ID",
+                    "type": "integer"
+                },
+                "haslogined": {
+                    "description": "是否已登录 - 0:未登录 1:已登录",
+                    "type": "integer"
+                },
+                "hasupdatedpwd": {
+                    "description": "是否已更改密码 - 0:未修改 1:已修改",
+                    "type": "integer"
+                },
+                "lastloginip": {
+                    "description": "最新登录地址",
+                    "type": "string"
+                },
+                "lastloginmode": {
+                    "description": "最新登录方式(客户端类型) -  0:保留为未填终端类型 1:PC管理端 2:PC交易端 3:手机客户端_安卓 4:网页客户端 5:微信客户端 6:手机客户端_苹果 7:网上开户客户端 8:无效终端编号 9:报价终端(中江)",
+                    "type": "integer"
+                },
+                "lastloginremark": {
+                    "description": "最新登录描述",
+                    "type": "string"
+                },
+                "lastlogintime": {
+                    "description": "最新登录时间",
+                    "type": "string"
+                },
+                "logincode": {
+                    "description": "登录代码",
+                    "type": "string"
+                },
+                "loginfailnum": {
+                    "description": "连续登录失败次数(登录成功时清零)",
+                    "type": "integer"
+                },
+                "loginid": {
+                    "description": "登陆账号",
+                    "type": "integer"
+                },
+                "loginport": {
+                    "description": "最新登录端口",
+                    "type": "integer"
+                },
+                "loginstatus": {
+                    "description": "登录账号状态 1:正常 2:冻结 3:无效",
+                    "type": "integer"
+                },
+                "loginusertype": {
+                    "description": "登录账号类型 - 1:投资者 2:机构交易员",
+                    "type": "integer"
+                },
+                "modifierid": {
+                    "description": "修改人",
+                    "type": "integer"
+                },
+                "modifytime": {
+                    "description": "修改时间",
+                    "type": "string"
+                },
+                "password": {
+                    "description": "登陆密码",
+                    "type": "string"
+                },
+                "pwdwrongcount": {
+                    "description": "密码错误次数",
+                    "type": "integer"
+                },
+                "taaccountrighttype": {
+                    "description": "资金账号权限类型 - 1:不选默认为所有权限 2:不选默认为无权限",
+                    "type": "integer"
+                },
+                "unfreezetime": {
+                    "description": "账户解冻时间",
+                    "type": "string"
+                },
+                "userid": {
+                    "description": "用户ID",
+                    "type": "integer"
+                }
+            }
+        },
         "models.Market": {
             "type": "object",
             "required": [
@@ -18037,6 +18339,44 @@ var doc = `{
                     "type": "string"
                 }
             }
+        },
+        "user.LoginQueryRsp": {
+            "type": "object",
+            "properties": {
+                "externalExchanges": {
+                    "description": "外部交易所",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.Externalexchange"
+                    }
+                },
+                "goodsgroups": {
+                    "description": "商品组",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.Goodsgroup"
+                    }
+                },
+                "loginAccount": {
+                    "description": "登录账号",
+                    "$ref": "#/definitions/models.Loginaccount"
+                },
+                "markets": {
+                    "description": "市场",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.Market"
+                    }
+                },
+                "userAccount": {
+                    "description": "用户账号",
+                    "$ref": "#/definitions/models.Useraccount"
+                },
+                "userInfo": {
+                    "description": "用户信息",
+                    "$ref": "#/definitions/models.Userinfo"
+                }
+            }
         }
     },
     "securityDefinitions": {

+ 340 - 0
docs/swagger.json

@@ -5866,6 +5866,45 @@
                 }
             }
         },
+        "/User/LoginQuery": {
+            "get": {
+                "security": [
+                    {
+                        "ApiKeyAuth": []
+                    }
+                ],
+                "produces": [
+                    "application/json"
+                ],
+                "tags": [
+                    "用户信息"
+                ],
+                "summary": "账户登录后信息查询",
+                "parameters": [
+                    {
+                        "type": "integer",
+                        "description": "登录账号",
+                        "name": "loginID",
+                        "in": "query",
+                        "required": true
+                    }
+                ],
+                "responses": {
+                    "200": {
+                        "description": "OK",
+                        "schema": {
+                            "$ref": "#/definitions/user.LoginQueryRsp"
+                        }
+                    },
+                    "500": {
+                        "description": "Internal Server Error",
+                        "schema": {
+                            "$ref": "#/definitions/app.Response"
+                        }
+                    }
+                }
+            }
+        },
         "/User/QueryMessageBoard": {
             "get": {
                 "security": [
@@ -12123,6 +12162,46 @@
                 }
             }
         },
+        "models.Externalexchange": {
+            "type": "object",
+            "required": [
+                "autoid"
+            ],
+            "properties": {
+                "autoid": {
+                    "description": "AutoID - SEQ_EXTERNALEXCHANGE",
+                    "type": "integer"
+                },
+                "exchangefullname": {
+                    "description": "外部交易所全称",
+                    "type": "string"
+                },
+                "exexchangecode": {
+                    "description": "外部交易所代码",
+                    "type": "string"
+                },
+                "exexchangename": {
+                    "description": "外部交易所名称(简称)",
+                    "type": "string"
+                },
+                "ismarketprice": {
+                    "description": "是否支持市价 - 0:不支持 1:支持",
+                    "type": "integer"
+                },
+                "quotegear": {
+                    "description": "行情档位(1-10)",
+                    "type": "integer"
+                },
+                "showbrokerflag": {
+                    "description": "是否显示买卖经纪盘 - 0:不显示 1:显示",
+                    "type": "integer"
+                },
+                "updatetime": {
+                    "description": "更新时间",
+                    "type": "string"
+                }
+            }
+        },
         "models.Goods": {
             "type": "object",
             "required": [
@@ -12396,6 +12475,137 @@
                 }
             }
         },
+        "models.Goodsgroup": {
+            "type": "object",
+            "required": [
+                "goodsgroupid",
+                "goodsgroupname",
+                "goodsgroupstatus",
+                "marketid"
+            ],
+            "properties": {
+                "agreeunit": {
+                    "description": "合约单位",
+                    "type": "number"
+                },
+                "canshort": {
+                    "description": "是否允许做空[通道交易] - 0:不能做空 1:可以做空",
+                    "type": "integer"
+                },
+                "closepricemode": {
+                    "description": "强平价格方式 - 1:市价 2:最新价 3:涨跌停(未实现)",
+                    "type": "integer"
+                },
+                "closepriceparam": {
+                    "description": "强平最新价浮动比例 - 方式为2时使用",
+                    "type": "number"
+                },
+                "createtime": {
+                    "description": "创建时间",
+                    "type": "string"
+                },
+                "creatorid": {
+                    "description": "创建人",
+                    "type": "integer"
+                },
+                "currencyid": {
+                    "description": "报价货币ID",
+                    "type": "integer"
+                },
+                "decimalplace": {
+                    "description": "报价小数位",
+                    "type": "integer"
+                },
+                "exercisetype": {
+                    "description": "行权类型[场外期权]-1:欧式期权 2:美式期权",
+                    "type": "integer"
+                },
+                "exexchangeid": {
+                    "description": "外部交易所ID[通道交易]",
+                    "type": "integer"
+                },
+                "goodsgroupid": {
+                    "description": "商品组ID(自增ID)",
+                    "type": "integer"
+                },
+                "goodsgroupname": {
+                    "description": "商品组名称",
+                    "type": "string"
+                },
+                "goodsgroupstatus": {
+                    "description": "商品组状态 - 1:正常 2:注销",
+                    "type": "integer"
+                },
+                "goodunitid": {
+                    "description": "报价单位ID",
+                    "type": "integer"
+                },
+                "innerdealmode": {
+                    "description": "内部成交方式[通道交易] - 1:净头寸 2:开平 3:平今",
+                    "type": "integer"
+                },
+                "isbuylimited": {
+                    "description": "是否限制建仓量 - 0:不限制 1:限制",
+                    "type": "integer"
+                },
+                "marketid": {
+                    "description": "所属市场ID",
+                    "type": "integer"
+                },
+                "modifierid": {
+                    "description": "修改人",
+                    "type": "integer"
+                },
+                "modifytime": {
+                    "description": "修改时间",
+                    "type": "string"
+                },
+                "outerdealmode": {
+                    "description": "外部成交方式[通道交易]- 1:净头寸 2:开平 3:平今",
+                    "type": "integer"
+                },
+                "outergroupcode": {
+                    "description": "外部商品组代码[通道交易]",
+                    "type": "string"
+                },
+                "premiumdecimalplace": {
+                    "description": "权利金小数位[场外期权]",
+                    "type": "integer"
+                },
+                "premiumspreadalgorithm": {
+                    "description": "权利金点差方式[场外期权]  1:比率  2:固定",
+                    "type": "integer"
+                },
+                "premiumspreadvalue": {
+                    "description": "权利金点差值[场外期权]",
+                    "type": "number"
+                },
+                "qtydecimalplace": {
+                    "description": "成交量小数位",
+                    "type": "integer"
+                },
+                "quotegear": {
+                    "description": "行情档位(1-10)",
+                    "type": "integer"
+                },
+                "quoteminunit": {
+                    "description": "行情最小变动单位 [整数,报价小数位一起使用]",
+                    "type": "integer"
+                },
+                "quoterid": {
+                    "description": "报价商ID[场外期权]",
+                    "type": "integer"
+                },
+                "quotesourcegroupid": {
+                    "description": "所属行情源分组ID[参考行情市场用\\通道交易]",
+                    "type": "integer"
+                },
+                "syncgoodsqty": {
+                    "description": "同步合约数[通道交易-投资管理用] - 0表示不限",
+                    "type": "integer"
+                }
+            }
+        },
         "models.HsbyBuyMyPayOrder": {
             "type": "object",
             "required": [
@@ -13899,6 +14109,98 @@
                 }
             }
         },
+        "models.Loginaccount": {
+            "type": "object",
+            "required": [
+                "loginid"
+            ],
+            "properties": {
+                "canoutin": {
+                    "description": "是否可出入金 - 0:不可 1:可",
+                    "type": "integer"
+                },
+                "clientroleid": {
+                    "description": "终端角色ID",
+                    "type": "integer"
+                },
+                "haslogined": {
+                    "description": "是否已登录 - 0:未登录 1:已登录",
+                    "type": "integer"
+                },
+                "hasupdatedpwd": {
+                    "description": "是否已更改密码 - 0:未修改 1:已修改",
+                    "type": "integer"
+                },
+                "lastloginip": {
+                    "description": "最新登录地址",
+                    "type": "string"
+                },
+                "lastloginmode": {
+                    "description": "最新登录方式(客户端类型) -  0:保留为未填终端类型 1:PC管理端 2:PC交易端 3:手机客户端_安卓 4:网页客户端 5:微信客户端 6:手机客户端_苹果 7:网上开户客户端 8:无效终端编号 9:报价终端(中江)",
+                    "type": "integer"
+                },
+                "lastloginremark": {
+                    "description": "最新登录描述",
+                    "type": "string"
+                },
+                "lastlogintime": {
+                    "description": "最新登录时间",
+                    "type": "string"
+                },
+                "logincode": {
+                    "description": "登录代码",
+                    "type": "string"
+                },
+                "loginfailnum": {
+                    "description": "连续登录失败次数(登录成功时清零)",
+                    "type": "integer"
+                },
+                "loginid": {
+                    "description": "登陆账号",
+                    "type": "integer"
+                },
+                "loginport": {
+                    "description": "最新登录端口",
+                    "type": "integer"
+                },
+                "loginstatus": {
+                    "description": "登录账号状态 1:正常 2:冻结 3:无效",
+                    "type": "integer"
+                },
+                "loginusertype": {
+                    "description": "登录账号类型 - 1:投资者 2:机构交易员",
+                    "type": "integer"
+                },
+                "modifierid": {
+                    "description": "修改人",
+                    "type": "integer"
+                },
+                "modifytime": {
+                    "description": "修改时间",
+                    "type": "string"
+                },
+                "password": {
+                    "description": "登陆密码",
+                    "type": "string"
+                },
+                "pwdwrongcount": {
+                    "description": "密码错误次数",
+                    "type": "integer"
+                },
+                "taaccountrighttype": {
+                    "description": "资金账号权限类型 - 1:不选默认为所有权限 2:不选默认为无权限",
+                    "type": "integer"
+                },
+                "unfreezetime": {
+                    "description": "账户解冻时间",
+                    "type": "string"
+                },
+                "userid": {
+                    "description": "用户ID",
+                    "type": "integer"
+                }
+            }
+        },
         "models.Market": {
             "type": "object",
             "required": [
@@ -18021,6 +18323,44 @@
                     "type": "string"
                 }
             }
+        },
+        "user.LoginQueryRsp": {
+            "type": "object",
+            "properties": {
+                "externalExchanges": {
+                    "description": "外部交易所",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.Externalexchange"
+                    }
+                },
+                "goodsgroups": {
+                    "description": "商品组",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.Goodsgroup"
+                    }
+                },
+                "loginAccount": {
+                    "description": "登录账号",
+                    "$ref": "#/definitions/models.Loginaccount"
+                },
+                "markets": {
+                    "description": "市场",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.Market"
+                    }
+                },
+                "userAccount": {
+                    "description": "用户账号",
+                    "$ref": "#/definitions/models.Useraccount"
+                },
+                "userInfo": {
+                    "description": "用户信息",
+                    "$ref": "#/definitions/models.Userinfo"
+                }
+            }
         }
     },
     "securityDefinitions": {

+ 247 - 0
docs/swagger.yaml

@@ -4417,6 +4417,35 @@ definitions:
         description: 现货商品名称
         type: string
     type: object
+  models.Externalexchange:
+    properties:
+      autoid:
+        description: AutoID - SEQ_EXTERNALEXCHANGE
+        type: integer
+      exchangefullname:
+        description: 外部交易所全称
+        type: string
+      exexchangecode:
+        description: 外部交易所代码
+        type: string
+      exexchangename:
+        description: 外部交易所名称(简称)
+        type: string
+      ismarketprice:
+        description: 是否支持市价 - 0:不支持 1:支持
+        type: integer
+      quotegear:
+        description: 行情档位(1-10)
+        type: integer
+      showbrokerflag:
+        description: 是否显示买卖经纪盘 - 0:不显示 1:显示
+        type: integer
+      updatetime:
+        description: 更新时间
+        type: string
+    required:
+    - autoid
+    type: object
   models.Goods:
     properties:
       agreeunit:
@@ -4619,6 +4648,104 @@ definitions:
         description: 更新时间
         type: string
     type: object
+  models.Goodsgroup:
+    properties:
+      agreeunit:
+        description: 合约单位
+        type: number
+      canshort:
+        description: 是否允许做空[通道交易] - 0:不能做空 1:可以做空
+        type: integer
+      closepricemode:
+        description: 强平价格方式 - 1:市价 2:最新价 3:涨跌停(未实现)
+        type: integer
+      closepriceparam:
+        description: 强平最新价浮动比例 - 方式为2时使用
+        type: number
+      createtime:
+        description: 创建时间
+        type: string
+      creatorid:
+        description: 创建人
+        type: integer
+      currencyid:
+        description: 报价货币ID
+        type: integer
+      decimalplace:
+        description: 报价小数位
+        type: integer
+      exercisetype:
+        description: 行权类型[场外期权]-1:欧式期权 2:美式期权
+        type: integer
+      exexchangeid:
+        description: 外部交易所ID[通道交易]
+        type: integer
+      goodsgroupid:
+        description: 商品组ID(自增ID)
+        type: integer
+      goodsgroupname:
+        description: 商品组名称
+        type: string
+      goodsgroupstatus:
+        description: 商品组状态 - 1:正常 2:注销
+        type: integer
+      goodunitid:
+        description: 报价单位ID
+        type: integer
+      innerdealmode:
+        description: 内部成交方式[通道交易] - 1:净头寸 2:开平 3:平今
+        type: integer
+      isbuylimited:
+        description: 是否限制建仓量 - 0:不限制 1:限制
+        type: integer
+      marketid:
+        description: 所属市场ID
+        type: integer
+      modifierid:
+        description: 修改人
+        type: integer
+      modifytime:
+        description: 修改时间
+        type: string
+      outerdealmode:
+        description: 外部成交方式[通道交易]- 1:净头寸 2:开平 3:平今
+        type: integer
+      outergroupcode:
+        description: 外部商品组代码[通道交易]
+        type: string
+      premiumdecimalplace:
+        description: 权利金小数位[场外期权]
+        type: integer
+      premiumspreadalgorithm:
+        description: 权利金点差方式[场外期权]  1:比率  2:固定
+        type: integer
+      premiumspreadvalue:
+        description: 权利金点差值[场外期权]
+        type: number
+      qtydecimalplace:
+        description: 成交量小数位
+        type: integer
+      quotegear:
+        description: 行情档位(1-10)
+        type: integer
+      quoteminunit:
+        description: 行情最小变动单位 [整数,报价小数位一起使用]
+        type: integer
+      quoterid:
+        description: 报价商ID[场外期权]
+        type: integer
+      quotesourcegroupid:
+        description: 所属行情源分组ID[参考行情市场用\通道交易]
+        type: integer
+      syncgoodsqty:
+        description: 同步合约数[通道交易-投资管理用] - 0表示不限
+        type: integer
+    required:
+    - goodsgroupid
+    - goodsgroupname
+    - goodsgroupstatus
+    - marketid
+    type: object
   models.HsbyBuyMyPayOrder:
     properties:
       agreeunit:
@@ -5771,6 +5898,75 @@ definitions:
     - ordertime
     - trademode
     type: object
+  models.Loginaccount:
+    properties:
+      canoutin:
+        description: 是否可出入金 - 0:不可 1:可
+        type: integer
+      clientroleid:
+        description: 终端角色ID
+        type: integer
+      haslogined:
+        description: 是否已登录 - 0:未登录 1:已登录
+        type: integer
+      hasupdatedpwd:
+        description: 是否已更改密码 - 0:未修改 1:已修改
+        type: integer
+      lastloginip:
+        description: 最新登录地址
+        type: string
+      lastloginmode:
+        description: 最新登录方式(客户端类型) -  0:保留为未填终端类型 1:PC管理端 2:PC交易端 3:手机客户端_安卓 4:网页客户端
+          5:微信客户端 6:手机客户端_苹果 7:网上开户客户端 8:无效终端编号 9:报价终端(中江)
+        type: integer
+      lastloginremark:
+        description: 最新登录描述
+        type: string
+      lastlogintime:
+        description: 最新登录时间
+        type: string
+      logincode:
+        description: 登录代码
+        type: string
+      loginfailnum:
+        description: 连续登录失败次数(登录成功时清零)
+        type: integer
+      loginid:
+        description: 登陆账号
+        type: integer
+      loginport:
+        description: 最新登录端口
+        type: integer
+      loginstatus:
+        description: 登录账号状态 1:正常 2:冻结 3:无效
+        type: integer
+      loginusertype:
+        description: 登录账号类型 - 1:投资者 2:机构交易员
+        type: integer
+      modifierid:
+        description: 修改人
+        type: integer
+      modifytime:
+        description: 修改时间
+        type: string
+      password:
+        description: 登陆密码
+        type: string
+      pwdwrongcount:
+        description: 密码错误次数
+        type: integer
+      taaccountrighttype:
+        description: 资金账号权限类型 - 1:不选默认为所有权限 2:不选默认为无权限
+        type: integer
+      unfreezetime:
+        description: 账户解冻时间
+        type: string
+      userid:
+        description: 用户ID
+        type: integer
+    required:
+    - loginid
+    type: object
   models.Market:
     properties:
       auctionwrtype:
@@ -8892,6 +9088,33 @@ definitions:
     required:
     - ordertime
     type: object
+  user.LoginQueryRsp:
+    properties:
+      externalExchanges:
+        description: 外部交易所
+        items:
+          $ref: '#/definitions/models.Externalexchange'
+        type: array
+      goodsgroups:
+        description: 商品组
+        items:
+          $ref: '#/definitions/models.Goodsgroup'
+        type: array
+      loginAccount:
+        $ref: '#/definitions/models.Loginaccount'
+        description: 登录账号
+      markets:
+        description: 市场
+        items:
+          $ref: '#/definitions/models.Market'
+        type: array
+      userAccount:
+        $ref: '#/definitions/models.Useraccount'
+        description: 用户账号
+      userInfo:
+        $ref: '#/definitions/models.Userinfo'
+        description: 用户信息
+    type: object
 info:
   contact: {}
   description: 新的查询服务,替代原通用查询服务。游客Token:c886a057f3d820d4dbc41473686c7c2d
@@ -12589,6 +12812,30 @@ paths:
       summary: 获取用户实名认证状态
       tags:
       - 用户信息
+  /User/LoginQuery:
+    get:
+      parameters:
+      - description: 登录账号
+        in: query
+        name: loginID
+        required: true
+        type: integer
+      produces:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/user.LoginQueryRsp'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/app.Response'
+      security:
+      - ApiKeyAuth: []
+      summary: 账户登录后信息查询
+      tags:
+      - 用户信息
   /User/QueryMessageBoard:
     get:
       parameters:

+ 1 - 1
models/account.go

@@ -443,7 +443,7 @@ func (Wskhuserinfo) TableName() string {
 	return "WSKH_USERINFO"
 }
 
-// GetLoginAccount 获取资金账户信息
+// GetLoginAccount 获取登录账户信息
 func GetLoginAccount(loginID int) (*Loginaccount, error) {
 	var loginaccount Loginaccount
 	// var loginaccount Loginaccount

+ 20 - 0
models/market.go

@@ -419,3 +419,23 @@ func GetExternalexchangeByGoodsGroupID(goodsGroupID int) (*Externalexchange, err
 
 	return &rst[0], nil
 }
+
+// GetGoodsgroupInMarketIDs 通过市场ID列表获取对应的商品组信息
+func GetGoodsgroupInMarketIDs(marketIDs []int) ([]Goodsgroup, error) {
+	goodsgroups := make([]Goodsgroup, 0)
+	if err := db.GetEngine().In("MARKETID", marketIDs).Find(&goodsgroups); err != nil {
+		return nil, err
+	}
+
+	return goodsgroups, nil
+}
+
+// GetExExchangeByIDs 通过ID列表获取对应的外部交易所信息
+func GetExExchangeByIDs(exchangeIDs []int) ([]Externalexchange, error) {
+	exExchanges := make([]Externalexchange, 0)
+	if err := db.GetEngine().In("AUTOID", exchangeIDs).Find(&exExchanges); err != nil {
+		return nil, err
+	}
+
+	return exExchanges, nil
+}

+ 2 - 0
routers/router.go

@@ -79,6 +79,8 @@ func InitRouter() *gin.Engine {
 		userR.Use(token.Auth()).GET("/GetUserAccount", user.GetUserAccount)
 		// 更新用户状态
 		userR.Use(token.Auth()).POST("/UpdateUserAccountStatus", user.UpdateUserAccountStatus)
+		// 账户登录后信息查询
+		userR.Use(token.Auth()).GET("/LoginQuery", user.LoginQuery)
 	}
 	// ************************ 资金账户 ************************
 	taAccountR := apiR.Group("TaAccount")