|
|
@@ -224,14 +224,16 @@ func (r *WrOrderQuote) buildSql() string {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// GetDataEx 获取买卖大厅行情
|
|
|
-func (r *WrOrderQuote) GetDataEx() (interface{}, error) {
|
|
|
+// GetDataByPage 获取买卖大厅行情
|
|
|
+func (r *WrOrderQuote) GetDataByPage() (interface{}, error, int, int, int) {
|
|
|
sData := make([]WrOrderQuote, 0)
|
|
|
err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
+ total := 0
|
|
|
for i := range sData {
|
|
|
sData[i].calc()
|
|
|
+ total = sData[i].Total
|
|
|
}
|
|
|
- return sData, err
|
|
|
+ return sData, err, r.Page, r.PageSize, total
|
|
|
}
|
|
|
|
|
|
// WrOrderQuoteDetail 行情大厅明细(买卖大厅)
|
|
|
@@ -300,14 +302,16 @@ func (r *WrOrderQuoteDetail) buildSql() string {
|
|
|
return sqlId.String()
|
|
|
}
|
|
|
|
|
|
-// GetDataEx 获取行情大厅明细(买卖大厅)
|
|
|
-func (r *WrOrderQuoteDetail) GetDataEx() (interface{}, error) {
|
|
|
+// GetDataByPage 获取行情大厅明细(买卖大厅)
|
|
|
+func (r *WrOrderQuoteDetail) GetDataByPage() (interface{}, error, int, int, int) {
|
|
|
sData := make([]WrOrderQuoteDetail, 0)
|
|
|
err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
+ total := 0
|
|
|
for i := range sData {
|
|
|
sData[i].calc()
|
|
|
+ total = sData[i].Total
|
|
|
}
|
|
|
- return sData, err
|
|
|
+ return sData, err, r.Page, r.PageSize, total
|
|
|
}
|
|
|
|
|
|
// Wr2FactorType 仓单要素类型
|
|
|
@@ -380,6 +384,8 @@ func (r *WrPosition) buildSql() string {
|
|
|
// 现货明细 仓单编号 + 品种 + 仓库 + 仓单要素 即全维度 跟库存汇总一样
|
|
|
return r.buildSql3()
|
|
|
}
|
|
|
+
|
|
|
+ // TODO: 获取履约中的数量
|
|
|
}
|
|
|
|
|
|
func (r *WrPosition) buildSql1() string {
|
|
|
@@ -504,6 +510,7 @@ type WrOrderDetail struct {
|
|
|
FUTUPRICEMOVE float64 `json:"futupricemove" xorm:"'FUTUPRICEMOVE'"` // 期货升贴水
|
|
|
DELIVERYMONTH string `json:"deliverymonth" xorm:"'DELIVERYMONTH'"` // 交收月
|
|
|
Wr2FactorType `xorm:"extends"`
|
|
|
+ PageEx `xorm:"extends"`
|
|
|
|
|
|
FUTUSHOW string `json:"futushow"` // 期货合约/升贴水
|
|
|
}
|
|
|
@@ -539,14 +546,13 @@ func (r *WrOrderDetail) buildSql() string {
|
|
|
" on t.warehouseid = h.autoid" +
|
|
|
" left join enumdicitem e on w.unitid = e.enumitemname and e.enumdiccode='goodsunit')" +
|
|
|
"select t.HASWR," +
|
|
|
- " t.WRTRADEORDERID," +
|
|
|
+ " to_char(t.WRTRADEORDERID) WRTRADEORDERID," +
|
|
|
" t.TRADEDATE," +
|
|
|
" t.DELIVERYMONTH," +
|
|
|
" t.WRTRADETYPE," +
|
|
|
" t.BUYORSELL," +
|
|
|
" t.MARKETID," +
|
|
|
" t.USERID," +
|
|
|
- " t.WRFACTORTYPEID," +
|
|
|
" t.ORDERQTY," +
|
|
|
" t.TRADEQTY," +
|
|
|
" t.CANCELQTY," +
|
|
|
@@ -568,15 +574,105 @@ func (r *WrOrderDetail) buildSql() string {
|
|
|
" where t.WRTRADETYPE = 1"
|
|
|
sqlId.And("t.USERID", r.USERID)
|
|
|
sqlId.And("t.haswr", r.HASWR)
|
|
|
+ sqlId.AndEx("t.marketid", r.MARKETID, r.MARKETID > 0)
|
|
|
+ sqlId.Page(r.Page, r.PageSize)
|
|
|
return sqlId.String()
|
|
|
}
|
|
|
|
|
|
-// GetDataEx 获取仓单贸易委托单
|
|
|
-func (r *WrOrderDetail) GetDataEx() (interface{}, error) {
|
|
|
+// GetDataByPage 获取仓单贸易委托单
|
|
|
+func (r *WrOrderDetail) GetDataByPage() (interface{}, error, int, int, int) {
|
|
|
sData := make([]WrOrderDetail, 0)
|
|
|
err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
+ total := 0
|
|
|
for i := range sData {
|
|
|
sData[i].calc()
|
|
|
+ total = sData[i].Total
|
|
|
}
|
|
|
- return sData, err
|
|
|
+ return sData, err, r.Page, r.PageSize, total
|
|
|
+}
|
|
|
+
|
|
|
+// WrTradeDetail 仓单贸易成交明细
|
|
|
+type WrTradeDetail struct {
|
|
|
+ HASWR int32 `json:"haswr" xorm:"HASWR" form:"haswr"` // 是否有仓单-卖方 - 0:无仓单 1:有仓单
|
|
|
+ WRTRADEDETAILID string `json:"wrtradedetailid" xorm:"WRTRADEDETAILID"` // 仓单贸易成交单ID(321+Unix秒时间戳(10位)+xxxxxx)
|
|
|
+ TRADEDATE string `json:"tradedate" xorm:"TRADEDATE" form:"tradedate"` // 交易日(yyyyMMdd)
|
|
|
+ WRTRADETYPE int32 `json:"wrtradetype" xorm:"WRTRADETYPE" form:"wrtradetype"` // 仓单贸易类型 - 1:挂牌 2:摘牌 3:提货卖(文化中国) 4:提货买(文化中国)
|
|
|
+ BUYORSELL int32 `json:"buyorsell" xorm:"BUYORSELL" form:"buyorsell"` // 买卖 - 0:买 1:卖(挂牌类型 买为采购 卖为销售)
|
|
|
+ MARKETID int64 `json:"marketid" xorm:"MARKETID" form:"marketid"` // 市场ID
|
|
|
+ USERID int64 `json:"userid" xorm:"USERID" form:"userid"` // 用户ID
|
|
|
+ WRFACTORTYPEID int64 `json:"wrfactortypeid" xorm:"WRFACTORTYPEID"` // 仓单要素类型ID/商品ID(77)
|
|
|
+ TRADEQTY float64 `json:"tradeqty" xorm:"TRADEQTY" form:"tradeqty"` // 成交数量
|
|
|
+ TRADEPRICE float64 `json:"tradeprice" xorm:"TRADEPRICE" form:"tradeprice"` // 成交价格
|
|
|
+ TRADETIME string `json:"tradetime" xorm:"TRADETIME" form:"tradetime"` // 成交时间
|
|
|
+ DELIVERYMONTH string `json:"deliverymonth" xorm:"'DELIVERYMONTH'"` // 交收月
|
|
|
+ ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账号
|
|
|
+ MATCHACCOUNTID int64 `json:"matchaccountid" xorm:"MATCHACCOUNTID"` // 对手账号
|
|
|
+ MATCHUSERNAME string `json:"matchusername" xorm:"'MATCHUSERNAME'"` // 对手方
|
|
|
+ Wr2FactorType `xorm:"extends"`
|
|
|
+ PageEx `xorm:"extends"`
|
|
|
+}
|
|
|
+
|
|
|
+func (r *WrTradeDetail) calc() {
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+func (r *WrTradeDetail) buildSql() string {
|
|
|
+ var sqlId utils.SQLVal = "with tmp as" +
|
|
|
+ " (select t.wrfactortypeid," +
|
|
|
+ " t.wrfactortypename," +
|
|
|
+ " t.wrstandardid," +
|
|
|
+ " t.deliverygoodsid," +
|
|
|
+ " g.deliverygoodscode," +
|
|
|
+ " g.deliverygoodsname," +
|
|
|
+ " w.wrstandardcode," +
|
|
|
+ " w.wrstandardname," +
|
|
|
+ " h.warehousecode," +
|
|
|
+ " h.warehousename," +
|
|
|
+ " e.enumdicname," +
|
|
|
+ " w.wrstandardname || '-' || t.wrfactortypename as wrtypename" +
|
|
|
+ " from wrfactortype t" +
|
|
|
+ " left join deliverygoods g" +
|
|
|
+ " on t.deliverygoodsid = g.deliverygoodsid" +
|
|
|
+ " left join wrstandard w" +
|
|
|
+ " on t.wrstandardid = w.wrstandardid" +
|
|
|
+ " left join warehouseinfo h" +
|
|
|
+ " on t.warehouseid = h.autoid" +
|
|
|
+ " left join enumdicitem e on w.unitid = e.enumitemname and e.enumdiccode='goodsunit')" +
|
|
|
+ "select t.HASWR," +
|
|
|
+ " to_char(t.WRTRADEDETAILID) WRTRADEDETAILID," +
|
|
|
+ " t.TRADEDATE," +
|
|
|
+ " t.DELIVERYMONTH," +
|
|
|
+ " t.WRTRADETYPE," +
|
|
|
+ " t.BUYORSELL," +
|
|
|
+ " t.MARKETID," +
|
|
|
+ " t.TRADEQTY," +
|
|
|
+ " t.TRADEPRICE," +
|
|
|
+ " to_char(t.TRADETIME,'yyyy-mm-dd hh24:mi:ss') TRADETIME," +
|
|
|
+ " u2.accountname matchusername," +
|
|
|
+ " ta1.userid," +
|
|
|
+ " k.*" +
|
|
|
+ " from wrtrade_tradedetail t" +
|
|
|
+ " left join tmp k" +
|
|
|
+ " on t.wrfactortypeid = k.wrfactortypeid" +
|
|
|
+ " left join taaccount ta1 on t.accountid=ta1.accountid" +
|
|
|
+ " left join taaccount ta2 on t.matchaccountid=ta2.accountid" +
|
|
|
+ " left join useraccount u2 on ta2.userid=u2.userid" +
|
|
|
+ " where 1=1"
|
|
|
+ sqlId.And("ta1.userid", r.USERID)
|
|
|
+ sqlId.And("t.haswr", r.HASWR)
|
|
|
+ sqlId.AndEx("t.marketid", r.MARKETID, r.MARKETID > 0)
|
|
|
+ sqlId.Page(r.Page, r.PageSize)
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+// GetDataByPage 获取仓单贸易成交明细
|
|
|
+func (r *WrTradeDetail) GetDataByPage() (interface{}, error, int, int, int) {
|
|
|
+ sData := make([]WrTradeDetail, 0)
|
|
|
+ err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
+ total := 0
|
|
|
+ for i := range sData {
|
|
|
+ sData[i].calc()
|
|
|
+ total = sData[i].Total
|
|
|
+ }
|
|
|
+ return sData, err, r.Page, r.PageSize, total
|
|
|
}
|