fix(camel_oil_api): update API endpoints and improve logging in order query

- Change query and recharge URLs from recharge3.bac365.com to app.bac365.com
- Remove redundant glog info and debug logs to reduce log noise
- Log full response string before unmarshalling JSON to aid debugging
- Use request data directly when posting instead of marshalled body
- Add new unit test for CronOrderPaymentCheckTask to improve coverage
- Maintain detailed prefetch order logs for key steps and errors
This commit is contained in:
danial
2025-12-11 17:50:32 +08:00
parent 356ff9b408
commit 75a032019a
2 changed files with 19 additions and 17 deletions

View File

@@ -0,0 +1,13 @@
package camel_oil
import (
"github.com/gogf/gf/v2/os/gctx"
"github.com/gogf/gf/v2/os/gtime"
"kami/internal/service"
"testing"
)
func Test_sCamelOil_CronOrderPaymentCheckTask(t *testing.T) {
_ = service.ProxyPool().InitStrategy(gctx.GetInitCtx(), "http://api.dmdaili.com/dmgetip.asp?apikey=42bab0ac&pwd=1b567c2f286a08e391b5805565fa0882&getnum=1&httptype=1&geshi=1&fenge=3&fengefu=&operate=all", gtime.M)
_ = (&sCamelOil{}).CronOrderPaymentCheckTask(t.Context())
}

View File

@@ -459,7 +459,6 @@ func (c *Client) CreateCamelOilOrder(ctx context.Context, phone, token string, a
// - result == nil && err == nil: 查询成功,但未找到订单
// - result == nil && err != nil: 查询失败,有错误
func (c *Client) QueryOrder(ctx context.Context, phone, token, orderId string) (result *QueryResult, err error) {
glog.Infof(ctx, "开始查询订单 - 订单ID: %s", orderId)
service.CamelOil().SavePrefetchOrderLog(ctx, fmt.Sprintf("查询订单开始 - 订单ID: %s", orderId))
c.Client.SetHeader("Authorization", "Bearer "+c.getAuth(ctx, token))
@@ -468,7 +467,6 @@ func (c *Client) QueryOrder(ctx context.Context, phone, token, orderId string) (
maxPages := 100
pageNum := 1
glog.Infof(ctx, "开始分页查询订单 %s每页50条记录", orderId)
service.CamelOil().SavePrefetchOrderLog(ctx, fmt.Sprintf("开始分页查询 - 订单ID: %s, 每页大小: 50", orderId))
for pageNum <= maxPages {
@@ -492,12 +490,7 @@ func (c *Client) QueryOrder(ctx context.Context, phone, token, orderId string) (
// 记录请求数据
reqData, _ := json.Marshal(reqBody)
glog.Debugf(ctx, "查询订单第%d页请求数据: %s", pageNum, string(reqData))
if pageNum <= 3 { // 只记录前3页的详细日志
service.CamelOil().SavePrefetchOrderLog(ctx, fmt.Sprintf("查询订单第%d页 - 订单ID: %s, 请求数据: %s", pageNum, orderId, string(reqData)))
}
respData, err := c.Client.Post(ctx, "https://recharge3.bac365.com/camel_wechat_mini_oil_server/eCardMall/queryWechatUserECards", reqBody)
respData, err := c.Client.Post(ctx, "https://app.bac365.com/camel_wechat_mini_oil_server/eCardMall/queryWechatUserECards", reqData)
if err != nil {
glog.Errorf(ctx, "查询卡券失败,第%d页订单ID: %s错误: %v", pageNum, orderId, err)
service.CamelOil().SavePrefetchOrderLog(ctx, fmt.Sprintf("查询订单请求失败 - 订单ID: %s, 第%d页, 错误: %v", orderId, pageNum, err))
@@ -518,22 +511,19 @@ func (c *Client) QueryOrder(ctx context.Context, phone, token, orderId string) (
ECardCode string `json:"ecardCode"`
} `json:"cards,omitempty"`
}{}
err = json.Unmarshal(respData.ReadAll(), &respStruct)
respDataResult := respData.ReadAllString()
glog.Infof(ctx, "查询订单第%d页响应 - 订单ID: %s, 响应: %s", pageNum, orderId, respDataResult)
err = json.Unmarshal([]byte(respDataResult), &respStruct)
if err != nil {
glog.Errorf(ctx, "解析查询响应失败,第%d页订单ID: %s错误: %v", pageNum, orderId, err)
service.CamelOil().SavePrefetchOrderLog(ctx, fmt.Sprintf("解析查询响应失败 - 订单ID: %s, 第%d页, 错误: %v", orderId, pageNum, err))
return nil, err
}
glog.Debugf(ctx, "查询订单第%d页完成找到%d条卡券记录", pageNum, len(respStruct.Cards))
if pageNum <= 3 {
service.CamelOil().SavePrefetchOrderLog(ctx, fmt.Sprintf("查询订单第%d页完成 - 订单ID: %s, 卡券数量: %d", pageNum, orderId, len(respStruct.Cards)))
}
service.CamelOil().SavePrefetchOrderLog(ctx, fmt.Sprintf("查询订单第%d页完成 - 订单ID: %s, 卡券数量: %d", pageNum, orderId, len(respStruct.Cards)))
// 如果当前页没有卡券数据,说明已查询所有数据
if len(respStruct.Cards) == 0 {
glog.Infof(ctx, "查询订单%s已完成共查询%d页未找到", orderId, pageNum-1)
service.CamelOil().SavePrefetchOrderLog(ctx, fmt.Sprintf("查询订单完成未找到 - 订单ID: %s, 共查询%d页", orderId, pageNum-1))
return nil, nil
}
@@ -555,7 +545,6 @@ func (c *Client) QueryOrder(ctx context.Context, phone, token, orderId string) (
pageNum++
}
glog.Warningf(ctx, "查询订单%s超过最大页数%d未找到", orderId, maxPages)
service.CamelOil().SavePrefetchOrderLog(ctx, fmt.Sprintf("查询订单超限 - 订单ID: %s, 超过最大页数: %d, 未找到", orderId, maxPages))
return nil, nil
}
@@ -581,7 +570,7 @@ func (c *Client) RechargeCard(ctx context.Context, token, phone, eCardCode strin
Channel: "app",
}
resp, err := c.Client.ContentJson().Post(ctx, "https://recharge3.bac365.com/camel_wechat_mini_oil_server/eCardMall/eCardRecharge", req)
resp, err := c.Client.ContentJson().Post(ctx, "https://app.bac365.com/camel_wechat_mini_oil_server/eCardMall/eCardRecharge", req)
if err != nil {
glog.Errorf(ctx, "绑卡请求失败,错误: %v", err)
return RechargeCardErrorNetwork, err