|
|
@@ -299,8 +299,10 @@ func GetHsbyGoodsOrderDetails(goodsID, buyOrSell int, price float64, accountIDs
|
|
|
Join("LEFT", "USERINFO", "USERINFO.USERID = TAACCOUNT.RELATEDUSERID").
|
|
|
Where("(TRADE_ORDERDETAIL.LISTINGSELECTTYPE = 1 or TRADE_ORDERDETAIL.LISTINGSELECTTYPE = 3) and (TRADE_ORDERDETAIL.ORDERSTATUS = 3 or TRADE_ORDERDETAIL.ORDERSTATUS = 7)").
|
|
|
And("TRADE_ORDERDETAIL.GOODSID = ?", goodsID).
|
|
|
- And("TRADE_ORDERDETAIL.BUYORSELL = ?", buyOrSell).
|
|
|
- And(fmt.Sprintf("TRADE_ORDERDETAIL.ACCOUNTID not in (%s)", accountIDs))
|
|
|
+ And("TRADE_ORDERDETAIL.BUYORSELL = ?", buyOrSell)
|
|
|
+ if len(accountIDs) > 0 {
|
|
|
+ session = session.And(fmt.Sprintf("TRADE_ORDERDETAIL.ACCOUNTID not in (%s)", accountIDs))
|
|
|
+ }
|
|
|
if price > 0 {
|
|
|
if buyOrSell == 0 {
|
|
|
// 对手单买方向委托单则价格大于等于(站在摘牌人的角度,摘牌方面是卖,我的闲置下单)
|
|
|
@@ -710,18 +712,20 @@ func GetHsbyPreGoodsDetail(goodsID, accountID int) (*HsbyPreGoodsDetail, error)
|
|
|
preGoodsDetail.LotSize = 1
|
|
|
|
|
|
// 获取购买上限
|
|
|
- buyMaxQty, err := GetCPTradeBuyLimit(goodsID, accountID)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
+ if accountID != 0 {
|
|
|
+ buyMaxQty, err := GetCPTradeBuyLimit(goodsID, accountID)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ preGoodsDetail.Buymaxqty = buyMaxQty
|
|
|
}
|
|
|
- preGoodsDetail.Buymaxqty = buyMaxQty
|
|
|
|
|
|
return &preGoodsDetail, nil
|
|
|
}
|
|
|
|
|
|
-// HsbySellMyDetail "我的闲置"单据信息(已发布 - 二级市场卖挂,3:委托成功、7:部分成交; 已完成 - 二级市场成交单,包括历史数据)
|
|
|
+// HsbySellMyDetail "我的闲置"单据信息(发布中 - 二级市场卖挂,3:委托成功、7:部分成交; 已完成 - 二级市场成交单,包括历史数据)
|
|
|
type HsbySellMyDetail struct {
|
|
|
- Orderid string `json:"orderid" xorm:"'ORDERID'" binding:"required"` // 单号(已发布 - 委托单号;已完成 - 成交单号)
|
|
|
+ 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[报价币种]
|
|
|
@@ -744,12 +748,15 @@ type HsbySellMyDetail struct {
|
|
|
|
|
|
Vendorname string `json:"vendorname" xorm:"'VENDORNAME'"` // 供应商名称
|
|
|
|
|
|
- OrderType int32 `json:"ordertype" xorm:"'ORDERTYPE'"` // 单据类型:0 - 已发布, 1 - 已完成
|
|
|
+ OrderType int32 `json:"ordertype" xorm:"'ORDERTYPE'"` // 单据类型:0 - 发布中, 1 - 已完成
|
|
|
+
|
|
|
+ PayedCount int `json:"payedcount" xorm:"PAYEDCOUNT"` // 已付款数量
|
|
|
+ UnPayCount int `json:"unPayCount" xorm:"UNPAYCOUNT"` // 待付款数量
|
|
|
}
|
|
|
|
|
|
-// GetHsbySellMyOrderDetails 获取"我的闲置 - 已发布"单据信息
|
|
|
+// GetHsbySellMyOrderDetails 获取"我的闲置 - 发布中"单据信息
|
|
|
// 输入 accountIDs string 资金账户列表
|
|
|
-// 输出 []HsbySellMyDetail "我的闲置 - 已发布"单据信息
|
|
|
+// 输出 []HsbySellMyDetail "我的闲置 - 发布中"单据信息
|
|
|
// 输出 error error
|
|
|
func GetHsbySellMyOrderDetails(accountIDs string) ([]HsbySellMyDetail, error) {
|
|
|
// 获取市场信息
|
|
|
@@ -759,7 +766,7 @@ func GetHsbySellMyOrderDetails(accountIDs string) ([]HsbySellMyDetail, error) {
|
|
|
}
|
|
|
|
|
|
engine := db.GetEngine()
|
|
|
- marketIDs := "" // 我的闲置-已发布: 二级市场卖挂牌
|
|
|
+ marketIDs := "" // 我的闲置-发布中: 二级市场卖挂牌
|
|
|
// 默认取 TradeMode = 16
|
|
|
for _, v := range markets {
|
|
|
if v.Trademode == 16 {
|
|
|
@@ -772,7 +779,7 @@ func GetHsbySellMyOrderDetails(accountIDs string) ([]HsbySellMyDetail, error) {
|
|
|
}
|
|
|
|
|
|
orderDetails := make([]HsbySellMyDetail, 0)
|
|
|
- // “我的闲置 - 已发布”都是卖挂委托
|
|
|
+ // “我的闲置 - 发布中”都是卖挂委托
|
|
|
session := engine.Table("TRADE_ORDERDETAIL").
|
|
|
Select(`to_char(TRADE_ORDERDETAIL.ORDERID) ORDERID,
|
|
|
TRADE_ORDERDETAIL.MARKETID, TRADE_ORDERDETAIL.GOODSID, TRADE_ORDERDETAIL.ACCOUNTID, TRADE_ORDERDETAIL.BUYORSELL,
|
|
|
@@ -783,12 +790,15 @@ func GetHsbySellMyOrderDetails(accountIDs string) ([]HsbySellMyDetail, error) {
|
|
|
MARKET.TRADEMODE,
|
|
|
ENUMDICITEM.PARAM2 CURRENCYSIGN,
|
|
|
HSBY_SUPPLIERINFO.VENDORNAME,
|
|
|
- 0 ORDERTYPE`).
|
|
|
+ 0 ORDERTYPE,
|
|
|
+ (select count(TR1.*) from TRADE_PAYORDER TR1 where TR1.PAYFLAG = 2 and TR1.TRADEID = TD.TRADEID) PAYEDCOUNT,
|
|
|
+ (select count(TR2.*) from TRADE_PAYORDER TR2 where TR2.PAYFLAG = 1 and TR2.TRADEID = TD.TRADEID) UNPAYCOUNT`).
|
|
|
Join("LEFT", "GOODS", "GOODS.GOODSID = TRADE_ORDERDETAIL.GOODSID").
|
|
|
Join("LEFT", "HSBY_GOODSEX", "HSBY_GOODSEX.GOODSID = GOODS.GOODSID").
|
|
|
Join("LEFT", "ENUMDICITEM", "GOODS.CURRENCYID = ENUMDICITEM.ENUMITEMNAME and ENUMDICITEM.ENUMDICCODE = 'currency'").
|
|
|
Join("LEFT", "MARKET", "MARKET.MARKETID = TRADE_ORDERDETAIL.MARKETID").
|
|
|
Join("LEFT", "HSBY_SUPPLIERINFO", "HSBY_SUPPLIERINFO.VENDORID = HSBY_GOODSEX.VENDORID").
|
|
|
+ Join("LEFT", "TRADE_TRADEDETAIL TD", "TD.ORDERID = TRADE_ORDERDETAIL.ORDERID").
|
|
|
Where(fmt.Sprintf(`TRADE_ORDERDETAIL.BUYORSELL = 1 and TRADE_ORDERDETAIL.LISTINGSELECTTYPE = 1 and (TRADE_ORDERDETAIL.ORDERSTATUS = 3 or TRADE_ORDERDETAIL.ORDERSTATUS = 7)
|
|
|
and TRADE_ORDERDETAIL.ACCOUNTID in (%s)`, accountIDs)).
|
|
|
And(fmt.Sprintf("TRADE_ORDERDETAIL.MARKETID in (%s)", marketIDs))
|
|
|
@@ -811,7 +821,7 @@ func GetHsbySellMyTradeDetails(accountIDs string) ([]HsbySellMyDetail, error) {
|
|
|
}
|
|
|
|
|
|
engine := db.GetEngine()
|
|
|
- marketIDs := "" // 我的闲置-已发布: 二级市场卖方向成交单(包括历史成交单)
|
|
|
+ marketIDs := "" // 我的闲置-发布中: 二级市场卖方向成交单(包括历史成交单)
|
|
|
// 默认取 TradeMode = 16
|
|
|
for _, v := range markets {
|
|
|
if v.Trademode == 16 {
|
|
|
@@ -1145,7 +1155,7 @@ type HsbyBuyMyPayOrder struct {
|
|
|
}
|
|
|
|
|
|
// GetHsbyBuyMyPayOrders 获取待付款信息
|
|
|
-func GetHsbyBuyMyPayOrders(accountIDs string, sellOrderID, sellAccountID int) ([]HsbyBuyMyPayOrder, error) {
|
|
|
+func GetHsbyBuyMyPayOrders(accountIDs, payFlag string, sellOrderID, sellAccountID int) ([]HsbyBuyMyPayOrder, error) {
|
|
|
// 获取市场信息
|
|
|
markets, err := GetMarkets()
|
|
|
if err != nil {
|
|
|
@@ -1184,7 +1194,7 @@ func GetHsbyBuyMyPayOrders(accountIDs string, sellOrderID, sellAccountID int) ([
|
|
|
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").
|
|
|
+ Join("INNER", "TRADE_PAYORDER TP", fmt.Sprintf("TP.TRADEID = TRADE_TRADEDETAIL.TRADEID and TP.PAYFLAG in (%s)", payFlag)).
|
|
|
Join("LEFT", "TAACCOUNT TA", "TA.ACCOUNTID = TP.BUYACCOUNTID").
|
|
|
Join("LEFT", "USERACCOUNT U", "U.USERID = TA.RELATEDUSERID").
|
|
|
Where(`TRADE_TRADEDETAIL.BUYORSELL = 0`).
|
|
|
@@ -1204,3 +1214,22 @@ func GetHsbyBuyMyPayOrders(accountIDs string, sellOrderID, sellAccountID int) ([
|
|
|
|
|
|
return orders, nil
|
|
|
}
|
|
|
+
|
|
|
+// HsbyMarketInfo 海商报业相关市场信息
|
|
|
+type HsbyMarketInfo struct {
|
|
|
+ Marketid int32 `json:"marketid" xorm:"'MARKETID'" binding:"required"` // 市场ID正常5位,前三位固定:两位表示交易模式, 一位表示交易属性(1:收益权,2:所有权) 其它特殊市场:0-系统 1-交割服务 2-账户服务3-履约服务 4-仓单服务 5-积分服务 6-银行服务
|
|
|
+ Marketname string `json:"marketname" xorm:"'MARKETNAME'"` // 市场名称
|
|
|
+ Trademode int32 `json:"trademode" xorm:"'TRADEMODE'" binding:"required"` // 交易模式 - 10:做市 13:竞价 15:通道交易 16:挂牌点选 17:仓单贸易 18:期权 19:竞拍-降价式 20:竞拍-竞价式 21:竞拍-大宗式 22:受托竞价
|
|
|
+}
|
|
|
+
|
|
|
+// GetHsbyMarketInfos 获取海商报业相关市场信息
|
|
|
+func GetHsbyMarketInfos() ([]HsbyMarketInfo, error) {
|
|
|
+ engine := db.GetEngine()
|
|
|
+
|
|
|
+ markets := make([]HsbyMarketInfo, 0)
|
|
|
+ if err := engine.Table("MARKET").Where("TRADEMODE in (71,16,70)").Find(&markets); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ return markets, nil
|
|
|
+}
|