This commit is contained in:
liangzai 2024-10-13 20:52:47 +08:00
parent 534500eb32
commit c35864c47b
39 changed files with 2243 additions and 291 deletions

View File

@ -1,31 +0,0 @@
package JRZQ
import (
"net/http"
"tianyuan-api/pkg/response"
"github.com/zeromicro/go-zero/rest/httpx"
"tianyuan-api/apps/api/internal/logic/JRZQ"
"tianyuan-api/apps/api/internal/svc"
"tianyuan-api/apps/api/internal/types"
xhttp "github.com/zeromicro/x/http"
)
func JRZQCEE8Handler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.Request
if err := httpx.Parse(r, &req); err != nil {
xhttp.JsonBaseResponseCtx(r.Context(), w, err)
return
}
l := JRZQ.NewJRZQCEE8Logic(r.Context(), svcCtx)
resp, err := l.JRZQCEE8(&req)
if err != nil {
response.Fail(r.Context(), w, err)
} else {
response.Success(r.Context(), w, resp)
}
}
}

View File

@ -1,31 +0,0 @@
package JRZQ
import (
"net/http"
"tianyuan-api/pkg/response"
"github.com/zeromicro/go-zero/rest/httpx"
"tianyuan-api/apps/api/internal/logic/JRZQ"
"tianyuan-api/apps/api/internal/svc"
"tianyuan-api/apps/api/internal/types"
xhttp "github.com/zeromicro/x/http"
)
func JRZQFEF8Handler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.Request
if err := httpx.Parse(r, &req); err != nil {
xhttp.JsonBaseResponseCtx(r.Context(), w, err)
return
}
l := JRZQ.NewJRZQFEF8Logic(r.Context(), svcCtx)
resp, err := l.JRZQFEF8(&req)
if err != nil {
response.Fail(r.Context(), w, err)
} else {
response.Success(r.Context(), w, resp)
}
}
}

View File

@ -1,31 +0,0 @@
package QYGL
import (
"net/http"
"tianyuan-api/pkg/response"
"github.com/zeromicro/go-zero/rest/httpx"
"tianyuan-api/apps/api/internal/logic/QYGL"
"tianyuan-api/apps/api/internal/svc"
"tianyuan-api/apps/api/internal/types"
xhttp "github.com/zeromicro/x/http"
)
func QYGL51BCHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.Request
if err := httpx.Parse(r, &req); err != nil {
xhttp.JsonBaseResponseCtx(r.Context(), w, err)
return
}
l := QYGL.NewQYGL51BCLogic(r.Context(), svcCtx)
resp, err := l.QYGL51BC(&req)
if err != nil {
response.Fail(r.Context(), w, err)
} else {
response.Success(r.Context(), w, resp)
}
}
}

View File

@ -31,6 +31,9 @@ func NewFLXG162ALogic(ctx context.Context, svcCtx *svc.ServiceContext) *FLXG162A
} }
func (l *FLXG162ALogic) FLXG162A(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *FLXG162ALogic) FLXG162A(req *types.Request) (resp *types.Response, err *errs.AppError) {
var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string) secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok { if !ok {
return &types.Response{}, errs.ErrSystem return &types.Response{}, errs.ErrSystem
@ -39,6 +42,27 @@ func (l *FLXG162ALogic) FLXG162A(req *types.Request) (resp *types.Response, err
if !ok { if !ok {
return &types.Response{}, errs.ErrSystem return &types.Response{}, errs.ErrSystem
} }
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密 // 1、解密
key, decodeErr := hex.DecodeString(secretKey) key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil { if decodeErr != nil {

View File

@ -2,7 +2,12 @@ package FLXG
import ( import (
"context" "context"
"fmt" "encoding/hex"
"encoding/json"
"tianyuan-api/apps/api/internal/common"
"tianyuan-api/apps/api/internal/validator"
"tianyuan-api/apps/api/internal/westmodel"
"tianyuan-api/pkg/crypto"
"tianyuan-api/pkg/errs" "tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc" "tianyuan-api/apps/api/internal/svc"
@ -48,7 +53,6 @@ func (l *FLXG3D56Logic) FLXG3D56(req *types.Request) (resp *types.Response, err
} }
defer func() { defer func() {
fmt.Println(secretKey)
if err != nil { if err != nil {
status = "failed" status = "failed"
charges = false charges = false
@ -61,58 +65,55 @@ func (l *FLXG3D56Logic) FLXG3D56(req *types.Request) (resp *types.Response, err
logx.Errorf("发送 API 请求消息失败: %v", err) logx.Errorf("发送 API 请求消息失败: %v", err)
} }
}() }()
// 1、解密
key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil {
return nil, errs.ErrSystem
}
decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
if aesDecryptErr != nil || len(decryptData) == 0 {
return nil, errs.ErrParamDecryption
}
// 2、校验
var data validator.FLXG3D56Request
if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
return nil, errs.ErrParamValidation
}
// 3、西部加密
westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem
}
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.FLXG3D56FieldMapping, "data")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G26BJ05", apiRequest)
if callAPIErr != nil {
return nil, errs.ErrSystem
}
// 5、响应解析
var respData westmodel.G26BJ05Response
unmarshalErr := json.Unmarshal(westResp, &respData)
if unmarshalErr != nil {
return nil, errs.ErrSystem
}
if respData.Data.Code != "00" && respData.Data.Code != "100002" {
return nil, errs.ErrDataSource
}
encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
if aesEncrypt != nil {
return nil, errs.ErrSystem
}
return &types.Response{ return &types.Response{
Data: "asdasdasdasd", Data: encryptData,
}, nil }, nil
//// 1、解密
//key, decodeErr := hex.DecodeString(secretKey)
//if decodeErr != nil {
// return nil, errs.ErrSystem
//}
//decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
//if aesDecryptErr != nil || len(decryptData) == 0 {
// return nil, errs.ErrParamDecryption
//}
//
//// 2、校验
//var data validator.FLXG3D56Request
//if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
// return nil, errs.ErrParamValidation
//}
//
//// 3、西部加密
//westConfig := l.svcCtx.Config.WestConfig
//encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
//if encryptStructFieldsErr != nil {
// logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
// return nil, errs.ErrSystem
//}
//
//// 4、发送请求到西部
//logx.Infof("交易号:%s", transactionID)
//apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.FLXG3D56FieldMapping, "data")
//
//westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G26BJ05", apiRequest)
//if callAPIErr != nil {
// return nil, errs.ErrSystem
//}
//
//// 5、响应解析
//var respData westmodel.G26BJ05Response
//unmarshalErr := json.Unmarshal(westResp, &respData)
//if unmarshalErr != nil {
// return nil, errs.ErrSystem
//}
//
//if respData.Data.Code != "00" && respData.Data.Code != "100002" {
// return nil, errs.ErrDataSource
//}
//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
//if aesEncrypt != nil {
// return nil, errs.ErrSystem
//}
//
//return &types.Response{
// Data: encryptData,
//}, nil
} }

View File

@ -31,6 +31,9 @@ func NewFLXG54F5Logic(ctx context.Context, svcCtx *svc.ServiceContext) *FLXG54F5
} }
func (l *FLXG54F5Logic) FLXG54F5(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *FLXG54F5Logic) FLXG54F5(req *types.Request) (resp *types.Response, err *errs.AppError) {
var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string) secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok { if !ok {
return &types.Response{}, errs.ErrSystem return &types.Response{}, errs.ErrSystem
@ -39,6 +42,27 @@ func (l *FLXG54F5Logic) FLXG54F5(req *types.Request) (resp *types.Response, err
if !ok { if !ok {
return &types.Response{}, errs.ErrSystem return &types.Response{}, errs.ErrSystem
} }
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密 // 1、解密
key, decodeErr := hex.DecodeString(secretKey) key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil { if decodeErr != nil {

View File

@ -30,6 +30,9 @@ func NewFLXG5876Logic(ctx context.Context, svcCtx *svc.ServiceContext) *FLXG5876
} }
func (l *FLXG5876Logic) FLXG5876(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *FLXG5876Logic) FLXG5876(req *types.Request) (resp *types.Response, err *errs.AppError) {
var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string) secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok { if !ok {
return &types.Response{}, errs.ErrSystem return &types.Response{}, errs.ErrSystem
@ -38,6 +41,27 @@ func (l *FLXG5876Logic) FLXG5876(req *types.Request) (resp *types.Response, err
if !ok { if !ok {
return &types.Response{}, errs.ErrSystem return &types.Response{}, errs.ErrSystem
} }
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密 // 1、解密
key, decodeErr := hex.DecodeString(secretKey) key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil { if decodeErr != nil {

View File

@ -30,6 +30,9 @@ func NewFLXG9687Logic(ctx context.Context, svcCtx *svc.ServiceContext) *FLXG9687
} }
func (l *FLXG9687Logic) FLXG9687(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *FLXG9687Logic) FLXG9687(req *types.Request) (resp *types.Response, err *errs.AppError) {
var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string) secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok { if !ok {
return &types.Response{}, errs.ErrSystem return &types.Response{}, errs.ErrSystem
@ -38,6 +41,27 @@ func (l *FLXG9687Logic) FLXG9687(req *types.Request) (resp *types.Response, err
if !ok { if !ok {
return &types.Response{}, errs.ErrSystem return &types.Response{}, errs.ErrSystem
} }
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密 // 1、解密
key, decodeErr := hex.DecodeString(secretKey) key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil { if decodeErr != nil {

View File

@ -30,6 +30,9 @@ func NewFLXG970FLogic(ctx context.Context, svcCtx *svc.ServiceContext) *FLXG970F
} }
func (l *FLXG970FLogic) FLXG970F(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *FLXG970FLogic) FLXG970F(req *types.Request) (resp *types.Response, err *errs.AppError) {
var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string) secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok { if !ok {
return &types.Response{}, errs.ErrSystem return &types.Response{}, errs.ErrSystem
@ -38,6 +41,27 @@ func (l *FLXG970FLogic) FLXG970F(req *types.Request) (resp *types.Response, err
if !ok { if !ok {
return &types.Response{}, errs.ErrSystem return &types.Response{}, errs.ErrSystem
} }
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密 // 1、解密
key, decodeErr := hex.DecodeString(secretKey) key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil { if decodeErr != nil {

View File

@ -30,6 +30,9 @@ func NewFLXGC9D1Logic(ctx context.Context, svcCtx *svc.ServiceContext) *FLXGC9D1
} }
func (l *FLXGC9D1Logic) FLXGC9D1(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *FLXGC9D1Logic) FLXGC9D1(req *types.Request) (resp *types.Response, err *errs.AppError) {
var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string) secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok { if !ok {
return &types.Response{}, errs.ErrSystem return &types.Response{}, errs.ErrSystem
@ -38,6 +41,27 @@ func (l *FLXGC9D1Logic) FLXGC9D1(req *types.Request) (resp *types.Response, err
if !ok { if !ok {
return &types.Response{}, errs.ErrSystem return &types.Response{}, errs.ErrSystem
} }
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密 // 1、解密
key, decodeErr := hex.DecodeString(secretKey) key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil { if decodeErr != nil {
@ -66,7 +90,7 @@ func (l *FLXGC9D1Logic) FLXGC9D1(req *types.Request) (resp *types.Response, err
logx.Infof("交易号:%s", transactionID) logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.FLXGC9D1FieldMapping, "data") apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.FLXGC9D1FieldMapping, "data")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G31BJ05", apiRequest) westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G30BJ05", apiRequest)
if callAPIErr != nil { if callAPIErr != nil {
return nil, errs.ErrSystem return nil, errs.ErrSystem
} }

View File

@ -30,6 +30,9 @@ func NewFLXGCA3DLogic(ctx context.Context, svcCtx *svc.ServiceContext) *FLXGCA3D
} }
func (l *FLXGCA3DLogic) FLXGCA3D(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *FLXGCA3DLogic) FLXGCA3D(req *types.Request) (resp *types.Response, err *errs.AppError) {
var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string) secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok { if !ok {
return &types.Response{}, errs.ErrSystem return &types.Response{}, errs.ErrSystem
@ -38,6 +41,27 @@ func (l *FLXGCA3DLogic) FLXGCA3D(req *types.Request) (resp *types.Response, err
if !ok { if !ok {
return &types.Response{}, errs.ErrSystem return &types.Response{}, errs.ErrSystem
} }
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密 // 1、解密
key, decodeErr := hex.DecodeString(secretKey) key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil { if decodeErr != nil {

View File

@ -30,6 +30,9 @@ func NewFLXGDEC7Logic(ctx context.Context, svcCtx *svc.ServiceContext) *FLXGDEC7
} }
func (l *FLXGDEC7Logic) FLXGDEC7(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *FLXGDEC7Logic) FLXGDEC7(req *types.Request) (resp *types.Response, err *errs.AppError) {
var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string) secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok { if !ok {
return &types.Response{}, errs.ErrSystem return &types.Response{}, errs.ErrSystem
@ -38,6 +41,27 @@ func (l *FLXGDEC7Logic) FLXGDEC7(req *types.Request) (resp *types.Response, err
if !ok { if !ok {
return &types.Response{}, errs.ErrSystem return &types.Response{}, errs.ErrSystem
} }
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密 // 1、解密
key, decodeErr := hex.DecodeString(secretKey) key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil { if decodeErr != nil {

View File

@ -25,7 +25,89 @@ func NewIVYZ0B03Logic(ctx context.Context, svcCtx *svc.ServiceContext) *IVYZ0B03
} }
func (l *IVYZ0B03Logic) IVYZ0B03(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *IVYZ0B03Logic) IVYZ0B03(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line
return return
//var status string
//var charges bool
//var remark = ""
//secretKey, ok := l.ctx.Value("secretKey").(string)
//if !ok {
// return &types.Response{}, errs.ErrSystem
//}
//transactionID, ok := l.ctx.Value("transactionID").(string)
//if !ok {
// return &types.Response{}, errs.ErrSystem
//}
//userId, userIdOk := l.ctx.Value("userId").(int64)
//if !userIdOk {
// return &types.Response{}, errs.ErrSystem
//}
//productCode, productCodeOk := l.ctx.Value("productCode").(string)
//if !productCodeOk || productCode == "" {
// return &types.Response{}, errs.ErrSystem
//}
//defer func() {
// if err != nil {
// status = "failed"
// charges = false
// } else {
// status = "success"
// charges = true
// }
// sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
// if sendApiRequestMessageErr != nil {
// logx.Errorf("发送 API 请求消息失败: %v", err)
// }
//}()
//// 1、解密
//key, decodeErr := hex.DecodeString(secretKey)
//if decodeErr != nil {
// return nil, errs.ErrSystem
//}
//decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
//if aesDecryptErr != nil || len(decryptData) == 0 {
// return nil, errs.ErrParamDecryption
//}
//
//// 2、校验
//var data validator.FLXGDEC7Request
//if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
// return nil, errs.ErrParamValidation
//}
//
//// 3、西部加密
//westConfig := l.svcCtx.Config.WestConfig
//encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
//if encryptStructFieldsErr != nil {
// logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
// return nil, errs.ErrSystem
//}
//
//// 4、发送请求到西部
//logx.Infof("交易号:%s", transactionID)
//apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.FLXGDEC7FieldMapping, "data")
//
//westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G23BJ03", apiRequest)
//if callAPIErr != nil {
// return nil, errs.ErrSystem
//}
//
//// 5、响应解析
////var respData westmodel.G32BJ05Response
////unmarshalErr := json.Unmarshal(westResp, &respData)
////if unmarshalErr != nil {
//// return nil, errs.ErrSystem
////}
////
////if respData.Data.Code == "00" || respData.Data.Code == "100002" {
//// l.ctx = context.WithValue(l.ctx, "Charges", true)
////} else {
//// return nil, errs.ErrSystem
////}
////encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
////if aesEncrypt != nil {
//// return nil, errs.ErrSystem
////}
//return &types.Response{
// Data: string(westResp),
//}, nil
} }

View File

@ -24,8 +24,91 @@ func NewIVYZ2125Logic(ctx context.Context, svcCtx *svc.ServiceContext) *IVYZ2125
} }
} }
// IVYZ2125 活体+人像核验组件
func (l *IVYZ2125Logic) IVYZ2125(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *IVYZ2125Logic) IVYZ2125(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line
return return
//var status string
//var charges bool
//var remark = ""
//secretKey, ok := l.ctx.Value("secretKey").(string)
//if !ok {
// return &types.Response{}, errs.ErrSystem
//}
//transactionID, ok := l.ctx.Value("transactionID").(string)
//if !ok {
// return &types.Response{}, errs.ErrSystem
//}
//userId, userIdOk := l.ctx.Value("userId").(int64)
//if !userIdOk {
// return &types.Response{}, errs.ErrSystem
//}
//productCode, productCodeOk := l.ctx.Value("productCode").(string)
//if !productCodeOk || productCode == "" {
// return &types.Response{}, errs.ErrSystem
//}
//defer func() {
// if err != nil {
// status = "failed"
// charges = false
// } else {
// status = "success"
// charges = true
// }
// sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
// if sendApiRequestMessageErr != nil {
// logx.Errorf("发送 API 请求消息失败: %v", err)
// }
//}()
//// 1、解密
//key, decodeErr := hex.DecodeString(secretKey)
//if decodeErr != nil {
// return nil, errs.ErrSystem
//}
//decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
//if aesDecryptErr != nil || len(decryptData) == 0 {
// return nil, errs.ErrParamDecryption
//}
//
//// 2、校验
//var data validator.FLXGDEC7Request
//if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
// return nil, errs.ErrParamValidation
//}
//
//// 3、西部加密
//westConfig := l.svcCtx.Config.WestConfig
//encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
//if encryptStructFieldsErr != nil {
// logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
// return nil, errs.ErrSystem
//}
//
//// 4、发送请求到西部
//logx.Infof("交易号:%s", transactionID)
//apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.FLXGDEC7FieldMapping, "data")
//
//westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G23BJ03", apiRequest)
//if callAPIErr != nil {
// return nil, errs.ErrSystem
//}
//
//// 5、响应解析
////var respData westmodel.G32BJ05Response
////unmarshalErr := json.Unmarshal(westResp, &respData)
////if unmarshalErr != nil {
//// return nil, errs.ErrSystem
////}
////
////if respData.Data.Code == "00" || respData.Data.Code == "100002" {
//// l.ctx = context.WithValue(l.ctx, "Charges", true)
////} else {
//// return nil, errs.ErrSystem
////}
////encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
////if aesEncrypt != nil {
//// return nil, errs.ErrSystem
////}
//return &types.Response{
// Data: string(westResp),
//}, nil
} }

View File

@ -2,6 +2,11 @@ package IVYZ
import ( import (
"context" "context"
"encoding/hex"
"tianyuan-api/apps/api/internal/common"
"tianyuan-api/apps/api/internal/validator"
"tianyuan-api/apps/api/internal/westmodel"
"tianyuan-api/pkg/crypto"
"tianyuan-api/pkg/errs" "tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc" "tianyuan-api/apps/api/internal/svc"
@ -25,7 +30,88 @@ func NewIVYZ385ELogic(ctx context.Context, svcCtx *svc.ServiceContext) *IVYZ385E
} }
func (l *IVYZ385ELogic) IVYZ385E(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *IVYZ385ELogic) IVYZ385E(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
transactionID, ok := l.ctx.Value("transactionID").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密
key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil {
return nil, errs.ErrSystem
}
decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
if aesDecryptErr != nil || len(decryptData) == 0 {
return nil, errs.ErrParamDecryption
}
return // 2、校验
var data validator.IVYZ385ERequest
if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
return nil, errs.ErrParamValidation
}
// 3、西部加密
westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem
}
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.IVYZ385EFieldMapping, "")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("WEST00020", apiRequest)
if callAPIErr != nil {
return nil, errs.ErrSystem
}
// 5、响应解析
//var respData westmodel.G32BJ05Response
//unmarshalErr := json.Unmarshal(westResp, &respData)
//if unmarshalErr != nil {
// return nil, errs.ErrSystem
//}
//
//if respData.Data.Code == "00" || respData.Data.Code == "100002" {
// l.ctx = context.WithValue(l.ctx, "Charges", true)
//} else {
// return nil, errs.ErrSystem
//}
//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
//if aesEncrypt != nil {
// return nil, errs.ErrSystem
//}
return &types.Response{
Data: string(westResp),
}, nil
} }

View File

@ -30,16 +30,38 @@ func NewIVYZ5733Logic(ctx context.Context, svcCtx *svc.ServiceContext) *IVYZ5733
} }
func (l *IVYZ5733Logic) IVYZ5733(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *IVYZ5733Logic) IVYZ5733(req *types.Request) (resp *types.Response, err *errs.AppError) {
var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string) secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok { if !ok {
return &types.Response{}, errs.ErrSystem return &types.Response{}, errs.ErrSystem
} }
transactionID, ok := l.ctx.Value("transactionID").(string) transactionID, ok := l.ctx.Value("transactionID").(string)
if !ok { if !ok {
return &types.Response{}, errs.ErrSystem return &types.Response{}, errs.ErrSystem
} }
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密 // 1、解密
key, decodeErr := hex.DecodeString(secretKey) key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil { if decodeErr != nil {
@ -60,16 +82,19 @@ func (l *IVYZ5733Logic) IVYZ5733(req *types.Request) (resp *types.Response, err
westConfig := l.svcCtx.Config.WestConfig westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key) encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil { if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", err) logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem return nil, errs.ErrSystem
} }
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID) logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.IVYZ5733FieldMapping, "data") apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.IVYZ5733FieldMapping, "data")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G09GX01", apiRequest) westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G09GX01", apiRequest)
if callAPIErr != nil { if callAPIErr != nil {
return nil, errs.ErrSystem return nil, errs.ErrSystem
} }
// 5、响应解析 // 5、响应解析
var respData westmodel.G09GX01Response var respData westmodel.G09GX01Response
unmarshalErr := json.Unmarshal(westResp, &respData) unmarshalErr := json.Unmarshal(westResp, &respData)

View File

@ -2,6 +2,11 @@ package IVYZ
import ( import (
"context" "context"
"encoding/hex"
"tianyuan-api/apps/api/internal/common"
"tianyuan-api/apps/api/internal/validator"
"tianyuan-api/apps/api/internal/westmodel"
"tianyuan-api/pkg/crypto"
"tianyuan-api/pkg/errs" "tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc" "tianyuan-api/apps/api/internal/svc"
@ -25,7 +30,88 @@ func NewIVYZ9363Logic(ctx context.Context, svcCtx *svc.ServiceContext) *IVYZ9363
} }
func (l *IVYZ9363Logic) IVYZ9363(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *IVYZ9363Logic) IVYZ9363(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
transactionID, ok := l.ctx.Value("transactionID").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密
key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil {
return nil, errs.ErrSystem
}
decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
if aesDecryptErr != nil || len(decryptData) == 0 {
return nil, errs.ErrParamDecryption
}
return // 2、校验
var data validator.IVYZ9363Request
if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
return nil, errs.ErrParamValidation
}
// 3、西部加密
westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem
}
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.IVYZ9363FieldMapping, "data")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G10GX01", apiRequest)
if callAPIErr != nil {
return nil, errs.ErrSystem
}
// 5、响应解析
//var respData westmodel.G32BJ05Response
//unmarshalErr := json.Unmarshal(westResp, &respData)
//if unmarshalErr != nil {
// return nil, errs.ErrSystem
//}
//
//if respData.Data.Code == "00" || respData.Data.Code == "100002" {
// l.ctx = context.WithValue(l.ctx, "Charges", true)
//} else {
// return nil, errs.ErrSystem
//}
//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
//if aesEncrypt != nil {
// return nil, errs.ErrSystem
//}
return &types.Response{
Data: string(westResp),
}, nil
} }

View File

@ -25,7 +25,89 @@ func NewIVYZADEELogic(ctx context.Context, svcCtx *svc.ServiceContext) *IVYZADEE
} }
func (l *IVYZADEELogic) IVYZADEE(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *IVYZADEELogic) IVYZADEE(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line
return return
//var status string
//var charges bool
//var remark = ""
//secretKey, ok := l.ctx.Value("secretKey").(string)
//if !ok {
// return &types.Response{}, errs.ErrSystem
//}
//transactionID, ok := l.ctx.Value("transactionID").(string)
//if !ok {
// return &types.Response{}, errs.ErrSystem
//}
//userId, userIdOk := l.ctx.Value("userId").(int64)
//if !userIdOk {
// return &types.Response{}, errs.ErrSystem
//}
//productCode, productCodeOk := l.ctx.Value("productCode").(string)
//if !productCodeOk || productCode == "" {
// return &types.Response{}, errs.ErrSystem
//}
//defer func() {
// if err != nil {
// status = "failed"
// charges = false
// } else {
// status = "success"
// charges = true
// }
// sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
// if sendApiRequestMessageErr != nil {
// logx.Errorf("发送 API 请求消息失败: %v", err)
// }
//}()
//// 1、解密
//key, decodeErr := hex.DecodeString(secretKey)
//if decodeErr != nil {
// return nil, errs.ErrSystem
//}
//decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
//if aesDecryptErr != nil || len(decryptData) == 0 {
// return nil, errs.ErrParamDecryption
//}
//
//// 2、校验
//var data validator.FLXGDEC7Request
//if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
// return nil, errs.ErrParamValidation
//}
//
//// 3、西部加密
//westConfig := l.svcCtx.Config.WestConfig
//encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
//if encryptStructFieldsErr != nil {
// logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
// return nil, errs.ErrSystem
//}
//
//// 4、发送请求到西部
//logx.Infof("交易号:%s", transactionID)
//apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.FLXGDEC7FieldMapping, "data")
//
//westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("idCardThreeElements", apiRequest)
//if callAPIErr != nil {
// return nil, errs.ErrSystem
//}
//
//// 5、响应解析
////var respData westmodel.G32BJ05Response
////unmarshalErr := json.Unmarshal(westResp, &respData)
////if unmarshalErr != nil {
//// return nil, errs.ErrSystem
////}
////
////if respData.Data.Code == "00" || respData.Data.Code == "100002" {
//// l.ctx = context.WithValue(l.ctx, "Charges", true)
////} else {
//// return nil, errs.ErrSystem
////}
////encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
////if aesEncrypt != nil {
//// return nil, errs.ErrSystem
////}
//return &types.Response{
// Data: string(westResp),
//}, nil
} }

