package fixtures import ( "git.fsdpf.net/go/condflow" "git.fsdpf.net/go/reflux" "git.fsdpf.net/go/reflux/valuex" "git.fsdpf.net/go/req" ) // ApproveExecutor 审批执行器 type ApproveExecutor struct { res req.Resource } // NewApproveExecutor 创建审批执行器 func NewApproveExecutor(res req.Resource) *ApproveExecutor { return &ApproveExecutor{res: res} } func (ae *ApproveExecutor) Res() req.Resource { return ae.res } // AutoApprove 自动审批 func (ae *ApproveExecutor) AutoApprove(ctx condflow.Context, cfg valuex.Accessor) (reflux.R, error) { return reflux.New(map[string]any{ "status": "approved", "method": "auto", }), nil } // Manager 经理审批 func (ae *ApproveExecutor) Manager(ctx condflow.Context, cfg valuex.Accessor) (reflux.R, error) { return reflux.New(map[string]any{ "status": "pending", "approver": "manager", }), nil } // Director 总监审批 func (ae *ApproveExecutor) Director(ctx condflow.Context, cfg valuex.Accessor) (reflux.R, error) { return reflux.New(map[string]any{ "status": "pending", "approver": "director", }), nil } // Reject 拒绝 func (ae *ApproveExecutor) Reject(ctx condflow.Context, cfg valuex.Accessor) (reflux.R, error) { reason, _ := cfg.Lookup("reason") return reflux.New(map[string]any{ "status": "rejected", "reason": reason.String(), }), nil }