1
0
forked from x/ContextOS

tce add mdb.set

This commit is contained in:
shaoying 2018-10-18 21:52:07 +08:00
parent 5f328b5bc7
commit 10755ac5e2
3 changed files with 55 additions and 17 deletions

View File

@ -57,6 +57,8 @@ let g:syntastic_quiet_messages = { "regex": [
\ "defined outside __init__",
\ "Catching too general exception Exception",
\ "Exactly one space required before assignment",
\ "Too many lines in module",
\ "Invalid constant name",
\ ] }
Plug 'Valloric/YouCompleteMe'
@ -136,6 +138,7 @@ autocmd BufReadPost * normal `"
autocmd BufNewFile,BufReadPost *.shy set filetype=shy
autocmd BufNewFile,BufReadPost *.shy set commentstring=#%s
autocmd BufNewFile,BufReadPost *.conf set filetype=nginx
autocmd BufNewFile,BufReadPost *.go set foldmethod=syntax
command! RR wa | source ~/.vimrc |e
source ~/.vim_local

View File

@ -3013,15 +3013,17 @@ var Index = &Context{Name: "ctx", Help: "模块中心",
save := map[string]interface{}{}
if action == "load" {
f, e := os.Open(which)
m.Assert(e)
if e != nil {
return
}
defer f.Close()
de := json.NewDecoder(f)
de.Decode(&save)
}
sort_field := m.Option("sort_field")
sort_order := m.Option("sort_order")
// sort_field := m.Option("sort_field")
// sort_order := m.Option("sort_order")
m.BackTrace(func(m *Message) bool {
for k, v := range m.target.Configs {
switch action {
@ -3093,17 +3095,20 @@ var Index = &Context{Name: "ctx", Help: "模块中心",
}
m.Meta["append"] = append(m.Meta["append"], k)
}
m.Log("fuck", "what %v", fields)
switch val := value.(type) {
case map[string]interface{}:
m.Add("append", "index", "0")
for k, v := range val {
if len(fields) == 0 || fields[k] {
m.Add("append", k, v)
switch value := v.(type) {
case float64:
m.Add("append", k, fmt.Sprintf("%d", int(value)))
default:
m.Add("append", k, fmt.Sprintf("%v", value))
}
}
}
m.Log("fuck", "what %v", m.Meta)
case map[string]string:
m.Add("append", "index", "0")
for k, v := range val {
@ -3151,16 +3156,17 @@ var Index = &Context{Name: "ctx", Help: "模块中心",
return all
})
if m.Sort(sort_field, sort_order); m.Has("index") {
for i := 0; i < len(m.Meta["index"]); i++ {
m.Meta["index"][i] = fmt.Sprintf("%d", i+offset)
}
}
if m.Has("select") {
m.Echo(m.Cap(m.Meta["select"][2], m.Meta[m.Meta["select"][1]][m.Optioni("select")]))
} else {
m.Table()
}
m.Table()
// if m.Sort(sort_field, sort_order); m.Has("index") {
// for i := 0; i < len(m.Meta["index"]); i++ {
// m.Meta["index"][i] = fmt.Sprintf("%d", i+offset)
// }
// }
// if m.Has("select") {
// m.Echo(m.Cap(m.Meta["select"][2], m.Meta[m.Meta["select"][1]][m.Optioni("select")]))
// } else {
// m.Table()
// }
switch action {
case "save":
@ -3456,7 +3462,7 @@ var Index = &Context{Name: "ctx", Help: "模块中心",
m.Echo(arg[0], values...)
m.Append("format", m.Result(0))
}},
"select": &Command{Name: "select key value", Form: map[string]int{"order": 2, "limit": 1, "offset": 1}, Help: "选取数据", Hand: func(m *Message, c *Context, key string, arg ...string) {
"select": &Command{Name: "select key value", Form: map[string]int{"order": 2, "limit": 1, "offset": 1, "vertical": 1}, Help: "选取数据", Hand: func(m *Message, c *Context, key string, arg ...string) {
msg := m.Spawn()
offset := 0
limit := 10
@ -3482,6 +3488,20 @@ var Index = &Context{Name: "ctx", Help: "模块中心",
if m.Set("append").Copy(msg, "append"); m.Has("order") {
m.Sort(m.Option("order"), m.Meta["order"][1])
}
if m.Has("vertical") {
msg := m.Spawn()
nrow := len(m.Meta[m.Meta["append"][0]])
sort.Strings(m.Meta["append"])
for i := 0; i < nrow; i++ {
for _, k := range m.Meta["append"] {
msg.Add("append", "field", k)
msg.Add("append", "value", m.Meta[k][i])
}
msg.Add("append", "field", "")
msg.Add("append", "value", "")
}
m.Set("append").Copy(msg, "append")
}
m.Table()
}},
"import": &Command{Name: "import filename", Help: "导入数据", Hand: func(m *Message, c *Context, key string, arg ...string) {

View File

@ -274,6 +274,21 @@ var Index = &ctx.Context{Name: "mdb", Help: "数据中心",
})
}
}},
"set": &ctx.Command{Name: "set table [field value] where condition", Help: "查看或选择数据库信息", Form: map[string]int{"where": 1}, Hand: func(m *ctx.Message, c *ctx.Context, key string, arg ...string) {
if mdb, ok := m.Target().Server.(*MDB); m.Assert(ok) && mdb.DB != nil {
sql := []string{"update", arg[0], "set"}
for i := 1; i < len(arg)-1; i += 2 {
sql = append(sql, fmt.Sprintf("%s='%s'", arg[i], arg[i+1]))
if i < len(arg)-2 {
sql = append(sql, ",")
}
}
sql = append(sql, fmt.Sprintf("where %s", m.Option("where")))
m.Spawn().Cmd("exec", strings.Join(sql, " "))
msg := m.Spawn().Cmd("show", arg[0], "where", m.Option("where"))
m.Copy(msg, "result").Copy(msg, "append")
}
}},
},
}