|
|
@@ -1109,16 +1109,82 @@ func GetHsbyBuyMyTradeDetails(accountIDs string) ([]HsbyBuyMyTradeDetail, error)
|
|
|
return orders, nil
|
|
|
}
|
|
|
|
|
|
-// GetTradePayOrders 获取待付款信息
|
|
|
-func GetTradePayOrders(accountIDs string, buyOrderID int) ([]Tradepayorder, error) {
|
|
|
- engine := db.GetEngine()
|
|
|
+// HsbyBuyMyPayOrder "我的订单 - 待付款"单据信息(一二级市场成交单和待付款信息)
|
|
|
+type HsbyBuyMyPayOrder struct {
|
|
|
+ Orderid string `json:"orderid" xorm:"'ORDERID'" binding:"required"` // 单号(成交单号)
|
|
|
+ Marketid int32 `json:"marketid" xorm:"'MARKETID'" binding:"required"` // 市场ID
|
|
|
+ Goodsid int32 `json:"goodsid" xorm:"'GOODSID'" binding:"required"` // 商品ID
|
|
|
+ Accountid int64 `json:"accountid" xorm:"'ACCOUNTID'" binding:"required"` // 账户ID[报价币种]
|
|
|
+ Buyorsell int32 `json:"buyorsell" xorm:"'BUYORSELL'" binding:"required"` // 买卖 - 0:买 1:卖
|
|
|
+
|
|
|
+ Goodscode string `json:"goodscode" xorm:"'GOODSCODE'" binding:"required"` // 商品代码(内部)
|
|
|
+ Goodsname string `json:"goodsname" xorm:"'GOODSNAME'" binding:"required"` // 商品名称
|
|
|
+ Decimalplace int64 `json:"decimalplace" xorm:"'DECIMALPLACE'"` // 报价小数位
|
|
|
+ Agreeunit float64 `json:"agreeunit" xorm:"'AGREEUNIT'"` // 合约单位
|
|
|
+
|
|
|
+ Picurls1 string `json:"picurls1" xorm:"'PICURLS1'"` // 预售商品介绍图片[多张用逗号分隔]
|
|
|
+ Picurls2 string `json:"picurls2" xorm:"'PICURLS2'"` // 挂牌商品介绍图片[多张用逗号分隔]
|
|
|
+
|
|
|
+ Trademode uint32 `json:"trademode" xorm:"'TRADEMODE'" binding:"required"` // 交易模式 - 10:做市 13:竞价 15:通道交易 16:挂牌点选 17:仓单贸易 18:期权 19:竞拍-降价式 20:竞拍-竞价式 21:竞拍-大宗式 22:受托竞价
|
|
|
+
|
|
|
+ Currencysign string `json:"currencysign" xorm:"'CURRENCYSIGN'"` // 货币符号
|
|
|
|
|
|
- orders := make([]Tradepayorder, 0)
|
|
|
- session := engine.Where(fmt.Sprintf("PAYFLAG = 1 and BUYACCOUNTID in (%s)", accountIDs))
|
|
|
- if buyOrderID != 0 {
|
|
|
- session = session.And("BUYORDERID = ?", buyOrderID)
|
|
|
+ Vendorname1 string `json:"vendorname1" xorm:"'VENDORNAME1'"` // 预售商品供应商名称
|
|
|
+ Vendorname2 string `json:"vendorname2" xorm:"'VENDORNAME2'"` // 挂牌商品供应商名称
|
|
|
+
|
|
|
+ Tradeamount float64 `json:"tradeamount" xorm:"'TRADEAMOUNT'"` // 成交金额
|
|
|
+ Tradecharge float64 `json:"tradecharge" xorm:"'TRADECHARGE'"` // 成交手续费(买方)
|
|
|
+ Payflag int32 `json:"payflag" xorm:"'PAYFLAG'"` // 付款标识 - 1:未支付 2:已支付 3:已过期 4:已撤销 5:结算过期
|
|
|
+ Createtime time.Time `json:"createtime" xorm:"'CREATETIME'"` // 创建时间
|
|
|
+ Paylimitedtime time.Time `json:"paylimitedtime" xorm:"'PAYLIMITEDTIME'"` // 支付期限
|
|
|
+ Offamount float64 `json:"offamount" xorm:"'OFFAMOUNT'"` // 优惠金额
|
|
|
+ Tradeprice float64 `json:"tradeprice" xorm:"'TRADEPRICE'"` // 成交价格
|
|
|
+ Tradeqty int64 `json:"tradeqty" xorm:"'TRADEQTY'"` // 成交数量
|
|
|
+}
|
|
|
+
|
|
|
+// GetHsbyBuyMyPayOrders 获取待付款信息
|
|
|
+func GetHsbyBuyMyPayOrders(accountIDs string) ([]HsbyBuyMyPayOrder, error) {
|
|
|
+ // 获取市场信息
|
|
|
+ markets, err := GetMarkets()
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ engine := db.GetEngine()
|
|
|
+ marketIDs := "" // 我的订单包括一二级市场卖方向成交单
|
|
|
+ // 默认取 TradeMode = 16
|
|
|
+ for _, v := range markets {
|
|
|
+ if v.Trademode == 16 || v.Trademode == 71 {
|
|
|
+ if len(marketIDs) == 0 {
|
|
|
+ marketIDs = strconv.Itoa(int(v.Marketid))
|
|
|
+ } else {
|
|
|
+ marketIDs += "," + strconv.Itoa(int(v.Marketid))
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- if err := session.Find(&orders); err != nil {
|
|
|
+
|
|
|
+ orders := make([]HsbyBuyMyPayOrder, 0)
|
|
|
+ if err := engine.Table("TRADE_TRADEDETAIL").
|
|
|
+ Select(`to_char(TRADE_TRADEDETAIL.TRADEID) ORDERID,
|
|
|
+ TRADE_TRADEDETAIL.MARKETID, TRADE_TRADEDETAIL.GOODSID, TRADE_TRADEDETAIL.ACCOUNTID, TRADE_TRADEDETAIL.BUYORSELL,
|
|
|
+ GOODS.GOODSCODE, GOODS.GOODSNAME, GOODS.DECIMALPLACE, GOODS.AGREEUNIT,
|
|
|
+ HG1.PICURLS PICURLS1, HG2.PICURLS PICURLS2,
|
|
|
+ MARKET.TRADEMODE,
|
|
|
+ ENUMDICITEM.PARAM2 CURRENCYSIGN,
|
|
|
+ HS1.VENDORNAME VENDORNAME1, HS2.VENDORNAME VENDORNAME2,
|
|
|
+ TP.TRADEAMOUNT, TP.TRADECHARGE, TP.PAYFLAG, TP.CREATETIME, TP.PAYLIMITEDTIME, TP.OFFAMOUNT, TP.TRADEPRICE, TP.TRADEQTY`).
|
|
|
+ Join("LEFT", "GOODS", "GOODS.GOODSID = TRADE_TRADEDETAIL.GOODSID").
|
|
|
+ Join("LEFT", "CPTRADE_PRESALEGOODSEX", "CPTRADE_PRESALEGOODSEX.GOODSID = TRADE_TRADEDETAIL.GOODSID").
|
|
|
+ Join("LEFT", "HSBY_GOODSEX HG1", "HG1.GOODSID = CPTRADE_PRESALEGOODSEX.RELATEDGOODSID").
|
|
|
+ Join("LEFT", "HSBY_GOODSEX HG2", "HG2.GOODSID = GOODS.GOODSID").
|
|
|
+ Join("LEFT", "ENUMDICITEM", "GOODS.CURRENCYID = ENUMDICITEM.ENUMITEMNAME and ENUMDICITEM.ENUMDICCODE = 'currency'").
|
|
|
+ Join("LEFT", "MARKET", "MARKET.MARKETID = TRADE_TRADEDETAIL.MARKETID").
|
|
|
+ Join("LEFT", "HSBY_SUPPLIERINFO HS1", "HS1.VENDORID = HG1.VENDORID").
|
|
|
+ Join("LEFT", "HSBY_SUPPLIERINFO HS2", "HS2.VENDORID = HG2.VENDORID").
|
|
|
+ Join("INNER", "TRADE_PAYORDER TP", "TP.TRADEID = TRADE_TRADEDETAIL.TRADEID and TP.PAYFLAG = 1").
|
|
|
+ Where(fmt.Sprintf(`TRADE_TRADEDETAIL.BUYORSELL = 0
|
|
|
+ and TRADE_TRADEDETAIL.ACCOUNTID in (%s)`, accountIDs)).
|
|
|
+ And(fmt.Sprintf("TRADE_TRADEDETAIL.MARKETID in (%s)", marketIDs)).Find(&orders); err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
|