|
|
@@ -3132,3 +3132,136 @@ func (r *WRPositionReport) GetDataByPage() (interface{}, error, int, int, int) {
|
|
|
}
|
|
|
return sData, err, r.Page, r.PageSize, total
|
|
|
}
|
|
|
+
|
|
|
+// Reckongzmemtradesum 会员钻石交易日汇总表
|
|
|
+type Reckongzmemtradesum struct {
|
|
|
+ MARKETID int64 `json:"marketid" xorm:"MARKETID"` // 市场ID
|
|
|
+ USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
|
|
|
+ ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY" form:"zscategory"` // 钻石分类 - 枚举”ZSCategory“
|
|
|
+ ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE" form:"zscurrencytype"` // 货币类型 - 枚举“ZSCurrencyType”
|
|
|
+ BUYLISTINGLOT int32 `json:"buylistinglot" xorm:"BUYLISTINGLOT"` // 买挂牌宗数
|
|
|
+ BUYLISTINGQTY float64 `json:"buylistingqty" xorm:"BUYLISTINGQTY"` // 买挂牌数量 - 无数据,预留
|
|
|
+ BUYLISTINGAMOUNT float64 `json:"buylistingamount" xorm:"BUYLISTINGAMOUNT"` // 买挂牌金额 - 无数据,预留
|
|
|
+ SELLLISTINGLOT int32 `json:"selllistinglot" xorm:"SELLLISTINGLOT"` // 卖挂牌宗数
|
|
|
+ SELLLISTINGQTY float64 `json:"selllistingqty" xorm:"SELLLISTINGQTY"` // 卖挂牌数量
|
|
|
+ SELLLISTINGAMOUNT float64 `json:"selllistingamount" xorm:"SELLLISTINGAMOUNT"` // 卖挂牌金额
|
|
|
+ BUYTRADELOT int32 `json:"buytradelot" xorm:"BUYTRADELOT"` // 购买宗数
|
|
|
+ BUYTRADEQTY float64 `json:"buytradeqty" xorm:"BUYTRADEQTY"` // 购买数量
|
|
|
+ BUYTRADEAMOUNT float64 `json:"buytradeamount" xorm:"BUYTRADEAMOUNT"` // 购买金额
|
|
|
+ SELLTRADELOT int32 `json:"selltradelot" xorm:"SELLTRADELOT"` // 销售宗数
|
|
|
+ SELLTRADEQTY float64 `json:"selltradeqty" xorm:"SELLTRADEQTY"` // 销售数量
|
|
|
+ SELLTRADEAMOUNT float64 `json:"selltradeamount" xorm:"SELLTRADEAMOUNT"` // 销售金额
|
|
|
+ UPDATETIME time.Time `json:"updatetime" xorm:"UPDATETIME"` // 更新时间
|
|
|
+ RECKONDATE string `json:"reckondate" xorm:"RECKONDATE"` // 日照日期(yyyyMMdd)
|
|
|
+
|
|
|
+ ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
|
|
|
+ ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
|
|
|
+ ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
|
|
|
+
|
|
|
+ CYCLETYPE int32 `json:"-" form:"cycletype"` // 周期类型 - 1:月 2:季 3:年 4:周 5:全报表 (日报表不传此参数)
|
|
|
+ BeginDate string `json:"-" form:"begindate" binding:"required"` // 开始时段
|
|
|
+ EndDate string `json:"-" form:"enddate" binding:"required"` // 结束时段
|
|
|
+
|
|
|
+ PageEx `xorm:"extends"` // 页码信息
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Reckongzmemtradesum) calc() {
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Reckongzmemtradesum) buildSql() string {
|
|
|
+ var sqlId utils.SQLVal
|
|
|
+ if r.CYCLETYPE == 0 {
|
|
|
+ // 日报表
|
|
|
+ sqlId = `
|
|
|
+ select
|
|
|
+ DIC1.ENUMDICNAME ZSCATEGORYDISPLAY,
|
|
|
+ DIC2.ENUMDICNAME ZSCURRENCYTYPEDISPLAY,
|
|
|
+ DIC2.PARAM2 ZSCURRENCYTYPEDISPLAYUNIT,
|
|
|
+ t.*
|
|
|
+ from Reckon_GZ_MemTradeSum t
|
|
|
+ LEFT JOIN ENUMDICITEM DIC1 ON t.ZSCATEGORY = DIC1.ENUMITEMNAME AND DIC1.ENUMDICCODE = 'ZSCategory'
|
|
|
+ LEFT JOIN ENUMDICITEM DIC2 ON t.ZSCURRENCYTYPE = DIC2.ENUMITEMNAME AND DIC2.ENUMDICCODE = 'ZSCurrencyType'
|
|
|
+ where t.userid = %v
|
|
|
+ and t.tradedate >= '%v'
|
|
|
+ and t.tradedate <= '%v'
|
|
|
+ and %v
|
|
|
+ and %v
|
|
|
+ order by t.tradedate, t.zscategory, t.zscurrencytype
|
|
|
+ `
|
|
|
+ // 【登录用户ID】 【开始时段】 【结束时段】 t.ZSCATEGORY = 【商品分类】 t.ZSCURRENCYTYPE = 【商品币种】
|
|
|
+ p1 := "1=1"
|
|
|
+ if r.ZSCATEGORY > 0 {
|
|
|
+ p1 = fmt.Sprintf("t.ZSCATEGORY = %v", r.ZSCATEGORY)
|
|
|
+ }
|
|
|
+ p2 := "1=1"
|
|
|
+ if r.ZSCURRENCYTYPE > 0 {
|
|
|
+ p1 = fmt.Sprintf("t.ZSCURRENCYTYPE = %v", r.ZSCURRENCYTYPE)
|
|
|
+ }
|
|
|
+ sqlId.FormatParam(r.USERID, r.BeginDate, r.EndDate, p1, p2)
|
|
|
+ } else {
|
|
|
+ // 周期报表
|
|
|
+ sqlId = `
|
|
|
+ select
|
|
|
+ DIC1.ENUMDICNAME ZSCATEGORYDISPLAY,
|
|
|
+ DIC2.ENUMDICNAME ZSCURRENCYTYPEDISPLAY,
|
|
|
+ DIC2.PARAM2 ZSCURRENCYTYPEDISPLAYUNIT,
|
|
|
+ t.MARKETID ,
|
|
|
+ t.USERID ,
|
|
|
+ t.ZSCATEGORY ,
|
|
|
+ t.ZSCURRENCYTYPE ,
|
|
|
+ t.BUYLISTINGLOT ,
|
|
|
+ t.BUYLISTINGQTY ,
|
|
|
+ t.BUYLISTINGAMOUNT ,
|
|
|
+ t.SELLLISTINGLOT ,
|
|
|
+ t.SELLLISTINGQTY ,
|
|
|
+ t.SELLLISTINGAMOUNT,
|
|
|
+ t.BUYTRADELOT ,
|
|
|
+ t.BUYTRADEQTY ,
|
|
|
+ t.BUYTRADEAMOUNT ,
|
|
|
+ t.SELLTRADELOT ,
|
|
|
+ t.SELLTRADEQTY ,
|
|
|
+ t.SELLTRADEAMOUNT ,
|
|
|
+ t.UPDATETIME ,
|
|
|
+ t.CYCLETIME RECKONDATE
|
|
|
+ from Report_GZ_MemTradeSum t
|
|
|
+ LEFT JOIN ENUMDICITEM DIC1 ON t.ZSCATEGORY = DIC1.ENUMITEMNAME AND DIC1.ENUMDICCODE = 'ZSCategory'
|
|
|
+ LEFT JOIN ENUMDICITEM DIC2 ON t.ZSCURRENCYTYPE = DIC2.ENUMITEMNAME AND DIC2.ENUMDICCODE = 'ZSCurrencyType'
|
|
|
+ where t.userid = %v
|
|
|
+ and %v
|
|
|
+ and t.cycletime >= %v
|
|
|
+ and t.cycletime <= %v
|
|
|
+ and %v
|
|
|
+ and %v
|
|
|
+ order by t.cycletime, t.zscategory, t.zscurrencytype
|
|
|
+ `
|
|
|
+ // 【登录用户ID】 t.cycletype = 【报表类型】【开始时段】 【结束时段】 t.ZSCATEGORY = 【商品分类】 t.ZSCURRENCYTYPE = 【商品币种】
|
|
|
+ p0 := "1=1"
|
|
|
+ if r.CYCLETYPE > 0 {
|
|
|
+ p0 = fmt.Sprintf("t.CYCLETYPE = %v", r.CYCLETYPE)
|
|
|
+ }
|
|
|
+ p1 := "1=1"
|
|
|
+ if r.ZSCATEGORY > 0 {
|
|
|
+ p1 = fmt.Sprintf("t.ZSCATEGORY = %v", r.ZSCATEGORY)
|
|
|
+ }
|
|
|
+ p2 := "1=1"
|
|
|
+ if r.ZSCURRENCYTYPE > 0 {
|
|
|
+ p1 = fmt.Sprintf("t.ZSCURRENCYTYPE = %v", r.ZSCURRENCYTYPE)
|
|
|
+ }
|
|
|
+ sqlId.FormatParam(r.USERID, p0, r.BeginDate, r.EndDate, p1, p2)
|
|
|
+ }
|
|
|
+
|
|
|
+ sqlId.Page(r.Page, r.PageSize)
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Reckongzmemtradesum) GetDataByPage() (interface{}, error, int, int, int) {
|
|
|
+ sData := make([]Reckongzmemtradesum, 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
|
|
|
+}
|