|
|
@@ -411,3 +411,216 @@ func (r *ErmcpRoleMenu) GetDataEx() (interface{}, error) {
|
|
|
}
|
|
|
return sDataEx, err
|
|
|
}
|
|
|
+
|
|
|
+// ErmcpBizGroupSpotGoods 业务类型分组商品表
|
|
|
+type ErmcpBizGroupSpotGoods struct {
|
|
|
+ BIZTYPE int32 `json:"biztype" xorm:"'BIZTYPE'"` // 业务类型 1-套保 2-套利
|
|
|
+ BIZGROUPID int64 `json:"bizgroupid" xorm:"'BIZGROUPID'"` // 分组id
|
|
|
+ WRSTANDARDID int32 `json:"wrstandardid" xorm:"'WRSTANDARDID'"` // 现货商品id
|
|
|
+ WRSTANDARDCODE string `json:"wrstandardcode" xorm:"'WRSTANDARDCODE'"` // 现货商品代码
|
|
|
+ WRSTANDARDNAME string `json:"wrstandardname" xorm:"'WRSTANDARDNAME'"` // 现货商品名称
|
|
|
+ UNITID int32 `json:"unitid" xorm:"'UNITID'"` // 现货商品单位id
|
|
|
+ AREAUSERID int64 `json:"areauserid" xorm:"'AREAUSERID'"` // 所属机构id
|
|
|
+}
|
|
|
+
|
|
|
+func (r *ErmcpBizGroupSpotGoods) calc() {
|
|
|
+}
|
|
|
+
|
|
|
+func (r *ErmcpBizGroupSpotGoods) buildSql() string {
|
|
|
+ var sqlId utils.SQLVal = "select t.biztype," +
|
|
|
+ " t.bizgroupid," +
|
|
|
+ " t.wrstandardid," +
|
|
|
+ " w.wrstandardcode," +
|
|
|
+ " w.wrstandardname," +
|
|
|
+ " w.unitid," +
|
|
|
+ " w.areauserid" +
|
|
|
+ " from ermcp_bizgroupspotgoods t" +
|
|
|
+ " left join wrstandard w" +
|
|
|
+ " on t.wrstandardid = w.wrstandardid" +
|
|
|
+ " where 1 = 1"
|
|
|
+ if r.AREAUSERID > 0 {
|
|
|
+ sqlId.And("w.AREAUSERID", r.AREAUSERID)
|
|
|
+ }
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+// GetDataEx 获取业务类型分组商品
|
|
|
+func (r *ErmcpBizGroupSpotGoods) GetDataEx() ([]ErmcpBizGroupSpotGoods, error) {
|
|
|
+ sData := make([]ErmcpBizGroupSpotGoods, 0)
|
|
|
+ err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
+ for i := range sData {
|
|
|
+ sData[i].calc()
|
|
|
+ }
|
|
|
+ return sData, err
|
|
|
+}
|
|
|
+
|
|
|
+// ErcmpBizGroupTaaccount 业务分组账号
|
|
|
+type ErmcpBizGroupTaAccount struct {
|
|
|
+ BIZGROUPID int64 `json:"bizgroupid" xorm:"'BIZGROUPID'"` // 业务分组id
|
|
|
+ ACCOUNTID string `json:"accountid" xorm:"'ACCOUNTID'"` // 账号id
|
|
|
+ AREAUSERID int64 `json:"areauserid" xorm:"'AREAUSERID'"` // 所属机构id
|
|
|
+ ACCOUNTNAME string `json:"accountname" xorm:"'ACCOUNTNAME'"` // 账号名称
|
|
|
+ ISMAIN int32 `json:"ismain" xorm:"'ISMAIN'"` // 是否主账号 1-是 0-否
|
|
|
+}
|
|
|
+
|
|
|
+func (r *ErmcpBizGroupTaAccount) calc() {
|
|
|
+}
|
|
|
+
|
|
|
+func (r *ErmcpBizGroupTaAccount) buildSql() string {
|
|
|
+ var sqlId utils.SQLVal = "select t.bizgroupid," +
|
|
|
+ " t.accountid," +
|
|
|
+ " ta.relateduserid areauserid," +
|
|
|
+ " ta.accountname," +
|
|
|
+ " ta.ismain" +
|
|
|
+ " from ermcp_bizgrouptaaccount t" +
|
|
|
+ " left join taaccount ta" +
|
|
|
+ " on t.accountid = ta.accountid" +
|
|
|
+ " where 1 = 1"
|
|
|
+ if r.AREAUSERID > 0 {
|
|
|
+ sqlId.And("ta.relateduserid", r.AREAUSERID)
|
|
|
+ }
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+// GetDataEx 获取业务分组账号
|
|
|
+func (r *ErmcpBizGroupTaAccount) GetDataEx() ([]ErmcpBizGroupTaAccount, error) {
|
|
|
+ sData := make([]ErmcpBizGroupTaAccount, 0)
|
|
|
+ err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
+ for i := range sData {
|
|
|
+ sData[i].calc()
|
|
|
+ }
|
|
|
+ return sData, err
|
|
|
+}
|
|
|
+
|
|
|
+// 账户设置分组信息
|
|
|
+type ErmcpBizGroupEx struct {
|
|
|
+ BIZTYPE int32 `json:"biztype" xorm:"'BIZTYPE'"` // 业务类型 1-套保 2-套利
|
|
|
+ BIZGROUPID int64 `json:"bizgroupid" xorm:"'BIZGROUPID'"` // 业务分组id
|
|
|
+
|
|
|
+ AccList []ErmcpBizGroupTaAccount `json:"acclist"` // 账号列表
|
|
|
+ WrList []ErmcpBizGroupSpotGoods `json:"wrlist"` // 现货商品表表
|
|
|
+
|
|
|
+ AREAUSERID int64 `json:"-"` // 所属机构
|
|
|
+}
|
|
|
+
|
|
|
+// GetDataEx 获取账户设置分组信息
|
|
|
+func (r *ErmcpBizGroupEx) GetDataEx() (interface{}, error) {
|
|
|
+ sData := make([]ErmcpBizGroupEx, 0)
|
|
|
+ mWr := ErmcpBizGroupSpotGoods{AREAUSERID: r.AREAUSERID}
|
|
|
+ mAcc := ErmcpBizGroupTaAccount{AREAUSERID: r.AREAUSERID}
|
|
|
+ if wrLst, err := mWr.GetDataEx(); err == nil {
|
|
|
+ for i := range wrLst {
|
|
|
+ var bFind bool = false
|
|
|
+ for k := range sData {
|
|
|
+ if sData[k].BIZGROUPID == wrLst[i].BIZGROUPID &&
|
|
|
+ sData[k].BIZTYPE == wrLst[i].BIZTYPE {
|
|
|
+ sData[k].WrList = append(sData[k].WrList, wrLst[i])
|
|
|
+ bFind = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if !bFind {
|
|
|
+ var d = ErmcpBizGroupEx{BIZGROUPID: wrLst[i].BIZGROUPID,
|
|
|
+ BIZTYPE: wrLst[i].BIZTYPE,
|
|
|
+ AccList: make([]ErmcpBizGroupTaAccount, 0),
|
|
|
+ WrList: make([]ErmcpBizGroupSpotGoods, 0)}
|
|
|
+ d.WrList = append(d.WrList, wrLst[i])
|
|
|
+ sData = append(sData, d)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if accLst, err := mAcc.GetDataEx(); err == nil {
|
|
|
+ for i := range accLst {
|
|
|
+ for k := range sData {
|
|
|
+ if sData[k].BIZGROUPID == accLst[i].BIZGROUPID {
|
|
|
+ sData[k].AccList = append(sData[k].AccList, accLst[i])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return sData, nil
|
|
|
+}
|
|
|
+
|
|
|
+// 资金账号信息
|
|
|
+type ErmcpTaAccountInfo struct {
|
|
|
+ CREDITDECREASE float64 `json:"creditdecrease" xorm:"'CREDITDECREASE'"` // 今日授信减少
|
|
|
+ OTHERCREDITINCREASE float64 `json:"othercreditincrease" xorm:"'OTHERCREDITINCREASE'"` // 今日其它授信增加
|
|
|
+ OTHERCREDITDECREASE float64 `json:"othercreditdecrease" xorm:"'OTHERCREDITDECREASE'"` // 今日其它授信减少
|
|
|
+ TRANSFERAMOUNT float64 `json:"transferamount" xorm:"'TRANSFERAMOUNT'"` // 今日划转金额(母子账号资金划转,从划入账号为正,从账号划出为负)
|
|
|
+ OTHERPAY float64 `json:"-" xorm:"'OTHERPAY'"` // 其他支出(交割付款 申购付款 全款买入 商城买入 卖家退货)
|
|
|
+ OTHERINCOME float64 `json:"-" xorm:"'OTHERINCOME'"` // 其他收入(交割收款 申购收款 全款卖出 商城卖出 买家退货 会员手续费收入)
|
|
|
+ OUTTHRESHOLD float64 `json:"outthreshold" xorm:"'OUTTHRESHOLD'"` // 出金阈值
|
|
|
+ TRADESTATUSCHANGETIME string `json:"-" xorm:"'TRADESTATUSCHANGETIME'"` // 激活时间
|
|
|
+ CHANGETIME string `json:"-" xorm:"'CHANGETIME'"` // 账户状态变更时间
|
|
|
+ THIRDINAMOUNT float64 `json:"thirdinamount" xorm:"'THIRDINAMOUNT'"` // 今日三方入金
|
|
|
+ THIRDOUTAMOUNT float64 `json:"thirdoutamount" xorm:"'THIRDOUTAMOUNT'"` // 今日三方出金
|
|
|
+ CAPITALBALANCE float64 `json:"capitalbalance" xorm:"'CAPITALBALANCE'"` // 本金余额[外部子账户实际出入金余额]
|
|
|
+ FROMACCOUNTID int64 `json:"fromaccountid" xorm:"'FROMACCOUNTID'"` // 所属上级账户
|
|
|
+ SUBLEVELPATH string `json:"sublevelpath" xorm:"'SUBLEVELPATH'"` // 账号层级路径(逗号分隔,首尾加逗号)
|
|
|
+ SERIVCEGROUP int64 `json:"-" xorm:"'SERIVCEGROUP'"` // 服务分组
|
|
|
+ ACCOUNTNAME string `json:"accountname" xorm:"'ACCOUNTNAME'"` // 账户名称
|
|
|
+ ACCOUNTFLAG int32 `json:"-" xorm:"'ACCOUNTFLAG'"` // 账户标识 - 0\1 (默认为0, 当上级账户与本账户的关联用户均为自己时更新为1)
|
|
|
+ ORIDEBT float64 `json:"oridebt" xorm:"'ORIDEBT'"` // 期初欠款
|
|
|
+ CURDEBT float64 `json:"curdebt" xorm:"'CURDEBT'"` // 期末欠款
|
|
|
+ ACCOUNTID int64 `json:"accountid" xorm:"'ACCOUNTID'"` // 资金账户ID
|
|
|
+ USERID int64 `json:"userid" xorm:"'USERID'"` // 用户ID
|
|
|
+ CURRENCYID int64 `json:"currencyid" xorm:"'CURRENCYID'"` // 货币ID
|
|
|
+ CHANGEFLAG int32 `json:"-" xorm:"'CHANGEFLAG'"` // 变动标志(当前账户资金有任何变动更新为1系统结算时更新0;供清算时使用) 0:无变动 1:有变动
|
|
|
+ PASSWORD string `json:"-" xorm:"'PASSWORD'"` // 资金密码
|
|
|
+ TRADESTATUS int32 `json:"tradestatus" xorm:"'TRADESTATUS'"` // 交易状态 - 1:正常 2:受限 3:冻结 4:禁止建仓(人工受限) 5:禁止交易(人工冻结) 6:待激活 7:已注销
|
|
|
+ SIGNSTATUS int32 `json:"signstatus" xorm:"'SIGNSTATUS'"` // 签约状态 - 1:未签约 2:签约待审核 3:签约中 4:已签约 5:解约待审核 6:解约中 7:已解约 8:已解绑 9:绑卡中
|
|
|
+ ISMAIN int32 `json:"ismain" xorm:"'ISMAIN'"` // 是否母账号 0:不是母账户 1:是母账户
|
|
|
+ PARENTACCOUNTID int64 `json:"parentaccountid" xorm:"'PARENTACCOUNTID'"` // 所属根账号
|
|
|
+ RELATEDUSERID int64 `json:"relateduserid" xorm:"'RELATEDUSERID'"` // 关联用户
|
|
|
+ RELATEDACCOUNTSTATUS int32 `json:"-" xorm:"'RELATEDACCOUNTSTATUS'"` // 关联用户交易权限状态 - 1:正常(可交易) 2:受限(可平仓,不可建仓) 3:冻结(不可交易)
|
|
|
+ TAACCOUNTTYPE int32 `json:"taaccounttype" xorm:"'TAACCOUNTTYPE'"` // 账号类型 - 1:外部账号 2:内部账号 3:内部做市自营账号 4:内部做市接单账号
|
|
|
+ ISRECKONACCOUNT int32 `json:"-" xorm:"'ISRECKONACCOUNT'"` // 是否机构分润账号 0:不是 1:是
|
|
|
+ ISMARKETACCOUNT int32 `json:"-" xorm:"'ISMARKETACCOUNT'"` // 是否机构接单账号 0:不是 1:是
|
|
|
+ BALANCE float64 `json:"balance" xorm:"'BALANCE'"` // 期初余额
|
|
|
+ ORIFREEZEMARGIN float64 `json:"orifreezemargin" xorm:"'ORIFREEZEMARGIN'"` // 期初冻结保证金
|
|
|
+ ORIUSEDMARGIN float64 `json:"oriusedmargin" xorm:"'ORIUSEDMARGIN'"` // 期初占用保证金
|
|
|
+ ORIOTHERFREEZEMARGIN float64 `json:"oriotherfreezemargin" xorm:"'ORIOTHERFREEZEMARGIN'"` // 期初其他冻结保证金(出金冻结资金 交割买方冻结 申购冻结 全款买入 商城买入)
|
|
|
+ ORIFREEZECHARGE float64 `json:"orifreezecharge" xorm:"'ORIFREEZECHARGE'"` // 期初手续费冻结
|
|
|
+ ORIMORTGAGECREDIT float64 `json:"orimortgagecredit" xorm:"'ORIMORTGAGECREDIT'"` // 期初授信金额
|
|
|
+ ORIOTHERCREDIT float64 `json:"oriothercredit" xorm:"'ORIOTHERCREDIT'"` // 期初其它授信金额
|
|
|
+ ORIOUTAMOUNTFREEZE float64 `json:"orioutamountfreeze" xorm:"'ORIOUTAMOUNTFREEZE'"` // 期初出金冻结
|
|
|
+ FREEZEMARGIN float64 `json:"freezemargin" xorm:"'FREEZEMARGIN'"` // 冻结保证金
|
|
|
+ USEDMARGIN float64 `json:"usedmargin" xorm:"'USEDMARGIN'"` // 占用保证金
|
|
|
+ OTHERFREEZEMARGIN float64 `json:"otherfreezemargin" xorm:"'OTHERFREEZEMARGIN'"` // 其他冻结保证金(交割买方冻结 申购冻结 全款买入 商城买入)
|
|
|
+ FREEZECHARGE float64 `json:"freezecharge" xorm:"'FREEZECHARGE'"` // 手续费冻结
|
|
|
+ MORTGAGECREDIT float64 `json:"mortgagecredit" xorm:"'MORTGAGECREDIT'"` // 授信金额
|
|
|
+ OTHERCREDIT float64 `json:"othercredit" xorm:"'OTHERCREDIT'"` // 其它授信金额
|
|
|
+ OUTAMOUNTFREEZE float64 `json:"outamountfreeze" xorm:"'OUTAMOUNTFREEZE'"` // 出金冻结
|
|
|
+ INAMOUNT float64 `json:"inamount" xorm:"'INAMOUNT'"` // 今日入金金额(包括三方入金)
|
|
|
+ CURRENTBALANCE float64 `json:"currentbalance" xorm:"'CURRENTBALANCE'"` // 期末余额
|
|
|
+ OUTAMOUNT float64 `json:"outamount" xorm:"'OUTAMOUNT'"` // 今日出金金额(包括三方出金)
|
|
|
+ PAYCHARGE float64 `json:"paycharge" xorm:"'PAYCHARGE'"` // 今日手续费支出
|
|
|
+ CLOSEPL float64 `json:"closepl" xorm:"'CLOSEPL'"` // 今日平仓盈亏
|
|
|
+ CREDITINCREASE float64 `json:"creditincrease" xorm:"'CREDITINCREASE'"` // 今日授信增加
|
|
|
+}
|
|
|
+
|
|
|
+func (r *ErmcpTaAccountInfo) calc() {
|
|
|
+}
|
|
|
+
|
|
|
+func (r *ErmcpTaAccountInfo) buildSql() string {
|
|
|
+ var sqlId utils.SQLVal = "select * from taaccount t where 1 = 1"
|
|
|
+ if r.USERID > 0 {
|
|
|
+ sqlId.And("t.RELATEDUSERID", r.RELATEDUSERID)
|
|
|
+ }
|
|
|
+ if r.ACCOUNTID > 0 {
|
|
|
+ sqlId.And("t.accountid", r.ACCOUNTID)
|
|
|
+ }
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+// 获取资金账号信息
|
|
|
+func (r *ErmcpTaAccountInfo) GetDataEx() (interface{}, error) {
|
|
|
+ sData := make([]ErmcpTaAccountInfo, 0)
|
|
|
+ err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
+ for i := range sData {
|
|
|
+ sData[i].calc()
|
|
|
+ }
|
|
|
+ return sData, err
|
|
|
+}
|