+ 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) {}
|
func (workflow *WorkFlow) SetupAPIs(id int) {}
|
||||||
|
|
||||||
// Get 读取当前工作流(未完成的)
|
// 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")
|
wflow := gou.Select("xiang.workflow")
|
||||||
|
hasUser := dbal.Raw(fmt.Sprintf("JSON_CONTAINS(users, '%d', '$')", uid))
|
||||||
params := gou.QueryParam{
|
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{
|
Wheres: []gou.QueryWhere{
|
||||||
{Column: "name", Value: workflow.Name},
|
{Column: "name", Value: workflow.Name},
|
||||||
{Column: "data_id", Value: id},
|
{Column: "data_id", Value: id},
|
||||||
{Column: "user_id", Value: uid},
|
{Column: hasUser, Value: 1},
|
||||||
{Column: "status", Value: "进行中"},
|
{Column: "status", Value: "进行中"},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
@ -111,8 +118,9 @@ func (workflow *WorkFlow) Get(uid int, name string, id interface{}) map[string]i
|
||||||
return map[string]interface{}{
|
return map[string]interface{}{
|
||||||
"name": workflow.Name,
|
"name": workflow.Name,
|
||||||
"data_id": id,
|
"data_id": id,
|
||||||
"node_name": name,
|
"node_name": workflow.Nodes[0].Name,
|
||||||
"user_id": uid,
|
"user_id": uid,
|
||||||
|
"users": []interface{}{uid},
|
||||||
"status": "进行中",
|
"status": "进行中",
|
||||||
"node_status": "进行中",
|
"node_status": "进行中",
|
||||||
"input": map[string]interface{}{},
|
"input": map[string]interface{}{},
|
||||||
|
|
@ -128,7 +136,7 @@ func (workflow *WorkFlow) Save(uid int, name string, id interface{}, input Input
|
||||||
Wheres: []gou.QueryWhere{
|
Wheres: []gou.QueryWhere{
|
||||||
{Column: "name", Value: workflow.Name},
|
{Column: "name", Value: workflow.Name},
|
||||||
{Column: "data_id", Value: id},
|
{Column: "data_id", Value: id},
|
||||||
{Column: hasUser},
|
{Column: hasUser, Value: 1},
|
||||||
{Column: "status", Value: "进行中"},
|
{Column: "status", Value: "进行中"},
|
||||||
},
|
},
|
||||||
Limit: 1,
|
Limit: 1,
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@ func TestSave(t *testing.T) {
|
||||||
|
|
||||||
data := maps.Of(wflow).Dot()
|
data := maps.Of(wflow).Dot()
|
||||||
assert.Equal(t, int64(1), data.Get("id"))
|
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_name"))
|
||||||
assert.Equal(t, "进行中", data.Get("node_status"))
|
assert.Equal(t, "进行中", data.Get("node_status"))
|
||||||
assert.Equal(t, "进行中", data.Get("status"))
|
assert.Equal(t, "进行中", data.Get("status"))
|
||||||
|
|
@ -67,6 +68,7 @@ func TestSaveUpdate(t *testing.T) {
|
||||||
|
|
||||||
data := maps.Of(wflow).Dot()
|
data := maps.Of(wflow).Dot()
|
||||||
assert.Equal(t, int64(1), data.Get("id"))
|
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_name"))
|
||||||
assert.Equal(t, "进行中", data.Get("node_status"))
|
assert.Equal(t, "进行中", data.Get("node_status"))
|
||||||
assert.Equal(t, "进行中", data.Get("status"))
|
assert.Equal(t, "进行中", data.Get("status"))
|
||||||
|
|
@ -79,6 +81,39 @@ func TestSaveUpdate(t *testing.T) {
|
||||||
capsule.Query().From("xiang_workflow").Truncate()
|
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) {
|
func check(t *testing.T) {
|
||||||
keys := []string{}
|
keys := []string{}
|
||||||
for key, workflow := range WorkFlows {
|
for key, workflow := range WorkFlows {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue