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 }