后台面板
This commit is contained in:
@@ -2,11 +2,13 @@ package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
"qnc-server/app/user/cmd/api/internal/config"
|
||||
"qnc-server/app/user/model"
|
||||
"qnc-server/app/main/api/internal/config"
|
||||
"qnc-server/app/main/api/internal/types"
|
||||
"qnc-server/app/main/model"
|
||||
"qnc-server/pkg/lzkit/lzUtils"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
)
|
||||
|
||||
@@ -28,6 +30,7 @@ type AgentService struct {
|
||||
AgentPlatformDeductionModel model.AgentPlatformDeductionModel
|
||||
AgentActiveStatModel model.AgentActiveStatModel
|
||||
AgentWithdrawalModel model.AgentWithdrawalModel
|
||||
AsynqService *AsynqService
|
||||
}
|
||||
|
||||
func NewAgentService(c config.Config, agentModel model.AgentModel, agentAuditModel model.AgentAuditModel,
|
||||
@@ -37,7 +40,7 @@ func NewAgentService(c config.Config, agentModel model.AgentModel, agentAuditMod
|
||||
agentMembershipRechargeOrderModel model.AgentMembershipRechargeOrderModel,
|
||||
agentMembershipUserConfigModel model.AgentMembershipUserConfigModel,
|
||||
agentProductConfigModel model.AgentProductConfigModel, agentPlatformDeductionModel model.AgentPlatformDeductionModel,
|
||||
agentActiveStatModel model.AgentActiveStatModel, agentWithdrawalModel model.AgentWithdrawalModel) *AgentService {
|
||||
agentActiveStatModel model.AgentActiveStatModel, asynqService *AsynqService, agentWithdrawalModel model.AgentWithdrawalModel) *AgentService {
|
||||
|
||||
return &AgentService{
|
||||
config: c,
|
||||
@@ -57,6 +60,7 @@ func NewAgentService(c config.Config, agentModel model.AgentModel, agentAuditMod
|
||||
AgentPlatformDeductionModel: agentPlatformDeductionModel,
|
||||
AgentActiveStatModel: agentActiveStatModel,
|
||||
AgentWithdrawalModel: agentWithdrawalModel,
|
||||
AsynqService: asynqService,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,12 +138,18 @@ func (l *AgentService) AgentProcess(ctx context.Context, order *model.Order) err
|
||||
return findAgentWalletModelErr
|
||||
}
|
||||
|
||||
ancestorWallet.Balance += ancestorCommissionAmount
|
||||
ancestorWallet.FrozenBalance += ancestorCommissionAmount
|
||||
ancestorWallet.TotalEarnings += ancestorCommissionAmount
|
||||
updateErr := l.AgentWalletModel.UpdateWithVersion(transCtx, session, ancestorWallet)
|
||||
if updateErr != nil {
|
||||
return updateErr
|
||||
}
|
||||
// 发送解冻任务
|
||||
err := l.AsynqService.SendUnfreezeAgentBalanceTask(AncestorId, order.Id, ancestorCommissionAmount)
|
||||
if err != nil {
|
||||
logx.Errorf("创建解冻任务失败: %v, 代理ID: %d, 订单号: %d", err, AncestorId, order.Id)
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -167,7 +177,9 @@ func (l *AgentService) AgentCommission(ctx context.Context, agentID int64, order
|
||||
}
|
||||
// 推广人最终获得代理佣金
|
||||
finalCommission := order.Amount - deductedAmount
|
||||
agentWalletModel.Balance += finalCommission
|
||||
|
||||
// 更新冻结余额而不是直接更新余额
|
||||
agentWalletModel.FrozenBalance += finalCommission
|
||||
agentWalletModel.TotalEarnings += finalCommission
|
||||
|
||||
agentCommission := model.AgentCommission{
|
||||
@@ -185,6 +197,19 @@ func (l *AgentService) AgentCommission(ctx context.Context, agentID int64, order
|
||||
if updateAgentWalletErr != nil {
|
||||
return updateAgentWalletErr
|
||||
}
|
||||
// 创建24小时后解冻任务
|
||||
unfreezePayload := types.UnfreezeAgentBalancePayload{
|
||||
AgentID: agentID,
|
||||
OrderID: order.Id,
|
||||
Amount: finalCommission,
|
||||
}
|
||||
|
||||
// 发送解冻任务
|
||||
err := l.AsynqService.SendUnfreezeAgentBalanceTask(unfreezePayload.AgentID, unfreezePayload.OrderID, unfreezePayload.Amount)
|
||||
if err != nil {
|
||||
logx.Errorf("创建解冻任务失败: %v, 代理ID: %d, 订单号: %d", err, agentID, order.Id)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user