Przeglądaj źródła

1、增加“获取企业风管期货内部持仓单信息”接口;
2、成交单接口返回参数增加平仓盈亏。

zhou.xiaoning 4 lat temu
rodzic
commit
f41782a6aa
7 zmienionych plików z 10650 dodań i 8984 usunięć
  1. 1 1
      config/config.xml
  2. 42 0
      controllers/ermcp/qryOrder.go
  3. 3704 3059
      docs/docs.go
  4. 3704 3059
      docs/swagger.json
  5. 3171 2864
      docs/swagger.yaml
  6. 26 1
      models/ermcpOrder.go
  7. 2 0
      routers/router.go

+ 1 - 1
config/config.xml

@@ -13,7 +13,7 @@
     <DbAddress value="192.168.31.117"/>
     <DbName value="orcl"/>
     <DbPort value="1521"/>
-    <DbUser value="mtp2_test104"/>
+    <DbUser value="mtp2_test114"/>
     <DbPwd value="muchinfo"/>
   </DbSetting>
   <RedisSetting>

+ 42 - 0
controllers/ermcp/qryOrder.go

@@ -495,6 +495,48 @@ func QueryErmcpTradePosition(c *gin.Context) {
 	appG.Response(http.StatusOK, e.SUCCESS, rsp)
 }
 