View File

@ -2,6 +2,11 @@ package JRZQ
import ( import (
"context" "context"
"encoding/hex"
"tianyuan-api/apps/api/internal/common"
"tianyuan-api/apps/api/internal/validator"
"tianyuan-api/apps/api/internal/westmodel"
"tianyuan-api/pkg/crypto"
"tianyuan-api/pkg/errs" "tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc" "tianyuan-api/apps/api/internal/svc"
@ -25,7 +30,88 @@ func NewJRZQ0A03Logic(ctx context.Context, svcCtx *svc.ServiceContext) *JRZQ0A03
} }
func (l *JRZQ0A03Logic) JRZQ0A03(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *JRZQ0A03Logic) JRZQ0A03(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
transactionID, ok := l.ctx.Value("transactionID").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密
key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil {
return nil, errs.ErrSystem
}
decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
if aesDecryptErr != nil || len(decryptData) == 0 {
return nil, errs.ErrParamDecryption
}
return // 2、校验
var data validator.JRZQ0A03Request
if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
return nil, errs.ErrParamValidation
}
// 3、西部加密
westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem
}
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.JRZQ0A03FieldMapping, "data")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G27BJ05", apiRequest)
if callAPIErr != nil {
return nil, errs.ErrSystem
}
// 5、响应解析
//var respData westmodel.G32BJ05Response
//unmarshalErr := json.Unmarshal(westResp, &respData)
//if unmarshalErr != nil {
// return nil, errs.ErrSystem
//}
//
//if respData.Data.Code == "00" || respData.Data.Code == "100002" {
// l.ctx = context.WithValue(l.ctx, "Charges", true)
//} else {
// return nil, errs.ErrSystem
//}
//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
//if aesEncrypt != nil {
// return nil, errs.ErrSystem
//}
return &types.Response{
Data: string(westResp),
}, nil
} }

View File

@ -2,6 +2,11 @@ package JRZQ
import ( import (
"context" "context"
"encoding/hex"
"tianyuan-api/apps/api/internal/common"
"tianyuan-api/apps/api/internal/validator"
"tianyuan-api/apps/api/internal/westmodel"
"tianyuan-api/pkg/crypto"
"tianyuan-api/pkg/errs" "tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc" "tianyuan-api/apps/api/internal/svc"
@ -25,7 +30,88 @@ func NewJRZQ4AA8Logic(ctx context.Context, svcCtx *svc.ServiceContext) *JRZQ4AA8
} }
func (l *JRZQ4AA8Logic) JRZQ4AA8(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *JRZQ4AA8Logic) JRZQ4AA8(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
transactionID, ok := l.ctx.Value("transactionID").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密
key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil {
return nil, errs.ErrSystem
}
decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
if aesDecryptErr != nil || len(decryptData) == 0 {
return nil, errs.ErrParamDecryption
}
return // 2、校验
var data validator.JRZQ4AA8Request
if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
return nil, errs.ErrParamValidation
}
// 3、西部加密
westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem
}
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.JRZQ4AA8FieldMapping, "data")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G29BJ05", apiRequest)
if callAPIErr != nil {
return nil, errs.ErrSystem
}
// 5、响应解析
//var respData westmodel.G32BJ05Response
//unmarshalErr := json.Unmarshal(westResp, &respData)
//if unmarshalErr != nil {
// return nil, errs.ErrSystem
//}
//
//if respData.Data.Code == "00" || respData.Data.Code == "100002" {
// l.ctx = context.WithValue(l.ctx, "Charges", true)
//} else {
// return nil, errs.ErrSystem
//}
//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
//if aesEncrypt != nil {
// return nil, errs.ErrSystem
//}
return &types.Response{
Data: string(westResp),
}, nil
} }

View File

@ -2,6 +2,11 @@ package JRZQ
import ( import (
"context" "context"
"encoding/hex"
"tianyuan-api/apps/api/internal/common"
"tianyuan-api/apps/api/internal/validator"
"tianyuan-api/apps/api/internal/westmodel"
"tianyuan-api/pkg/crypto"
"tianyuan-api/pkg/errs" "tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc" "tianyuan-api/apps/api/internal/svc"
@ -25,7 +30,88 @@ func NewJRZQ8203Logic(ctx context.Context, svcCtx *svc.ServiceContext) *JRZQ8203
} }
func (l *JRZQ8203Logic) JRZQ8203(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *JRZQ8203Logic) JRZQ8203(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
transactionID, ok := l.ctx.Value("transactionID").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密
key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil {
return nil, errs.ErrSystem
}
decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
if aesDecryptErr != nil || len(decryptData) == 0 {
return nil, errs.ErrParamDecryption
}
return // 2、校验
var data validator.JRZQ8203Request
if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
return nil, errs.ErrParamValidation
}
// 3、西部加密
westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem
}
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.JRZQ8203FieldMapping, "data")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G28BJ05", apiRequest)
if callAPIErr != nil {
return nil, errs.ErrSystem
}
// 5、响应解析
//var respData westmodel.G32BJ05Response
//unmarshalErr := json.Unmarshal(westResp, &respData)
//if unmarshalErr != nil {
// return nil, errs.ErrSystem
//}
//
//if respData.Data.Code == "00" || respData.Data.Code == "100002" {
// l.ctx = context.WithValue(l.ctx, "Charges", true)
//} else {
// return nil, errs.ErrSystem
//}
//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
//if aesEncrypt != nil {
// return nil, errs.ErrSystem
//}
return &types.Response{
Data: string(westResp),
}, nil
} }

View File

@ -1,31 +0,0 @@
package JRZQ
import (
"context"
"tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc"
"tianyuan-api/apps/api/internal/types"
"github.com/zeromicro/go-zero/core/logx"
)
type JRZQCEE8Logic struct {
logx.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}
func NewJRZQCEE8Logic(ctx context.Context, svcCtx *svc.ServiceContext) *JRZQCEE8Logic {
return &JRZQCEE8Logic{
Logger: logx.WithContext(ctx),
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *JRZQCEE8Logic) JRZQCEE8(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line
return
}

View File

@ -2,6 +2,11 @@ package JRZQ
import ( import (
"context" "context"
"encoding/hex"
"tianyuan-api/apps/api/internal/common"
"tianyuan-api/apps/api/internal/validator"
"tianyuan-api/apps/api/internal/westmodel"
"tianyuan-api/pkg/crypto"
"tianyuan-api/pkg/errs" "tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc" "tianyuan-api/apps/api/internal/svc"
@ -25,7 +30,88 @@ func NewJRZQDCBELogic(ctx context.Context, svcCtx *svc.ServiceContext) *JRZQDCBE
} }
func (l *JRZQDCBELogic) JRZQDCBE(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *JRZQDCBELogic) JRZQDCBE(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
transactionID, ok := l.ctx.Value("transactionID").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密
key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil {
return nil, errs.ErrSystem
}
decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
if aesDecryptErr != nil || len(decryptData) == 0 {
return nil, errs.ErrParamDecryption
}
return // 2、校验
var data validator.JRZQDBCERequest
if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
return nil, errs.ErrParamValidation
}
// 3、西部加密
westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem
}
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.JRZQDBCEFieldMapping, "data")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G20GZ01", apiRequest)
if callAPIErr != nil {
return nil, errs.ErrSystem
}
// 5、响应解析
//var respData westmodel.G32BJ05Response
//unmarshalErr := json.Unmarshal(westResp, &respData)
//if unmarshalErr != nil {
// return nil, errs.ErrSystem
//}
//
//if respData.Data.Code == "00" || respData.Data.Code == "100002" {
// l.ctx = context.WithValue(l.ctx, "Charges", true)
//} else {
// return nil, errs.ErrSystem
//}
//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
//if aesEncrypt != nil {
// return nil, errs.ErrSystem
//}
return &types.Response{
Data: string(westResp),
}, nil
} }

View File

@ -1,31 +0,0 @@
package JRZQ
import (
"context"
"tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc"
"tianyuan-api/apps/api/internal/types"
"github.com/zeromicro/go-zero/core/logx"
)
type JRZQFEF8Logic struct {
logx.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}
func NewJRZQFEF8Logic(ctx context.Context, svcCtx *svc.ServiceContext) *JRZQFEF8Logic {
return &JRZQFEF8Logic{
Logger: logx.WithContext(ctx),
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *JRZQFEF8Logic) JRZQFEF8(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line
return
}

View File

@ -2,6 +2,11 @@ package QYGL
import ( import (
"context" "context"
"encoding/hex"
"tianyuan-api/apps/api/internal/common"
"tianyuan-api/apps/api/internal/validator"
"tianyuan-api/apps/api/internal/westmodel"
"tianyuan-api/pkg/crypto"
"tianyuan-api/pkg/errs" "tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc" "tianyuan-api/apps/api/internal/svc"
@ -25,7 +30,88 @@ func NewQYGL2ACDLogic(ctx context.Context, svcCtx *svc.ServiceContext) *QYGL2ACD
} }
func (l *QYGL2ACDLogic) QYGL2ACD(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *QYGL2ACDLogic) QYGL2ACD(req *types.Request) (resp *types.Response, err *errs.AppError) {
var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
transactionID, ok := l.ctx.Value("transactionID").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密
key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil {
return nil, errs.ErrSystem
}
decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
if aesDecryptErr != nil || len(decryptData) == 0 {
return nil, errs.ErrParamDecryption
}
// 2、校验
var data validator.QYGL2ACDRequest
if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
return nil, errs.ErrParamValidation
}
// 3、西部加密
westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem
}
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.QYGL2ACDFieldMapping, "")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("WEST00022", apiRequest)
if callAPIErr != nil {
return nil, errs.ErrSystem
}
// 5、响应解析
//var respData westmodel.G32BJ05Response
//unmarshalErr := json.Unmarshal(westResp, &respData)
//if unmarshalErr != nil {
// return nil, errs.ErrSystem
//}
//
//if respData.Data.Code == "00" || respData.Data.Code == "100002" {
// l.ctx = context.WithValue(l.ctx, "Charges", true)
//} else {
// return nil, errs.ErrSystem
//}
//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
//if aesEncrypt != nil {
// return nil, errs.ErrSystem
//}
return &types.Response{ return &types.Response{
Data: "三要素合演", Data: string(westResp),
}, nil }, nil
} }

View File

@ -2,6 +2,11 @@ package QYGL
import ( import (
"context" "context"
"encoding/hex"
"tianyuan-api/apps/api/internal/common"
"tianyuan-api/apps/api/internal/validator"
"tianyuan-api/apps/api/internal/westmodel"
"tianyuan-api/pkg/crypto"
"tianyuan-api/pkg/errs" "tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc" "tianyuan-api/apps/api/internal/svc"
@ -25,7 +30,88 @@ func NewQYGL45BDLogic(ctx context.Context, svcCtx *svc.ServiceContext) *QYGL45BD
} }
func (l *QYGL45BDLogic) QYGL45BD(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *QYGL45BDLogic) QYGL45BD(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
transactionID, ok := l.ctx.Value("transactionID").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密
key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil {
return nil, errs.ErrSystem
}
decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
if aesDecryptErr != nil || len(decryptData) == 0 {
return nil, errs.ErrParamDecryption
}
return // 2、校验
var data validator.QYGL45BDRequest
if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
return nil, errs.ErrParamValidation
}
// 3、西部加密
westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem
}
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.QYGL45BDFieldMapping, "")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("WEST00021", apiRequest)
if callAPIErr != nil {
return nil, errs.ErrSystem
}
// 5、响应解析
//var respData westmodel.G32BJ05Response
//unmarshalErr := json.Unmarshal(westResp, &respData)
//if unmarshalErr != nil {
// return nil, errs.ErrSystem
//}
//
//if respData.Data.Code == "00" || respData.Data.Code == "100002" {
// l.ctx = context.WithValue(l.ctx, "Charges", true)
//} else {
// return nil, errs.ErrSystem
//}
//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
//if aesEncrypt != nil {
// return nil, errs.ErrSystem
//}
return &types.Response{
Data: string(westResp),
}, nil
} }

View File

@ -1,31 +0,0 @@
package QYGL
import (
"context"
"tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc"
"tianyuan-api/apps/api/internal/types"
"github.com/zeromicro/go-zero/core/logx"
)
type QYGL51BCLogic struct {
logx.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}
func NewQYGL51BCLogic(ctx context.Context, svcCtx *svc.ServiceContext) *QYGL51BCLogic {
return &QYGL51BCLogic{
Logger: logx.WithContext(ctx),
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *QYGL51BCLogic) QYGL51BC(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line
return
}

View File

@ -2,6 +2,11 @@ package QYGL
import ( import (
"context" "context"
"encoding/hex"
"tianyuan-api/apps/api/internal/common"
"tianyuan-api/apps/api/internal/validator"
"tianyuan-api/apps/api/internal/westmodel"
"tianyuan-api/pkg/crypto"
"tianyuan-api/pkg/errs" "tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc" "tianyuan-api/apps/api/internal/svc"
@ -25,7 +30,88 @@ func NewQYGL6F2DLogic(ctx context.Context, svcCtx *svc.ServiceContext) *QYGL6F2D
} }
func (l *QYGL6F2DLogic) QYGL6F2D(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *QYGL6F2DLogic) QYGL6F2D(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
transactionID, ok := l.ctx.Value("transactionID").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密
key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil {
return nil, errs.ErrSystem
}
decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
if aesDecryptErr != nil || len(decryptData) == 0 {
return nil, errs.ErrParamDecryption
}
return // 2、校验
var data validator.QYGL6F2DRequest
if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
return nil, errs.ErrParamValidation
}
// 3、西部加密
westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem
}
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.QYGL6F2DFieldMapping, "data")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G05XM02", apiRequest)
if callAPIErr != nil {
return nil, errs.ErrSystem
}
// 5、响应解析
//var respData westmodel.G32BJ05Response
//unmarshalErr := json.Unmarshal(westResp, &respData)
//if unmarshalErr != nil {
// return nil, errs.ErrSystem
//}
//
//if respData.Data.Code == "00" || respData.Data.Code == "100002" {
// l.ctx = context.WithValue(l.ctx, "Charges", true)
//} else {
// return nil, errs.ErrSystem
//}
//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
//if aesEncrypt != nil {
// return nil, errs.ErrSystem
//}
return &types.Response{
Data: string(westResp),
}, nil
} }

View File

@ -2,6 +2,11 @@ package QYGL
import ( import (
"context" "context"
"encoding/hex"
"tianyuan-api/apps/api/internal/common"
"tianyuan-api/apps/api/internal/validator"
"tianyuan-api/apps/api/internal/westmodel"
"tianyuan-api/pkg/crypto"
"tianyuan-api/pkg/errs" "tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc" "tianyuan-api/apps/api/internal/svc"
@ -25,7 +30,88 @@ func NewQYGL8261Logic(ctx context.Context, svcCtx *svc.ServiceContext) *QYGL8261
} }
func (l *QYGL8261Logic) QYGL8261(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *QYGL8261Logic) QYGL8261(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
transactionID, ok := l.ctx.Value("transactionID").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密
key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil {
return nil, errs.ErrSystem
}
decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
if aesDecryptErr != nil || len(decryptData) == 0 {
return nil, errs.ErrParamDecryption
}
return // 2、校验
var data validator.QYGL8261Request
if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
return nil, errs.ErrParamValidation
}
// 3、西部加密
westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem
}
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.QYGL8261FieldMapping, "data")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("Q03BJ03", apiRequest)
if callAPIErr != nil {
return nil, errs.ErrSystem
}
// 5、响应解析
//var respData westmodel.G32BJ05Response
//unmarshalErr := json.Unmarshal(westResp, &respData)
//if unmarshalErr != nil {
// return nil, errs.ErrSystem
//}
//
//if respData.Data.Code == "00" || respData.Data.Code == "100002" {
// l.ctx = context.WithValue(l.ctx, "Charges", true)
//} else {
// return nil, errs.ErrSystem
//}
//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
//if aesEncrypt != nil {
// return nil, errs.ErrSystem
//}
return &types.Response{
Data: string(westResp),
}, nil
} }

View File

@ -2,6 +2,11 @@ package QYGL
import ( import (
"context" "context"
"encoding/hex"
"tianyuan-api/apps/api/internal/common"
"tianyuan-api/apps/api/internal/validator"
"tianyuan-api/apps/api/internal/westmodel"
"tianyuan-api/pkg/crypto"
"tianyuan-api/pkg/errs" "tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc" "tianyuan-api/apps/api/internal/svc"
@ -25,7 +30,88 @@ func NewQYGLB4C0Logic(ctx context.Context, svcCtx *svc.ServiceContext) *QYGLB4C0
} }
func (l *QYGLB4C0Logic) QYGLB4C0(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *QYGLB4C0Logic) QYGLB4C0(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
transactionID, ok := l.ctx.Value("transactionID").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密
key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil {
return nil, errs.ErrSystem
}
decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
if aesDecryptErr != nil || len(decryptData) == 0 {
return nil, errs.ErrParamDecryption
}
return // 2、校验
var data validator.QYGLB4C0Request
if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
return nil, errs.ErrParamValidation
}
// 3、西部加密
westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem
}
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.QYGLB4C0FieldMapping, "")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G05HZ01", apiRequest)
if callAPIErr != nil {
return nil, errs.ErrSystem
}
// 5、响应解析
//var respData westmodel.G32BJ05Response
//unmarshalErr := json.Unmarshal(westResp, &respData)
//if unmarshalErr != nil {
// return nil, errs.ErrSystem
//}
//
//if respData.Data.Code == "00" || respData.Data.Code == "100002" {
// l.ctx = context.WithValue(l.ctx, "Charges", true)
//} else {
// return nil, errs.ErrSystem
//}
//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
//if aesEncrypt != nil {
// return nil, errs.ErrSystem
//}
return &types.Response{
Data: string(westResp),
}, nil
} }

View File

@ -2,6 +2,11 @@ package YYSY
import ( import (
"context" "context"
"encoding/hex"
"tianyuan-api/apps/api/internal/common"
"tianyuan-api/apps/api/internal/validator"
"tianyuan-api/apps/api/internal/westmodel"
"tianyuan-api/pkg/crypto"
"tianyuan-api/pkg/errs" "tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc" "tianyuan-api/apps/api/internal/svc"
@ -24,8 +29,90 @@ func NewYYSY09CDLogic(ctx context.Context, svcCtx *svc.ServiceContext) *YYSY09CD
} }
} }
// YYSY09CD 三要素简版
func (l *YYSY09CDLogic) YYSY09CD(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *YYSY09CDLogic) YYSY09CD(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
transactionID, ok := l.ctx.Value("transactionID").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密
key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil {
return nil, errs.ErrSystem
}
decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
if aesDecryptErr != nil || len(decryptData) == 0 {
return nil, errs.ErrParamDecryption
}
return // 2、校验
var data validator.YYSY09CDRequest
if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
return nil, errs.ErrParamValidation
}
// 3、西部加密
westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem
}
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.YYSY09CDFieldMapping, "data")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G16BJ02", apiRequest)
if callAPIErr != nil {
return nil, errs.ErrSystem
}
// 5、响应解析
//var respData westmodel.G32BJ05Response
//unmarshalErr := json.Unmarshal(westResp, &respData)
//if unmarshalErr != nil {
// return nil, errs.ErrSystem
//}
//
//if respData.Data.Code == "00" || respData.Data.Code == "100002" {
// l.ctx = context.WithValue(l.ctx, "Charges", true)
//} else {
// return nil, errs.ErrSystem
//}
//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
//if aesEncrypt != nil {
// return nil, errs.ErrSystem
//}
return &types.Response{
Data: string(westResp),
}, nil
} }

View File

@ -2,6 +2,11 @@ package YYSY
import ( import (
"context" "context"
"encoding/hex"
"tianyuan-api/apps/api/internal/common"
"tianyuan-api/apps/api/internal/validator"
"tianyuan-api/apps/api/internal/westmodel"
"tianyuan-api/pkg/crypto"
"tianyuan-api/pkg/errs" "tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc" "tianyuan-api/apps/api/internal/svc"
@ -25,7 +30,88 @@ func NewYYSY4B37Logic(ctx context.Context, svcCtx *svc.ServiceContext) *YYSY4B37
} }
func (l *YYSY4B37Logic) YYSY4B37(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *YYSY4B37Logic) YYSY4B37(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
transactionID, ok := l.ctx.Value("transactionID").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密
key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil {
return nil, errs.ErrSystem
}
decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
if aesDecryptErr != nil || len(decryptData) == 0 {
return nil, errs.ErrParamDecryption
}
return // 2、校验
var data validator.YYSY4B37Request
if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
return nil, errs.ErrParamValidation
}
// 3、西部加密
westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem
}
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.YYSY4B37FieldMapping, "data")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G02BJ02", apiRequest)
if callAPIErr != nil {
return nil, errs.ErrSystem
}
// 5、响应解析
//var respData westmodel.G32BJ05Response
//unmarshalErr := json.Unmarshal(westResp, &respData)
//if unmarshalErr != nil {
// return nil, errs.ErrSystem
//}
//
//if respData.Data.Code == "00" || respData.Data.Code == "100002" {
// l.ctx = context.WithValue(l.ctx, "Charges", true)
//} else {
// return nil, errs.ErrSystem
//}
//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
//if aesEncrypt != nil {
// return nil, errs.ErrSystem
//}
return &types.Response{
Data: string(westResp),
}, nil
} }

View File

@ -2,6 +2,11 @@ package YYSY
import ( import (
"context" "context"
"encoding/hex"
"tianyuan-api/apps/api/internal/common"
"tianyuan-api/apps/api/internal/validator"
"tianyuan-api/apps/api/internal/westmodel"
"tianyuan-api/pkg/crypto"
"tianyuan-api/pkg/errs" "tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc" "tianyuan-api/apps/api/internal/svc"
@ -24,8 +29,90 @@ func NewYYSY6F2ELogic(ctx context.Context, svcCtx *svc.ServiceContext) *YYSY6F2E
} }
} }
// YYSY6F2E 三要素详版
func (l *YYSY6F2ELogic) YYSY6F2E(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *YYSY6F2ELogic) YYSY6F2E(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
transactionID, ok := l.ctx.Value("transactionID").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密
key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil {
return nil, errs.ErrSystem
}
decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
if aesDecryptErr != nil || len(decryptData) == 0 {
return nil, errs.ErrParamDecryption
}
return // 2、校验
var data validator.YYSY6F2ERequest
if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
return nil, errs.ErrParamValidation
}
// 3、西部加密
westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem
}
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.YYSY6F2EFieldMapping, "data")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G15BJ02", apiRequest)
if callAPIErr != nil {
return nil, errs.ErrSystem
}
// 5、响应解析
//var respData westmodel.G32BJ05Response
//unmarshalErr := json.Unmarshal(westResp, &respData)
//if unmarshalErr != nil {
// return nil, errs.ErrSystem
//}
//
//if respData.Data.Code == "00" || respData.Data.Code == "100002" {
// l.ctx = context.WithValue(l.ctx, "Charges", true)
//} else {
// return nil, errs.ErrSystem
//}
//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
//if aesEncrypt != nil {
// return nil, errs.ErrSystem
//}
return &types.Response{
Data: string(westResp),
}, nil
} }

View File

