184 lines
4.5 KiB
Go
184 lines
4.5 KiB
Go
// Code generated by hertz generator.
|
|
|
|
package user
|
|
|
|
import (
|
|
"acquaintances/biz/dal/mysql"
|
|
"acquaintances/biz/model"
|
|
user "acquaintances/biz/model/user"
|
|
"acquaintances/biz/utils"
|
|
"context"
|
|
"github.com/cloudwego/hertz/pkg/app"
|
|
"github.com/cloudwego/hertz/pkg/common/hlog"
|
|
"github.com/cloudwego/hertz/pkg/protocol/consts"
|
|
"strconv"
|
|
)
|
|
|
|
// UpdateUser .
|
|
// @router /v1/user/update/ [PUT]
|
|
func UpdateUser(ctx context.Context, c *app.RequestContext) {
|
|
var err error
|
|
var req user.UpdateUserRequest
|
|
err = c.BindAndValidate(&req)
|
|
if err != nil {
|
|
c.JSON(consts.StatusBadRequest, err.Error())
|
|
return
|
|
}
|
|
if err = mysql.UpdatesUser(&req); err != nil {
|
|
hlog.Error(err.Error())
|
|
c.JSON(consts.StatusInternalServerError, &user.CreateUserResponse{Code: user.Code_DBErr, Msg: err.Error()})
|
|
return
|
|
}
|
|
resp := new(user.UpdateUserResponse)
|
|
|
|
c.JSON(consts.StatusOK, resp)
|
|
}
|
|
|
|
// DeleteUser .
|
|
// @router /v1/user/delete/ [delete]
|
|
func DeleteUser(ctx context.Context, c *app.RequestContext) {
|
|
var err error
|
|
var req user.DeleteUserRequest
|
|
err = c.BindAndValidate(&req)
|
|
if err != nil {
|
|
c.JSON(consts.StatusBadRequest, err.Error())
|
|
return
|
|
}
|
|
if err = mysql.DeleteUser(req.UserID); err != nil {
|
|
c.JSON(consts.StatusInternalServerError, err.Error())
|
|
return
|
|
}
|
|
resp := new(user.DeleteUserResponse)
|
|
|
|
c.JSON(consts.StatusOK, resp)
|
|
}
|
|
|
|
// QueryUser .
|
|
// @router /v1/user/[GET]
|
|
func InfoUser(ctx context.Context, c *app.RequestContext) {
|
|
var err error
|
|
var req user.InfoUserRequest
|
|
err = c.BindAndValidate(&req)
|
|
if err != nil {
|
|
c.JSON(consts.StatusBadRequest, err.Error())
|
|
return
|
|
}
|
|
hlog.Infof("InfoUser(%+v)", req)
|
|
data, err := mysql.InfoUser(req.UserID)
|
|
if err != nil {
|
|
c.JSON(consts.StatusInternalServerError, err.Error())
|
|
return
|
|
}
|
|
resData := new(user.UserInfoReq)
|
|
resData.UserName = data.UserName
|
|
resData.Gender = data.Gender
|
|
resData.Age = int64(data.Age)
|
|
resData.Introduce = data.Introduce
|
|
resData.AvatarImageURL = data.AvatarImageURL
|
|
if data.Birthday != nil {
|
|
resData.Birthday = data.Birthday.String()
|
|
}
|
|
|
|
resData.Area = int64(data.Area)
|
|
resData.Mobile = data.Mobile
|
|
resData.Email = data.UserEmail
|
|
resData.Alias = data.Alias
|
|
resData.Address = data.Address
|
|
resData.UserID = data.UserID
|
|
|
|
resp := new(user.QueryUserResponse)
|
|
resp.UserInfo = resData
|
|
|
|
c.JSON(consts.StatusOK, resp)
|
|
}
|
|
|
|
// CreateUser .
|
|
// @router /v1/user/create/ [POST]
|
|
func CreateUser(ctx context.Context, c *app.RequestContext) {
|
|
var err error
|
|
var req user.CreateUserRequest
|
|
err = c.BindAndValidate(&req)
|
|
if err != nil {
|
|
c.JSON(consts.StatusBadRequest, err.Error())
|
|
return
|
|
}
|
|
userId, err := utils.GetID()
|
|
if err != nil {
|
|
c.JSON(consts.StatusInternalServerError, err.Error())
|
|
return
|
|
}
|
|
if err = mysql.CreateUser([]*model.User{
|
|
{
|
|
UserID: strconv.FormatInt(userId, 10),
|
|
UserName: req.Name,
|
|
Gender: req.Gender,
|
|
Age: uint8(req.Age),
|
|
Mobile: req.Mobile,
|
|
Area: uint8(req.Area),
|
|
UserPassword: req.UserPassword,
|
|
},
|
|
}); err != nil {
|
|
c.JSON(consts.StatusInternalServerError, &user.CreateUserResponse{Code: user.Code_DBErr, Msg: err.Error()})
|
|
return
|
|
}
|
|
resp := new(user.CreateUserResponse)
|
|
|
|
c.JSON(consts.StatusOK, resp)
|
|
}
|
|
|
|
// FindUser .
|
|
// @router /v1/user/find/ [GET]
|
|
func FindUser(ctx context.Context, c *app.RequestContext) {
|
|
var err error
|
|
var req user.FindUserRequest
|
|
err = c.BindAndValidate(&req)
|
|
if err != nil {
|
|
c.String(consts.StatusBadRequest, err.Error())
|
|
return
|
|
}
|
|
data, err := mysql.FindUser(&req.Keyword)
|
|
if err != nil {
|
|
c.JSON(consts.StatusInternalServerError, err.Error())
|
|
return
|
|
}
|
|
resp := new(user.FindUserResponse)
|
|
resp.UserInfo = data
|
|
c.JSON(consts.StatusOK, resp)
|
|
}
|
|
|
|
// LoginUser .
|
|
// @router /v1/user/login/ [POST]
|
|
func LoginUser(ctx context.Context, c *app.RequestContext) {
|
|
var err error
|
|
var req user.LoginUserRequest
|
|
err = c.BindAndValidate(&req)
|
|
if err != nil {
|
|
c.JSON(consts.StatusBadRequest, err.Error())
|
|
return
|
|
}
|
|
data, err := mysql.CheckLogin(req.UserName, req.Password)
|
|
if err != nil {
|
|
c.JSON(consts.StatusBadRequest, err.Error())
|
|
return
|
|
}
|
|
resp := new(user.LoginUserResponse)
|
|
resData := new(user.UserInfoReq)
|
|
resData.UserName = data.UserName
|
|
resData.Gender = data.Gender
|
|
resData.Age = int64(data.Age)
|
|
resData.Introduce = data.Introduce
|
|
resData.AvatarImageURL = data.AvatarImageURL
|
|
if data.Birthday != nil {
|
|
resData.Birthday = data.Birthday.String()
|
|
}
|
|
|
|
resData.Area = int64(data.Area)
|
|
resData.Mobile = data.Mobile
|
|
resData.Email = data.UserEmail
|
|
resData.Alias = data.Alias
|
|
resData.Address = data.Address
|
|
resData.UserID = data.UserID
|
|
resp.UserInfo = resData
|
|
c.JSON(consts.StatusOK, resp)
|
|
}
|