|
|
@@ -65,6 +65,8 @@ type HsbyTopGoods struct {
|
|
|
Currency string `json:"currency" xorm:"'CURRENCY'"` // 货币
|
|
|
Currencysign string `json:"currencysign" xorm:"'CURRENCYSIGN'"` // 货币符号
|
|
|
|
|
|
+ Trademode int32 `json:"trademode" xorm:"'TRADEMODE'" binding:"required"` // 交易模式 - 10:做市 13:竞价 15:通道交易 16:挂牌点选 17:仓单贸易 18:期权 19:竞拍-降价式 20:竞拍-竞价式 21:竞拍-大宗式 22:受托竞价
|
|
|
+
|
|
|
Last float64 `json:"last" xorm:"-"` // 现价
|
|
|
LotSize float64 `json:"lotsize" xorm:"-"` // 最小变动单位
|
|
|
}
|
|
|
@@ -85,9 +87,11 @@ func GetHsbyTopGoodses(marketIDs string, descProvinceID, descCityID int) ([]Hsby
|
|
|
session := engine.Table("GOODS").
|
|
|
Select(`GOODS.*,
|
|
|
HSBY_GOODSEX.HOTINDEX, HSBY_GOODSEX.VIDEOURLS, HSBY_GOODSEX.PICURLS,
|
|
|
- ENUMDICITEM.ENUMDICNAME CURRENCY, ENUMDICITEM.PARAM2 CURRENCYSIGN`).
|
|
|
+ ENUMDICITEM.ENUMDICNAME CURRENCY, ENUMDICITEM.PARAM2 CURRENCYSIGN,
|
|
|
+ MARKET.TRADEMODE`).
|
|
|
Join("LEFT", "HSBY_GOODSEX", "HSBY_GOODSEX.GOODSID = GOODS.GOODSID").
|
|
|
Join("LEFT", "ENUMDICITEM", "ENUMDICITEM.ENUMITEMNAME = GOODS.CURRENCYID and ENUMDICITEM.ENUMDICCODE = 'currency'").
|
|
|
+ Join("LEFT", "MARKET", "MARKET.MARKETID = GOODS.MARKETID").
|
|
|
Where(fmt.Sprintf("GOODS.GOODSSTATUS = 3 and GOODS.MARKETID in (%s)", marketIDs)) // 二级市场只获取 3:上市 状态的商品
|
|
|
if descProvinceID > 0 {
|
|
|
session = session.And("HSBY_GOODSEX.DESCPROVINCEID = ?", descProvinceID)
|
|
|
@@ -161,6 +165,8 @@ type HsbyListingGoodsDetail struct {
|
|
|
Vendorphone string `json:"vendorphone" xorm:"'VENDORPHONE'"` // 供应商客服电话
|
|
|
Vendorattr string `json:"vendorattr" xorm:"'VENDORATTR'"` // 供应商附件(多张,逗号分隔)
|
|
|
|
|
|
+ Trademode int32 `json:"trademode" xorm:"'TRADEMODE'" binding:"required"` // 交易模式 - 10:做市 13:竞价 15:通道交易 16:挂牌点选 17:仓单贸易 18:期权 19:竞拍-降价式 20:竞拍-竞价式 21:竞拍-大宗式 22:受托竞价
|
|
|
+
|
|
|
Last float64 `json:"last" xorm:"-"` // 现价
|
|
|
Limitup float64 `json:"limitup" xorm:"-"` // 涨停价
|
|
|
Limitdown float64 `json:"limitdown" xorm:"-"` // 跌停价
|
|
|
@@ -181,10 +187,12 @@ func GetHsbyListingGoodsDetail(goodsID int) (*HsbyListingGoodsDetail, error) {
|
|
|
Select(`GOODS.GOODSID, GOODS.GOODSCODE, GOODS.GOODSNAME, GOODS.DECIMALPLACE, GOODS.MARKETID, GOODS.QUOTEMINUNIT,
|
|
|
HSBY_GOODSEX.HOTINDEX, HSBY_GOODSEX.VIDEOURLS, HSBY_GOODSEX.PICURLS, HSBY_GOODSEX.DESCPROVINCEID, HSBY_GOODSEX.Desccityid, HSBY_GOODSEX.Goodsdesc,
|
|
|
ENUMDICITEM.ENUMDICNAME CURRENCY, ENUMDICITEM.PARAM2 CURRENCYSIGN,
|
|
|
- HSBY_SUPPLIERINFO.VENDORNAME, HSBY_SUPPLIERINFO.VENDORPHONE, HSBY_SUPPLIERINFO.VENDORATTR`).
|
|
|
+ HSBY_SUPPLIERINFO.VENDORNAME, HSBY_SUPPLIERINFO.VENDORPHONE, HSBY_SUPPLIERINFO.VENDORATTR,
|
|
|
+ MARKET.TRADEMODE`).
|
|
|
Join("LEFT", "HSBY_GOODSEX", "HSBY_GOODSEX.GOODSID = GOODS.GOODSID").
|
|
|
Join("LEFT", "ENUMDICITEM", "ENUMDICITEM.ENUMITEMNAME = GOODS.CURRENCYID and ENUMDICITEM.ENUMDICCODE = 'currency'").
|
|
|
Join("LEFT", "HSBY_SUPPLIERINFO", "HSBY_SUPPLIERINFO.VENDORID = HSBY_GOODSEX.VENDORID").
|
|
|
+ Join("LEFT", "MARKET", "MARKET.MARKETID = GOODS.MARKETID").
|
|
|
Where("GOODS.GOODSID = ?", goodsID)
|
|
|
if err := session.Find(&details); err != nil {
|
|
|
return nil, err
|
|
|
@@ -490,6 +498,8 @@ type HsbyPreGoods struct {
|
|
|
Starttime time.Time `json:"starttime" xorm:"'STARTTIME'"` // 预售开始时间
|
|
|
Endtime time.Time `json:"endtime" xorm:"'ENDTIME'"` // 预售结束时间
|
|
|
Refprice float64 `json:"refprice" xorm:"'REFPRICE'"` // 参考价格[一口价]
|
|
|
+ Presaledqty int64 `json:"presaledqty" xorm:"'PRESALEDQTY'"` // 已预售量(预售结束时更新)
|
|
|
+ EnableQty int64 `json:"enableqty" xorm:"ENABLEQTY"` // 剩余数量
|
|
|
|
|
|
Currency string `json:"currency" xorm:"'CURRENCY'"` // 货币
|
|
|
Currencysign string `json:"currencysign" xorm:"'CURRENCYSIGN'"` // 货币符号
|
|
|
@@ -497,6 +507,8 @@ type HsbyPreGoods struct {
|
|
|
Videourls string `json:"videourls" xorm:"'VIDEOURLS'"` // 介绍视频[多张用逗号分隔]
|
|
|
Picurls string `json:"picurls" xorm:"'PICURLS'"` // 介绍图片[多张用逗号分隔]
|
|
|
|
|
|
+ Trademode int32 `json:"trademode" xorm:"'TRADEMODE'" binding:"required"` // 交易模式 - 10:做市 13:竞价 15:通道交易 16:挂牌点选 17:仓单贸易 18:期权 19:竞拍-降价式 20:竞拍-竞价式 21:竞拍-大宗式 22:受托竞价
|
|
|
+
|
|
|
LotSize float64 `json:"lotsize" xorm:"-"` // 最小变动单位
|
|
|
}
|
|
|
|
|
|
@@ -515,11 +527,14 @@ func GetHsbyPreGoodses(marketIDs string, descProvinceID, descCityID int) ([]Hsby
|
|
|
Select(`GOODS.*,
|
|
|
CPTRADE_PRESALEGOODSEX.RELATEDGOODSID, CPTRADE_PRESALEGOODSEX.PRESALEQTY,
|
|
|
CPTRADE_PRESALEGOODSEX.STARTTIME, CPTRADE_PRESALEGOODSEX.ENDTIME, CPTRADE_PRESALEGOODSEX.REFPRICE,
|
|
|
+ CPTRADE_PRESALEGOODSEX.PRESALEDQTY, (CPTRADE_PRESALEGOODSEX.PRESALEQTY - CPTRADE_PRESALEGOODSEX.PRESALEDQTY) ENABLEQTY,
|
|
|
ENUMDICITEM.ENUMDICNAME CURRENCY, ENUMDICITEM.PARAM2 CURRENCYSIGN,
|
|
|
- HSBY_GOODSEX.VIDEOURLS, HSBY_GOODSEX.PICURLS`).
|
|
|
+ HSBY_GOODSEX.VIDEOURLS, HSBY_GOODSEX.PICURLS,
|
|
|
+ MARKET.TRADEMODE`).
|
|
|
Join("INNER", "CPTRADE_PRESALEGOODSEX", "CPTRADE_PRESALEGOODSEX.GOODSID = GOODS.GOODSID").
|
|
|
Join("LEFT", "ENUMDICITEM", "ENUMDICITEM.ENUMITEMNAME = GOODS.CURRENCYID and ENUMDICITEM.ENUMDICCODE = 'currency'").
|
|
|
Join("LEFT", "HSBY_GOODSEX", "HSBY_GOODSEX.GOODSID = CPTRADE_PRESALEGOODSEX.RELATEDGOODSID").
|
|
|
+ Join("LEFT", "MARKET", "MARKET.MARKETID = GOODS.MARKETID").
|
|
|
Where(fmt.Sprintf("GOODS.GOODSSTATUS in (2,3) and GOODS.MARKETID in (%s)", marketIDs)) // 一级市场获取 2:未上市 3:上市 状态的商品
|
|
|
if descProvinceID > 0 {
|
|
|
session = session.And("HSBY_GOODSEX.DESCPROVINCEID = ?", descProvinceID)
|
|
|
@@ -558,6 +573,8 @@ type HsbyPreGoodsDetail struct {
|
|
|
Starttime time.Time `json:"starttime" xorm:"'STARTTIME'"` // 预售开始时间
|
|
|
Endtime time.Time `json:"endtime" xorm:"'ENDTIME'"` // 预售结束时间
|
|
|
Refprice float64 `json:"refprice" xorm:"'REFPRICE'"` // 参考价格[一口价]
|
|
|
+ Presaledqty int64 `json:"presaledqty" xorm:"'PRESALEDQTY'"` // 已预售量(预售结束时更新)
|
|
|
+ EnableQty int64 `json:"enableqty" xorm:"ENABLEQTY"` // 剩余数量
|
|
|
|
|
|
Videourls string `json:"videourls" xorm:"'VIDEOURLS'"` // 介绍视频[多张用逗号分隔]
|
|
|
Picurls string `json:"picurls" xorm:"'PICURLS'"` // 介绍图片[多张用逗号分隔]
|
|
|
@@ -573,6 +590,8 @@ type HsbyPreGoodsDetail struct {
|
|
|
Vendorphone string `json:"vendorphone" xorm:"'VENDORPHONE'"` // 供应商客服电话
|
|
|
Vendorattr string `json:"vendorattr" xorm:"'VENDORATTR'"` // 供应商附件(多张,逗号分隔)
|
|
|
|
|
|
+ Trademode int32 `json:"trademode" xorm:"'TRADEMODE'" binding:"required"` // 交易模式 - 10:做市 13:竞价 15:通道交易 16:挂牌点选 17:仓单贸易 18:期权 19:竞拍-降价式 20:竞拍-竞价式 21:竞拍-大宗式 22:受托竞价
|
|
|
+
|
|
|
LotSize float64 `json:"lotsize" xorm:"-"` // 最小变动单位
|
|
|
}
|
|
|
|
|
|
@@ -590,15 +609,18 @@ func GetHsbyPreGoodsDetail(goodsID int) (*HsbyPreGoodsDetail, error) {
|
|
|
Select(`GOODS.*,
|
|
|
CPTRADE_PRESALEGOODSEX.RELATEDGOODSID, CPTRADE_PRESALEGOODSEX.PRESALEQTY,
|
|
|
CPTRADE_PRESALEGOODSEX.STARTTIME, CPTRADE_PRESALEGOODSEX.ENDTIME, CPTRADE_PRESALEGOODSEX.REFPRICE,
|
|
|
+ CPTRADE_PRESALEGOODSEX.PRESALEDQTY, (CPTRADE_PRESALEGOODSEX.PRESALEQTY - CPTRADE_PRESALEGOODSEX.PRESALEDQTY) ENABLEQTY,
|
|
|
HSBY_GOODSEX.VIDEOURLS, HSBY_GOODSEX.PICURLS, HSBY_GOODSEX.DESCPROVINCEID, HSBY_GOODSEX.Desccityid, HSBY_GOODSEX.Goodsdesc,
|
|
|
ENUMDICITEM.ENUMDICNAME CURRENCY, ENUMDICITEM.PARAM2 CURRENCYSIGN,
|
|
|
E1.ENUMDICNAME GOODUNIT,
|
|
|
- HSBY_SUPPLIERINFO.VENDORNAME, HSBY_SUPPLIERINFO.VENDORPHONE, HSBY_SUPPLIERINFO.VENDORATTR`).
|
|
|
+ HSBY_SUPPLIERINFO.VENDORNAME, HSBY_SUPPLIERINFO.VENDORPHONE, HSBY_SUPPLIERINFO.VENDORATTR,
|
|
|
+ MARKET.TRADEMODE`).
|
|
|
Join("INNER", "CPTRADE_PRESALEGOODSEX", "CPTRADE_PRESALEGOODSEX.GOODSID = GOODS.GOODSID").
|
|
|
Join("LEFT", "HSBY_GOODSEX", "HSBY_GOODSEX.GOODSID = CPTRADE_PRESALEGOODSEX.RELATEDGOODSID").
|
|
|
Join("LEFT", "ENUMDICITEM", "ENUMDICITEM.ENUMITEMNAME = GOODS.CURRENCYID and ENUMDICITEM.ENUMDICCODE = 'currency'").
|
|
|
Join("LEFT", "ENUMDICITEM E1", "E1.ENUMITEMNAME = GOODS.GOODUNITID and E1.ENUMDICCODE = 'goodsunit'").
|
|
|
Join("LEFT", "HSBY_SUPPLIERINFO", "HSBY_SUPPLIERINFO.VENDORID = HSBY_GOODSEX.VENDORID").
|
|
|
+ Join("LEFT", "MARKET", "MARKET.MARKETID = GOODS.MARKETID").
|
|
|
Where("GOODS.GOODSID = ?", goodsID)
|
|
|
if err := session.Find(&details); err != nil {
|
|
|
return nil, err
|