package admin_agent import ( "context" "ycc-server/app/main/model" "ycc-server/common/xerr" "github.com/pkg/errors" "ycc-server/app/main/api/internal/svc" "ycc-server/app/main/api/internal/types" "github.com/zeromicro/go-zero/core/logx" ) type AdminDowngradeAgentLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewAdminDowngradeAgentLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AdminDowngradeAgentLogic { return &AdminDowngradeAgentLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func (l *AdminDowngradeAgentLogic) AdminDowngradeAgent(req *types.AdminDowngradeAgentReq) (resp *types.AdminDowngradeAgentResp, err error) { if req.AgentId == "" { return nil, errors.Wrapf(xerr.NewErrMsg("代理ID不能为空"), "") } _, err = l.svcCtx.AgentModel.FindOne(l.ctx, req.AgentId) if err != nil { if errors.Is(err, model.ErrNotFound) { return nil, errors.Wrapf(xerr.NewErrMsg("代理不存在"), "") } return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "查询代理失败, %v", err) } if err := l.svcCtx.AgentService.ProcessDowngrade(l.ctx, req.AgentId, req.ToLevel, req.Remark); err != nil { return nil, errors.Wrapf(xerr.NewErrMsg(err.Error()), "") } return &types.AdminDowngradeAgentResp{ Success: true, }, nil }