فهرست منبع

1.查客户资料千海金接口兼容企业风管
2.敞口报表合同明细增加交易用户名称字段

zou.yingbin 4 سال پیش
والد
کامیت
e7f0d025fc
7فایلهای تغییر یافته به همراه73 افزوده شده و 52 حذف شده
  1. 1 1
      controllers/qhj/qryQhj.go
  2. 2 1
      controllers/qhjPCWeb/qryQhjPCWeb.go
  3. 4 0
      docs/docs.go
  4. 4 0
      docs/swagger.json
  5. 3 0
      docs/swagger.yaml
  6. 55 50
      models/ermcp3Report.go
  7. 4 0
      models/qhj.go

+ 1 - 1
controllers/qhj/qryQhj.go

@@ -286,7 +286,7 @@ func QueryCustomerInfo(c *gin.Context) {
 		INCLUDESUB   int32  `form:"includesub"`                               // 是否包含子级
 	}{}
 	a.DoBindReq(&req)
-	m := models.QhjCustomer{USERID: req.USERID, USERINFOTYPE: req.USERINFOTYPE, QUERYTYPE: req.QUERYTYPE,
+	m := models.QhjCustomer{USERID: mtpcache.GetAreaUserId(req.USERID, 0), USERINFOTYPE: req.USERINFOTYPE, QUERYTYPE: req.QUERYTYPE,
 		CUSTOMERNAME: req.CUSTOMERNAME, NICKNAME: req.NICKNAME, IncludeSub: req.INCLUDESUB}
 	a.DoGetDataI(&m)
 }

+ 2 - 1
controllers/qhjPCWeb/qryQhjPCWeb.go

@@ -10,6 +10,7 @@ import (
 	"github.com/gin-gonic/gin"
 	"mtp2_if/global/app"
 	"mtp2_if/models"
+	"mtp2_if/mtpcache"
 )
 
 // QuerySubArea
@@ -57,7 +58,7 @@ func QueryCustomerInfo(c *gin.Context) {
 	}{}
 	a.DoBindReq(&req)
 	// Tips: 手机号码是加密存储的, 做不了模糊匹配, 加了又去掉了
-	m := models.QhjMgrCustomer{USERID: req.USERID, USERINFOTYPE: req.USERINFOTYPE, QUERYTYPE: req.QUERYTYPE,
+	m := models.QhjMgrCustomer{USERID: mtpcache.GetAreaUserId(req.USERID, 0), USERINFOTYPE: req.USERINFOTYPE, QUERYTYPE: req.QUERYTYPE,
 		CUSTOMERNAME: req.CUSTOMERNAME, NICKNAME: req.NICKNAME, IncludeSub: req.INCLUDESUB}
 	a.DoGetDataI(&m)
 }

+ 4 - 0
docs/docs.go

