97 lines
3.3 KiB
Go
97 lines
3.3 KiB
Go
|
package visual
|
|||
|
|
|||
|
import (
|
|||
|
"context"
|
|||
|
"github.com/gogf/gf/v2/frame/g"
|
|||
|
)
|
|||
|
|
|||
|
// 新增形象进度
|
|||
|
func (v Visual) CreateVisualProgress(ctx context.Context, req *CreateVisualProgressReq) (res *CreateVisualProgressRes, err error) {
|
|||
|
res = &CreateVisualProgressRes{}
|
|||
|
_, err = g.Model("visual_progress").Ctx(ctx).Data(g.Map{
|
|||
|
"project_id": req.ProjectID,
|
|||
|
"reporter_id": req.ReporterID,
|
|||
|
"report_time": req.ReportTime,
|
|||
|
"title": req.Title,
|
|||
|
"progress_desc": req.ProgressDesc,
|
|||
|
"attachment_url": req.AttachmentURL,
|
|||
|
}).Insert()
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
return res, nil
|
|||
|
}
|
|||
|
|
|||
|
// 形象进度列表
|
|||
|
func (v Visual) GetVisualProgress(ctx context.Context, req *ReadVisualProgressReq) (res *ReadVisualProgressRes, err error) {
|
|||
|
res = &ReadVisualProgressRes{}
|
|||
|
offset := (req.Page - 1) * req.PageSize
|
|||
|
count, err := g.Model("visual_progress").Ctx(ctx).Count()
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
|
|||
|
err = g.Model("visual_progress").Ctx(ctx).
|
|||
|
Fields("sys_project.id, sys_project.project_name, user.user_nickname AS reporterName, visual_progress.*").
|
|||
|
// 连表查询项目ID、项目名称
|
|||
|
LeftJoin("sys_project on visual_progress.project_id = sys_project.id").
|
|||
|
LeftJoin("sys_user AS user on user.id = visual_progress.reporter_id").
|
|||
|
Where("visual_progress.project_id = ?", req.ProjectID).
|
|||
|
Where("visual_progress.title LIKE ?", "%"+req.Title+"%").
|
|||
|
Offset(int(offset)).Limit(int(req.PageSize)).
|
|||
|
Order("visual_progress.report_time DESC").
|
|||
|
Scan(&res.ProgressList)
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
res.Total = int64(count)
|
|||
|
return res, nil
|
|||
|
}
|
|||
|
|
|||
|
// 更新形象进度
|
|||
|
func (v Visual) UpdateVisualProgress(ctx context.Context, req *UpdateVisualProgressReq) (res *UpdateVisualProgressRes, err error) {
|
|||
|
res = &UpdateVisualProgressRes{}
|
|||
|
|
|||
|
_, err = g.Model("visual_progress").Ctx(ctx).Data(g.Map{
|
|||
|
"project_id": req.ProjectID,
|
|||
|
"reporter_id": req.ReporterID,
|
|||
|
"title": req.Title,
|
|||
|
"progress_desc": req.ProgressDesc,
|
|||
|
"attachment_url": req.AttachmentURL,
|
|||
|
}).Where("id", req.ID).Update()
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
return res, nil
|
|||
|
}
|
|||
|
|
|||
|
// 删除形象进度
|
|||
|
func (v Visual) DeleteVisualProgress(ctx context.Context, req *DeleteVisualProgressReq) (res *DeleteVisualProgressRes, err error) {
|
|||
|
res = &DeleteVisualProgressRes{}
|
|||
|
// 删除之前调用一个方法,获取当前登录用户的ID,如果是自己才可以删除
|
|||
|
_, err = g.Model("visual_progress").Ctx(ctx).Where("id", req.ID).Delete()
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
return res, nil
|
|||
|
}
|
|||
|
|
|||
|
// 根据ID查询形象进度详情
|
|||
|
func (v Visual) GetVisualProgressDetail(ctx context.Context, req *GetVisualProgressDetailReq) (res *GetVisualProgressDetailRes, err error) {
|
|||
|
res = &GetVisualProgressDetailRes{}
|
|||
|
// 查询项目基本信息
|
|||
|
err = g.Model("visual_progress").Ctx(ctx).
|
|||
|
Fields("sys_project.id, sys_project.project_name, user.user_nickname AS reporterName, visual_progress.*").
|
|||
|
// 连表查询项目ID、项目名称
|
|||
|
InnerJoin("sys_project on visual_progress.project_id = sys_project.id").
|
|||
|
// 连表查询上报人名字(暂未确定是哪张用户表,需要联查)
|
|||
|
InnerJoin("sys_user AS user on user.id = visual_progress.reporter_id").
|
|||
|
Where("visual_progress.id = ?", req.ID).
|
|||
|
Scan(&res.Detail)
|
|||
|
// 查询备注列表信息
|
|||
|
if err != nil {
|
|||
|
return nil, err
|
|||
|
}
|
|||
|
return res, nil
|
|||
|
}
|