forked from golang/hotime
数据库错误操作优化
This commit is contained in:
parent
f7dfd4ec77
commit
615f52d2e4
125
code.go
125
code.go
@ -128,15 +128,18 @@ var TptProject = Proj{
|
|||||||
name = v1.GetString("table")
|
name = v1.GetString("table")
|
||||||
}
|
}
|
||||||
if v1["auth"] != nil {
|
if v1["auth"] != nil {
|
||||||
linkAuth[name] = v1["auth"]
|
|
||||||
|
|
||||||
}
|
if linkAuth[name] == nil {
|
||||||
if v1["auth"] == nil {
|
linkAuth[name] = v1["auth"]
|
||||||
table := that.MakeCodeRouter[hotimeName].TableConfig.GetMap(name)
|
|
||||||
if table != nil {
|
|
||||||
linkAuth[name] = that.MakeCodeRouter[hotimeName].TableConfig.GetMap(name)["auth"]
|
|
||||||
} else {
|
} else {
|
||||||
linkAuth[name] = Slice{"show"}
|
newAuth := Slice{}
|
||||||
|
for k2, _ := range linkAuth.GetSlice(name) {
|
||||||
|
v2 := linkAuth.GetSlice(name).GetString(k2)
|
||||||
|
if strings.Contains(v1.GetString("auth"), v2) {
|
||||||
|
newAuth = append(newAuth, v2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
linkAuth[name] = newAuth
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -148,15 +151,22 @@ var TptProject = Proj{
|
|||||||
name = v2.GetString("table")
|
name = v2.GetString("table")
|
||||||
}
|
}
|
||||||
if v2["auth"] != nil {
|
if v2["auth"] != nil {
|
||||||
linkAuth[name] = v2["auth"]
|
|
||||||
continue
|
if linkAuth[name] == nil {
|
||||||
}
|
linkAuth[name] = v2["auth"]
|
||||||
if v2["auth"] == nil {
|
|
||||||
table := that.MakeCodeRouter[hotimeName].TableConfig.GetMap(name)
|
|
||||||
if table != nil {
|
|
||||||
linkAuth[name] = that.MakeCodeRouter[hotimeName].TableConfig.GetMap(name)["auth"]
|
|
||||||
} else {
|
} else {
|
||||||
linkAuth[name] = Slice{"show"}
|
|
||||||
|
newAuth := Slice{}
|
||||||
|
for k3, _ := range linkAuth.GetSlice(name) {
|
||||||
|
v3 := linkAuth.GetSlice(name).GetString(k3)
|
||||||
|
if strings.Contains(v2.GetString("auth"), v3) {
|
||||||
|
newAuth = append(newAuth, v3)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
linkAuth[name] = newAuth
|
||||||
|
continue
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -257,48 +267,59 @@ var TptProject = Proj{
|
|||||||
if v.GetString("link") != "" && that.MakeCodeRouter[hotimeName].TableColumns[v.GetString("link")]["auth"] != nil {
|
if v.GetString("link") != "" && that.MakeCodeRouter[hotimeName].TableColumns[v.GetString("link")]["auth"] != nil {
|
||||||
linkAuthMap := that.Db.Get(v.GetString("link"), "auth", Map{"id": data.GetCeilInt(v.GetString("name"))})
|
linkAuthMap := that.Db.Get(v.GetString("link"), "auth", Map{"id": data.GetCeilInt(v.GetString("name"))})
|
||||||
linkAuth := linkAuthMap.GetMap("auth")
|
linkAuth := linkAuthMap.GetMap("auth")
|
||||||
|
//conf := ObjToMap(string(btes))
|
||||||
|
//menus := conf.GetSlice("menus")
|
||||||
if linkAuth == nil {
|
if linkAuth == nil {
|
||||||
|
|
||||||
linkAuth = Map{}
|
linkAuth = Map{}
|
||||||
for k1, _ := range menus {
|
}
|
||||||
v1 := menus.GetMap(k1)
|
|
||||||
name := v1.GetString("name")
|
|
||||||
if name == "" {
|
|
||||||
name = v1.GetString("table")
|
|
||||||
}
|
|
||||||
if v1["auth"] != nil {
|
|
||||||
linkAuth[name] = v1["auth"]
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if v1["auth"] == nil {
|
|
||||||
|
|
||||||
table := that.MakeCodeRouter[hotimeName].TableConfig.GetMap(name)
|
for k1, _ := range menus {
|
||||||
if table != nil {
|
v1 := menus.GetMap(k1)
|
||||||
linkAuth[name] = that.MakeCodeRouter[hotimeName].TableConfig.GetMap(name)["auth"]
|
name := v1.GetString("name")
|
||||||
} else {
|
if name == "" {
|
||||||
linkAuth[name] = Slice{"show"}
|
name = v1.GetString("table")
|
||||||
}
|
}
|
||||||
}
|
if v1["auth"] != nil {
|
||||||
menusChild := v1.GetSlice("menus")
|
|
||||||
for k2, _ := range menusChild {
|
if linkAuth[name] == nil {
|
||||||
v2 := menusChild.GetMap(k2)
|
linkAuth[name] = v1["auth"]
|
||||||
name := v2.GetString("name")
|
} else {
|
||||||
if name == "" {
|
newAuth := Slice{}
|
||||||
name = v2.GetString("table")
|
for k2, _ := range linkAuth.GetSlice(name) {
|
||||||
}
|
v2 := linkAuth.GetSlice(name).GetString(k2)
|
||||||
if v2["auth"] != nil {
|
if strings.Contains(v1.GetString("auth"), v2) {
|
||||||
linkAuth[name] = v2["auth"]
|
newAuth = append(newAuth, v2)
|
||||||
continue
|
|
||||||
}
|
|
||||||
if v2["auth"] == nil {
|
|
||||||
table := that.MakeCodeRouter[hotimeName].TableConfig.GetMap(name)
|
|
||||||
if table != nil {
|
|
||||||
linkAuth[name] = that.MakeCodeRouter[hotimeName].TableConfig.GetMap(name)["auth"]
|
|
||||||
} else {
|
|
||||||
linkAuth[name] = Slice{"show"}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
linkAuth[name] = newAuth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
menusChild := v1.GetSlice("menus")
|
||||||
|
for k2, _ := range menusChild {
|
||||||
|
v2 := menusChild.GetMap(k2)
|
||||||
|
name := v2.GetString("name")
|
||||||
|
if name == "" {
|
||||||
|
name = v2.GetString("table")
|
||||||
|
}
|
||||||
|
if v2["auth"] != nil {
|
||||||
|
|
||||||
|
if linkAuth[name] == nil {
|
||||||
|
linkAuth[name] = v2["auth"]
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
newAuth := Slice{}
|
||||||
|
for k3, _ := range linkAuth.GetSlice(name) {
|
||||||
|
v3 := linkAuth.GetSlice(name).GetString(k3)
|
||||||
|
if strings.Contains(v2.GetString("auth"), v3) {
|
||||||
|
newAuth = append(newAuth, v3)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
linkAuth[name] = newAuth
|
||||||
|
continue
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
192
code/makecode.go
192
code/makecode.go
@ -732,8 +732,11 @@ func (that *MakeCode) Edit(table string, req *http.Request) Map {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if v.Get("edit") == nil || v.GetBool("edit") {
|
if v.Get("edit") == nil || v.GetBool("edit") {
|
||||||
|
if len(req.Form[v.GetString("name")]) == 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
reqValue := req.FormValue(v.GetString("name"))
|
reqValue := req.FormValue(v.GetString("name"))
|
||||||
if reqValue == "" || reqValue == "null" {
|
if reqValue == "null" {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if v.GetString("type") == "password" {
|
if v.GetString("type") == "password" {
|
||||||
@ -795,7 +798,6 @@ func (that *MakeCode) Search(table string, userData Map, req *http.Request, db *
|
|||||||
testQu = append(testQu, key)
|
testQu = append(testQu, key)
|
||||||
}
|
}
|
||||||
sort.Strings(testQu)
|
sort.Strings(testQu)
|
||||||
|
|
||||||
for _, k := range testQu {
|
for _, k := range testQu {
|
||||||
v := testQuData[k]
|
v := testQuData[k]
|
||||||
//不可使用,未在前端展示,但在内存中保持有
|
//不可使用,未在前端展示,但在内存中保持有
|
||||||
@ -890,88 +892,44 @@ func (that *MakeCode) Search(table string, userData Map, req *http.Request, db *
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if v.GetString("type") == "text" {
|
}
|
||||||
reqValue := req.FormValue(v.GetString("name"))
|
|
||||||
if reqValue != "" {
|
|
||||||
data[table+"."+v.GetString("name")+"[~]"] = reqValue
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
if strings.Contains(v.GetString("type"), "text") {
|
||||||
|
reqValue := req.FormValue(v.GetString("name"))
|
||||||
if v.GetString("type") == "unixtime" {
|
if reqValue != "" {
|
||||||
|
data[table+"."+v.GetString("name")+"[~]"] = reqValue
|
||||||
if daterangeTableStr == "" || v.GetString("name") == daterangeTableStr {
|
|
||||||
|
|
||||||
if len(req.Form[v.GetString("name")]) == 1 {
|
|
||||||
daterange[table+"."+v.GetString("name")+"[>]"] = req.FormValue("daterange")
|
|
||||||
} else if len(req.Form[v.GetString("name")]) == 2 {
|
|
||||||
daterange[table+"."+v.GetString("name")+"[<>]"] = ObjToSlice(req.Form["daterange"])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//fmt.Println(req.Form["daterange"])
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if v.GetString("type") == "time" {
|
|
||||||
//fmt.Println(req.Form["daterange"])
|
|
||||||
if daterangeTableStr == "" || v.GetString("name") == daterangeTableStr {
|
|
||||||
|
|
||||||
if len(req.Form[v.GetString("name")]) == 1 {
|
|
||||||
t := time.Unix(ObjToCeilInt64(req.FormValue(v.GetString("name"))), 0).Format("2006-01-02 15:04:05")
|
|
||||||
|
|
||||||
daterange[table+"."+v.GetString("name")+"[>]"] = t
|
|
||||||
|
|
||||||
} else if len(req.Form[v.GetString("name")]) == 2 {
|
|
||||||
t1 := time.Unix(ObjToCeilInt64(req.Form[v.GetString("name")][0]), 0).Format("2006-01-02 15:04:05")
|
|
||||||
t2 := time.Unix(ObjToCeilInt64(req.Form[v.GetString("name")][1]), 0).Format("2006-01-02 15:04:05")
|
|
||||||
daterange[table+"."+v.GetString("name")+"[<>]"] = Slice{t1, t2}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if keywordStr != "" {
|
|
||||||
if keywordTableStr == v.GetString("name") {
|
|
||||||
keyword[table+"."+keywordTableStr+"[~]"] = keywordStr
|
|
||||||
}
|
|
||||||
|
|
||||||
if keywordTableStr == v.GetString("value") {
|
|
||||||
childs := db.Select(v.GetString("link"), "id", Map{v.GetString("value") + "[~]": keywordStr})
|
|
||||||
childIds := Slice{}
|
|
||||||
for _, cv := range childs {
|
|
||||||
childIds = append(childIds, cv.GetString("id"))
|
|
||||||
}
|
|
||||||
if len(childIds) != 0 {
|
|
||||||
keyword[v.GetString("link")+".id"] = childIds
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if keywordTableStr != "" {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
if v.GetString("type") == "text" {
|
|
||||||
keyword[table+"."+v.GetString("name")+"[~]"] = keywordStr
|
|
||||||
|
|
||||||
}
|
|
||||||
if v.GetString("name") == "id" {
|
|
||||||
keyword[table+"."+v.GetString("name")] = keywordStr
|
|
||||||
}
|
|
||||||
if v.GetString("link") != "" &&
|
|
||||||
v.GetString("name") != "parent_id" {
|
|
||||||
childs := db.Select(v.GetString("link"), "id", Map{v.GetString("value") + "[~]": keywordStr})
|
|
||||||
childIds := Slice{}
|
|
||||||
for _, cv := range childs {
|
|
||||||
childIds = append(childIds, cv.GetString("id"))
|
|
||||||
}
|
|
||||||
if len(childIds) != 0 {
|
|
||||||
keyword[v.GetString("link")+".id"] = childIds
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if v.GetString("type") == "unixtime" {
|
||||||
|
|
||||||
|
if len(req.Form[v.GetString("name")]) == 1 {
|
||||||
|
daterange[table+"."+v.GetString("name")+"[>]"] = req.FormValue("daterange")
|
||||||
|
} else if len(req.Form[v.GetString("name")]) == 2 {
|
||||||
|
daterange[table+"."+v.GetString("name")+"[<>]"] = ObjToSlice(req.Form["daterange"])
|
||||||
|
}
|
||||||
|
|
||||||
|
//fmt.Println(req.Form["daterange"])
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if v.GetString("type") == "time" {
|
||||||
|
//fmt.Println(req.Form["daterange"])
|
||||||
|
|
||||||
|
if len(req.Form[v.GetString("name")]) == 1 {
|
||||||
|
t := time.Unix(ObjToCeilInt64(req.FormValue(v.GetString("name"))), 0).Format("2006-01-02 15:04:05")
|
||||||
|
|
||||||
|
daterange[table+"."+v.GetString("name")+"[>]"] = t
|
||||||
|
|
||||||
|
} else if len(req.Form[v.GetString("name")]) == 2 {
|
||||||
|
t1 := time.Unix(ObjToCeilInt64(req.Form[v.GetString("name")][0]), 0).Format("2006-01-02 15:04:05")
|
||||||
|
t2 := time.Unix(ObjToCeilInt64(req.Form[v.GetString("name")][1]), 0).Format("2006-01-02 15:04:05")
|
||||||
|
daterange[table+"."+v.GetString("name")+"[<>]"] = Slice{t1, t2}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if len(reStr) != 0 {
|
if len(reStr) != 0 {
|
||||||
reStr = reStr[:len(reStr)-1]
|
reStr = reStr[:len(reStr)-1]
|
||||||
@ -1014,11 +972,15 @@ func (that *MakeCode) Search(table string, userData Map, req *http.Request, db *
|
|||||||
//columns := that.TableConfig.GetMap(table).GetSlice("columns")
|
//columns := that.TableConfig.GetMap(table).GetSlice("columns")
|
||||||
if searchItem.GetString("type") == "search" {
|
if searchItem.GetString("type") == "search" {
|
||||||
for _, v := range that.TableColumns[table] {
|
for _, v := range that.TableColumns[table] {
|
||||||
if v["list"] == false {
|
//if v["list"] == false {
|
||||||
continue
|
// continue
|
||||||
}
|
//}
|
||||||
//日期类型
|
//日期类型
|
||||||
if searchItemName == "daterange" {
|
if searchItemName == "daterange" {
|
||||||
|
|
||||||
|
if daterangeTableStr != "" && daterangeTableStr != v.GetString("name") {
|
||||||
|
continue
|
||||||
|
}
|
||||||
if v.GetString("type") == "unixtime" {
|
if v.GetString("type") == "unixtime" {
|
||||||
//fmt.Println(req.Form["daterange"])
|
//fmt.Println(req.Form["daterange"])
|
||||||
if len(req.Form["daterange"]) == 1 {
|
if len(req.Form["daterange"]) == 1 {
|
||||||
@ -1044,6 +1006,48 @@ func (that *MakeCode) Search(table string, userData Map, req *http.Request, db *
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if searchItemName == "keyword" && keywordStr != "" {
|
||||||
|
|
||||||
|
if keywordTableStr != "" {
|
||||||
|
if keywordTableStr == v.GetString("name") {
|
||||||
|
keyword[table+"."+keywordTableStr+"[~]"] = keywordStr
|
||||||
|
}
|
||||||
|
|
||||||
|
if keywordTableStr == v.GetString("value") {
|
||||||
|
childs := db.Select(v.GetString("link"), "id", Map{v.GetString("value") + "[~]": keywordStr})
|
||||||
|
childIds := Slice{}
|
||||||
|
for _, cv := range childs {
|
||||||
|
childIds = append(childIds, cv.GetString("id"))
|
||||||
|
}
|
||||||
|
if len(childIds) != 0 {
|
||||||
|
keyword[v.GetString("link")+".id"] = childIds
|
||||||
|
}
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if strings.Contains(v.GetString("type"), "text") {
|
||||||
|
keyword[table+"."+v.GetString("name")+"[~]"] = keywordStr
|
||||||
|
|
||||||
|
}
|
||||||
|
if v.GetString("name") == "id" {
|
||||||
|
keyword[table+"."+v.GetString("name")] = keywordStr
|
||||||
|
}
|
||||||
|
if v.GetString("link") != "" &&
|
||||||
|
v.GetString("name") != "parent_id" {
|
||||||
|
childs := db.Select(v.GetString("link"), "id", Map{v.GetString("value") + "[~]": keywordStr})
|
||||||
|
childIds := Slice{}
|
||||||
|
for _, cv := range childs {
|
||||||
|
childIds = append(childIds, cv.GetString("id"))
|
||||||
|
}
|
||||||
|
if len(childIds) != 0 {
|
||||||
|
keyword[v.GetString("link")+".id"] = childIds
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if searchItem.GetString("name") == "sort" {
|
if searchItem.GetString("name") == "sort" {
|
||||||
@ -1054,28 +1058,6 @@ func (that *MakeCode) Search(table string, userData Map, req *http.Request, db *
|
|||||||
}
|
}
|
||||||
//树节点模式搜索
|
//树节点模式搜索
|
||||||
if searchItemName == "parent_id" {
|
if searchItemName == "parent_id" {
|
||||||
//if parent_idsStr != "" {
|
|
||||||
//
|
|
||||||
// where := Map{}
|
|
||||||
//
|
|
||||||
// for _, v := range reqValue {
|
|
||||||
// if len(where) == 0 {
|
|
||||||
// where[parent_idsStr] = "," + v + ","
|
|
||||||
// continue
|
|
||||||
// }
|
|
||||||
// where = Map{"OR": where, parent_idsStr: "," + v + ","}
|
|
||||||
// }
|
|
||||||
// //用户
|
|
||||||
// if userData[searchItem.GetString("name")] != nil {
|
|
||||||
// where = Map{"AND": Map{parent_idsStr: "," + ObjToStr(userData.GetCeilInt64(searchItem.GetString("name"))) + ",", "OR": where}}
|
|
||||||
// }
|
|
||||||
// r := db.Select(searchItem.GetString("link"), "id", where)
|
|
||||||
// for _, v := range r {
|
|
||||||
// reqValue = append(reqValue, v.GetString("id"))
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//}
|
|
||||||
|
|
||||||
parentID := ObjToInt(req.FormValue("parent_id"))
|
parentID := ObjToInt(req.FormValue("parent_id"))
|
||||||
if parentID == 0 {
|
if parentID == 0 {
|
||||||
parentID = userData.GetCeilInt(table + "_id")
|
parentID = userData.GetCeilInt(table + "_id")
|
||||||
|
Loading…
Reference in New Issue
Block a user