Ver Fonte

修改BUG

zhouxnsz há 9 meses atrás
pai
commit
30beeb9228
6 ficheiros alterados com 62 adições e 10 exclusões
  1. 1 1
      controllers/bank/bank.go
  2. 1 1
      docs/docs.go
  3. 1 1
      docs/swagger.json
  4. 1 1
      docs/swagger.yaml
  5. 22 6
      models/bank.go
  6. 36 0
      models/ori.go

+ 1 - 1
controllers/bank/bank.go

@@ -58,7 +58,7 @@ type GetAmtInByPaidUrlReq struct {
 // @Security ApiKeyAuth
 // @Param    accountid   query    int    true  "资金账户"
 // @Param    exchticket  query    string true  "银行服务流水号"
-// @Param    channelmode query    string false "渠道类型:ChillPay,PayerMax,AsiaPay"
+// @Param    channelmode query    string false "渠道类型:chillpay payermax asiapay hybrid"
 // @Success  200         {object} models.GetAmtInByPaidUrlRsp
 // @Failure  500         {object} app.Response
 // @Router   /Bank/GetAmtInByPaidUrl [get]

+ 1 - 1
docs/docs.go

@@ -738,7 +738,7 @@ const docTemplate = `{
                     },
                     {
                         "type": "string",
-                        "description": "渠道类型:ChillPay,PayerMax,AsiaPay",
+                        "description": "渠道类型:chillpay payermax asiapay hybrid",
                         "name": "channelmode",
                         "in": "query"
                     }

+ 1 - 1
docs/swagger.json

@@ -729,7 +729,7 @@
                     },
                     {
                         "type": "string",
-                        "description": "渠道类型:ChillPay,PayerMax,AsiaPay",
+                        "description": "渠道类型:chillpay payermax asiapay hybrid",
                         "name": "channelmode",
                         "in": "query"
                     }

+ 1 - 1
docs/swagger.yaml

@@ -32437,7 +32437,7 @@ paths:
         name: exchticket
         required: true
         type: string
-      - description: 渠道类型:ChillPay,PayerMax,AsiaPay
+      - description: 渠道类型:chillpay payermax asiapay hybrid
         in: query
         name: channelmode
         type: string

+ 22 - 6
models/bank.go

@@ -107,7 +107,7 @@ func GetAmtInByPaid(accountId int, exchticket string, channelMode string) (rsp *
 	var has bool
 
 	// 尝试 ChillPay
-	if channelMode == "ChillPay" || channelMode == "" {
+	if channelMode == "chillpay" || channelMode == "" {
 		var rec Chillpayamtinrec
 		has, err = engine.Where("accountid = ? and exch_seq = ? and deal_status = 2", accountId, exchticket).Get(&rec)
 		if err != nil {
@@ -115,7 +115,7 @@ func GetAmtInByPaid(accountId int, exchticket string, channelMode string) (rsp *
 		}
 		if has {
 			rsp = &GetAmtInByPaidUrlRsp{
-				ChannelMode: "ChillPay",
+				ChannelMode: "chillpay",
 				URL:         rec.PAYMENTURL,
 			}
 			return
@@ -123,7 +123,7 @@ func GetAmtInByPaid(accountId int, exchticket string, channelMode string) (rsp *
 	}
 
 	// 尝试 PayerMax
-	if channelMode == "PayerMax" || channelMode == "" {
+	if channelMode == "payermax" || channelMode == "" {
 		var rec Payermaxamtinrec
 		has, err = engine.Where("accountid = ? and exch_seq = ? and deal_status = 2", accountId, exchticket).Get(&rec)
 		if err != nil {
@@ -131,7 +131,7 @@ func GetAmtInByPaid(accountId int, exchticket string, channelMode string) (rsp *
 		}
 		if has {
 			rsp = &GetAmtInByPaidUrlRsp{
-				ChannelMode: "PayerMax",
+				ChannelMode: "payermax",
 				URL:         rec.REDIRECTURL,
 			}
 			return
@@ -139,7 +139,7 @@ func GetAmtInByPaid(accountId int, exchticket string, channelMode string) (rsp *
 	}
 
 	// 尝试 Asia Pay
-	if channelMode == "AsiaPay" || channelMode == "" {
+	if channelMode == "asiapay" || channelMode == "" {
 		var rec Asiapayamtinrec
 		has, err = engine.Where("accountid = ? and exch_seq = ? and deal_status = 2", accountId, exchticket).Get(&rec)
 		if err != nil {
@@ -147,7 +147,7 @@ func GetAmtInByPaid(accountId int, exchticket string, channelMode string) (rsp *
 		}
 		if has {
 			rsp = &GetAmtInByPaidUrlRsp{
-				ChannelMode: "AsiaPay",
+				ChannelMode: "asiapay",
 				URL:         rec.REDIRECTURL,
 				Params:      rec.REDIRECTPARAMS,
 			}
@@ -155,6 +155,22 @@ func GetAmtInByPaid(accountId int, exchticket string, channelMode string) (rsp *
 		}
 	}
 
+	// 尝试混合支付
+	if channelMode == "hybrid" || channelMode == "" {
+		var rec Hybridamtrec
+		has, err = engine.Where("TRADE_ACCT = ? and exch_seq = ? and deal_status = 2", accountId, exchticket).Get(&rec)
+		if err != nil {
+			return
+		}
+		if has {
+			rsp = &GetAmtInByPaidUrlRsp{
+				ChannelMode: "hybrid",
+				URL:         rec.PAYMENT_URL,
+			}
+			return
+		}
+	}
+
 	return
 }
 

+ 36 - 0
models/ori.go

@@ -1346,3 +1346,39 @@ type Hybridbankinfo struct {
 func (r *Hybridbankinfo) TableName() string {
 	return "HYBRID_BANKINFO"
 }
+
+// Hybridamtrec 混合支付出入金记录表
+type Hybridamtrec struct {
+	ID           int64     `json:"id" xorm:"ID"`                     // 自增ID
+	REC_VERSION  int64     `json:"rec_version" xorm:"REC_VERSION"`   // 乐观锁
+	CHANNEL_CODE string    `json:"channel_code" xorm:"CHANNEL_CODE"` // 渠道代码
+	CREATED_AT   time.Time `json:"created_at" xorm:"CREATED_AT"`     // 创建时间
+	UPDATED_AT   time.Time `json:"updated_at" xorm:"UPDATED_AT"`     // 修改时间
+	DEAL_STATUS  int32     `json:"deal_status" xorm:"DEAL_STATUS"`   // 状态 0-成功 1-失败 2-已发送 3-初始化
+	DEAL_DESC    string    `json:"deal_desc" xorm:"DEAL_DESC"`       // 状态描述
+	OUT_IN_FLAG  int32     `json:"out_in_flag" xorm:"OUT_IN_FLAG"`   // 出入金标志 0-出金 1-入金
+	SENDER_TYPE  int32     `json:"sender_type" xorm:"SENDER_TYPE"`   // 发送方 0-中心 1-交易所 2-银行
+	BANK_SEQ     string    `json:"bank_seq" xorm:"BANK_SEQ"`         // 渠道订单流水号
+	EXCH_NO      string    `json:"exch_no" xorm:"EXCH_NO"`           // 交易所编号
+	EXCH_DATE    string    `json:"exch_date" xorm:"EXCH_DATE"`       // 交易所业务日期【交易日】
+	EXCH_SEQ     string    `json:"exch_seq" xorm:"EXCH_SEQ"`         // 交易所流水号
+	TRADE_ACCT   string    `json:"trade_acct" xorm:"TRADE_ACCT"`     // 交易账号【资金账户】
+	TRAN_NO      string    `json:"tran_no" xorm:"TRAN_NO"`           // 银行业务编号
+	ACCT         string    `json:"acct" xorm:"ACCT"`                 // 银行账号
+	ACCT_NAME    string    `json:"acct_name" xorm:"ACCT_NAME"`       // 银行账户名
+	AMT          float64   `json:"amt" xorm:"AMT"`                   // 金额
+	CURRENCY     string    `json:"currency" xorm:"CURRENCY"`         // 币种
+	REMARK       string    `json:"remark" xorm:"REMARK"`             // 备注
+	CARD_BANK_NO string    `json:"card_bank_no" xorm:"CARD_BANK_NO"` // 银行卡行号
+	CARD_ACCT    string    `json:"card_acct" xorm:"CARD_ACCT"`       // 银行卡号
+	CARD_NAME    string    `json:"card_name" xorm:"CARD_NAME"`       // 银行卡户名
+	EXTEND_INFO  string    `json:"extend_info" xorm:"EXTEND_INFO"`   // 扩展信息
+	RSP_BODY     string    `json:"rsp_body" xorm:"RSP_BODY"`         // 请求接口回复数据
+	STATUS_BODY  string    `json:"status_body" xorm:"STATUS_BODY"`   // 状态接口回复数据
+	PAYMENT_URL  string    `json:"payment_url" xorm:"PAYMENT_URL"`   // 支付地址
+}
+
+// TableName is HYBRID_AMT_REC
+func (r *Hybridamtrec) TableName() string {
+	return "HYBRID_AMT_REC"
+}