Selaa lähdekoodia

1.查仓单贸易成交增加手续费字段
2.fix bug: #375
3.修改查商品信息/现货品种接口

zou.yingbin 4 vuotta sitten
vanhempi
commit
25b92cb832
7 muutettua tiedostoa jossa 572 lisäystä ja 2688 poistoa
  1. 4 5
      controllers/ermcp3/qryErmcp3.go
  2. 81 874
      docs/docs.go
  3. 81 874
      docs/swagger.json
  4. 172 929
      docs/swagger.yaml
  5. 231 5
      models/ermcp3.go
  6. 1 1
      models/tjmd.go
  7. 2 0
      models/wrTrade2.go

+ 4 - 5
controllers/ermcp3/qryErmcp3.go

@@ -48,7 +48,7 @@ func QueryDeliveryGoods(c *gin.Context) {
 // @Param userid query int true "用户id"
 // @Param usertype query int false "用户类型 2-机构 7-企业成员"
 // @Param deliverygoodsid query int false "现货商品id"
-// @Success 200 {array} models.ErmcpDeliveryGoodsDetailEx
+// @Success 200 {array} models.XHDeliveryGoods
 // @Failure 500 {object} app.Response
 // @Router /Ermcp3/QueryDeliveryGoodsDetail [get]
 // @Tags 企业风险管理v3(app)
@@ -57,11 +57,10 @@ func QueryDeliveryGoodsDetail(c *gin.Context) {
 	req := struct {
 		UserId          int64 `form:"userid" binding:"required"` // 用户id
 		USERTYPE        int32 `form:"usertype"`                  // 用户类型
-		DeliveryGoodsId int32 `form:"deliverygoodsid"`           // 现货商品id
+		DeliveryGoodsId int64 `form:"deliverygoodsid"`           // 现货商品id
 	}{}
 	a.DoBindReq(&req)
-	m := models.ErmcpDeliveryGoodsDetailEx{}
-	m.Data = models.ErmcpDeliveryGoods{AREAUSERID: mtpcache.GetAreaUserId(req.UserId, req.USERTYPE),
+	m := models.XHDeliveryGoods{AREAUSERID: mtpcache.GetAreaUserId(req.UserId, req.USERTYPE),
 		DELIVERYGOODSID: req.DeliveryGoodsId}
 	a.DoGetDataI(&m)
 }
@@ -265,7 +264,7 @@ func QueryGoodsbrand(c *gin.Context) {
 	req := struct {
 		USERID          int64 `form:"userid"`          // 用户id
 		USERTYPE        int32 `form:"usertype"`        // 用户类型
-		DELIVERYGOODSID int32 `form:"deliverygoodsid"` // 现货品种ID
+		DELIVERYGOODSID int64 `form:"deliverygoodsid"` // 现货品种ID
 	}{}
 	appG.DoBindReq(&req)
 	m := models.Ermcp3Brand{

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 81 - 874
docs/docs.go


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 81 - 874
docs/swagger.json


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 172 - 929
docs/swagger.yaml


+ 231 - 5
models/ermcp3.go

@@ -134,7 +134,7 @@ func (r *ErmcpDGFactoryItem) GetData() (interface{}, error) {
 type Ermcp3Brand struct {
 	BRANDID         int64  `json:"brandid"`         // 品牌id
 	BRANDNAME       string `json:"brandname"`       // 品牌名称
-	DELIVERYGOODSID int32  `json:"deliverygoodsid"` // 品种ID
+	DELIVERYGOODSID int64  `json:"deliverygoodsid"` // 品种ID
 	AREAUSERID      int64  `json:"areauserid"`      // 用户id
 }
 
@@ -146,7 +146,7 @@ func (r *Ermcp3Brand) GetDataEx() (interface{}, error) {
 // GetData 获取品牌数据
 func (r *Ermcp3Brand) GetData() ([]Ermcp3Brand, error) {
 	m := ErmcpDGFactoryItem{
-		DELIVERYGOODSID:     r.DELIVERYGOODSID,
+		DELIVERYGOODSID:     int32(r.DELIVERYGOODSID),
 		DGFACTORYITEMTYPEID: 2,
 		ORDERINDEX:          1,
 	}
@@ -155,7 +155,7 @@ func (r *Ermcp3Brand) GetData() ([]Ermcp3Brand, error) {
 		if dgLst, ok := d.([]ErmcpDGFactoryItem); ok {
 			for _, val := range dgLst {
 				sData = append(sData, Ermcp3Brand{BRANDID: val.DGFACTORYITEMID, AREAUSERID: val.AREAUSERID,
-					BRANDNAME: val.DGFACTORYITEMVALUE, DELIVERYGOODSID: val.DELIVERYGOODSID})
+					BRANDNAME: val.DGFACTORYITEMVALUE, DELIVERYGOODSID: int64(val.DELIVERYGOODSID)})
 			}
 		}
 	}
@@ -224,7 +224,7 @@ func (r *ErmcpDeliveryGoodsDetail) addGmList(lst []Ermcp3Wrstandard) {
 
 func (r *ErmcpDeliveryGoodsDetail) addGbList(lst []Ermcp3Brand) {
 	for i := range lst {
-		if lst[i].DELIVERYGOODSID == r.Data.DELIVERYGOODSID {
+		if lst[i].DELIVERYGOODSID == int64(r.Data.DELIVERYGOODSID) {
 			r.GbList = append(r.GbList, lst[i])
 		}
 	}
@@ -250,7 +250,7 @@ func (r *ErmcpDeliveryGoodsDetail) GetData() ([]ErmcpDeliveryGoodsDetail, error)
 	}
 	//品类/品牌/套保信息
 	gm := Ermcp3Wrstandard{AREAUSERID: r.Data.AREAUSERID, DELIVERYGOODSID: r.Data.DELIVERYGOODSID, ISVALID: 1}
-	gb := Ermcp3Brand{DELIVERYGOODSID: r.Data.DELIVERYGOODSID}
+	gb := Ermcp3Brand{DELIVERYGOODSID: int64(r.Data.DELIVERYGOODSID)}
 	gmLst, _ := gm.GetDataEx()
 	gbLst, _ := gb.GetData()
 
@@ -2327,3 +2327,229 @@ func (r *Ermcp3PaAreaAuditCfg) GetDataEx() (interface{}, error) {
 	}
 	return sData, err
 }
+
+// XHDeliveryGoods 商品信息-现货品种
+type XHDeliveryGoods struct {
+	AREAUSERID        int64  `json:"areauserid"  xorm:"'AREAUSERID'" form:"areauserid"`                // 所属机构
+	DELIVERYGOODSID   int64  `json:"deliverygoodsid"  xorm:"'DELIVERYGOODSID'" form:"deliverygoodsid"` // 现货品种ID(SEQ_DELIVERYGOODS)
+	DELIVERYGOODSCODE string `json:"deliverygoodscode"  xorm:"'DELIVERYGOODSCODE'"`                    // 现货品种代码
+	DELIVERYGOODSNAME string `json:"deliverygoodsname"  xorm:"'DELIVERYGOODSNAME'"`                    // 现货品种名称
+	ISVALID           int32  `json:"isvalid"  xorm:"'ISVALID'"`                                        // 是否有效 - 0:无效 1:有效
+	DGSTATUS          int32  `json:"dgstatus"  xorm:"'DGSTATUS'"`                                      // 品种状态 - 作废 - 0:未激活 1:正常
+	REMARK            string `json:"remark"  xorm:"'REMARK'"`                                          // 备注
+
+	WDLST []XHWrstandard `json:"wdlst"` // 品类(现货商品)列表
+	BDLST []XHBRAND      `json:"bdlst"` // 品牌列表
+}
+
+func (r *XHDeliveryGoods) calc() {
+	if r.WDLST == nil {
+		r.WDLST = make([]XHWrstandard, 0)
+		r.BDLST = make([]XHBRAND, 0)
+	}
+}
+
+func (r *XHDeliveryGoods) buildSql() string {
+	var sqlId utils.SQLVal = `
+SELECT t.AREAUSERID,
+       t.DELIVERYGOODSID,
+       t.DELIVERYGOODSCODE,
+       t.DELIVERYGOODSNAME,
+       t.ISVALID,
+       t.DGSTATUS,
+       t.REMARK
+  FROM DELIVERYGOODS t
+ WHERE 1 = 1
+`
+	sqlId.AndEx("t.AREAUSERID", r.AREAUSERID, r.AREAUSERID > 0)
+	sqlId.AndEx("t.DELIVERYGOODSID", r.DELIVERYGOODSID, r.DELIVERYGOODSID > 0)
+	return sqlId.String()
+}
+
+// GetDataEx 获取商品信息-现货品种
+func (r *XHDeliveryGoods) GetDataEx() (interface{}, error) {
+	sData := make([]XHDeliveryGoods, 0)
+	err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
+	for i := range sData {
+		sData[i].calc()
+	}
+
+	if len(sData) > 0 {
+		// 获取品类列表
+		m1 := XHWrstandard{AREAUSERID: r.AREAUSERID, DELIVERYGOODSID: r.DELIVERYGOODSID}
+		if d1, err := m1.GetDataEx(); err == nil {
+			lstWd := d1.([]XHWrstandard)
+			for i := range sData {
+				sData[i].addWdlst(lstWd)
+			}
+		}
+
+		// 获取品牌列表
+		m2 := XHBRAND{DELIVERYGOODSID: r.DELIVERYGOODSID, AREAUSERID: r.AREAUSERID}
+		if d2, err := m2.GetDataEx(); err == nil {
+			lstBrand := d2.([]XHBRAND)
+			for i := range sData {
+				sData[i].addBrandlst(lstBrand)
+			}
+		}
+	}
+
+	return sData, err
+}
+
+// 增加品类列表
+func (r *XHDeliveryGoods) addWdlst(lstWd []XHWrstandard) {
+	for i := range lstWd {
+		if lstWd[i].DELIVERYGOODSID == r.DELIVERYGOODSID {
+			r.WDLST = append(r.WDLST, lstWd[i])
+		}
+	}
+}
+
+// 增加品牌列表
+func (r *XHDeliveryGoods) addBrandlst(lstBrand []XHBRAND) {
+	for i := range lstBrand {
+		if lstBrand[i].DELIVERYGOODSID == r.DELIVERYGOODSID {
+			r.BDLST = append(r.BDLST, lstBrand[i])
+		}
+	}
+}
+
+// XHBRAND 现货品种/品牌
+type XHBRAND struct {
+	BRANDID         int64  `json:"brandid"`   // 品牌id
+	BRANDNAME       string `json:"brandname"` // 品牌名称
+	DELIVERYGOODSID int64  `json:"-"`         // 品种ID
+	AREAUSERID      int64  `json:"-"`         // 用户id
+}
+
+// GetDataEx 获取现货品种/品牌
+func (r *XHBRAND) GetDataEx() (interface{}, error) {
+	sData := make([]XHBRAND, 0)
+	m := Ermcp3Brand{AREAUSERID: r.AREAUSERID, DELIVERYGOODSID: r.DELIVERYGOODSID}
+	d, err := m.GetData()
+	if err == nil {
+		for _, v := range d {
+			sData = append(sData, XHBRAND{DELIVERYGOODSID: v.DELIVERYGOODSID, BRANDID: v.BRANDID, BRANDNAME: v.BRANDNAME})
+		}
+	}
+	return sData, err
+}
+
+// XHWrstandard 现货品种/品类
+type XHWrstandard struct {
+	AREAUSERID      int64   `json:"-"  xorm:"'AREAUSERID'" form:"areauserid"`                         // 所属机构
+	DELIVERYGOODSID int64   `json:"deliverygoodsid"  xorm:"'DELIVERYGOODSID'" form:"deliverygoodsid"` // 品种ID
+	WRSTANDARDID    int64   `json:"wrstandardid"  xorm:"'WRSTANDARDID'"`                              // 现货商品ID(SEQ_WRSTANDARD)
+	WRSTANDARDCODE  string  `json:"wrstandardcode"  xorm:"'WRSTANDARDCODE'"`                          // 现货商品代码
+	WRSTANDARDNAME  string  `json:"wrstandardname"  xorm:"'WRSTANDARDNAME'"`                          // 现货商品名称
+	VATRATE         float64 `json:"vatrate"  xorm:"'VATRATE'"`                                        // 增值税率
+	ENUMDICNAME     string  `json:"enumdicname"  xorm:"'ENUMDICNAME'"`                                // 单位名称
+
+	MGLST []XHMiddleGoods `json:"mglst"` // 套保品列表
+}
+
+func (r *XHWrstandard) calc() {
+	if r.MGLST == nil {
+		r.MGLST = make([]XHMiddleGoods, 0)
+	}
+}
+
+func (r *XHWrstandard) buildSql() string {
+	var sqlId utils.SQLVal = `
+select t.areauserid,
+       t.deliverygoodsid,
+       t.wrstandardid,
+       t.wrstandardcode,
+       t.wrstandardname,
+       t.vatrate,
+       e.enumdicname
+  from wrstandard t
+  left join enumdicitem e
+    on t.unitid = e.enumitemname
+   and e.enumdiccode = 'goodsunit'
+ where 1 = 1
+`
+	sqlId.AndEx("t.AREAUSERID", r.AREAUSERID, r.AREAUSERID > 0)
+	sqlId.AndEx("t.DELIVERYGOODSID", r.DELIVERYGOODSID, r.DELIVERYGOODSID > 0)
+	return sqlId.String()
+}
+
+// GetDataEx 获取现货品种/品类
+func (r *XHWrstandard) GetDataEx() (interface{}, error) {
+	sData := make([]XHWrstandard, 0)
+	err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
+	for i := range sData {
+		sData[i].calc()
+	}
+
+	if len(sData) > 0 {
+		// 获取套保品列表
+		m := XHMiddleGoods{AREAUSERID: r.AREAUSERID, WRSTANDARDID: r.WRSTANDARDID}
+		if d, err := m.GetDataEx(); err == nil {
+			lstMidd := d.([]XHMiddleGoods)
+			for i := range sData {
+				sData[i].addMgLst(lstMidd)
+			}
+		}
+	}
+
+	return sData, err
+}
+
+func (r *XHWrstandard) addMgLst(midd []XHMiddleGoods) {
+	for i := range midd {
+		if r.WRSTANDARDID == midd[i].WRSTANDARDID {
+			r.MGLST = append(r.MGLST, midd[i])
+		}
+	}
+}
+
+// XHMiddleGoods 现货品种/品类/套保品
+type XHMiddleGoods struct {
+	AREAUSERID      int64   `json:"-"  xorm:"'AREAUSERID'" form:"areauserid"`     // 所属机构
+	WRSTANDARDID    int64   `json:"-"  xorm:"'WRSTANDARDID'" form:"wrstandardid"` // 现货商品ID(SEQ_WRSTANDARD)
+	CONVERTRATIO    float64 `json:"convertratio"  xorm:"'CONVERTRATIO'"`          // 拆算系数
+	MIDDLEGOODSID   int64   `json:"middlegoodsid"  xorm:"'MIDDLEGOODSID'"`        // 套保品种id
+	MIDDLEGOODSCODE string  `json:"middlegoodscode"  xorm:"'MIDDLEGOODSCODE'"`    // 套保品种代码
+	MIDDLEGOODSNAME string  `json:"middlegoodsname"  xorm:"'MIDDLEGOODSNAME'"`    // 套保品种名称
+	ENUMDICNAME     string  `json:"enumdicname"  xorm:"'ENUMDICNAME'"`            // 单位名称
+}
+
+func (r *XHMiddleGoods) calc() {
+
+}
+
+func (r *XHMiddleGoods) buildSql() string {
+	var sqlId utils.SQLVal = `
+select w.wrstandardid,
+       c.convertratio,
+       m.areauserid,
+       m.middlegoodsid,
+       m.middlegoodscode,
+       m.middlegoodsname,
+       e.enumdicname
+  from wrstandard w
+ inner join erms2_wrsconvertdetail c
+    on w.wrstandardid = c.wrstandardid
+ inner join erms_middlegoods m
+    on c.middlegoodsid = m.middlegoodsid
+  left join enumdicitem e
+    on m.goodsunitid = e.enumitemname
+   and e.enumdiccode = 'goodsunit'
+ where 1 = 1 and w.isvalid = 1
+`
+	sqlId.AndEx("m.areauserid", r.AREAUSERID, r.AREAUSERID > 0)
+	sqlId.AndEx("w.WRSTANDARDID", r.WRSTANDARDID, r.WRSTANDARDID > 0)
+	return sqlId.String()
+}
+
+// GetDataEx 获取现货品种/品类/套保品
+func (r *XHMiddleGoods) GetDataEx() (interface{}, error) {
+	sData := make([]XHMiddleGoods, 0)
+	err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
+	for i := range sData {
+		sData[i].calc()
+	}
+	return sData, err
+}

+ 1 - 1
models/tjmd.go

@@ -110,7 +110,7 @@ select to_char(t.orderid) orderid,
   left join goods g on t.goodsid=g.goodsid
  where 1 = 1
    and t.orderstatus in (3, 7)
-   and u.usertype = decode(%v,2,5,-1)
+   and u.usertype = decode(%v,2,5,2)
 `
 	// 投资者只能看到会员的单, 会员只能看到投资者的单, decode(%v,2,5,-1)
 	sqlId.FormatParam(r.USERTYPE)

+ 2 - 0
models/wrTrade2.go

@@ -810,6 +810,7 @@ type WrTradeDetail struct {
 	WRFACTORTYPEID  int64   `json:"wrfactortypeid"  xorm:"WRFACTORTYPEID"`              // 仓单要素类型ID/商品ID(77)
 	TRADEQTY        float64 `json:"tradeqty"  xorm:"TRADEQTY" form:"tradeqty"`          // 成交数量
 	TRADEPRICE      float64 `json:"tradeprice"  xorm:"TRADEPRICE" form:"tradeprice"`    // 成交价格
+	CHARGEVALUE     float64 `json:"chargevalue"  xorm:"'CHARGEVALUE'"`                  // 手续费
 	TRADETIME       string  `json:"tradetime"  xorm:"TRADETIME" form:"tradetime"`       // 成交时间
 	DELIVERYMONTH   string  `json:"deliverymonth"  xorm:"'DELIVERYMONTH'"`              // 交收月
 	ACCOUNTID       int64   `json:"accountid"  xorm:"ACCOUNTID"`                        // 资金账号
@@ -855,6 +856,7 @@ func (r *WrTradeDetail) buildSql() string {
 		"       t.MARKETID," +
 		"       t.TRADEQTY," +
 		"       t.TRADEPRICE," +
+		"       t.CHARGEVALUE," +
 		"       to_char(t.TRADETIME,'yyyy-mm-dd hh24:mi:ss') TRADETIME," +
 		"       u2.accountname matchusername," +
 		"       ta1.userid," +

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä