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

67 lines
1.4 KiB
Go

package user
import (
"busniess-user-center/internal/models"
"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))
}
func (u *UserServer) Add(ctx context.Context, req *models.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 := models.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)
}