f
This commit is contained in:
49
app/main/api/internal/queue/agentMembershipExpireHandle.go
Normal file
49
app/main/api/internal/queue/agentMembershipExpireHandle.go
Normal file
@@ -0,0 +1,49 @@
|
||||
package queue
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"bdrp-server/app/main/api/internal/service"
|
||||
"bdrp-server/app/main/api/internal/svc"
|
||||
"bdrp-server/app/main/api/internal/types"
|
||||
|
||||
"github.com/hibiken/asynq"
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
)
|
||||
|
||||
type AgentMembershipExpireHandleHandler struct {
|
||||
svcCtx *svc.ServiceContext
|
||||
}
|
||||
|
||||
func NewAgentMembershipExpireHandleHandler(svcCtx *svc.ServiceContext) *AgentMembershipExpireHandleHandler {
|
||||
return &AgentMembershipExpireHandleHandler{
|
||||
svcCtx: svcCtx,
|
||||
}
|
||||
}
|
||||
|
||||
func (l *AgentMembershipExpireHandleHandler) ProcessTask(ctx context.Context, t *asynq.Task) error {
|
||||
var payload types.MsgAgentMembershipExpireHandlePayload
|
||||
if err := json.Unmarshal(t.Payload(), &payload); err != nil {
|
||||
logx.Errorf("解析会员到期处理任务payload失败: %v", err)
|
||||
return err
|
||||
}
|
||||
if payload.AgentID <= 0 {
|
||||
return fmt.Errorf("无效代理ID: %d", payload.AgentID)
|
||||
}
|
||||
|
||||
now := time.Now()
|
||||
downgraded, err := service.DowngradeExpiredMembership(ctx, l.svcCtx.AgentModel, payload.AgentID, now)
|
||||
if err != nil {
|
||||
logx.Errorf("会员到期处理失败,代理ID: %d, 错误: %v", payload.AgentID, err)
|
||||
return err
|
||||
}
|
||||
if downgraded {
|
||||
logx.Infof("会员到期处理成功,代理ID: %d 已降级为普通代理", payload.AgentID)
|
||||
} else {
|
||||
logx.Infof("会员到期处理跳过,代理ID: %d 当前无需降级", payload.AgentID)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user