zhou.xiaoning 4 роки тому
батько
коміт
122662383f
4 змінених файлів з 70 додано та 35 видалено
  1. 16 16
      controllers/ermcp/qryOrder.go
  2. 2 0
      global/e/code.go
  3. 2 0
      global/e/msg.go
  4. 50 19
      models/account.go

+ 16 - 16
controllers/ermcp/qryOrder.go

@@ -128,12 +128,12 @@ func QueryErmcpTradePosition(c *gin.Context) {
 				if err != nil {
 					// 查询失败
 					logger.GetLogger().Errorf("QueryErmcpTradePosition failed: %s", err.Error())
-					appG.Response(http.StatusBadRequest, e.ERROR_GET_MARKET_FAILED, nil)
+					appG.Response(http.StatusBadRequest, e.ERROR_GET_EXEXCHANGE_FAILED, nil)
 					return
 				}
 				if exchange == nil {
 					logger.GetLogger().Errorf("QueryErmcpTradePosition failed")
-					appG.Response(http.StatusBadRequest, e.ERROR_GET_MARKET_FAILED, nil)
+					appG.Response(http.StatusBadRequest, e.ERROR_GET_EXEXCHANGE_FAILED, nil)
 					return
 				}
 				item.ExExehangeName = exchange.Exchangefullname
@@ -141,7 +141,7 @@ func QueryErmcpTradePosition(c *gin.Context) {
 				quoteDays, err := models.GetQuoteDays("'" + goods.Outgoodscode + "'")
 				if err != nil {
 					logger.GetLogger().Errorf("QueryErmcpTradePosition failed: %s", err.Error())
-					appG.Response(http.StatusBadRequest, e.ERROR_GET_GOODS_FAILED, nil)
+					appG.Response(http.StatusBadRequest, e.ERROR_GET_QUOTE_FAILED, nil)
 					return
 				}
 				if len(quoteDays) > 0 {
@@ -194,12 +194,12 @@ func QueryErmcpTradePosition(c *gin.Context) {
 				if err != nil {
 					// 查询失败
 					logger.GetLogger().Errorf("QueryErmcpTradePosition failed: %s", err.Error())
-					appG.Response(http.StatusBadRequest, e.ERROR_GET_MARKET_FAILED, nil)
+					appG.Response(http.StatusBadRequest, e.ERROR_GET_EXEXCHANGE_FAILED, nil)
 					return
 				}
 				if exchange == nil {
 					logger.GetLogger().Errorf("QueryErmcpTradePosition failed")
-					appG.Response(http.StatusBadRequest, e.ERROR_GET_MARKET_FAILED, nil)
+					appG.Response(http.StatusBadRequest, e.ERROR_GET_EXEXCHANGE_FAILED, nil)
 					return
 				}
 				item.ExExehangeName = exchange.Exchangefullname
@@ -207,7 +207,7 @@ func QueryErmcpTradePosition(c *gin.Context) {
 				quoteDays, err := models.GetQuoteDays("'" + goods.Outgoodscode + "'")
 				if err != nil {
 					logger.GetLogger().Errorf("QueryErmcpTradePosition failed: %s", err.Error())
-					appG.Response(http.StatusBadRequest, e.ERROR_GET_GOODS_FAILED, nil)
+					appG.Response(http.StatusBadRequest, e.ERROR_GET_QUOTE_FAILED, nil)
 					return
 				}
 				if len(quoteDays) > 0 {
@@ -253,12 +253,12 @@ func QueryErmcpTradePosition(c *gin.Context) {
 				if err != nil {
 					// 查询失败
 					logger.GetLogger().Errorf("QueryErmcpTradePosition failed: %s", err.Error())
-					appG.Response(http.StatusBadRequest, e.ERROR_GET_GOODS_FAILED, nil)
+					appG.Response(http.StatusBadRequest, e.ERROR_GET_MARKET_FAILED, nil)
 					return
 				}
 				if market == nil {
 					logger.GetLogger().Errorf("QueryErmcpTradePosition failed")
-					appG.Response(http.StatusBadRequest, e.ERROR_GET_GOODS_FAILED, nil)
+					appG.Response(http.StatusBadRequest, e.ERROR_GET_MARKET_FAILED, nil)
 					return
 				}
 				item.Marketid = int64(market.Marketid)
@@ -284,12 +284,12 @@ func QueryErmcpTradePosition(c *gin.Context) {
 				if err != nil {
 					// 查询失败
 					logger.GetLogger().Errorf("QueryErmcpTradePosition failed: %s", err.Error())
-					appG.Response(http.StatusBadRequest, e.ERROR_GET_MARKET_FAILED, nil)
+					appG.Response(http.StatusBadRequest, e.ERROR_GET_EXEXCHANGE_FAILED, nil)
 					return
 				}
 				if exchange == nil {
 					logger.GetLogger().Errorf("QueryErmcpTradePosition failed")
-					appG.Response(http.StatusBadRequest, e.ERROR_GET_MARKET_FAILED, nil)
+					appG.Response(http.StatusBadRequest, e.ERROR_GET_EXEXCHANGE_FAILED, nil)
 					return
 				}
 				item.ExExehangeName = exchange.Exchangefullname
@@ -297,7 +297,7 @@ func QueryErmcpTradePosition(c *gin.Context) {
 				quoteDays, err := models.GetQuoteDays("'" + goods.Outgoodscode + "'")
 				if err != nil {
 					logger.GetLogger().Errorf("QueryErmcpTradePosition failed: %s", err.Error())
-					appG.Response(http.StatusBadRequest, e.ERROR_GET_GOODS_FAILED, nil)
+					appG.Response(http.StatusBadRequest, e.ERROR_GET_QUOTE_FAILED, nil)
 					return
 				}
 				if len(quoteDays) > 0 {
@@ -339,12 +339,12 @@ func QueryErmcpTradePosition(c *gin.Context) {
 				if err != nil {
 					// 查询失败
 					logger.GetLogger().Errorf("QueryErmcpTradePosition failed: %s", err.Error())
-					appG.Response(http.StatusBadRequest, e.ERROR_GET_GOODS_FAILED, nil)
+					appG.Response(http.StatusBadRequest, e.ERROR_GET_MARKET_FAILED, nil)
 					return
 				}
 				if market == nil {
 					logger.GetLogger().Errorf("QueryErmcpTradePosition failed")
-					appG.Response(http.StatusBadRequest, e.ERROR_GET_GOODS_FAILED, nil)
+					appG.Response(http.StatusBadRequest, e.ERROR_GET_MARKET_FAILED, nil)
 					return
 				}
 				item.Marketid = int64(market.Marketid)
@@ -370,12 +370,12 @@ func QueryErmcpTradePosition(c *gin.Context) {
 				if err != nil {
 					// 查询失败
 					logger.GetLogger().Errorf("QueryErmcpTradePosition failed: %s", err.Error())
-					appG.Response(http.StatusBadRequest, e.ERROR_GET_MARKET_FAILED, nil)
+					appG.Response(http.StatusBadRequest, e.ERROR_GET_EXEXCHANGE_FAILED, nil)
 					return
 				}
 				if exchange == nil {
 					logger.GetLogger().Errorf("QueryErmcpTradePosition failed")
-					appG.Response(http.StatusBadRequest, e.ERROR_GET_MARKET_FAILED, nil)
+					appG.Response(http.StatusBadRequest, e.ERROR_GET_EXEXCHANGE_FAILED, nil)
 					return
 				}
 				item.ExExehangeName = exchange.Exchangefullname
@@ -383,7 +383,7 @@ func QueryErmcpTradePosition(c *gin.Context) {
 				quoteDays, err := models.GetQuoteDays("'" + goods.Outgoodscode + "'")
 				if err != nil {
 					logger.GetLogger().Errorf("QueryErmcpTradePosition failed: %s", err.Error())
-					appG.Response(http.StatusBadRequest, e.ERROR_GET_GOODS_FAILED, nil)
+					appG.Response(http.StatusBadRequest, e.ERROR_GET_QUOTE_FAILED, nil)
 					return
 				}
 				if len(quoteDays) > 0 {

+ 2 - 0
global/e/code.go

@@ -18,6 +18,8 @@ const (
 	ERROR_GET_RUNSTEP_FAILED       = 30014
 	ERROR_QUERY_TIME_FORMAT_FAIL   = 30015
 	ERROR_ADD_MAX_3                = 30016
+	ERROR_GET_EXEXCHANGE_FAILED    = 30017
+	ERROR_GET_QUOTE_FAILED         = 30018
 
 	ERROR_UPLOAD_SAVE_IMAGE_FAIL    = 40001
 	ERROR_UPLOAD_CHECK_IMAGE_FAIL   = 40002

+ 2 - 0
global/e/msg.go

@@ -18,6 +18,8 @@ var MsgFlags = map[int]string{
 	ERROR_GET_RUNSTEP_FAILED:       "获取市场开休市计划失败",
 	ERROR_QUERY_TIME_FORMAT_FAIL:   "错误的时间格式",
 	ERROR_ADD_MAX_3:                "每日最多只能新增3条留言",
+	ERROR_GET_EXEXCHANGE_FAILED:    "获取外部交易所信息失败",
+	ERROR_GET_QUOTE_FAILED:         "获取市场信息失败",
 
 	ERROR_UPLOAD_SAVE_IMAGE_FAIL:    "保存图片失败",
 	ERROR_UPLOAD_CHECK_IMAGE_FAIL:   "检查图片失败",

+ 50 - 19
models/account.go

@@ -11,26 +11,29 @@ import (
 	"time"
 )
 
-// Loginaccount 登录账户
+// Loginaccount 登录账户
 type Loginaccount struct {
-	Loginid         int64     `json:"loginid"  xorm:"'LOGINID'" binding:"required"` // 登陆账号
-	Userid          int64     `json:"userid"  xorm:"'USERID'"`                      // 用户ID
-	Loginfailnum    int32     `json:"loginfailnum"  xorm:"'LOGINFAILNUM'"`          // 连续登录失败次数(登录成功时清零)
-	Password        string    `json:"password"  xorm:"'PASSWORD'"`                  // 登陆密码
-	Loginusertype   int32     `json:"loginusertype"  xorm:"'LOGINUSERTYPE'"`        // 登录账号类型 - 1:投资者 2:机构交易员
-	Loginstatus     int32     `json:"loginstatus"  xorm:"'LOGINSTATUS'"`            // 登录账号状态 1:正常 2:冻结 3:无效
-	Lastlogintime   time.Time `json:"lastlogintime"  xorm:"'LASTLOGINTIME'"`        // 最新登录时间
-	Lastloginmode   int32     `json:"lastloginmode"  xorm:"'LASTLOGINMODE'"`        // 最新登录方式(客户端类型) -  0:保留为未填终端类型 1:PC管理端 2:PC交易端 3:手机客户端_安卓 4:网页客户端 5:微信客户端 6:手机客户端_苹果 7:网上开户客户端 8:无效终端编号 9:报价终端(中江)
-	Lastloginip     string    `json:"lastloginip"  xorm:"'LASTLOGINIP'"`            // 最新登录地址
-	Loginport       int32     `json:"loginport"  xorm:"'LOGINPORT'"`                // 最新登录端口
-	Lastloginremark string    `json:"lastloginremark"  xorm:"'LASTLOGINREMARK'"`    // 最新登录描述
-	Modifytime      time.Time `json:"modifytime"  xorm:"'MODIFYTIME'"`              // 修改时间
-	Modifierid      int64     `json:"modifierid"  xorm:"'MODIFIERID'"`              // 修改人
-	Pwdwrongcount   int32     `json:"pwdwrongcount"  xorm:"'PWDWRONGCOUNT'"`        // 密码错误次数
-	Unfreezetime    time.Time `json:"unfreezetime"  xorm:"'UNFREEZETIME'"`          // 账户解冻时间
-	Haslogined      int32     `json:"haslogined"  xorm:"'HASLOGINED'"`              // 是否已登录 - 0:未登录 1:已登录
-	Hasupdatedpwd   int32     `json:"hasupdatedpwd"  xorm:"'HASUPDATEDPWD'"`        // 是否已更改密码 - 0:未修改 1:已修改
-	Logincode       string    `json:"logincode"  xorm:"'LOGINCODE'"`                // 登录代码
+	Loginid            int64     `json:"loginid"  xorm:"'LOGINID'" binding:"required"`    // 登陆账号
+	Userid             int64     `json:"userid"  xorm:"'USERID'"`                         // 用户ID
+	Loginfailnum       int32     `json:"loginfailnum"  xorm:"'LOGINFAILNUM'"`             // 连续登录失败次数(登录成功时清零)
+	Password           string    `json:"password"  xorm:"'PASSWORD'"`                     // 登陆密码
+	Loginusertype      int32     `json:"loginusertype"  xorm:"'LOGINUSERTYPE'"`           // 登录账号类型 - 1:投资者 2:机构交易员
+	Loginstatus        int32     `json:"loginstatus"  xorm:"'LOGINSTATUS'"`               // 登录账号状态 1:正常 2:冻结 3:无效
+	Lastlogintime      time.Time `json:"lastlogintime"  xorm:"'LASTLOGINTIME'"`           // 最新登录时间
+	Lastloginmode      int32     `json:"lastloginmode"  xorm:"'LASTLOGINMODE'"`           // 最新登录方式(客户端类型) -  0:保留为未填终端类型 1:PC管理端 2:PC交易端 3:手机客户端_安卓 4:网页客户端 5:微信客户端 6:手机客户端_苹果 7:网上开户客户端 8:无效终端编号 9:报价终端(中江)
+	Lastloginip        string    `json:"lastloginip"  xorm:"'LASTLOGINIP'"`               // 最新登录地址
+	Loginport          int32     `json:"loginport"  xorm:"'LOGINPORT'"`                   // 最新登录端口
+	Lastloginremark    string    `json:"lastloginremark"  xorm:"'LASTLOGINREMARK'"`       // 最新登录描述
+	Modifytime         time.Time `json:"modifytime"  xorm:"'MODIFYTIME'"`                 // 修改时间
+	Modifierid         int64     `json:"modifierid"  xorm:"'MODIFIERID'"`                 // 修改人
+	Pwdwrongcount      int32     `json:"pwdwrongcount"  xorm:"'PWDWRONGCOUNT'"`           // 密码错误次数
+	Unfreezetime       time.Time `json:"unfreezetime"  xorm:"'UNFREEZETIME'"`             // 账户解冻时间
+	Haslogined         int32     `json:"haslogined"  xorm:"'HASLOGINED'"`                 // 是否已登录 - 0:未登录 1:已登录
+	Hasupdatedpwd      int32     `json:"hasupdatedpwd"  xorm:"'HASUPDATEDPWD'"`           // 是否已更改密码 - 0:未修改 1:已修改
+	Logincode          string    `json:"logincode"  xorm:"'LOGINCODE'"`                   // 登录代码
+	Canoutin           int32     `json:"canoutin"  xorm:"'CANOUTIN'"`                     // 是否可出入金 - 0:不可 1:可
+	Clientroleid       int32     `json:"clientroleid"  xorm:"'CLIENTROLEID'"`             // 终端角色ID
+	Taaccountrighttype int32     `json:"taaccountrighttype"  xorm:"'TAACCOUNTRIGHTTYPE'"` // 资金账号权限类型 - 1:不选默认为所有权限 2:不选默认为无权限
 }
 
 // TableName is LOGINACCOUNT
@@ -439,6 +442,21 @@ func (Wskhuserinfo) TableName() string {
 	return "WSKH_USERINFO"
 }
 
+// GetLoginAccount 获取资金账户信息
+func GetLoginAccount(loginID int) (*Loginaccount, error) {
+	var loginaccount Loginaccount
+	// var loginaccount Loginaccount
+	has, err := db.GetEngine().Where("LOGINID = ?", loginID).Get(&loginaccount)
+	if err != nil {
+		return nil, err
+	}
+	if !has {
+		return nil, nil
+	}
+
+	return &loginaccount, nil
+}
+
 // GetLoginAccountByLoginCode 通过登录代码查询登录账号信息
 func GetLoginAccountByLoginCode(loginCode string) (*Loginaccount, error) {
 	engine := db.GetEngine()
@@ -717,6 +735,19 @@ func GetTaAccountsByLoginID(loginID, taAccountType int) ([]Taaccount, error) {
 			return nil, err
 		}
 	} else {
+		// 获取登录账户信息
+		loginAccount, err := GetLoginAccount(loginID)
+		if err != nil {
+			return nil, err
+		}
+		if loginAccount == nil {
+			return make([]Taaccount, 0), nil
+		}
+		// 资金账号权限类型 - 1:不选默认为所有权限 2:不选默认为无权限
+		if loginAccount.Taaccountrighttype == 2 {
+			return make([]Taaccount, 0), nil
+		}
+
 		// 直接从TaAccount表中获取
 		session := engine.Table("TAACCOUNT").
 			Join("INNER", "LOGINACCOUNT L", "L.USERID = TAACCOUNT.RELATEDUSERID").