|
|
@@ -1043,7 +1043,7 @@ type WrGoodsPerformanceStep struct {
|
|
|
|
|
|
func (r *WrGoodsPerformanceStep) calc() {
|
|
|
switch r.STEPTYPEID {
|
|
|
- case 1, 2:
|
|
|
+ case 1, 2, 98:
|
|
|
r.STEPINFO = fmt.Sprintf("%v %v%%", r.STEPTYPENAME, r.STEPVALUE*100)
|
|
|
default:
|
|
|
if r.STEPVALUE == 0 {
|
|
|
@@ -2677,7 +2677,7 @@ func (r *WrAverageTradePrice) buildSql() string {
|
|
|
}
|
|
|
|
|
|
// GetDataEx 获取成交均价(历史走势)
|
|
|
-func (r *WrAverageTradePrice) GetDataEx() (interface{}, error) {
|
|
|
+func (r *WrAverageTradePrice) GetDataByPage() (interface{}, error, int, int, int) {
|
|
|
sData := make([]WrAverageTradePrice, 0)
|
|
|
err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
for i := range sData {
|
|
|
@@ -2692,5 +2692,131 @@ func (r *WrAverageTradePrice) GetDataEx() (interface{}, error) {
|
|
|
j--
|
|
|
}
|
|
|
}
|
|
|
- return sData, err
|
|
|
+ if len(sData) > 0 {
|
|
|
+ r.Total = sData[0].Total
|
|
|
+ }
|
|
|
+ return sData, err, r.Page, r.PageSize, r.Total
|
|
|
+}
|
|
|
+
|
|
|
+// WrQuoteOrderMyq 贸易圈大厅
|
|
|
+type WrQuoteOrderMyq struct {
|
|
|
+ WRTRADEORDERID string `json:"wrtradeorderid" xorm:"WRTRADEORDERID"` // 仓单贸易委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
|
|
|
+ BUYORSELL int32 `json:"buyorsell" xorm:"BUYORSELL" form:"buyorsell"` // 买卖 - 0:买 1:卖
|
|
|
+ USERID int64 `json:"userid" xorm:"USERID" form:"userid"` // 购买方(销售方)用户ID
|
|
|
+ QTY float64 `json:"orderqty" xorm:"qty"` // 买(卖)量(=委托量-成交量)
|
|
|
+ PRICE float64 `json:"fixedprice" xorm:"price"` // 买(卖)价
|
|
|
+ PRICEMOVE float64 `json:"pricemove" xorm:"PRICEMOVE"` // 买(卖)升贴水- 基差
|
|
|
+ USERNAME string `json:"username" xorm:"'USERNAME'"` // 购买方(销售方)
|
|
|
+ ENUMDICNAME string `json:"enumdicname" xorm:"'enumdicname'"` // 单位名称
|
|
|
+ MINIVALUE int32 `json:"minivalue" xorm:"'MINIVALUE'"` // 现货商品最小变动值
|
|
|
+ DELIVERYMONTH string `json:"deliverymonth" xorm:"'DELIVERYMONTH'" form:"deliverymonth"` // 交收月
|
|
|
+ ORDERTIME string `json:"ordertime" xorm:"'ORDERTIME'"` // 委托时间
|
|
|
+ DELISTMINQTY SFLOAT64 `json:"delistminqty" xorm:"'DELISTMINQTY'"` // 起摘数量
|
|
|
+
|
|
|
+ CANBARGAIN int32 `json:"canbargain" xorm:"'CANBARGAIN'"` // 是否可议价 - 0:不可 1:可
|
|
|
+ CANPART int32 `json:"canpart" xorm:"'CANPART'"` // 是否允许部份摘牌 - 0:不允许 1:允许
|
|
|
+ MARGINFLAG int32 `json:"marginflag" xorm:"'MARGINFLAG'"` // 挂牌是否指定保证金 - 0:未指定 1:指定
|
|
|
+ MARGINVALUE float64 `json:"marginvalue" xorm:"'MARGINVALUE'"` // 保证金设置值
|
|
|
+ VALIDTYPE int32 `json:"validtype" xorm:"'VALIDTYPE'"` // 有效类型 - 1当日有效 2本周有效 3指定日期有效 4一直有效
|
|
|
+ VALIDTIME string `json:"validtime" xorm:"'VALIDTIME'"` // 有效期限
|
|
|
+ PERFORMANCETEMPLATEID int64 `json:"performancetemplateid" xorm:"'PERFORMANCETEMPLATEID'"` // 履约模板id
|
|
|
+ GOODSCODE string `json:"goodscode" xorm:"'GOODSCODE'"` // 商品合约代码
|
|
|
+ TEMPLATENAME string `json:"templatename" xorm:"'TEMPLATENAME'"` // 履约模板名称
|
|
|
+ WAREHOUSENAME string `json:"warehousename" xorm:"'WAREHOUSENAME'"` // 仓库名称
|
|
|
+ WRTYPENAME string `json:"wrtypename" xorm:"'WRTYPENAME'"` // 商品
|
|
|
+ PageEx `xorm:"extends"`
|
|
|
+
|
|
|
+ WRFACTORTYPEID int64 `json:"-" form:"wrfactortypeid"` // 仓单要素id
|
|
|
+ HasWr int32 `json:"-" form:"haswr"` // 是否有仓单 0-没有 1-有
|
|
|
+ WrPriceType int32 `json:"-" form:"wrpricetype"` // 价格方式 - 1:固定价 2-浮动价 - [挂牌]
|
|
|
+ MarketId int32 `json:"-" form:"marketid"` // 市场id
|
|
|
+ GOODSID int32 `json:"-" form:"goodsid"` // 商品id
|
|
|
+}
|
|
|
+
|
|
|
+func (r *WrQuoteOrderMyq) calc() {
|
|
|
+ r.WRTYPENAME = strings.ReplaceAll(r.WRTYPENAME, ",", "-")
|
|
|
+ r.USERNAME = EncryptByStar(r.USERNAME)
|
|
|
+}
|
|
|
+
|
|
|
+func (r *WrQuoteOrderMyq) buildSql() string {
|
|
|
+ var sqlId utils.SQLVal = "select to_char(t.wrtradeorderid) wrtradeorderid," +
|
|
|
+ " to_char(t.wrfactortypeid) wrfactortypeid," +
|
|
|
+ " t.userid," +
|
|
|
+ " t.orderqty - t.tradeqty as qty," +
|
|
|
+ " t.fixedprice as price," +
|
|
|
+ " t.pricemove," +
|
|
|
+ " t.wrpricetype," +
|
|
|
+ " t.buyorsell," +
|
|
|
+ " t.deliverymonth," +
|
|
|
+ " t.delistminqty," +
|
|
|
+ " t.haswr," +
|
|
|
+ " t.canbargain," +
|
|
|
+ " t.canpart," +
|
|
|
+ " t.marginflag," +
|
|
|
+ " t.marginvalue," +
|
|
|
+ " t.validtype," +
|
|
|
+ " to_char(t.validtime, 'yyyy-mm-dd hh24:mi:ss') validtime," +
|
|
|
+ " t.performancetemplateid," +
|
|
|
+ " to_char(t.ordertime, 'yyyy-mm-dd hh24:mi:ss') ordertime," +
|
|
|
+ " u.accountname as username," +
|
|
|
+ " c.goodsid," +
|
|
|
+ " c.goodscode," +
|
|
|
+ " wd.minivalue," +
|
|
|
+ " e.enumdicname," +
|
|
|
+ " wd.wrstandardname || w.wrfactortypename2 WRTYPENAME," +
|
|
|
+ " s.templatename," +
|
|
|
+ " h.warehousename" +
|
|
|
+ " from WRTRADE_ORDERDETAIL t" +
|
|
|
+ " left join WRTRADE_GOODSCONFIG c" +
|
|
|
+ " on t.wrtradeorderid = c.wrtradeorderid" +
|
|
|
+ " left join Useraccount u" +
|
|
|
+ " on t.userid = u.userid" +
|
|
|
+ " left join wrfactortype w" +
|
|
|
+ " on t.wrfactortypeid = w.wrfactortypeid" +
|
|
|
+ " left join wrstandard wd" +
|
|
|
+ " on w.wrstandardid = wd.wrstandardid" +
|
|
|
+ " left join performanceplantemplate s on t.performancetemplateid=s.autoid" +
|
|
|
+ " left join warehouseinfo h on w.warehouseid=h.autoid" +
|
|
|
+ " left join enumdicitem e" +
|
|
|
+ " on wd.unitid = e.enumitemname" +
|
|
|
+ " and e.enumdiccode = 'goodsunit'" +
|
|
|
+ " where 1 = 1" +
|
|
|
+ " and t.wrtradetype = 1" +
|
|
|
+ " and t.wrtradeorderstatus in (3, 10)"
|
|
|
+ sqlId.And("t.haswr", r.HasWr)
|
|
|
+ r.WrPriceType = 1 // 查固定价
|
|
|
+ sqlId.And("t.wrpricetype", r.WrPriceType)
|
|
|
+ sqlId.AndEx("t.wrfactortypeid", r.WRFACTORTYPEID, r.WRFACTORTYPEID > 0)
|
|
|
+ sqlId.AndEx("c.goodsid", r.GOODSID, r.GOODSID > 0)
|
|
|
+ sqlId.And("t.buyorsell", r.BUYORSELL)
|
|
|
+ sqlId.AndEx("t.marketid", r.MarketId, r.MarketId > 0)
|
|
|
+ sqlId.AndEx("t.deliverymonth", r.DELIVERYMONTH, len(r.DELIVERYMONTH) > 0)
|
|
|
+
|
|
|
+ if r.BUYORSELL == 0 {
|
|
|
+ if r.WrPriceType == 1 {
|
|
|
+ sqlId.Join(" order by t.fixedprice desc, t.ordertime")
|
|
|
+ } else {
|
|
|
+ sqlId.Join(" order by t.pricemove desc, t.ordertime")
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if r.WrPriceType == 1 {
|
|
|
+ sqlId.Join(" order by t.fixedprice asc, t.ordertime")
|
|
|
+ } else {
|
|
|
+ sqlId.Join(" order by t.pricemove asc, t.ordertime")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sqlId.Page(r.Page, r.PageSize)
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+// GetDataByPage 获取贸易圈大厅
|
|
|
+func (r *WrQuoteOrderMyq) GetDataByPage() (interface{}, error, int, int, int) {
|
|
|
+ sData := make([]WrQuoteOrderMyq, 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
|
|
|
}
|