ark-member/internal/logic/update_status_logic.go

57 lines
1.2 KiB
Go
Raw Normal View History

2024-07-21 15:57:56 +00:00
package logic
import (
"context"
2024-07-25 14:01:22 +00:00
"member/internal/domain"
ers "member/internal/lib/error"
"member/internal/lib/required"
2024-07-21 15:57:56 +00:00
"member/gen_result/pb/member"
"member/internal/svc"
"github.com/zeromicro/go-zero/core/logx"
)
type UpdateStatusLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewUpdateStatusLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UpdateStatusLogic {
return &UpdateStatusLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
2024-07-25 14:01:22 +00:00
type updateStatusReq struct {
UID string `json:"uid" validate:"required"`
Status int32 `json:"status" validate:"required,oneof=1 2 3 4 5 6"`
}
2024-07-21 15:57:56 +00:00
// UpdateStatus 修改狀態
func (l *UpdateStatusLogic) UpdateStatus(in *member.UpdateStatusReq) (*member.Response, error) {
2024-07-25 14:01:22 +00:00
err := required.ValidateAll(l.svcCtx.Validate, &updateStatusReq{
UID: in.GetUid(),
Status: int32(in.GetStatus()),
})
if err != nil {
return nil, ers.InvalidFormat(err.Error())
}
err = l.svcCtx.UserModel.UpdateStatus(l.ctx, in.GetUid(), int32(in.GetStatus()))
if err != nil {
return nil, ers.DBError(err.Error())
}
2024-07-21 15:57:56 +00:00
2024-07-25 14:01:22 +00:00
return &member.Response{
Status: &member.BaseResp{
Code: domain.CodeOk.ToString(),
Message: "success",
Error: "",
},
}, nil
2024-07-21 15:57:56 +00:00
}