初始
This commit is contained in:
115
api/app/visual_remark/service.go
Normal file
115
api/app/visual_remark/service.go
Normal file
@ -0,0 +1,115 @@
|
||||
package visual_remark
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/tiger1103/gfast/v3/api/v1/system"
|
||||
ct "github.com/tiger1103/gfast/v3/internal/app/system/logic/context"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/service"
|
||||
)
|
||||
|
||||
// 列表请求
|
||||
func (v VisualRemark) ListRemarks(ctx context.Context, req *ListRemarksReq) (res *ListRemarksRes, err error) {
|
||||
|
||||
res = &ListRemarksRes{}
|
||||
err = g.Model("visual_progress_remark AS remark").Ctx(ctx).
|
||||
Fields("remark.*,visual.title AS visualProgressTitle, user.user_nickname AS Username, cuser.head_icon AS Avatar").
|
||||
// 连表查询形象进度表得到形象进度标题
|
||||
LeftJoin("visual_progress AS visual", "visual.id = remark.visual_progress_id").
|
||||
// 连表查询评论人的名字(暂未确定是哪张用户表,需要联查)
|
||||
LeftJoin("sys_user AS user on user.id = remark.user_id").
|
||||
// 头像需要从另外一张表查询出来
|
||||
LeftJoin("bus_construction_user AS cuser on cuser.phone = user.mobile").
|
||||
Where("visual.id = ? AND cuser.deleted_at is null", req.VisualID).
|
||||
Scan(&res.VisualProgressRemarks)
|
||||
|
||||
g.Dump(res.VisualProgressRemarks)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
// 获取详情
|
||||
func (v VisualRemark) GetRemarkDetail(ctx context.Context, req *GetRemarkDetailReq) (res *GetRemarkDetailRes, err error) {
|
||||
res = &GetRemarkDetailRes{}
|
||||
err = g.Model("visual_progress_remark AS remark").Ctx(ctx).
|
||||
Fields("remark.*,visual.title AS visualProgressTitle, user.user_nickname AS Username, user.avatar AS Avatar").
|
||||
// 连表查询形象进度表得到形象进度标题
|
||||
LeftJoin("visual_progress AS visual on visual.id = remark.visual_progress_id").
|
||||
// 连表查询评论人的名字
|
||||
LeftJoin("sys_user AS user on user.id = remark.user_id").
|
||||
Where("remark.id = ? AND cuser.deleted_at is null", req.ID).
|
||||
Scan(&res.VisualProgressRemark)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
// 新增形象进度
|
||||
func (v VisualRemark) CreateRemark(ctx context.Context, req *CreateRemarkReq) (res *CreateRemarkRes, err error) {
|
||||
res = &CreateRemarkRes{}
|
||||
_, err = g.Model("visual_progress_remark").Ctx(ctx).Data(g.Map{
|
||||
"visual_progress_id": req.VisualProgressID,
|
||||
"comment": req.Comment,
|
||||
"user_id": req.UserID,
|
||||
}).Insert()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var VisualProgressVo struct {
|
||||
ProjectId int `json:"projectId"`
|
||||
ReporterId int `json:"reporterId"`
|
||||
}
|
||||
// 根据形象进度ID查询项目ID、发布者ID
|
||||
g.Model("visual_progress").Fields("project_id AS ProjectId", "reporter_id AS ReporterId").
|
||||
Where("id", req.VisualProgressID).Scan(&VisualProgressVo)
|
||||
|
||||
// 新增之后通知对应的发起人
|
||||
param := &system.CommentListAddReq{
|
||||
ProjectId: VisualProgressVo.ProjectId,
|
||||
Receiver: VisualProgressVo.ReporterId,
|
||||
Content: req.Comment,
|
||||
Sender: req.UserID,
|
||||
}
|
||||
service.CommentList().Add(ctx, param)
|
||||
return res, nil
|
||||
}
|
||||
|
||||
// 更新形象备注
|
||||
func (v VisualRemark) UpdateRemark(ctx context.Context, req *UpdateRemarkReq) (res *UpdateRemarkRes, err error) {
|
||||
res = &UpdateRemarkRes{}
|
||||
_, err = g.Model("visual_progress_remark").Ctx(ctx).Data(g.Map{
|
||||
"visual_progress_id": req.VisualProgressID,
|
||||
"comment": req.Comment,
|
||||
"user_id": req.UserID,
|
||||
}).Where("id", req.ID).Update()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res, nil
|
||||
}
|
||||
|
||||
// 删除形象备注
|
||||
func (v VisualRemark) DeleteRemark(ctx context.Context, req *DeleteRemarkReq) (res *DeleteRemarkRes, err error) {
|
||||
userID := ct.New().GetUserId(ctx)
|
||||
var VisualProgressRemarkVo struct {
|
||||
ID int `json:"id"`
|
||||
UserID uint64 `json:"userId"`
|
||||
}
|
||||
g.Model("visual_progress_remark").Ctx(ctx).Where("id", req.ID).Scan(&VisualProgressRemarkVo)
|
||||
// 当前用户等于评论的发起人才可以删除自己的评论
|
||||
if userID == VisualProgressRemarkVo.UserID {
|
||||
res = &DeleteRemarkRes{}
|
||||
_, err = g.Model("visual_progress_remark").Ctx(ctx).Where("id", req.ID).Delete()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
return nil, errors.New("只能删除自己的评论信息")
|
||||
}
|
||||
return
|
||||
}
|
Reference in New Issue
Block a user