Преглед изворни кода

海商4个商品接口增加合约单位

zhou.xiaoning пре 5 година
родитељ
комит
6269a2da5f
5 измењених фајлова са 88 додато и 40 уклоњено
  1. 2 2
      controllers/hsby/hsby.go
  2. 18 2
      docs/docs.go
  3. 18 2
      docs/swagger.json
  4. 14 2
      docs/swagger.yaml
  5. 36 32
      models/hsby.go

+ 2 - 2
controllers/hsby/hsby.go

@@ -145,8 +145,8 @@ type QueryHsbyGoodsOrderDetailsReq struct {
 // @Security ApiKeyAuth
 // @Security ApiKeyAuth
 // @Param goodsID query int true "商品ID"
 // @Param goodsID query int true "商品ID"
 // @Param accountIDs query string true "摘牌方资金账户列表,格式:1,2,3。主要用于过滤自己的挂牌单"
 // @Param accountIDs query string true "摘牌方资金账户列表,格式:1,2,3。主要用于过滤自己的挂牌单"
-// @Param buyOrSell query int false "委托单方向。0:买 1:卖。不传则默认为买"
-// @Param price query number false " 参考价格。买方向委托单则价格小于等于(站在摘牌人的角度);卖方向委托单则价格大于等于"
+// @Param buyOrSell query int false "挂牌委托单方向(对手单方向),0:买 1:卖"
+// @Param price query number false " 参考价格。对手单买方向委托单则价格大于等于(站在摘牌人的角度,摘牌方面是卖,我的闲置下单);对手单卖方向委托单则价格小于等于(站在摘牌人的角度,摘牌方面是买,热门商品下单)"
 // @Param speed query int false "档位,不传则默认为3档"
 // @Param speed query int false "档位,不传则默认为3档"
 // @Success 200 {object} models.HsbyGoodsOrderDetail
 // @Success 200 {object} models.HsbyGoodsOrderDetail
 // @Failure 500 {object} app.Response
 // @Failure 500 {object} app.Response

+ 18 - 2
docs/docs.go

@@ -821,13 +821,13 @@ var doc = `{
                     },
                     },
                     {
                     {
                         "type": "integer",
                         "type": "integer",
-                        "description": "委托单方向。0:买 1:卖。不传则默认为买",
+                        "description": "挂牌委托单方向(对手单方向),0:买 1:卖",
                         "name": "buyOrSell",
                         "name": "buyOrSell",
                         "in": "query"
                         "in": "query"
                     },
                     },
                     {
                     {
                         "type": "number",
                         "type": "number",
-                        "description": " 参考价格。买方向委托单则价格小于等于(站在摘牌人的角度);卖方向委托单则价格大于等于",
+                        "description": " 参考价格。对手单买方向委托单则价格大于等于(站在摘牌人的角度,摘牌方面是卖,我的闲置下单);对手单卖方向委托单则价格小于等于(站在摘牌人的角度,摘牌方面是买,热门商品下单)",
                         "name": "price",
                         "name": "price",
                         "in": "query"
                         "in": "query"
                     },
                     },
@@ -4333,6 +4333,10 @@ var doc = `{
                 "trademode"
                 "trademode"
             ],
             ],
             "properties": {
             "properties": {
+                "agreeunit": {
+                    "description": "合约单位",
+                    "type": "number"
+                },
                 "currency": {
                 "currency": {
                     "description": "货币",
                     "description": "货币",
                     "type": "string"
                     "type": "string"
@@ -4618,6 +4622,10 @@ var doc = `{
                 "trademode"
                 "trademode"
             ],
             ],
             "properties": {
             "properties": {
+                "agreeunit": {
+                    "description": "合约单位",
+                    "type": "number"
+                },
                 "currency": {
                 "currency": {
                     "description": "货币",
                     "description": "货币",
                     "type": "string"
                     "type": "string"
@@ -4710,6 +4718,10 @@ var doc = `{
                 "trademode"
                 "trademode"
             ],
             ],
             "properties": {
             "properties": {
+                "agreeunit": {
+                    "description": "合约单位",
+                    "type": "number"
+                },
                 "currency": {
                 "currency": {
                     "description": "货币",
                     "description": "货币",
                     "type": "string"
                     "type": "string"
@@ -4923,6 +4935,10 @@ var doc = `{
                 "trademode"
                 "trademode"
             ],
             ],
             "properties": {
             "properties": {
+                "agreeunit": {
+                    "description": "合约单位",
+                    "type": "number"
+                },
                 "currency": {
                 "currency": {
                     "description": "货币",
                     "description": "货币",
                     "type": "string"
                     "type": "string"

+ 18 - 2
docs/swagger.json

@@ -805,13 +805,13 @@
                     },
                     },
                     {
                     {
                         "type": "integer",
                         "type": "integer",
-                        "description": "委托单方向。0:买 1:卖。不传则默认为买",
+                        "description": "挂牌委托单方向(对手单方向),0:买 1:卖",
                         "name": "buyOrSell",
                         "name": "buyOrSell",
                         "in": "query"
                         "in": "query"
                     },
                     },
                     {
                     {
                         "type": "number",
                         "type": "number",
-                        "description": " 参考价格。买方向委托单则价格小于等于(站在摘牌人的角度);卖方向委托单则价格大于等于",
+                        "description": " 参考价格。对手单买方向委托单则价格大于等于(站在摘牌人的角度,摘牌方面是卖,我的闲置下单);对手单卖方向委托单则价格小于等于(站在摘牌人的角度,摘牌方面是买,热门商品下单)",
                         "name": "price",
                         "name": "price",
                         "in": "query"
                         "in": "query"
                     },
                     },
@@ -4317,6 +4317,10 @@
                 "trademode"
                 "trademode"
             ],
             ],
             "properties": {
             "properties": {
+                "agreeunit": {
+                    "description": "合约单位",
+                    "type": "number"
+                },
                 "currency": {
                 "currency": {
                     "description": "货币",
                     "description": "货币",
                     "type": "string"
                     "type": "string"
@@ -4602,6 +4606,10 @@
                 "trademode"
                 "trademode"
             ],
             ],
             "properties": {
             "properties": {
+                "agreeunit": {
+                    "description": "合约单位",
+                    "type": "number"
+                },
                 "currency": {
                 "currency": {
                     "description": "货币",
                     "description": "货币",
                     "type": "string"
                     "type": "string"
@@ -4694,6 +4702,10 @@
                 "trademode"
                 "trademode"
             ],
             ],
             "properties": {
             "properties": {
+                "agreeunit": {
+                    "description": "合约单位",
+                    "type": "number"
+                },
                 "currency": {
                 "currency": {
                     "description": "货币",
                     "description": "货币",
                     "type": "string"
                     "type": "string"
@@ -4907,6 +4919,10 @@
                 "trademode"
                 "trademode"
             ],
             ],
             "properties": {
             "properties": {
+                "agreeunit": {
+                    "description": "合约单位",
+                    "type": "number"
+                },
                 "currency": {
                 "currency": {
                     "description": "货币",
                     "description": "货币",
                     "type": "string"
                     "type": "string"

+ 14 - 2
docs/swagger.yaml

@@ -1283,6 +1283,9 @@ definitions:
     type: object
     type: object
   models.HsbyListingGoodsDetail:
   models.HsbyListingGoodsDetail:
     properties:
     properties:
+      agreeunit:
+        description: 合约单位
+        type: number
       currency:
       currency:
         description: 货币
         description: 货币
         type: string
         type: string
@@ -1497,6 +1500,9 @@ definitions:
     type: object
     type: object
   models.HsbyPreGoods:
   models.HsbyPreGoods:
     properties:
     properties:
+      agreeunit:
+        description: 合约单位
+        type: number
       currency:
       currency:
         description: 货币
         description: 货币
         type: string
         type: string
@@ -1567,6 +1573,9 @@ definitions:
     type: object
     type: object
   models.HsbyPreGoodsDetail:
   models.HsbyPreGoodsDetail:
     properties:
     properties:
+      agreeunit:
+        description: 合约单位
+        type: number
       currency:
       currency:
         description: 货币
         description: 货币
         type: string
         type: string
@@ -1730,6 +1739,9 @@ definitions:
     type: object
     type: object
   models.HsbyTopGoods:
   models.HsbyTopGoods:
     properties:
     properties:
+      agreeunit:
+        description: 合约单位
+        type: number
       currency:
       currency:
         description: 货币
         description: 货币
         type: string
         type: string
@@ -4135,11 +4147,11 @@ paths:
         name: accountIDs
         name: accountIDs
         required: true
         required: true
         type: string
         type: string
-      - description: 委托单方向。0:买 1:卖。不传则默认为买
+      - description: 挂牌委托单方向(对手单方向),0:买 1:卖
         in: query
         in: query
         name: buyOrSell
         name: buyOrSell
         type: integer
         type: integer
-      - description: ' 参考价格。买方向委托单则价格小于等于(站在摘牌人的角度);卖方向委托单则价格大于等于'
+      - description: ' 参考价格。对手单买方向委托单则价格大于等于(站在摘牌人的角度,摘牌方面是卖,我的闲置下单);对手单卖方向委托单则价格小于等于(站在摘牌人的角度,摘牌方面是买,热门商品下单)'
         in: query
         in: query
         name: price
         name: price
         type: number
         type: number

+ 36 - 32
models/hsby.go

@@ -51,12 +51,13 @@ func (Hsbysupplierinfo) TableName() string {
 
 
 // HsbyTopGoods 热卖商品(二级市场挂牌点选)
 // HsbyTopGoods 热卖商品(二级市场挂牌点选)
 type HsbyTopGoods struct {
 type HsbyTopGoods struct {
-	Goodsid      int64  `json:"goodsid"  xorm:"'GOODSID'" binding:"required"`     // 商品ID(自增ID SEQ_GOODS)
-	Goodscode    string `json:"goodscode"  xorm:"'GOODSCODE'" binding:"required"` // 商品代码(内部)
-	Goodsname    string `json:"goodsname"  xorm:"'GOODSNAME'" binding:"required"` // 商品名称
-	Decimalplace int64  `json:"decimalplace"  xorm:"'DECIMALPLACE'"`              // 报价小数位
-	Marketid     int64  `json:"marketid"  xorm:"'MARKETID'" binding:"required"`   // 所属市场ID
-	Quoteminunit int64  `json:"quoteminunit"  xorm:"'QUOTEMINUNIT'"`              // 行情最小变动单位 [整数,报价小数位一起使用]
+	Goodsid      int64   `json:"goodsid"  xorm:"'GOODSID'" binding:"required"`     // 商品ID(自增ID SEQ_GOODS)
+	Goodscode    string  `json:"goodscode"  xorm:"'GOODSCODE'" binding:"required"` // 商品代码(内部)
+	Goodsname    string  `json:"goodsname"  xorm:"'GOODSNAME'" binding:"required"` // 商品名称
+	Decimalplace int64   `json:"decimalplace"  xorm:"'DECIMALPLACE'"`              // 报价小数位
+	Marketid     int64   `json:"marketid"  xorm:"'MARKETID'" binding:"required"`   // 所属市场ID
+	Quoteminunit int64   `json:"quoteminunit"  xorm:"'QUOTEMINUNIT'"`              // 行情最小变动单位 [整数,报价小数位一起使用]
+	Agreeunit    float64 `json:"agreeunit"  xorm:"'AGREEUNIT'"`                    // 合约单位
 
 
 	Hotindex  int32  `json:"hotindex"  xorm:"'HOTINDEX'"`   // 景点热度
 	Hotindex  int32  `json:"hotindex"  xorm:"'HOTINDEX'"`   // 景点热度
 	Videourls string `json:"videourls"  xorm:"'VIDEOURLS'"` // 介绍视频[多张用逗号分隔]
 	Videourls string `json:"videourls"  xorm:"'VIDEOURLS'"` // 介绍视频[多张用逗号分隔]
@@ -148,12 +149,13 @@ func GetHsbyTopGoodses(marketIDs string, descProvinceID, descCityID int) ([]Hsby
 
 
 // HsbyListingGoodsDetail 二级市场(挂牌点选)商品信息详情
 // HsbyListingGoodsDetail 二级市场(挂牌点选)商品信息详情
 type HsbyListingGoodsDetail struct {
 type HsbyListingGoodsDetail struct {
-	Goodsid      int64  `json:"goodsid"  xorm:"'GOODSID'" binding:"required"`     // 商品ID(自增ID SEQ_GOODS)
-	Goodscode    string `json:"goodscode"  xorm:"'GOODSCODE'" binding:"required"` // 商品代码(内部)
-	Goodsname    string `json:"goodsname"  xorm:"'GOODSNAME'" binding:"required"` // 商品名称
-	Decimalplace int64  `json:"decimalplace"  xorm:"'DECIMALPLACE'"`              // 报价小数位
-	Marketid     int64  `json:"marketid"  xorm:"'MARKETID'" binding:"required"`   // 所属市场ID
-	Quoteminunit int64  `json:"quoteminunit"  xorm:"'QUOTEMINUNIT'"`              // 行情最小变动单位 [整数,报价小数位一起使用]
+	Goodsid      int64   `json:"goodsid"  xorm:"'GOODSID'" binding:"required"`     // 商品ID(自增ID SEQ_GOODS)
+	Goodscode    string  `json:"goodscode"  xorm:"'GOODSCODE'" binding:"required"` // 商品代码(内部)
+	Goodsname    string  `json:"goodsname"  xorm:"'GOODSNAME'" binding:"required"` // 商品名称
+	Decimalplace int64   `json:"decimalplace"  xorm:"'DECIMALPLACE'"`              // 报价小数位
+	Marketid     int64   `json:"marketid"  xorm:"'MARKETID'" binding:"required"`   // 所属市场ID
+	Quoteminunit int64   `json:"quoteminunit"  xorm:"'QUOTEMINUNIT'"`              // 行情最小变动单位 [整数,报价小数位一起使用]
+	Agreeunit    float64 `json:"agreeunit"  xorm:"'AGREEUNIT'"`                    // 合约单位
 
 
 	Hotindex       int32  `json:"hotindex"  xorm:"'HOTINDEX'"`             // 景点热度
 	Hotindex       int32  `json:"hotindex"  xorm:"'HOTINDEX'"`             // 景点热度
 	Videourls      string `json:"videourls"  xorm:"'VIDEOURLS'"`           // 介绍视频[多张用逗号分隔]
 	Videourls      string `json:"videourls"  xorm:"'VIDEOURLS'"`           // 介绍视频[多张用逗号分隔]
@@ -188,7 +190,7 @@ func GetHsbyListingGoodsDetail(goodsID int) (*HsbyListingGoodsDetail, error) {
 	// 获取挂牌商品信息,以及扩展表信息
 	// 获取挂牌商品信息,以及扩展表信息
 	// FIXME: - 这里使用Get方法,会造成SQL语句的嵌套出错,后期再研究
 	// FIXME: - 这里使用Get方法,会造成SQL语句的嵌套出错,后期再研究
 	session := engine.Table("GOODS").
 	session := engine.Table("GOODS").
-		Select(`GOODS.GOODSID, GOODS.GOODSCODE, GOODS.GOODSNAME, GOODS.DECIMALPLACE, GOODS.MARKETID, GOODS.QUOTEMINUNIT, 
+		Select(`GOODS.GOODSID, GOODS.GOODSCODE, GOODS.GOODSNAME, GOODS.DECIMALPLACE, GOODS.MARKETID, GOODS.QUOTEMINUNIT, GOODS.AGREEUNIT, 
 				HSBY_GOODSEX.HOTINDEX, HSBY_GOODSEX.VIDEOURLS, HSBY_GOODSEX.PICURLS, HSBY_GOODSEX.DESCPROVINCEID, HSBY_GOODSEX.Desccityid, HSBY_GOODSEX.Goodsdesc,
 				HSBY_GOODSEX.HOTINDEX, HSBY_GOODSEX.VIDEOURLS, HSBY_GOODSEX.PICURLS, HSBY_GOODSEX.DESCPROVINCEID, HSBY_GOODSEX.Desccityid, HSBY_GOODSEX.Goodsdesc,
 				ENUMDICITEM.ENUMDICNAME CURRENCY, ENUMDICITEM.PARAM2 CURRENCYSIGN, 
 				ENUMDICITEM.ENUMDICNAME CURRENCY, ENUMDICITEM.PARAM2 CURRENCYSIGN, 
 				HSBY_SUPPLIERINFO.VENDORNAME, HSBY_SUPPLIERINFO.VENDORPHONE, HSBY_SUPPLIERINFO.VENDORATTR, 
 				HSBY_SUPPLIERINFO.VENDORNAME, HSBY_SUPPLIERINFO.VENDORPHONE, HSBY_SUPPLIERINFO.VENDORATTR, 
@@ -252,7 +254,7 @@ type HsbyGoodsOrderDetail struct {
 
 
 // GetHsbyGoodsOrderDetails 获取二级市场(挂牌点选)商品对应的挂牌委托单信息
 // GetHsbyGoodsOrderDetails 获取二级市场(挂牌点选)商品对应的挂牌委托单信息
 // 输入 goodsID int 商品ID
 // 输入 goodsID int 商品ID
-// 输入 buyOrSell int 委托单方向,0:买 1:卖
+// 输入 buyOrSell int 挂牌委托单方向(对手单方向),0:买 1:卖
 // 输入 price float64 参考价格。买方向委托单则价格小于等于(站在摘牌人的角度);卖方向委托单则价格大于等于
 // 输入 price float64 参考价格。买方向委托单则价格小于等于(站在摘牌人的角度);卖方向委托单则价格大于等于
 // 输出 []HsbyGoodsOrderDetail 商品对应的挂牌委托单信息
 // 输出 []HsbyGoodsOrderDetail 商品对应的挂牌委托单信息
 // 输出 error error
 // 输出 error error
@@ -272,11 +274,11 @@ func GetHsbyGoodsOrderDetails(goodsID, buyOrSell int, price float64, accountIDs
 		And(fmt.Sprintf("TRADE_ORDERDETAIL.ACCOUNTID not in (%s)", accountIDs))
 		And(fmt.Sprintf("TRADE_ORDERDETAIL.ACCOUNTID not in (%s)", accountIDs))
 	if price > 0 {
 	if price > 0 {
 		if buyOrSell == 0 {
 		if buyOrSell == 0 {
-			// 买方向委托单则价格小于等于(站在摘牌人的角度)
-			session = session.And("TRADE_ORDERDETAIL.ORDERPRICE <= ?", price)
-		} else {
-			// 卖方向委托单则价格大于等于
+			// 对手单买方向委托单则价格大于等于(站在摘牌人的角度,摘牌方面是卖,我的闲置下单)
 			session = session.And("TRADE_ORDERDETAIL.ORDERPRICE >= ?", price)
 			session = session.And("TRADE_ORDERDETAIL.ORDERPRICE >= ?", price)
+		} else {
+			// 对手单卖方向委托单则价格小于等于(站在摘牌人的角度,摘牌方面是买,热门商品下单)
+			session = session.And("TRADE_ORDERDETAIL.ORDERPRICE <= ?", price)
 		}
 		}
 	}
 	}
 	if err := session.Find(&hsbyGoodsOrderDetails); err != nil {
 	if err := session.Find(&hsbyGoodsOrderDetails); err != nil {
@@ -518,13 +520,14 @@ func GetHsbyMyGoods(accountIDs string) ([]HsbyMyGoods, error) {
 
 
 // HsbyPreGoods 新品上市商品(一级市场产能预售)
 // HsbyPreGoods 新品上市商品(一级市场产能预售)
 type HsbyPreGoods struct {
 type HsbyPreGoods struct {
-	Goodsid      int64  `json:"goodsid"  xorm:"'GOODSID'" binding:"required"`     // 商品ID(自增ID SEQ_GOODS)
-	Goodscode    string `json:"goodscode"  xorm:"'GOODSCODE'" binding:"required"` // 商品代码(内部)
-	Goodsname    string `json:"goodsname"  xorm:"'GOODSNAME'" binding:"required"` // 商品名称
-	Decimalplace int64  `json:"decimalplace"  xorm:"'DECIMALPLACE'"`              // 报价小数位
-	Marketid     int64  `json:"marketid"  xorm:"'MARKETID'" binding:"required"`   // 所属市场ID
-	Goodsstatus  int64  `json:"goodsstatus"  xorm:"'GOODSSTATUS'"`                // 商品状态- 2:未上市 3:上市
-	Quoteminunit int64  `json:"quoteminunit"  xorm:"'QUOTEMINUNIT'"`              // 行情最小变动单位 [整数,报价小数位一起使用]
+	Goodsid      int64   `json:"goodsid"  xorm:"'GOODSID'" binding:"required"`     // 商品ID(自增ID SEQ_GOODS)
+	Goodscode    string  `json:"goodscode"  xorm:"'GOODSCODE'" binding:"required"` // 商品代码(内部)
+	Goodsname    string  `json:"goodsname"  xorm:"'GOODSNAME'" binding:"required"` // 商品名称
+	Decimalplace int64   `json:"decimalplace"  xorm:"'DECIMALPLACE'"`              // 报价小数位
+	Marketid     int64   `json:"marketid"  xorm:"'MARKETID'" binding:"required"`   // 所属市场ID
+	Goodsstatus  int64   `json:"goodsstatus"  xorm:"'GOODSSTATUS'"`                // 商品状态- 2:未上市 3:上市
+	Quoteminunit int64   `json:"quoteminunit"  xorm:"'QUOTEMINUNIT'"`              // 行情最小变动单位 [整数,报价小数位一起使用]
+	Agreeunit    float64 `json:"agreeunit"  xorm:"'AGREEUNIT'"`                    // 合约单位
 
 
 	Relatedgoodsid int64     `json:"relatedgoodsid"  xorm:"'RELATEDGOODSID'"` // 关联交易合约ID
 	Relatedgoodsid int64     `json:"relatedgoodsid"  xorm:"'RELATEDGOODSID'"` // 关联交易合约ID
 	Presaleqty     int64     `json:"presaleqty"  xorm:"'PRESALEQTY'"`         // 预售数量
 	Presaleqty     int64     `json:"presaleqty"  xorm:"'PRESALEQTY'"`         // 预售数量
@@ -593,13 +596,14 @@ func GetHsbyPreGoodses(marketIDs string, descProvinceID, descCityID int) ([]Hsby
 
 
 // HsbyPreGoodsDetail 一级市场(产能预售)商品信息详情
 // HsbyPreGoodsDetail 一级市场(产能预售)商品信息详情
 type HsbyPreGoodsDetail struct {
 type HsbyPreGoodsDetail struct {
-	Goodsid      int64  `json:"goodsid"  xorm:"'GOODSID'" binding:"required"`     // 商品ID(自增ID SEQ_GOODS)
-	Goodscode    string `json:"goodscode"  xorm:"'GOODSCODE'" binding:"required"` // 商品代码(内部)
-	Goodsname    string `json:"goodsname"  xorm:"'GOODSNAME'" binding:"required"` // 商品名称
-	Decimalplace int64  `json:"decimalplace"  xorm:"'DECIMALPLACE'"`              // 报价小数位
-	Marketid     int64  `json:"marketid"  xorm:"'MARKETID'" binding:"required"`   // 所属市场ID
-	Goodsstatus  int64  `json:"goodsstatus"  xorm:"'GOODSSTATUS'"`                // 商品状态- 2:未上市 3:上市
-	Quoteminunit int64  `json:"quoteminunit"  xorm:"'QUOTEMINUNIT'"`              // 行情最小变动单位 [整数,报价小数位一起使用]
+	Goodsid      int64   `json:"goodsid"  xorm:"'GOODSID'" binding:"required"`     // 商品ID(自增ID SEQ_GOODS)
+	Goodscode    string  `json:"goodscode"  xorm:"'GOODSCODE'" binding:"required"` // 商品代码(内部)
+	Goodsname    string  `json:"goodsname"  xorm:"'GOODSNAME'" binding:"required"` // 商品名称
+	Decimalplace int64   `json:"decimalplace"  xorm:"'DECIMALPLACE'"`              // 报价小数位
+	Marketid     int64   `json:"marketid"  xorm:"'MARKETID'" binding:"required"`   // 所属市场ID
+	Goodsstatus  int64   `json:"goodsstatus"  xorm:"'GOODSSTATUS'"`                // 商品状态- 2:未上市 3:上市
+	Quoteminunit int64   `json:"quoteminunit"  xorm:"'QUOTEMINUNIT'"`              // 行情最小变动单位 [整数,报价小数位一起使用]
+	Agreeunit    float64 `json:"agreeunit"  xorm:"'AGREEUNIT'"`                    // 合约单位
 
 
 	Relatedgoodsid int64     `json:"relatedgoodsid"  xorm:"'RELATEDGOODSID'"` // 关联交易合约ID
 	Relatedgoodsid int64     `json:"relatedgoodsid"  xorm:"'RELATEDGOODSID'"` // 关联交易合约ID
 	Presaleqty     int64     `json:"presaleqty"  xorm:"'PRESALEQTY'"`         // 预售数量
 	Presaleqty     int64     `json:"presaleqty"  xorm:"'PRESALEQTY'"`         // 预售数量