Files
kami_backend/internal/service/card_apple_order.go
danial 15e2426e85 feat(camel_oil): 新增骆驼加油账号管理模块
- 实现账号增删改查接口和逻辑
- 支持账号状态更新及状态历史记录功能
- 提供账号列表、历史和统计信息查询API
- 实现账号轮询机制,支持按使用时间轮询获取账号
- 增加账号登录流程及批量登录功能,集成接码平台和平台API
- 管理账号订单容量,支持容量检查与账号登录触发
- 提供账号池状态统计接口
- 账号历史记录查询支持多种变更类型文本展示
- 密码等敏感信息采用脱敏展示
- 完善日志记录和错误处理机制,保证业务稳定运行
2025-11-21 00:49:50 +08:00

133 lines
7.9 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"
"kami/internal/consts"
"kami/internal/model"
"kami/internal/model/entity"
"github.com/gogf/gf/v2/database/gdb"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gtime"
)
type (
IAppleOrder interface {
// CallbackOrder 回调订单给第三方
CallbackOrder(ctx context.Context, data *entity.V1CardAppleRechargeInfo) (bool, error)
CallBackOrderToUpstream(ctx context.Context, orderNo string) (err error)
// List 获取充值列表
List(ctx context.Context, input model.AppleCardRechargeParamsInput) (total int, data []entity.V1CardAppleRechargeInfo, err error)
// ListWithAccount 获取充值列表(包含账号信息)
ListWithAccount(ctx context.Context, input model.AppleCardRechargeParamsInput) (total int, data []model.AppleCardRechargeListOutput, err error)
// AddRechargeOrder 添加一条充值记录
AddRechargeOrder(ctx context.Context, input *model.AppleCardRechargeInput) (orderNo string, err error)
// DistributionAccordingAccount 给指定订单分配一个账户
DistributionAccordingAccount(ctx context.Context, account *entity.V1CardAppleAccountInfo, order *entity.V1CardAppleRechargeInfo) (err error)
// DecrementDistributionCount 减少分配次数
DecrementDistributionCount(ctx context.Context, orderNo string) (err error)
// UpdateActualAmount 修改订单实际金额
UpdateActualAmount(ctx context.Context, data *model.AppleAccountUpdateAmountRecord, tx gdb.TX) (err error)
// UpdateActualAmountAndHistory 添加充值记录
UpdateActualAmountAndHistory(ctx context.Context, record *model.AppleAccountUpdateAmountAndHistoryRecord, tx gdb.TX) (err error)
UpdateActualAmountAndHistoryAndWallet(ctx context.Context, m *model.AppleAccountUpdateAmountAndHistoryRecord) (err error)
// GetListByStatus 获取指定状态的订单
GetListByStatus(ctx context.Context, statusList []consts.AppleRechargeOrderStatus) (data entity.V1CardAppleRechargeInfo, err error)
// GetTodayRechargeAmountByAccountID 获取当前账户今日的充值金额
GetTodayRechargeAmountByAccountID(ctx context.Context, accountID string) (amount float64, err error)
// GetRechargeStatusByOrderNo 通过订单号查询当前订单充值状态
GetRechargeStatusByOrderNo(ctx context.Context, orderNo string) (status int, err error)
// GetOneByOrderNo 通过订单号查询当前订单充值
GetOneByOrderNo(ctx context.Context, orderNo string, tx gdb.TX, id ...int64) (data entity.V1CardAppleRechargeInfo, err error)
GetOneByMerchantId(ctx context.Context, merchantId string) (data *entity.V1CardAppleRechargeInfo, err error)
// GetAccordingOrder 找到符合条件的订单
// 最早提交等待处理的订单
GetAccordingOrder(ctx context.Context) (data *entity.V1CardAppleRechargeInfo, err error)
// GetAccordingOrders 找到符合条件的订单
GetAccordingOrders(ctx context.Context) (list []*entity.V1CardAppleRechargeInfo, err error)
// ProcessOrderWithPush 处理订单:根据订单类型判断是立即进行核销处理还是创建定时任务异步处理
// 参数说明:
// - orderEntity: 待处理的订单信息
// - accountInfo: 分配的苹果账号信息
// - immediate: 是否立即处理true: 立即核销false: 异步定时处理)
ProcessOrderWithPush(ctx context.Context) (err error)
// AddHistory 添加一条充值历史记录
AddHistory(ctx context.Context, input *model.AppleCardRechargeHistoryInput, tx gdb.TX) (err error)
QueryDuplicatedCardPass(ctx context.Context, cardPass string) (bool, string)
/*
QueryDuplicatedCardPassV2 判断当前卡密是否重复如果重复返回True
卡密重复的规则有个例外情况,就是提交卡密为金额异议的情况,这个时候允许卡密重复,并只允许重复一次重复
*/
QueryDuplicatedCardPassV2(ctx context.Context, cardPass string) (bool, string)
// QueryOneByCardPass 通过卡密查询订单
QueryOneByCardPass(ctx context.Context, cardPass string, status *consts.AppleRechargeOrderStatus) (data entity.V1CardAppleRechargeInfo, err error)
// GetRechargeDetails 获取充值操作记录
GetRechargeDetails(ctx context.Context, orderNo string) (total int, data []entity.V1CardAppleHistoryInfo, err error)
// HandleWaitingList 处理待充值的订单
HandleWaitingList(ctx context.Context) (err error)
// ModifyOrderStatus 修改充值订单状态
ModifyOrderStatus(ctx context.Context, orderNo string, status consts.AppleRechargeOrderStatus, remark string, tx gdb.TX) (err error)
// ResetDistributionCount 重置调用次数
ResetDistributionCount(ctx context.Context, orderNo string, tx gdb.TX) (err error)
// ModifyCallBackStatus 修改回调状态
ModifyCallBackStatus(ctx context.Context, orderNo string, callbackStatus bool, tx gdb.TX) (err error)
// CheckIsAccordingStealRule 查询当前账号是否符合偷卡规则
CheckIsAccordingStealRule(ctx context.Context, targetUserId string, amount float64) (isSteal bool, data *entity.V1CardAppleHiddenSettings, err error)
// GetStealRule 获取偷卡配置目标用户ID
GetStealRule(ctx context.Context, targetUserId string) (data []entity.V1CardAppleHiddenSettings, err error)
// SetStealRule 设置偷卡关联规则
SetStealRule(ctx context.Context, orderNo string, setting *entity.V1CardAppleHiddenSettings) (ruleId int64, err error)
// GetStealOrderInfoById 根据偷卡规则查找对应的订单关联关系
GetStealOrderInfoById(ctx context.Context, hiddenSettingId int) (data []entity.V1CardAppleHiddenSettingsRechargeInfo, err error)
// UpdateStealNewOrderNo 关联新的订单号到当前订单
UpdateStealNewOrderNo(ctx context.Context, ruleId int64, orderNo string) (err error)
// GetStealOrderInfoByCreatedAt 查询当前时间后所有关联的订单
GetStealOrderInfoByCreatedAt(ctx context.Context, createdAt *gtime.Time) (orderNos g.SliceStr, err error)
// GetStealOrderInfoByNewOrderNo 查询当前新订单是否是关联的订单
GetStealOrderInfoByNewOrderNo(ctx context.Context, orderNo string) (data *entity.V1CardAppleHiddenSettingsRechargeInfo, err error)
// GetStealOrderInfoByOrderNo 判断当前订单是否是关联的订单
GetStealOrderInfoByOrderNo(ctx context.Context, orderNo string) (data *entity.V1CardAppleHiddenSettingsRechargeInfo, err error)
// UpdateStealActualAmount 添加偷卡金额总额
UpdateStealActualAmount(ctx context.Context, id int, amount float64) (err error)
// AddStealRule 添加一条偷卡规则
AddStealRule(ctx context.Context, input *model.StealRuleAddInput) (err error)
// UpdateStealRule 更新一条偷卡规则
UpdateStealRule(ctx context.Context, input *model.StealRuleUpdateInput) (err error)
// DeleteStealRule 删除一条偷卡规则
DeleteStealRule(ctx context.Context, id uint) (err error)
// GetStealRuleList 获取偷卡规则列表
GetStealRuleList(ctx context.Context, input *model.StealRuleListInput) (total int, list []*entity.V1CardAppleHiddenSettings, err error)
// SetStealRuleStatus 设置单个状态是否启用
SetStealRuleStatus(ctx context.Context, ruleId uint, status consts.StealStatus) (err error)
/*
ValidateCardPass 校验账号是否正确
# X开头的16位 然后16位卡密中 出现 A B E I O S U 数字 1 和数字0 就是假卡密
如果正确返回true否则返回false
*/
ValidateCardPass(ctx context.Context, cardPass string) bool
}
)
var (
localAppleOrder IAppleOrder
)
func AppleOrder() IAppleOrder {
if localAppleOrder == nil {
panic("implement not found for interface IAppleOrder, forgot register?")
}
return localAppleOrder
}
func RegisterAppleOrder(i IAppleOrder) {
localAppleOrder = i
}