/**
* @Author: zou.yingbin
* @Create  : 2021/3/30 13:37
* @Modify  : 2021/3/30 13:37
* @Note    : 账户管理
**/

package ermcp

import (
	"github.com/gin-gonic/gin"
	"mtp2_if/global/app"
	"mtp2_if/models"
	"mtp2_if/mtpcache"
)

// QryLoginUserReq
type QryLoginUserReq struct {
	UserId    int64 `form:"userid" binding:"required"`    // 用户id
	USERTYPE  int32 `form:"usertype"`                     // 用户类型
	QueryType int32 `form:"querytype" binding:"required"` // 查询类型 1-业务账户 2-交易账户 3-管理账户
}

// QueryAccMgrLoginUser
// @Summary 查询账户管理登录账号(账户管理/登录账号)
// @Produce json
// @Security ApiKeyAuth
// @Param userid query int true "用户ID"
// @Param usertype query int false "用户类型 2-机构 7-企业成员"
// @Param querytype query int true "查询类型 1-业务账户 2-交易账户 3-管理账户"
// @Success 200 {array} models.ErmcpLoginUserEx
// @Failure 500 {object} app.Response
// @Router /Ermcp/QueryAccMgrLoginUser [get]
// @Tags 企业风险管理(app)
func QueryAccMgrLoginUser(c *gin.Context) {
	a := app.GinUtils{Gin: app.Gin{C: c}}
	req := QryLoginUserReq{}
	a.DoBindReq(&req)
	m := models.ErmcpLoginUser{USERID: mtpcache.GetAreaUserId(req.UserId, req.USERTYPE),
		QueryType: req.QueryType}
	a.DoGetDataI(&m)
}

// QueryAccMgrTaaccount
// @Summary 查询账户管理期货账号(账户管理/期货账号)
// @Produce json
// @Security ApiKeyAuth
// @Param userid query int true "用户ID"
// @Success 200 {array} models.ErmcpTaAccountEx
// @Failure 500 {object} app.Response
// @Router /Ermcp/QueryAccMgrTaaccount [get]
// @Tags 企业风险管理(app)
func QueryAccMgrTaaccount(c *gin.Context) {
	a := app.GinUtils{Gin: app.Gin{C: c}}
	req := struct {
		UserId int64 `form:"userid" binding:"required"` // 用户id
	}{}
	a.DoBindReq(&req)
	m := models.ErmcpTaAccount{USERID: req.UserId}
	a.DoGetDataI(&m)
}

// QueryAccMgrMainAccountInfo
// @Summary 查询账户管理主账号详情(账户管理/期货主账号详情)
// @Produce json
// @Security ApiKeyAuth
// @Param userid query int false "用户ID"
// @Param accountid query int false "主账号id"
// @Success 200 {array} models.MainAccountInfo
// @Failure 500 {object} app.Response
// @Router /Ermcp/QueryAccMgrMainAccountInfo [get]
// @Tags 企业风险管理(app)
func QueryAccMgrMainAccountInfo(c *gin.Context) {
	a := app.GinUtils{Gin: app.Gin{C: c}}
	req := struct {
		UserId    int64 `form:"userid"`    // 用户id
		AccountId int64 `form:"accountid"` // 主账号id
	}{}
	a.DoBindReq(&req)
	m := models.MainAccountInfo{USERID: req.UserId, ACCOUNTID: req.AccountId}
	a.DoGetDataI(&m)
}

// QueryAccMgrRole
// @Summary 查询账户管理角色设置(账户管理/角色设置)
// @Produce json
// @Security ApiKeyAuth
// @Param userid query int true "用户ID"
// @Success 200 {array} models.ErmcpRole
// @Failure 500 {object} app.Response
// @Router /Ermcp/QueryAccMgrRole [get]
// @Tags 企业风险管理(app)
func QueryAccMgrRole(c *gin.Context) {
	a := app.GinUtils{Gin: app.Gin{C: c}}
	req := struct {
		UserId int64 `form:"userid" binding:"required"` // 用户id
	}{}
	a.DoBindReq(&req)
	m := models.ErmcpRole{AREAUSERID: req.UserId}
	a.DoGetDataI(&m)
}

// QryRoleMenuReq
type QryRoleMenuReq struct {
	UserId int64  `form:"userid" binding:"required"` // 用户id
	RoleId string `form:"roleid"`                    // 角色id(可多个,逗号隔开)
}

// QueryAccMgrRoleMenu
// @Summary 查询账户管理角色详情(账户管理/角色设置/角色详情)
// @Produce json
// @Security ApiKeyAuth
// @Param userid query int true "用户ID"
// @Param roleid query string false "角色id(可多个,逗号隔开)"
// @Success 200 {array} models.ErmcpRoleMenuEx
// @Failure 500 {object} app.Response
// @Router /Ermcp/QueryAccMgrRoleMenu [get]
// @Tags 企业风险管理(app)
func QueryAccMgrRoleMenu(c *gin.Context) {
	a := app.GinUtils{Gin: app.Gin{C: c}}
	req := QryRoleMenuReq{}
	a.DoBindReq(&req)
	m := models.ErmcpRoleMenu{USERID: req.UserId, FilterRoleId: req.RoleId}
	a.DoGetDataI(&m)
}

// QueryAccMgrBizGroupSet
// @Summary 查询业务类型分组(账户管理/账户设置)
// @Produce json
// @Security ApiKeyAuth
// @Param userid query int true "用户ID"
// @Param deliverygoodsid query int false "现货商品id"
// @Success 200 {array} models.ErmcpBizGroupEx
// @Failure 500 {object} app.Response
// @Router /Ermcp/QueryAccMgrBizGroupSet [get]
// @Tags 企业风险管理(app)
func QueryAccMgrBizGroupSet(c *gin.Context) {
	a := app.GinUtils{Gin: app.Gin{C: c}}
	req := struct {
		USERID          int64 `form:"userid" binding:"required"` // 用户id
		DELIVERYGOODSID int32 `form:"deliverygoodsid"`           // 现货商品id
	}{}

	a.DoBindReq(&req)
	m := models.ErmcpBizGroupEx{AREAUSERID: req.USERID, DELIVERYGOODSID: req.DELIVERYGOODSID}
	a.DoGetDataI(&m)
}

// QryTaAccountReq 查询资金账号
type QryTaAccountReq struct {
	UserId    int64 `form:"userid"`    // 用户id
	AccountId int64 `form:"accountid"` // 账号id
}

// QueryAccMgrTaAccountInfo
// @Summary 查询账户管理授信(账户管理/账户设置/授信)
// @Produce json
// @Security ApiKeyAuth
// @Param userid query int true "用户ID"
// @Param accountid query int false "账号id"
// @Success 200 {array} models.ErmcpTaAccountInfo
// @Failure 500 {object} app.Response
// @Router /Ermcp/QueryAccMgrTaAccountInfo [get]
// @Tags 企业风险管理(app)
func QueryAccMgrTaAccountInfo(c *gin.Context) {
	a := app.GinUtils{Gin: app.Gin{C: c}}
	req := QryTaAccountReq{}
	a.DoBindReq(&req)
	m := models.ErmcpTaAccountInfo{RELATEDUSERID: req.UserId, ACCOUNTID: req.AccountId}
	a.DoGetDataI(&m)
}
