Beacon/routers/handlers/test.go
2025-06-27 12:10:54 +08:00

194 lines
6.3 KiB
Go

package handlers
import (
"github.com/gin-gonic/gin"
"net/http"
)
type TestHandler struct {
}
func NewTestHandler() *TestHandler {
return &TestHandler{}
}
// TestEndpoint godoc
// @Summary Test endpoint
// @Description Test endpoint for API functionality verification
// @Tags test
// @Accept json
// @Produce json
// @Param body body Endpoint true "Test request body"
// @Success 200 {object} map[string]interface{}
// @Failure 400 {object} map[string]interface{}
// @Router /test/test-endpoint [post]
func (h *TestHandler) TestEndpoint(c *gin.Context) {
var req Endpoint
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{
"error": "请求参数错误",
"details": err.Error(),
})
return
}
c.JSON(200, gin.H{
"message": "Test endpoint is working",
})
}
// CoreTransferEndpoint godoc
// @Summary Core transfer endpoint
// @Description Core transfer endpoint for handling core banking transfer operations
// @Tags test
// @Accept json
// @Produce json
// @Param body body CoreTransfer true "Core transfer request body"
// @Success 200 {object} map[string]interface{}
// @Failure 400 {object} map[string]interface{}
// @Router /test/core-transfer [post]
func (h *TestHandler) CoreTransferEndpoint(c *gin.Context) {
var req CoreTransfer
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{
"error": "请求参数错误",
"details": err.Error(),
})
return
}
c.JSON(200, gin.H{
"message": "Test endpoint is working",
})
}
type Endpoint struct {
BODY struct {
BASEACCTNO string `json:"BASE_ACCT_NO"`
TRANTYPE string `json:"TRAN_TYPE"`
TRANCCY string `json:"TRAN_CCY"`
TRANAMT string `json:"TRAN_AMT"`
SETTLEMENTDATE string `json:"SETTLEMENT_DATE"`
SERVDETAIL struct {
FEETYPE string `json:"FEE_TYPE"`
FEEAMT string `json:"FEE_AMT"`
ORIGFEEAMT string `json:"ORIG_FEE_AMT"`
DISCFEEAMT string `json:"DISC_FEE_AMT"`
DISCTYPE string `json:"DISC_TYPE"`
DISCRATE struct {
PHONENO2 struct {
LINKMANTYPE string `json:"LINKMAN_TYPE"`
LINKMANNAME string `json:"LINKMAN_NAME"`
DOCUMENTTYPE []struct {
LINKMANTYPE string `json:"LINKMAN_TYPE"`
LINKMANNAME string `json:"LINKMAN_NAME"`
DOCUMENTTYPE string `json:"DOCUMENT_TYPE"`
DOCUMENTID struct {
LINKMANTYPE string `json:"LINKMAN_TYPE"`
PHONENO2 string `json:"PHONE_NO2"`
} `json:"DOCUMENT_ID"`
} `json:"DOCUMENT_TYPE"`
} `json:"PHONE_NO2"`
CHARGEMODE string `json:"CHARGE_MODE"`
} `json:"DISC_RATE"`
CHARGEMODE string `json:"CHARGE_MODE"`
} `json:"SERV_DETAIL"`
HANGSEQNO []string `json:"HANG_SEQ_NO"`
CARDNO []struct {
LINKMANTYPE string `json:"LINKMAN_TYPE"`
LINKMANNAME string `json:"LINKMAN_NAME"`
DOCUMENTTYPE string `json:"DOCUMENT_TYPE"`
DOCUMENTID string `json:"DOCUMENT_ID"`
PHONENO1 string `json:"PHONE_NO1"`
PHONENO2 string `json:"PHONE_NO2"`
} `json:"CARD_NO"`
} `json:"BODY"`
PUBDOMAIN struct {
AUTHFLAG string `json:"AUTH_FLAG"`
AUTHINFONUM string `json:"AUTH_INFO_NUM"`
AUTHSTATUS string `json:"AUTH_STATUS"`
AUTHTELLER string `json:"AUTH_TELLER"`
BRANCHID string `json:"BRANCH_ID"`
CHANNELCODE string `json:"CHANNEL_CODE"`
CONFIRMFLAG string `json:"CONFIRM_FLAG"`
CONFIRMSTATUS string `json:"CONFIRM_STATUS"`
CONSUMTRANDATE string `json:"CONSUM_TRAN_DATE"`
CONSUMTRANTIME string `json:"CONSUM_TRAN_TIME"`
CURRPAGENUM string `json:"CURR_PAGE_NUM"`
LEGALCODE string `json:"LEGAL_CODE"`
PAGEUPDOWN string `json:"PAGE_UP_DOWN"`
PERPAGENUM string `json:"PER_PAGE_NUM"`
PROVIDTRANDATE string `json:"PROVID_TRAN_DATE"`
PUBEXTEND string `json:"PUB_EXTEND"`
TRANTELLER string `json:"TRAN_TELLER"`
} `json:"PUB_DOMAIN"`
SYSHEAD struct {
CHARACTERSET string `json:"CHARACTER_SET"`
COMMTYPE string `json:"COMM_TYPE"`
CONSUMREQDATE string `json:"CONSUM_REQ_DATE"`
CONSUMREQTIME string `json:"CONSUM_REQ_TIME"`
CONSUMSYSCODE string `json:"CONSUM_SYS_CODE"`
FILEFLAG string `json:"FILE_FLAG"`
GLOBALSEQ string `json:"GLOBAL_SEQ"`
LOCALLANG string `json:"LOCAL_LANG"`
PROVIDSYSCODE string `json:"PROVID_SYS_CODE"`
SCENESCODE string `json:"SCENES_CODE"`
SCENESVERSION string `json:"SCENES_VERSION"`
SERVICENAME string `json:"SERVICE_NAME"`
SERVICEREQSEQ string `json:"SERVICE_REQ_SEQ"`
SERVICEVERSION string `json:"SERVICE_VERSION"`
SRCENCNODE string `json:"SRC_ENC_NODE"`
} `json:"SYS_HEAD"`
}
type CoreTransfer struct {
Service struct {
SYSHEAD struct {
SvcCd string `json:"SvcCd"`
SvcScn string `json:"SvcScn"`
PrvdSysSeqNo string `json:"PrvdSysSeqNo"`
TranDt string `json:"TranDt"`
TranRetSt string `json:"TranRetSt"`
Array struct {
RetInf struct {
RetCd string `json:"RetCd"`
RetMsg string `json:"RetMsg"`
} `json:"RetInf"`
} `json:"array"`
} `json:"SYS_HEAD"`
APPHEAD struct {
BranchId string `json:"BranchId"`
TlrNo string `json:"TlrNo"`
Array struct {
AuthTlrInf struct {
ApprTellerNo string `json:"ApprTellerNo"`
} `json:"AuthTlrInf"`
} `json:"array"`
} `json:"APP_HEAD"`
TxnStrtNo string `json:"TxnStrtNo"`
QryRcrdNo string `json:"QryRcrdNo"`
Array []struct {
TxnInfArray struct {
TxnSysDt string `json:"TxnSysDt,omitempty"`
TxnSysTm string `json:"TxnSysTm,omitempty"`
OrigTxnSeqNo string `json:"OrigTxnSeqNo,omitempty"`
CnlNo string `json:"CnlNo,omitempty"`
SubBrId string `json:"SubBrId,omitempty"`
TxnTlrNo string `json:"TxnTlrNo,omitempty"`
TxnCd string `json:"TxnCd"`
TxnSmyDsc string `json:"TxnSmyDsc"`
TxnAmt string `json:"TxnAmt"`
TxnAfBal string `json:"TxnAfBal"`
TxnCcy string `json:"TxnCcy"`
CntprAcctNoOrCardNo string `json:"CntprAcctNoOrCardNo"`
AcctNm string `json:"AcctNm"`
OthrBnkBnkNo string `json:"OthrBnkBnkNo"`
ImprtBlkVchrTp string `json:"ImprtBlkVchrTp"`
ImprtBlkVchrNo string `json:"ImprtBlkVchrNo"`
RmkInf string `json:"RmkInf,omitempty"`
CnclRvrsFlg string `json:"CnclRvrsFlg,omitempty"`
} `json:"TxnInfArray"`
} `json:"array"`
} `json:"service"`
}