+ WorkFlow Get()
This commit is contained in:
parent
30799d5c30
commit
c5b7bc3491
2 changed files with 48 additions and 5 deletions
|
|
@ -93,14 +93,21 @@ func (workflow *WorkFlow) Setting(id int) {}
|
|||
func (workflow *WorkFlow) SetupAPIs(id int) {}
|
||||
|
||||
// Get 读取当前工作流(未完成的)
|
||||
func (workflow *WorkFlow) Get(uid int, name string, id interface{}) map[string]interface{} {
|
||||
func (workflow *WorkFlow) Get(uid int, id interface{}) map[string]interface{} {
|
||||
wflow := gou.Select("xiang.workflow")
|
||||
hasUser := dbal.Raw(fmt.Sprintf("JSON_CONTAINS(users, '%d', '$')", uid))
|
||||
params := gou.QueryParam{
|
||||
Select: []interface{}{"*"},
|
||||
Select: []interface{}{
|
||||
"data_id", "id", "input", "name",
|
||||
"user_id", "users",
|
||||
"node_name", "node_status",
|
||||
"status",
|
||||
"updated_at", "created_at",
|
||||
},
|
||||
Wheres: []gou.QueryWhere{
|
||||
{Column: "name", Value: workflow.Name},
|
||||
{Column: "data_id", Value: id},
|
||||
{Column: "user_id", Value: uid},
|
||||
{Column: hasUser, Value: 1},
|
||||
{Column: "status", Value: "进行中"},
|
||||
},
|
||||
}
|
||||
|
|
@ -111,8 +118,9 @@ func (workflow *WorkFlow) Get(uid int, name string, id interface{}) map[string]i
|
|||
return map[string]interface{}{
|
||||
"name": workflow.Name,
|
||||
"data_id": id,
|
||||
"node_name": name,
|
||||
"node_name": workflow.Nodes[0].Name,
|
||||
"user_id": uid,
|
||||
"users": []interface{}{uid},
|
||||
"status": "进行中",
|
||||
"node_status": "进行中",
|
||||
"input": map[string]interface{}{},
|
||||
|
|
@ -128,7 +136,7 @@ func (workflow *WorkFlow) Save(uid int, name string, id interface{}, input Input
|
|||
Wheres: []gou.QueryWhere{
|
||||
{Column: "name", Value: workflow.Name},
|
||||
{Column: "data_id", Value: id},
|
||||
{Column: hasUser},
|
||||
{Column: hasUser, Value: 1},
|
||||
{Column: "status", Value: "进行中"},
|
||||
},
|
||||
Limit: 1,
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ func TestSave(t *testing.T) {
|
|||
|
||||
data := maps.Of(wflow).Dot()
|
||||
assert.Equal(t, int64(1), data.Get("id"))
|
||||
assert.Equal(t, "assign", data.Get("name"))
|
||||
assert.Equal(t, "选择商务负责人", data.Get("node_name"))
|
||||
assert.Equal(t, "进行中", data.Get("node_status"))
|
||||
assert.Equal(t, "进行中", data.Get("status"))
|
||||
|
|
@ -67,6 +68,7 @@ func TestSaveUpdate(t *testing.T) {
|
|||
|
||||
data := maps.Of(wflow).Dot()
|
||||
assert.Equal(t, int64(1), data.Get("id"))
|
||||
assert.Equal(t, "assign", data.Get("name"))
|
||||
assert.Equal(t, "选择商务负责人", data.Get("node_name"))
|
||||
assert.Equal(t, "进行中", data.Get("node_status"))
|
||||
assert.Equal(t, "进行中", data.Get("status"))
|
||||
|
|
@ -79,6 +81,39 @@ func TestSaveUpdate(t *testing.T) {
|
|||
capsule.Query().From("xiang_workflow").Truncate()
|
||||
}
|
||||
|
||||
func TestGet(t *testing.T) {
|
||||
assignFlow := Select("assign")
|
||||
assignFlow.Save(1, "选择商务负责人", 1, Input{
|
||||
Data: map[string]interface{}{"id": 1, "name": "云主机"},
|
||||
Form: map[string]interface{}{"biz_id": 1, "name": "张良明"},
|
||||
})
|
||||
wflow := assignFlow.Get(1, 1)
|
||||
data := maps.Of(wflow).Dot()
|
||||
assert.Equal(t, int64(1), data.Get("id"))
|
||||
assert.Equal(t, "assign", data.Get("name"))
|
||||
assert.Equal(t, "选择商务负责人", data.Get("node_name"))
|
||||
assert.Equal(t, "进行中", data.Get("node_status"))
|
||||
assert.Equal(t, "进行中", data.Get("status"))
|
||||
assert.Equal(t, int64(1), data.Get("user_id"))
|
||||
assert.Equal(t, []interface{}{float64(1)}, data.Get("users"))
|
||||
|
||||
// 清理数据
|
||||
capsule.Query().From("xiang_workflow").Truncate()
|
||||
}
|
||||
|
||||
func TestGetEmpty(t *testing.T) {
|
||||
assignFlow := Select("assign")
|
||||
wflow := assignFlow.Get(1, 1)
|
||||
data := maps.Of(wflow).Dot()
|
||||
assert.Equal(t, false, data.Has("id"))
|
||||
assert.Equal(t, "assign", data.Get("name"))
|
||||
assert.Equal(t, "选择商务负责人", data.Get("node_name"))
|
||||
assert.Equal(t, "进行中", data.Get("node_status"))
|
||||
assert.Equal(t, "进行中", data.Get("status"))
|
||||
assert.Equal(t, 1, data.Get("user_id"))
|
||||
assert.Equal(t, []interface{}{1}, data.Get("users"))
|
||||
}
|
||||
|
||||
func check(t *testing.T) {
|
||||
keys := []string{}
|
||||
for key, workflow := range WorkFlows {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue