- 实现账号增删改查接口和逻辑 - 支持账号状态更新及状态历史记录功能 - 提供账号列表、历史和统计信息查询API - 实现账号轮询机制,支持按使用时间轮询获取账号 - 增加账号登录流程及批量登录功能,集成接码平台和平台API - 管理账号订单容量,支持容量检查与账号登录触发 - 提供账号池状态统计接口 - 账号历史记录查询支持多种变更类型文本展示 - 密码等敏感信息采用脱敏展示 - 完善日志记录和错误处理机制,保证业务稳定运行
102 lines
5.4 KiB
Go
102 lines
5.4 KiB
Go
// ================================================================================
|
||
// 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/camel_oil/v1"
|
||
"kami/internal/consts"
|
||
"kami/internal/model/entity"
|
||
)
|
||
|
||
type (
|
||
ICamelOil interface {
|
||
// GetAccountInfo 获取账号信息
|
||
GetAccountInfo(ctx context.Context, accountId int64) (account *entity.V1CamelOilAccount, err error)
|
||
// CreateAccount 创建账号
|
||
CreateAccount(ctx context.Context, phoneNumber string, remark string) (accountId int64, err error)
|
||
// UpdateAccount 更新账号信息
|
||
UpdateAccount(ctx context.Context, accountId int64, remark string) (err error)
|
||
// DeleteAccount 删除账号(软删除)
|
||
DeleteAccount(ctx context.Context, accountId int64) (err error)
|
||
// ListAccounts 获取账号列表
|
||
ListAccounts(ctx context.Context, status int, current int, pageSize int) (accounts []*entity.V1CamelOilAccount, total int, err error)
|
||
// ListAccount 查询账号列表(API版本)
|
||
ListAccount(ctx context.Context, req *v1.ListAccountReq) (res *v1.ListAccountRes, err error)
|
||
// UpdateAccountStatus 更新账号状态并记录历史
|
||
UpdateAccountStatus(ctx context.Context, accountId int64, newStatus consts.CamelOilAccountStatus, operationType consts.CamelOilAccountChangeType, description string) (err error)
|
||
// RecordAccountHistory 记录账号历史
|
||
RecordAccountHistory(ctx context.Context, accountId int64, operationType consts.CamelOilAccountChangeType, oldStatus consts.CamelOilAccountStatus, newStatus consts.CamelOilAccountStatus, description string) (err error)
|
||
// GetOrderCountByStatus 获取指定状态的订单数量
|
||
GetOrderCountByStatus(ctx context.Context, status consts.CamelOilAccountStatus) (count int, err error)
|
||
// GetAvailableOrderCapacity 获取当前可用订单容量
|
||
// 计算所有在线账号的剩余可下单数之和
|
||
GetAvailableOrderCapacity(ctx context.Context) (capacity int, err error)
|
||
// CheckAndTriggerAccountLogin 检查容量并触发账号登录
|
||
// 如果可用订单容量<50,触发账号登录任务
|
||
CheckAndTriggerAccountLogin(ctx context.Context) (err error)
|
||
// GetAccountPoolStatus 获取账号池状态统计
|
||
GetAccountPoolStatus(ctx context.Context) (status map[string]interface{}, err error)
|
||
// GetAccountHistory 获取账号历史记录
|
||
GetAccountHistory(ctx context.Context, req *v1.AccountHistoryReq) (res *v1.AccountHistoryRes, err error)
|
||
// LoginAccount 执行账号登录流程
|
||
// 注意:当前使用假数据,实际应对接骆驼加油平台和接码平台
|
||
LoginAccount(ctx context.Context) (err error)
|
||
// BatchLoginAccounts 批量登录账号
|
||
BatchLoginAccounts(ctx context.Context, count int) (successCount int, err error)
|
||
// CheckAndLoginAccounts 检查容量并登录账号
|
||
// 根据当前可用订单容量,决定是否需要登录新账号
|
||
CheckAndLoginAccounts(ctx context.Context) (err error)
|
||
// GetAvailableAccount 获取可用账号(按last_used_at轮询)
|
||
// 选择条件:
|
||
// 1. status=2(在线)
|
||
// 2. daily_order_count < 10(当日未达限额)
|
||
// 3. daily_order_date=今日(日期匹配)
|
||
// 排序:last_used_at ASC(最早使用的优先,实现轮询)
|
||
GetAvailableAccount(ctx context.Context) (account *entity.V1CamelOilAccount, err error)
|
||
// GetAccountStatistics 获取账号统计信息
|
||
GetAccountStatistics(ctx context.Context, req *v1.AccountStatisticsReq) (res *v1.AccountStatisticsRes, err error)
|
||
// CronAccountLoginTask 账号登录任务 - 由cron调度器定期调用
|
||
CronAccountLoginTask(ctx context.Context) error
|
||
// CronOrderPaymentCheckTask 订单支付状态检测任务 - 由cron调度器定期调用
|
||
CronOrderPaymentCheckTask(ctx context.Context) error
|
||
// CronAccountDailyResetTask 账号日重置任务 - 由cron调度器在每日00:05调用
|
||
CronAccountDailyResetTask(ctx context.Context) error
|
||
CronVerifyCodeCheckTask(ctx context.Context) error
|
||
// SubmitOrder 提交订单并返回支付宝支付链接
|
||
SubmitOrder(ctx context.Context, req *v1.SubmitOrderReq) (res *v1.SubmitOrderRes, err error)
|
||
// TriggerOrderCallback 触发订单回调
|
||
TriggerOrderCallback(ctx context.Context, req *v1.OrderCallbackReq) (res *v1.OrderCallbackRes, err error)
|
||
// ProcessPendingCallbacks 处理待回调订单(定时任务使用)
|
||
ProcessPendingCallbacks(ctx context.Context) error
|
||
// GetOrderHistory 获取订单历史记录
|
||
GetOrderHistory(ctx context.Context, req *v1.OrderHistoryReq) (res *v1.OrderHistoryRes, err error)
|
||
// RecordOrderHistory 记录订单历史
|
||
RecordOrderHistory(ctx context.Context, orderNo string, changeType string, rawData string, remark string) error
|
||
// GetAccountOrders 查询账号关联订单
|
||
GetAccountOrders(ctx context.Context, req *v1.AccountOrderListReq) (res *v1.AccountOrderListRes, err error)
|
||
// ListOrder 查询订单列表
|
||
ListOrder(ctx context.Context, req *v1.ListOrderReq) (res *v1.ListOrderRes, err error)
|
||
// OrderDetail 查询订单详情
|
||
OrderDetail(ctx context.Context, req *v1.OrderDetailReq) (res *v1.OrderDetailRes, err error)
|
||
}
|
||
)
|
||
|
||
var (
|
||
localCamelOil ICamelOil
|
||
)
|
||
|
||
func CamelOil() ICamelOil {
|
||
if localCamelOil == nil {
|
||
panic("implement not found for interface ICamelOil, forgot register?")
|
||
}
|
||
return localCamelOil
|
||
}
|
||
|
||
func RegisterCamelOil(i ICamelOil) {
|
||
localCamelOil = i
|
||
}
|