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

95 lines
5.4 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/shopspring/decimal"
)
type (
IAppleAccount interface {
Add(ctx context.Context, data *model.AppleAccountRecordInput, tx gdb.TX) (err error)
// Update 修改用户信息
Update(ctx context.Context, data *model.V1CardAppleAccountInfo, tx gdb.TX) (err error)
// AddWalletAmount 添加金额到账户中
AddWalletAmount(ctx context.Context, input *model.AppleCardWalletInfo, tx gdb.TX) (isFull bool, err error)
// Delete 删除苹果账号
Delete(ctx context.Context, id string, tx gdb.TX) (err error)
// List 获取所有苹果账户
List(ctx context.Context, input *model.CardInfoParamsInput) (total int, data []model.AppleAccountListOutput, err error)
// ListUnscoped 获取所有苹果账户
ListUnscoped(ctx context.Context, input *model.CardInfoParamsInput) (total int, data []model.AppleAccountListOutput, err error)
// GetDetailById 根据ID获取账号详情
GetDetailById(ctx context.Context, id string) (data *entity.V1CardAppleAccountInfo, err error)
GetUnscopedDetailById(ctx context.Context, id string) (data *entity.V1CardAppleAccountInfo, err error)
GetDetailsByCreatedUser(ctx context.Context, createdUserId string) (data []*entity.V1CardAppleAccountInfo, err error)
// GetFirstNormalByCreatedUser 通过上传人获取最先上传切正常的账号
GetFirstNormalByCreatedUser(ctx context.Context, createdUserId string) (data entity.V1CardAppleAccountInfo, err error)
// GetDetailByName 根据账号获取账号详情
GetDetailByName(ctx context.Context, account string) (data entity.V1CardAppleAccountInfo, err error)
// IsUnscopedTodayRepeatedByName 判断档当前添加的账号是否重复
IsUnscopedTodayRepeatedByName(ctx context.Context, account string) (isRepeated bool, err error)
// GetAll 获取所有账号
GetAll(ctx context.Context) (data []entity.V1CardAppleAccountInfo, err error)
// GetAllNormal 获取所有可用账户
GetAllNormal(ctx context.Context) (data []*entity.V1CardAppleAccountInfo, err error)
// GetListByStatus 获取所有可用的账号
GetListByStatus(ctx context.Context, status consts.AppleAccountStatus) (data []entity.V1CardAppleAccountInfo, err error)
// CheckIsNormal 查询当前账户是否正常
CheckIsNormal(ctx context.Context, accountId string)
// HandleTmpStoppedList 处理临时暂停账号
HandleTmpStoppedList(ctx context.Context) (err error)
// GetDecryptedPassword 获取解密后的密码
GetDecryptedPassword(encryptedPassword string) (string, error)
// GetNextUser 从sysUser表中查询所有用户获取排序后的当前用户后面下一个Id
GetNextUser(ctx context.Context, originalUserId string, amount decimal.Decimal) (targetId string, err error)
SetCurrentTargetAccount(ctx context.Context, machineId string, m *model.AccountIdInfo) (err error)
GetCurrentTargetAccount(ctx context.Context, machineId string) (m model.AccountIdInfo, err error)
GetAllTargetAccount(ctx context.Context) (m []*model.AccountIdInfo, err error)
GetExcludeAccounts(ctx context.Context, machineId string) (m []*model.AccountIdInfo, err error)
// ClearCurrentTargetAccount 清空缓存
ClearCurrentTargetAccount(ctx context.Context, machineId string) (err error)
// GetHistoryOneByOrderNo 根据ID获取账号历史
GetHistoryOneByOrderNo(ctx context.Context, accountId string, orderNo string) (data *entity.V1CardAppleAccountInfoHistory, err error)
// GetAccordingAccountV3 账户分配算法,适合多线程
GetAccordingAccountV3(ctx context.Context, machineId string, amount decimal.Decimal) (data *entity.V1CardAppleAccountInfo, err error)
// GetAccordingAccount 账户分配算法,适合多线程
GetAccordingAccount(ctx context.Context, amount decimal.Decimal, excludeAccountIds []string) (data *entity.V1CardAppleAccountInfo, err error)
// ResetStatus 重置账号状态
ResetStatus(ctx context.Context, tx gdb.TX) (err error)
ModifyStatus(ctx context.Context, id string, status consts.AppleAccountStatus, tx gdb.TX) (err error)
// CheckAllAccountIsNormal 判断当前用户上传是否有账户可用
CheckAllAccountIsNormal(ctx context.Context, createdUserId string) (isNormal bool, err error)
// AddWalletHistory 添加账户历史明细
AddWalletHistory(ctx context.Context, input model.AppleCardAccountHistoryInput, tx gdb.TX) (err error)
// GetWalletHistory 获取单账户钱包明细
GetWalletHistory(ctx context.Context, input model.CardAppleAccountHistoryQueryInput) (total int, data []entity.V1CardAppleAccountInfoHistory, err error)
// CheckWalletHistoryNormal 检查账户流水是否跟iTunes余额一致如果不一致就手动添加添加差额
CheckWalletHistoryNormal(ctx context.Context, accountId string)
}
)
var (
localAppleAccount IAppleAccount
)
func AppleAccount() IAppleAccount {
if localAppleAccount == nil {
panic("implement not found for interface IAppleAccount, forgot register?")
}
return localAppleAccount
}
func RegisterAppleAccount(i IAppleAccount) {
localAppleAccount = i
}