|
|
@@ -752,6 +752,7 @@ type WrTradeDetail struct {
|
|
|
|
|
|
func (r *WrTradeDetail) calc() {
|
|
|
r.Wr2FactorType.Calc()
|
|
|
+ r.MATCHUSERNAME = EncryptByStar(r.MATCHUSERNAME)
|
|
|
}
|
|
|
|
|
|
func (r *WrTradeDetail) buildSql() string {
|
|
|
@@ -2203,6 +2204,7 @@ type WrScfContract struct {
|
|
|
|
|
|
func (r *WrScfContract) calc() {
|
|
|
r.LENDERUSERNAME = mtpcache.GetUserNameByUserId(r.LENDERUSERID)
|
|
|
+ r.LENDERUSERNAME = EncryptByStar(r.LENDERUSERNAME)
|
|
|
r.UNPAIDINTEREST.Set(r.TOTALINTEREST - r.CLOSEINTEREST)
|
|
|
r.UNPAIDINTEREST.Round(2)
|
|
|
}
|
|
|
@@ -2562,8 +2564,12 @@ func (r *WrBsGoodsInfo) GetDataEx() (interface{}, error) {
|
|
|
LstStep: make([]WrGoodsPerformanceStep, 0)}
|
|
|
if len(sRelation) > 0 {
|
|
|
vR := sRelation[0]
|
|
|
+
|
|
|
+ val.LstItem = append(val.LstItem, WrTypeItem{NAME: "品种", VALUE: vR.DELIVERYGOODSNAME})
|
|
|
+ val.LstItem = append(val.LstItem, WrTypeItem{NAME: "商品", VALUE: vR.WRSTANDARDNAME})
|
|
|
+
|
|
|
// 履约关系详情(要素项)
|
|
|
- mRDetail := DeliveryRelationDetail{GOODSID: r.GOODSID}
|
|
|
+ mRDetail := DeliveryRelationDetail{GOODSID: r.GOODSID, WMCATFLAG: 1}
|
|
|
if d2, err := mRDetail.GetDataEx(); err == nil {
|
|
|
if sDetail, ok := d2.([]DeliveryRelationDetail); ok {
|
|
|
for i := range sDetail {
|
|
|
@@ -2591,6 +2597,7 @@ type WrTradeOrderDetail struct {
|
|
|
GOODSID int32 `json:"goodsid" xorm:"'GOODSID'" form:"goodsid"` // 商品id
|
|
|
BUYORSELL int32 `json:"buyorsell" xorm:"'BUYORSELL'" form:"buyorsell"` // 买卖方向 0-买 1-卖
|
|
|
ORDERPRICE SFLOAT64 `json:"orderprice" xorm:"'ORDERPRICE'"` // 委托价格
|
|
|
+ ORDERQTY int64 `json:"orderqty" xorm:"'ORDERQTY'"` // 委托数量
|
|
|
USERID int64 `json:"userid" xorm:"'USERID'"` // 用户id
|
|
|
USERNAME string `json:"username" xorm:"'USERNAME'"` // 用户名称(已脱敏)
|
|
|
PageEx `xorm:"extends"`
|
|
|
@@ -2601,10 +2608,11 @@ func (r *WrTradeOrderDetail) calc() {
|
|
|
}
|
|
|
|
|
|
func (r *WrTradeOrderDetail) buildSql() string {
|
|
|
- var sqlId utils.SQLVal = "select t.orderid," +
|
|
|
+ var sqlId utils.SQLVal = "select to_char(t.orderid) orderid," +
|
|
|
" t.buyorsell," +
|
|
|
" t.goodsid," +
|
|
|
" t.orderprice," +
|
|
|
+ " t.orderqty," +
|
|
|
" u.userid," +
|
|
|
" u.accountname username," +
|
|
|
" t.orderstatus" +
|
|
|
@@ -2635,3 +2643,54 @@ func (r *WrTradeOrderDetail) GetDataEx() (interface{}, error) {
|
|
|
}
|
|
|
return sData, err
|
|
|
}
|
|
|
+
|
|
|
+// WrAverageTradePrice 成交均价(历史走势)
|
|
|
+type WrAverageTradePrice struct {
|
|
|
+ TRADEDATE string `json:"tradedate" xorm:"'TRADEDATE'"` // 交易日yyyymm
|
|
|
+ TRADEAMOUNT SFLOAT64 `json:"-" xorm:"'TRADEAMOUNT'"` // 总成交额
|
|
|
+ TRADEQTY SFLOAT64 `json:"-" xorm:"'TRADEQTY'"` // 总成交量
|
|
|
+ AVERAGEPRICE SFLOAT64 `json:"averageprice" xorm:"'AVERAGEPRICE'"` // 成交均价
|
|
|
+ PageEx `xorm:"extends"`
|
|
|
+
|
|
|
+ WRFACTORTYPEID int64 `json:"-" form:"wrfactortypeid"` // 仓单要素id
|
|
|
+ HASWR int32 `json:"-" form:"haswr"` // 0-仓单预售 1-仓单贸易
|
|
|
+}
|
|
|
+
|
|
|
+func (r *WrAverageTradePrice) calc() {
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+func (r *WrAverageTradePrice) buildSql() string {
|
|
|
+ var sqlId utils.SQLVal = "select t.tradedate," +
|
|
|
+ " sum(t.tradeamount) tradeamount," +
|
|
|
+ " sum(t.tradeqty) tradeqty," +
|
|
|
+ " round(sum(t.tradeamount) / sum(t.tradeqty), 2) as averagePrice" +
|
|
|
+ " from his_wrtrade_tradedetail t" +
|
|
|
+ " where t.wrtradetype in (1, 2)" +
|
|
|
+ " and t.haswr = %v" +
|
|
|
+ " and t.wrfactortypeid = %v" +
|
|
|
+ " group by t.tradedate" +
|
|
|
+ " order by t.tradedate desc"
|
|
|
+ sqlId.FormatParam(r.HASWR, r.WRFACTORTYPEID)
|
|
|
+ sqlId.Page(r.Page, r.PageSize)
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+// GetDataEx 获取成交均价(历史走势)
|
|
|
+func (r *WrAverageTradePrice) GetDataEx() (interface{}, error) {
|
|
|
+ sData := make([]WrAverageTradePrice, 0)
|
|
|
+ err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
+ for i := range sData {
|
|
|
+ sData[i].calc()
|
|
|
+ }
|
|
|
+ // 进行反序, sql是日期倒序查的, 反序后变为日期从小到大
|
|
|
+ if nLen := len(sData); nLen >= 2 {
|
|
|
+ i, j := 0, nLen-1
|
|
|
+ for i < j {
|
|
|
+ sData[i], sData[j] = sData[j], sData[i]
|
|
|
+ i++
|
|
|
+ j--
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return sData, err
|
|
|
+}
|