Files
IUQT/acquaintances/biz/handler/user/user_service.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)
}