朋友圈表设计

This commit is contained in:
2025-07-22 18:25:12 +08:00
parent be93d7ef13
commit c0c8c6758a
15 changed files with 11953 additions and 18 deletions

View 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)
}