ferroalloy.go 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package models
  2. import (
  3. "fmt"
  4. "mtp2_if/db"
  5. "mtp2_if/utils"
  6. "time"
  7. )
  8. // 上海铁合金项目
  9. // GErmcpspotgoodsprice 现货市价表
  10. type GErmcpspotgoodsprice struct {
  11. DELIVERYGOODSID int32 `json:"deliverygoodsid" xorm:"DELIVERYGOODSID"` // 现货品种ID
  12. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID(通用则为0)
  13. SPOTGOODSBRANDID int32 `json:"spotgoodsbrandid" xorm:"SPOTGOODSBRANDID"` // 现货品牌ID(通用则为0, 不为0则须先有商品ID)
  14. CURRENCYID int64 `json:"currencyid" xorm:"CURRENCYID"` // 报价货币ID
  15. SPOTGOODSPRICE float64 `json:"spotgoodsprice" xorm:"SPOTGOODSPRICE"` // 【最新价】当前价格
  16. TRADEDATE string `json:"tradedate" xorm:"TRADEDATE"` // 【日期】交易日
  17. OPERATESRC int32 `json:"-" xorm:"OPERATESRC"` // 最后操作来源 - 1:管理端 2:终端
  18. OPERATEID int64 `json:"-" xorm:"OPERATEID"` // 最后操作人
  19. OPERATETIME time.Time `json:"-" xorm:"OPERATETIME"` // 最后操作时间
  20. ISVALID int32 `json:"-" xorm:"ISVALID"` // 是否有效 - 0:无效 1:有效
  21. YSTSPOTGOODSPRICE float64 `json:"ystspotgoodsprice" xorm:"YSTSPOTGOODSPRICE"` // 昨价
  22. TODAYSPOTGOODSPRICE float64 `json:"todayspotgoodsprice" xorm:"TODAYSPOTGOODSPRICE"` // 今日指定价
  23. TODAYPRICEDTOTALQTY float64 `json:"todaypricedtotalqty" xorm:"TODAYPRICEDTOTALQTY"` // 今日定价总量
  24. TODAYPRICEDTOTALAMOUNT float64 `json:"todaypricedtotalamount" xorm:"TODAYPRICEDTOTALAMOUNT"` // 今日定价金额
  25. SRCMARKETNAME string `json:"srcmarketname" xorm:"SRCMARKETNAME"` // 来源市场名称
  26. WRSTANDARDCODE string `json:"wrstandardcode" xorm:"WRSTANDARDCODE"` // 现货商品代码
  27. WRSTANDARDNAME string `json:"wrstandardname" xorm:"WRSTANDARDNAME"` // 【名称】现货商品名称
  28. PageEx `xorm:"extends"` // 页码信息
  29. }
  30. func (r *GErmcpspotgoodsprice) calc() {
  31. if len(r.TRADEDATE) == 8 {
  32. r.TRADEDATE = fmt.Sprintf("%v-%v-%v\n", r.TRADEDATE[0:4], r.TRADEDATE[4:6], r.TRADEDATE[6:8])
  33. }
  34. }
  35. func (r *GErmcpspotgoodsprice) buildSql() string {
  36. var sqlId utils.SQLVal = `
  37. SELECT
  38. t.DELIVERYGOODSID ,
  39. t.WRSTANDARDID ,
  40. t.SPOTGOODSBRANDID ,
  41. t.CURRENCYID ,
  42. t.SPOTGOODSPRICE ,
  43. t.TRADEDATE ,
  44. t.YSTSPOTGOODSPRICE ,
  45. t.TODAYSPOTGOODSPRICE ,
  46. t.TODAYPRICEDTOTALQTY ,
  47. t.TODAYPRICEDTOTALAMOUNT,
  48. t.SRCMARKETNAME,
  49. w.WRSTANDARDCODE,
  50. w.WRSTANDARDNAME
  51. FROM ERMCP_SPOTGOODSPRICE t
  52. LEFT JOIN WRStandard w ON t.WRSTANDARDID = w.WRSTANDARDID
  53. WHERE t.SPOTGOODSBRANDID = 0 AND t.CURRENCYID = 1 AND t.ISVALID = 1
  54. `
  55. sqlId.OrderByDesc("w.WRSTANDARDNAME")
  56. sqlId.Page(r.Page, r.PageSize)
  57. return sqlId.String()
  58. }
  59. func (r *GErmcpspotgoodsprice) GetDataByPage() (interface{}, error, int, int, int) {
  60. sData := make([]GErmcpspotgoodsprice, 0)
  61. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  62. total := 0
  63. for i := range sData {
  64. sData[i].calc()
  65. total = sData[i].Total
  66. }
  67. return sData, err, r.Page, r.PageSize, total
  68. }