@@ -17392,6 +17392,10 @@ var doc = `{
                     "description": "机构id",
                     "type": "integer"
                 },
+                "username": {
+                    "description": "交易用户",
+                    "type": "string"
+                },
                 "wrstandardcode": {
                     "description": "品类代码",
                     "type": "string"

+ 4 - 0
docs/swagger.json

@@ -17376,6 +17376,10 @@
                     "description": "机构id",
                     "type": "integer"
                 },
+                "username": {
+                    "description": "交易用户",
+                    "type": "string"
+                },
                 "wrstandardcode": {
                     "description": "品类代码",
                     "type": "string"

+ 3 - 0
docs/swagger.yaml

@@ -4026,6 +4026,9 @@ definitions:
       userid:
         description: 机构id
         type: integer
+      username:
+        description: 交易用户
+        type: string
       wrstandardcode:
         description: 品类代码
         type: string

+ 55 - 50
models/ermcp3Report.go

@@ -8,7 +8,6 @@ package models
 
 import (
 	"fmt"
-	"github.com/shopspring/decimal"
 	"mtp2_if/db"
 	"mtp2_if/mtpcache"
 	"mtp2_if/utils"
@@ -678,6 +677,7 @@ type Ermcp3ExposureContractDetail struct {
 	EnumdicName      string  `json:"enumdicname"`      // 单位名称
 	BUYUSERNAME      string  `json:"buyusername"`      // 采购方名称
 	SELLUSERNAME     string  `json:"sellusername"`     // 销售方名称
+	USERNAME         string  `json:"username"`         // 交易用户
 	CurQty           float64 `json:"curqty"`           // 今定价量
 	DiffQty          float64 `json:"diffqty"`          // 套保品种今变动量
 	DiffHedgeQty     float64 `json:"diffhedgeqty"`     // 套保变动量
@@ -699,6 +699,9 @@ func (r *Ermcp3ExposureContractDetail) calc() {
 	r.EnumdicName = mtpcache.GetEnumDicitemName(r.UNITID)
 	r.BUYUSERNAME = mtpcache.GetUserNameByUserId(r.BUYUSERID)
 	r.SELLUSERNAME = mtpcache.GetUserNameByUserId(r.SELLUSERID)
+	r.USERNAME = mtpcache.GetUserNameByUserId(r.USERID)
+	// 终端取的是BUYUSERNAME显示, USERNAME是新加的, 把r.BUYUSERNAME = r.USERNAME 这样终端不用改
+	r.BUYUSERNAME = r.USERNAME
 }
 
 func (r *Ermcp3ExposureContractDetail) buildSql() string {
@@ -757,6 +760,7 @@ func (r *Ermcp3ExposureContractDetail) GetDataEx() (interface{}, error) {
 	sData := make([]Ermcp3ExposureContractDetail, 0)
 	err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
 	for i := range sData {
+		sData[i].USERID = r.USERID
 		sData[i].calc()
 	}
 	return sData, err
@@ -864,51 +868,51 @@ func (r *Ermcp3ExposureHedgeplanDetail) GetDataEx() (interface{}, error) {
 
 // Ermcp3AreaSpotPLReport 现货报表(日/月/周/季/年)
 type Ermcp3AreaSpotPLReport struct {
-	RECKONDATE            string  `json:"reckondate"  xorm:"RECKONDATE"`                       // 日照时期(yyyyMMdd)
-	CYCLETIME             string  `json:"cycletime"  xorm:"'CYCLETIME'"`                       // 周期时间 月(YYYYMM)  季(YYYYQ) 年(YYYY) 周(YYYYIW) 全(0)【原值】
-	CYCLETYPE             int32   `json:"cycletype"  xorm:"'CYCLETYPE'"`                       // 周期类型 - 1:月 2:季 3:年 4:周 5:全报表【原值】
-	AREAUSERID            int64   `json:"areauserid"  xorm:"AREAUSERID"`                       // 所属机构\交易用户ID
-	ACCOUNTID             int64   `json:"accountid"  xorm:"ACCOUNTID"`                         // 期货账户ID (作废, 默认为0)
-	WRFACTORTYPEID        int64   `json:"wrfactortypeid"  xorm:"WRFACTORTYPEID"`               // 仓单要素类型ID(212+Unix秒时间戳(10位)+xxxxxx)
-	CURRENCYID            int32   `json:"currencyid"  xorm:"CURRENCYID"`                       // 结算币种ID【原值】
-	BIZTYPE               int32   `json:"biztype"  xorm:"BIZTYPE"`                             // 业务类型 - 1:套保 2:套利
-	DELIVERYGOODSID       int64   `json:"deliverygoodsid"  xorm:"DELIVERYGOODSID"`             // 现货品种ID
-	WRSTANDARDID          int64   `json:"wrstandardid"  xorm:"WRSTANDARDID"`                   // 现货品类ID
-	SPOTGOODSBRANDID      int32   `json:"spotgoodsbrandid"  xorm:"SPOTGOODSBRANDID"`           // 现货品牌ID
-	ORIBUYQTY             float64 `json:"oribuyqty"  xorm:"ORIBUYQTY"`                         // 期初采购总量
-	ORIBUYAMOUNT          float64 `json:"oribuyamount"  xorm:"ORIBUYAMOUNT"`                   // 期初采购总额
-	ORISELLQTY            float64 `json:"orisellqty"  xorm:"ORISELLQTY"`                       // 期初销售总量
-	ORISELLAMOUNT         float64 `json:"orisellamount"  xorm:"ORISELLAMOUNT"`                 // 期初销售总额
-	ORIQTY                float64 `json:"oriqty"  xorm:"ORIQTY"`                               // 期初量
-	ORIAVERAGEPRICE       float64 `json:"oriaverageprice"  xorm:"ORIAVERAGEPRICE"`             // 期初均价
-	ORIAMOUNT             float64 `json:"oriamount"  xorm:"ORIAMOUNT"`                         // 期初额
-	TODAYBUYQTY           float64 `json:"todaybuyqty"  xorm:"TODAYBUYQTY"`                     // 今日采购量(今采购量)
-	TODAYBUYAMOUNT        float64 `json:"todaybuyamount"  xorm:"TODAYBUYAMOUNT"`               // 今日采购额(今采购额)
-	TODAYBUYAVERAGEPRICE  float64 `json:"todaybuyaverageprice"  xorm:"TODAYBUYAVERAGEPRICE"`   // 今日采购均价
-	TODAYSELLQTY          float64 `json:"todaysellqty"  xorm:"TODAYSELLQTY"`                   // 今日销售量(今销售量)
-	TODAYSELLAMOUNT       float64 `json:"todaysellamount"  xorm:"TODAYSELLAMOUNT"`             // 今日销售额(今销售额)
-	TODAYSELLAVERAGEPRICE float64 `json:"todaysellaverageprice"  xorm:"TODAYSELLAVERAGEPRICE"` // 今日销售均价
-	CURBUYQTY             float64 `json:"curbuyqty"  xorm:"CURBUYQTY"`                         // 期末采购总量
-	CURBUYAMOUNT          float64 `json:"curbuyamount"  xorm:"CURBUYAMOUNT"`                   // 期末采购总额
-	CURSELLQTY            float64 `json:"cursellqty"  xorm:"CURSELLQTY"`                       // 期末销售总量
-	CURSELLAMOUNT         float64 `json:"cursellamount"  xorm:"CURSELLAMOUNT"`                 // 期末销售总额
-	CURQTY                float64 `json:"curqty"  xorm:"CURQTY"`                               // 期末量
-	CURAVERAGEPRICE       float64 `json:"curaverageprice"  xorm:"CURAVERAGEPRICE"`             // 期末均价
-	CURAMOUNT             float64 `json:"curamount"  xorm:"CURAMOUNT"`                         // 期末额
-	CURSPOTPRICE          float64 `json:"curspotprice"  xorm:"CURSPOTPRICE"`                   // 参考市价(最新价)
-	CURMARKETVALUE        float64 `json:"curmarketvalue"  xorm:"CURMARKETVALUE"`               // 参考市值(期末市值)
-	ACTUALPL              float64 `json:"actualpl"  xorm:"ACTUALPL"`                           // 现货损益
-	FLOATPL               float64 `json:"floatpl"  xorm:"FLOATPL"`                             // 浮动损益
-	UPDATETIME            string  `json:"updatetime"  xorm:"UPDATETIME"`                       // 更新时间
-	TODAYINQTY            float64 `json:"todayinqty"  xorm:"TODAYINQTY"`                       // 今日入库量(今入库量)
-	TODAYOUTQTY           float64 `json:"todayoutqty"  xorm:"TODAYOUTQTY"`                     // 今日出库量(今出库量)
-	DELIVERYGOODSCODE     string  `json:"deliverygoodscode"  xorm:"'DELIVERYGOODSCODE'"`       // 现货商品代码
-	DELIVERYGOODSNAME     string  `json:"deliverygoodsname"  xorm:"'DELIVERYGOODSNAME'"`       // 现货商品名称
-	GOODSUNITID           int32   `json:"goodsunitid"  xorm:"'GOODSUNITID'"`                   // 现货商品单位id
-	WRSTANDARDCODE        string  `json:"wrstandardcode"  xorm:"'WRSTANDARDCODE'"`             // 品类代码
-	WRSTANDARDNAME        string  `json:"wrstandardname"  xorm:"'WRSTANDARDNAME'"`             // 品类名称
-	UNITID                int32   `json:"unitid"  xorm:"'UNITID'"`                             // 品类单位id
-	BRANDNAME             string  `json:"brandname"  xorm:"'BRANDNAME'"`                       // 品牌名称
+	RECKONDATE            string   `json:"reckondate"  xorm:"RECKONDATE"`                       // 日照时期(yyyyMMdd)
+	CYCLETIME             string   `json:"cycletime"  xorm:"'CYCLETIME'"`                       // 周期时间 月(YYYYMM)  季(YYYYQ) 年(YYYY) 周(YYYYIW) 全(0)【原值】
+	CYCLETYPE             int32    `json:"cycletype"  xorm:"'CYCLETYPE'"`                       // 周期类型 - 1:月 2:季 3:年 4:周 5:全报表【原值】
+	AREAUSERID            int64    `json:"areauserid"  xorm:"AREAUSERID"`                       // 所属机构\交易用户ID
+	ACCOUNTID             int64    `json:"accountid"  xorm:"ACCOUNTID"`                         // 期货账户ID (作废, 默认为0)
+	WRFACTORTYPEID        int64    `json:"wrfactortypeid"  xorm:"WRFACTORTYPEID"`               // 仓单要素类型ID(212+Unix秒时间戳(10位)+xxxxxx)
+	CURRENCYID            int32    `json:"currencyid"  xorm:"CURRENCYID"`                       // 结算币种ID【原值】
+	BIZTYPE               int32    `json:"biztype"  xorm:"BIZTYPE"`                             // 业务类型 - 1:套保 2:套利
+	DELIVERYGOODSID       int64    `json:"deliverygoodsid"  xorm:"DELIVERYGOODSID"`             // 现货品种ID
+	WRSTANDARDID          int64    `json:"wrstandardid"  xorm:"WRSTANDARDID"`                   // 现货品类ID
+	SPOTGOODSBRANDID      int32    `json:"spotgoodsbrandid"  xorm:"SPOTGOODSBRANDID"`           // 现货品牌ID
+	ORIBUYQTY             float64  `json:"oribuyqty"  xorm:"ORIBUYQTY"`                         // 期初采购总量
+	ORIBUYAMOUNT          float64  `json:"oribuyamount"  xorm:"ORIBUYAMOUNT"`                   // 期初采购总额
+	ORISELLQTY            float64  `json:"orisellqty"  xorm:"ORISELLQTY"`                       // 期初销售总量
+	ORISELLAMOUNT         float64  `json:"orisellamount"  xorm:"ORISELLAMOUNT"`                 // 期初销售总额
+	ORIQTY                float64  `json:"oriqty"  xorm:"ORIQTY"`                               // 期初量
+	ORIAVERAGEPRICE       SFLOAT64 `json:"oriaverageprice"  xorm:"ORIAVERAGEPRICE"`             // 期初均价
+	ORIAMOUNT             float64  `json:"oriamount"  xorm:"ORIAMOUNT"`                         // 期初额
+	TODAYBUYQTY           float64  `json:"todaybuyqty"  xorm:"TODAYBUYQTY"`                     // 今日采购量(今采购量)
+	TODAYBUYAMOUNT        float64  `json:"todaybuyamount"  xorm:"TODAYBUYAMOUNT"`               // 今日采购额(今采购额)
+	TODAYBUYAVERAGEPRICE  SFLOAT64 `json:"todaybuyaverageprice"  xorm:"TODAYBUYAVERAGEPRICE"`   // 今日采购均价
+	TODAYSELLQTY          float64  `json:"todaysellqty"  xorm:"TODAYSELLQTY"`                   // 今日销售量(今销售量)
+	TODAYSELLAMOUNT       float64  `json:"todaysellamount"  xorm:"TODAYSELLAMOUNT"`             // 今日销售额(今销售额)
+	TODAYSELLAVERAGEPRICE SFLOAT64 `json:"todaysellaverageprice"  xorm:"TODAYSELLAVERAGEPRICE"` // 今日销售均价
+	CURBUYQTY             float64  `json:"curbuyqty"  xorm:"CURBUYQTY"`                         // 期末采购总量
+	CURBUYAMOUNT          float64  `json:"curbuyamount"  xorm:"CURBUYAMOUNT"`                   // 期末采购总额
+	CURSELLQTY            float64  `json:"cursellqty"  xorm:"CURSELLQTY"`                       // 期末销售总量
+	CURSELLAMOUNT         float64  `json:"cursellamount"  xorm:"CURSELLAMOUNT"`                 // 期末销售总额
+	CURQTY                float64  `json:"curqty"  xorm:"CURQTY"`                               // 期末量
+	CURAVERAGEPRICE       SFLOAT64 `json:"curaverageprice"  xorm:"CURAVERAGEPRICE"`             // 期末均价
+	CURAMOUNT             float64  `json:"curamount"  xorm:"CURAMOUNT"`                         // 期末额
+	CURSPOTPRICE          SFLOAT64 `json:"curspotprice"  xorm:"CURSPOTPRICE"`                   // 参考市价(最新价)
+	CURMARKETVALUE        SFLOAT64 `json:"curmarketvalue"  xorm:"CURMARKETVALUE"`               // 参考市值(期末市值)
+	ACTUALPL              float64  `json:"actualpl"  xorm:"ACTUALPL"`                           // 现货损益
+	FLOATPL               SFLOAT64 `json:"floatpl"  xorm:"FLOATPL"`                             // 浮动损益
+	UPDATETIME            string   `json:"updatetime"  xorm:"UPDATETIME"`                       // 更新时间
+	TODAYINQTY            float64  `json:"todayinqty"  xorm:"TODAYINQTY"`                       // 今日入库量(今入库量)
+	TODAYOUTQTY           float64  `json:"todayoutqty"  xorm:"TODAYOUTQTY"`                     // 今日出库量(今出库量)
+	DELIVERYGOODSCODE     string   `json:"deliverygoodscode"  xorm:"'DELIVERYGOODSCODE'"`       // 现货商品代码
+	DELIVERYGOODSNAME     string   `json:"deliverygoodsname"  xorm:"'DELIVERYGOODSNAME'"`       // 现货商品名称
+	GOODSUNITID           int32    `json:"goodsunitid"  xorm:"'GOODSUNITID'"`                   // 现货商品单位id
+	WRSTANDARDCODE        string   `json:"wrstandardcode"  xorm:"'WRSTANDARDCODE'"`             // 品类代码
+	WRSTANDARDNAME        string   `json:"wrstandardname"  xorm:"'WRSTANDARDNAME'"`             // 品类名称
+	UNITID                int32    `json:"unitid"  xorm:"'UNITID'"`                             // 品类单位id
+	BRANDNAME             string   `json:"brandname"  xorm:"'BRANDNAME'"`                       // 品牌名称
 
 	EnumdicName  string `json:"enumdicname"`  // 现货商品单位名称
 	UNITIDNAME   string `json:"unitidname"`   // 品类单位名称
@@ -925,12 +929,13 @@ func (r *Ermcp3AreaSpotPLReport) calc() {
 	r.UNITIDNAME = mtpcache.GetEnumDicitemName(r.UNITID)
 	r.ACCOUNTNAME = mtpcache.GetUserNameByUserId(r.AREAUSERID)
 	r.CURRENCYNAME = mtpcache.GetCurrencyName(r.CURRENCYID)
-	fCalcAvePrice := func(avePrice *float64, amount, qty float64) {
+	fCalcAvePrice := func(avePrice *SFLOAT64, amount, qty float64) {
 		if qty > 1e-10 {
-			*avePrice = amount / qty
+			avePrice.Set(amount / qty)
+			avePrice.Round(3)
 		} else if qty < -1e-10 {
-			*avePrice = amount / qty
-			*avePrice, _ = decimal.NewFromFloat(*avePrice).Round(3).Float64()
+			avePrice.Set(amount / qty)
+			avePrice.Round(3)
 		} else {
 			*avePrice = 0
 		}

+ 4 - 0
models/qhj.go

@@ -1209,6 +1209,7 @@ func (r *QhjCustomer) buildSqlNormal() string {
 		"       u.CUSTOMERNAME," +
 		"       u.NICKNAME," +
 		"       u.CARDTYPEID CARDTYPE," +
+		"       e.enumdicname       CARDTYPENAME," +
 		"       u.CARDNUM," +
 		"       u.MOBILE," +
 		"       u.TELPHONE," +
@@ -1243,6 +1244,9 @@ func (r *QhjCustomer) buildSqlNormal() string {
 		"    on a.userid = k.userid" +
 		"  left join userinfo u" +
 		"    on a.userid = u.userid" +
+		"  left join enumdicitem e" +
+		"    on u.cardtypeid = e.enumitemname" +
+		"   and e.enumdiccode = 'certificatetype'" +
 		" where 1=1 and a.status in(%v)"
 	status := DecodeStr(r.QUERYTYPE == 3, "4", "6")
 	sqlId.FormatParam(r.USERID, r.level(), status)