|
|
@@ -8,6 +8,7 @@ import (
|
|
|
"mtp2_if/mtpcache"
|
|
|
"mtp2_if/utils"
|
|
|
"net/http"
|
|
|
+ "strings"
|
|
|
"time"
|
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
@@ -147,13 +148,13 @@ type QueryQuoteDayRsp struct {
|
|
|
|
|
|
// QueryQuoteDay 获取商品盘面信息
|
|
|
// @Summary 获取商品盘面信息
|
|
|
-// @Produce json
|
|
|
+// @Produce json
|
|
|
// @Security ApiKeyAuth
|
|
|
// @Param goodsCodes query string false "此参数不填则查所有;商品代码列表,格式:CU2102,CU2103,AL2107"
|
|
|
// @Success 200 {object} QueryQuoteDayRsp
|
|
|
-// @Failure 500 {object} app.Response
|
|
|
+// @Failure 500 {object} app.Response
|
|
|
// @Router /Quote/QueryQuoteDay [get]
|
|
|
-// @Tags 行情服务
|
|
|
+// @Tags 行情服务
|
|
|
func QueryQuoteDay(c *gin.Context) {
|
|
|
appG := app.Gin{C: c}
|
|
|
|
|
|
@@ -308,3 +309,171 @@ func QueryQuoteDay(c *gin.Context) {
|
|
|
logger.GetLogger().Debugln("QueryQuoteDay successed, rows: %v", len(rsp))
|
|
|
appG.Response(http.StatusOK, e.SUCCESS, rsp)
|
|
|
}
|
|
|
+
|
|
|
+type GetTouristQuoteDayReq struct {
|
|
|
+ Goodscodes string `form:"goodsCodes" binding:"required"` // 商品代码列表,格式:1,2,3
|
|
|
+}
|
|
|
+
|
|
|
+// GetTouristQuoteDay 获取游客商品盘面信息
|
|
|
+// @Summary 获取游客商品盘面信息
|
|
|
+// @Produce json
|
|
|
+// @Param goodsCodes query string true "商品代码列表,格式:1,2,3"
|
|
|
+// @Success 200 {array} QueryQuoteDayRsp
|
|
|
+// @Failure 500 {object} app.Response
|
|
|
+// @Router /Quote/GetTouristQuoteDay [get]
|
|
|
+// @Tags 行情服务
|
|
|
+func GetTouristQuoteDay(c *gin.Context) {
|
|
|
+ appG := app.Gin{C: c}
|
|
|
+
|
|
|
+ // 获取请求参数
|
|
|
+ var req GetTouristQuoteDayReq
|
|
|
+ if err := appG.C.ShouldBindQuery(&req); err != nil {
|
|
|
+ logger.GetLogger().Errorf("GetTouristQuoteDay failed: %s", err.Error())
|
|
|
+ appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ g := strings.Split(req.Goodscodes, ",")
|
|
|
+ quoteDays, err := models.GetRedisQuoteDays(g)
|
|
|
+ if err != nil {
|
|
|
+ logger.GetLogger().Errorf("GetTouristQuoteDay failed: %s", err.Error())
|
|
|
+ appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ rsp := make([]QueryQuoteDayRsp, 0)
|
|
|
+ for _, v := range quoteDays {
|
|
|
+ // 获取对应的商品信息
|
|
|
+ goods, bFind := mtpcache.GetGoods(v.Goodscode)
|
|
|
+ if bFind {
|
|
|
+ rsp = append(rsp, QueryQuoteDayRsp{
|
|
|
+ Exchangedate: v.Exchangedate,
|
|
|
+ Goodscode: v.Goodscode,
|
|
|
+ Exchangecode: v.Exchangecode,
|
|
|
+ Preclose: utils.IntToFloat64(int(v.Preclose), int(goods.DECIMALPLACE)),
|
|
|
+ Opentime: time.Unix(int64(v.Opentime), 0),
|
|
|
+ Opened: utils.IntToFloat64(int(v.Opened), int(goods.DECIMALPLACE)),
|
|
|
+ Highest: utils.IntToFloat64(int(v.Highest), int(goods.DECIMALPLACE)),
|
|
|
+ Lowest: utils.IntToFloat64(int(v.Lowest), int(goods.DECIMALPLACE)),
|
|
|
+ Lasttime: v.Lasttime,
|
|
|
+ Utclasttime: time.Unix(int64(v.Utclasttime), 0),
|
|
|
+ Last: utils.IntToFloat64(int(v.Last), int(goods.DECIMALPLACE)),
|
|
|
+ Lastvolume: v.Lastvolume,
|
|
|
+ Lastturnover: utils.IntToFloat64(int(v.Lastturnover), int(goods.DECIMALPLACE)),
|
|
|
+ Totalbidvolume: v.Totalbidvolume,
|
|
|
+ Totalaskvolume: v.Totalaskvolume,
|
|
|
+ Totalvolume: v.Totalvolume,
|
|
|
+ Totalturnover: utils.IntToFloat64(int(v.Totalturnover), int(goods.DECIMALPLACE)),
|
|
|
+ Bid: utils.IntToFloat64(int(v.Bid), int(goods.DECIMALPLACE)),
|
|
|
+ Bid2: utils.IntToFloat64(int(v.Bid2), int(goods.DECIMALPLACE)),
|
|
|
+ Bid3: utils.IntToFloat64(int(v.Bid3), int(goods.DECIMALPLACE)),
|
|
|
+ Bid4: utils.IntToFloat64(int(v.Bid4), int(goods.DECIMALPLACE)),
|
|
|
+ Bid5: utils.IntToFloat64(int(v.Bid5), int(goods.DECIMALPLACE)),
|
|
|
+ Bidvolume: v.Bidvolume,
|
|
|
+ Bidvolume2: v.Bidvolume2,
|
|
|
+ Bidvolume3: v.Bidvolume3,
|
|
|
+ Bidvolume4: v.Bidvolume4,
|
|
|
+ Bidvolume5: v.Bidvolume5,
|
|
|
+ Ask: utils.IntToFloat64(int(v.Ask), int(goods.DECIMALPLACE)),
|
|
|
+ Ask2: utils.IntToFloat64(int(v.Ask2), int(goods.DECIMALPLACE)),
|
|
|
+ Ask3: utils.IntToFloat64(int(v.Ask3), int(goods.DECIMALPLACE)),
|
|
|
+ Ask4: utils.IntToFloat64(int(v.Ask4), int(goods.DECIMALPLACE)),
|
|
|
+ Ask5: utils.IntToFloat64(int(v.Ask5), int(goods.DECIMALPLACE)),
|
|
|
+ Askvolume: v.Askvolume,
|
|
|
+ Askvolume2: v.Askvolume2,
|
|
|
+ Askvolume3: v.Askvolume3,
|
|
|
+ Askvolume4: v.Askvolume4,
|
|
|
+ Askvolume5: v.Askvolume5,
|
|
|
+ Presettle: utils.IntToFloat64(int(v.Presettle), int(goods.DECIMALPLACE)),
|
|
|
+ Settle: utils.IntToFloat64(int(v.Settle), int(goods.DECIMALPLACE)),
|
|
|
+ Preholdvolume: v.Preholdvolume,
|
|
|
+ Holdvolume: v.Holdvolume,
|
|
|
+ Averageprice: utils.IntToFloat64(int(v.Averageprice), int(goods.DECIMALPLACE)),
|
|
|
+ Orderid: v.Orderid,
|
|
|
+ Limitup: utils.IntToFloat64(int(v.Limitup), int(goods.DECIMALPLACE)),
|
|
|
+ Limitdown: utils.IntToFloat64(int(v.Limitdown), int(goods.DECIMALPLACE)),
|
|
|
+ Inventory: v.Inventory,
|
|
|
+ Holdincrement: v.Holdincrement,
|
|
|
+ Iscleared: v.Iscleared,
|
|
|
+ Issettled: v.Issettled,
|
|
|
+ Bidqueueinfo: v.Bidqueueinfo,
|
|
|
+ Askqueueinfo: v.Askqueueinfo,
|
|
|
+ Bidorderid: v.Bidorderid,
|
|
|
+ Bidorderid2: v.Bidorderid2,
|
|
|
+ Bidorderid3: v.Bidorderid3,
|
|
|
+ Bidorderid4: v.Bidorderid4,
|
|
|
+ Bidorderid5: v.Bidorderid5,
|
|
|
+ Askorderid: v.Askorderid,
|
|
|
+ Askorderid2: v.Askorderid2,
|
|
|
+ Askorderid3: v.Askorderid3,
|
|
|
+ Askorderid4: v.Askorderid4,
|
|
|
+ Askorderid5: v.Askorderid5,
|
|
|
+ Lastlot: v.Lastlot,
|
|
|
+ Totallot: v.Totallot,
|
|
|
+ Strikeprice: utils.IntToFloat64(int(v.Strikeprice), int(goods.DECIMALPLACE)),
|
|
|
+ Cleartime: v.Cleartime,
|
|
|
+ Calloptionpremiums: v.Calloptionpremiums,
|
|
|
+ Calloptionpremiums2: v.Calloptionpremiums2,
|
|
|
+ Calloptionpremiums3: v.Calloptionpremiums3,
|
|
|
+ Calloptionpremiums4: v.Calloptionpremiums4,
|
|
|
+ Calloptionpremiums5: v.Calloptionpremiums5,
|
|
|
+ Putoptionpremiums: v.Putoptionpremiums,
|
|
|
+ Putoptionpremiums2: v.Putoptionpremiums2,
|
|
|
+ Putoptionpremiums3: v.Putoptionpremiums3,
|
|
|
+ Putoptionpremiums4: v.Putoptionpremiums4,
|
|
|
+ Putoptionpremiums5: v.Putoptionpremiums5,
|
|
|
+ Nontotalvolume: v.Nontotalvolume,
|
|
|
+ Nontotalholdervolume: v.Nontotalholdervolume,
|
|
|
+ Nontotalturnover: v.Nontotalturnover,
|
|
|
+ Nontotallot: v.Nontotallot,
|
|
|
+ Publictradetype: v.Publictradetype,
|
|
|
+ Iep: utils.IntToFloat64(int(v.Iep), int(goods.DECIMALPLACE)),
|
|
|
+ Iev: utils.IntToFloat64(int(v.Iev), int(goods.DECIMALPLACE)),
|
|
|
+ Grepmarketprice: utils.IntToFloat64(int(v.Grepmarketprice), int(goods.DECIMALPLACE)),
|
|
|
+ Bid6: utils.IntToFloat64(int(v.Bid6), int(goods.DECIMALPLACE)),
|
|
|
+ Bid7: utils.IntToFloat64(int(v.Bid7), int(goods.DECIMALPLACE)),
|
|
|
+ Bid8: utils.IntToFloat64(int(v.Bid8), int(goods.DECIMALPLACE)),
|
|
|
+ Bid9: utils.IntToFloat64(int(v.Bid9), int(goods.DECIMALPLACE)),
|
|
|
+ Bid10: utils.IntToFloat64(int(v.Bid10), int(goods.DECIMALPLACE)),
|
|
|
+ Bidvolume6: v.Bidvolume6,
|
|
|
+ Bidvolume7: v.Bidvolume7,
|
|
|
+ Bidvolume8: v.Bidvolume8,
|
|
|
+ Bidvolume9: v.Bidvolume9,
|
|
|
+ Bidvolume10: v.Bidvolume10,
|
|
|
+ Ask6: utils.IntToFloat64(int(v.Ask6), int(goods.DECIMALPLACE)),
|
|
|
+ Ask7: utils.IntToFloat64(int(v.Ask7), int(goods.DECIMALPLACE)),
|
|
|
+ Ask8: utils.IntToFloat64(int(v.Ask8), int(goods.DECIMALPLACE)),
|
|
|
+ Ask9: utils.IntToFloat64(int(v.Ask9), int(goods.DECIMALPLACE)),
|
|
|
+ Ask10: utils.IntToFloat64(int(v.Ask10), int(goods.DECIMALPLACE)),
|
|
|
+ Askvolume6: v.Askvolume6,
|
|
|
+ Askvolume7: v.Askvolume7,
|
|
|
+ Askvolume8: v.Askvolume8,
|
|
|
+ Askvolume9: v.Askvolume9,
|
|
|
+ Askvolume10: v.Askvolume10,
|
|
|
+ Bidordervolume: v.Bidordervolume,
|
|
|
+ Bidordervolume2: v.Bidordervolume2,
|
|
|
+ Bidordervolume3: v.Bidordervolume3,
|
|
|
+ Bidordervolume4: v.Bidordervolume4,
|
|
|
+ Bidordervolume5: v.Bidordervolume5,
|
|
|
+ Bidordervolume6: v.Bidordervolume6,
|
|
|
+ Bidordervolume7: v.Bidordervolume7,
|
|
|
+ Bidordervolume8: v.Bidordervolume8,
|
|
|
+ Bidordervolume9: v.Bidordervolume9,
|
|
|
+ Bidordervolume10: v.Bidordervolume10,
|
|
|
+ Askordervolume: v.Askordervolume,
|
|
|
+ Askordervolume2: v.Askordervolume2,
|
|
|
+ Askordervolume3: v.Askordervolume3,
|
|
|
+ Askordervolume4: v.Askordervolume4,
|
|
|
+ Askordervolume5: v.Askordervolume5,
|
|
|
+ Askordervolume6: v.Askordervolume6,
|
|
|
+ Askordervolume7: v.Askordervolume7,
|
|
|
+ Askordervolume8: v.Askordervolume8,
|
|
|
+ Askordervolume9: v.Askordervolume9,
|
|
|
+ Askordervolume10: v.Askordervolume10,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询成功
|
|
|
+ // logger.GetLogger().Debugln("GetTouristQuoteDay successed, rows: %v", len(rsp))
|
|
|
+ appG.Response(http.StatusOK, e.SUCCESS, rsp)
|
|
|
+}
|