朋友圈表设计
This commit is contained in:
217
acquaintances/biz/handler/user/moments_service.go
Normal file
217
acquaintances/biz/handler/user/moments_service.go
Normal file
@@ -0,0 +1,217 @@
|
||||
// Code generated by hertz generator.
|
||||
|
||||
package user
|
||||
|
||||
import (
|
||||
"acquaintances/biz/dal/mysql"
|
||||
"acquaintances/biz/model"
|
||||
"context"
|
||||
|
||||
user "acquaintances/biz/model/user"
|
||||
"github.com/cloudwego/hertz/pkg/app"
|
||||
"github.com/cloudwego/hertz/pkg/protocol/consts"
|
||||
)
|
||||
|
||||
// CreateMoment 创建朋友圈动态
|
||||
// @router /v1/Moments/ [POST]
|
||||
func CreateMoment(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req user.CreateMomentRequest
|
||||
|
||||
// 绑定并验证请求参数
|
||||
if err = c.BindAndValidate(&req); err != nil {
|
||||
c.String(consts.StatusBadRequest, "请求参数错误: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
// 验证用户是否存在(实际项目中应通过token获取用户ID并验证)
|
||||
exists, err := mysql.CheckUserExists(req.UserID)
|
||||
if err != nil {
|
||||
c.String(consts.StatusInternalServerError, "查询用户信息失败: %v", err)
|
||||
return
|
||||
}
|
||||
if !exists {
|
||||
c.String(consts.StatusForbidden, "用户不存在")
|
||||
return
|
||||
}
|
||||
|
||||
// 构建朋友圈动态数据
|
||||
moment := model.Moment{
|
||||
UserID: req.UserID,
|
||||
Content: req.Content,
|
||||
Visibility: uint8(req.Visibility),
|
||||
Location: req.Location,
|
||||
Status: 1, // 默认状态为正常
|
||||
}
|
||||
|
||||
// 保存动态到数据库
|
||||
if err = mysql.SaveMomentWithImages(&moment, req.ImageURLs); err != nil {
|
||||
c.JSON(consts.StatusInternalServerError, &user.CreateMomentResponse{Code: user.Code_DBErr, Msg: err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
// 构建响应
|
||||
resp := new(user.CreateMomentResponse)
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// ListMoments .
|
||||
// @router /v1/Moments/list/ [GET]
|
||||
func ListMoments(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req user.ListMomentsRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
c.String(consts.StatusBadRequest, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
resp := new(user.ListMomentsResponse)
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// ListMomentsAppoint .
|
||||
// @router /v1/Moments/user/list/ [GET]
|
||||
func ListMomentsAppoint(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req user.ListMomentsAppointRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
c.String(consts.StatusBadRequest, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
resp := new(user.ListMomentsAppointResponse)
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// GetMoment .
|
||||
// @router /v1/Moments/info/ [GET]
|
||||
func GetMoment(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req user.GetMomentRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
c.String(consts.StatusBadRequest, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
resp := new(user.GetMomentResponse)
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// DeleteMoment .
|
||||
// @router /v1/Moments/ [DELETE]
|
||||
func DeleteMoment(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req user.DeleteMomentRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
c.String(consts.StatusBadRequest, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
resp := new(user.DeleteMomentResponse)
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// LikeMoment .
|
||||
// @router /v1/Moments/like/ [POST]
|
||||
func LikeMoment(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req user.LikeMomentRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
c.String(consts.StatusBadRequest, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
resp := new(user.LikeMomentResponse)
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// UnlikeMoment .
|
||||
// @router /v1/Moments/dislike/ [POST]
|
||||
func UnlikeMoment(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req user.UnlikeMomentRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
c.String(consts.StatusBadRequest, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
resp := new(user.UnlikeMomentResponse)
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// ListMomentLikes .
|
||||
// @router /v1/Moments/like/list/ [GET]
|
||||
func ListMomentLikes(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req user.ListMomentLikesRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
c.String(consts.StatusBadRequest, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
resp := new(user.ListMomentLikesResponse)
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// CommentMoment .
|
||||
// @router /v1/Moments/comment/ [POST]
|
||||
func CommentMoment(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req user.CommentMomentRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
c.String(consts.StatusBadRequest, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
resp := new(user.CommentMomentResponse)
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// ListMomentComments .
|
||||
// @router /v1/Moments/comment/list/ [GET]
|
||||
func ListMomentComments(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req user.ListMomentCommentsRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
c.String(consts.StatusBadRequest, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
resp := new(user.ListMomentCommentsResponse)
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
||||
|
||||
// DeleteComment .
|
||||
// @router /v1/Moments/comment/ [DELETE]
|
||||
func DeleteComment(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req user.DeleteCommentRequest
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
c.String(consts.StatusBadRequest, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
resp := new(user.DeleteCommentResponse)
|
||||
|
||||
c.JSON(consts.StatusOK, resp)
|
||||
}
|
Reference in New Issue
Block a user