Просмотр исходного кода

Merge branches 'master' and 'master' of 192.168.30.132:MTP2.0/MTP20_IF

zhou.xiaoning 4 лет назад
Родитель
Сommit
1e45dc2fa5
6 измененных файлов с 200 добавлено и 24 удалено
  1. 6 1
      controllers/ermcp3/qryErmcp3.go
  2. 24 0
      docs/docs.go
  3. 24 0
      docs/swagger.json
  4. 17 0
      docs/swagger.yaml
  5. 72 8
      models/ermcp3.go
  6. 57 15
      models/ermcpAccMgr.go

+ 6 - 1
controllers/ermcp3/qryErmcp3.go

@@ -526,6 +526,11 @@ func QueryHedgePlan(c *gin.Context) {
 // @Tags 企业风险管理v3(app)
 func QueryGoodsGroup(c *gin.Context) {
 	a := app.GinUtils{Gin: app.Gin{C: c}}
-	m := models.Ermcp3GoodsGroup{}
+	req := struct {
+		AREAUSERID int64 `form:"areauserid" binding:"required"` // 所属机构id
+		EXCLUDECFG int32 `form:"excludecfg"`                    // 是否排除已配置
+	}{}
+	a.DoBindReq(&req)
+	m := models.Ermcp3GoodsGroup{AreaUserId: req.AREAUSERID, ExcludeCfg: req.EXCLUDECFG}
 	a.DoGetDataI(&m)
 }

+ 24 - 0
docs/docs.go

@@ -14323,6 +14323,10 @@ var doc = `{
                     "description": "商品组名称",
                     "type": "string"
                 },
+                "goodsunitid": {
+                    "description": "单位id",
+                    "type": "integer"
+                },
                 "middlegoodsid": {
                     "description": "套保商品id",
                     "type": "integer"
@@ -16609,9 +16613,29 @@ var doc = `{
                 }
             }
         },
+        "models.ErmcpLoginTaAccount": {
+            "type": "object",
+            "properties": {
+                "accountid": {
+                    "description": "账号id",
+                    "type": "integer"
+                },
+                "accountname": {
+                    "description": "账号名称",
+                    "type": "string"
+                }
+            }
+        },
         "models.ErmcpLoginUser": {
             "type": "object",
             "properties": {
+                "acclist": {
+                    "description": "关联资金账号",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.ErmcpLoginTaAccount"
+                    }
+                },
                 "accountname": {
                     "description": "用户名称",
                     "type": "string"

+ 24 - 0
docs/swagger.json

@@ -14307,6 +14307,10 @@
                     "description": "商品组名称",
                     "type": "string"
                 },
+                "goodsunitid": {
+                    "description": "单位id",
+                    "type": "integer"
+                },
                 "middlegoodsid": {
                     "description": "套保商品id",
                     "type": "integer"
@@ -16593,9 +16597,29 @@
                 }
             }
         },
