소스 검색

查询接口areauserid改为userid

zou.yingbin 4 년 전
부모
커밋
866631e7fd
11개의 변경된 파일539개의 추가작업 그리고 265개의 파일을 삭제
  1. 74 45
      controllers/ermcp3/qryErmcp3.go
  2. 3 3
      controllers/ermcp3/qryErmcp3Report.go
  3. 108 54
      docs/docs.go
  4. 108 54
      docs/swagger.json
  5. 82 46
      docs/swagger.yaml
  6. 25 5
      models/ermcp3.go
  7. 43 43
      models/ermcp3Report.go
  8. 8 0
      mtpcache/enumdicitem.go
  9. 11 4
      mtpcache/systemmanager.go
  10. 70 11
      mtpcache/useraccount.go
  11. 7 0
      mtpcache/username.go

+ 74 - 45
controllers/ermcp3/qryErmcp3.go

@@ -12,6 +12,7 @@ import (
 	"mtp2_if/global/e"
 	"mtp2_if/logger"
 	"mtp2_if/models"
+	"mtp2_if/mtpcache"
 	"net/http"
 )
 
@@ -19,7 +20,8 @@ import (
 // @Summary 查询现货商品
 // @Produce json
 // @Security ApiKeyAuth
-// @Param areauserid query int true "所属机构id"
+// @Param userid query int true "用户id"
+// @Param usertype query int false "用户类型 2-机构 7-企业成员"
 // @Param excludecfg query int false "排除已配置的业务类型商品 1-套保 2-套利"
 // @Success 200 {array} models.ErmcpDeliveryGoods
 // @Failure 500 {object} app.Response
@@ -28,11 +30,14 @@ import (
 func QueryDeliveryGoods(c *gin.Context) {
 	a := app.GinUtils{Gin: app.Gin{C: c}}
 	req := struct {
-		AreaUserId int64 `form:"areauserid" binding:"required"` // 所属机构id
-		ExcludeCfg int32 `form:"excludecfg"`                    // 排除已配置的业务类型商品 1-套保 2-套利
+		UserId     int64 `form:"userid" binding:"required"` // 用户id
+		USERTYPE   int32 `form:"usertype"`                  // 用户类型
+		ExcludeCfg int32 `form:"excludecfg"`                // 排除已配置的业务类型商品 1-套保 2-套利
 	}{}
+
 	a.DoBindReq(&req)
-	m := models.ErmcpDeliveryGoods{AREAUSERID: req.AreaUserId, ExcludeCfg: req.ExcludeCfg}
+	m := models.ErmcpDeliveryGoods{AREAUSERID: mtpcache.GetAreaUserId(req.UserId, req.USERTYPE),
+		ExcludeCfg: req.ExcludeCfg}
 	a.DoGetDataI(&m)
 }
 
@@ -40,7 +45,8 @@ func QueryDeliveryGoods(c *gin.Context) {
 // @Summary 查询现货商品详情
 // @Produce json
 // @Security ApiKeyAuth
-// @Param areauserid query int true "所属机构id"
+// @Param userid query int true "用户id"
+// @Param usertype query int false "用户类型 2-机构 7-企业成员"
 // @Param deliverygoodsid query int false "现货商品id"
 // @Success 200 {array} models.ErmcpDeliveryGoodsDetailEx
 // @Failure 500 {object} app.Response
@@ -49,12 +55,14 @@ func QueryDeliveryGoods(c *gin.Context) {
 func QueryDeliveryGoodsDetail(c *gin.Context) {
 	a := app.GinUtils{Gin: app.Gin{C: c}}
 	req := struct {
-		AreaUserId      int64 `form:"areauserid" binding:"required"` // 所属机构id
-		DeliveryGoodsId int32 `form:"deliverygoodsid"`               // 现货商品id
+		UserId          int64 `form:"userid" binding:"required"` // 用户id
+		USERTYPE        int32 `form:"usertype"`                  // 用户类型
+		DeliveryGoodsId int32 `form:"deliverygoodsid"`           // 现货商品id
 	}{}
 	a.DoBindReq(&req)
 	m := models.ErmcpDeliveryGoodsDetailEx{}
-	m.Data = models.ErmcpDeliveryGoods{AREAUSERID: req.AreaUserId, DELIVERYGOODSID: req.DeliveryGoodsId}
+	m.Data = models.ErmcpDeliveryGoods{AREAUSERID: mtpcache.GetAreaUserId(req.UserId, req.USERTYPE),
+		DELIVERYGOODSID: req.DeliveryGoodsId}
 	a.DoGetDataI(&m)
 }
 
@@ -62,7 +70,8 @@ func QueryDeliveryGoodsDetail(c *gin.Context) {
 // @Summary 查询套保品种详情(套保品种/商品详情)
 // @Produce json
 // @Security ApiKeyAuth
-// @Param areauserid query int true  "所属机构ID"
+// @Param userid query int true  "用户id"
+// @Param usertype query int false "用户类型 2-机构 7-企业成员"
 // @Param middlegoodsid query int false  "套保品种id"
 // @Success 200 {array} models.Ermcp3MiddleGoodsDetailEx
 // @Failure 500 {object} app.Response
@@ -71,12 +80,13 @@ func QueryDeliveryGoodsDetail(c *gin.Context) {
 func QueryMiddleGoodsDetail(c *gin.Context) {
 	a := app.GinUtils{Gin: app.Gin{C: c}}
 	req := struct {
-		AREAUSERID    int64  `form:"areauserid" binding:"required"` // 所属机构id
-		MIDDLEGOODSID uint32 `form:"middlegoodsid"`                 // 套保品种id
+		USERID        int64  `form:"userid" binding:"required"` // 所属机构id
+		USERTYPE      int32  `form:"usertype"`                  // 用户类型
+		MIDDLEGOODSID uint32 `form:"middlegoodsid"`             // 套保品种id
 	}{}
 	a.DoBindReq(&req)
 	m := models.Ermcp3MiddleGoodsDetailEx{}
-	m.Ermcp3MiddleGoodsDetail.Mg.AREAUSERID = req.AREAUSERID
+	m.Ermcp3MiddleGoodsDetail.Mg.AREAUSERID = mtpcache.GetAreaUserId(req.USERID, req.USERTYPE)
 	m.Ermcp3MiddleGoodsDetail.Mg.MIDDLEGOODSID = req.MIDDLEGOODSID
 	a.DoGetDataI(&m)
 }
@@ -95,10 +105,9 @@ type QryContractReq struct {
 // @Summary 查询现货合同
 // @Produce json
 // @Security ApiKeyAuth
-// @Param areauserid query int true "所属机构ID"
-// @Param querytype query int true "查询类型 1-未提交 2-待审核 3-履约中 4-已完成"
-// @Param userid query int false "用户ID"
+// @Param userid query int true "用户id"
 // @Param usertype query int false "用户类型 2-机构 7-企业成员"
+// @Param querytype query int true "查询类型 1-未提交 2-待审核 3-履约中 4-已完成"
 // @Param contractid query string false "合同ID(SpotContractId)"
 // @Success 200 {array} models.Ermcp3Contract
 // @Failure 500 {object} app.Response
@@ -108,7 +117,8 @@ func QuerySpotContract(c *gin.Context) {
 	a := app.GinUtils{Gin: app.Gin{C: c}}
 	req := QryContractReq{}
 	a.DoBindReq(&req)
-	m := models.Ermcp3Contract{USERID: req.AreadUserId, QryType: req.QUERYTYPE,
+	m := models.Ermcp3Contract{USERID: mtpcache.GetAreaUserId(req.USERID, req.USERTYPE),
+		QryType:   req.QUERYTYPE,
 		OwnUserId: req.USERID, UserType: req.USERTYPE, SPOTCONTRACTID: req.CONTRACTID}
 	a.DoGetDataI(&m)
 }
@@ -117,11 +127,10 @@ func QuerySpotContract(c *gin.Context) {
 // @Summary 查询合同(采购/销售)
 // @Produce json
 // @Security ApiKeyAuth
-// @Param areauserid query int true "所属机构ID"
+// @Param userid query int true "用户id"
+// @Param usertype query int false "用户类型 2-机构 7-企业成员"
 // @Param contracttype query int true "合同类型 1-采购, -1-销售"
 // @Param querytype query int true "查询类型 1-全部 2-待点价 3-履约结算 4-已完成"
-// @Param userid query int false "用户ID"
-// @Param usertype query int false "用户类型 2-机构 7-企业成员"
 // @Param contractid query string false "合同ID(SpotContractId)"
 // @Success 200 {array} models.Ermcp3SellBuyContract
 // @Failure 500 {object} app.Response
@@ -131,8 +140,9 @@ func QuerySpotContractBS(c *gin.Context) {
 	a := app.GinUtils{Gin: app.Gin{C: c}}
 	req := QryContractReq{}
 	a.DoBindReq(&req)
-	m := models.Ermcp3SellBuyContract{UserID: req.AreadUserId, Contracttype: req.CONTRACTTYPE,
-		OwnUserId: req.USERID, UserType: req.USERTYPE, SpotContractId: req.CONTRACTID, QryType: req.QUERYTYPE}
+	m := models.Ermcp3SellBuyContract{UserID: mtpcache.GetAreaUserId(req.USERID, req.USERTYPE),
+		Contracttype: req.CONTRACTTYPE,
+		OwnUserId:    req.USERID, UserType: req.USERTYPE, SpotContractId: req.CONTRACTID, QryType: req.QUERYTYPE}
 	a.DoGetDataI(&m)
 }
 
@@ -140,7 +150,8 @@ func QuerySpotContractBS(c *gin.Context) {
 // @Summary 查询敞口现货明细
 // @Produce json
 // @Security ApiKeyAuth
-// @Param areauserid query int true "所属机构ID"
+// @Param userid query int true "用户id"
+// @Param usertype query int false "用户类型 2-机构 7-企业成员"
 // @Param middlegoodsid query int true "套保商品"
 // @Success 200 {array} models.Ermcp3ExposureDetail
 // @Failure 500 {object} app.Response
@@ -149,11 +160,13 @@ func QuerySpotContractBS(c *gin.Context) {
 func QueryExposureDetail(c *gin.Context) {
 	a := app.GinUtils{Gin: app.Gin{C: c}}
 	req := struct {
-		AREAUSERID    int64 `form:"areauserid" binding:"required"`    // 所属机构id
+		USERID        int64 `form:"userid" binding:"required"`        // 用户id
+		USERTYPE      int32 `form:"usertype"`                         // 用户类型
 		MIDDLEGOODSID int32 `form:"middlegoodsid" binding:"required"` // 套保商品id
 	}{}
 	a.DoBindReq(&req)
-	m := models.Ermcp3ExposureDetail{Areauserid: req.AREAUSERID, MiddlegoodsId: req.MIDDLEGOODSID}
+	m := models.Ermcp3ExposureDetail{Areauserid: req.USERID,
+		MiddlegoodsId: req.MIDDLEGOODSID}
 	a.DoGetDataI(&m)
 }
 
@@ -161,7 +174,8 @@ func QueryExposureDetail(c *gin.Context) {
 // @Summary 查询敞口现货头寸(敞口/现货头寸)
 // @Produce json
 // @Security ApiKeyAuth
-// @Param areauserid query int true "所属机构ID"
+// @Param userid query int true "用户id"
+// @Param usertype query int false "用户类型 2-机构 7-企业成员"
 // @Success 200 {array} models.Ermcp3AreaSpot
 // @Failure 500 {object} app.Response
 // @Router /Ermcp3/QueryExposureSpot [get]
@@ -169,10 +183,11 @@ func QueryExposureDetail(c *gin.Context) {
 func QueryExposureSpot(c *gin.Context) {
 	a := app.GinUtils{Gin: app.Gin{C: c}}
 	req := struct {
-		AREAUSERID int64 `form:"areauserid" binding:"required"` // 所属机构id
+		USERID int64 `form:"userid" binding:"required"` // 用户id
 	}{}
 	a.DoBindReq(&req)
-	m := models.Ermcp3AreaSpot{AREAUSERID: req.AREAUSERID}
+	// 交易员有敞口, 也是按交易员userid生成的, 不用转换为areauserid
+	m := models.Ermcp3AreaSpot{AREAUSERID: req.USERID}
 	a.DoGetDataI(&m)
 }
 
@@ -180,7 +195,8 @@ func QueryExposureSpot(c *gin.Context) {
 // @Summary 查询敞口现货头寸明细(敞口/现货头寸/现货明细)
 // @Produce json
 // @Security ApiKeyAuth
-// @Param areauserid query int true "所属机构ID"
+// @Param userid query int true "用户id"
+// @Param usertype query int false "用户类型 2-机构 7-企业成员"
 // @Param deliverygoodsid query int true "现货品种ID"
 // @Success 200 {array} models.Ermcp3AreaSpotDetail
 // @Failure 500 {object} app.Response
@@ -189,11 +205,13 @@ func QueryExposureSpot(c *gin.Context) {
 func QueryExposureSpotDetail(c *gin.Context) {
 	appG := app.GinUtils{Gin: app.Gin{C: c}}
 	req := struct {
-		AREAUSERID      int   `form:"areauserid" binding:"required"`      // 所属机构id
+		USERID          int64 `form:"userid" binding:"required"`          // 用户id
+		USERTYPE        int32 `form:"usertype"`                           // 用户类型
 		DELIVERYGOODSID int32 `form:"deliverygoodsid" binding:"required"` // 现货商品id
 	}{}
 	appG.DoBindReq(&req)
-	m := models.Ermcp3AreaSpotDetail{UserId: req.AREAUSERID, DELIVERYGOODSID: req.DELIVERYGOODSID}
+	m := models.Ermcp3AreaSpotDetail{UserId: req.USERID,
+		DELIVERYGOODSID: req.DELIVERYGOODSID}
 	appG.DoGetDataI(&m)
 }
 
@@ -201,7 +219,8 @@ func QueryExposureSpotDetail(c *gin.Context) {
 // @Summary 查询品种要素定义项
 // @Produce json
 // @Security ApiKeyAuth
-// @Param areauserid query int false "所属机构ID"
+// @Param userid query int false "用户id"
+// @Param usertype query int false "用户类型 2-机构 7-企业成员"
 // @Param dgfactoryitemid query int false "选择项ID(SEQ_DGFACTORYITEM)"
 // @Param deliverygoodsid query int false "现货品种ID"
 // @Param dgfactoryitemtypeid query int false "要素项类型"
@@ -213,7 +232,8 @@ func QueryExposureSpotDetail(c *gin.Context) {
 func QueryDGFactoryItem(c *gin.Context) {
 	appG := app.GinUtils{Gin: app.Gin{C: c}}
 	req := struct {
-		AREAUSERID          int64 `form:"areauserid"`          // 用户id
+		USERID              int64 `form:"userid"`              // 用户id
+		USERTYPE            int32 `form:"usertype"`            // 用户类型
 		DGFACTORYITEMID     int64 `form:"dgfactoryitemid"`     // 选择项ID(SEQ_DGFACTORYITEM)
 		DELIVERYGOODSID     int32 `form:"deliverygoodsid"`     // 现货品种ID
 		DGFACTORYITEMTYPEID int64 `form:"dgfactoryitemtypeid"` // 要素项类型
@@ -221,7 +241,7 @@ func QueryDGFactoryItem(c *gin.Context) {
 	}{}
 	appG.DoBindReq(&req)
 	m := models.ErmcpDGFactoryItem{
-		AREAUSERID:          req.AREAUSERID,
+		AREAUSERID:          mtpcache.GetAreaUserId(req.USERID, req.USERTYPE),
 		DGFACTORYITEMID:     req.DGFACTORYITEMID,
 		DELIVERYGOODSID:     req.DELIVERYGOODSID,
 		DGFACTORYITEMTYPEID: req.DGFACTORYITEMTYPEID,
@@ -234,7 +254,8 @@ func QueryDGFactoryItem(c *gin.Context) {
 // @Summary 查询商品品牌
 // @Produce json
 // @Security ApiKeyAuth
-// @Param areauserid query int true "所属机构ID"
+// @Param userid query int true "用户id"
+// @Param usertype query int false "用户类型 2-机构 7-企业成员"
 // @Success 200 {array} models.Ermcp3Brand
 // @Failure 500 {object} app.Response
 // @Router /Ermcp3/QueryGoodsbrand [get]
@@ -242,12 +263,13 @@ func QueryDGFactoryItem(c *gin.Context) {
 func QueryGoodsbrand(c *gin.Context) {
 	appG := app.GinUtils{Gin: app.Gin{C: c}}
 	req := struct {
-		AREAUSERID      int64 `form:"areauserid"`      // 用户id
+		USERID          int64 `form:"userid"`          // 用户id
+		USERTYPE        int32 `form:"usertype"`        // 用户类型
 		DELIVERYGOODSID int32 `form:"deliverygoodsid"` // 现货品种ID
 	}{}
 	appG.DoBindReq(&req)
 	m := models.Ermcp3Brand{
-		AREAUSERID:      req.AREAUSERID,
+		AREAUSERID:      mtpcache.GetAreaUserId(req.USERID, req.USERTYPE),
 		DELIVERYGOODSID: req.DELIVERYGOODSID,
 	}
 	appG.DoGetDataI(&m)
@@ -257,7 +279,8 @@ func QueryGoodsbrand(c *gin.Context) {
 // @Summary 查询商品品类
 // @Produce json
 // @Security ApiKeyAuth
-// @Param areauserid query int true  "所属机构ID"
+// @Param userid query int true  "用户id"
+// @Param usertype query int false "用户类型 2-机构 7-企业成员"
 // @Param deliverygoodsid query int false  "现货商品id"
 // @Success 200 {array} models.Ermcp3Wrstandard
 // @Failure 500 {object} app.Response
@@ -266,11 +289,12 @@ func QueryGoodsbrand(c *gin.Context) {
 func QueryGoodsWrstandard(c *gin.Context) {
 	appG := app.GinUtils{Gin: app.Gin{C: c}}
 	req := struct {
-		AREAUSERID      int   `form:"areauserid" binding:"required"` // 所属机构id
-		DELIVERYGOODSID int32 `form:"deliverygoodsid"`               // 现货商品id
+		USERID          int64 `form:"userid" binding:"required"` // 用户id
+		USERTYPE        int32 `form:"usertype"`                  // 用户类型
+		DELIVERYGOODSID int32 `form:"deliverygoodsid"`           // 现货商品id
 	}{}
 	appG.DoBindReq(&req)
-	m := models.Ermcp3Wrstandard{AREAUSERID: req.AREAUSERID,
+	m := models.Ermcp3Wrstandard{AREAUSERID: mtpcache.GetAreaUserId(req.USERID, req.USERTYPE),
 		DELIVERYGOODSID: req.DELIVERYGOODSID}
 	appG.DoGetDataI(&m)
 }
@@ -493,6 +517,7 @@ func QuerySpotGoodsPriceLog(c *gin.Context) {
 // @Produce json
 // @Security ApiKeyAuth
 // @Param userid query int true "用户ID"
+// @Param usertype query int false "用户类型 2-机构 7-企业成员"
 // @Param hedgeplanstatus query string true "套保计划状态(允许多个,逗号隔开) - 0:未提交 1:待审核 2:执行中 3:正常完结 4:审核拒绝 5:异常完结 6:已撤回"
 // @Success 200 {array} models.Ermcp3HedgePlan
 // @Failure 500 {object} app.Response
@@ -502,6 +527,7 @@ func QueryHedgePlan(c *gin.Context) {
 	appG := app.Gin{C: c}
 	req := struct {
 		UserId          int64  `form:"userid" binding:"required"`          // 用户id
+		USERTYPE        int32  `form:"usertype"`                           // 用户类型
 		HedgePlanStatus string `form:"hedgeplanstatus" binding:"required"` // 状态
 	}{}
 	if err := c.ShouldBind(&req); err != nil {
@@ -510,7 +536,7 @@ func QueryHedgePlan(c *gin.Context) {
 		return
 	}
 
-	var m = models.Ermcp3HedgePlan{Areauserid: req.UserId}
+	var m = models.Ermcp3HedgePlan{Areauserid: req.UserId, UserType: req.USERTYPE}
 	if d, err := m.GetData(req.HedgePlanStatus); err == nil {
 		appG.Response(http.StatusOK, e.SUCCESS, d)
 	} else {
@@ -523,7 +549,8 @@ func QueryHedgePlan(c *gin.Context) {
 // @Summary 查询期货商品组
 // @Produce json
 // @Security ApiKeyAuth
-// @Param areauserid query int true "所属机构id"
+// @Param userid query int true "用户id"
+// @Param usertype query int false "用户类型 2-机构 7-企业成员"
 // @Param excludecfg query int false "排除套保品中已关联的商品组 1-排除"
 // @Success 200 {array} models.Ermcp3GoodsGroup
 // @Failure 500 {object} app.Response
@@ -532,10 +559,12 @@ func QueryHedgePlan(c *gin.Context) {
 func QueryGoodsGroup(c *gin.Context) {
 	a := app.GinUtils{Gin: app.Gin{C: c}}
 	req := struct {
-		AREAUSERID int64 `form:"areauserid" binding:"required"` // 所属机构id
-		EXCLUDECFG int32 `form:"excludecfg"`                    // 是否排除已配置
+		USERID     int64 `form:"userid" binding:"required"` // 所属机构id
+		USERTYPE   int32 `form:"usertype"`                  // 用户类型
+		EXCLUDECFG int32 `form:"excludecfg"`                // 是否排除已配置
 	}{}
 	a.DoBindReq(&req)
-	m := models.Ermcp3GoodsGroup{AreaUserId: req.AREAUSERID, ExcludeCfg: req.EXCLUDECFG}
+	m := models.Ermcp3GoodsGroup{AreaUserId: mtpcache.GetAreaUserId(req.USERID, req.USERTYPE),
+		ExcludeCfg: req.EXCLUDECFG}
 	a.DoGetDataI(&m)
 }

+ 3 - 3
controllers/ermcp3/qryErmcp3Report.go

@@ -109,7 +109,7 @@ func QryReportDayFinanceFp(c *gin.Context) {
 // @Summary 查询现货日报表(菜单:报表查询/现货报表/现货日报表)
 // @Produce json
 // @Security ApiKeyAuth
-// @Param areauserid query int true "所属机构id"
+// @Param userid query int true "用户id"
 // @Param reckondate query string true "交易日(格式:yyyyMMdd)"
 // @Param accountid query int false "期货账户ID"
 // @Param deliverygoodsid query int false "现货品种ID"
@@ -130,7 +130,7 @@ func QryReportDaySpot(c *gin.Context) {
 // @Summary 查询现货月报表(菜单:报表查询/现货报表/现货月报表)
 // @Produce json
 // @Security ApiKeyAuth
-// @Param areauserid query int true "所属机构id"
+// @Param userid query int true "用户id"
 // @Param cycletype query int true "周期类型 - 1:月 2:季 3:年 4:周 5:全报表【原值】"
 // @Param cycletime query string true "周期时间 月(YYYYMM)  季(YYYYQ) 年(YYYY) 周(YYYYIW) 全(0)【原值】"
 // @Param accountid query int false "期货账户ID"
@@ -151,7 +151,7 @@ func QryReportMonthSpot(c *gin.Context) {
 // @Summary 查询现货月报表详情(菜单:报表查询/现货月报表/现货月报表详情)
 // @Produce json
 // @Security ApiKeyAuth
-// @Param areauserid query int true "所属机构id"
+// @Param userid query int true "用户id"
 // @Param cycletype query int true "周期类型 - 1:月 2:季 3:年 4:周 5:全报表【原值】"
 // @Param cycletime query string true "周期时间 月(YYYYMM)  季(YYYYQ) 年(YYYY) 周(YYYYIW) 全(0)【原值】"
 // @Param accountid query int false "期货账户ID"

+ 108 - 54
docs/docs.go

@@ -4257,8 +4257,8 @@ var doc = `{
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构id",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
@@ -4398,8 +4398,8 @@ var doc = `{
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构id",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
@@ -4478,8 +4478,8 @@ var doc = `{
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构id",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
@@ -4892,8 +4892,14 @@ var doc = `{
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构ID",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
                         "in": "query"
                     },
                     {
@@ -4957,13 +4963,19 @@ var doc = `{
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构id",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
                     {
                         "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
                         "description": "排除已配置的业务类型商品 1-套保 2-套利",
                         "name": "excludecfg",
                         "in": "query"
@@ -5005,13 +5017,19 @@ var doc = `{
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构id",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
                     {
                         "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
                         "description": "现货商品id",
                         "name": "deliverygoodsid",
                         "in": "query"
@@ -5053,13 +5071,19 @@ var doc = `{
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构ID",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
                     {
                         "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
                         "description": "套保商品",
                         "name": "middlegoodsid",
                         "in": "query",
@@ -5102,10 +5126,16 @@ var doc = `{
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构ID",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
+                    },
+                    {
+                        "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
                     }
                 ],
                 "responses": {
@@ -5144,13 +5174,19 @@ var doc = `{
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构ID",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
                     {
                         "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
                         "description": "现货品种ID",
                         "name": "deliverygoodsid",
                         "in": "query",
@@ -5193,13 +5229,19 @@ var doc = `{
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构id",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
                     {
                         "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
                         "description": "排除套保品中已关联的商品组 1-排除",
                         "name": "excludecfg",
                         "in": "query"
@@ -5241,13 +5283,19 @@ var doc = `{
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构ID",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
                     {
                         "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
                         "description": "现货商品id",
                         "name": "deliverygoodsid",
                         "in": "query"
@@ -5289,10 +5337,16 @@ var doc = `{
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构ID",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
+                    },
+                    {
+                        "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
                     }
                 ],
                 "responses": {
@@ -5337,6 +5391,12 @@ var doc = `{
                         "required": true
                     },
                     {
+                        "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
+                    },
+                    {
                         "type": "string",
                         "description": "套保计划状态(允许多个,逗号隔开) - 0:未提交 1:待审核 2:执行中 3:正常完结 4:审核拒绝 5:异常完结 6:已撤回",
                         "name": "hedgeplanstatus",
@@ -5380,13 +5440,19 @@ var doc = `{
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构ID",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
                     {
                         "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
                         "description": "套保品种id",
                         "name": "middlegoodsid",
                         "in": "query"
@@ -5428,29 +5494,23 @@ var doc = `{
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构ID",
-                        "name": "areauserid",
-                        "in": "query",
-                        "required": true
-                    },
-                    {
-                        "type": "integer",
-                        "description": "查询类型 1-未提交 2-待审核 3-履约中 4-已完成",
-                        "name": "querytype",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
                     {
                         "type": "integer",
-                        "description": "用户ID",
-                        "name": "userid",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
                         "in": "query"
                     },
                     {
                         "type": "integer",
-                        "description": "用户类型 2-机构 7-企业成员",
-                        "name": "usertype",
-                        "in": "query"
+                        "description": "查询类型 1-未提交 2-待审核 3-履约中 4-已完成",
+                        "name": "querytype",
+                        "in": "query",
+                        "required": true
                     },
                     {
                         "type": "string",
@@ -5495,13 +5555,19 @@ var doc = `{
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构ID",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
                     {
                         "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
                         "description": "合同类型 1-采购, -1-销售",
                         "name": "contracttype",
                         "in": "query",
@@ -5515,18 +5581,6 @@ var doc = `{
                         "required": true
                     },
                     {
-                        "type": "integer",
-                        "description": "用户ID",
-                        "name": "userid",
-                        "in": "query"
-                    },
-                    {
-                        "type": "integer",
-                        "description": "用户类型 2-机构 7-企业成员",
-                        "name": "usertype",
-                        "in": "query"
-                    },
-                    {
                         "type": "string",
                         "description": "合同ID(SpotContractId)",
                         "name": "contractid",

+ 108 - 54
docs/swagger.json

@@ -4241,8 +4241,8 @@
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构id",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
@@ -4382,8 +4382,8 @@
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构id",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
@@ -4462,8 +4462,8 @@
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构id",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
@@ -4876,8 +4876,14 @@
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构ID",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
                         "in": "query"
                     },
                     {
@@ -4941,13 +4947,19 @@
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构id",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
                     {
                         "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
                         "description": "排除已配置的业务类型商品 1-套保 2-套利",
                         "name": "excludecfg",
                         "in": "query"
@@ -4989,13 +5001,19 @@
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构id",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
                     {
                         "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
                         "description": "现货商品id",
                         "name": "deliverygoodsid",
                         "in": "query"
@@ -5037,13 +5055,19 @@
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构ID",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
                     {
                         "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
                         "description": "套保商品",
                         "name": "middlegoodsid",
                         "in": "query",
@@ -5086,10 +5110,16 @@
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构ID",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
+                    },
+                    {
+                        "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
                     }
                 ],
                 "responses": {
@@ -5128,13 +5158,19 @@
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构ID",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
                     {
                         "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
                         "description": "现货品种ID",
                         "name": "deliverygoodsid",
                         "in": "query",
@@ -5177,13 +5213,19 @@
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构id",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
                     {
                         "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
                         "description": "排除套保品中已关联的商品组 1-排除",
                         "name": "excludecfg",
                         "in": "query"
@@ -5225,13 +5267,19 @@
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构ID",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
                     {
                         "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
                         "description": "现货商品id",
                         "name": "deliverygoodsid",
                         "in": "query"
@@ -5273,10 +5321,16 @@
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构ID",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
+                    },
+                    {
+                        "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
                     }
                 ],
                 "responses": {
@@ -5321,6 +5375,12 @@
                         "required": true
                     },
                     {
+                        "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
+                    },
+                    {
                         "type": "string",
                         "description": "套保计划状态(允许多个,逗号隔开) - 0:未提交 1:待审核 2:执行中 3:正常完结 4:审核拒绝 5:异常完结 6:已撤回",
                         "name": "hedgeplanstatus",
@@ -5364,13 +5424,19 @@
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构ID",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
                     {
                         "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
                         "description": "套保品种id",
                         "name": "middlegoodsid",
                         "in": "query"
@@ -5412,29 +5478,23 @@
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构ID",
-                        "name": "areauserid",
-                        "in": "query",
-                        "required": true
-                    },
-                    {
-                        "type": "integer",
-                        "description": "查询类型 1-未提交 2-待审核 3-履约中 4-已完成",
-                        "name": "querytype",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
                     {
                         "type": "integer",
-                        "description": "用户ID",
-                        "name": "userid",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
                         "in": "query"
                     },
                     {
                         "type": "integer",
-                        "description": "用户类型 2-机构 7-企业成员",
-                        "name": "usertype",
-                        "in": "query"
+                        "description": "查询类型 1-未提交 2-待审核 3-履约中 4-已完成",
+                        "name": "querytype",
+                        "in": "query",
+                        "required": true
                     },
                     {
                         "type": "string",
@@ -5479,13 +5539,19 @@
                 "parameters": [
                     {
                         "type": "integer",
-                        "description": "所属机构ID",
-                        "name": "areauserid",
+                        "description": "用户id",
+                        "name": "userid",
                         "in": "query",
                         "required": true
                     },
                     {
                         "type": "integer",
+                        "description": "用户类型 2-机构 7-企业成员",
+                        "name": "usertype",
+                        "in": "query"
+                    },
+                    {
+                        "type": "integer",
                         "description": "合同类型 1-采购, -1-销售",
                         "name": "contracttype",
                         "in": "query",
@@ -5499,18 +5565,6 @@
                         "required": true
                     },
                     {
-                        "type": "integer",
-                        "description": "用户ID",
-                        "name": "userid",
-                        "in": "query"
-                    },
-                    {
-                        "type": "integer",
-                        "description": "用户类型 2-机构 7-企业成员",
-                        "name": "usertype",
-                        "in": "query"
-                    },
-                    {
                         "type": "string",
                         "description": "合同ID(SpotContractId)",
                         "name": "contractid",

+ 82 - 46
docs/swagger.yaml

@@ -15219,9 +15219,9 @@ paths:
   /Ermcp3/QryReportDaySpot:
     get:
       parameters:
-      - description: 所属机构id
+      - description: 用户id
         in: query
-        name: areauserid
+        name: userid
         required: true
         type: integer
       - description: 交易日(格式:yyyyMMdd)
@@ -15310,9 +15310,9 @@ paths:
   /Ermcp3/QryReportMonthSpot:
     get:
       parameters:
-      - description: 所属机构id
+      - description: 用户id
         in: query
-        name: areauserid
+        name: userid
         required: true
         type: integer
       - description: 周期类型 - 1:月 2:季 3:年 4:周 5:全报表【原值】
@@ -15362,9 +15362,9 @@ paths:
   /Ermcp3/QryReportMonthSpotDetail:
     get:
       parameters:
-      - description: 所属机构id
+      - description: 用户id
         in: query
-        name: areauserid
+        name: userid
         required: true
         type: integer
       - description: 周期类型 - 1:月 2:季 3:年 4:周 5:全报表【原值】
@@ -15628,9 +15628,13 @@ paths:
   /Ermcp3/QueryDGFactoryItem:
     get:
       parameters:
-      - description: 所属机构ID
+      - description: 用户id
         in: query
-        name: areauserid
+        name: userid
+        type: integer
+      - description: 用户类型 2-机构 7-企业成员
+        in: query
+        name: usertype
         type: integer
       - description: 选择项ID(SEQ_DGFACTORYITEM)
         in: query
@@ -15669,11 +15673,15 @@ paths:
   /Ermcp3/QueryDeliveryGoods:
     get:
       parameters:
-      - description: 所属机构id
+      - description: 用户id
         in: query
-        name: areauserid
+        name: userid
         required: true
         type: integer
+      - description: 用户类型 2-机构 7-企业成员
+        in: query
+        name: usertype
+        type: integer
       - description: 排除已配置的业务类型商品 1-套保 2-套利
         in: query
         name: excludecfg
@@ -15699,11 +15707,15 @@ paths:
   /Ermcp3/QueryDeliveryGoodsDetail:
     get:
       parameters:
-      - description: 所属机构id
+      - description: 用户id
         in: query
-        name: areauserid
+        name: userid
         required: true
         type: integer
+      - description: 用户类型 2-机构 7-企业成员
+        in: query
+        name: usertype
+        type: integer
       - description: 现货商品id
         in: query
         name: deliverygoodsid
@@ -15729,11 +15741,15 @@ paths:
   /Ermcp3/QueryExposureDetail:
     get:
       parameters:
-      - description: 所属机构ID
+      - description: 用户id
         in: query
-        name: areauserid
+        name: userid
         required: true
         type: integer
+      - description: 用户类型 2-机构 7-企业成员
+        in: query
+        name: usertype
+        type: integer
       - description: 套保商品
         in: query
         name: middlegoodsid
@@ -15760,11 +15776,15 @@ paths:
   /Ermcp3/QueryExposureSpot:
     get:
       parameters:
-      - description: 所属机构ID
+      - description: 用户id
         in: query
-        name: areauserid
+        name: userid
         required: true
         type: integer
+      - description: 用户类型 2-机构 7-企业成员
+        in: query
+        name: usertype
+        type: integer
       produces:
       - application/json
       responses:
@@ -15786,11 +15806,15 @@ paths:
   /Ermcp3/QueryExposureSpotDetail:
     get:
       parameters:
-      - description: 所属机构ID
+      - description: 用户id
         in: query
-        name: areauserid
+        name: userid
         required: true
         type: integer
+      - description: 用户类型 2-机构 7-企业成员
+        in: query
+        name: usertype
+        type: integer
       - description: 现货品种ID
         in: query
         name: deliverygoodsid
@@ -15817,11 +15841,15 @@ paths:
   /Ermcp3/QueryGoodsGroup:
     get:
       parameters:
-      - description: 所属机构id
+      - description: 用户id
         in: query
-        name: areauserid
+        name: userid
         required: true
         type: integer
+      - description: 用户类型 2-机构 7-企业成员
+        in: query
+        name: usertype
+        type: integer
       - description: 排除套保品中已关联的商品组 1-排除
         in: query
         name: excludecfg
@@ -15847,11 +15875,15 @@ paths:
   /Ermcp3/QueryGoodsWrstandard:
     get:
       parameters:
-      - description: 所属机构ID
+      - description: 用户id
         in: query
-        name: areauserid
+        name: userid
         required: true
         type: integer
+      - description: 用户类型 2-机构 7-企业成员
+        in: query
+        name: usertype
+        type: integer
       - description: 现货商品id
         in: query
         name: deliverygoodsid
@@ -15877,11 +15909,15 @@ paths:
   /Ermcp3/QueryGoodsbrand:
     get:
       parameters:
-      - description: 所属机构ID
+      - description: 用户id
         in: query
-        name: areauserid
+        name: userid
         required: true
         type: integer
+      - description: 用户类型 2-机构 7-企业成员
+        in: query
+        name: usertype
+        type: integer
       produces:
       - application/json
       responses:
@@ -15908,6 +15944,10 @@ paths:
         name: userid
         required: true
         type: integer
+      - description: 用户类型 2-机构 7-企业成员
+        in: query
+        name: usertype
+        type: integer
       - description: 套保计划状态(允许多个,逗号隔开) - 0:未提交 1:待审核 2:执行中 3:正常完结 4:审核拒绝 5:异常完结 6:已撤回
         in: query
         name: hedgeplanstatus
@@ -15934,11 +15974,15 @@ paths:
   /Ermcp3/QueryMiddleGoodsDetail:
     get:
       parameters:
-      - description: 所属机构ID
+      - description: 用户id
         in: query
-        name: areauserid
+        name: userid
         required: true
         type: integer
+      - description: 用户类型 2-机构 7-企业成员
+        in: query
+        name: usertype
+        type: integer
       - description: 套保品种id
         in: query
         name: middlegoodsid
@@ -15964,24 +16008,20 @@ paths:
   /Ermcp3/QuerySpotContract:
     get:
       parameters:
-      - description: 所属机构ID
+      - description: 用户id
         in: query
-        name: areauserid
+        name: userid
         required: true
         type: integer
+      - description: 用户类型 2-机构 7-企业成员
+        in: query
+        name: usertype
+        type: integer
       - description: 查询类型 1-未提交 2-待审核 3-履约中 4-已完成
         in: query
         name: querytype
         required: true
         type: integer
-      - description: 用户ID
-        in: query
-        name: userid
-        type: integer
-      - description: 用户类型 2-机构 7-企业成员
-        in: query
-        name: usertype
-        type: integer
       - description: 合同ID(SpotContractId)
         in: query
         name: contractid
@@ -16007,11 +16047,15 @@ paths:
   /Ermcp3/QuerySpotContractBS:
     get:
       parameters:
-      - description: 所属机构ID
+      - description: 用户id
         in: query
-        name: areauserid
+        name: userid
         required: true
         type: integer
+      - description: 用户类型 2-机构 7-企业成员
+        in: query
+        name: usertype
+        type: integer
       - description: 合同类型 1-采购, -1-销售
         in: query
         name: contracttype
@@ -16022,14 +16066,6 @@ paths:
         name: querytype
         required: true
         type: integer
-      - description: 用户ID
-        in: query
-        name: userid
-        type: integer
-      - description: 用户类型 2-机构 7-企业成员
-        in: query
-        name: usertype
-        type: integer
       - description: 合同ID(SpotContractId)
         in: query
         name: contractid

+ 25 - 5
models/ermcp3.go

@@ -249,7 +249,7 @@ func (r *ErmcpDeliveryGoodsDetail) GetData() ([]ErmcpDeliveryGoodsDetail, error)
 		sData = append(sData, val)
 	}
 	//品类/品牌/套保信息
-	gm := Ermcp3Wrstandard{AREAUSERID: int(r.Data.AREAUSERID), DELIVERYGOODSID: r.Data.DELIVERYGOODSID, ISVALID: 1}
+	gm := Ermcp3Wrstandard{AREAUSERID: r.Data.AREAUSERID, DELIVERYGOODSID: r.Data.DELIVERYGOODSID, ISVALID: 1}
 	gb := Ermcp3Brand{DELIVERYGOODSID: r.Data.DELIVERYGOODSID}
 	gmLst, _ := gm.GetDataEx()
 	gbLst, _ := gb.GetData()
@@ -1145,7 +1145,7 @@ type Ermcp3AreaSpotDetail struct {
 	Recordname        string  `json:"recordname"`                                    // 类型名称
 	CREATETIME        string  `json:"createtime"  xorm:"'CREATETIME'"`               // 创建时间
 	Unitid            int32   `json:"-"  xorm:"'UNITID'"`                            // 单位ID
-	UserId            int     `json:"-"`                                             // 所属用户ID
+	UserId            int64   `json:"-"`                                             // 所属用户ID
 	DELIVERYGOODSID   int32   `json:"deliverygoodsid"  xorm:"'DELIVERYGOODSID'"`     // 现货品种id
 	DELIVERYGOODSCODE string  `json:"deliverygoodscode"  xorm:"'DELIVERYGOODSCODE'"` // 现货品种代码
 	DELIVERYGOODSNAME string  `json:"deliverygoodsname"  xorm:"'DELIVERYGOODSNAME'"` // 现货品种名称
@@ -1250,7 +1250,7 @@ type Ermcp3Wrstandard struct {
 	CREATORID       int64   `json:"creatorid"  xorm:"'CREATORID'"`             // 创建人
 	CREATETIME      string  `json:"createtime"  xorm:"'CREATETIME'"`           // 创建时间
 	WRSTANDARDNAME  string  `json:"wrstandardname"  xorm:"'WRSTANDARDNAME'"`   // 品类名称
-	AREAUSERID      int     `json:"areauserid"  xorm:"'AREAUSERID'"`           // 所属机构
+	AREAUSERID      int64   `json:"areauserid"  xorm:"'AREAUSERID'"`           // 所属机构
 	EnumdicName     string  `json:"enumdicname"`                               // 品类单位名称
 	ISVALID         int32   `json:"isvalid"  xorm:"'ISVALID'"`                 // 是否有效 0-无效(停用) 1-有效(正常)
 	UPDATETIME      string  `json:"updatetime"  xorm:"'UPDATETIME'"`           // 更新时间
@@ -1943,6 +1943,8 @@ type Ermcp3HedgePlan struct {
 	WRUNITIDNAME  string `json:"wrunitidame"`   // 品类单位名称
 	TRADEUSERNAME string `json:"tradeusername"` // 交易用户名称
 	CURRENCYNAME  string `json:"currencyname"`  // 币种名称
+
+	UserType int32 `json:"-"` // 过滤条件, 用户类型
 }
 
 func (r *Ermcp3HedgePlan) calc() {
@@ -1985,8 +1987,26 @@ func (r *Ermcp3HedgePlan) buildSql(status string) string {
 		"    on t.deliverygoodsid = g.deliverygoodsid" +
 		"  left join wrstandard w on t.wrstandardid=w.wrstandardid" +
 		"  left join taaccount ta on t.accountid=ta.accountid" +
-		" where t.hedgeplanstatus in (%v)" +
-		"   and t.areauserid = %v"
+		" where t.hedgeplanstatus in (%v)"
+
+	if r.UserType == 0 {
+		// 终端没传值, 则自己去找
+		userId := mtpcache.GetAreaUserId(r.Areauserid, 0)
+		if userId == r.Areauserid {
+			r.UserType = 2
+		} else {
+			r.UserType = 7
+		}
+	}
+
+	if r.UserType == 2 {
+		str += "   and t.areauserid = %v"
+	} else if r.UserType == 7 {
+		// 企业成员用tradeuserid匹配
+		str += "   and t.tradeuserid = %v"
+	} else {
+		str += "   and t.areauserid = %v"
+	}
 
 	if status == "2" {
 		// 执行中状态,按审核时间倒序

+ 43 - 43
models/ermcp3Report.go

@@ -300,7 +300,7 @@ func (r *Ermcp3ReportAreaSpotPL) GetDataEx() (interface{}, error) {
 // Ermcp3ReckonAreaSpotSub 现货日报表
 type Ermcp3ReckonAreaSpotSub struct {
 	RECKONDATE            string  `json:"reckondate"  xorm:"'RECKONDATE'" form:"reckondate" binding:"required"` // 日照时期(yyyyMMdd)
-	AREAUSERID            int64   `json:"areauserid"  xorm:"'AREAUSERID'" form:"areauserid" binding:"required"` // 账户所属机构
+	AREAUSERID            int64   `json:"areauserid"  xorm:"'AREAUSERID'" form:"userid" binding:"required"`     // 账户所属机构
 	ACCOUNTID             int64   `json:"accountid"  xorm:"'ACCOUNTID'" form:"accountid"`                       // 期货账户ID
 	WRFACTORTYPEID        int64   `json:"wrfactortypeid"  xorm:"'WRFACTORTYPEID'"`                              // 仓单要素类型ID(212+Unix秒时间戳(10位)+xxxxxx)
 	DELIVERYGOODSID       int64   `json:"deliverygoodsid"  xorm:"'DELIVERYGOODSID'" form:"deliverygoodsid"`     // 现货品种ID
@@ -445,48 +445,48 @@ func (r *Ermcp3ReckonAreaSpotSub) GetDataEx() (interface{}, error) {
 
 // Ermcp3ReportAreaSpotSub 现货分类月报表
 type Ermcp3ReportAreaSpotSub struct {
-	ORIBUYRECKONQTY       float64 `json:"oribuyreckonqty"  xorm:"'ORIBUYRECKONQTY'"`                            // 期初采购合同交收量【期初】
-	ORISELLRECKONQTY      float64 `json:"orisellreckonqty"  xorm:"'ORISELLRECKONQTY'"`                          // 期初销售合同交收量【期初】
-	ORIBUYCONTRACTINQTY   float64 `json:"oribuycontractinqty"  xorm:"'ORIBUYCONTRACTINQTY'"`                    // 期初采购合同入库量【期初】
-	ORISELLCONTRACTOUTQTY float64 `json:"orisellcontractoutqty"  xorm:"'ORISELLCONTRACTOUTQTY'"`                // 期初销售合同出库量【期初】
-	ORIPRODUCEINQTY       float64 `json:"oriproduceinqty"  xorm:"'ORIPRODUCEINQTY'"`                            // 期初生产入库量【期初】
-	ORIPRODUCEOUTQTY      float64 `json:"oriproduceoutqty"  xorm:"'ORIPRODUCEOUTQTY'"`                          // 期初生产出库量【期初】
-	BUYRECKONQTY          float64 `json:"buyreckonqty"  xorm:"'BUYRECKONQTY'"`                                  // 采购合同交收量【期末】
-	SELLRECKONQTY         float64 `json:"sellreckonqty"  xorm:"'SELLRECKONQTY'"`                                // 销售合同交收量【期末】
-	BUYCONTRACTINQTY      float64 `json:"buycontractinqty"  xorm:"'BUYCONTRACTINQTY'"`                          // 采购合同入库量【期末】
-	SELLCONTRACTOUTQTY    float64 `json:"sellcontractoutqty"  xorm:"'SELLCONTRACTOUTQTY'"`                      // 销售合同出库量【期末】
-	PRODUCEINQTY          float64 `json:"produceinqty"  xorm:"'PRODUCEINQTY'"`                                  // 生产入库量【期末】
-	PRODUCEOUTQTY         float64 `json:"produceoutqty"  xorm:"'PRODUCEOUTQTY'"`                                // 生产出库量【期末】
-	CYCLETIME             string  `json:"cycletime"  xorm:"'CYCLETIME'" form:"cycletime"`                       // 周期时间 月(YYYYMM)  季(YYYYQ) 年(YYYY) 周(YYYYIW) 全(0)【原值】
-	CYCLETYPE             int32   `json:"cycletype"  xorm:"'CYCLETYPE'" form:"cycletype"`                       // 周期类型 - 1:月 2:季 3:年 4:周 5:全报表【原值】
-	AREAUSERID            int64   `json:"areauserid"  xorm:"'AREAUSERID'" form:"areauserid" binding:"required"` // 账户所属机构
-	ACCOUNTID             int64   `json:"accountid"  xorm:"'ACCOUNTID'" form:"accountid"`                       // 期货账户ID
-	WRFACTORTYPEID        int64   `json:"wrfactortypeid"  xorm:"'WRFACTORTYPEID'"`                              // 仓单要素类型ID(212+Unix秒时间戳(10位)+xxxxxx)
-	DELIVERYGOODSID       int64   `json:"deliverygoodsid"  xorm:"'DELIVERYGOODSID'" form:"deliverygoodsid"`     // 现货品种ID
-	WRSTANDARDID          int64   `json:"wrstandardid"  xorm:"'WRSTANDARDID'" form:"wrstandardid"`              // 品类ID
-	SPOTGOODSBRANDID      int32   `json:"spotgoodsbrandid"  xorm:"'SPOTGOODSBRANDID'" form:"spotgoodsbrandid"`  // 现货品牌ID
-	ORIBUYPRICEDQTY       float64 `json:"oribuypricedqty"  xorm:"'ORIBUYPRICEDQTY'"`                            // 期初采购合同已定价数量【期初】
-	ORISELLPRICEDQTY      float64 `json:"orisellpricedqty"  xorm:"'ORISELLPRICEDQTY'"`                          // 期初销售合同已定价数量【期初】
-	BUYPRICEDQTY          float64 `json:"buypricedqty"  xorm:"'BUYPRICEDQTY'"`                                  // 采购合同已定价数量【期末】
-	SELLPRICEDQTY         float64 `json:"sellpricedqty"  xorm:"'SELLPRICEDQTY'"`                                // 销售合同已定价数量【期末】
-	TOTALSPOTQTY          float64 `json:"totalspotqty"  xorm:"'TOTALSPOTQTY'"`                                  // 现货头寸总量 =  采购合同已定价数量 - 销售合同已定价数量【期末】
-	UPDATETIME            string  `json:"updatetime"  xorm:"'UPDATETIME'"`                                      // 更新时间
-	TODAYBUYRECKONQTY     float64 `json:"todaybuyreckonqty"  xorm:"'TODAYBUYRECKONQTY'"`                        // 今日采购合同已确定数量【汇总】
-	TODAYSELLRECKONQTY    float64 `json:"todaysellreckonqty"  xorm:"'TODAYSELLRECKONQTY'"`                      // 今日销售合同已确定数量【汇总】
-	ORIBUYPRICEDAMOUNT    float64 `json:"oribuypricedamount"  xorm:"'ORIBUYPRICEDAMOUNT'"`                      // 期初采购合同已定价金额【期初】
-	ORISELLPRICEDAMOUNT   float64 `json:"orisellpricedamount"  xorm:"'ORISELLPRICEDAMOUNT'"`                    // 期初销售合同已定价金额【期初】
-	BUYPRICEDAMOUNT       float64 `json:"buypricedamount"  xorm:"'BUYPRICEDAMOUNT'"`                            // 采购合同已定价金额【期末】
-	SELLPRICEDAMOUNT      float64 `json:"sellpricedamount"  xorm:"'SELLPRICEDAMOUNT'"`                          // 销售合同已定价金额【期末】
-	ENUMDICNAME           string  `json:"enumdicname"  xorm:"'ENUMDICNAME'"`                                    // 现货商品单位名称
-	WRSTANDARDNAME        string  `json:"wrstandardname"  xorm:"'wrstandardname'"`                              // 品类名称
-	WRSTANDARDCODE        string  `json:"wrstandardcode"  xorm:"'wrstandardcode'"`                              // 品类代码
-	DELIVERYGOODSCODE     string  `json:"deliverygoodscode"  xorm:"'deliverygoodscode'"`                        // 现货商品代码
-	DELIVERYGOODSNAME     string  `json:"deliverygoodsname"  xorm:"'deliverygoodsname'"`                        // 现货商品名称
-	GOODSUNITID           int32   `json:"goodsunitid"  xorm:"'goodsunitid'"`                                    // 现货商品单位id
-	BRANDNAME             string  `json:"brandname"  xorm:"'brandname'"`                                        // 品牌名称
-	ACCOUNTNAME           string  `json:"accountname"  xorm:"'accountname'"`                                    // 所属机构名称
-	BIZTYPE               int32   `json:"biztype"  xorm:"'BIZTYPE'"`                                            // 业务类型  1-套保 2-套利
-	CURRENCYID            int32   `json:"currencyid"  xorm:"'CURRENCYID'"`                                      // 币种id
+	ORIBUYRECKONQTY       float64 `json:"oribuyreckonqty"  xorm:"'ORIBUYRECKONQTY'"`                           // 期初采购合同交收量【期初】
+	ORISELLRECKONQTY      float64 `json:"orisellreckonqty"  xorm:"'ORISELLRECKONQTY'"`                         // 期初销售合同交收量【期初】
+	ORIBUYCONTRACTINQTY   float64 `json:"oribuycontractinqty"  xorm:"'ORIBUYCONTRACTINQTY'"`                   // 期初采购合同入库量【期初】
+	ORISELLCONTRACTOUTQTY float64 `json:"orisellcontractoutqty"  xorm:"'ORISELLCONTRACTOUTQTY'"`               // 期初销售合同出库量【期初】
+	ORIPRODUCEINQTY       float64 `json:"oriproduceinqty"  xorm:"'ORIPRODUCEINQTY'"`                           // 期初生产入库量【期初】
+	ORIPRODUCEOUTQTY      float64 `json:"oriproduceoutqty"  xorm:"'ORIPRODUCEOUTQTY'"`                         // 期初生产出库量【期初】
+	BUYRECKONQTY          float64 `json:"buyreckonqty"  xorm:"'BUYRECKONQTY'"`                                 // 采购合同交收量【期末】
+	SELLRECKONQTY         float64 `json:"sellreckonqty"  xorm:"'SELLRECKONQTY'"`                               // 销售合同交收量【期末】
+	BUYCONTRACTINQTY      float64 `json:"buycontractinqty"  xorm:"'BUYCONTRACTINQTY'"`                         // 采购合同入库量【期末】
+	SELLCONTRACTOUTQTY    float64 `json:"sellcontractoutqty"  xorm:"'SELLCONTRACTOUTQTY'"`                     // 销售合同出库量【期末】
+	PRODUCEINQTY          float64 `json:"produceinqty"  xorm:"'PRODUCEINQTY'"`                                 // 生产入库量【期末】
+	PRODUCEOUTQTY         float64 `json:"produceoutqty"  xorm:"'PRODUCEOUTQTY'"`                               // 生产出库量【期末】
+	CYCLETIME             string  `json:"cycletime"  xorm:"'CYCLETIME'" form:"cycletime"`                      // 周期时间 月(YYYYMM)  季(YYYYQ) 年(YYYY) 周(YYYYIW) 全(0)【原值】
+	CYCLETYPE             int32   `json:"cycletype"  xorm:"'CYCLETYPE'" form:"cycletype"`                      // 周期类型 - 1:月 2:季 3:年 4:周 5:全报表【原值】
+	AREAUSERID            int64   `json:"areauserid"  xorm:"'AREAUSERID'" form:"userid" binding:"required"`    // 账户所属机构
+	ACCOUNTID             int64   `json:"accountid"  xorm:"'ACCOUNTID'" form:"accountid"`                      // 期货账户ID
+	WRFACTORTYPEID        int64   `json:"wrfactortypeid"  xorm:"'WRFACTORTYPEID'"`                             // 仓单要素类型ID(212+Unix秒时间戳(10位)+xxxxxx)
+	DELIVERYGOODSID       int64   `json:"deliverygoodsid"  xorm:"'DELIVERYGOODSID'" form:"deliverygoodsid"`    // 现货品种ID
+	WRSTANDARDID          int64   `json:"wrstandardid"  xorm:"'WRSTANDARDID'" form:"wrstandardid"`             // 品类ID
+	SPOTGOODSBRANDID      int32   `json:"spotgoodsbrandid"  xorm:"'SPOTGOODSBRANDID'" form:"spotgoodsbrandid"` // 现货品牌ID
+	ORIBUYPRICEDQTY       float64 `json:"oribuypricedqty"  xorm:"'ORIBUYPRICEDQTY'"`                           // 期初采购合同已定价数量【期初】
+	ORISELLPRICEDQTY      float64 `json:"orisellpricedqty"  xorm:"'ORISELLPRICEDQTY'"`                         // 期初销售合同已定价数量【期初】
+	BUYPRICEDQTY          float64 `json:"buypricedqty"  xorm:"'BUYPRICEDQTY'"`                                 // 采购合同已定价数量【期末】
+	SELLPRICEDQTY         float64 `json:"sellpricedqty"  xorm:"'SELLPRICEDQTY'"`                               // 销售合同已定价数量【期末】
+	TOTALSPOTQTY          float64 `json:"totalspotqty"  xorm:"'TOTALSPOTQTY'"`                                 // 现货头寸总量 =  采购合同已定价数量 - 销售合同已定价数量【期末】
+	UPDATETIME            string  `json:"updatetime"  xorm:"'UPDATETIME'"`                                     // 更新时间
+	TODAYBUYRECKONQTY     float64 `json:"todaybuyreckonqty"  xorm:"'TODAYBUYRECKONQTY'"`                       // 今日采购合同已确定数量【汇总】
+	TODAYSELLRECKONQTY    float64 `json:"todaysellreckonqty"  xorm:"'TODAYSELLRECKONQTY'"`                     // 今日销售合同已确定数量【汇总】
+	ORIBUYPRICEDAMOUNT    float64 `json:"oribuypricedamount"  xorm:"'ORIBUYPRICEDAMOUNT'"`                     // 期初采购合同已定价金额【期初】
+	ORISELLPRICEDAMOUNT   float64 `json:"orisellpricedamount"  xorm:"'ORISELLPRICEDAMOUNT'"`                   // 期初销售合同已定价金额【期初】
+	BUYPRICEDAMOUNT       float64 `json:"buypricedamount"  xorm:"'BUYPRICEDAMOUNT'"`                           // 采购合同已定价金额【期末】
+	SELLPRICEDAMOUNT      float64 `json:"sellpricedamount"  xorm:"'SELLPRICEDAMOUNT'"`                         // 销售合同已定价金额【期末】
+	ENUMDICNAME           string  `json:"enumdicname"  xorm:"'ENUMDICNAME'"`                                   // 现货商品单位名称
+	WRSTANDARDNAME        string  `json:"wrstandardname"  xorm:"'wrstandardname'"`                             // 品类名称
+	WRSTANDARDCODE        string  `json:"wrstandardcode"  xorm:"'wrstandardcode'"`                             // 品类代码
+	DELIVERYGOODSCODE     string  `json:"deliverygoodscode"  xorm:"'deliverygoodscode'"`                       // 现货商品代码
+	DELIVERYGOODSNAME     string  `json:"deliverygoodsname"  xorm:"'deliverygoodsname'"`                       // 现货商品名称
+	GOODSUNITID           int32   `json:"goodsunitid"  xorm:"'goodsunitid'"`                                   // 现货商品单位id
+	BRANDNAME             string  `json:"brandname"  xorm:"'brandname'"`                                       // 品牌名称
+	ACCOUNTNAME           string  `json:"accountname"  xorm:"'accountname'"`                                   // 所属机构名称
+	BIZTYPE               int32   `json:"biztype"  xorm:"'BIZTYPE'"`                                           // 业务类型  1-套保 2-套利
+	CURRENCYID            int32   `json:"currencyid"  xorm:"'CURRENCYID'"`                                     // 币种id
 
 	CURRENCYNAME       string  `json:"currencyname"`       // 币种名称
 	TOTALBUYPRICEDQTY  float64 `json:"totalbuypricedqty"`  // 采购定价量 = 期末 - 期初

+ 8 - 0
mtpcache/enumdicitem.go

@@ -47,6 +47,14 @@ func (r *enumdicitem) buildSql() string {
 	return sqlId.String()
 }
 
+func init() {
+	go func() {
+		time.Sleep(time.Second * 1)
+		vDicCurrency.load()
+		vDic.load()
+	}()
+}
+
 // 加载数据
 func (r *enumdicitem) load() {
 	now := time.Now()

+ 11 - 4
mtpcache/systemmanager.go

@@ -17,18 +17,25 @@ var vSysMgr sysMgr
 
 // sysMgr 管理员
 type sysMgr struct {
-	mtx  sync.RWMutex       // 锁
+	mtx  sync.RWMutex         // 锁
 	data map[int64]sysMgrData // 数据[AUTOID]sysMgrData
 	last time.Time
 }
 
 // sysMgrData 管理员数据
 type sysMgrData struct {
-	AUTOID    int64    `json:"autoid"  xorm:"'AUTOID'"`       // 管理员ID
+	AUTOID    int64  `json:"autoid"  xorm:"'AUTOID'"`       // 管理员ID
 	LOGINCODE string `json:"logincode"  xorm:"'LOGINCODE'"` // 管理员登录代码
 	USERNAME  string `json:"username"  xorm:"'USERNAME'"`   // 管理员登录名称
 }
 
+func init() {
+	go func() {
+		time.Sleep(time.Second * 1)
+		vSysMgr.load()
+	}()
+}
+
 func (r *sysMgr) load() {
 	now := time.Now()
 	// 间隔3秒以上才重新加载
@@ -77,8 +84,8 @@ func (r *sysMgr) logincode(autoId int64) string {
 func GetSystemmangerLoginCode(autoId int64) string {
 	if v := vSysMgr.logincode(autoId); v != "" {
 		return v
-	}else {
+	} else {
 		vSysMgr.load()
 	}
 	return vSysMgr.logincode(autoId)
-}
+}

+ 70 - 11
mtpcache/useraccount.go

@@ -7,6 +7,7 @@
 package mtpcache
 
 import (
+	"fmt"
 	"mtp2_if/db"
 	"mtp2_if/logger"
 	"sync"
@@ -23,16 +24,24 @@ type userAccountMgr struct {
 }
 
 type usrAccData struct {
-	USERID       int64  `json:"userid"  xorm:"'USERID'"`             //用户ID
-	USERTYPE     int32  `json:"usertype"  xorm:"'USERTYPE'"`         //账户类型 -  1:交易所 2:机构 3:会员子机构 4:经纪人 5:投资者 6:客户
-	ACCOUNTNAME  string `json:"accountname"  xorm:"'ACCOUNTNAME'"`   //账户名称(机构名称)
-	PARENTUSERID int32  `json:"parentuserid"  xorm:"'PARENTUSERID'"` //所属机构ID
-	MEMBERUSERID int32  `json:"memberuserid"  xorm:"'MEMBERUSERID'"` //所属会员ID
+	USERID       int64  `json:"userid"  xorm:"'USERID'"`             // 用户ID
+	USERTYPE     int32  `json:"usertype"  xorm:"'USERTYPE'"`         // 账户类型 -  1:交易所 2:机构 3:会员子机构 4:经纪人 5:投资者 6:客户
+	ACCOUNTNAME  string `json:"accountname"  xorm:"'ACCOUNTNAME'"`   // 账户名称(机构名称)
+	PARENTUSERID int64  `json:"parentuserid"  xorm:"'PARENTUSERID'"` // 所属机构ID
+	MEMBERUSERID int64  `json:"memberuserid"  xorm:"'MEMBERUSERID'"` // 所属会员ID
+	ROOTUSERID   int64  `json:"rootuserid"  xorm:"'ROOTUSERID'"`     // 根用户ID
 	NICKNAME     string `json:"nickname"  xorm:"'NICKNAME'"`         // 昵称
 }
 
-// 加载数据
-func (r *userAccountMgr) load() {
+func init() {
+	go func() {
+		time.Sleep(time.Second * 3)
+		vUsrMgr.load(0)
+	}()
+}
+
+// 加载数据, userId=0时, 加载所有记录
+func (r *userAccountMgr) load(userId int64) {
 	now := time.Now()
 	// 间隔3秒以上才重新加载
 	if d := now.Sub(r.last); d.Seconds() < 3 {
@@ -51,18 +60,23 @@ func (r *userAccountMgr) load() {
 		"       t.ACCOUNTNAME," +
 		"       t.PARENTUSERID," +
 		"       t.MEMBERUSERID," +
+		"       t.ROOTUSERID," +
 		"       u.nickname" +
 		"  from useraccount t" +
 		"  left join userinfo u" +
 		"    on t.userid = u.userid" +
 		" where 1 = 1"
-
+	if userId > 0 {
+		sqlId += fmt.Sprintf(" and t.userid = %v", userId)
+	}
 	sData := make([]usrAccData, 0)
 	s := e.SQL(sqlId)
 	if err := s.Find(&sData); err != nil {
 		logger.GetLogger().Errorf("cache load useraccount, %v", err)
 	} else {
-		r.data = make(map[int64]usrAccData)
+		if userId == 0 || r.data == nil {
+			r.data = make(map[int64]usrAccData)
+		}
 		for i := range sData {
 			r.data[sData[i].USERID] = sData[i]
 		}
@@ -111,12 +125,25 @@ func (r *userAccountMgr) getEx(userId int64) (string, string) {
 	return "", ""
 }
 
+func (r *userAccountMgr) getData(userId int64) (usrAccData, bool) {
+	r.mtx.RLock()
+	defer r.mtx.RUnlock()
+	if r.data == nil {
+		return usrAccData{}, false
+	}
+	v, ok := r.data[userId]
+	return v, ok
+}
+
 // GetUserNameByUserId 根据UserId获取名称
 func GetUserNameByUserId(userId int64) string {
+	if userId == 0 {
+		return ""
+	}
 	if v := vUsrMgr.get(userId); v != "" {
 		return v
 	} else {
-		vUsrMgr.load()
+		vUsrMgr.load(userId)
 	}
 
 	return vUsrMgr.get(userId)
@@ -124,11 +151,43 @@ func GetUserNameByUserId(userId int64) string {
 
 // GetUserNameAndNickName 获取名称和昵称
 func GetUserNameAndNickName(userId int64) (string, string) {
+	if userId == 0 {
+		return "", ""
+	}
 	if userName, nickName := vUsrMgr.getEx(userId); userName != "" {
 		return userName, nickName
 	} else {
-		vUsrMgr.load()
+		vUsrMgr.load(userId)
 	}
 
 	return vUsrMgr.getEx(userId)
 }
+
+// GetAreaUserId 获取所属机构id
+func GetAreaUserId(userId int64, userType int32) (areaUserId int64) {
+	if userId == 0 {
+		return userId
+	}
+	if userType == 2 {
+		areaUserId = userId
+	} else {
+		if v, ok := vUsrMgr.getData(userId); ok {
+			if v.USERTYPE == 2 {
+				areaUserId = v.USERID
+			} else {
+				areaUserId = v.ROOTUSERID
+			}
+			return
+		} else {
+			vUsrMgr.load(userId)
+		}
+		if v, ok := vUsrMgr.getData(userId); ok {
+			if v.USERTYPE == 2 {
+				areaUserId = v.USERID
+			} else {
+				areaUserId = v.ROOTUSERID
+			}
+		}
+	}
+	return
+}

+ 7 - 0
mtpcache/username.go

@@ -30,6 +30,13 @@ type userData struct {
 	ACCOUNTNAME   string `json:"accountname"  xorm:"'ACCOUNTNAME'"`     // 用户名字
 }
 
+func init() {
+	go func() {
+		time.Sleep(time.Second * 2)
+		vUser.load()
+	}()
+}
+
 // 加载数据
 func (r *userName) load() {
 	now := time.Now()