mirror of
https://git.oceanpay.cc/danial/kami_scripts.git
synced 2025-12-18 22:49:25 +00:00
fix(order): 处理不支持的骏卡订单
- 修改 submit_url 为新的 API 地址 - 更新 merchants 配置,添加多个商户信息 -增加 logging 配置,确保日志输出正常 - 优化 order_service 中的订单处理逻辑- 引入 pkg/errors 包,用于错误处理
This commit is contained in:
@@ -5,14 +5,29 @@ database:
|
||||
password: Woaizixkie!123
|
||||
dbname: kami
|
||||
|
||||
submit_url: "https://gateway.kkknametrans.buzz"
|
||||
submit_url: "http://175.27.239.142:12309/gateway/scan"
|
||||
|
||||
merchants:
|
||||
- name: "测试商户"
|
||||
app_key: "app_key"
|
||||
app_secret: "app_secret"
|
||||
product_code: ""
|
||||
card_type: ""
|
||||
- name: "元亨卡"
|
||||
pay_key: "kkkkc9kit6bimggos5kk0c90"
|
||||
pay_secret: "ssssc9kit6bimggos5kk0c9g"
|
||||
product_code: "5006"
|
||||
card_type: "414 骏卡-元亨卡"
|
||||
- name: "信汇卡"
|
||||
pay_key: "kkkkc9kit6bimggos5kk0c90"
|
||||
pay_secret: "ssssc9kit6bimggos5kk0c9g"
|
||||
product_code: "3006"
|
||||
card_type: "342 骏卡-信汇卡"
|
||||
- name: "汇顺卡"
|
||||
pay_key: "kkkkc9kit6bimggos5kk0c90"
|
||||
pay_secret: "ssssc9kit6bimggos5kk0c9g"
|
||||
product_code: "2014"
|
||||
card_type: "367 骏卡-汇顺卡"
|
||||
- name: "汇顺卡"
|
||||
pay_key: "kkkkc9kit6bimggos5kk0c90"
|
||||
pay_secret: "ssssc9kit6bimggos5kk0c9g"
|
||||
product_code: "4006"
|
||||
card_type: "428 骏卡-金润通卡"
|
||||
|
||||
logging:
|
||||
level: "info"
|
||||
|
||||
@@ -5,6 +5,7 @@ go 1.24
|
||||
require (
|
||||
github.com/beego/beego/v2 v2.3.8
|
||||
github.com/duke-git/lancet/v2 v2.3.6
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/spf13/viper v1.20.1
|
||||
go.uber.org/zap v1.27.0
|
||||
gorm.io/driver/mysql v1.6.0
|
||||
|
||||
@@ -46,6 +46,8 @@ github.com/microsoft/go-mssqldb v1.7.2 h1:CHkFJiObW7ItKTJfHo1QX7QBBD1iV+mn1eOyRP
|
||||
github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA=
|
||||
github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
|
||||
github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
|
||||
|
||||
@@ -2,10 +2,12 @@ package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"encoding/csv"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/duke-git/lancet/v2/convertor"
|
||||
"github.com/pkg/errors"
|
||||
"order/internal/client"
|
||||
"os"
|
||||
"strings"
|
||||
@@ -57,11 +59,16 @@ func (s *OrderServiceImpl) ProcessOrders(ctx context.Context) error {
|
||||
_ = csvFile.Close()
|
||||
}(csvFile)
|
||||
|
||||
orders, err := s.repo.FindOrdersByReason(ctx, "timeout", time.Now(), time.Now())
|
||||
if err != nil || len(orders) == 0 {
|
||||
s.logger.Error("获取订单失败", "error", err)
|
||||
orders, err := s.repo.FindOrdersByReason(ctx, "不支持的骏卡", time.Now().Add(-time.Minute), time.Now())
|
||||
if err != nil {
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
s.logger.Error("获取订单失败", "error", err)
|
||||
}
|
||||
return err
|
||||
}
|
||||
if len(orders) == 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
csvReader := csv.NewReader(csvFile)
|
||||
// 读取所有数据
|
||||
@@ -71,8 +78,13 @@ func (s *OrderServiceImpl) ProcessOrders(ctx context.Context) error {
|
||||
}
|
||||
|
||||
// 筛选符合条件的数据
|
||||
existBankOrders := slice.Map(records, func(index int, record []string) string {
|
||||
return record[0]
|
||||
existBankOrders := slice.Filter(slice.Map(records, func(index int, record []string) string {
|
||||
if len(record) > 1 {
|
||||
return record[0]
|
||||
}
|
||||
return ""
|
||||
}), func(index int, record string) bool {
|
||||
return record != ""
|
||||
})
|
||||
for _, order := range orders {
|
||||
if slice.Contain(existBankOrders, order.BankOrderID) {
|
||||
|
||||
@@ -2,6 +2,7 @@ package utils
|
||||
|
||||
import (
|
||||
"order/internal/config"
|
||||
"os"
|
||||
|
||||
"go.uber.org/zap"
|
||||
"go.uber.org/zap/zapcore"
|
||||
@@ -16,7 +17,10 @@ func NewLogger(cfg *config.Config) (*zap.Logger, error) {
|
||||
"stdout", // 输出到控制台
|
||||
cfg.Logging.Filename, // 输出到文件
|
||||
}
|
||||
|
||||
//判断这个文件有没有,如果没有,就创建一个
|
||||
if _, err := os.Stat(cfg.Logging.Filename); os.IsNotExist(err) {
|
||||
_, _ = os.Create(cfg.Logging.Filename)
|
||||
}
|
||||
// 配置日志格式
|
||||
config.EncoderConfig.TimeKey = "timestamp"
|
||||
config.EncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
|
||||
|
||||
Reference in New Issue
Block a user