@ -2,6 +2,11 @@ package YYSY
import ( import (
"context" "context"
"encoding/hex"
"tianyuan-api/apps/api/internal/common"
"tianyuan-api/apps/api/internal/validator"
"tianyuan-api/apps/api/internal/westmodel"
"tianyuan-api/pkg/crypto"
"tianyuan-api/pkg/errs" "tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc" "tianyuan-api/apps/api/internal/svc"
@ -25,7 +30,88 @@ func NewYYSYBE08Logic(ctx context.Context, svcCtx *svc.ServiceContext) *YYSYBE08
} }
func (l *YYSYBE08Logic) YYSYBE08(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *YYSYBE08Logic) YYSYBE08(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
transactionID, ok := l.ctx.Value("transactionID").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密
key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil {
return nil, errs.ErrSystem
}
decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
if aesDecryptErr != nil || len(decryptData) == 0 {
return nil, errs.ErrParamDecryption
}
return // 2、校验
var data validator.YYSYBE08Request
if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
return nil, errs.ErrParamValidation
}
// 3、西部加密
westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem
}
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.YYSYBE08FieldMapping, "data")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G17BJ02", apiRequest)
if callAPIErr != nil {
return nil, errs.ErrSystem
}
// 5、响应解析
//var respData westmodel.G32BJ05Response
//unmarshalErr := json.Unmarshal(westResp, &respData)
//if unmarshalErr != nil {
// return nil, errs.ErrSystem
//}
//
//if respData.Data.Code == "00" || respData.Data.Code == "100002" {
// l.ctx = context.WithValue(l.ctx, "Charges", true)
//} else {
// return nil, errs.ErrSystem
//}
//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
//if aesEncrypt != nil {
// return nil, errs.ErrSystem
//}
return &types.Response{
Data: string(westResp),
}, nil
} }

View File

@ -2,6 +2,11 @@ package YYSY
import ( import (
"context" "context"
"encoding/hex"
"tianyuan-api/apps/api/internal/common"
"tianyuan-api/apps/api/internal/validator"
"tianyuan-api/apps/api/internal/westmodel"
"tianyuan-api/pkg/crypto"
"tianyuan-api/pkg/errs" "tianyuan-api/pkg/errs"
"tianyuan-api/apps/api/internal/svc" "tianyuan-api/apps/api/internal/svc"
@ -25,7 +30,88 @@ func NewYYSYD50FLogic(ctx context.Context, svcCtx *svc.ServiceContext) *YYSYD50F
} }
func (l *YYSYD50FLogic) YYSYD50F(req *types.Request) (resp *types.Response, err *errs.AppError) { func (l *YYSYD50FLogic) YYSYD50F(req *types.Request) (resp *types.Response, err *errs.AppError) {
// todo: add your logic here and delete this line var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
transactionID, ok := l.ctx.Value("transactionID").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密
key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil {
return nil, errs.ErrSystem
}
decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
if aesDecryptErr != nil || len(decryptData) == 0 {
return nil, errs.ErrParamDecryption
}
return // 2、校验
var data validator.YYSYD50FRequest
if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
return nil, errs.ErrParamValidation
}
// 3、西部加密
westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem
}
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.YYSYD50FFieldMapping, "data")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G18BJ02", apiRequest)
if callAPIErr != nil {
return nil, errs.ErrSystem
}
// 5、响应解析
//var respData westmodel.G32BJ05Response
//unmarshalErr := json.Unmarshal(westResp, &respData)
//if unmarshalErr != nil {
// return nil, errs.ErrSystem
//}
//
//if respData.Data.Code == "00" || respData.Data.Code == "100002" {
// l.ctx = context.WithValue(l.ctx, "Charges", true)
//} else {
// return nil, errs.ErrSystem
//}
//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
//if aesEncrypt != nil {
// return nil, errs.ErrSystem
//}
return &types.Response{
Data: string(westResp),
}, nil
} }

View File

@ -2,9 +2,14 @@ package YYSY
import ( import (
"context" "context"
"encoding/hex"
"github.com/zeromicro/go-zero/core/logx" "github.com/zeromicro/go-zero/core/logx"
"tianyuan-api/apps/api/internal/common"
"tianyuan-api/apps/api/internal/svc" "tianyuan-api/apps/api/internal/svc"
"tianyuan-api/apps/api/internal/types" "tianyuan-api/apps/api/internal/types"
"tianyuan-api/apps/api/internal/validator"
"tianyuan-api/apps/api/internal/westmodel"
"tianyuan-api/pkg/crypto"
"tianyuan-api/pkg/errs" "tianyuan-api/pkg/errs"
) )
@ -22,7 +27,89 @@ func NewYYSYF7DBLogic(ctx context.Context, svcCtx *svc.ServiceContext) *YYSYF7DB
} }
} }
func (l *YYSYF7DBLogic) YYSYF7DB(req *types.Request) (*types.Response, *errs.AppError) { func (l *YYSYF7DBLogic) YYSYF7DB(req *types.Request) (resp *types.Response, err *errs.AppError) {
var status string
var charges bool
var remark = ""
secretKey, ok := l.ctx.Value("secretKey").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
transactionID, ok := l.ctx.Value("transactionID").(string)
if !ok {
return &types.Response{}, errs.ErrSystem
}
userId, userIdOk := l.ctx.Value("userId").(int64)
if !userIdOk {
return &types.Response{}, errs.ErrSystem
}
productCode, productCodeOk := l.ctx.Value("productCode").(string)
if !productCodeOk || productCode == "" {
return &types.Response{}, errs.ErrSystem
}
defer func() {
if err != nil {
status = "failed"
charges = false
} else {
status = "success"
charges = true
}
sendApiRequestMessageErr := l.svcCtx.ApiRequestMqsService.SendApiRequestMessage(l.ctx, transactionID, userId, productCode, status, charges, remark)
if sendApiRequestMessageErr != nil {
logx.Errorf("发送 API 请求消息失败: %v", err)
}
}()
// 1、解密
key, decodeErr := hex.DecodeString(secretKey)
if decodeErr != nil {
return nil, errs.ErrSystem
}
decryptData, aesDecryptErr := crypto.AesDecrypt(req.Data, key)
if aesDecryptErr != nil || len(decryptData) == 0 {
return nil, errs.ErrParamDecryption
}
return &types.Response{}, nil // 2、校验
var data validator.YYSYF7DBRequest
if validatorErr := validator.ValidateAndParse(decryptData, &data); validatorErr != nil {
return nil, errs.ErrParamValidation
}
// 3、西部加密
westConfig := l.svcCtx.Config.WestConfig
encryptedFields, encryptStructFieldsErr := common.EncryptStructFields(data, westConfig.Key)
if encryptStructFieldsErr != nil {
logx.Errorf("西部加密错误:%v", encryptStructFieldsErr)
return nil, errs.ErrSystem
}
// 4、发送请求到西部
logx.Infof("交易号:%s", transactionID)
apiRequest := common.MapStructToAPIRequest(encryptedFields, westmodel.YYSYF7DBFieldMapping, "data")
westResp, callAPIErr := l.svcCtx.WestDexService.CallAPI("G19BJ02", apiRequest)
if callAPIErr != nil {
return nil, errs.ErrSystem
}
// 5、响应解析
//var respData westmodel.G32BJ05Response
//unmarshalErr := json.Unmarshal(westResp, &respData)
//if unmarshalErr != nil {
// return nil, errs.ErrSystem
//}
//
//if respData.Data.Code == "00" || respData.Data.Code == "100002" {
// l.ctx = context.WithValue(l.ctx, "Charges", true)
//} else {
// return nil, errs.ErrSystem
//}
//encryptData, aesEncrypt := crypto.AesEncrypt(westResp, key)
//if aesEncrypt != nil {
// return nil, errs.ErrSystem
//}
return &types.Response{
Data: string(westResp),
}, nil
} }

View File

