add 3 new api
This commit is contained in:
@@ -63,9 +63,12 @@ func NewAgentService(c config.Config, agentModel model.AgentModel, agentAuditMod
|
||||
func (l *AgentService) AgentProcess(ctx context.Context, order *model.Order) error {
|
||||
// 获取是否该订单是代理推广订单
|
||||
agentOrderModel, err := l.AgentOrderModel.FindOneByOrderId(ctx, order.Id)
|
||||
if err != nil {
|
||||
if err != nil && !errors.Is(err, model.ErrNotFound) {
|
||||
return err
|
||||
}
|
||||
if errors.Is(err, model.ErrNotFound) || agentOrderModel == nil {
|
||||
return nil
|
||||
}
|
||||
// 事务
|
||||
transErr := l.AgentWalletModel.Trans(ctx, func(transCtx context.Context, session sqlx.Session) error {
|
||||
agentID := agentOrderModel.AgentId
|
||||
|
||||
@@ -6,6 +6,7 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/Masterminds/squirrel"
|
||||
"github.com/bytedance/sonic"
|
||||
"github.com/tidwall/gjson"
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
"io"
|
||||
@@ -18,6 +19,7 @@ import (
|
||||
"tydata-server/app/user/cmd/api/internal/config"
|
||||
"tydata-server/app/user/model"
|
||||
"tydata-server/pkg/lzkit/crypto"
|
||||
"tydata-server/pkg/lzkit/lzUtils"
|
||||
)
|
||||
|
||||
type ApiRequestService struct {
|
||||
@@ -186,6 +188,12 @@ var requestProcessors = map[string]func(*ApiRequestService, []byte) ([]byte, err
|
||||
"G02BJ02": (*ApiRequestService).ProcessG02BJ02Request,
|
||||
"G19BJ02": (*ApiRequestService).ProcessG19BJ02Request,
|
||||
"G20GZ01": (*ApiRequestService).ProcessG20GZ01Request,
|
||||
"G37SC01": (*ApiRequestService).ProcessG37SC01Request,
|
||||
"G36SC01": (*ApiRequestService).ProcessG36SC01Request,
|
||||
"G22SC01": (*ApiRequestService).ProcessG22SC01Request,
|
||||
"Q03SC01": (*ApiRequestService).ProcessQ03SC01Request,
|
||||
"G39SC02": (*ApiRequestService).ProcessG39SC02Request,
|
||||
"G38SC02": (*ApiRequestService).ProcessG38SC02Request,
|
||||
}
|
||||
|
||||
// PreprocessRequestApi 调用指定的请求处理函数
|
||||
@@ -956,3 +964,190 @@ func (a *ApiRequestService) ProcessG20GZ01Request(params []byte) ([]byte, error)
|
||||
|
||||
return resultBytes, nil
|
||||
}
|
||||
|
||||
// G37SC01 自然人失信信息
|
||||
func (a *ApiRequestService) ProcessG37SC01Request(params []byte) ([]byte, error) {
|
||||
name := gjson.GetBytes(params, "name")
|
||||
idCard := gjson.GetBytes(params, "id_card")
|
||||
|
||||
if !name.Exists() || !idCard.Exists() {
|
||||
return nil, errors.New("api请求, G37SC01, 获取相关参数失败")
|
||||
}
|
||||
|
||||
request := map[string]interface{}{
|
||||
"data": map[string]interface{}{
|
||||
"name": a.westDexService.Encrypt(name.String()),
|
||||
"idcard": a.westDexService.Encrypt(idCard.String()),
|
||||
},
|
||||
}
|
||||
resp, callApiErr := a.westDexService.CallAPI("G37SC01", request)
|
||||
if callApiErr != nil {
|
||||
return nil, callApiErr
|
||||
}
|
||||
// 第一步:提取外层的 data 字段
|
||||
dataResult := gjson.GetBytes(resp, "data")
|
||||
if !dataResult.Exists() {
|
||||
return nil, fmt.Errorf("外层 data 字段不存在")
|
||||
}
|
||||
|
||||
// 解析 data 字符串为 JSON 对象
|
||||
parsedData := gjson.Parse(dataResult.String())
|
||||
sxbzxr := parsedData.Get("sxbzxr")
|
||||
if !sxbzxr.Exists() {
|
||||
return nil, fmt.Errorf("内层 sxbzxr 字段不存在")
|
||||
}
|
||||
return []byte(sxbzxr.Raw), nil
|
||||
}
|
||||
|
||||
// G36SC01 自然人限高信息
|
||||
func (a *ApiRequestService) ProcessG36SC01Request(params []byte) ([]byte, error) {
|
||||
name := gjson.GetBytes(params, "name")
|
||||
idCard := gjson.GetBytes(params, "id_card")
|
||||
|
||||
if !name.Exists() || !idCard.Exists() {
|
||||
return nil, errors.New("api请求, G36SC01, 获取相关参数失败")
|
||||
}
|
||||
|
||||
request := map[string]interface{}{
|
||||
"data": map[string]interface{}{
|
||||
"name": a.westDexService.Encrypt(name.String()),
|
||||
"idcard": a.westDexService.Encrypt(idCard.String()),
|
||||
},
|
||||
}
|
||||
resp, callApiErr := a.westDexService.CallAPI("G36SC01", request)
|
||||
if callApiErr != nil {
|
||||
return nil, callApiErr
|
||||
}
|
||||
// 第一步:提取外层的 data 字段
|
||||
dataResult := gjson.GetBytes(resp, "data")
|
||||
if !dataResult.Exists() {
|
||||
return nil, fmt.Errorf("外层 data 字段不存在")
|
||||
}
|
||||
|
||||
// 解析 data 字符串为 JSON 对象
|
||||
parsedData := gjson.Parse(dataResult.String())
|
||||
xgbzxr := parsedData.Get("xgbzxr")
|
||||
if !xgbzxr.Exists() {
|
||||
return nil, fmt.Errorf("内层 xgbzxr 字段不存在")
|
||||
}
|
||||
return []byte(xgbzxr.Raw), nil
|
||||
}
|
||||
|
||||
// G22SC01 自然人司法模型
|
||||
func (a *ApiRequestService) ProcessG22SC01Request(params []byte) ([]byte, error) {
|
||||
name := gjson.GetBytes(params, "name")
|
||||
idCard := gjson.GetBytes(params, "id_card")
|
||||
|
||||
if !name.Exists() || !idCard.Exists() {
|
||||
return nil, errors.New("api请求, G22SC01, 获取相关参数失败")
|
||||
}
|
||||
|
||||
request := map[string]interface{}{
|
||||
"data": map[string]interface{}{
|
||||
"name": a.westDexService.Encrypt(name.String()),
|
||||
"idcard": a.westDexService.Encrypt(idCard.String()),
|
||||
"inquired_auth": a.westDexService.GetDateRange(),
|
||||
},
|
||||
}
|
||||
resp, callApiErr := a.westDexService.CallAPI("G22SC01", request)
|
||||
if callApiErr != nil {
|
||||
return nil, callApiErr
|
||||
}
|
||||
// 第一步:提取外层的 data 字段
|
||||
dataResult := gjson.GetBytes(resp, "data")
|
||||
if !dataResult.Exists() {
|
||||
return nil, fmt.Errorf("外层 data 字段不存在")
|
||||
}
|
||||
|
||||
parseResult, err := lzUtils.RecursiveParse(dataResult.Raw)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("递归反序列化")
|
||||
}
|
||||
marshal, err := sonic.Marshal(parseResult)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("序列化失败: %v", err)
|
||||
}
|
||||
return marshal, nil
|
||||
}
|
||||
|
||||
// Q03SC01 企业涉诉信息
|
||||
func (a *ApiRequestService) ProcessQ03SC01Request(params []byte) ([]byte, error) {
|
||||
entName := gjson.GetBytes(params, "ent_name")
|
||||
entCode := gjson.GetBytes(params, "ent_code")
|
||||
|
||||
if !entName.Exists() || !entCode.Exists() {
|
||||
return nil, errors.New("api请求, Q03SC01, 获取相关参数失败")
|
||||
}
|
||||
|
||||
request := map[string]interface{}{
|
||||
"data": map[string]interface{}{
|
||||
"uscc": a.westDexService.Encrypt(entCode.String()),
|
||||
"org_name": a.westDexService.Encrypt(entName.String()),
|
||||
"inquired_auth": a.westDexService.GetDateRange(),
|
||||
},
|
||||
}
|
||||
resp, callApiErr := a.westDexService.CallAPI("Q03SC01", request)
|
||||
if callApiErr != nil {
|
||||
return nil, callApiErr
|
||||
}
|
||||
// 第一步:提取外层的 data 字段
|
||||
dataResult := gjson.GetBytes(resp, "data")
|
||||
if !dataResult.Exists() {
|
||||
return nil, fmt.Errorf("外层 data 字段不存在")
|
||||
}
|
||||
|
||||
parseResult, err := lzUtils.RecursiveParse(dataResult.Raw)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("递归反序列化")
|
||||
}
|
||||
marshal, err := sonic.Marshal(parseResult)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("序列化失败: %v", err)
|
||||
}
|
||||
return marshal, nil
|
||||
}
|
||||
|
||||
// G39SC02 职业资格证书核验
|
||||
func (a *ApiRequestService) ProcessG39SC02Request(params []byte) ([]byte, error) {
|
||||
name := gjson.GetBytes(params, "name")
|
||||
idCard := gjson.GetBytes(params, "id_card")
|
||||
|
||||
if !name.Exists() || !idCard.Exists() {
|
||||
return nil, errors.New("api请求, G39SC02, 获取相关参数失败")
|
||||
}
|
||||
|
||||
request := map[string]interface{}{
|
||||
"data": map[string]interface{}{
|
||||
"name": a.westDexService.Encrypt(name.String()),
|
||||
"IdNum": a.westDexService.Encrypt(idCard.String()),
|
||||
},
|
||||
}
|
||||
resp, callApiErr := a.westDexService.CallAPI("G39SC02", request)
|
||||
if callApiErr != nil {
|
||||
return nil, callApiErr
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
// G38SC02 全国个人离婚次数
|
||||
func (a *ApiRequestService) ProcessG38SC02Request(params []byte) ([]byte, error) {
|
||||
name := gjson.GetBytes(params, "name")
|
||||
idCard := gjson.GetBytes(params, "id_card")
|
||||
|
||||
if !name.Exists() || !idCard.Exists() {
|
||||
return nil, errors.New("api请求, G38SC02, 获取相关参数失败")
|
||||
}
|
||||
|
||||
request := map[string]interface{}{
|
||||
"data": map[string]interface{}{
|
||||
"xm": a.westDexService.Encrypt(name.String()),
|
||||
"sfzh": a.westDexService.Encrypt(idCard.String()),
|
||||
},
|
||||
}
|
||||
resp, callApiErr := a.westDexService.CallAPI("G38SC02", request)
|
||||
if callApiErr != nil {
|
||||
return nil, callApiErr
|
||||
}
|
||||
return resp, nil
|
||||
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ import (
|
||||
"fmt"
|
||||
"github.com/pkg/errors"
|
||||
"io"
|
||||
"log"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"time"
|
||||
@@ -99,18 +98,14 @@ func (w *WestDexService) CallAPI(code string, reqData map[string]interface{}) (r
|
||||
return nil, DecryptErr
|
||||
}
|
||||
return decryptedData, errors.New(westDexResp.Message)
|
||||
log.Println(string(decryptedData))
|
||||
}
|
||||
if westDexResp.Data == "" {
|
||||
return nil, errors.New(westDexResp.Message)
|
||||
}
|
||||
// 解密响应数据
|
||||
decryptedData, DecryptErr := crypto.WestDexDecrypt(westDexResp.Data, w.config.Key)
|
||||
if DecryptErr != nil {
|
||||
return nil, DecryptErr
|
||||
}
|
||||
// 输出解密后的数据
|
||||
log.Println(string(decryptedData))
|
||||
|
||||
return decryptedData, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user