|
|
@@ -8,6 +8,7 @@ import (
|
|
|
"mtp2_if/logger"
|
|
|
"mtp2_if/models"
|
|
|
"net/http"
|
|
|
+ "sort"
|
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
)
|
|
|
@@ -18,6 +19,7 @@ type QueryRecieptOrderReq struct {
|
|
|
GoodsID int `form:"goodsID" binding:"required"` // 商品ID,必填
|
|
|
AccountName string `form:"accountName"` // 所属账户名称
|
|
|
MarketID int `form:"marketID"` // 市场ID
|
|
|
+ BuyOrSell int `form:"buyorsell"` // 方向
|
|
|
}
|
|
|
|
|
|
// QueryRecieptOrderRsp 点选挂牌委托单据查询返回模型
|
|
|
@@ -26,7 +28,7 @@ type QueryRecieptOrderRsp struct {
|
|
|
Goodscode string `json:"goodscode" xorm:"'GOODSCODE'"` // 商品代码
|
|
|
Goodsname string `json:"goodsname" xorm:"'GOODSNAME'"` // 商品名称
|
|
|
Buyorsell uint32 `json:"buyorsell" xorm:"'BUYORSELL'"` // 方向 - 0:买 1:卖
|
|
|
- Orderid uint64 `json:"orderid" xorm:"'ORDERID'"` // 委托单号
|
|
|
+ Orderid string `json:"orderid" xorm:"'ORDERID'"` // 委托单号
|
|
|
Tradedate string `json:"tradedate" xorm:"'TRADEDATE'"` // 交易日(yyyyMMdd)
|
|
|
Orderprice float64 `json:"orderprice" xorm:"'ORDERPRICE'"` // 委托价格
|
|
|
EnableQty int64 `json:"enableqty" xorm:"ENABLEQTY"` // 可摘数量
|
|
|
@@ -35,13 +37,15 @@ type QueryRecieptOrderRsp struct {
|
|
|
|
|
|
// QueryRecieptOrder 点选挂牌委托单据查询(摘牌大厅)
|
|
|
// @Summary 点选挂牌委托单据查询(摘牌大厅)
|
|
|
+// @Description 说明:pagesize参数赋值不为0时表示需要分页;page参数从0开始计算
|
|
|
// @Produce json
|
|
|
// @Security ApiKeyAuth
|
|
|
// @Param page query int false "页码"
|
|
|
-// @Param size query int false "每页条数"
|
|
|
+// @Param pagesize query int false "每页条数"
|
|
|
// @Param goodsID query int true "商品ID"
|
|
|
// @Param accountName query string false "所属账户名称"
|
|
|
// @Param marketID query int false "市场ID"
|
|
|
+// @Param buyorsell query int false "方向 - 0:买 1:卖"
|
|
|
// @Success 200 {object} QueryRecieptOrderRsp
|
|
|
// @Failure 500 {object} app.Response
|
|
|
// @Router /SZDZ/QueryRecieptOrder [get]
|
|
|
@@ -51,6 +55,7 @@ func QueryRecieptOrder(c *gin.Context) {
|
|
|
|
|
|
// 获取请求参数
|
|
|
var req QueryRecieptOrderReq
|
|
|
+ req.BuyOrSell = -1 // 买方向值为0,所以要初始赋值
|
|
|
if err := appG.C.ShouldBindQuery(&req); err != nil {
|
|
|
logger.GetLogger().Errorf("QueryRecieptOrder failed: %s", err.Error())
|
|
|
appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
|
|
|
@@ -66,7 +71,7 @@ func QueryRecieptOrder(c *gin.Context) {
|
|
|
Join("LEFT", "TAACCOUNT", "TAACCOUNT.ACCOUNTID = TRADE_ORDERDETAIL.ACCOUNTID").
|
|
|
Join("LEFT", "USERACCOUNT", "USERACCOUNT.USERID = TAACCOUNT.RELATEDUSERID").
|
|
|
Select(`GOODS.GOODSID, GOODS.GOODSCODE, GOODS.GOODSNAME,
|
|
|
- TRADE_ORDERDETAIL.BUYORSELL, TRADE_ORDERDETAIL.ORDERID, TRADE_ORDERDETAIL.TRADEDATE, TRADE_ORDERDETAIL.ORDERPRICE,
|
|
|
+ TRADE_ORDERDETAIL.BUYORSELL, to_char(TRADE_ORDERDETAIL.ORDERID) as ORDERID, TRADE_ORDERDETAIL.TRADEDATE, TRADE_ORDERDETAIL.ORDERPRICE,
|
|
|
TRADE_ORDERDETAIL.ORDERQTY - TRADE_ORDERDETAIL.TRADEQTY - TRADE_ORDERDETAIL.CANCELQTY as ENABLEQTY,
|
|
|
substr(USERACCOUNT.ACCOUNTNAME,0,1)||'****' as ACCOUNTNAME`).
|
|
|
Where("TRADE_ORDERDETAIL.ORDERSTATUS in (3,7,12) and GOODS.GOODSID = ?", req.GoodsID)
|
|
|
@@ -76,10 +81,14 @@ func QueryRecieptOrder(c *gin.Context) {
|
|
|
if req.MarketID > 0 {
|
|
|
s = s.And("TRADE_ORDERDETAIL.MARKETID = ?", req.MarketID)
|
|
|
}
|
|
|
- // 判断是否要分页
|
|
|
- if req.Size > 0 {
|
|
|
- s = s.Limit(req.Size, req.Page*req.Size)
|
|
|
+ if req.BuyOrSell > -1 {
|
|
|
+ s = s.And("TRADE_ORDERDETAIL.BUYORSELL = ?", req.BuyOrSell)
|
|
|
}
|
|
|
+ // 判断是否要分页
|
|
|
+ // 这样分页会报错
|
|
|
+ // if req.Size > 0 {
|
|
|
+ // s = s.Limit(req.Size, req.Page*req.Size)
|
|
|
+ // }
|
|
|
d1 := make([]QueryRecieptOrderRsp, 0)
|
|
|
if err := s.Find(&d1); err != nil {
|
|
|
// 查询失败
|
|
|
@@ -95,7 +104,7 @@ func QueryRecieptOrder(c *gin.Context) {
|
|
|
Join("INNER", "QUOTER", "QUOTER.QUOTERID = TRADE_QUOTEDETAILNEW.QUOTERID").
|
|
|
Join("INNER", "AREAROLE", "AREAROLE.USERID = QUOTER.DEFAULTMAKERID and AREAROLE.ROLETYPE = 8").
|
|
|
Select(`GOODS.GOODSID, GOODS.GOODSCODE, GOODS.GOODSNAME,
|
|
|
- TRADE_QUOTEDETAILNEW.BUYORSELL, TRADE_QUOTEDETAILNEW.ORDERID, TRADE_QUOTEDETAILNEW.TRADEDATE, TRADE_QUOTEDETAILNEW.PRICE as ORDERPRICE,
|
|
|
+ TRADE_QUOTEDETAILNEW.BUYORSELL, to_char(TRADE_QUOTEDETAILNEW.ORDERID) as ORDERID, TRADE_QUOTEDETAILNEW.TRADEDATE, TRADE_QUOTEDETAILNEW.PRICE as ORDERPRICE,
|
|
|
TRADE_QUOTEDETAILNEW.CURQTY as ENABLEQTY,
|
|
|
substr(QUOTER.QUOTERNAME,0,1)||'****' as ACCOUNTNAME`).
|
|
|
Where("(TRADE_QUOTEDETAILNEW.CURQTY > 0 or TRADE_QUOTEDETAILNEW.PRICE > 0) and TRADE_QUOTEDETAILNEW.ISVALID != 1 and TRADE_QUOTEDETAILNEW.FREEZESTATUS != 3")
|
|
|
@@ -108,11 +117,35 @@ func QueryRecieptOrder(c *gin.Context) {
|
|
|
}
|
|
|
datas = append(datas, d2...)
|
|
|
|
|
|
+ total := len(datas)
|
|
|
// FIXME: - 排序 & 分页
|
|
|
+ // 排序
|
|
|
+ sort.Slice(datas, func(i int, j int) bool {
|
|
|
+ return datas[i].Tradedate > datas[j].Tradedate
|
|
|
+ })
|
|
|
+ // 分页
|
|
|
+ if req.PageSize > 0 {
|
|
|
+ // 开始上标
|
|
|
+ start := req.Page * req.PageSize
|
|
|
+ // 结束下标
|
|
|
+ end := start + req.PageSize
|
|
|
+
|
|
|
+ if start <= len(datas) && end <= len(datas) {
|
|
|
+ datas = datas[start:end]
|
|
|
+ } else {
|
|
|
+ datas = make([]QueryRecieptOrderRsp, 0)
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
// 查询成功返回
|
|
|
logger.GetLogger().Infof("QueryRecieptOrder successed: %v", datas)
|
|
|
- appG.Response(http.StatusOK, e.SUCCESS, datas)
|
|
|
+ if req.PageSize > 0 {
|
|
|
+ // 分页
|
|
|
+ appG.ResponseByPage(http.StatusOK, e.SUCCESS, datas, app.PageInfo{Page: req.Page, PageSize: req.PageSize, Total: total})
|
|
|
+ } else {
|
|
|
+ // 不分页
|
|
|
+ appG.Response(http.StatusOK, e.SUCCESS, datas)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// QueryGoodsPickupReq 商品提货单查询请求参数
|