+// QueryErmcpInnerHolderDetailsReq 获取企业风管期货内部持仓单信息请求参数
+type QueryErmcpInnerHolderDetailsReq struct {
+	AccountID int `form:"accountID" binding:"required"`
+	GoodsID   int `form:"goodsID"`
+	BuyOrSell int `form:"buyOrSell"`
+}
+
+// QueryErmcpInnerHolderDetails 获取企业风管期货内部持仓单信息
+// @Summary 获取企业风管期货内部持仓单信息
+// @Produce json
+// @Security ApiKeyAuth
+// @Param accountID query int true "资金账户ID"
+// @Param goodsID query int false "商品ID"
+// @Param buyOrSell query int false "买卖方向,0:买 1:卖"
+// @Success 200 {object} models.Hedgeinnerholderdetail
+// @Failure 500 {object} app.Response
+// @Router /Ermcp/QueryErmcpInnerHolderDetails [get]
+// @Tags 企业风险管理(app)
+func QueryErmcpInnerHolderDetails(c *gin.Context) {
+	appG := app.Gin{C: c}
+
+	// 获取请求参数
+	var req QueryErmcpInnerHolderDetailsReq
+	if err := appG.C.ShouldBindQuery(&req); err != nil {
+		logger.GetLogger().Errorf("QueryErmcpInnerHolderDetails failed: %s", err.Error())
+		appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
+		return
+	}
+
+	var r models.Hedgeinnerholderdetail
+	rst, err := r.GetList(req.AccountID, req.GoodsID, req.BuyOrSell)
+	if err != nil {
+		logger.GetLogger().Errorf("QueryErmcpInnerHolderDetails failed: %s", err.Error())
+		appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
+		return
+	}
+
+	// 查询成功返回
+	logger.GetLogger().Debugln("QueryErmcpInnerHolderDetails successed: %v", rst)
+	appG.Response(http.StatusOK, e.SUCCESS, rst)
+}
+
 // QueryErmcpOrderDetailsReq 获取企业风管期货委托单信息请求参数
 type QueryErmcpOrderDetailsReq struct {
 	AccountID int `form:"accountID" binding:"required"`

Plik diff jest za duży
+ 3704 - 3059
docs/docs.go


Plik diff jest za duży
+ 3704 - 3059
docs/swagger.json


Plik diff jest za duży
+ 3171 - 2864
docs/swagger.yaml


+ 26 - 1
models/ermcpOrder.go

@@ -116,7 +116,7 @@ func (Hedgeouttradedetail) TableName() string {
 
 // Hedgeinnerholderdetail 对冲内部持仓单表 - 导历史
 type Hedgeinnerholderdetail struct {
-	Tradeid         int64     `json:"tradeid"  xorm:"'TRADEID'" binding:"required"`     // 成交单号(108+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
+	Tradeid         string    `json:"tradeid"  xorm:"'TRADEIDSTR'" binding:"required"`  // 成交单号(108+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
 	Buyorsell       int32     `json:"buyorsell"  xorm:"'BUYORSELL'" binding:"required"` // 方向 - 0:买 1:卖
 	Tradedate       string    `json:"tradedate"  xorm:"'TRADEDATE'"`                    // 交易日(yyyyMMdd)
 	Marketid        int32     `json:"marketid"  xorm:"'MARKETID'"`                      // 市场ID
@@ -140,6 +140,23 @@ func (Hedgeinnerholderdetail) TableName() string {
 	return "HEDGE_INNERHOLDERDETAIL"
 }
 
+// GetList 获取内部持仓明细
+func (t *Hedgeinnerholderdetail) GetList(accountID, goodsID, buyOrSell int) ([]Hedgeinnerholderdetail, error) {
+	datas := make([]Hedgeinnerholderdetail, 0)
+	session := db.GetEngine().Table("HEDGE_INNERHOLDERDETAIL T").Select("to_char(T.TRADEID) TRADEIDSTR, T.*").Where("T.ACCOUNTID = ?", accountID)
+	if goodsID != 0 {
+		session = session.And("T.GOODSID = ?", goodsID)
+	}
+	if buyOrSell != 0 {
+		session = session.And("T.BUYORSELL = ?", buyOrSell)
+	}
+	if err := session.Find(&datas); err != nil {
+		return nil, err
+	}
+
+	return datas, nil
+}
+
 // Hedgeinnerorderdetail 对冲内部委托单表 - 导历史
 type Hedgeinnerorderdetail struct {
 	Orderid                 int64     `json:"orderid"  xorm:"'ORDERID'" binding:"required"`              // 委托单号(107+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
@@ -819,6 +836,10 @@ type QueryHedgeTradeDetailRsp struct {
 	Curexchangerate  float64   `json:"curexchangerate"`  // 当前汇率
 	Opencharge2      float64   `json:"opencharge2"`      // 建仓手续费(商品)
 	Closecharge2     float64   `json:"closecharge2"`     // 平仓手续费(商品)
+	Closepl          float64   `json:"closepl"`          // 平仓盈亏(账户)
+	Closepl2         float64   `json:"closepl2"`         // 平仓盈亏(商品)
+	Closepl3         float64   `json:"closepl3"`         // 平仓盈亏(账户)(逐笔)
+	Closepl4         float64   `json:"closepl4"`         // 平仓盈亏(商品)(逐笔)
 
 	Goodscode string `json:"goodscode"` // 商品代码(内部)
 	Goodsname string `json:"goodsname"` // 商品名称
@@ -932,6 +953,10 @@ func GetHedgeInnerTradeDetails(accountID, goodsID, buyOrSell, orderID int) ([]Qu
 			Goodsname:        v.Goodsname,
 			Exchangefullname: v.Exchangefullname,
 			OrderLoginCode:   v.OrderLoginCode,
+			Closepl:          v.Closepl,
+			Closepl2:         v.Closepl2,
+			Closepl3:         v.Closepl3,
+			Closepl4:         v.Closepl4,
 		})
 	}
 

+ 2 - 0
routers/router.go

@@ -379,6 +379,8 @@ func InitRouter() *gin.Engine {
 		ermcpR.GET("/GetErmcpGoodsSortByPosition", ermcp.GetErmcpGoodsSortByPosition)
 		// 获取企业风管期货持仓头寸信息
 		ermcpR.GET("/QueryErmcpTradePosition", ermcp.QueryErmcpTradePosition)
+		// 获取企业风管期货内部持仓单信息
+		ermcpR.GET("/QueryErmcpInnerHolderDetails", ermcp.QueryErmcpInnerHolderDetails)
 		// 获取企业风管期货委托单信息
 		ermcpR.GET("/QueryErmcpOrderDetails", ermcp.QueryErmcpOrderDetails)
 		// 获取企业风管期货成交单信息

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików