busniess-user-center/server/user/user.go

98 lines
2.6 KiB
Go

package user
import (
userModel "busniess-user-center/internal/models/user"
"busniess-user-center/internal/service/user"
ginUtil "busniess-user-center/pkg/utils/gin"
"busniess-user-center/server/user/proto"
"context"
"github.com/gin-gonic/gin"
"github.com/samber/do"
"go.uber.org/zap"
)
func init() {
do.Provide(nil, NewUserServer)
}
type UserServer struct {
userService user.UserService
logger *zap.SugaredLogger
}
func NewUserServer(i *do.Injector) (*UserServer, error) {
return &UserServer{
userService: do.MustInvoke[user.UserService](i),
logger: do.MustInvoke[*zap.SugaredLogger](i),
}, nil
}
func RegisterRoute(api *gin.RouterGroup) {
server := do.MustInvoke[*UserServer](nil)
api.POST("/add", ginUtil.Wrap(server.Add))
api.POST("/login", ginUtil.WrapNoRsp(server.Login))
api.POST("/logout", ginUtil.WrapNo(server.Logout))
api.POST("/modify", ginUtil.WrapNoRsp(server.Modify))
api.GET("/search", ginUtil.Wrap(server.Search))
api.GET("/user", ginUtil.Wrap(server.GetUser))
api.POST("/reset", ginUtil.WrapNoRsp(server.ResetPwd))
api.POST("/enable", ginUtil.WrapNoRsp(server.Enable))
api.POST("/disable", ginUtil.WrapNoRsp(server.Disable))
}
func (u *UserServer) Add(ctx context.Context, req *userModel.AddInfo) (rsp proto.AddResponse, err error) {
// 转换dto
id, err := u.userService.Add(ctx, req)
if err != nil {
u.logger.Errorf("add user err:", err.Error())
return
}
rsp.Id = id
rsp.Account = req.Account
rsp.Name = req.Name
return
}
func (u *UserServer) Login(ctx context.Context, req *proto.LoginRequest) (err error) {
// 转换dto
info := userModel.LoginInfo{
Account: req.Account,
Pwd: req.Pwd,
}
return u.userService.Login(ctx, info)
}
func (u *UserServer) Logout(ctx context.Context) error {
return u.userService.Logout(ctx)
}
func (u *UserServer) Modify(ctx context.Context, req *userModel.ModifyInfo) error {
return u.userService.Modify(ctx, req)
}
func (u *UserServer) Disable(ctx context.Context, req *userModel.Enable) error {
return u.userService.Disable(ctx, req)
}
func (u *UserServer) Enable(ctx context.Context, req *userModel.Enable) error {
return u.userService.Enable(ctx, req)
}
func (u *UserServer) Search(ctx context.Context, query *userModel.Query) ([]userModel.User, error) {
query.Default()
return u.userService.Search(ctx, query)
}
func (u *UserServer) GetUser(ctx context.Context, req *userModel.GetUserReq) (userModel.User, error) {
return u.userService.GetUser(ctx, req)
}
func (u *UserServer) ResetPwd(ctx context.Context, req *userModel.ResetPwdReq) error {
return u.userService.ResetPwd(ctx, req)
}