| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- package user
- import (
- "context"
- "UserManager/internal/model"
- "UserManager/internal/service"
- "github.com/gogf/gf/v2/errors/gerror"
- "github.com/gogf/gf/v2/frame/g"
- )
- type cUser struct{}
- var User = cUser{} // 全局实例,方便路由绑定
- // RegisterReq 接收参数
- type RegisterReq struct {
- g.Meta `path:"/register" method:"post"`
- Passport string `v:"required|length:3,16"`
- Password string `v:"required|length:6,20"`
- Nickname string
- }
- type RegisterRes struct{} // 空响应
- // ListReq 用户列表请求
- type ListReq struct {
- g.Meta `path:"/list" method:"get"`
- Page int `d:"1" v:"min:1"`
- PageSize int `d:"10" v:"min:1|max:100"`
- Passport string
- Nickname string
- }
- // ListRes 用户列表响应
- type ListRes struct {
- List []*model.UserOutput `json:"list"`
- Total int `json:"total"`
- Page int `json:"page"`
- }
- // GetByPassportReq 根据账号查询请求
- type GetByPassportReq struct {
- g.Meta `path:"/get" method:"get"`
- Passport string `v:"required"`
- }
- // GetByPassportRes 根据账号查询响应
- type GetByPassportRes *model.UserOutput
- func (c *cUser) Register(ctx context.Context, req *RegisterReq) (res *RegisterRes, err error) {
- err = service.User().Register(ctx, model.UserRegisterInput{
- Passport: req.Passport,
- Password: req.Password,
- Nickname: req.Nickname,
- })
- return
- }
- func (c *cUser) List(ctx context.Context, req *ListReq) (res *ListRes, err error) {
- output, err := service.User().GetList(ctx, model.UserListInput{
- Page: req.Page,
- PageSize: req.PageSize,
- Passport: req.Passport,
- Nickname: req.Nickname,
- })
- if err != nil {
- return nil, err
- }
- return &ListRes{
- List: output.List,
- Total: output.Total,
- Page: output.Page,
- }, nil
- }
- func (c *cUser) GetByPassport(ctx context.Context, req *GetByPassportReq) (res *GetByPassportRes, err error) {
- output, err := service.User().GetByPassport(ctx, req.Passport)
- if err != nil {
- return nil, err
- }
- return (*GetByPassportRes)(&output), nil
- }
- type LoginReq struct {
- g.Meta `path:"/login" method:"post"`
- Passport string `v:"required" json:"passport"`
- Password string `v:"required" json:"password"`
- }
- // LoginRes 登录响应
- type LoginRes struct {
- Token string `json:"token"`
- UserInfo *model.UserOutput `json:"user_info"`
- }
- func (c *cUser) Login(ctx context.Context, req *LoginReq) (res *LoginRes, err error) {
- output, err := service.User().Login(ctx, model.UserLoginInput{
- Passport: req.Passport,
- Password: req.Password,
- })
- if err != nil {
- // 在这里统一转换错误信息
- return nil, gerror.New("登录失败,请检查账号密码")
- }
- return &LoginRes{
- Token: output.Token,
- UserInfo: output.UserInfo,
- }, nil
- }
|