init: 条件流引擎初始提交
This commit is contained in:
Vendored
+55
@@ -0,0 +1,55 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user