@ -54,7 +54,90 @@ type FLXGDEC7Request struct {
IDCard string `json:"id_card" validate:"required,validIDCard"` IDCard string `json:"id_card" validate:"required,validIDCard"`
Name string `json:"name" validate:"required,min=1,validName"` Name string `json:"name" validate:"required,min=1,validName"`
} }
type IVYZ0B03Request struct {
}
type IVYZ385ERequest struct {
IDCard string `json:"id_card" validate:"required,validIDCard"`
Name string `json:"name" validate:"required,min=1,validName"`
}
type IVYZ5733Request struct { type IVYZ5733Request struct {
Name string `json:"name" validate:"required,min=1,validName"` Name string `json:"name" validate:"required,min=1,validName"`
IDCard string `json:"id_card" validate:"required,validIDCard"` IDCard string `json:"id_card" validate:"required,validIDCard"`
} }
type IVYZ9363Request struct {
ManName string `json:"man_name" validate:"required,min=1,validName"`
ManIDCard string `json:"man_id_card" validate:"required,validIDCard"`
WomanName string `json:"woman_name" validate:"required,min=1,validName"`
WomanIDCard string `json:"woman_id_card" validate:"required,validIDCard"`
}
type JRZQ0A03Request struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
Name string `json:"name" validate:"required,min=1,validName"`
}
type JRZQ4AA8Request struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
Name string `json:"name" validate:"required,min=1,validName"`
}
type JRZQ8203Request struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
Name string `json:"name" validate:"required,min=1,validName"`
}
type JRZQDBCERequest struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
BankCard string `json:"bank_card" validate:"required,validBankCard"`
Name string `json:"name" validate:"required,min=1,validName"`
}
type QYGL2ACDRequest struct {
EntName string `json:"ent_name" validate:"required,min=1,validName"`
LegalPerson string `json:"legal_person" validate:"required,min=1,validName"`
EntCode string `json:"ent_code" validate:"required,validUSCI"`
}
type QYGL6F2DRequest struct {
IDCard string `json:"id_card" validate:"required,validIDCard"`
}
type QYGL45BDRequest struct {
EntName string `json:"ent_name" validate:"required,min=1,validName"`
LegalPerson string `json:"legal_person" validate:"required,min=1,validName"`
EntCode string `json:"ent_code" validate:"required,validUSCI"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
}
type QYGL8261Request struct {
EntName string `json:"ent_name" validate:"required,min=1,validName"`
}
type QYGLB4C0Request struct {
IDCard string `json:"id_card" validate:"required,validIDCard"`
}
type YYSY4B37Request struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
}
type YYSY6F2ERequest struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
MobileType string `json:"mobile_type" validate:"omitempty,validMobileType"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
Name string `json:"name" validate:"required,min=1,validName"`
}
type YYSY09CDRequest struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
MobileType string `json:"mobile_type" validate:"omitempty,validMobileType"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
Name string `json:"name" validate:"required,min=1,validName"`
}
type YYSYBE08Request struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
Name string `json:"name" validate:"required,min=1,validName"`
}
type YYSYD50FRequest struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
IDCard string `json:"id_card" validate:"required,validIDCard"`
}
type YYSYF7DBRequest struct {
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
StartDate string `json:"start_date" validate:"required,validDate"`
}

View File

@ -38,6 +38,18 @@ func init() {
if err := validate.RegisterValidation("validTimeRange", validTimeRange); err != nil { if err := validate.RegisterValidation("validTimeRange", validTimeRange); err != nil {
panic(fmt.Sprintf("注册 validTimeRange 验证器时发生错误: %v", err)) panic(fmt.Sprintf("注册 validTimeRange 验证器时发生错误: %v", err))
} }
if err := validate.RegisterValidation("validBankCard", validBankCard); err != nil {
panic(fmt.Sprintf("注册 validBankCard 验证器时发生错误: %v", err))
}
if err := validate.RegisterValidation("validUSCI", validUSCI); err != nil {
panic(fmt.Sprintf("注册 validUSCI 验证器时发生错误: %v", err))
}
if err := validate.RegisterValidation("validMobileType", validMobileType); err != nil {
panic(fmt.Sprintf("注册 validMobileType 验证器时发生错误: %v", err))
}
} }
// ValidateAndParse 封装了解密、解析和校验逻辑 // ValidateAndParse 封装了解密、解析和校验逻辑
@ -110,3 +122,35 @@ func validTimeRange(fl validator.FieldLevel) bool {
} }
return true return true
} }
func validBankCard(fl validator.FieldLevel) bool {
bankCard := fl.Field().String()
// 银行卡号一般是13到19位的数字
validBankCardPattern := `^\d{13,19}$`
matched, _ := regexp.MatchString(validBankCardPattern, bankCard)
return matched
}
func validUSCI(fl validator.FieldLevel) bool {
usci := fl.Field().String()
// 社会信用代码为18位数字和大写字母的组合最后一位为校验码
validUSCIPattern := `^[1-9A-Z]{2}[0-9]{6}[0-9A-Z]{9}[0-9A-Z]$`
matched, _ := regexp.MatchString(validUSCIPattern, usci)
return matched
}
// 自定义的手机号类型验证(可以为空)
func validMobileType(fl validator.FieldLevel) bool {
mobileType := fl.Field().String()
if mobileType == "" {
return true // 如果为空,认为是有效的
}
// 校验是否是 CTCC, CMCC, CUCC 之一
validTypes := map[string]bool{
"CTCC": true, // 中国电信
"CMCC": true, // 中国移动
"CUCC": true, // 中国联通
}
return validTypes[mobileType]
}

View File

@ -1,9 +1,5 @@
package westmodel package westmodel
var IVYZ5733FieldMapping = map[string]string{
"IDCard": "id",
"Name": "name",
}
var FLXG3D56FieldMapping = map[string]string{ var FLXG3D56FieldMapping = map[string]string{
"IDCard": "id", "IDCard": "id",
"Name": "name", "Name": "name",
@ -13,6 +9,10 @@ var FLXG3D56FieldMapping = map[string]string{
var FLXG54F5FieldMapping = map[string]string{ var FLXG54F5FieldMapping = map[string]string{
"MobileNo": "mobile", "MobileNo": "mobile",
} }
var FLXG5876FieldMapping = map[string]string{
"MobileNo": "phone",
}
var FLXG162AFieldMapping = map[string]string{ var FLXG162AFieldMapping = map[string]string{
"IDCard": "id", "IDCard": "id",
"Name": "name", "Name": "name",
@ -20,7 +20,7 @@ var FLXG162AFieldMapping = map[string]string{
} }
var FLXG970FFieldMapping = map[string]string{ var FLXG970FFieldMapping = map[string]string{
"IDCard": "id", "IDCard": "cardNo",
"Name": "name", "Name": "name",
} }
var FLXG9687FieldMapping = map[string]string{ var FLXG9687FieldMapping = map[string]string{
@ -34,13 +34,94 @@ var FLXGC9D1FieldMapping = map[string]string{
"MobileNo": "cell", "MobileNo": "cell",
} }
var FLXGCA3DFieldMapping = map[string]string{ var FLXGCA3DFieldMapping = map[string]string{
"IDCard": "id", "IDCard": "id_card",
"Name": "name", "Name": "name",
} }
var FLXGDEC7FieldMapping = map[string]string{ var FLXGDEC7FieldMapping = map[string]string{
"IDCard": "id_card",
"Name": "name",
}
var IVYZ385EFieldMapping = map[string]string{
"IDCard": "gmsfzhm",
"Name": "xm",
}
var IVYZ5733FieldMapping = map[string]string{
"IDCard": "id", "IDCard": "id",
"Name": "name", "Name": "name",
} }
var FLXG5876FieldMapping = map[string]string{ var IVYZ9363FieldMapping = map[string]string{
"MobileNo": "mobile", "ManName": "nameMan",
"ManIDCard": "certNumMan",
"WomanName": "nameWoman",
"WomanIDCard": "certNumWoman",
}
var JRZQ0A03FieldMapping = map[string]string{
"IDCard": "id",
"Name": "name",
"MobileNo": "cell",
}
var JRZQ4AA8FieldMapping = map[string]string{
"IDCard": "id",
"Name": "name",
"MobileNo": "cell",
}
var JRZQ8203FieldMapping = map[string]string{
"IDCard": "id",
"Name": "name",
"MobileNo": "cell",
}
var JRZQDBCEFieldMapping = map[string]string{
"IDCard": "idcard",
"Name": "name",
"MobileNo": "mobile",
"BankCard": "acc_no",
}
var QYGL2ACDFieldMapping = map[string]string{
"EntName": "entname",
"LegalPerson": "realname",
"EntCode": "idcard",
}
var QYGL6F2DFieldMapping = map[string]string{
"IDCard": "idno",
}
var QYGL45BDFieldMapping = map[string]string{
"EntName": "entname",
"LegalPerson": "realname",
"EntCode": "entmark",
"IDCard": "idcard",
}
var QYGL8261FieldMapping = map[string]string{
"EntName": "ent_name",
}
var QYGLB4C0FieldMapping = map[string]string{
"IDCard": "pid",
}
var YYSY4B37FieldMapping = map[string]string{
"MobileNo": "phone",
}
var YYSY6F2EFieldMapping = map[string]string{
"IDCard": "idNo",
"Name": "name",
"MobileNo": "phone",
"MobileType": "phoneType",
}
var YYSY09CDFieldMapping = map[string]string{
"IDCard": "idNo",
"Name": "name",
"MobileNo": "phone",
"MobileType": "phoneType",
}
var YYSYBE08FieldMapping = map[string]string{
"Name": "name",
"MobileNo": "phone",
}
var YYSYD50FFieldMapping = map[string]string{
"MobileNo": "phone",
"IDCard": "idNo",
}
var YYSYF7DBFieldMapping = map[string]string{
"MobileNo": "phone",
"StartDate": "startDate",
} }