Files
kami_backend/internal/service/jd_cookie.go
danial f358aa0745 feat(jd-cookie): 引入用户订单号支持并重构订单创建逻辑
- 新增用户订单号字段以区分内部订单号
- 修改订单表结构添加 user_order_id 字段及索引
- 更新 CreateOrder 接口支持用户订单号参数-重构 CreateOrder 和 GetPaymentUrl 方法返回统一结果对象
- 新增模型定义用于封装订单创建与支付结果
- 调整相关逻辑方法签名与调用方式适配新结构- 优化订单创建流程增加内部订单号生成逻辑
- 完善订单查询逻辑确保正确关联用户订单号- 更新控制器层对接新版服务接口- 升级 Cookie 状态及订单状态管理枚举类型使用
2025-10-13 15:00:11 +08:00

97 lines
5.7 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// ================================================================================
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
// You can delete these comments if you wish manually maintain this interface file.
// ================================================================================
package service
import (
"context"
v1 "kami/api/jd_cookie/v1"
"kami/internal/consts"
"kami/internal/model"
"kami/internal/model/entity"
)
type (
IJdCookie interface {
// CreateAccount 创建Cookie账户
CreateAccount(ctx context.Context, cookieValue string, accountName string, remark string) (cookieId string, status int, err error)
// BatchCreateAccount 批量创建Cookie账户
BatchCreateAccount(ctx context.Context, cookies []*v1.CreateAccountReq) (successIds []string, failedCount int, err error)
// ListAccount 查询Cookie账户列表
ListAccount(ctx context.Context, page int, size int, status consts.JdCookieStatus, keyword string) (list []*v1.CookieAccountInfo, total int, err error)
// UpdateAccount 更新Cookie账户
UpdateAccount(ctx context.Context, cookieId string, cookieValue string, accountName string, status consts.JdCookieStatus, remark string) (err error)
// DeleteAccount 删除Cookie账户
DeleteAccount(ctx context.Context, cookieId string) (err error)
// BatchDeleteAccount 批量删除Cookie账户
BatchDeleteAccount(ctx context.Context, cookieIds []string) (successIds []string, failedCount int, err error)
// GetAccount 获取单个Cookie账户
GetAccount(ctx context.Context, cookieId string) (account *v1.CookieAccountInfo, err error)
// BatchCheckAccount 批量检测Cookie状态
BatchCheckAccount(ctx context.Context, cookieIds []string) (results []*v1.CookieCheckResult, err error)
// GetCookieHistory Cookie变更历史
GetCookieHistory(ctx context.Context, cookieId string, page int, size int, changeType consts.CookieChangeType) (list []*v1.CookieHistoryInfo, total int, err error)
// GetOrderHistory 订单变更历史
GetOrderHistory(ctx context.Context, orderId string, orderType string, page int, size int) (list []*v1.OrderHistoryInfo, total int, err error)
// GetJdOrderHistoryByOrderId 根据订单ID获取所有关联的京东订单历史
GetJdOrderHistoryByOrderId(ctx context.Context, orderId string, page int, size int) (list []*v1.JdOrderHistoryInfo, total int, err error)
// CreateOrder 创建订单
CreateOrder(ctx context.Context, userOrderId string, amount float64, category consts.RedeemOrderCardCategory) (result *model.CreateOrderResult, err error)
// GetJdOrder 获取单个京东订单
GetJdOrder(ctx context.Context, jdOrderId string) (order *v1.JdOrderInfo, err error)
// ListJdOrder 京东订单列表查询
ListJdOrder(ctx context.Context, page int, size int, status consts.JdOrderStatus, startTime string, endTime string, orderId string) (list []*v1.JdOrderInfo, total int, err error)
// CheckJdOrderPayment 检查京东订单支付状态
CheckJdOrderPayment(ctx context.Context, jdOrderId string) (isPaid bool, paymentStatus consts.JdOrderStatus, message string, canReuse bool, err error)
// BatchCheckPaymentStatus 批量检查京东订单支付状态(定时任务)
BatchCheckPaymentStatus(ctx context.Context) error
// ExtractCardInfo 提取卡密信息
ExtractCardInfo(ctx context.Context, jdOrderId string) error
// ShouldExtractCard 判断是否需要提取卡密
ShouldExtractCard(ctx context.Context, jdOrder *entity.V1JdCookieJdOrder) bool
// CleanupExpiredOrders 清理过期订单(定时任务)
CleanupExpiredOrders(ctx context.Context) error
// ReleaseExpiredJdOrders 释放过期京东订单的关联(使其可以被复用)
ReleaseExpiredJdOrders(ctx context.Context) error
// GetPaymentUrl 获取支付链接
GetPaymentUrl(ctx context.Context, orderId string) (result *model.PaymentResult, err error)
// GetOrder 获取单个订单
GetOrder(ctx context.Context, orderId string) (order *v1.OrderInfo, err error)
// GetOrderStatus 查询订单状态
GetOrderStatus(ctx context.Context, orderId string) (order *v1.OrderInfo, err error)
// ListOrder 订单列表查询
ListOrder(ctx context.Context, page int, size int, status consts.OrderStatus, startTime string, endTime string) (list []*v1.OrderInfo, total int, err error)
// GetAvailableCookie 获取可用的Cookie轮询分配
GetAvailableCookie(ctx context.Context) (cookieId string, err error)
// UpdateCookieStatus 更新Cookie状态
UpdateCookieStatus(ctx context.Context, cookieId string, status int, failureCount int) (err error)
// CreateJdOrder 创建京东订单
CreateJdOrder(ctx context.Context, jdOrderId string, payId string, cookieId string, category string, amount float64) (err error)
// UpdateJdOrderStatus 更新京东订单状态
UpdateJdOrderStatus(ctx context.Context, jdOrderId string, status int, wxPayUrl string) (err error)
// RecordCookieHistory 记录Cookie变更历史
RecordCookieHistory(ctx context.Context, cookieId string, changeType consts.CookieChangeType, statusBefore int, statusAfter int, userOrderId string, failureCount int) (err error)
// RecordJdOrderHistory 记录京东订单变更历史
RecordJdOrderHistory(ctx context.Context, jdOrderId string, changeType consts.JdOrderChangeType, orderId string, wxPayUrl string) (err error)
// RecordOrderHistory 记录订单变更历史
RecordOrderHistory(ctx context.Context, orderId string, changeType consts.OrderChangeType, jdOrderId string) (err error)
}
)
var (
localJdCookie IJdCookie
)
func JdCookie() IJdCookie {
if localJdCookie == nil {
panic("implement not found for interface IJdCookie, forgot register?")
}
return localJdCookie
}
func RegisterJdCookie(i IJdCookie) {
localJdCookie = i
}