+        "models.ErmcpLoginTaAccount": {
+            "type": "object",
+            "properties": {
+                "accountid": {
+                    "description": "账号id",
+                    "type": "integer"
+                },
+                "accountname": {
+                    "description": "账号名称",
+                    "type": "string"
+                }
+            }
+        },
         "models.ErmcpLoginUser": {
             "type": "object",
             "properties": {
+                "acclist": {
+                    "description": "关联资金账号",
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/models.ErmcpLoginTaAccount"
+                    }
+                },
                 "accountname": {
                     "description": "用户名称",
                     "type": "string"

+ 17 - 0
docs/swagger.yaml

@@ -3797,6 +3797,9 @@ definitions:
       goodsgroupname:
         description: 商品组名称
         type: string
+      goodsunitid:
+        description: 单位id
+        type: integer
       middlegoodsid:
         description: 套保商品id
         type: integer
@@ -5483,8 +5486,22 @@ definitions:
         description: 套保品种名称
         type: string
     type: object
+  models.ErmcpLoginTaAccount:
+    properties:
+      accountid:
+        description: 账号id
+        type: integer
+      accountname:
+        description: 账号名称
+        type: string
+    type: object
   models.ErmcpLoginUser:
     properties:
+      acclist:
+        description: 关联资金账号
+        items:
+          $ref: '#/definitions/models.ErmcpLoginTaAccount'
+        type: array
       accountname:
         description: 用户名称
         type: string

+ 72 - 8
models/ermcp3.go

@@ -340,19 +340,29 @@ func (r *Ermcp3MiddleGoodsDetail) GetData() ([]Ermcp3MiddleGoodsDetail, error) {
 	if len(sData) == 0 {
 		return sData, nil
 	}
-	mGoods := Ermcp3GoodsEx{AREAUSERID: r.Mg.AREAUSERID}
-	if gLst, err := mGoods.GetData(); err == nil {
+	bExist := false
+	// 查关联期货商品组
+	mGp := Ermcp3MiddleGoodsRelateGroup{AREAUSERID: r.Mg.AREAUSERID}
+	if gpLst, err := mGp.GetData(); err == nil {
 		for i := range sData {
-			sData[i].addGoodsGroup(gLst)
+			sData[i].addGoodsGroup(gpLst)
 		}
-		for i := range sData {
-			sData[i].addGoods(gLst)
+		bExist = len(gpLst) > 0
+	}
+
+	if bExist {
+		mGoods := Ermcp3GoodsEx{AREAUSERID: r.Mg.AREAUSERID}
+		if gLst, err := mGoods.GetData(); err == nil {
+			for i := range sData {
+				sData[i].addGoods(gLst)
+			}
 		}
 	}
+
 	return sData, nil
 }
 
-func (r *Ermcp3MiddleGoodsDetail) addGoodsGroup(gpLst []Ermcp3GoodsEx) {
+func (r *Ermcp3MiddleGoodsDetail) addGoodsGroup(gpLst []Ermcp3MiddleGoodsRelateGroup) {
 	for i := range gpLst {
 		if gpLst[i].MIDDLEGOODSID == r.Mg.MIDDLEGOODSID {
 			bExist := false
@@ -370,6 +380,7 @@ func (r *Ermcp3MiddleGoodsDetail) addGoodsGroup(gpLst []Ermcp3GoodsEx) {
 					EXEXCHANGECODE: gpLst[i].EXEXCHANGECODE,
 					GOODSGROUPNAME: gpLst[i].GOODSGROUPNAME,
 					ENUMDICNAME:    gpLst[i].ENUMDICNAME,
+					GOODSUNITID:    gpLst[i].GOODSUNITID,
 					GList:          make([]Ermcp3Goods, 0),
 				}
 				r.GPList = append(r.GPList, val)
@@ -442,6 +453,58 @@ func (r *Ermcp3MiddleGoodsDetailEx) GetDataEx() (interface{}, error) {
 	return sData, nil
 }
 
+// Ermcp3MiddleGoodsRelateGroup 套保商品关联的期货商品组
+type Ermcp3MiddleGoodsRelateGroup struct {
+	MIDDLEGOODSID  uint32  `json:"middlegoodsid"  xorm:"'middlegoodsid'"`   // 套保商品id
+	GOODSGROUPID   int32   `json:"goodsgroupid"  xorm:"'goodsgroupid'"`     // 商品组id
+	CONVERTRATIO   float64 `json:"convertratio"  xorm:"'convertratio'"`     // 折算系数(品种系数)
+	EXEXCHANGECODE string  `json:"exexchangecode"  xorm:"'exexchangecode'"` // 交易所代码
+	GOODSGROUPNAME string  `json:"goodsgroupname"  xorm:"'goodsgroupname'"` // 商品组名称
+	GOODSUNITID    int32   `json:"goodsunitid"  xorm:"'GOODUNITID'"`        // 单位id
+	ENUMDICNAME    string  `json:"enumdicname"`                             // 单位名称
+	AREAUSERID     int64   `json:"-"`                                       // 所属机构id
+}
+
+func (r *Ermcp3MiddleGoodsRelateGroup) calc() {
+	r.ENUMDICNAME = mtpcache.GetEnumDicitemName(r.GOODSUNITID)
+}
+
+func (r *Ermcp3MiddleGoodsRelateGroup) buildSql() string {
+	var sqlId utils.SQLVal = "select mg.areauserid," +
+		"       mg.middlegoodsid," +
+		"       gc.convertratio," +
+		"       ex.exexchangecode," +
+		"       gp.goodsgroupname," +
+		"       gp.goodunitid," +
+		"       gp.goodsgroupid" +
+		"  from erms_middlegoods mg" +
+		" inner join ERMCP_GGConvertConfig gc" +
+		"    on mg.goodsgroupid = gc.destgoodsgroupid" +
+		" inner join goodsgroup gp" +
+		"    on gc.srcgoodsgroupid = gp.goodsgroupid" +
+		"  left join externalexchange ex" +
+		"    on gp.exexchangeid = ex.autoid" +
+		" where mg.isvalid = 1" +
+		"   and gp.goodsgroupstatus = 1"
+	sqlId.AndEx("mg.AREAUSERID", r.AREAUSERID, r.AREAUSERID > 0)
+	return sqlId.String()
+}
+
+// GetData 套保品关联的期货商品组信息
+func (r *Ermcp3MiddleGoodsRelateGroup) GetData() ([]Ermcp3MiddleGoodsRelateGroup, error) {
+	sData := make([]Ermcp3MiddleGoodsRelateGroup, 0)
+	err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
+	for i := range sData {
+		sData[i].calc()
+	}
+	return sData, err
+}
+
+// GetDataEx 套保品关联的期货商品组信息
+func (r *Ermcp3MiddleGoodsRelateGroup) GetDataEx() (interface{}, error) {
+	return r.GetData()
+}
+
 // Ermcp3GoodsGroupEx 商品组(含商品列表)
 type Ermcp3GoodsGroupEx struct {
 	MIDDLEGOODSID  uint32        `json:"middlegoodsid"  xorm:"'middlegoodsid'"`   // 套保商品id
@@ -449,6 +512,7 @@ type Ermcp3GoodsGroupEx struct {
 	CONVERTRATIO   float64       `json:"convertratio"  xorm:"'convertratio'"`     // 折算系数(品种系数)
 	EXEXCHANGECODE string        `json:"exexchangecode"  xorm:"'exexchangecode'"` // 交易所代码
 	GOODSGROUPNAME string        `json:"goodsgroupname"  xorm:"'goodsgroupname'"` // 商品组名称
+	GOODSUNITID    int32         `json:"goodsunitid"  xorm:"'GOODSUNITID'"`       // 单位id
 	ENUMDICNAME    string        `json:"enumdicname"`                             // 单位名称
 	GList          []Ermcp3Goods `json:"glist"`                                   // 合约列表
 }
@@ -790,7 +854,7 @@ func (r *Ermcp3SellBuyContract) buildSql() string {
 		"         when t.pricetype = 3 then" +
 		"          t.qty - t.RECKONREALQTY" +
 		"         else" +
-		"          t.pricedqty - t.ReckonRealQty" +
+		"          t.pricedqty - nvl(t.ReckonRealQty,0)" +
 		"       end) unsureqty," +
 		"       t.reckonedamount PayAmount," +
 		"       t.invoiceamount," +
@@ -1960,7 +2024,7 @@ func (r *Ermcp3GoodsGroup) buildSql() string {
 		str := "select t.goodsgroupid" +
 			"  from ERMS_MiddleGoods t" +
 			" where t.isvalid=1 and t.areauserid = %v" +
-			"union all" +
+			" union all " +
 			"select goodsgroupid" +
 			"  from goodsgroup t" +
 			" where t.groupcategroyid not in" +

+ 57 - 15
models/ermcpAccMgr.go

@@ -25,21 +25,30 @@ type ErmcpLoginUserEx struct {
 
 // ErmcpLoginUser 查询登录账户
 type ErmcpLoginUser struct {
-	USERID       int64  `json:"userid"  xorm:"'USERID'"`             // 用户id
-	MEMBERUSERID int64  `json:"memberuserid"  xorm:"'MEMBERUSERID'"` // 所属会员id
-	ACCOUNTNAME  string `json:"accountname"  xorm:"'ACCOUNTNAME'"`   // 用户名称
-	USERTYPE     int32  `json:"usertype"  xorm:"'USERTYPE'"`         // 用户类型 -  1:交易所 2:机构 3:会员子机构 4:经纪人 5:投资者 6:客户 7:企业成员(云平台)
-	LOGINSTATUS  int32  `json:"loginstatus"  xorm:"'LOGINSTATUS'"`   // 登录账户状态 - 1:正常 2:冻结 3:无效
-	CREATETIME   string `json:"createtime"  xorm:"'CREATETIME'"`     // 创建时间
-	MODIFYTIME   string `json:"modifytime"  xorm:"'MODIFYTIME'"`     // 修改时间
-	ROLETYPE     string `json:"roletype"  xorm:"'ROLETYPE'"`         // 角色类型(逗号隔开,如22,23), 22:业务员 23:跟单员 24:交易员
-	CLIENTROLEID int32  `json:"clientroleid"  xorm:"'CLIENTROLEID'"` // 角色id(usertype=2)
-	ROLENAME     string `json:"rolename"  xorm:"'ROLENAME'"`         // 角色名称
-	ROLESTATUS   int32  `json:"rolestatus"  xorm:"'ROLESTATUS'"`     // 角色状态 1-启用 2-停用
-	LOGINCODE    string `json:"logincode"  xorm:"'LOGINCODE'"`       // 登录代码
-	LOGINID      int64  `json:"loginid"  xorm:"'LOGINID'"`           // 登录id(LOGINID)
-	PASSWORD     string `json:"password"  xorm:"'PASSWORD'"`         // 密码(不可解密)
-	MOBILE       string `json:"mobile"  xorm:"'MOBILE'"`             // 手机号
+	USERID       int64                 `json:"userid"  xorm:"'USERID'"`             // 用户id
+	MEMBERUSERID int64                 `json:"memberuserid"  xorm:"'MEMBERUSERID'"` // 所属会员id
+	ACCOUNTNAME  string                `json:"accountname"  xorm:"'ACCOUNTNAME'"`   // 用户名称
+	USERTYPE     int32                 `json:"usertype"  xorm:"'USERTYPE'"`         // 用户类型 -  1:交易所 2:机构 3:会员子机构 4:经纪人 5:投资者 6:客户 7:企业成员(云平台)
+	LOGINSTATUS  int32                 `json:"loginstatus"  xorm:"'LOGINSTATUS'"`   // 登录账户状态 - 1:正常 2:冻结 3:无效
+	CREATETIME   string                `json:"createtime"  xorm:"'CREATETIME'"`     // 创建时间
+	MODIFYTIME   string                `json:"modifytime"  xorm:"'MODIFYTIME'"`     // 修改时间
+	ROLETYPE     string                `json:"roletype"  xorm:"'ROLETYPE'"`         // 角色类型(逗号隔开,如22,23), 22:业务员 23:跟单员 24:交易员
+	CLIENTROLEID int32                 `json:"clientroleid"  xorm:"'CLIENTROLEID'"` // 角色id(usertype=2)
+	ROLENAME     string                `json:"rolename"  xorm:"'ROLENAME'"`         // 角色名称
+	ROLESTATUS   int32                 `json:"rolestatus"  xorm:"'ROLESTATUS'"`     // 角色状态 1-启用 2-停用
+	LOGINCODE    string                `json:"logincode"  xorm:"'LOGINCODE'"`       // 登录代码
+	LOGINID      int64                 `json:"loginid"  xorm:"'LOGINID'"`           // 登录id(LOGINID)
+	PASSWORD     string                `json:"password"  xorm:"'PASSWORD'"`         // 密码(不可解密)
+	MOBILE       string                `json:"mobile"  xorm:"'MOBILE'"`             // 手机号
+	AccList      []ErmcpLoginTaAccount `json:"acclist"`                             // 关联资金账号
+}
+
+func (r *ErmcpLoginUser) addAcc(accLst []ErmcpLoginTaAccount) {
+	for i := range accLst {
+		if accLst[i].LOGINID == r.LOGINID {
+			r.AccList = append(r.AccList, accLst[i])
+		}
+	}
 }
 
 func (r *ErmcpLoginUser) calc() {
@@ -141,7 +150,18 @@ func (r *ErmcpLoginUser) GetDataEx() (interface{}, error) {
 	err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
 	for i := range sData {
 		sData[i].calc()
+		sData[i].AccList = make([]ErmcpLoginTaAccount, 0)
+	}
+	// 查询登录账号关联的资金账号
+	if len(sData) > 0 {
+		m := ErmcpLoginTaAccount{}
+		if accLst, err := m.GetData(); err == nil {
+			for i := range sData {
+				sData[i].addAcc(accLst)
+			}
+		}
 	}
+	// 用户分组
 	for _, v := range sData {
 		for i := range sDataEx {
 			if v.USERTYPE == 2 {
@@ -662,3 +682,25 @@ func (r *ErmcpTaAccountInfo) GetDataEx() (interface{}, error) {
 	}
 	return sData, err
 }
+
+// ErmcpLoginTaAccount 登录id关联的资金账号
+type ErmcpLoginTaAccount struct {
+	ACCOUNTID   int64  `json:"accountid"  xorm:"'ACCOUNTID'"`     // 账号id
+	ACCOUNTNAME string `json:"accountname"  xorm:"'ACCOUNTNAME'"` // 账号名称
+	LOGINID     int64  `json:"-"  xorm:"'LOGINID'"`               // 登录id
+}
+
+func (r *ErmcpLoginTaAccount) buildSql() string {
+	var sqlId utils.SQLVal = "select t.loginid, t.accountid, ta.accountname" +
+		"  from logintaaccount t" +
+		" inner join taaccount ta" +
+		"    on t.accountid = ta.accountid"
+	return sqlId.String()
+}
+
+// GetData
+func (r *ErmcpLoginTaAccount) GetData() ([]ErmcpLoginTaAccount, error) {
+	sData := make([]ErmcpLoginTaAccount, 0)
+	err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
+	return sData, err
+}