75 lines
2.3 KiB
Go
75 lines
2.3 KiB
Go
package process
|
|
|
|
import (
|
|
"context"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
ct "github.com/tiger1103/gfast/v3/internal/app/system/logic/context"
|
|
)
|
|
|
|
func (p ProcessApi) CreateProcess(ctx context.Context, req *CreateProcessReq) (res *CreateProcessRes, err error) {
|
|
res = new(CreateProcessRes)
|
|
// 获取当前登陆用户的ID
|
|
userID := ct.New().GetUserId(ctx)
|
|
param := g.Map{
|
|
"stage": req.Stage,
|
|
"project_id": req.ProjectId,
|
|
"percentage": req.Percentage,
|
|
"complete_time": req.CompleteTime,
|
|
"notes": req.Notes,
|
|
"created_by": userID,
|
|
}
|
|
// 插入数据
|
|
_, err = g.Model("process").Ctx(ctx).Insert(param)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return res, nil
|
|
}
|
|
|
|
// 根据项目列表查询里程碑数据
|
|
func (p ProcessApi) GetProcessList(ctx context.Context, req *ProcessListReq) (res *ProcessListRes, err error) {
|
|
res = new(ProcessListRes)
|
|
err = g.Model("process").Ctx(ctx).Fields("process.*,sys_user.user_nickname AS createdByName").
|
|
LeftJoin("sys_user on sys_user.id = process.created_by").
|
|
Where("project_id = ?", req.ProjectId).Page(req.Page, req.PageSize).Scan(&res.Processes)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return res, nil
|
|
}
|
|
|
|
func (p ProcessApi) UpdateProcess(ctx context.Context, req *UpdateProcessReq) (res *UpdateProcessRes, err error) {
|
|
res = new(UpdateProcessRes)
|
|
_, err = g.Model("process").Ctx(ctx).Data(g.Map{
|
|
"stage": req.Stage,
|
|
"project_id": req.ProjectId,
|
|
"percentage": req.Percentage,
|
|
"complete_time": req.CompleteTime,
|
|
"notes": req.Notes,
|
|
}).Where("process_id = ?", req.ProcessID).Update()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return res, nil
|
|
}
|
|
|
|
func (p ProcessApi) DeleteProcess(ctx context.Context, req *DeleteProcessReq) (res *DeleteProcessRes, err error) {
|
|
res = new(DeleteProcessRes)
|
|
_, err = g.Model("process").Ctx(ctx).Where("process_id", req.ProcessID).Delete()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return res, nil
|
|
}
|
|
|
|
func (p ProcessApi) ProcessDetail(ctx context.Context, req *ProcessDetailReq) (res *ProcessDetailRes, err error) {
|
|
res = new(ProcessDetailRes)
|
|
g.Model("process").Ctx(ctx).Fields("process.*,sys_user.user_nickname AS createdByName").
|
|
InnerJoin("sys_user on sys_user.id = process.created_by").
|
|
Scan(&res.ProcessInfo)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return res, nil
|
|
}
|