Files
zmkgC/internal/app/system/controller/comments.go

109 lines
3.5 KiB
Go
Raw Normal View History

2025-07-07 20:11:59 +08:00
// ==========================================================================
// GFast自动生成controller操作代码。
// 生成日期2024-04-23 14:47:24
// 生成路径: internal/app/system/controller/comments.go
// 生成人gfast
// desc:App通知公告评论
// company:云南奇讯科技有限公司
// ==========================================================================
package controller
import (
"context"
"github.com/gogf/gf/v2/frame/g"
"github.com/tiger1103/gfast/v3/api/v1/system"
"github.com/tiger1103/gfast/v3/internal/app/system/dao"
ct "github.com/tiger1103/gfast/v3/internal/app/system/logic/context"
"github.com/tiger1103/gfast/v3/internal/app/system/model/do"
"github.com/tiger1103/gfast/v3/internal/app/system/service"
"github.com/tiger1103/gfast/v3/library/liberr"
)
type commentsController struct {
BaseController
}
var Comments = new(commentsController)
// List 列表
func (c *commentsController) List(ctx context.Context, req *system.CommentsSearchReq) (res *system.CommentsSearchRes, err error) {
res, err = service.Comments().List(ctx, req)
return
}
// Get 获取App通知公告评论
func (c *commentsController) Get(ctx context.Context, req *system.CommentsGetReq) (res *system.CommentsGetRes, err error) {
res = new(system.CommentsGetRes)
res.CommentsInfoRes, err = service.Comments().GetById(ctx, req.Id)
return
}
// Add 添加App通知公告评论
func (c *commentsController) Add(ctx context.Context, req *system.CommentsAddReq) (res *system.CommentsAddRes, err error) {
err = service.Comments().Add(ctx, req)
return
}
// Edit 修改App通知公告评论
func (c *commentsController) Edit(ctx context.Context, req *system.CommentsEditReq) (res *system.CommentsEditRes, err error) {
err = service.Comments().Edit(ctx, req)
return
}
// Delete 删除App通知公告评论
func (c *commentsController) Delete(ctx context.Context, req *system.CommentsDeleteReq) (res *system.CommentsDeleteRes, err error) {
err = service.Comments().Delete(ctx, req.Ids)
return
}
// Publish 通知公告发布一条评论
func (c *commentsController) Publish(ctx context.Context, req *system.CommentsPublishReq) (*system.CommentsPublishRes, error) {
// 获取用户的主键ID
userID := ct.New().GetUserId(ctx)
err := g.Try(ctx, func(ctx context.Context) {
_, err := dao.Comments.Ctx(ctx).Insert(do.Comments{
NotificationId: req.NotificationId, // 关联的通知ID
CommentText: req.CommentText, // 评论内容
CommentId: userID, // 用户ID
})
liberr.ErrIsNil(ctx, err, "添加评论失败")
})
liberr.ErrIsNil(ctx, err)
return &system.CommentsPublishRes{}, nil
}
// 获取指定一个通知公告的评论列表
func (c *commentsController) GetListByNotificationId(ctx context.Context, req *system.CommentsGetListByNotificationIdReq) (res *system.CommentsGetListByNotificationIdRes, err error) {
res = new(system.CommentsGetListByNotificationIdRes)
err = g.Try(ctx, func(ctx context.Context) {
m := dao.Comments.Ctx(ctx).WithAll()
// 获取总页数
res.Total, err = m.Count()
liberr.ErrIsNil(ctx, err, "获取数据失败")
res.CurrentPage = req.PageNum
if req.PageNum == 0 {
req.PageNum = 1
}
if req.PageSize == 0 {
req.PageSize = 30
}
m = m.As("cs").LeftJoin("sys_user as su", "su.id = cs.comment_id").
Where("cs.notification_id", req.NotificationId)
err = m.Page(req.PageNum, req.PageSize).Order("id asc").
Fields(`cs.id,notification_id,comment_text,comment_id,cs.created_at,su.user_nickname`).Scan(&res.List)
liberr.ErrIsNil(ctx, err, "获取数据失败")
})
return
}