Selaa lähdekoodia

查指数问题修改

zou.yingbin 4 vuotta sitten
vanhempi
commit
c957d9793e
1 muutettua tiedostoa jossa 23 lisäystä ja 16 poistoa
  1. 23 16
      models/wrTrade2.go

+ 23 - 16
models/wrTrade2.go

@@ -3768,18 +3768,18 @@ func (r *WrDeliveryGoodsSectionConfig) GetDataEx() (interface{}, error) {
 
 // WrSpotGroupTradeSum 指数
 type WrSpotGroupTradeSum struct {
-	RECKONDATE        string  `json:"reckondate"  xorm:"'RECKONDATE'"`               // 上个交易日(前1天交易日)
-	LASTRECKONDATE    string  `json:"lastreckondate"  xorm:"'LASTRECKONDATE'"`       // 上上个交易日(前2天交易日)
-	MARKETID          int64   `json:"-"  xorm:"'MARKETID'" form:"marketid"`          // 市场id
-	TRADEQTY          float64 `json:"-"  xorm:"'TRADEQTY'"`                          // 成交量
-	TRADEAMOUNT       float64 `json:"-"  xorm:"'TRADEAMOUNT'"`                       // 成交额
-	LASTAVGPRICE      float64 `json:"-"  xorm:"'LASTAVGPRICE'"`                      // 上上个交易日价格(前2天价格)
-	TODAYAVGPRICE     float64 `json:"-"  xorm:"'TODAYAVGPRICE'"`                     // 上个交易日价格(前1天价格)
-	DELIVERYGOODSID   int64   `json:"deliverygoodsid"  xorm:"'DELIVERYGOODSID'"`     // 现货品种ID(SEQ_DELIVERYGOODS)
-	DELIVERYGOODSCODE string  `json:"deliverygoodscode"  xorm:"'DELIVERYGOODSCODE'"` // 现货品种代码
-	DELIVERYGOODSNAME string  `json:"deliverygoodsname"  xorm:"'DELIVERYGOODSNAME'"` // 现货品种名称
-	SECTIONID         int64   `json:"-"  xorm:"'SECTIONID'"`                         // 版块ID (SEQ_DELIVERYGOODSSECTION)
-	PRETRADEDATE      string  `json:"-"  xorm:"'PRETRADEDATE'"`                      // 上个交易日(从marketid=0表中取的, 系统)
+	RECKONDATE        string   `json:"reckondate"  xorm:"'RECKONDATE'"`               // 上个交易日(前1天交易日)
+	LASTRECKONDATE    string   `json:"lastreckondate"  xorm:"'LASTRECKONDATE'"`       // 上上个交易日(前2天交易日)
+	MARKETID          int64    `json:"-"  xorm:"'MARKETID'" form:"marketid"`          // 市场id
+	TRADEQTY          float64  `json:"-"  xorm:"'TRADEQTY'"`                          // 成交量
+	TRADEAMOUNT       float64  `json:"-"  xorm:"'TRADEAMOUNT'"`                       // 成交额
+	LASTAVGPRICE      SFLOAT64 `json:"-"  xorm:"'LASTAVGPRICE'"`                      // 上上个交易日价格(前2天价格)
+	TODAYAVGPRICE     SFLOAT64 `json:"-"  xorm:"'TODAYAVGPRICE'"`                     // 上个交易日价格(前1天价格)
+	DELIVERYGOODSID   int64    `json:"deliverygoodsid"  xorm:"'DELIVERYGOODSID'"`     // 现货品种ID(SEQ_DELIVERYGOODS)
+	DELIVERYGOODSCODE string   `json:"deliverygoodscode"  xorm:"'DELIVERYGOODSCODE'"` // 现货品种代码
+	DELIVERYGOODSNAME string   `json:"deliverygoodsname"  xorm:"'DELIVERYGOODSNAME'"` // 现货品种名称
+	SECTIONID         int64    `json:"-"  xorm:"'SECTIONID'"`                         // 版块ID (SEQ_DELIVERYGOODSSECTION)
+	PRETRADEDATE      string   `json:"-"  xorm:"'PRETRADEDATE'"`                      // 上个交易日(从marketid=0表中取的, 系统)
 
 	LASTAVGPRICE2  string `json:"lastavgprice"`  // 上上个交易日价格(前2天价格)
 	TODAYAVGPRICE2 string `json:"todayavgprice"` // 上个交易日价格(前1天价格)
@@ -3788,6 +3788,11 @@ type WrSpotGroupTradeSum struct {
 }
 
 func (r *WrSpotGroupTradeSum) calc() {
+	if r.TODAYAVGPRICE < 1e-8 {
+		// 如果今日为0, 则取上日的作为今日价
+		r.TODAYAVGPRICE = r.LASTAVGPRICE
+	}
+
 	if r.LASTAVGPRICE < 1e-8 {
 		r.LASTAVGPRICE2 = "-"
 	}
@@ -3795,19 +3800,21 @@ func (r *WrSpotGroupTradeSum) calc() {
 		r.TODAYAVGPRICE2 = "-"
 	}
 	if r.TODAYAVGPRICE > 1e-8 && r.LASTAVGPRICE > 1e-8 {
+		r.LASTAVGPRICE2 = r.LASTAVGPRICE.string()
+		r.TODAYAVGPRICE2 = r.TODAYAVGPRICE.string()
 		// 涨跌
 		var diff SFLOAT64
-		diff.Set(r.TODAYAVGPRICE - r.LASTAVGPRICE)
+		diff = r.TODAYAVGPRICE - r.LASTAVGPRICE
 		r.UPDOWN = diff.Round(2).string()
 
 		// 涨幅
 		var k SFLOAT64
-		k.Set(diff.Float64() * 100 / r.TODAYAVGPRICE)
+		k = diff * 100 / r.TODAYAVGPRICE
 		k.Round(2)
 		if k.Float64() > 1e-8 {
 			r.UPDOWNRATIO = "+" + k.string() + `%`
 		} else {
-			r.UPDOWNRATIO = "-" + k.string() + `%`
+			r.UPDOWNRATIO = k.string() + `%`
 		}
 	} else {
 		r.UPDOWN = "-"
@@ -3915,7 +3922,7 @@ func (r *WrSpotGroupTradeSumDetail) buildSql() string {
 select a.*
    from (select t.reckondate, t.deliverygoodsid, t.todayavgprice price, rownum cnt
            from reckon_spotgrouptradesum t
-          where 1 = 1
+          where 1 = 1 and t.todayavgprice > 0
             and t.deliverygoodsid = %v
           order by t.reckondate desc) a
   where a.cnt <= %v