goupdate
This commit is contained in:
parent
170c4eb4f7
commit
ebb0950e87
61
main.go
61
main.go
|
|
@ -1,5 +1,6 @@
|
|||
package main
|
||||
|
||||
//nolint:staticcheck
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
|
|
@ -11,7 +12,7 @@ import (
|
|||
"time"
|
||||
|
||||
"ciyon/web/admin/autotask"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
)
|
||||
|
|
@ -19,13 +20,13 @@ import (
|
|||
func main() {
|
||||
//nohup ./zgo &
|
||||
//nohup /data/go/ciyon/zgo > /dev/null 2>&1 &
|
||||
CiyVars.Version = "1.0.1"
|
||||
Clog("---=========================Ciyon=========================---")
|
||||
Clog("Version:", CiyVars.Version, " WorkDir:", CiyWebDir)
|
||||
c.CiyVars.Version = "1.0.1"
|
||||
c.Clog("---=========================Ciyon=========================---")
|
||||
c.Clog("Version:", c.CiyVars.Version, " WorkDir:", c.CiyWebDir)
|
||||
//读取配置文件ini
|
||||
|
||||
ini, err3 := NewCiyINI("web.ini")
|
||||
CiyVars.Ini = *ini
|
||||
ini, err3 := c.NewCiyINI("web.ini")
|
||||
c.CiyVars.Ini = *ini
|
||||
runmode := "dev"
|
||||
logfile := "log/ciyon.log"
|
||||
logtcp := ""
|
||||
|
|
@ -71,9 +72,9 @@ func main() {
|
|||
} else {
|
||||
runmode = ini.GetKey("main", "runmode", runmode)
|
||||
if runmode == "prod" {
|
||||
CiyRunMode = CIYRUN_PROD
|
||||
c.CiyRunMode = c.CIYRUN_PROD
|
||||
} else {
|
||||
CiyRunMode = CIYRUN_DEV
|
||||
c.CiyRunMode = c.CIYRUN_DEV
|
||||
}
|
||||
tasksec = ini.GetKeyint("main", "tasksec", tasksec)
|
||||
logfile = ini.GetKey("log", "logfile", logfile)
|
||||
|
|
@ -95,11 +96,11 @@ func main() {
|
|||
phphost = ini.GetKey("php", "host", phphost)
|
||||
mock = ini.GetKey("mock", "target", mock)
|
||||
}
|
||||
Log = NewCiyLog(500)
|
||||
Log.SupportStack(CiyVars.Version)
|
||||
Log.InitFile(logfile, logfilelevel)
|
||||
Log.InitTCP(logtcp, logtcplevel)
|
||||
Log.Info("Ciyon", "Ciyon Start.")
|
||||
c.Log = c.NewCiyLog(500)
|
||||
c.Log.SupportStack(c.CiyVars.Version)
|
||||
c.Log.InitFile(logfile, logfilelevel)
|
||||
c.Log.InitTCP(logtcp, logtcplevel)
|
||||
c.Log.Info("Ciyon", "Ciyon Start.")
|
||||
go watchMe()
|
||||
|
||||
// Log.Debug("sdfs", "asfsdfasdf")
|
||||
|
|
@ -109,12 +110,12 @@ func main() {
|
|||
// if err != nil {
|
||||
// log.Fatal(err)
|
||||
// }
|
||||
CiyDB, err = NewCiyMysql(fmt.Sprintf("%s:%s@tcp(%s)/%s", dbuser, dbpass, dbhost+":"+dbport, dbname), dbmaxopenconn, dbmaxidelconn, dbmaxlifesec) //main初始化一直开着,程序结束才关
|
||||
c.CiyDB, err = c.NewCiyMysql(fmt.Sprintf("%s:%s@tcp(%s)/%s", dbuser, dbpass, dbhost+":"+dbport, dbname), dbmaxopenconn, dbmaxidelconn, dbmaxlifesec) //main初始化一直开着,程序结束才关
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
web, err2 := NewCiyWebServer()
|
||||
web, err2 := c.NewCiyWebServer()
|
||||
if err2 != nil {
|
||||
log.Fatal(err2)
|
||||
}
|
||||
|
|
@ -130,19 +131,19 @@ func main() {
|
|||
web.SetMockFile() //在web/ud/mock目录下建立对应的json文件。
|
||||
} else if mock != "" {
|
||||
web.SetMockFn(func(w http.ResponseWriter, r *http.Request) error {
|
||||
funname := GetQuery("func", r)
|
||||
funname := c.GetQuery("func", r)
|
||||
funs := strings.Split(funname, ".")
|
||||
if len(funs) < 2 {
|
||||
return fmt.Errorf("func fmterr func=%v", funname)
|
||||
}
|
||||
csql := NewCiySQL(mock)
|
||||
csql := c.NewCiySQL(mock)
|
||||
csql.Where("upath", funs[0])
|
||||
csql.Where("ufunc", funs[1])
|
||||
mockrow, _ := CiyDB.Getone(csql)
|
||||
mockrow, _ := c.CiyDB.Getone(csql)
|
||||
if mockrow == nil {
|
||||
return fmt.Errorf("nofind mock func=%v", funname)
|
||||
}
|
||||
mockjson := Tostr(mockrow["mockjson"])
|
||||
mockjson := c.Tostr(mockrow["mockjson"])
|
||||
quest := r.URL.RawQuery
|
||||
body, err := io.ReadAll(r.Body)
|
||||
if err == nil && len(body) > 0 {
|
||||
|
|
@ -163,16 +164,16 @@ func main() {
|
|||
}
|
||||
updata := map[string]any{
|
||||
"lastrequest": quest,
|
||||
"lasttimes": Tostamp(),
|
||||
"lasttimes": c.Tostamp(),
|
||||
}
|
||||
csql = NewCiySQL(mock)
|
||||
csql = c.NewCiySQL(mock)
|
||||
csql.Where("id", mockrow["id"])
|
||||
CiyDB.Update(csql, updata)
|
||||
c.CiyDB.Update(csql, updata)
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
if CiyRunMode == CIYRUN_DEV {
|
||||
if c.CiyRunMode == c.CIYRUN_DEV {
|
||||
tasksec = 0
|
||||
}
|
||||
if tasksec > 0 {
|
||||
|
|
@ -186,24 +187,24 @@ func main() {
|
|||
//web.WebRunSock("ciyon.sock")
|
||||
}
|
||||
func watchMe() {
|
||||
fmd5 := MD5file(os.Args[0])
|
||||
fmd5 := c.MD5file(os.Args[0])
|
||||
for {
|
||||
newfmd5 := MD5file(os.Args[0])
|
||||
newfmd5 := c.MD5file(os.Args[0])
|
||||
if newfmd5 != fmd5 {
|
||||
Sleep(1)
|
||||
c.Sleep(1)
|
||||
fmt.Println("restarting:")
|
||||
Log.Info("RESTART", "Restarting.."+newfmd5)
|
||||
c.Log.Info("RESTART", "Restarting.."+newfmd5)
|
||||
err := syscall.Exec(os.Args[0], os.Args, os.Environ())
|
||||
if err != nil {
|
||||
fmt.Println("restart fail:", err)
|
||||
Log.Info("RESTART", "重启失败:"+err.Error())
|
||||
Sleep(10)
|
||||
c.Log.Info("RESTART", "重启失败:"+err.Error())
|
||||
c.Sleep(10)
|
||||
continue
|
||||
}
|
||||
os.Exit(0)
|
||||
return
|
||||
}
|
||||
Sleep(2)
|
||||
c.Sleep(2)
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,10 +9,13 @@ import (
|
|||
"ciyon/web/admin/datasse"
|
||||
"ciyon/web/admin/rigger"
|
||||
"ciyon/web/admin/wsdemo"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func setWebRoute_adm(web *CiyWebServer) {
|
||||
/*
|
||||
本文件由node生成
|
||||
*/
|
||||
func setWebRoute_adm(web *c.CiyWebServer) {
|
||||
web.RouterFunc("admin/rigger", map[string]map[string]func(http.ResponseWriter, *http.Request) bool{
|
||||
"logfile": {
|
||||
"init": rigger.Logfile_init,
|
||||
|
|
|
|||
275
test_ok.go
275
test_ok.go
File diff suppressed because one or more lines are too long
|
|
@ -2,7 +2,7 @@ package ap
|
|||
|
||||
import (
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
"ciyon/zciyon/xlsx"
|
||||
"fmt"
|
||||
"math/rand"
|
||||
|
|
@ -12,21 +12,21 @@ import (
|
|||
"strings"
|
||||
)
|
||||
|
||||
func demo_setwhere(post *CiyPost) (map[string]any, *CiySQL) {
|
||||
func demo_setwhere(post *c.CiyPost) (map[string]any, *c.CiySQL) {
|
||||
ret := map[string]any{}
|
||||
query := post.Getobj("query")
|
||||
csql := NewCiySQL("ap_demo")
|
||||
liid := Getint(query, "liid")
|
||||
csql := c.NewCiySQL("ap_demo")
|
||||
liid := c.Getint(query, "liid")
|
||||
if liid > 0 {
|
||||
csql.Where("auditstatus", liid)
|
||||
}
|
||||
csql.Where_daterange("audittimes", Getstr(query, "audittimes"))
|
||||
csql.Where("name like", Getstr(query, "name"))
|
||||
val := Getstr(query, "menuid")
|
||||
csql.Where_daterange("audittimes", c.Getstr(query, "audittimes"))
|
||||
csql.Where("name like", c.Getstr(query, "name"))
|
||||
val := c.Getstr(query, "menuid")
|
||||
if val != "" {
|
||||
csqlt := NewCiySQL("zc_menu")
|
||||
csqlt := c.NewCiySQL("zc_menu")
|
||||
csqlt.Where("name like", val)
|
||||
trow, _ := CiyDB.Getone(csqlt)
|
||||
trow, _ := c.CiyDB.Getone(csqlt)
|
||||
if trow != nil {
|
||||
csql.Where("menuid", trow["id"])
|
||||
ret["menuid"] = trow["name"]
|
||||
|
|
@ -34,22 +34,22 @@ func demo_setwhere(post *CiyPost) (map[string]any, *CiySQL) {
|
|||
csql.Where("menuid=0")
|
||||
}
|
||||
}
|
||||
csql.Where_numrange("bankmoney", Getstr(query, "bankmoney_1"), Getstr(query, "bankmoney_2"), 1000000)
|
||||
csql.Where("isopen", Getstr(query, "isopen"))
|
||||
csql.Where("mauditstatus like", Getstr(query, "mauditstatus"))
|
||||
valint := Getint(query, "renzheng")
|
||||
csql.Where_numrange("bankmoney", c.Getstr(query, "bankmoney_1"), c.Getstr(query, "bankmoney_2"), 1000000)
|
||||
csql.Where("isopen", c.Getstr(query, "isopen"))
|
||||
csql.Where("mauditstatus like", c.Getstr(query, "mauditstatus"))
|
||||
valint := c.Getint(query, "renzheng")
|
||||
if valint > 0 {
|
||||
valint = 1 << (valint - 1)
|
||||
csql.Where(fmt.Sprintf("renzheng&%d=%d", valint, valint))
|
||||
}
|
||||
order := Getstr(query, "order", "id desc")
|
||||
order := c.Getstr(query, "order", "id desc")
|
||||
csql.Order(order)
|
||||
query["order"] = order
|
||||
return query, csql
|
||||
}
|
||||
func Demo_list(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
|
|
@ -58,9 +58,9 @@ func Demo_list(w http.ResponseWriter, r *http.Request) bool {
|
|||
pageno := post.Getint("pageno", 1)
|
||||
pagecount := post.Getint("pagecount", 10)
|
||||
csql.Limit(pageno, pagecount)
|
||||
rows, mainrowcount, err := CiyDB.Get(csql, post.Getint("count"))
|
||||
rows, mainrowcount, err := c.CiyDB.Get(csql, post.Getint("count"))
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["where"] = where
|
||||
|
|
@ -69,8 +69,8 @@ func Demo_list(w http.ResponseWriter, r *http.Request) bool {
|
|||
ret["count"] = mainrowcount
|
||||
ret["list"] = rows
|
||||
if post.Getbool("field") {
|
||||
field, fshow := CiyDB.GetField(csql)
|
||||
FieldAdd(&field, &fshow, 0, "_btn", "操作")
|
||||
field, fshow := c.CiyDB.GetField(csql)
|
||||
c.FieldAdd(&field, &fshow, 0, "_btn", "操作")
|
||||
ret["fshow"] = fshow
|
||||
ret["field"] = field
|
||||
}
|
||||
|
|
@ -111,7 +111,7 @@ func Demo_list(w http.ResponseWriter, r *http.Request) bool {
|
|||
"form": "isopen",
|
||||
"type": "select",
|
||||
"name": "是否开启",
|
||||
"select": CiyDB.Getdbcodes("ap_demo", "isopen"),
|
||||
"select": c.CiyDB.Getdbcodes("ap_demo", "isopen"),
|
||||
"all": "全部",
|
||||
})
|
||||
input = append(input, map[string]any{
|
||||
|
|
@ -152,47 +152,47 @@ func Demo_list(w http.ResponseWriter, r *http.Request) bool {
|
|||
"select": orders,
|
||||
})
|
||||
once["input"] = input
|
||||
once["renzheng"] = CiyDB.Getdbcodes("ap_demo", "renzheng")
|
||||
// csql = NewCiySQL("zc_menu")
|
||||
once["renzheng"] = c.CiyDB.Getdbcodes("ap_demo", "renzheng")
|
||||
// csql = c.NewCiySQL("zc_menu")
|
||||
// csql.Column("id,name")
|
||||
// once["zc_menu"], _, _ = CiyDB.Get(csql)
|
||||
// once["zc_menu"], _, _ = c.CiyDB.Get(csql)
|
||||
ret["once"] = once
|
||||
}
|
||||
ret["zc_menu"] = Getrelation(CiyDB, rows, "zc_menu", "menuid", map[string]string{"column": "id,name"}, map[string]string{"queryid": "id"})
|
||||
return SuccJSON(w, ret)
|
||||
ret["zc_menu"] = c.Getrelation(c.CiyDB, rows, "zc_menu", "menuid", map[string]string{"column": "id,name"}, map[string]string{"queryid": "id"})
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Demo_getdata(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, _userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, _userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if _userid == 0 {
|
||||
return false
|
||||
}
|
||||
id := post.Getint("id")
|
||||
ret := map[string]any{}
|
||||
csql := NewCiySQL("ap_demo")
|
||||
csql := c.NewCiySQL("ap_demo")
|
||||
csql.Column("content,md")
|
||||
csql.Where("id", id)
|
||||
datarow, _ := CiyDB.Getone(csql)
|
||||
datarow, _ := c.CiyDB.Getone(csql)
|
||||
if datarow == nil {
|
||||
datarow = map[string]any{}
|
||||
}
|
||||
ret["data"] = datarow
|
||||
if post.Get("act") == "edit" {
|
||||
csql = NewCiySQL("zc_menu")
|
||||
csql = c.NewCiySQL("zc_menu")
|
||||
csql.Column("id,name")
|
||||
menurows, _, _ := CiyDB.Get(csql)
|
||||
menurows, _, _ := c.CiyDB.Get(csql)
|
||||
ret["zc_menu"] = menurows
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Demo_update(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, _userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, _userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if _userid == 0 {
|
||||
return false
|
||||
}
|
||||
// if admin.Nopower(CiyDB, _userid, "p u") {
|
||||
// return ErrJSON(w, "您未被授权操作")
|
||||
// if admin.Nopower(c.CiyDB, _userid, "p u") {
|
||||
// return c.ErrJSON(w, "您未被授权操作")
|
||||
// }
|
||||
var err error
|
||||
id := post.Getint("id")
|
||||
|
|
@ -229,27 +229,27 @@ func Demo_update(w http.ResponseWriter, r *http.Request) bool {
|
|||
content := post.Get("content")
|
||||
md := post.Get("md")
|
||||
if name == "" {
|
||||
return ErrJSON(w, "请填写默认标题")
|
||||
return c.ErrJSON(w, "请填写默认标题")
|
||||
}
|
||||
var datarow map[string]any
|
||||
if id > 0 {
|
||||
csql := NewCiySQL("ap_demo")
|
||||
csql := c.NewCiySQL("ap_demo")
|
||||
csql.Where("id", id)
|
||||
datarow, err = CiyDB.Getone(csql)
|
||||
datarow, err = c.CiyDB.Getone(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据失败", err)
|
||||
return c.ErrJSON(w, "读取数据失败", err)
|
||||
}
|
||||
if datarow == nil {
|
||||
return ErrJSON(w, "数据不存在")
|
||||
return c.ErrJSON(w, "数据不存在")
|
||||
}
|
||||
}
|
||||
|
||||
var updata = map[string]any{}
|
||||
err = CiyDB.Tran(func() error {
|
||||
csql := NewCiySQL("ap_demo")
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
csql := c.NewCiySQL("ap_demo")
|
||||
csql.Where("name", name)
|
||||
csql.Column("id")
|
||||
chkid := Toint(CiyDB.Get1(csql))
|
||||
chkid := c.Toint(c.CiyDB.Get1(csql))
|
||||
if chkid > 0 && ((id > 0 && chkid != id) || id == 0) {
|
||||
return fmt.Errorf("数据已存在")
|
||||
}
|
||||
|
|
@ -285,130 +285,130 @@ func Demo_update(w http.ResponseWriter, r *http.Request) bool {
|
|||
updata["eartmpr"] = eartmpr
|
||||
updata["content"] = content
|
||||
updata["md"] = md
|
||||
csql = NewCiySQL("ap_demo")
|
||||
csql = c.NewCiySQL("ap_demo")
|
||||
if id > 0 {
|
||||
csql.Where("id", id)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
} else {
|
||||
updata["auditstatus"] = 20
|
||||
updata["addtimes"] = Tostamp()
|
||||
id, err = CiyDB.Insert(csql, updata)
|
||||
updata["addtimes"] = c.Tostamp()
|
||||
id, err = c.CiyDB.Insert(csql, updata)
|
||||
}
|
||||
updata["id"] = id
|
||||
if err != nil {
|
||||
return fmt.Errorf("更新失败:%v", err)
|
||||
}
|
||||
admin.SaveLogDB(CiyDB, "ap_demo", datarow, updata)
|
||||
admin.SaveLogDB(c.CiyDB, "ap_demo", datarow, updata)
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, err.Error())
|
||||
return c.ErrJSON(w, err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["data"] = updata
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
||||
func Demo_audit(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
// if admin.Nopower(CiyDB, userid, "p d") {
|
||||
// return ErrJSON(w, "您未被授权操作")
|
||||
// if admin.Nopower(c.CiyDB, userid, "p d") {
|
||||
// return c.ErrJSON(w, "您未被授权操作")
|
||||
// }
|
||||
ids := post.Get("ids")
|
||||
status := post.Getint("status")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
csql := NewCiySQL("ap_demo")
|
||||
csql := c.NewCiySQL("ap_demo")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据错误", err)
|
||||
return c.ErrJSON(w, "读取数据错误", err)
|
||||
}
|
||||
vids := make([]int, 0)
|
||||
var updata = map[string]any{}
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
updata["auditstatus"] = status
|
||||
updata["audituser"] = userid
|
||||
updata["audittimes"] = Tostamp()
|
||||
csql = NewCiySQL("ap_demo")
|
||||
updata["audittimes"] = c.Tostamp()
|
||||
csql = c.NewCiySQL("ap_demo")
|
||||
csql.Where("id", row["id"])
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
if err != nil {
|
||||
return fmt.Errorf("审核失败:%v", err)
|
||||
}
|
||||
vids = append(vids, Toint(row["id"]))
|
||||
vids = append(vids, c.Toint(row["id"]))
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, err.Error())
|
||||
return c.ErrJSON(w, err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["data"] = updata
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Demo_del(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
// if admin.Nopower(CiyDB, userid, "p d") {
|
||||
// return ErrJSON(w, "您未被授权操作")
|
||||
// if admin.Nopower(c.CiyDB, userid, "p d") {
|
||||
// return c.ErrJSON(w, "您未被授权操作")
|
||||
// }
|
||||
ids := post.Get("ids")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
csql := NewCiySQL("ap_demo")
|
||||
csql := c.NewCiySQL("ap_demo")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据错误", err)
|
||||
return c.ErrJSON(w, "读取数据错误", err)
|
||||
}
|
||||
vids := make([]int, 0)
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
delid := Toint(row["id"])
|
||||
//Delcheck(CiyDB, delid, "tablexx", "xxid", "xxx");
|
||||
//Delall(CiyDB, delid, "tablexx", "xxid", "xxx");
|
||||
Delme(CiyDB, delid, "ap_demo")
|
||||
admin.SaveLogDB(CiyDB, "ap_demo", row, nil)
|
||||
delid := c.Toint(row["id"])
|
||||
//c.Delcheck(c.CiyDB, delid, "tablexx", "xxid", "xxx");
|
||||
//c.Delall(c.CiyDB, delid, "tablexx", "xxid", "xxx");
|
||||
c.Delme(c.CiyDB, delid, "ap_demo")
|
||||
admin.SaveLogDB(c.CiyDB, "ap_demo", row, nil)
|
||||
vids = append(vids, delid)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
||||
func Demo_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
// if admin.Nopower(CiyDB, userid, "p00e") {
|
||||
// return ErrJSON(w, "您未被授权操作")
|
||||
// if admin.Nopower(c.CiyDB, userid, "p00e") {
|
||||
// return c.ErrJSON(w, "您未被授权操作")
|
||||
// }
|
||||
_, csql := demo_setwhere(post)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
if len(rows) > 10000 {
|
||||
return ErrJSON(w, "将导出"+Tostr(len(rows))+"条,不建议超过1万条,请筛选缩小范围", err)
|
||||
return c.ErrJSON(w, "将导出"+c.Tostr(len(rows))+"条,不建议超过1万条,请筛选缩小范围", err)
|
||||
}
|
||||
fields := []map[string]string{}
|
||||
fields = append(fields, map[string]string{"style": "c", "width": "60", "field": "id", "name": "行码"})
|
||||
|
|
@ -445,15 +445,15 @@ func Demo_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
|||
fields = append(fields, map[string]string{"style": "l", "width": "100", "field": "content", "name": "介绍"})
|
||||
fields = append(fields, map[string]string{"style": "l", "width": "100", "field": "addtimes", "name": "添加时间"})
|
||||
|
||||
code_auditstatus := admin.Getcatas(CiyDB, "auditstatus")
|
||||
code_audituser := Getrelation(CiyDB, rows, "xa_user", "audituser")
|
||||
code_menuid, _, _ := CiyDB.Get(NewCiySQL("zc_menu").Column("id,name"))
|
||||
code_isuse := CiyDB.Getdbcodes("ap_demo", "isuse")
|
||||
code_isopen := CiyDB.Getdbcodes("ap_demo", "isopen")
|
||||
code_mauditstatus := admin.Getcatas(CiyDB, "auditstatus")
|
||||
code_prodcata := admin.Getcatas(CiyDB, "prodcata")
|
||||
code_areacode, _, _ := CiyDB.Get(NewCiySQL("ciy_arearpc").Column("id,name,upid"))
|
||||
code_renzheng := admin.Getcatas(CiyDB, "renzheng")
|
||||
code_auditstatus := admin.Getcatas(c.CiyDB, "auditstatus")
|
||||
code_audituser := c.Getrelation(c.CiyDB, rows, "xa_user", "audituser")
|
||||
code_menuid, _, _ := c.CiyDB.Get(c.NewCiySQL("zc_menu").Column("id,name"))
|
||||
code_isuse := c.CiyDB.Getdbcodes("ap_demo", "isuse")
|
||||
code_isopen := c.CiyDB.Getdbcodes("ap_demo", "isopen")
|
||||
code_mauditstatus := admin.Getcatas(c.CiyDB, "auditstatus")
|
||||
code_prodcata := admin.Getcatas(c.CiyDB, "prodcata")
|
||||
code_areacode, _, _ := c.CiyDB.Get(c.NewCiySQL("ciy_arearpc").Column("id,name,upid"))
|
||||
code_renzheng := admin.Getcatas(c.CiyDB, "renzheng")
|
||||
|
||||
datas := [][]string{}
|
||||
for _, row := range rows {
|
||||
|
|
@ -463,55 +463,55 @@ func Demo_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
|||
if val, ok := row[field]; ok {
|
||||
var str string
|
||||
if field == "id" {
|
||||
str = EnID(Toint(val))
|
||||
str = c.EnID(c.Toint(val))
|
||||
} else if field == "auditstatus" {
|
||||
str = Ccode(code_auditstatus, Toint(val))
|
||||
str = c.Ccode(code_auditstatus, c.Toint(val))
|
||||
} else if field == "audituser" {
|
||||
str = Ccode(code_audituser, Toint(val))
|
||||
str = c.Ccode(code_audituser, c.Toint(val))
|
||||
} else if field == "audittimes" {
|
||||
str = Iff(Toint(val) > 0, Todate(Toint(val), "Y-m-d H:i"), "--")
|
||||
str = c.Iff(c.Toint(val) > 0, c.Todate(c.Toint(val), "Y-m-d H:i"), "--")
|
||||
} else if field == "menuid" {
|
||||
str = Ccode(code_menuid, Toint(val))
|
||||
str = c.Ccode(code_menuid, c.Toint(val))
|
||||
} else if field == "metre" {
|
||||
str = Iff(Toint(val) > 0, fmt.Sprintf("%.2f", Tofloat(val)/1000), "--")
|
||||
str = c.Iff(c.Toint(val) > 0, fmt.Sprintf("%.2f", c.Tofloat(val)/1000), "--")
|
||||
} else if field == "bankmoney" {
|
||||
str = Iff(Toint(val) > 0, fmt.Sprintf("%.3f", Tofloat(val)/1000000), "--")
|
||||
str = c.Iff(c.Toint(val) > 0, fmt.Sprintf("%.3f", c.Tofloat(val)/1000000), "--")
|
||||
} else if field == "setdate" {
|
||||
str = Iff(Toint(val) > 0, Todate(Toint(val), "Y-m-d H:i"), "--")
|
||||
str = c.Iff(c.Toint(val) > 0, c.Todate(c.Toint(val), "Y-m-d H:i"), "--")
|
||||
} else if field == "settimes" {
|
||||
str = Iff(Toint(val) > 0, Todate(Toint(val), "Y-m-d H:i"), "--")
|
||||
str = c.Iff(c.Toint(val) > 0, c.Todate(c.Toint(val), "Y-m-d H:i"), "--")
|
||||
} else if field == "isuse" {
|
||||
str = Iff(Toint(val) == 0, Tostr(code_isuse[0]["name"]), Tostr(code_isuse[1]["name"]))
|
||||
str = c.Iff(c.Toint(val) == 0, c.Tostr(code_isuse[0]["name"]), c.Tostr(code_isuse[1]["name"]))
|
||||
} else if field == "isopen" {
|
||||
str = Iff(Toint(val) == 0, Tostr(code_isopen[0]["name"]), Tostr(code_isopen[1]["name"]))
|
||||
str = c.Iff(c.Toint(val) == 0, c.Tostr(code_isopen[0]["name"]), c.Tostr(code_isopen[1]["name"]))
|
||||
} else if field == "sigstatus" {
|
||||
str = Ccode(code_auditstatus, Toint(val))
|
||||
str = c.Ccode(code_auditstatus, c.Toint(val))
|
||||
} else if field == "mauditstatus" {
|
||||
str = strings.Join(Scode(code_mauditstatus, Tostr(val)), ",")
|
||||
str = strings.Join(c.Scode(code_mauditstatus, c.Tostr(val)), ",")
|
||||
} else if field == "prodcata" {
|
||||
str = strings.Join(Mcode(code_prodcata, Toint(val)), "-")
|
||||
str = strings.Join(c.Mcode(code_prodcata, c.Toint(val)), "-")
|
||||
} else if field == "areacode" {
|
||||
str = strings.Join(Mcode(code_areacode, Toint(val)), "-")
|
||||
str = strings.Join(c.Mcode(code_areacode, c.Toint(val)), "-")
|
||||
} else if field == "renzheng" {
|
||||
number := Toint(val)
|
||||
number := c.Toint(val)
|
||||
strs := make([]string, 0)
|
||||
for _, cod := range code_renzheng {
|
||||
if number&(1<<uint(Toint(cod["id"])-1)) != 0 {
|
||||
strs = append(strs, Tostr(cod["name"]))
|
||||
if number&(1<<uint(c.Toint(cod["id"])-1)) != 0 {
|
||||
strs = append(strs, c.Tostr(cod["name"]))
|
||||
}
|
||||
}
|
||||
str = strings.Join(strs, ",")
|
||||
} else if field == "npcyc" {
|
||||
va := Toint(val)
|
||||
va := c.Toint(val)
|
||||
if va < 0 {
|
||||
str = Tostr(-va) + "月"
|
||||
str = c.Tostr(-va) + "月"
|
||||
} else if va >= 86400 {
|
||||
str = Tostr(Toint(va/86400)) + "天"
|
||||
str = c.Tostr(c.Toint(va/86400)) + "天"
|
||||
} else {
|
||||
str = Tostr(va) + "秒"
|
||||
str = c.Tostr(va) + "秒"
|
||||
}
|
||||
} else if field == "unit" {
|
||||
us := strings.Split(Tostr(val), "|")
|
||||
us := strings.Split(c.Tostr(val), "|")
|
||||
str = ""
|
||||
if len(us) == 5 {
|
||||
str = "1" + us[4] + us[3] + us[2] + ","
|
||||
|
|
@ -523,17 +523,17 @@ func Demo_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
|||
str = us[0]
|
||||
}
|
||||
} else if field == "ton" {
|
||||
str = Iff(Toint(val) > 0, fmt.Sprintf("%.2f", Tofloat(val)/1000000), "--")
|
||||
str = c.Iff(c.Toint(val) > 0, fmt.Sprintf("%.2f", c.Tofloat(val)/1000000), "--")
|
||||
} else if field == "price" {
|
||||
str = Iff(Toint(val) > 0, fmt.Sprintf("%.2f", Tofloat(val)/100), "--")
|
||||
str = c.Iff(c.Toint(val) > 0, fmt.Sprintf("%.2f", c.Tofloat(val)/100), "--")
|
||||
} else if field == "weightg" {
|
||||
str = Iff(Toint(val) > 0, fmt.Sprintf("%.2f", Tofloat(val)/1000), "--")
|
||||
str = c.Iff(c.Toint(val) > 0, fmt.Sprintf("%.2f", c.Tofloat(val)/1000), "--")
|
||||
} else if field == "eartmpr" {
|
||||
str = Iff(Toint(val) > 0, fmt.Sprintf("%.1f", Tofloat(val)/1000), "--")
|
||||
str = c.Iff(c.Toint(val) > 0, fmt.Sprintf("%.1f", c.Tofloat(val)/1000), "--")
|
||||
} else if field == "addtimes" {
|
||||
str = Iff(Toint(val) > 0, Todate(Toint(val), "Y-m-d H:i"), "--")
|
||||
str = c.Iff(c.Toint(val) > 0, c.Todate(c.Toint(val), "Y-m-d H:i"), "--")
|
||||
} else {
|
||||
str = Tostr(val)
|
||||
str = c.Tostr(val)
|
||||
}
|
||||
dat = append(dat, str)
|
||||
} else {
|
||||
|
|
@ -551,45 +551,45 @@ func Demo_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
|||
param["landscape"] = true //横向打印
|
||||
param["fixtopage"] = true //打印整个工作表
|
||||
param["toptitle"] = "Demo数据报表"
|
||||
str := General_excel_xml(fields, datas, param, total)
|
||||
filename := "/ud/tmp/" + Todate(-1, "Ymd_His") + Tostr(rand.Intn(8999)+1000) + ".xls"
|
||||
err = FileSave(CiyWebDir+filename, str)
|
||||
str := c.General_excel_xml(fields, datas, param, total)
|
||||
filename := "/ud/tmp/" + c.Todate(-1, "Ymd_His") + c.Tostr(rand.Intn(8999)+1000) + ".xls"
|
||||
err = c.FileSave(c.CiyWebDir+filename, str)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "导出保存文件错误:%v[%v]", err, filename)
|
||||
return c.ErrJSON(w, "导出保存文件错误:%v[%v]", err, filename)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["url"] = filename
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
// if admin.Nopower(CiyDB, userid, "p00e") {
|
||||
// return ErrJSON(w, "您未被授权操作")
|
||||
// if admin.Nopower(c.CiyDB, userid, "p00e") {
|
||||
// return c.ErrJSON(w, "您未被授权操作")
|
||||
// }
|
||||
file := post.Get("file")
|
||||
if FileExist(CiyWebDir+file) != nil {
|
||||
return ErrJSON(w, "文件不存在")
|
||||
if c.FileExist(c.CiyWebDir+file) != nil {
|
||||
return c.ErrJSON(w, "文件不存在")
|
||||
}
|
||||
|
||||
//github.com/qax-os/excelize
|
||||
//github.com/xuri/excelize
|
||||
// github.com/extrame/xls
|
||||
//只支持xlsx格式,其他ole2/xml等格式需使用导入其他依赖库
|
||||
xlFile, err := xlsx.OpenFile(CiyWebDir + file)
|
||||
xlFile, err := xlsx.OpenFile(c.CiyWebDir + file)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "文件打开错误:%v", err)
|
||||
return c.ErrJSON(w, "文件打开错误:%v", err)
|
||||
}
|
||||
datas, err := xlFile.ToSlice()
|
||||
if err != nil {
|
||||
return ErrJSON(w, "文件解析错误:%v", err)
|
||||
return c.ErrJSON(w, "文件解析错误:%v", err)
|
||||
}
|
||||
datacnt := len(datas[0])
|
||||
if datacnt < 2 {
|
||||
return ErrJSON(w, "数据为空")
|
||||
return c.ErrJSON(w, "数据为空")
|
||||
}
|
||||
html := ""
|
||||
headsn := []string{}
|
||||
|
|
@ -637,21 +637,21 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
continue
|
||||
}
|
||||
heads = append(heads, map[string]string{
|
||||
"idx": Tostr(In_array(datas[0][xlsidx-1], hd[0])),
|
||||
"idx": c.Tostr(c.In_array(datas[0][xlsidx-1], hd[0])),
|
||||
"fld": hd[1],
|
||||
"name": hd[0],
|
||||
})
|
||||
}
|
||||
|
||||
code_auditstatus := admin.Getcatas(CiyDB, "auditstatus")
|
||||
code_userid, _, _ := CiyDB.Get(NewCiySQL("xa_user").Column("id,name"))
|
||||
code_menuid, _, _ := CiyDB.Get(NewCiySQL("zc_menu").Column("id,name"))
|
||||
code_isuse := CiyDB.Getdbcodes("ap_demo", "isuse")
|
||||
code_isopen := CiyDB.Getdbcodes("ap_demo", "isopen")
|
||||
code_mauditstatus := admin.Getcatas(CiyDB, "auditstatus")
|
||||
code_prodcata := admin.Getcatas(CiyDB, "prodcata")
|
||||
code_areacode, _, _ := CiyDB.Get(NewCiySQL("ciy_arearpc").Column("id,name,upid"))
|
||||
code_renzheng := admin.Getcatas(CiyDB, "renzheng")
|
||||
code_auditstatus := admin.Getcatas(c.CiyDB, "auditstatus")
|
||||
code_userid, _, _ := c.CiyDB.Get(c.NewCiySQL("xa_user").Column("id,name"))
|
||||
code_menuid, _, _ := c.CiyDB.Get(c.NewCiySQL("zc_menu").Column("id,name"))
|
||||
code_isuse := c.CiyDB.Getdbcodes("ap_demo", "isuse")
|
||||
code_isopen := c.CiyDB.Getdbcodes("ap_demo", "isopen")
|
||||
code_mauditstatus := admin.Getcatas(c.CiyDB, "auditstatus")
|
||||
code_prodcata := admin.Getcatas(c.CiyDB, "prodcata")
|
||||
code_areacode, _, _ := c.CiyDB.Get(c.NewCiySQL("ciy_arearpc").Column("id,name,upid"))
|
||||
code_renzheng := admin.Getcatas(c.CiyDB, "renzheng")
|
||||
|
||||
html += "<div class=\"table\">\n"
|
||||
html += "<table><thead><tr>\n"
|
||||
|
|
@ -664,18 +664,18 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
uniques := make(map[string]any)
|
||||
id := 0
|
||||
for rowidx := xlsidx; rowidx < datacnt; rowidx++ {
|
||||
lineidx := Tostr(rowidx - xlsidx + 1)
|
||||
lineidx := c.Tostr(rowidx - xlsidx + 1)
|
||||
hrhtml := ""
|
||||
firsthtml := "<td><div>" + lineidx + "</div></td>"
|
||||
bempty := true
|
||||
unqs := make([]string, 0)
|
||||
csql := NewCiySQL("ap_demo")
|
||||
csql := c.NewCiySQL("ap_demo")
|
||||
for _, arr := range heads {
|
||||
name := arr["name"]
|
||||
errmsg := "" //数据有误,显示红色说明
|
||||
showdat := "" //显示在表格中的数据
|
||||
if Toint(arr["idx"]) > -1 {
|
||||
showdat = strings.TrimSpace(datas[0][rowidx][Toint(arr["idx"])])
|
||||
if c.Toint(arr["idx"]) > -1 {
|
||||
showdat = strings.TrimSpace(datas[0][rowidx][c.Toint(arr["idx"])])
|
||||
}
|
||||
if showdat == "--" {
|
||||
showdat = ""
|
||||
|
|
@ -688,13 +688,13 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
value = 0
|
||||
showdat = "<kbd>新增</kbd>"
|
||||
} else {
|
||||
id = DeID(showdat)
|
||||
id = c.DeID(showdat)
|
||||
if id == 0 {
|
||||
errmsg = name + "解析错误"
|
||||
} else {
|
||||
csqlchk := NewCiySQL("ap_demo")
|
||||
csqlchk := c.NewCiySQL("ap_demo")
|
||||
csqlchk.Where("id", id).Column("id")
|
||||
chkid := Toint(CiyDB.Get1(csqlchk))
|
||||
chkid := c.Toint(c.CiyDB.Get1(csqlchk))
|
||||
if chkid != id {
|
||||
errmsg = name + "在数据库中不存在"
|
||||
}
|
||||
|
|
@ -705,7 +705,7 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
if showdat == "" {
|
||||
value = 0
|
||||
} else {
|
||||
value = Dcode(code_auditstatus, Tostr(showdat))
|
||||
value = c.Dcode(code_auditstatus, c.Tostr(showdat))
|
||||
if value == -1 {
|
||||
errmsg = name + "文字与系统数据不匹配"
|
||||
}
|
||||
|
|
@ -714,7 +714,7 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
if showdat == "" {
|
||||
value = 0
|
||||
} else {
|
||||
value = Dcode(code_userid, showdat)
|
||||
value = c.Dcode(code_userid, showdat)
|
||||
if value == -1 {
|
||||
errmsg = name + "文字与系统数据不匹配"
|
||||
}
|
||||
|
|
@ -723,11 +723,11 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
if showdat == "" {
|
||||
value = 0
|
||||
} else {
|
||||
value = Tostamp(Tostr(showdat))
|
||||
value = c.Tostamp(c.Tostr(showdat))
|
||||
if value == 0 {
|
||||
errmsg = name + "时间格式错误"
|
||||
} else {
|
||||
showdat = Todate(Toint(value), "Y-m-d H:i:s")
|
||||
showdat = c.Todate(c.Toint(value), "Y-m-d H:i:s")
|
||||
}
|
||||
}
|
||||
} else if name == "默认标题" {
|
||||
|
|
@ -741,7 +741,7 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
if showdat == "" {
|
||||
value = 0
|
||||
} else {
|
||||
value = Dcode(code_menuid, showdat)
|
||||
value = c.Dcode(code_menuid, showdat)
|
||||
if value == -1 {
|
||||
errmsg = name + "文字与系统数据不匹配"
|
||||
}
|
||||
|
|
@ -765,7 +765,7 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
if err != nil {
|
||||
errmsg = name + "不是数字"
|
||||
} else {
|
||||
value = Toint(idat * 1000)
|
||||
value = c.Toint(idat * 1000)
|
||||
showdat += "米"
|
||||
}
|
||||
}
|
||||
|
|
@ -777,7 +777,7 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
if err != nil {
|
||||
errmsg = name + "不是数字"
|
||||
} else {
|
||||
value = Toint(idat * 1000000)
|
||||
value = c.Toint(idat * 1000000)
|
||||
showdat += "万元"
|
||||
}
|
||||
}
|
||||
|
|
@ -785,22 +785,22 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
if showdat == "" {
|
||||
value = 0
|
||||
} else {
|
||||
value = Tostamp(Tostr(showdat))
|
||||
value = c.Tostamp(c.Tostr(showdat))
|
||||
if value == 0 {
|
||||
errmsg = name + "时间格式错误"
|
||||
} else {
|
||||
showdat = Todate(Toint(value), "Y-m-d")
|
||||
showdat = c.Todate(c.Toint(value), "Y-m-d")
|
||||
}
|
||||
}
|
||||
} else if name == "设置时间" {
|
||||
if showdat == "" {
|
||||
value = 0
|
||||
} else {
|
||||
value = Tostamp(Tostr(showdat))
|
||||
value = c.Tostamp(c.Tostr(showdat))
|
||||
if value == 0 {
|
||||
errmsg = name + "时间格式错误"
|
||||
} else {
|
||||
showdat = Todate(Toint(value), "Y-m-d H:i:s")
|
||||
showdat = c.Todate(c.Toint(value), "Y-m-d H:i:s")
|
||||
}
|
||||
}
|
||||
} else if name == "是否使用" {
|
||||
|
|
@ -809,10 +809,10 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
} else {
|
||||
if showdat == code_isuse[0]["name"] {
|
||||
value = 1
|
||||
showdat = Tostr(code_isuse[0]["name"])
|
||||
showdat = c.Tostr(code_isuse[0]["name"])
|
||||
} else {
|
||||
value = 2
|
||||
showdat = Tostr(code_isuse[1]["name"])
|
||||
showdat = c.Tostr(code_isuse[1]["name"])
|
||||
}
|
||||
}
|
||||
} else if name == "是否开启" {
|
||||
|
|
@ -821,10 +821,10 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
} else {
|
||||
if showdat == code_isopen[0]["name"] {
|
||||
value = 1
|
||||
showdat = Tostr(code_isuse[0]["name"])
|
||||
showdat = c.Tostr(code_isuse[0]["name"])
|
||||
} else {
|
||||
value = 2
|
||||
showdat = Tostr(code_isuse[1]["name"])
|
||||
showdat = c.Tostr(code_isuse[1]["name"])
|
||||
}
|
||||
}
|
||||
} else if name == "库存单位" {
|
||||
|
|
@ -850,7 +850,7 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
if unitx != matches[3] {
|
||||
errmsg = name + "中间单位不匹配"
|
||||
} else {
|
||||
value = Tostr(value) + "|" + matches[2] + "|" + matches[1]
|
||||
value = c.Tostr(value) + "|" + matches[2] + "|" + matches[1]
|
||||
}
|
||||
} else {
|
||||
errmsg = name + "第二段格式错误"
|
||||
|
|
@ -866,11 +866,11 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
tdats := strings.Split(showdat, ",")
|
||||
vals := make([]string, 0)
|
||||
for _, da := range tdats {
|
||||
tval := Dcode(code_mauditstatus, da)
|
||||
tval := c.Dcode(code_mauditstatus, da)
|
||||
if tval == -1 {
|
||||
errmsg = name + "文字与系统数据不匹配"
|
||||
}
|
||||
vals = append(vals, Tostr(tval))
|
||||
vals = append(vals, c.Tostr(tval))
|
||||
}
|
||||
value = strings.Join(vals, ",")
|
||||
}
|
||||
|
|
@ -879,7 +879,7 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
value = 0
|
||||
} else {
|
||||
dats := strings.Split(showdat, "-")
|
||||
value = Dcode(code_prodcata, dats[len(dats)-1])
|
||||
value = c.Dcode(code_prodcata, dats[len(dats)-1])
|
||||
if value == -1 {
|
||||
errmsg = name + "文字与系统数据不匹配"
|
||||
}
|
||||
|
|
@ -889,7 +889,7 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
value = 0
|
||||
} else {
|
||||
dats := strings.Split(showdat, "-")
|
||||
value = Dcode(code_areacode, dats[len(dats)-1])
|
||||
value = c.Dcode(code_areacode, dats[len(dats)-1])
|
||||
if value == -1 {
|
||||
errmsg = name + "文字与系统数据不匹配"
|
||||
}
|
||||
|
|
@ -901,7 +901,7 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
dats := strings.Split(showdat, ",")
|
||||
tdat := 0
|
||||
for _, da := range dats {
|
||||
bti := Dcode(code_renzheng, da)
|
||||
bti := c.Dcode(code_renzheng, da)
|
||||
if bti == -1 {
|
||||
errmsg = name + "文字与系统数据不匹配"
|
||||
}
|
||||
|
|
@ -914,7 +914,7 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
value = 0
|
||||
} else {
|
||||
last := showdat[len(showdat)-3:]
|
||||
dd := Toint(showdat[:len(showdat)-3])
|
||||
dd := c.Toint(showdat[:len(showdat)-3])
|
||||
if dd == 0 {
|
||||
errmsg = name + "周期数字错误"
|
||||
} else if last == "天" {
|
||||
|
|
@ -957,7 +957,7 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
if err != nil {
|
||||
errmsg = name + "不是数字"
|
||||
} else {
|
||||
value = Toint(idat * 1000000)
|
||||
value = c.Toint(idat * 1000000)
|
||||
showdat += "吨"
|
||||
}
|
||||
}
|
||||
|
|
@ -969,7 +969,7 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
if err != nil {
|
||||
errmsg = name + "不是数字"
|
||||
} else {
|
||||
value = Toint(idat * 100)
|
||||
value = c.Toint(idat * 100)
|
||||
showdat += "元"
|
||||
}
|
||||
}
|
||||
|
|
@ -1016,7 +1016,7 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
if err != nil {
|
||||
errmsg = name + "不是数字"
|
||||
} else {
|
||||
value = Toint(idat * 1000)
|
||||
value = c.Toint(idat * 1000)
|
||||
showdat += "KG"
|
||||
}
|
||||
}
|
||||
|
|
@ -1028,7 +1028,7 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
if err != nil {
|
||||
errmsg = name + "不是数字"
|
||||
} else {
|
||||
value = Toint(idat * 1000)
|
||||
value = c.Toint(idat * 1000)
|
||||
showdat += "℃"
|
||||
}
|
||||
}
|
||||
|
|
@ -1038,7 +1038,7 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
bempty = false
|
||||
}
|
||||
if errmsg == "" {
|
||||
hrhtml += "<td><div>" + showdat + "<input type=\"hidden\" name=\"" + Tostr(arr["fld"]) + "_" + lineidx + "\" value=\"" + Tostr(value) + "\"/>" + ext + "</div></td>"
|
||||
hrhtml += "<td><div>" + showdat + "<input type=\"hidden\" name=\"" + c.Tostr(arr["fld"]) + "_" + lineidx + "\" value=\"" + c.Tostr(value) + "\"/>" + ext + "</div></td>"
|
||||
} else {
|
||||
hrhtml += "<td><div style=\"background:#ffe8c5;\" title=\"#" + lineidx + ":" + errmsg + "\">" + showdat + "</div></td>"
|
||||
}
|
||||
|
|
@ -1054,7 +1054,7 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
} else {
|
||||
uniques[unq] = true
|
||||
csql.Column("id")
|
||||
chkid := Toint(CiyDB.Get1(csql))
|
||||
chkid := c.Toint(c.CiyDB.Get1(csql))
|
||||
if chkid > 0 && ((id > 0 && chkid != id) || id == 0) {
|
||||
firsthtml = "<td style=\"background:#ffe8c5;\" title=\"#" + lineidx + ":该行与数据库数据有重复\"><div class=\"lang\">重复</div></td>"
|
||||
}
|
||||
|
|
@ -1069,23 +1069,23 @@ func Demo_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
html += "</tbody>\n"
|
||||
html += "</table>\n"
|
||||
html += "</div>\n"
|
||||
html += "<input type=\"hidden\" name=\"total\" value=\"" + Tostr(cnt) + "\"/>\n"
|
||||
html += "<code>共" + Tostr(cnt) + "条数据</code>\n"
|
||||
return SuccJSON(w, map[string]any{
|
||||
html += "<input type=\"hidden\" name=\"total\" value=\"" + c.Tostr(cnt) + "\"/>\n"
|
||||
html += "<code>共" + c.Tostr(cnt) + "条数据</code>\n"
|
||||
return c.SuccJSON(w, map[string]any{
|
||||
"html": html,
|
||||
"count": cnt,
|
||||
})
|
||||
}
|
||||
func Demo_importxls_data(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
total := post.Getint("total")
|
||||
err := CiyDB.Tran(func() error {
|
||||
err := c.CiyDB.Tran(func() error {
|
||||
for i := 1; i <= total; i++ {
|
||||
istr := Tostr(i)
|
||||
istr := c.Tostr(i)
|
||||
id := post.Getint("id_" + istr)
|
||||
auditstatus := post.Get("auditstatus_" + istr)
|
||||
audituser := post.Get("audituser_" + istr)
|
||||
|
|
@ -1117,10 +1117,10 @@ func Demo_importxls_data(w http.ResponseWriter, r *http.Request) bool {
|
|||
weightg := post.Get("weightg_" + istr)
|
||||
eartmpr := post.Get("eartmpr_" + istr)
|
||||
content := post.Get("content_" + istr)
|
||||
csql := NewCiySQL("ap_demo")
|
||||
csql := c.NewCiySQL("ap_demo")
|
||||
csql.Where("name", name)
|
||||
csql.Column("id")
|
||||
chkid := Toint(CiyDB.Get1(csql))
|
||||
chkid := c.Toint(c.CiyDB.Get1(csql))
|
||||
if chkid > 0 && ((id > 0 && chkid != id) || id == 0) {
|
||||
return fmt.Errorf("发现数据有重复")
|
||||
}
|
||||
|
|
@ -1155,14 +1155,14 @@ func Demo_importxls_data(w http.ResponseWriter, r *http.Request) bool {
|
|||
updata["weightg"] = weightg
|
||||
updata["eartmpr"] = eartmpr
|
||||
updata["content"] = content
|
||||
updata["addtimes"] = Tostamp()
|
||||
csql = NewCiySQL("ap_demo")
|
||||
updata["addtimes"] = c.Tostamp()
|
||||
csql = c.NewCiySQL("ap_demo")
|
||||
var err error
|
||||
if id == 0 {
|
||||
_, err = CiyDB.Insert(csql, updata)
|
||||
_, err = c.CiyDB.Insert(csql, updata)
|
||||
} else {
|
||||
csql.Where("id", id)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
}
|
||||
if err != nil {
|
||||
return fmt.Errorf("导入失败:%v", err)
|
||||
|
|
@ -1171,7 +1171,7 @@ func Demo_importxls_data(w http.ResponseWriter, r *http.Request) bool {
|
|||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, err.Error())
|
||||
return c.ErrJSON(w, err.Error())
|
||||
}
|
||||
return SuccJSON(w)
|
||||
return c.SuccJSON(w)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,24 +5,24 @@ import (
|
|||
"net/http"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func paper_setwhere(post *CiyPost) (map[string]any, *CiySQL) {
|
||||
func paper_setwhere(post *c.CiyPost) (map[string]any, *c.CiySQL) {
|
||||
query := post.Getobj("query")
|
||||
csql := NewCiySQL("ap_paper")
|
||||
csql.Where("name like", Getstr(query, "name"))
|
||||
csql.Where_numrange("readcnt", Getstr(query, "readcnt_1"), Getstr(query, "readcnt_2"), 1)
|
||||
csql.Where("inputuser", Getstr(query, "inputuser"))
|
||||
csql.Where_daterange("uptimes", Getstr(query, "uptimes"))
|
||||
order := Getstr(query, "order", "id desc")
|
||||
csql := c.NewCiySQL("ap_paper")
|
||||
csql.Where("name like", c.Getstr(query, "name"))
|
||||
csql.Where_numrange("readcnt", c.Getstr(query, "readcnt_1"), c.Getstr(query, "readcnt_2"), 1)
|
||||
csql.Where("inputuser", c.Getstr(query, "inputuser"))
|
||||
csql.Where_daterange("uptimes", c.Getstr(query, "uptimes"))
|
||||
order := c.Getstr(query, "order", "id desc")
|
||||
csql.Order(order)
|
||||
query["order"] = order
|
||||
return query, csql
|
||||
}
|
||||
func Paper_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
|
|
@ -31,9 +31,9 @@ func Paper_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
pagecount := post.Getint("pagecount", 10)
|
||||
csql.Limit(pageno, pagecount)
|
||||
csql.Column("!content")
|
||||
rows, mainrowcount, err := CiyDB.Get(csql, post.Getint("count"))
|
||||
rows, mainrowcount, err := c.CiyDB.Get(csql, post.Getint("count"))
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["where"] = where
|
||||
|
|
@ -42,8 +42,8 @@ func Paper_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
ret["count"] = mainrowcount
|
||||
ret["list"] = rows
|
||||
if post.Getbool("field") {
|
||||
field, fshow := CiyDB.GetField(csql)
|
||||
FieldAdd(&field, &fshow, 0, "_btn", "操作")
|
||||
field, fshow := c.CiyDB.GetField(csql)
|
||||
c.FieldAdd(&field, &fshow, 0, "_btn", "操作")
|
||||
field["name"]["thwidth"] = "30em"
|
||||
field["readcnt"]["order"] = "r"
|
||||
ret["fshow"] = fshow
|
||||
|
|
@ -79,43 +79,43 @@ func Paper_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
once["input"] = input
|
||||
ret["once"] = once
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Paper_update(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p10201u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p10201u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
id := post.Getint("id")
|
||||
name := post.Get("name")
|
||||
title := post.Get("title")
|
||||
if name == "" {
|
||||
return ErrJSON(w, "请填写文档标题")
|
||||
return c.ErrJSON(w, "请填写文档标题")
|
||||
}
|
||||
content := post.Get("content", CIYPOST_ALLOW_HTML)
|
||||
content := post.Get("content", c.CIYPOST_ALLOW_HTML)
|
||||
if content == "" {
|
||||
return ErrJSON(w, "请填写内容")
|
||||
return c.ErrJSON(w, "请填写内容")
|
||||
}
|
||||
var err error
|
||||
var datarow map[string]any
|
||||
if id > 0 {
|
||||
csql := NewCiySQL("ap_paper")
|
||||
csql := c.NewCiySQL("ap_paper")
|
||||
csql.Where("id", id)
|
||||
datarow, err = CiyDB.Getone(csql)
|
||||
datarow, err = c.CiyDB.Getone(csql)
|
||||
if datarow == nil {
|
||||
return ErrJSON(w, "数据不存在", err)
|
||||
return c.ErrJSON(w, "数据不存在", err)
|
||||
}
|
||||
}
|
||||
err = CiyDB.Tran(func() error {
|
||||
var csql *CiySQL
|
||||
csql = NewCiySQL("ap_paper")
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
var csql *c.CiySQL
|
||||
csql = c.NewCiySQL("ap_paper")
|
||||
csql.Where("name", name)
|
||||
csql.Column("id")
|
||||
chkid := Toint(CiyDB.Get1(csql))
|
||||
chkid := c.Toint(c.CiyDB.Get1(csql))
|
||||
if chkid > 0 && ((id > 0 && chkid != id) || id == 0) {
|
||||
return fmt.Errorf("数据已存在")
|
||||
}
|
||||
|
|
@ -123,30 +123,30 @@ func Paper_update(w http.ResponseWriter, r *http.Request) bool {
|
|||
updata["name"] = name
|
||||
updata["title"] = title
|
||||
updata["inputuser"] = userid
|
||||
updata["uptimes"] = Tostamp()
|
||||
updata["uptimes"] = c.Tostamp()
|
||||
updata["content"] = content
|
||||
csql = NewCiySQL("ap_paper")
|
||||
csql = c.NewCiySQL("ap_paper")
|
||||
if id > 0 {
|
||||
csql.Where("id", id)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
} else {
|
||||
id, err = CiyDB.Insert(csql, updata)
|
||||
id, err = c.CiyDB.Insert(csql, updata)
|
||||
updata["newid"] = id
|
||||
}
|
||||
if err != nil {
|
||||
return fmt.Errorf("更新失败:%v", err)
|
||||
}
|
||||
admin.SaveLogDB(CiyDB, "ap_paper", datarow, updata)
|
||||
admin.SaveLogDB(c.CiyDB, "ap_paper", datarow, updata)
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
return SuccJSON(w)
|
||||
return c.SuccJSON(w)
|
||||
}
|
||||
func Paper_getdata(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
|
|
@ -154,45 +154,45 @@ func Paper_getdata(w http.ResponseWriter, r *http.Request) bool {
|
|||
data := post.Getbool("data")
|
||||
ret := map[string]any{}
|
||||
if data {
|
||||
csql := NewCiySQL("ap_paper")
|
||||
csql := c.NewCiySQL("ap_paper")
|
||||
csql.Where("id", id)
|
||||
var err error
|
||||
ret["data"], err = CiyDB.Getone(csql)
|
||||
ret["data"], err = c.CiyDB.Getone(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取失败:"+err.Error())
|
||||
return c.ErrJSON(w, "读取失败:"+err.Error())
|
||||
}
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Paper_del(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p10201d") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p10201d") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
ids := post.Get("ids")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
csql := NewCiySQL("ap_paper")
|
||||
csql := c.NewCiySQL("ap_paper")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据错误", err)
|
||||
return c.ErrJSON(w, "读取数据错误", err)
|
||||
}
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
rowid := Toint(row["id"])
|
||||
Delme(CiyDB, rowid, "ap_paper")
|
||||
admin.SaveLogDB(CiyDB, "ap_paper", row, nil)
|
||||
rowid := c.Toint(row["id"])
|
||||
c.Delme(c.CiyDB, rowid, "ap_paper")
|
||||
admin.SaveLogDB(c.CiyDB, "ap_paper", row, nil)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
return SuccJSON(w)
|
||||
return c.SuccJSON(w)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package autotask
|
||||
|
||||
import (
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
|
|
@ -21,28 +21,28 @@ func srvstats(systemrow map[string]any) string {
|
|||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
fmt.Println("srvstats panic:", r)
|
||||
Log.Error("AUTO", "srvstats panic:"+r.(string))
|
||||
c.Log.Error("AUTO", "srvstats panic:"+r.(string))
|
||||
}
|
||||
}()
|
||||
func_succ := CiyVars.Func_succ
|
||||
func_fail := CiyVars.Func_fail
|
||||
func_commit := CiyVars.Func_commit
|
||||
func_rollback := CiyVars.Func_rollback
|
||||
func_succ := c.CiyVars.Func_succ
|
||||
func_fail := c.CiyVars.Func_fail
|
||||
func_commit := c.CiyVars.Func_commit
|
||||
func_rollback := c.CiyVars.Func_rollback
|
||||
func_runms := 0
|
||||
if func_succ+func_fail > 0 {
|
||||
func_runms = CiyVars.Func_runms / (func_commit + func_rollback + 1)
|
||||
func_runms = c.CiyVars.Func_runms / (func_commit + func_rollback + 1)
|
||||
}
|
||||
CiyVars.Func_succ = 0
|
||||
CiyVars.Func_fail = 0
|
||||
CiyVars.Func_commit = 0
|
||||
CiyVars.Func_rollback = 0
|
||||
CiyVars.Func_runms = 0
|
||||
disk := Ciy_sys_getdisk("/")
|
||||
disk2 := Ciy_sys_getdisk("/data")
|
||||
c.CiyVars.Func_succ = 0
|
||||
c.CiyVars.Func_fail = 0
|
||||
c.CiyVars.Func_commit = 0
|
||||
c.CiyVars.Func_rollback = 0
|
||||
c.CiyVars.Func_runms = 0
|
||||
disk := c.Ciy_sys_getdisk("/")
|
||||
disk2 := c.Ciy_sys_getdisk("/data")
|
||||
disk_sysfree := disk["free"]
|
||||
disk_datafree := disk2["free"]
|
||||
starttime := Timems()
|
||||
fpath := CiyWebDir + "/ud/_" + Tostr(Tostamp()) + ".bin"
|
||||
starttime := c.Timems()
|
||||
fpath := c.CiyWebDir + "/ud/_" + c.Tostr(c.Tostamp()) + ".bin"
|
||||
fsize := 1024 * 1024 // 1MB
|
||||
fcontent := make([]byte, fsize)
|
||||
for i := 0; i < fsize; i++ {
|
||||
|
|
@ -50,26 +50,26 @@ func srvstats(systemrow map[string]any) string {
|
|||
}
|
||||
f, err := os.Create(fpath)
|
||||
if err != nil {
|
||||
Log.Error("FILE", "创建临时文件失败"+fpath+":"+err.Error())
|
||||
c.Log.Error("FILE", "创建临时文件失败"+fpath+":"+err.Error())
|
||||
} else {
|
||||
f.Write(fcontent)
|
||||
f.Close()
|
||||
rcontent, err := os.ReadFile(fpath)
|
||||
if err != nil {
|
||||
Log.Error("FILE", "读取临时文件失败")
|
||||
c.Log.Error("FILE", "读取临时文件失败")
|
||||
} else {
|
||||
for i := 0; i < fsize; i++ {
|
||||
if fcontent[i] != rcontent[i] {
|
||||
Log.Error("FILE", "写入临时文件校验失败")
|
||||
c.Log.Error("FILE", "写入临时文件校验失败")
|
||||
break
|
||||
}
|
||||
}
|
||||
os.Remove(fpath)
|
||||
}
|
||||
}
|
||||
disk_ioms := Timems() - starttime
|
||||
disk_ioms := c.Timems() - starttime
|
||||
|
||||
output := RunCmd("ps", "aux", "-A")
|
||||
output := c.RunCmd("ps", "aux", "-A")
|
||||
cmddb := []string{"mysql", "mysqld"}
|
||||
cmdweb := []string{"nginx", "php", "WorkerMan", "mosquitto", "gitea", "/zgo"}
|
||||
cpu := map[string]float64{"db": 0, "web": 0, "oth": 0}
|
||||
|
|
@ -81,8 +81,8 @@ func srvstats(systemrow map[string]any) string {
|
|||
}
|
||||
_nextspace(&line)
|
||||
_nextspace(&line)
|
||||
cpup := Tofloat(_nextspace(&line))
|
||||
memp := Tofloat(_nextspace(&line))
|
||||
cpup := c.Tofloat(_nextspace(&line))
|
||||
memp := c.Tofloat(_nextspace(&line))
|
||||
_nextspace(&line) // 虚拟内存
|
||||
_nextspace(&line) // 物理内存 包括共享内存
|
||||
_nextspace(&line)
|
||||
|
|
@ -101,14 +101,14 @@ func srvstats(systemrow map[string]any) string {
|
|||
}
|
||||
}
|
||||
|
||||
output = RunCmd("free", "-m")
|
||||
output = c.RunCmd("free", "-m")
|
||||
mem_free := 0
|
||||
matches := regexp.MustCompile(`Mem:\s+(\d+)`).FindStringSubmatch(output[1])
|
||||
if len(matches) > 1 {
|
||||
mem_free = Toint(Tofloat(matches[1]) * (100 - cpu["db"] - cpu["web"] - cpu["oth"]) * 1024 * 1024 / 100)
|
||||
mem_free = c.Toint(c.Tofloat(matches[1]) * (100 - cpu["db"] - cpu["web"] - cpu["oth"]) * 1024 * 1024 / 100)
|
||||
}
|
||||
|
||||
output = RunCmd("sh", "-c", "netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'")
|
||||
output = c.RunCmd("sh", "-c", "netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'")
|
||||
net_tcp := 0
|
||||
for _, line := range output {
|
||||
ls := strings.Split(line, " ")
|
||||
|
|
@ -118,23 +118,23 @@ func srvstats(systemrow map[string]any) string {
|
|||
if len(ls) < 2 {
|
||||
continue
|
||||
}
|
||||
net_tcp += Toint(ls[1])
|
||||
net_tcp += c.Toint(ls[1])
|
||||
}
|
||||
starttime = Timems()
|
||||
starttime = c.Timems()
|
||||
resp, err := http.Get("https://www.baidu.com")
|
||||
if err == nil {
|
||||
resp.Body.Close()
|
||||
}
|
||||
net_ioms := Timems() - starttime
|
||||
net_ioms := c.Timems() - starttime
|
||||
|
||||
dbrows, err := CiyDB.Getraw("show global status")
|
||||
dbrows, err := c.CiyDB.Getraw("show global status")
|
||||
if err != nil {
|
||||
Log.Error("FILE", "执行show global status失败")
|
||||
c.Log.Error("FILE", "执行show global status失败")
|
||||
}
|
||||
dbstat := map[string]float64{}
|
||||
for _, row := range dbrows {
|
||||
name := Tostr(row["Variable_name"])
|
||||
val := Tofloat(row["Value"])
|
||||
name := c.Tostr(row["Variable_name"])
|
||||
val := c.Tofloat(row["Value"])
|
||||
dbstat[name] = val
|
||||
}
|
||||
db_keyhit := dbstat["Handler_read_key"] / (dbstat["Com_select"] + 1) * 100
|
||||
|
|
@ -167,13 +167,13 @@ func srvstats(systemrow map[string]any) string {
|
|||
updata["db_dbhit"] = db_dbhit
|
||||
updata["db_tmptable"] = db_tmptable
|
||||
updata["db_lock"] = dbstat["Innodb_row_lock_current_waits"]
|
||||
updata["addtimes"] = Tostamp()
|
||||
csql := NewCiySQL("zc_stats")
|
||||
CiyDB.Insert(csql, updata)
|
||||
updata["addtimes"] = c.Tostamp()
|
||||
csql := c.NewCiySQL("zc_stats")
|
||||
c.CiyDB.Insert(csql, updata)
|
||||
|
||||
retmsg := "succ: " + Tostr(func_succ)
|
||||
retmsg := "succ: " + c.Tostr(func_succ)
|
||||
if func_rollback > 0 {
|
||||
retmsg += ", rollback: " + Tostr(func_rollback)
|
||||
retmsg += ", rollback: " + c.Tostr(func_rollback)
|
||||
}
|
||||
return retmsg
|
||||
}
|
||||
|
|
@ -181,7 +181,7 @@ func dayclean(systemrow map[string]any) string {
|
|||
maxAge := 3 * 24 * time.Hour
|
||||
cnt := 0
|
||||
errcnt := 0
|
||||
filepath.Walk(CiyWebDir+"/ud/tmp", func(path string, info os.FileInfo, err error) error {
|
||||
filepath.Walk(c.CiyWebDir+"/ud/tmp", func(path string, info os.FileInfo, err error) error {
|
||||
if err != nil {
|
||||
_tasklog(systemrow, "出现错误:"+err.Error())
|
||||
return err
|
||||
|
|
@ -199,9 +199,9 @@ func dayclean(systemrow map[string]any) string {
|
|||
}
|
||||
return nil
|
||||
})
|
||||
retmsg := "clean: " + Tostr(cnt)
|
||||
retmsg := "clean: " + c.Tostr(cnt)
|
||||
if errcnt > 0 {
|
||||
retmsg += ", err: " + Tostr(errcnt)
|
||||
retmsg += ", err: " + c.Tostr(errcnt)
|
||||
}
|
||||
return retmsg
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package autotask
|
|||
|
||||
import (
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"time"
|
||||
|
|
@ -12,7 +12,7 @@ func _runtaskfunc(systemrow map[string]any, runfunc string) string {
|
|||
symbol := funcindex()
|
||||
defer func() {
|
||||
if err := recover(); err != nil {
|
||||
Log.Error("AUTO", fmt.Sprintf("函数执行出错:%v", err))
|
||||
c.Log.Error("AUTO", fmt.Sprintf("函数执行出错:%v", err))
|
||||
}
|
||||
}()
|
||||
if _, ok := symbol[runfunc]; !ok {
|
||||
|
|
@ -22,10 +22,10 @@ func _runtaskfunc(systemrow map[string]any, runfunc string) string {
|
|||
}
|
||||
func Main() bool {
|
||||
for {
|
||||
csql := NewCiySQL("zc_autotask")
|
||||
csql := c.NewCiySQL("zc_autotask")
|
||||
csql.Where("autotaskstatus<", 90)
|
||||
csql.Where("nexttimes<=", Tostamp())
|
||||
systemrow, err := CiyDB.Getone(csql)
|
||||
csql.Where("nexttimes<=", c.Tostamp())
|
||||
systemrow, err := c.CiyDB.Getone(csql)
|
||||
if err != nil {
|
||||
return _returnerr(err)
|
||||
}
|
||||
|
|
@ -37,38 +37,38 @@ func Main() bool {
|
|||
return true
|
||||
}
|
||||
func Task_main(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
rsuser, err := admin.Verifyuser(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
rsuser, err := admin.Verifyuser(c.CiyDB, post)
|
||||
if err != nil {
|
||||
w.Write([]byte("您未登录"))
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, Toint(rsuser["id"]), "p602r") {
|
||||
if admin.Nopower(c.CiyDB, c.Toint(rsuser["id"]), "p602r") {
|
||||
w.Write([]byte("您未被授权操作"))
|
||||
return false
|
||||
}
|
||||
runid := post.Getint("runid")
|
||||
csql := NewCiySQL("zc_autotask")
|
||||
csql := c.NewCiySQL("zc_autotask")
|
||||
csql.Where("id", runid)
|
||||
taskrow, err := CiyDB.Getone(csql)
|
||||
taskrow, err := c.CiyDB.Getone(csql)
|
||||
if taskrow == nil {
|
||||
w.Write([]byte("任务ID不存在:" + Tostr(runid)))
|
||||
w.Write([]byte("任务ID不存在:" + c.Tostr(runid)))
|
||||
return false
|
||||
}
|
||||
autotaskstatus := Toint(taskrow["autotaskstatus"])
|
||||
autotaskstatus := c.Toint(taskrow["autotaskstatus"])
|
||||
if autotaskstatus == 30 {
|
||||
return ErrJSON(w, "任务正在执行中", err)
|
||||
return c.ErrJSON(w, "任务正在执行中", err)
|
||||
}
|
||||
runtaskid, err2 := _run(taskrow, "zc_auto")
|
||||
if err2 != nil {
|
||||
return ErrJSON(w, "任务执行失败:"+Tostr(runid), err2)
|
||||
return c.ErrJSON(w, "任务执行失败:"+c.Tostr(runid), err2)
|
||||
}
|
||||
csql = NewCiySQL("zc_autotsk_run")
|
||||
csql = c.NewCiySQL("zc_autotsk_run")
|
||||
csql.Where("id", runtaskid)
|
||||
tskrunrow, _ := CiyDB.Getone(csql)
|
||||
csql = NewCiySQL("zc_autotsk_log")
|
||||
tskrunrow, _ := c.CiyDB.Getone(csql)
|
||||
csql = c.NewCiySQL("zc_autotsk_log")
|
||||
csql.Where("runtaskid", runtaskid)
|
||||
tsklogrows, _, _ := CiyDB.Get(csql)
|
||||
tsklogrows, _, _ := c.CiyDB.Get(csql)
|
||||
|
||||
html := ""
|
||||
html += "<!DOCTYPE html> <html><head>"
|
||||
|
|
@ -76,17 +76,17 @@ func Task_main(w http.ResponseWriter, r *http.Request) bool {
|
|||
html += "<title>AutoTask Running</title>"
|
||||
html += "</head><body>"
|
||||
html += "<table border='1' style='border-collapse:collapse;font-size:0.8em;' cellpadding='5px'>"
|
||||
html += "<tr><td>任务名称</td><td>" + Tostr(taskrow["name"]) + "</td></tr>"
|
||||
html += "<tr><td>入口函数</td><td>" + Tostr(taskrow["runfunc"]) + "</td></tr>"
|
||||
html += "<tr><td>执行参数</td><td>" + Tostr(taskrow["runparam"]) + "</td></tr>"
|
||||
html += "<tr><td>执行时长</td><td>" + Tostr(tskrunrow["runsec"]) + "s</td></tr>"
|
||||
html += "<tr><td>任务简报</td><td>" + Tostr(tskrunrow["msg"]) + "</td></tr>"
|
||||
html += "<tr><td>任务名称</td><td>" + c.Tostr(taskrow["name"]) + "</td></tr>"
|
||||
html += "<tr><td>入口函数</td><td>" + c.Tostr(taskrow["runfunc"]) + "</td></tr>"
|
||||
html += "<tr><td>执行参数</td><td>" + c.Tostr(taskrow["runparam"]) + "</td></tr>"
|
||||
html += "<tr><td>执行时长</td><td>" + c.Tostr(tskrunrow["runsec"]) + "s</td></tr>"
|
||||
html += "<tr><td>任务简报</td><td>" + c.Tostr(tskrunrow["msg"]) + "</td></tr>"
|
||||
html += "</table>"
|
||||
if len(tsklogrows) > 0 {
|
||||
html += "<br/><table border='1' style='border-collapse:collapse;font-size:0.8em;' cellpadding='5px'>"
|
||||
html += "<tr><td>时间</td><td>数据</td></tr>"
|
||||
for _, row := range tsklogrows {
|
||||
html += "<tr><td>" + Todate(Toint(row["addtimes"])) + "</td><td>" + Tostr(row["msg"]) + "</td></tr>"
|
||||
html += "<tr><td>" + c.Todate(c.Toint(row["addtimes"])) + "</td><td>" + c.Tostr(row["msg"]) + "</td></tr>"
|
||||
}
|
||||
html += "</table>"
|
||||
} else {
|
||||
|
|
@ -98,17 +98,17 @@ func Task_main(w http.ResponseWriter, r *http.Request) bool {
|
|||
}
|
||||
func _run(systemrow map[string]any, table string) (int, error) {
|
||||
|
||||
runfunc := Tostr(systemrow["runfunc"])
|
||||
runfunc := c.Tostr(systemrow["runfunc"])
|
||||
if runfunc == "" || runfunc[0] == '_' {
|
||||
return 0, fmt.Errorf("入口函数设置错误:%s", runfunc)
|
||||
}
|
||||
sysid := Toint(systemrow["id"])
|
||||
nexttimes := Toint(systemrow["nexttimes"])
|
||||
runtimes := Toint(systemrow["runtimes"])
|
||||
runcycle := Toint(systemrow["runcycle"])
|
||||
autotaskstatus := Toint(systemrow["autotaskstatus"])
|
||||
sysid := c.Toint(systemrow["id"])
|
||||
nexttimes := c.Toint(systemrow["nexttimes"])
|
||||
runtimes := c.Toint(systemrow["runtimes"])
|
||||
runcycle := c.Toint(systemrow["runcycle"])
|
||||
autotaskstatus := c.Toint(systemrow["autotaskstatus"])
|
||||
for {
|
||||
if nexttimes > Tostamp() {
|
||||
if nexttimes > c.Tostamp() {
|
||||
break
|
||||
}
|
||||
if runcycle < 0 {
|
||||
|
|
@ -122,41 +122,41 @@ func _run(systemrow map[string]any, table string) (int, error) {
|
|||
updata := make(map[string]any)
|
||||
runningmsg := "任务执行中,本次跳过"
|
||||
if autotaskstatus == 30 {
|
||||
if runtimes < Tostamp()-3600 {
|
||||
if runtimes < c.Tostamp()-3600 {
|
||||
updata["autotaskstatus"] = 20
|
||||
runningmsg = "任务执行中,超过1小时,强制复位"
|
||||
}
|
||||
} else {
|
||||
updata["autotaskstatus"] = 30
|
||||
updata["runtimes"] = Tostamp()
|
||||
updata["runtimes"] = c.Tostamp()
|
||||
}
|
||||
updata["nexttimes"] = nexttimes
|
||||
csql := NewCiySQL(table + "task")
|
||||
csql := c.NewCiySQL(table + "task")
|
||||
csql.Where("id", sysid)
|
||||
_, err := CiyDB.Update(csql, updata)
|
||||
_, err := c.CiyDB.Update(csql, updata)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
if autotaskstatus == 30 {
|
||||
updata = make(map[string]any)
|
||||
updata["autotaskid"] = sysid
|
||||
updata["addtimes"] = Tostamp()
|
||||
updata["addtimes"] = c.Tostamp()
|
||||
updata["runsec"] = -1
|
||||
updata["logcnt"] = 0
|
||||
updata["msg"] = runningmsg
|
||||
csql = NewCiySQL(table + "tsk_run")
|
||||
_, err = CiyDB.Insert(csql, updata)
|
||||
csql = c.NewCiySQL(table + "tsk_run")
|
||||
_, err = c.CiyDB.Insert(csql, updata)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return 0, nil
|
||||
}
|
||||
runlogstart := Tostamp()
|
||||
runlogstart := c.Tostamp()
|
||||
updata = make(map[string]any)
|
||||
updata["autotaskid"] = sysid
|
||||
updata["addtimes"] = runlogstart
|
||||
csql = NewCiySQL(table + "tsk_run")
|
||||
runtaskid, err2 := CiyDB.Insert(csql, updata)
|
||||
csql = c.NewCiySQL(table + "tsk_run")
|
||||
runtaskid, err2 := c.CiyDB.Insert(csql, updata)
|
||||
if err2 != nil {
|
||||
return 0, err2
|
||||
}
|
||||
|
|
@ -168,40 +168,40 @@ func _run(systemrow map[string]any, table string) (int, error) {
|
|||
updata = make(map[string]any)
|
||||
updata["autotaskstatus"] = 20
|
||||
updata["runtimes"] = 0
|
||||
csql = NewCiySQL(table + "task")
|
||||
csql = c.NewCiySQL(table + "task")
|
||||
csql.Where("id", sysid)
|
||||
_, err2 = CiyDB.Update(csql, updata)
|
||||
_, err2 = c.CiyDB.Update(csql, updata)
|
||||
if err2 != nil {
|
||||
return 0, err2
|
||||
}
|
||||
csql = NewCiySQL(table + "tsk_log")
|
||||
csql = c.NewCiySQL(table + "tsk_log")
|
||||
csql.Where("runtaskid", runtaskid)
|
||||
logcnt := Toint(CiyDB.Get1(csql))
|
||||
logcnt := c.Toint(c.CiyDB.Get1(csql))
|
||||
|
||||
updata = make(map[string]any)
|
||||
updata["runsec"] = Tostamp() - runlogstart
|
||||
updata["runsec"] = c.Tostamp() - runlogstart
|
||||
updata["msg"] = errmsg
|
||||
updata["logcnt"] = logcnt
|
||||
csql = NewCiySQL(table + "tsk_run")
|
||||
csql = c.NewCiySQL(table + "tsk_run")
|
||||
csql.Where("id", runtaskid)
|
||||
_, err2 = CiyDB.Update(csql, updata)
|
||||
_, err2 = c.CiyDB.Update(csql, updata)
|
||||
if err2 != nil {
|
||||
return 0, err2
|
||||
}
|
||||
return runtaskid, nil
|
||||
}
|
||||
func _returnerr(err error) bool {
|
||||
Log.Error("AUTO", fmt.Sprintf("运行出错:%v", err))
|
||||
c.Log.Error("AUTO", fmt.Sprintf("运行出错:%v", err))
|
||||
return false
|
||||
}
|
||||
func _tasklog(systemrow map[string]any, msg string) {
|
||||
updata := make(map[string]any)
|
||||
updata["autotaskid"] = systemrow["id"]
|
||||
updata["runtaskid"] = systemrow["runtaskid"]
|
||||
updata["addtimes"] = Tostamp()
|
||||
updata["addtimes"] = c.Tostamp()
|
||||
updata["msg"] = msg
|
||||
csql := NewCiySQL(Tostr(systemrow["table"]) + "tsk_log")
|
||||
_, err := CiyDB.Insert(csql, updata)
|
||||
csql := c.NewCiySQL(c.Tostr(systemrow["table"]) + "tsk_log")
|
||||
_, err := c.CiyDB.Insert(csql, updata)
|
||||
if err != nil {
|
||||
_returnerr(err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import (
|
|||
"fmt"
|
||||
"strings"
|
||||
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
var Gtokenfield string //header api field
|
||||
|
|
@ -15,69 +15,69 @@ func init() {
|
|||
Gtokensalt = "ast34h$2"
|
||||
Gdefpass = "1q2w"
|
||||
}
|
||||
func Verifyfast(db *CiyMysql, post *CiyPost) (map[string]any, int) {
|
||||
rsuser, err := Verifyuser(CiyDB, post)
|
||||
func Verifyfast(db *c.CiyMysql, post *c.CiyPost) (map[string]any, int) {
|
||||
rsuser, err := Verifyuser(c.CiyDB, post)
|
||||
if err != nil {
|
||||
ErrJSON(post.W, "请重新登录", 2)
|
||||
c.ErrJSON(post.W, "请重新登录", 2)
|
||||
return nil, 0
|
||||
}
|
||||
return rsuser, Toint(rsuser["id"])
|
||||
return rsuser, c.Toint(rsuser["id"])
|
||||
}
|
||||
|
||||
func Verifyuser(db *CiyMysql, post *CiyPost) (map[string]any, error) {
|
||||
func Verifyuser(db *c.CiyMysql, post *c.CiyPost) (map[string]any, error) {
|
||||
ciyauth := post.R.Header.Get(Gtokenfield)
|
||||
if ciyauth == "" {
|
||||
ciyauth = GetQuery("_"+Gtokenfield, post.R)
|
||||
ciyauth = c.GetQuery("_"+Gtokenfield, post.R)
|
||||
}
|
||||
if ciyauth == "" {
|
||||
return nil, fmt.Errorf("verify nofind %v in header or query", Gtokenfield)
|
||||
}
|
||||
auth := Str_JSON(Encrypt(ciyauth, "D", Gtokensalt))
|
||||
auth := c.Str_JSON(c.Encrypt(ciyauth, "D", Gtokensalt))
|
||||
if auth == nil {
|
||||
return nil, fmt.Errorf("verify ciyauth error")
|
||||
}
|
||||
csql := NewCiySQL("zc_online")
|
||||
csql := c.NewCiySQL("zc_online")
|
||||
csql.Where("id", auth["_o"])
|
||||
onlinerow, err := db.Getone(csql)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("verify read online err:%v", err)
|
||||
}
|
||||
if Toint(onlinerow["user"]) != Toint(auth["id"]) {
|
||||
if c.Toint(onlinerow["user"]) != c.Toint(auth["id"]) {
|
||||
return nil, fmt.Errorf("verify userid not match oid=%v", onlinerow["id"])
|
||||
}
|
||||
if Tostr(onlinerow["sid"]) != Tostr(auth["_s"]) {
|
||||
if c.Tostr(onlinerow["sid"]) != c.Tostr(auth["_s"]) {
|
||||
return nil, fmt.Errorf("verify sid not match oid=%v", onlinerow["id"])
|
||||
}
|
||||
if Toint(onlinerow["usrchg"]) == 9 {
|
||||
csql := NewCiySQL("zc_admin")
|
||||
if c.Toint(onlinerow["usrchg"]) == 9 {
|
||||
csql := c.NewCiySQL("zc_admin")
|
||||
csql.Where("id", auth["_o"])
|
||||
userrow, _ := db.Getone(csql)
|
||||
if userrow == nil {
|
||||
return nil, fmt.Errorf("verify user nofind")
|
||||
}
|
||||
if Toint(userrow["stpstatus"]) != 10 {
|
||||
if c.Toint(userrow["stpstatus"]) != 10 {
|
||||
return nil, fmt.Errorf("verify user disabled")
|
||||
}
|
||||
}
|
||||
if Toint(onlinerow["usrchg"]) == 2 {
|
||||
if c.Toint(onlinerow["usrchg"]) == 2 {
|
||||
post.W.Header().Set(Gtokenfield+"re", "true")
|
||||
}
|
||||
if Toint(onlinerow["exptimes"]) > Tostamp() {
|
||||
if c.Toint(onlinerow["exptimes"]) > c.Tostamp() {
|
||||
return auth, nil
|
||||
}
|
||||
exptimes := Tostamp() + 86400
|
||||
sid := Randstr(10)
|
||||
exptimes := c.Tostamp() + 86400
|
||||
sid := c.Randstr(10)
|
||||
auth["_s"] = sid
|
||||
authstr := JSON_Str(auth)
|
||||
newauth := Encrypt(authstr, "E", Gtokensalt)
|
||||
authstr := c.JSON_Str(auth)
|
||||
newauth := c.Encrypt(authstr, "E", Gtokensalt)
|
||||
post.W.Header().Set(Gtokenfield, newauth)
|
||||
userid := Toint(auth["id"])
|
||||
userid := c.Toint(auth["id"])
|
||||
db.UserID = userid
|
||||
updata := map[string]any{}
|
||||
updata["exptimes"] = exptimes
|
||||
updata["sid"] = sid
|
||||
updata["ip"] = post.GetIP()
|
||||
csql = NewCiySQL("zc_online")
|
||||
csql = c.NewCiySQL("zc_online")
|
||||
csql.Where("id", auth["_o"])
|
||||
_, err = db.Update(csql, updata)
|
||||
if err != nil {
|
||||
|
|
@ -86,11 +86,11 @@ func Verifyuser(db *CiyMysql, post *CiyPost) (map[string]any, error) {
|
|||
return auth, nil
|
||||
}
|
||||
|
||||
func Nopower(db *CiyMysql, userid int, chkpower string) bool {
|
||||
csql := NewCiySQL("zc_admin")
|
||||
func Nopower(db *c.CiyMysql, userid int, chkpower string) bool {
|
||||
csql := c.NewCiySQL("zc_admin")
|
||||
csql.Where("id", userid)
|
||||
csql.Column("power")
|
||||
mepower := Tostr(CiyDB.Get1(csql))
|
||||
mepower := c.Tostr(c.CiyDB.Get1(csql))
|
||||
if mepower == "" {
|
||||
return true
|
||||
}
|
||||
|
|
@ -112,26 +112,26 @@ func Nopower(db *CiyMysql, userid int, chkpower string) bool {
|
|||
}
|
||||
return true
|
||||
}
|
||||
func SaveLog(db *CiyMysql, types, msg string) {
|
||||
func SaveLog(db *c.CiyMysql, types, msg string) {
|
||||
updata := map[string]any{}
|
||||
updata["types"] = types
|
||||
updata["loguser"] = db.UserID
|
||||
updata["logs"] = msg
|
||||
updata["readuser"] = 0
|
||||
updata["addtimes"] = Tostamp()
|
||||
csql := NewCiySQL("zc_log")
|
||||
updata["addtimes"] = c.Tostamp()
|
||||
csql := c.NewCiySQL("zc_log")
|
||||
_, err := db.Insert(csql, updata)
|
||||
if err != nil {
|
||||
Log.Warn("LOG", fmt.Sprintf("SaveLog Error:%v[%v]", err, types+":"+msg))
|
||||
c.Log.Warn("LOG", fmt.Sprintf("SaveLog Error:%v[%v]", err, types+":"+msg))
|
||||
return
|
||||
}
|
||||
}
|
||||
func SaveLogDB(db *CiyMysql, types string, oldrow map[string]any, newrow map[string]any) {
|
||||
SaveLog(db, types, LogDBStr(oldrow, newrow))
|
||||
func SaveLogDB(db *c.CiyMysql, types string, oldrow map[string]any, newrow map[string]any) {
|
||||
SaveLog(db, types, c.LogDBStr(oldrow, newrow))
|
||||
}
|
||||
|
||||
func Getconfig(db *CiyMysql, types, defvalue any) any {
|
||||
csql := NewCiySQL("zc_config")
|
||||
func Getconfig(db *c.CiyMysql, types, defvalue any) any {
|
||||
csql := c.NewCiySQL("zc_config")
|
||||
csql.Where("types", types)
|
||||
row, _ := db.Getone(csql)
|
||||
if row != nil {
|
||||
|
|
@ -139,31 +139,31 @@ func Getconfig(db *CiyMysql, types, defvalue any) any {
|
|||
}
|
||||
return defvalue
|
||||
}
|
||||
func Setconfig(db *CiyMysql, types, value any) bool {
|
||||
func Setconfig(db *c.CiyMysql, types, value any) bool {
|
||||
updata := map[string]any{}
|
||||
updata["types"] = types
|
||||
updata["params"] = value
|
||||
csql := NewCiySQL("zc_config")
|
||||
csql := c.NewCiySQL("zc_config")
|
||||
csql.Where("types", types)
|
||||
_, err := db.Update(csql, updata)
|
||||
return err == nil
|
||||
}
|
||||
|
||||
func Getcatas(db *CiyMysql, cbstr any) []map[string]any {
|
||||
func Getcatas(db *c.CiyMysql, cbstr any) []map[string]any {
|
||||
cbid := 0
|
||||
if Is_int(cbstr) {
|
||||
cbid = Toint(cbstr)
|
||||
if c.Is_int(cbstr) {
|
||||
cbid = c.Toint(cbstr)
|
||||
} else {
|
||||
csql := NewCiySQL("zc_cata")
|
||||
csql := c.NewCiySQL("zc_cata")
|
||||
csql.Where("codeid", cbstr)
|
||||
csql.Where("cbid=0")
|
||||
csql.Column("id")
|
||||
cbid = Toint(db.Get1(csql))
|
||||
cbid = c.Toint(db.Get1(csql))
|
||||
}
|
||||
if cbid == 0 {
|
||||
return []map[string]any{}
|
||||
}
|
||||
csql := NewCiySQL("zc_cata")
|
||||
csql := c.NewCiySQL("zc_cata")
|
||||
csql.Where("cbid", cbid)
|
||||
csql.Order("csort,id")
|
||||
csql.Column("codeid as id,name,upid,name,extdata")
|
||||
|
|
@ -174,21 +174,21 @@ func Getcatas(db *CiyMysql, cbstr any) []map[string]any {
|
|||
return catarows
|
||||
}
|
||||
|
||||
// func Getsaascatas(db *CiyMysql, cbstr any, saasid int) []map[string]any {
|
||||
// func Getsaascatas(db *c.CiyMysql, cbstr any, saasid int) []map[string]any {
|
||||
// cbid := 0
|
||||
// if Is_int(cbstr) {
|
||||
// cbid = Toint(cbstr)
|
||||
// if c.Is_int(cbstr) {
|
||||
// cbid = c.Toint(cbstr)
|
||||
// } else {
|
||||
// csql := NewCiySQL("zc_catsaas")
|
||||
// csql := c.NewCiySQL("zc_catsaas")
|
||||
// csql.Where("codeid", cbstr)
|
||||
// csql.Where("cbid=0")
|
||||
// csql.Column("id")
|
||||
// cbid = Toint(db.Get1(csql))
|
||||
// cbid = c.Toint(db.Get1(csql))
|
||||
// }
|
||||
// if cbid == 0 {
|
||||
// return []map[string]any{}
|
||||
// }
|
||||
// csql := NewCiySQL("zc_catsaas")
|
||||
// csql := c.NewCiySQL("zc_catsaas")
|
||||
// csql.Where("saasid", saasid)
|
||||
// csql.Where("cbid", cbid)
|
||||
// csql.Order("csort,id")
|
||||
|
|
@ -198,7 +198,7 @@ func Getcatas(db *CiyMysql, cbstr any) []map[string]any {
|
|||
// return []map[string]any{}
|
||||
// }
|
||||
// if len(catarows) == 0 {
|
||||
// csql = NewCiySQL("zc_cata")
|
||||
// csql = c.NewCiySQL("zc_cata")
|
||||
// csql.Where("cbid", cbid)
|
||||
// csql.Order("csort,id")
|
||||
// csql.Column("codeid as id,name,upid,name,extdata")
|
||||
|
|
|
|||
|
|
@ -1,60 +1,59 @@
|
|||
package datasse
|
||||
|
||||
import (
|
||||
"ciyon/web/admin"
|
||||
c "ciyon/zciyon"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func DataSSE_demo(w http.ResponseWriter, r *http.Request) bool {
|
||||
if !SSEInit(w) {
|
||||
if !c.SSEInit(w) {
|
||||
w.Write([]byte("不支持SSE Flush"))
|
||||
return false
|
||||
}
|
||||
post := NewCiyPost(w, r)
|
||||
rsuser, err := admin.Verifyuser(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
rsuser, err := admin.Verifyuser(c.CiyDB, post)
|
||||
if err != nil {
|
||||
SSESend_event(w, "请重新登录")
|
||||
c.SSESend_event(w, "请重新登录")
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, Toint(rsuser["id"]), "p610r") {
|
||||
SSESend_event(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, c.Toint(rsuser["id"]), "p610r") {
|
||||
c.SSESend_event(w, "您未被授权操作")
|
||||
return false
|
||||
}
|
||||
param := post.Get("param")
|
||||
SSESend_data(w, param)
|
||||
c.SSESend_data(w, param)
|
||||
for i := 0; i < 100; i++ {
|
||||
if i%10 == 1 {
|
||||
SSESend_data(w, "ssr: "+Tostr(i), i)
|
||||
c.SSESend_data(w, "ssr: "+c.Tostr(i), i)
|
||||
}
|
||||
if !SSESend_event(w, Tostr(i)) {
|
||||
if !c.SSESend_event(w, c.Tostr(i)) {
|
||||
return true
|
||||
}
|
||||
Sleep(0.05)
|
||||
c.Sleep(0.05)
|
||||
}
|
||||
SSESend_event(w, "ok")
|
||||
c.SSESend_event(w, "ok")
|
||||
return true
|
||||
}
|
||||
|
||||
func DataSSE_demo_ch(w http.ResponseWriter, r *http.Request) bool {
|
||||
if !SSEInit(w) {
|
||||
if !c.SSEInit(w) {
|
||||
w.Write([]byte("不支持SSE Flush"))
|
||||
return false
|
||||
}
|
||||
post := NewCiyPost(w, r)
|
||||
rsuser, err := admin.Verifyuser(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
rsuser, err := admin.Verifyuser(c.CiyDB, post)
|
||||
if err != nil {
|
||||
SSESend_event(w, "请重新登录")
|
||||
c.SSESend_event(w, "请重新登录")
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, Toint(rsuser["id"]), "p610r") {
|
||||
SSESend_event(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, c.Toint(rsuser["id"]), "p610r") {
|
||||
c.SSESend_event(w, "您未被授权操作")
|
||||
return false
|
||||
}
|
||||
param := post.Get("param")
|
||||
SSESend_data(w, param)
|
||||
c.SSESend_data(w, param)
|
||||
|
||||
done := r.Context().Done()
|
||||
ticker := time.NewTicker(time.Second)
|
||||
|
|
@ -65,7 +64,7 @@ func DataSSE_demo_ch(w http.ResponseWriter, r *http.Request) bool {
|
|||
case <-done:
|
||||
return false
|
||||
case <-ticker.C:
|
||||
if !SSESend_data(w, time.Now().Format(time.RFC3339)) {
|
||||
if !c.SSESend_data(w, time.Now().Format(time.RFC3339)) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,130 +5,130 @@ import (
|
|||
"math"
|
||||
"net/http"
|
||||
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func Login_login(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
post := c.NewCiyPost(w, r)
|
||||
targettype := post.Getint("targettype", 10)
|
||||
user := post.Get("user")
|
||||
if user == "" {
|
||||
return ErrJSON(w, "请填写用户名")
|
||||
return c.ErrJSON(w, "请填写用户名")
|
||||
}
|
||||
csql := NewCiySQL("zc_admin")
|
||||
csql := c.NewCiySQL("zc_admin")
|
||||
csql.Where("mobile", user)
|
||||
userrow, err := CiyDB.Getone(csql)
|
||||
userrow, err := c.CiyDB.Getone(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "遇到读取错误", err)
|
||||
return c.ErrJSON(w, "遇到读取错误", err)
|
||||
}
|
||||
if userrow == nil {
|
||||
SaveLog(CiyDB, "LOGINERR", "用户["+user+"]不存在,在尝试登录")
|
||||
return ErrJSON(w, "用户不存在", fmt.Errorf("用户[%v]在尝试登录,ip=", user))
|
||||
SaveLog(c.CiyDB, "LOGINERR", "用户["+user+"]不存在,在尝试登录")
|
||||
return c.ErrJSON(w, "用户不存在", fmt.Errorf("用户[%v]在尝试登录,ip=", user))
|
||||
}
|
||||
if Toint(userrow["trytime"]) > 10 {
|
||||
if Tostamp()-Toint(userrow["logintimes"]) < 600 {
|
||||
SaveLog(CiyDB, "LOGINERR", "用户["+user+"]登录连续失败")
|
||||
return ErrJSON(w, "连续输入密码错误,10分钟后再来登录.", fmt.Errorf("用户[%v]在撞库,ip=", user))
|
||||
if c.Toint(userrow["trytime"]) > 10 {
|
||||
if c.Tostamp()-c.Toint(userrow["logintimes"]) < 600 {
|
||||
SaveLog(c.CiyDB, "LOGINERR", "用户["+user+"]登录连续失败")
|
||||
return c.ErrJSON(w, "连续输入密码错误,10分钟后再来登录.", fmt.Errorf("用户[%v]在撞库,ip=", user))
|
||||
}
|
||||
}
|
||||
if Toint(userrow["stpstatus"]) != 10 {
|
||||
SaveLog(CiyDB, "LOGINERR", "用户["+user+"]被禁用,在尝试登录")
|
||||
return ErrJSON(w, "您的账户已经被禁用.")
|
||||
if c.Toint(userrow["stpstatus"]) != 10 {
|
||||
SaveLog(c.CiyDB, "LOGINERR", "用户["+user+"]被禁用,在尝试登录")
|
||||
return c.ErrJSON(w, "您的账户已经被禁用.")
|
||||
}
|
||||
authtime := post.Getint("auth")
|
||||
if math.Abs(Tofloat(authtime/1000-Tostamp())) > 300 {
|
||||
return ErrJSON(w, "您的本地时间与服务器时间相差超过5分钟,请调整本机时间.<br/>服务器时间: "+Todate(-1, "Y-m-d H:i:s")+"<br/>您本机时间: "+Todate(authtime/1000, "Y-m-d H:i:s"))
|
||||
if math.Abs(c.Tofloat(authtime/1000-c.Tostamp())) > 300 {
|
||||
return c.ErrJSON(w, "您的本地时间与服务器时间相差超过5分钟,请调整本机时间.<br/>服务器时间: "+c.Todate(-1, "Y-m-d H:i:s")+"<br/>您本机时间: "+c.Todate(authtime/1000, "Y-m-d H:i:s"))
|
||||
}
|
||||
if post.Get("pass") != MD5(Tostr(userrow["password"])+fmt.Sprintf("%d", authtime)) {
|
||||
if post.Get("pass") != c.MD5(c.Tostr(userrow["password"])+fmt.Sprintf("%d", authtime)) {
|
||||
updata := map[string]any{}
|
||||
updata["trytime"] = []string{"trytime+1"}
|
||||
updata["logintimes"] = Tostamp()
|
||||
csql = NewCiySQL("zc_admin")
|
||||
updata["logintimes"] = c.Tostamp()
|
||||
csql = c.NewCiySQL("zc_admin")
|
||||
csql.Where("id", userrow["id"])
|
||||
CiyDB.Update(csql, updata)
|
||||
SaveLog(CiyDB, "LOGINERR", "用户["+user+"]登录密码错误 "+Gdefpass+" ["+MD5(Gdefpass+Gtokensalt)+"]")
|
||||
return ErrJSON(w, "用户["+user+"]登录密码错误")
|
||||
c.CiyDB.Update(csql, updata)
|
||||
SaveLog(c.CiyDB, "LOGINERR", "用户["+user+"]登录密码错误 "+Gdefpass+" ["+c.MD5(Gdefpass+Gtokensalt)+"]")
|
||||
return c.ErrJSON(w, "用户["+user+"]登录密码错误")
|
||||
}
|
||||
syncdict, err := getsync(userrow)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "遇到同步错误", err)
|
||||
return c.ErrJSON(w, "遇到同步错误", err)
|
||||
}
|
||||
|
||||
userid := Toint(userrow["id"])
|
||||
CiyDB.Execute("delete from zc_online where exptimes<? and user=?", Tostamp(), userid)
|
||||
sid := Randstr(10)
|
||||
exptimes := Tostamp() + 86400
|
||||
userid := c.Toint(userrow["id"])
|
||||
c.CiyDB.Execute("delete from zc_online where exptimes<? and user=?", c.Tostamp(), userid)
|
||||
sid := c.Randstr(10)
|
||||
exptimes := c.Tostamp() + 86400
|
||||
updata := map[string]any{}
|
||||
updata["user"] = userid
|
||||
updata["targettype"] = targettype
|
||||
updata["sid"] = sid
|
||||
updata["addtimes"] = Tostamp()
|
||||
updata["addtimes"] = c.Tostamp()
|
||||
updata["exptimes"] = exptimes
|
||||
updata["ip"] = post.GetIP()
|
||||
csql = NewCiySQL("zc_online")
|
||||
oid, err := CiyDB.Insert(csql, updata)
|
||||
csql = c.NewCiySQL("zc_online")
|
||||
oid, err := c.CiyDB.Insert(csql, updata)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "online数据库更新失败", err)
|
||||
return c.ErrJSON(w, "online数据库更新失败", err)
|
||||
}
|
||||
updata = map[string]any{}
|
||||
updata["logintimes"] = Tostamp()
|
||||
updata["logintimes"] = c.Tostamp()
|
||||
updata["trytime"] = 0
|
||||
csql = NewCiySQL("zc_admin")
|
||||
csql = c.NewCiySQL("zc_admin")
|
||||
csql.Where("id", userid)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "user数据库更新失败", err)
|
||||
return c.ErrJSON(w, "user数据库更新失败", err)
|
||||
}
|
||||
auth := map[string]any{}
|
||||
auth["id"] = userid
|
||||
auth["_o"] = oid
|
||||
auth["_s"] = sid
|
||||
authstr := JSON_Str(auth)
|
||||
authstr := c.JSON_Str(auth)
|
||||
|
||||
newauth := Encrypt(authstr, "E", Gtokensalt)
|
||||
newauth := c.Encrypt(authstr, "E", Gtokensalt)
|
||||
post.W.Header().Set(Gtokenfield, newauth)
|
||||
SaveLog(CiyDB, "LOGIN", "登录成功")
|
||||
return SuccJSON(w, syncdict)
|
||||
SaveLog(c.CiyDB, "LOGIN", "登录成功")
|
||||
return c.SuccJSON(w, syncdict)
|
||||
}
|
||||
|
||||
func Login_restorage(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
rsuser, _ := Verifyfast(CiyDB, post)
|
||||
csql := NewCiySQL("zc_admin")
|
||||
post := c.NewCiyPost(w, r)
|
||||
rsuser, _ := Verifyfast(c.CiyDB, post)
|
||||
csql := c.NewCiySQL("zc_admin")
|
||||
csql.Where("id", rsuser["id"])
|
||||
userrow, err := CiyDB.Getone(csql)
|
||||
userrow, err := c.CiyDB.Getone(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "遇到读取错误", err)
|
||||
return c.ErrJSON(w, "遇到读取错误", err)
|
||||
}
|
||||
syncdict, err := getsync(userrow)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "遇到同步错误", err)
|
||||
return c.ErrJSON(w, "遇到同步错误", err)
|
||||
}
|
||||
CiyDB.Execute("update zc_online set usrchg=0 where id=?", rsuser["_o"])
|
||||
return SuccJSON(w, syncdict)
|
||||
c.CiyDB.Execute("update zc_online set usrchg=0 where id=?", rsuser["_o"])
|
||||
return c.SuccJSON(w, syncdict)
|
||||
}
|
||||
func getsync(userrow map[string]any) (map[string]any, error) {
|
||||
var err error
|
||||
storage := map[string]any{}
|
||||
csql := NewCiySQL("zc_admin")
|
||||
csql := c.NewCiySQL("zc_admin")
|
||||
csql.Column("id,name")
|
||||
storage["adminuser"], _, err = CiyDB.Get(csql)
|
||||
storage["adminuser"], _, err = c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
csql = NewCiySQL("zc_cata")
|
||||
csql = c.NewCiySQL("zc_cata")
|
||||
csql.Order("csort")
|
||||
storage["cata"], _, err = CiyDB.Get(csql)
|
||||
storage["cata"], _, err = c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
departid := Toint(userrow["departid"])
|
||||
departid := c.Toint(userrow["departid"])
|
||||
var departname string
|
||||
if departid > 0 {
|
||||
csql := NewCiySQL("zc_depart")
|
||||
csql := c.NewCiySQL("zc_depart")
|
||||
csql.Where("id", departid)
|
||||
csql.Column("name")
|
||||
departname = Tostr(CiyDB.Get1(csql))
|
||||
departname = c.Tostr(c.CiyDB.Get1(csql))
|
||||
}
|
||||
me := map[string]any{}
|
||||
me["id"] = userrow["id"]
|
||||
|
|
@ -139,11 +139,11 @@ func getsync(userrow map[string]any) (map[string]any, error) {
|
|||
me["depart"] = departname
|
||||
me["addtimes"] = userrow["addtimes"]
|
||||
power := userrow["power"]
|
||||
if Toint(userrow["id"]) == 10 {
|
||||
if c.Toint(userrow["id"]) == 10 {
|
||||
power = ".*."
|
||||
}
|
||||
me["power"] = power
|
||||
me["needpass"] = (userrow["password"] == MD5(Gdefpass+Gtokensalt))
|
||||
me["needpass"] = (userrow["password"] == c.MD5(Gdefpass+Gtokensalt))
|
||||
syncdict := map[string]any{}
|
||||
syncdict["storage"] = storage
|
||||
syncdict["me"] = me
|
||||
|
|
@ -151,13 +151,13 @@ func getsync(userrow map[string]any) (map[string]any, error) {
|
|||
}
|
||||
|
||||
func Login_logout(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
rsuser, err := Verifyuser(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
rsuser, err := Verifyuser(c.CiyDB, post)
|
||||
if err == nil {
|
||||
csql := NewCiySQL("zc_online")
|
||||
csql := c.NewCiySQL("zc_online")
|
||||
csql.Where("id", rsuser["_o"])
|
||||
CiyDB.Delete(csql)
|
||||
c.CiyDB.Delete(csql)
|
||||
}
|
||||
SaveLog(CiyDB, "LOGIN", "退出登录")
|
||||
return SuccJSON(w)
|
||||
SaveLog(c.CiyDB, "LOGIN", "退出登录")
|
||||
return c.SuccJSON(w)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,28 +4,28 @@ import (
|
|||
"fmt"
|
||||
"net/http"
|
||||
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func Manage_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
//menu,url: 普通链接~原型图 4378,key 普通链接~原型图 共存
|
||||
//menu,pow: d=删除|e=修改 p[id]e 默认p[id]v 显示权限 角色权限menu url<>'' 可选择授权
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
csql := NewCiySQL("zc_icon")
|
||||
csql := c.NewCiySQL("zc_icon")
|
||||
csql.Where("icontarget", 10).Column("targetid as id,icon")
|
||||
iconrows, _, err := CiyDB.Get(csql)
|
||||
iconrows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "遇到menu读取错误", err)
|
||||
return c.ErrJSON(w, "遇到menu读取错误", err)
|
||||
}
|
||||
csql = NewCiySQL("zc_menu")
|
||||
csql = c.NewCiySQL("zc_menu")
|
||||
csql.Where("isuse", 1).Order("csort desc,id").Column("id,upid,name,url,pow")
|
||||
menurows, _, err := CiyDB.Get(csql)
|
||||
menurows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "遇到menu读取错误", err)
|
||||
return c.ErrJSON(w, "遇到menu读取错误", err)
|
||||
}
|
||||
if len(menurows) == 0 {
|
||||
menu := map[string]any{}
|
||||
|
|
@ -36,11 +36,11 @@ func Manage_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
menu["pow"] = ""
|
||||
menurows = append(menurows, menu)
|
||||
}
|
||||
csql = NewCiySQL("zc_mnufav")
|
||||
csql = c.NewCiySQL("zc_mnufav")
|
||||
csql.Where("user", userid).Column("menuid")
|
||||
mnufavrows, _, err := CiyDB.Get(csql)
|
||||
mnufavrows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "遇到mnufav读取错误", err)
|
||||
return c.ErrJSON(w, "遇到mnufav读取错误", err)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["icon"] = iconrows
|
||||
|
|
@ -51,66 +51,66 @@ func Manage_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
"name": "控制台",
|
||||
}
|
||||
ret["title"] = "Ciyon SaaS总控台"
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
||||
func Manage_favadd(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
menuid := post.Getint("id")
|
||||
csql := NewCiySQL("zc_mnufav")
|
||||
csql := c.NewCiySQL("zc_mnufav")
|
||||
csql.Where("user", userid).Where("menuid", menuid)
|
||||
favrow, err := CiyDB.Getone(csql)
|
||||
favrow, err := c.CiyDB.Getone(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "遇到fav读取错误", err)
|
||||
return c.ErrJSON(w, "遇到fav读取错误", err)
|
||||
}
|
||||
if favrow == nil {
|
||||
updata := map[string]any{}
|
||||
updata["user"] = userid
|
||||
updata["menuid"] = menuid
|
||||
updata["addtimes"] = Tostamp()
|
||||
csql := NewCiySQL("zc_mnufav")
|
||||
_, err = CiyDB.Insert(csql, updata)
|
||||
updata["addtimes"] = c.Tostamp()
|
||||
csql := c.NewCiySQL("zc_mnufav")
|
||||
_, err = c.CiyDB.Insert(csql, updata)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "添加fav失败", err)
|
||||
return c.ErrJSON(w, "添加fav失败", err)
|
||||
}
|
||||
}
|
||||
return SuccJSON(w)
|
||||
return c.SuccJSON(w)
|
||||
}
|
||||
func Manage_favdel(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
menuid := post.Getint("id")
|
||||
csql := NewCiySQL("zc_mnufav")
|
||||
csql := c.NewCiySQL("zc_mnufav")
|
||||
csql.Where("user", userid).Where("menuid", menuid)
|
||||
_, err := CiyDB.Delete(csql)
|
||||
_, err := c.CiyDB.Delete(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "删除fav失败", err)
|
||||
return c.ErrJSON(w, "删除fav失败", err)
|
||||
}
|
||||
return SuccJSON(w)
|
||||
return c.SuccJSON(w)
|
||||
}
|
||||
|
||||
func Manage_setssh(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if Nopower(CiyDB, userid, "x1ssh") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if Nopower(c.CiyDB, userid, "x1ssh") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
able := post.Getbool("able") //true,打开SSH允许远程访问。 false,关闭防火墙禁止访问
|
||||
if able {
|
||||
//开启后,需定时关闭防火墙
|
||||
fmt.Println("开启SSH远程访问")
|
||||
}
|
||||
return SuccJSON(w)
|
||||
return c.SuccJSON(w)
|
||||
}
|
||||
|
||||
// if strings.HasPrefix(r.Header.Get("Content-Type"), "multipart/form-data") {
|
||||
|
|
@ -123,12 +123,12 @@ func Manage_setssh(w http.ResponseWriter, r *http.Request) bool {
|
|||
// file, header, err := r.FormFile("file")
|
||||
// Clog("POST FormFile:", file, header, err)
|
||||
// } else {
|
||||
// post := NewCiyPost(w, r)
|
||||
// fff := post.Get("str", CIYPOST_ALLOW_HTML)
|
||||
// post := c.NewCiyPost(w, r)
|
||||
// fff := post.Get("str", c.CIYPOST_ALLOW_HTML)
|
||||
// Clog("post str:", fff)
|
||||
// // ddd = post.Getdate("date")
|
||||
// // Clog("post time:", ddd)
|
||||
// // det = Todate(ddd, "Y-m-d H:i:s")
|
||||
// // det = c.Todate(ddd, "Y-m-d H:i:s")
|
||||
|
||||
// //Clog("post json:", post)
|
||||
// }
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package rigger
|
|||
|
||||
import (
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
"ciyon/zciyon/xlsx"
|
||||
"fmt"
|
||||
"math/rand"
|
||||
|
|
@ -10,27 +10,27 @@ import (
|
|||
"strings"
|
||||
)
|
||||
|
||||
func admin_setwhere(post *CiyPost) (map[string]any, *CiySQL) {
|
||||
func admin_setwhere(post *c.CiyPost) (map[string]any, *c.CiySQL) {
|
||||
query := post.Getobj("query")
|
||||
csql := NewCiySQL("zc_admin")
|
||||
csql := c.NewCiySQL("zc_admin")
|
||||
csql.Where("departid", post.Get("departid"))
|
||||
liid := Getint(query, "liid")
|
||||
liid := c.Getint(query, "liid")
|
||||
if liid > 0 {
|
||||
csql.Where("stpstatus", liid)
|
||||
}
|
||||
csql.Where("name like", Getstr(query, "name"))
|
||||
csql.Where("mobile like", Getstr(query, "mobile"))
|
||||
csql.Where("sex", Getstr(query, "sex"))
|
||||
csql.Where_daterange("logintimes", Getstr(query, "logintimes"))
|
||||
csql.Where_daterange("addtimes", Getstr(query, "addtimes"))
|
||||
csql.Where("name like", c.Getstr(query, "name"))
|
||||
csql.Where("mobile like", c.Getstr(query, "mobile"))
|
||||
csql.Where("sex", c.Getstr(query, "sex"))
|
||||
csql.Where_daterange("logintimes", c.Getstr(query, "logintimes"))
|
||||
csql.Where_daterange("addtimes", c.Getstr(query, "addtimes"))
|
||||
order := post.Get("order", "id desc")
|
||||
csql.Order(order)
|
||||
query["order"] = order
|
||||
return query, csql
|
||||
}
|
||||
func Admin_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
|
|
@ -38,9 +38,9 @@ func Admin_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
pageno := post.Getint("pageno", 1)
|
||||
pagecount := post.Getint("pagecount", 10)
|
||||
csql.Limit(pageno, pagecount)
|
||||
rows, mainrowcount, err := CiyDB.Get(csql, post.Getint("count"))
|
||||
rows, mainrowcount, err := c.CiyDB.Get(csql, post.Getint("count"))
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["where"] = where
|
||||
|
|
@ -49,8 +49,8 @@ func Admin_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
ret["count"] = mainrowcount
|
||||
ret["list"] = rows
|
||||
if post.Getbool("field") {
|
||||
field, fshow := CiyDB.GetField(csql)
|
||||
FieldAdd(&field, &fshow, 0, "_btn", "操作")
|
||||
field, fshow := c.CiyDB.GetField(csql)
|
||||
c.FieldAdd(&field, &fshow, 0, "_btn", "操作")
|
||||
ret["fshow"] = fshow
|
||||
ret["field"] = field
|
||||
}
|
||||
|
|
@ -88,39 +88,39 @@ func Admin_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
})
|
||||
once["input"] = input
|
||||
|
||||
csql = NewCiySQL("zc_depart")
|
||||
csql = c.NewCiySQL("zc_depart")
|
||||
csql.Column("id,upid,name,isuse")
|
||||
once["zc_depart"], _, _ = CiyDB.Get(csql)
|
||||
csql = NewCiySQL("zc_role")
|
||||
once["zc_depart"], _, _ = c.CiyDB.Get(csql)
|
||||
csql = c.NewCiySQL("zc_role")
|
||||
csql.Column("id,name")
|
||||
once["zc_role"], _, _ = CiyDB.Get(csql)
|
||||
once["zc_role"], _, _ = c.CiyDB.Get(csql)
|
||||
ret["once"] = once
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
||||
func Admin_update(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
id := post.Getint("id")
|
||||
name := post.Get("name")
|
||||
if name == "" {
|
||||
return ErrJSON(w, "请填写姓名")
|
||||
return c.ErrJSON(w, "请填写姓名")
|
||||
}
|
||||
stpstatus := post.Getint("stpstatus")
|
||||
if stpstatus <= 0 {
|
||||
return ErrJSON(w, "请填写状态")
|
||||
return c.ErrJSON(w, "请填写状态")
|
||||
}
|
||||
mobile := post.Get("mobile")
|
||||
if mobile == "" {
|
||||
return ErrJSON(w, "请填写手机号")
|
||||
return c.ErrJSON(w, "请填写手机号")
|
||||
}
|
||||
sex := post.Getint("sex")
|
||||
if sex <= 0 {
|
||||
return ErrJSON(w, "请填写性别")
|
||||
return c.ErrJSON(w, "请填写性别")
|
||||
}
|
||||
departid := post.Getint("departid")
|
||||
icon := post.Get("icon")
|
||||
|
|
@ -128,46 +128,46 @@ func Admin_update(w http.ResponseWriter, r *http.Request) bool {
|
|||
var err error
|
||||
var datarow map[string]any
|
||||
if id > 0 {
|
||||
if admin.Nopower(CiyDB, userid, "p500u") {
|
||||
return ErrJSON(w, "您未被授权操作修改")
|
||||
if admin.Nopower(c.CiyDB, userid, "p500u") {
|
||||
return c.ErrJSON(w, "您未被授权操作修改")
|
||||
}
|
||||
csql := NewCiySQL("zc_admin")
|
||||
csql := c.NewCiySQL("zc_admin")
|
||||
csql.Where("id", id)
|
||||
datarow, err = CiyDB.Getone(csql)
|
||||
datarow, err = c.CiyDB.Getone(csql)
|
||||
if datarow == nil {
|
||||
return ErrJSON(w, "数据不存在", err)
|
||||
return c.ErrJSON(w, "数据不存在", err)
|
||||
}
|
||||
if Toint(datarow["roleid"]) != roleid {
|
||||
if admin.Nopower(CiyDB, userid, "p500r") {
|
||||
return ErrJSON(w, "您没有赋予角色的权限")
|
||||
if c.Toint(datarow["roleid"]) != roleid {
|
||||
if admin.Nopower(c.CiyDB, userid, "p500r") {
|
||||
return c.ErrJSON(w, "您没有赋予角色的权限")
|
||||
}
|
||||
} else {
|
||||
roleid = 0
|
||||
}
|
||||
} else {
|
||||
if admin.Nopower(CiyDB, userid, "p500a") {
|
||||
return ErrJSON(w, "您未被授权操作新增")
|
||||
if admin.Nopower(c.CiyDB, userid, "p500a") {
|
||||
return c.ErrJSON(w, "您未被授权操作新增")
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p500r") {
|
||||
if admin.Nopower(c.CiyDB, userid, "p500r") {
|
||||
roleid = 0
|
||||
}
|
||||
}
|
||||
rolerow := map[string]any{}
|
||||
if roleid > 0 {
|
||||
csql := NewCiySQL("zc_role")
|
||||
csql := c.NewCiySQL("zc_role")
|
||||
csql.Where("id", roleid)
|
||||
rolerow, err := CiyDB.Getone(csql)
|
||||
rolerow, err := c.CiyDB.Getone(csql)
|
||||
if rolerow == nil {
|
||||
return ErrJSON(w, "角色不存在", err)
|
||||
return c.ErrJSON(w, "角色不存在", err)
|
||||
}
|
||||
}
|
||||
updata := map[string]any{}
|
||||
err = CiyDB.Tran(func() error {
|
||||
var csql *CiySQL
|
||||
csql = NewCiySQL("zc_admin")
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
var csql *c.CiySQL
|
||||
csql = c.NewCiySQL("zc_admin")
|
||||
csql.Where("mobile", mobile)
|
||||
csql.Column("id")
|
||||
chkid := Toint(CiyDB.Get1(csql))
|
||||
chkid := c.Toint(c.CiyDB.Get1(csql))
|
||||
if chkid > 0 && ((id > 0 && chkid != id) || id == 0) {
|
||||
return fmt.Errorf("数据已存在")
|
||||
}
|
||||
|
|
@ -181,131 +181,131 @@ func Admin_update(w http.ResponseWriter, r *http.Request) bool {
|
|||
if roleid > 0 {
|
||||
updata["power"] = rolerow["power"]
|
||||
}
|
||||
csql = NewCiySQL("zc_admin")
|
||||
csql = c.NewCiySQL("zc_admin")
|
||||
if id > 0 {
|
||||
csql.Where("id", id)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
if stpstatus == 10 {
|
||||
if roleid > 0 || datarow["name"] != name || datarow["icon"] != icon {
|
||||
CiyDB.Execute("update zc_online set usrchg=2 where user=?", id)
|
||||
c.CiyDB.Execute("update zc_online set usrchg=2 where user=?", id)
|
||||
}
|
||||
} else {
|
||||
CiyDB.Execute("delete from zc_online where user=?", id)
|
||||
c.CiyDB.Execute("delete from zc_online where user=?", id)
|
||||
}
|
||||
if datarow["name"] != name {
|
||||
CiyDB.Execute("update zc_online set usrchg=2")
|
||||
c.CiyDB.Execute("update zc_online set usrchg=2")
|
||||
}
|
||||
} else {
|
||||
updata["addtimes"] = Tostamp()
|
||||
id, err = CiyDB.Insert(csql, updata)
|
||||
CiyDB.Execute("update zc_online set usrchg=2")
|
||||
updata["addtimes"] = c.Tostamp()
|
||||
id, err = c.CiyDB.Insert(csql, updata)
|
||||
c.CiyDB.Execute("update zc_online set usrchg=2")
|
||||
}
|
||||
updata["id"] = id
|
||||
if err != nil {
|
||||
return fmt.Errorf("更新失败:%v", err)
|
||||
}
|
||||
admin.SaveLogDB(CiyDB, "zc_admin", datarow, updata)
|
||||
admin.SaveLogDB(c.CiyDB, "zc_admin", datarow, updata)
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["data"] = updata
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
||||
func Admin_del(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p500d") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p500d") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
ids := post.Get("ids")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
csql := NewCiySQL("zc_admin")
|
||||
csql := c.NewCiySQL("zc_admin")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据错误", err)
|
||||
return c.ErrJSON(w, "读取数据错误", err)
|
||||
}
|
||||
vids := make([]int, 0)
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
delid := Toint(row["id"])
|
||||
delid := c.Toint(row["id"])
|
||||
if userid == delid {
|
||||
return fmt.Errorf("不能删除本人")
|
||||
}
|
||||
if delid == 10 {
|
||||
return fmt.Errorf("不能删除超级管理员")
|
||||
}
|
||||
Delme(CiyDB, delid, "zc_admin")
|
||||
CiyDB.Execute("delete from zc_online where user=?", delid)
|
||||
admin.SaveLogDB(CiyDB, "zc_admin", row, nil)
|
||||
c.Delme(c.CiyDB, delid, "zc_admin")
|
||||
c.CiyDB.Execute("delete from zc_online where user=?", delid)
|
||||
admin.SaveLogDB(c.CiyDB, "zc_admin", row, nil)
|
||||
vids = append(vids, delid)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
CiyDB.Execute("update zc_online set usrchg=2")
|
||||
c.CiyDB.Execute("update zc_online set usrchg=2")
|
||||
ret := map[string]any{}
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
||||
func Admin_repass(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p500p") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p500p") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
id := post.Getint("id")
|
||||
err := CiyDB.Tran(func() error {
|
||||
err := c.CiyDB.Tran(func() error {
|
||||
updata := map[string]any{}
|
||||
updata["trytime"] = 0
|
||||
updata["password"] = MD5(admin.Gdefpass + admin.Gtokensalt)
|
||||
csql := NewCiySQL("zc_admin")
|
||||
updata["password"] = c.MD5(admin.Gdefpass + admin.Gtokensalt)
|
||||
csql := c.NewCiySQL("zc_admin")
|
||||
csql.Where("id", id)
|
||||
_, err := CiyDB.Update(csql, updata)
|
||||
_, err := c.CiyDB.Update(csql, updata)
|
||||
if err != nil {
|
||||
return fmt.Errorf("更新失败:%v", err)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
CiyDB.Execute("delete from zc_online where user=?", id)
|
||||
c.CiyDB.Execute("delete from zc_online where user=?", id)
|
||||
ret := map[string]any{}
|
||||
ret["msg"] = "默认密码: " + admin.Gdefpass
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Admin_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p500e") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p500e") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
_, csql := admin_setwhere(post)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
if len(rows) > 10000 {
|
||||
return ErrJSON(w, "将导出"+Tostr(len(rows))+"条,不建议超过1万条,请筛选缩小范围", err)
|
||||
return c.ErrJSON(w, "将导出"+c.Tostr(len(rows))+"条,不建议超过1万条,请筛选缩小范围", err)
|
||||
}
|
||||
fields := []map[string]string{}
|
||||
fields = append(fields, map[string]string{"style": "c", "width": "60", "field": "id", "name": "行码"})
|
||||
|
|
@ -317,13 +317,13 @@ func Admin_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
|||
fields = append(fields, map[string]string{"style": "l", "width": "100", "field": "logintimes", "name": "登录时间"})
|
||||
fields = append(fields, map[string]string{"style": "l", "width": "100", "field": "addtimes", "name": "注册时间"})
|
||||
|
||||
code_stpstatus := admin.Getcatas(CiyDB, "stpstatus")
|
||||
code_sex := admin.Getcatas(CiyDB, "sex")
|
||||
csql = NewCiySQL("zc_depart")
|
||||
code_stpstatus := admin.Getcatas(c.CiyDB, "stpstatus")
|
||||
code_sex := admin.Getcatas(c.CiyDB, "sex")
|
||||
csql = c.NewCiySQL("zc_depart")
|
||||
csql.Column("id,upid,name")
|
||||
code_departid, _, err2 := CiyDB.Get(csql)
|
||||
code_departid, _, err2 := c.CiyDB.Get(csql)
|
||||
if err2 != nil {
|
||||
return ErrJSON(w, "读取zc_depart错误", err2)
|
||||
return c.ErrJSON(w, "读取zc_depart错误", err2)
|
||||
}
|
||||
|
||||
datas := [][]string{}
|
||||
|
|
@ -334,29 +334,29 @@ func Admin_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
|||
if val, ok := row[field]; ok {
|
||||
var str string
|
||||
if field == "id" {
|
||||
str = EnID(Toint(val))
|
||||
str = c.EnID(c.Toint(val))
|
||||
} else if field == "stpstatus" {
|
||||
str = Ccode(code_stpstatus, Toint(val))
|
||||
str = c.Ccode(code_stpstatus, c.Toint(val))
|
||||
} else if field == "sex" {
|
||||
str = Ccode(code_sex, Toint(val))
|
||||
str = c.Ccode(code_sex, c.Toint(val))
|
||||
} else if field == "departid" {
|
||||
str = strings.Join(Mcode(code_departid, Toint(val)), "-")
|
||||
str = strings.Join(c.Mcode(code_departid, c.Toint(val)), "-")
|
||||
} else if field == "logintimes" {
|
||||
t := Toint(val)
|
||||
t := c.Toint(val)
|
||||
if t <= 0 {
|
||||
str = "--"
|
||||
} else {
|
||||
str = Todate(t, "Y-m-d H:i")
|
||||
str = c.Todate(t, "Y-m-d H:i")
|
||||
}
|
||||
} else if field == "addtimes" {
|
||||
t := Toint(val)
|
||||
t := c.Toint(val)
|
||||
if t <= 0 {
|
||||
str = "--"
|
||||
} else {
|
||||
str = Todate(t, "Y-m-d H:i")
|
||||
str = c.Todate(t, "Y-m-d H:i")
|
||||
}
|
||||
} else {
|
||||
str = Tostr(val)
|
||||
str = c.Tostr(val)
|
||||
}
|
||||
dat = append(dat, str)
|
||||
} else {
|
||||
|
|
@ -373,44 +373,44 @@ func Admin_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
|||
param["toptitle"] = "管理员数据报表"
|
||||
total := []map[string]any{} //单行统计数据
|
||||
// total = append(total, map[string]any{"style": "l", "name": "合计", "merge": 5})
|
||||
// total = append(total, map[string]any{"style": "r", "name": "=SUM(R[-" + Tostr(len(datas)) + "]C:R[-1]C)"})
|
||||
// total = append(total, map[string]any{"style": "r", "name": "=MAX(R[-" + Tostr(len(datas)) + "]C:R[-1]C)"})
|
||||
// total = append(total, map[string]any{"style": "r", "name": "=SUM(R[-" + c.Tostr(len(datas)) + "]C:R[-1]C)"})
|
||||
// total = append(total, map[string]any{"style": "r", "name": "=MAX(R[-" + c.Tostr(len(datas)) + "]C:R[-1]C)"})
|
||||
// param["rowstop"] = `<Row ss:Height="45"><Cell ss:MergeAcross="7" ss:StyleID="cap"><Data ss:Type="String">众产Ciyon</Data></Cell></Row>`
|
||||
// param["rowsfooter"] = `<Row><Cell ss:MergeAcross="2"><Data ss:Type="String" ss:StyleID="r">总计</Data></Cell><Cell ss:Formula="=SUM(R[-2]C:R[-1]C)"><Data ss:Type="Number"></Data></Cell></Row>`
|
||||
str := General_excel_xml(fields, datas, param, total)
|
||||
filename := "/ud/tmp/" + Todate(-1, "Ymd_His") + Tostr(rand.Intn(8999)+1000) + ".xls"
|
||||
err = FileSave(CiyWebDir+filename, str)
|
||||
str := c.General_excel_xml(fields, datas, param, total)
|
||||
filename := "/ud/tmp/" + c.Todate(-1, "Ymd_His") + c.Tostr(rand.Intn(8999)+1000) + ".xls"
|
||||
err = c.FileSave(c.CiyWebDir+filename, str)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "导出保存文件错误:%v[%v]", err, filename)
|
||||
return c.ErrJSON(w, "导出保存文件错误:%v[%v]", err, filename)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["url"] = filename
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Admin_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p500u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p500u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
file := post.Get("file")
|
||||
if FileExist(CiyWebDir+"/ud/"+file) != nil {
|
||||
return ErrJSON(w, "文件不存在")
|
||||
if c.FileExist(c.CiyWebDir+"/ud/"+file) != nil {
|
||||
return c.ErrJSON(w, "文件不存在")
|
||||
}
|
||||
xlFile, err := xlsx.OpenFile(CiyWebDir + "/ud/" + file)
|
||||
xlFile, err := xlsx.OpenFile(c.CiyWebDir + "/ud/" + file)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "文件打开错误:%v", err)
|
||||
return c.ErrJSON(w, "文件打开错误:%v", err)
|
||||
}
|
||||
datas, err := xlFile.ToSlice()
|
||||
if err != nil {
|
||||
return ErrJSON(w, "文件解析错误:%v", err)
|
||||
return c.ErrJSON(w, "文件解析错误:%v", err)
|
||||
}
|
||||
datacnt := len(datas[0])
|
||||
if datacnt < 2 {
|
||||
return ErrJSON(w, "数据为空")
|
||||
return c.ErrJSON(w, "数据为空")
|
||||
}
|
||||
html := ""
|
||||
headsn := []string{}
|
||||
|
|
@ -432,15 +432,15 @@ func Admin_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
continue
|
||||
}
|
||||
heads = append(heads, map[string]string{
|
||||
"idx": Tostr(In_array(datas[0][xlsidx-1], hd[0])),
|
||||
"idx": c.Tostr(c.In_array(datas[0][xlsidx-1], hd[0])),
|
||||
"fld": hd[1],
|
||||
"name": hd[0],
|
||||
})
|
||||
}
|
||||
|
||||
code_sex := admin.Getcatas(CiyDB, "sex")
|
||||
code_departid, _, _ := CiyDB.Get(NewCiySQL("zc_depart").Where("isuse", 1).Column("id,upid,name"))
|
||||
code_stpstatus := admin.Getcatas(CiyDB, "stpstatus")
|
||||
code_sex := admin.Getcatas(c.CiyDB, "sex")
|
||||
code_departid, _, _ := c.CiyDB.Get(c.NewCiySQL("zc_depart").Where("isuse", 1).Column("id,upid,name"))
|
||||
code_stpstatus := admin.Getcatas(c.CiyDB, "stpstatus")
|
||||
|
||||
html += "<div class=\"table\">\n"
|
||||
html += "<table><thead><tr>\n"
|
||||
|
|
@ -454,7 +454,7 @@ func Admin_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
un_mobile := []string{}
|
||||
id := 0
|
||||
for rowidx := xlsidx; rowidx < datacnt; rowidx++ {
|
||||
lineidx := Tostr(rowidx - xlsidx + 1)
|
||||
lineidx := c.Tostr(rowidx - xlsidx + 1)
|
||||
hrhtml := ""
|
||||
firsthtml := "<td><div>" + lineidx + "</div></td>"
|
||||
bempty := true
|
||||
|
|
@ -462,8 +462,8 @@ func Admin_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
name := arr["name"]
|
||||
errmsg := "" //数据有误,显示红色说明
|
||||
showdat := "" //显示在表格中的数据
|
||||
if Toint(arr["idx"]) > -1 {
|
||||
showdat = strings.TrimSpace(datas[0][rowidx][Toint(arr["idx"])])
|
||||
if c.Toint(arr["idx"]) > -1 {
|
||||
showdat = strings.TrimSpace(datas[0][rowidx][c.Toint(arr["idx"])])
|
||||
}
|
||||
if showdat == "--" {
|
||||
showdat = ""
|
||||
|
|
@ -476,13 +476,13 @@ func Admin_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
value = 0
|
||||
showdat = "<kbd>新增</kbd>"
|
||||
} else {
|
||||
id = DeID(showdat)
|
||||
id = c.DeID(showdat)
|
||||
if id == 0 {
|
||||
errmsg = name + "解析错误"
|
||||
} else {
|
||||
csqlchk := NewCiySQL("zc_admin")
|
||||
csqlchk := c.NewCiySQL("zc_admin")
|
||||
csqlchk.Where("id", id).Column("id")
|
||||
chkid := Toint(CiyDB.Get1(csqlchk))
|
||||
chkid := c.Toint(c.CiyDB.Get1(csqlchk))
|
||||
if chkid != id {
|
||||
errmsg = name + "在数据库中不存在"
|
||||
}
|
||||
|
|
@ -493,7 +493,7 @@ func Admin_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
if showdat == "" {
|
||||
value = 0
|
||||
} else {
|
||||
value = Dcode(code_stpstatus, Tostr(showdat))
|
||||
value = c.Dcode(code_stpstatus, c.Tostr(showdat))
|
||||
if value == -1 {
|
||||
errmsg = name + "文字与系统数据不匹配"
|
||||
}
|
||||
|
|
@ -502,7 +502,7 @@ func Admin_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
if showdat == "" {
|
||||
value = 0
|
||||
} else {
|
||||
value = Dcode(code_sex, Tostr(showdat))
|
||||
value = c.Dcode(code_sex, c.Tostr(showdat))
|
||||
if value == -1 {
|
||||
errmsg = name + "文字与系统数据不匹配"
|
||||
}
|
||||
|
|
@ -511,13 +511,13 @@ func Admin_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
if showdat == "" {
|
||||
errmsg = name + "为必填项"
|
||||
} else {
|
||||
csqlchk := NewCiySQL("zc_admin")
|
||||
csqlchk := c.NewCiySQL("zc_admin")
|
||||
csqlchk.Where("name", id).Column("id")
|
||||
chkid := Toint(CiyDB.Get1(csqlchk))
|
||||
chkid := c.Toint(c.CiyDB.Get1(csqlchk))
|
||||
if chkid > 0 && ((id > 0 && chkid != id) || id == 0) {
|
||||
errmsg = name + "在数据库中出现重复"
|
||||
}
|
||||
if In_array(un_name, showdat) > -1 {
|
||||
if c.In_array(un_name, showdat) > -1 {
|
||||
errmsg = name + "发现重复"
|
||||
} else {
|
||||
un_name = append(un_name, showdat)
|
||||
|
|
@ -527,13 +527,13 @@ func Admin_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
if showdat == "" {
|
||||
errmsg = name + "为必填项"
|
||||
} else {
|
||||
csqlchk := NewCiySQL("zc_admin")
|
||||
csqlchk := c.NewCiySQL("zc_admin")
|
||||
csqlchk.Where("mobile", id).Column("id")
|
||||
chkid := Toint(CiyDB.Get1(csqlchk))
|
||||
chkid := c.Toint(c.CiyDB.Get1(csqlchk))
|
||||
if chkid > 0 && ((id > 0 && chkid != id) || id == 0) {
|
||||
errmsg = name + "在数据库中出现重复"
|
||||
}
|
||||
if In_array(un_mobile, showdat) > -1 {
|
||||
if c.In_array(un_mobile, showdat) > -1 {
|
||||
errmsg = name + "发现重复"
|
||||
} else {
|
||||
un_mobile = append(un_mobile, showdat)
|
||||
|
|
@ -544,7 +544,7 @@ func Admin_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
value = 0
|
||||
} else {
|
||||
dats := strings.Split(showdat, "-")
|
||||
value = Dcode(code_departid, dats[len(dats)-1])
|
||||
value = c.Dcode(code_departid, dats[len(dats)-1])
|
||||
if value == -1 {
|
||||
errmsg = name + "文字与系统数据不匹配"
|
||||
}
|
||||
|
|
@ -554,7 +554,7 @@ func Admin_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
bempty = false
|
||||
}
|
||||
if errmsg == "" {
|
||||
hrhtml += "<td><div>" + showdat + "<input type=\"hidden\" name=\"" + Tostr(arr["fld"]) + "_" + lineidx + "\" value=\"" + Tostr(value) + "\"/>" + ext + "</div></td>"
|
||||
hrhtml += "<td><div>" + showdat + "<input type=\"hidden\" name=\"" + c.Tostr(arr["fld"]) + "_" + lineidx + "\" value=\"" + c.Tostr(value) + "\"/>" + ext + "</div></td>"
|
||||
} else {
|
||||
hrhtml += "<td><div style=\"background:#ffe8c5;\" title=\"#" + lineidx + ":" + errmsg + "\">" + showdat + "</div></td>"
|
||||
}
|
||||
|
|
@ -572,36 +572,36 @@ func Admin_importxls_in(w http.ResponseWriter, r *http.Request) bool {
|
|||
html += "</tbody>\n"
|
||||
html += "</table>\n"
|
||||
html += "</div>\n"
|
||||
html += "<input type=\"hidden\" name=\"total\" value=\"" + Tostr(cnt) + "\"/>\n"
|
||||
html += "<code>共" + Tostr(cnt) + "条数据</code>\n"
|
||||
return SuccJSON(w, map[string]any{
|
||||
html += "<input type=\"hidden\" name=\"total\" value=\"" + c.Tostr(cnt) + "\"/>\n"
|
||||
html += "<code>共" + c.Tostr(cnt) + "条数据</code>\n"
|
||||
return c.SuccJSON(w, map[string]any{
|
||||
"html": html,
|
||||
"count": cnt,
|
||||
})
|
||||
}
|
||||
func Admin_importxls_data(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p500a") {
|
||||
return ErrJSON(w, "您未被授权操作新增")
|
||||
if admin.Nopower(c.CiyDB, userid, "p500a") {
|
||||
return c.ErrJSON(w, "您未被授权操作新增")
|
||||
}
|
||||
total := post.Getint("total")
|
||||
err := CiyDB.Tran(func() error {
|
||||
err := c.CiyDB.Tran(func() error {
|
||||
for i := 1; i <= total; i++ {
|
||||
istr := Tostr(i)
|
||||
istr := c.Tostr(i)
|
||||
id := post.Getint("id_" + istr)
|
||||
stpstatus := post.Getint("stpstatus_" + istr)
|
||||
name := post.Get("name_" + istr)
|
||||
mobile := post.Get("mobile_" + istr)
|
||||
sex := post.Getint("sex_" + istr)
|
||||
departid := post.Getint("departid_" + istr)
|
||||
csql := NewCiySQL("zc_admin")
|
||||
csql := c.NewCiySQL("zc_admin")
|
||||
csql.Where("mobile", mobile)
|
||||
csql.Column("id")
|
||||
chkid := Toint(CiyDB.Get1(csql))
|
||||
chkid := c.Toint(c.CiyDB.Get1(csql))
|
||||
if chkid > 0 && ((id > 0 && chkid != id) || id == 0) {
|
||||
return fmt.Errorf("发现手机号有重复")
|
||||
}
|
||||
|
|
@ -611,14 +611,14 @@ func Admin_importxls_data(w http.ResponseWriter, r *http.Request) bool {
|
|||
updata["stpstatus"] = stpstatus
|
||||
updata["sex"] = sex
|
||||
updata["departid"] = departid
|
||||
csql = NewCiySQL("zc_admin")
|
||||
csql = c.NewCiySQL("zc_admin")
|
||||
var err error
|
||||
if id == 0 {
|
||||
updata["addtimes"] = Tostamp()
|
||||
_, err = CiyDB.Insert(csql, updata)
|
||||
updata["addtimes"] = c.Tostamp()
|
||||
_, err = c.CiyDB.Insert(csql, updata)
|
||||
} else {
|
||||
csql.Where("id", id)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
}
|
||||
if err != nil {
|
||||
return fmt.Errorf("导入失败:%v", err)
|
||||
|
|
@ -627,8 +627,8 @@ func Admin_importxls_data(w http.ResponseWriter, r *http.Request) bool {
|
|||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
CiyDB.Execute("update zc_online set usrchg=2")
|
||||
return SuccJSON(w)
|
||||
c.CiyDB.Execute("update zc_online set usrchg=2")
|
||||
return c.SuccJSON(w)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,25 +5,25 @@ import (
|
|||
"net/http"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func autotask_setwhere(post *CiyPost) (map[string]any, *CiySQL) {
|
||||
func autotask_setwhere(post *c.CiyPost) (map[string]any, *c.CiySQL) {
|
||||
query := post.Getobj("query")
|
||||
csql := NewCiySQL("zc_autotask")
|
||||
liid := Getint(query, "liid")
|
||||
csql := c.NewCiySQL("zc_autotask")
|
||||
liid := c.Getint(query, "liid")
|
||||
if liid > 0 {
|
||||
csql.Where("autotaskstatus", liid)
|
||||
}
|
||||
csql.Where("types like", Getstr(query, "types"))
|
||||
order := Getstr(query, "order", "id desc")
|
||||
csql.Where("types like", c.Getstr(query, "types"))
|
||||
order := c.Getstr(query, "order", "id desc")
|
||||
csql.Order(order)
|
||||
query["order"] = order
|
||||
return query, csql
|
||||
}
|
||||
func Autotask_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
|
|
@ -31,14 +31,14 @@ func Autotask_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
pageno := post.Getint("pageno", 1)
|
||||
pagecount := post.Getint("pagecount", 10)
|
||||
csql.Limit(pageno, pagecount)
|
||||
rows, mainrowcount, err := CiyDB.Get(csql, post.Getint("count"))
|
||||
rows, mainrowcount, err := c.CiyDB.Get(csql, post.Getint("count"))
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
rows = append(rows, map[string]any{
|
||||
"id": "",
|
||||
"runcycle": 0,
|
||||
"nexttimes": Tostamp(),
|
||||
"nexttimes": c.Tostamp(),
|
||||
})
|
||||
ret := map[string]any{}
|
||||
ret["where"] = where
|
||||
|
|
@ -47,8 +47,8 @@ func Autotask_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
ret["count"] = mainrowcount
|
||||
ret["list"] = rows
|
||||
if post.Getbool("field") {
|
||||
field, fshow := CiyDB.GetField(csql)
|
||||
FieldAdd(&field, &fshow, -1, "_btn", "操作")
|
||||
field, fshow := c.CiyDB.GetField(csql)
|
||||
c.FieldAdd(&field, &fshow, -1, "_btn", "操作")
|
||||
field["runparam"]["thwidth"] = "8em"
|
||||
field["nexttimes"]["thwidth"] = "10em"
|
||||
field["runcycle"]["thwidth"] = "9em"
|
||||
|
|
@ -74,49 +74,49 @@ func Autotask_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
once["input"] = input
|
||||
ret["once"] = once
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Autotask_update(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p602u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p602u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
id := post.Getint("id")
|
||||
name := post.Get("name")
|
||||
if name == "" {
|
||||
return ErrJSON(w, "请填写任务名称")
|
||||
return c.ErrJSON(w, "请填写任务名称")
|
||||
}
|
||||
runfunc := post.Get("runfunc")
|
||||
if runfunc == "" {
|
||||
return ErrJSON(w, "请填写入口函数")
|
||||
return c.ErrJSON(w, "请填写入口函数")
|
||||
}
|
||||
runparam := post.Get("runparam")
|
||||
nexttimes := post.Getdate("nexttimes")
|
||||
runcycle := post.Getint("runcycle")
|
||||
if runcycle >= 0 && runcycle < 60 {
|
||||
return ErrJSON(w, "请填写超过1分钟的执行周期")
|
||||
return c.ErrJSON(w, "请填写超过1分钟的执行周期")
|
||||
}
|
||||
var err error
|
||||
var datarow map[string]any
|
||||
if id > 0 {
|
||||
csql := NewCiySQL("zc_autotask")
|
||||
csql := c.NewCiySQL("zc_autotask")
|
||||
csql.Where("id", id)
|
||||
datarow, err = CiyDB.Getone(csql)
|
||||
datarow, err = c.CiyDB.Getone(csql)
|
||||
if datarow == nil {
|
||||
return ErrJSON(w, "数据不存在", err)
|
||||
return c.ErrJSON(w, "数据不存在", err)
|
||||
}
|
||||
}
|
||||
updata := map[string]any{}
|
||||
err = CiyDB.Tran(func() error {
|
||||
var csql *CiySQL
|
||||
csql = NewCiySQL("zc_autotask")
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
var csql *c.CiySQL
|
||||
csql = c.NewCiySQL("zc_autotask")
|
||||
csql.Where("name", name)
|
||||
csql.Column("id")
|
||||
chkid := Toint(CiyDB.Get1(csql))
|
||||
chkid := c.Toint(c.CiyDB.Get1(csql))
|
||||
if chkid > 0 && ((id > 0 && chkid != id) || id == 0) {
|
||||
return fmt.Errorf("数据已存在")
|
||||
}
|
||||
|
|
@ -125,102 +125,102 @@ func Autotask_update(w http.ResponseWriter, r *http.Request) bool {
|
|||
updata["runparam"] = runparam
|
||||
updata["nexttimes"] = nexttimes
|
||||
updata["runcycle"] = runcycle
|
||||
csql = NewCiySQL("zc_autotask")
|
||||
csql = c.NewCiySQL("zc_autotask")
|
||||
if id > 0 {
|
||||
csql.Where("id", id)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
} else {
|
||||
updata["autotaskstatus"] = 90
|
||||
if nexttimes == 0 {
|
||||
updata["nexttimes"] = Tostamp()
|
||||
updata["nexttimes"] = c.Tostamp()
|
||||
}
|
||||
id, err = CiyDB.Insert(csql, updata)
|
||||
id, err = c.CiyDB.Insert(csql, updata)
|
||||
}
|
||||
updata["newid"] = id
|
||||
if err != nil {
|
||||
return fmt.Errorf("更新失败:%v", err)
|
||||
}
|
||||
admin.SaveLogDB(CiyDB, "zc_autotask", datarow, updata)
|
||||
admin.SaveLogDB(c.CiyDB, "zc_autotask", datarow, updata)
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["data"] = updata
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Autotask_del(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p602d") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p602d") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
ids := post.Get("ids")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
csql := NewCiySQL("zc_autotask")
|
||||
csql := c.NewCiySQL("zc_autotask")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据错误", err)
|
||||
return c.ErrJSON(w, "读取数据错误", err)
|
||||
}
|
||||
vids := make([]int, 0)
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
delid := Toint(row["id"])
|
||||
Delme(CiyDB, delid, "zc_autotask")
|
||||
admin.SaveLogDB(CiyDB, "zc_autotask", row, nil)
|
||||
delid := c.Toint(row["id"])
|
||||
c.Delme(c.CiyDB, delid, "zc_autotask")
|
||||
admin.SaveLogDB(c.CiyDB, "zc_autotask", row, nil)
|
||||
vids = append(vids, delid)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
||||
func Autotask_status(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p602u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p602u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
id := post.Getint("id")
|
||||
status := post.Getint("status")
|
||||
csql := NewCiySQL("zc_autotask")
|
||||
csql := c.NewCiySQL("zc_autotask")
|
||||
csql.Where("id", id)
|
||||
row, err := CiyDB.Getone(csql)
|
||||
row, err := c.CiyDB.Getone(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据错误", err)
|
||||
return c.ErrJSON(w, "读取数据错误", err)
|
||||
}
|
||||
updata := map[string]any{}
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
updata["autotaskstatus"] = status
|
||||
csql = NewCiySQL("zc_autotask")
|
||||
csql = c.NewCiySQL("zc_autotask")
|
||||
csql.Where("id", id)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
if err != nil {
|
||||
return fmt.Errorf("更新失败:%v", err)
|
||||
}
|
||||
admin.SaveLogDB(CiyDB, "zc_autotask", row, updata)
|
||||
admin.SaveLogDB(c.CiyDB, "zc_autotask", row, updata)
|
||||
updata["id"] = id
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["data"] = updata
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,25 +5,25 @@ import (
|
|||
"net/http"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func autotskrun_setwhere(post *CiyPost) (map[string]any, *CiySQL) {
|
||||
func autotskrun_setwhere(post *c.CiyPost) (map[string]any, *c.CiySQL) {
|
||||
query := post.Getobj("query")
|
||||
csql := NewCiySQL("zc_autotsk_run")
|
||||
csql.Where("autotaskid", Getstr(query, "_autotaskid"))
|
||||
csql.Where_daterange("addtimes", Getstr(query, "addtimes"))
|
||||
csql.Where_numrange("runsec", Getstr(query, "runsec_1"), Getstr(query, "runsec_2"), 1)
|
||||
csql.Where_numrange("logcnt", Getstr(query, "logcnt_1"), Getstr(query, "logcnt_2"), 1)
|
||||
csql.Where("msg like", Getstr(query, "msg"))
|
||||
order := Getstr(query, "order", "id desc")
|
||||
csql := c.NewCiySQL("zc_autotsk_run")
|
||||
csql.Where("autotaskid", c.Getstr(query, "_autotaskid"))
|
||||
csql.Where_daterange("addtimes", c.Getstr(query, "addtimes"))
|
||||
csql.Where_numrange("runsec", c.Getstr(query, "runsec_1"), c.Getstr(query, "runsec_2"), 1)
|
||||
csql.Where_numrange("logcnt", c.Getstr(query, "logcnt_1"), c.Getstr(query, "logcnt_2"), 1)
|
||||
csql.Where("msg like", c.Getstr(query, "msg"))
|
||||
order := c.Getstr(query, "order", "id desc")
|
||||
csql.Order(order)
|
||||
query["order"] = order
|
||||
return query, csql
|
||||
}
|
||||
func Autotskrun_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
|
|
@ -31,9 +31,9 @@ func Autotskrun_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
pageno := post.Getint("pageno", 1)
|
||||
pagecount := post.Getint("pagecount", 10)
|
||||
csql.Limit(pageno, pagecount)
|
||||
rows, mainrowcount, err := CiyDB.Get(csql, post.Getint("count"))
|
||||
rows, mainrowcount, err := c.CiyDB.Get(csql, post.Getint("count"))
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["where"] = where
|
||||
|
|
@ -42,7 +42,7 @@ func Autotskrun_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
ret["count"] = mainrowcount
|
||||
ret["list"] = rows
|
||||
if post.Getbool("field") {
|
||||
field, fshow := CiyDB.GetField(csql)
|
||||
field, fshow := c.CiyDB.GetField(csql)
|
||||
field["msg"]["thwidth"] = "20em"
|
||||
ret["fshow"] = fshow
|
||||
ret["field"] = field
|
||||
|
|
@ -74,67 +74,67 @@ func Autotskrun_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
"prop": ` style="width:8em;"`,
|
||||
})
|
||||
once["input"] = input
|
||||
csql = NewCiySQL("zc_autotask")
|
||||
csql = c.NewCiySQL("zc_autotask")
|
||||
csql.Column("id,name")
|
||||
once["zc_autotask"], _, _ = CiyDB.Get(csql)
|
||||
once["zc_autotask"], _, _ = c.CiyDB.Get(csql)
|
||||
ret["once"] = once
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Autotskrun_del(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p602l") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p602l") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
ids := post.Get("ids")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
csql := NewCiySQL("zc_autotsk_run")
|
||||
csql := c.NewCiySQL("zc_autotsk_run")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据错误", err)
|
||||
return c.ErrJSON(w, "读取数据错误", err)
|
||||
}
|
||||
vids := make([]int, 0)
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
delid := Toint(row["id"])
|
||||
Delall(CiyDB, delid, "zc_autotsk_log", "runtaskid", "Log记录")
|
||||
Delme(CiyDB, delid, "zc_autotsk_run")
|
||||
admin.SaveLogDB(CiyDB, "zc_autotsk_run", row, nil)
|
||||
delid := c.Toint(row["id"])
|
||||
c.Delall(c.CiyDB, delid, "zc_autotsk_log", "runtaskid", "Log记录")
|
||||
c.Delme(c.CiyDB, delid, "zc_autotsk_run")
|
||||
admin.SaveLogDB(c.CiyDB, "zc_autotsk_run", row, nil)
|
||||
vids = append(vids, delid)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
||||
func Autotskrun_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p602l") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p602l") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
_, csql := autotskrun_setwhere(post)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
if len(rows) > 10000 {
|
||||
return ErrJSON(w, "将导出"+Tostr(len(rows))+"条,不建议超过1万条,请筛选缩小范围", err)
|
||||
return c.ErrJSON(w, "将导出"+c.Tostr(len(rows))+"条,不建议超过1万条,请筛选缩小范围", err)
|
||||
}
|
||||
fields := []map[string]string{}
|
||||
fields = append(fields, map[string]string{"style": "c", "width": "60", "field": "id", "name": "行码"})
|
||||
|
|
@ -144,11 +144,11 @@ func Autotskrun_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
|||
fields = append(fields, map[string]string{"style": "r", "width": "60", "field": "logcnt", "name": "LOG统计"})
|
||||
fields = append(fields, map[string]string{"style": "l", "width": "500", "field": "msg", "name": "任务简报"})
|
||||
|
||||
csql = NewCiySQL("zc_autotask")
|
||||
csql = c.NewCiySQL("zc_autotask")
|
||||
csql.Column("id,name")
|
||||
code_autotaskid, _, err2 := CiyDB.Get(csql)
|
||||
code_autotaskid, _, err2 := c.CiyDB.Get(csql)
|
||||
if err2 != nil {
|
||||
return ErrJSON(w, "读取zc_autotask错误", err2)
|
||||
return c.ErrJSON(w, "读取zc_autotask错误", err2)
|
||||
}
|
||||
|
||||
datas := [][]string{}
|
||||
|
|
@ -159,18 +159,18 @@ func Autotskrun_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
|||
if val, ok := row[field]; ok {
|
||||
var str string
|
||||
if field == "id" {
|
||||
str = EnID(Toint(val))
|
||||
str = c.EnID(c.Toint(val))
|
||||
} else if field == "autotaskid" {
|
||||
str = Ccode(code_autotaskid, Toint(val))
|
||||
str = c.Ccode(code_autotaskid, c.Toint(val))
|
||||
} else if field == "addtimes" {
|
||||
t := Toint(val)
|
||||
t := c.Toint(val)
|
||||
if t <= 0 {
|
||||
str = "--"
|
||||
} else {
|
||||
str = Todate(t, "Y-m-d H:i")
|
||||
str = c.Todate(t, "Y-m-d H:i")
|
||||
}
|
||||
} else {
|
||||
str = Tostr(val)
|
||||
str = c.Tostr(val)
|
||||
}
|
||||
dat = append(dat, str)
|
||||
} else {
|
||||
|
|
@ -187,36 +187,36 @@ func Autotskrun_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
|||
param["toptitle"] = "任务执行记录数据报表"
|
||||
total := []map[string]any{} //单行统计数据
|
||||
// total = append(total, map[string]any{"style": "l", "name": "合计", "merge": 5})
|
||||
// total = append(total, map[string]any{"style": "r", "name": "=SUM(R[-" + Tostr(len(datas)) + "]C:R[-1]C)"})
|
||||
// total = append(total, map[string]any{"style": "r", "name": "=MAX(R[-" + Tostr(len(datas)) + "]C:R[-1]C)"})
|
||||
// total = append(total, map[string]any{"style": "r", "name": "=SUM(R[-" + c.Tostr(len(datas)) + "]C:R[-1]C)"})
|
||||
// total = append(total, map[string]any{"style": "r", "name": "=MAX(R[-" + c.Tostr(len(datas)) + "]C:R[-1]C)"})
|
||||
// param["rowstop"] = `<Row ss:Height="45"><Cell ss:MergeAcross="7" ss:StyleID="cap"><Data ss:Type="String">众产Ciyon</Data></Cell></Row>`
|
||||
// param["rowsfooter"] = `<Row><Cell ss:MergeAcross="2"><Data ss:Type="String" ss:StyleID="r">总计</Data></Cell><Cell ss:Formula="=SUM(R[-2]C:R[-1]C)"><Data ss:Type="Number"></Data></Cell></Row>`
|
||||
str := General_excel_xml(fields, datas, param, total)
|
||||
filename := "/ud/tmp/" + Todate(-1, "Ymd_His") + Tostr(rand.Intn(8999)+1000) + ".xls"
|
||||
err = FileSave(CiyWebDir+filename, str)
|
||||
str := c.General_excel_xml(fields, datas, param, total)
|
||||
filename := "/ud/tmp/" + c.Todate(-1, "Ymd_His") + c.Tostr(rand.Intn(8999)+1000) + ".xls"
|
||||
err = c.FileSave(c.CiyWebDir+filename, str)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "导出保存文件错误:%v[%v]", err, filename)
|
||||
return c.ErrJSON(w, "导出保存文件错误:%v[%v]", err, filename)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["url"] = filename
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Autotskrun_viewlog(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
runtaskid := post.Getint("runtaskid")
|
||||
csql := NewCiySQL("zc_autotsk_log")
|
||||
csql := c.NewCiySQL("zc_autotsk_log")
|
||||
csql.Where("runtaskid", runtaskid)
|
||||
csql.Column("addtimes,msg")
|
||||
csql.Order("id")
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据错误", err)
|
||||
return c.ErrJSON(w, "读取数据错误", err)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["logs"] = rows
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,12 +6,12 @@ import (
|
|||
"strings"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func Cata_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
|
|
@ -23,32 +23,32 @@ func Cata_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
code := ""
|
||||
if cbid == 0 {
|
||||
code = post.Get("code")
|
||||
csql := NewCiySQL("zc_cata")
|
||||
csql := c.NewCiySQL("zc_cata")
|
||||
csql.Where("codeid", code)
|
||||
csql.Where("cbid=0")
|
||||
cbrow, _ := CiyDB.Getone(csql)
|
||||
cbrow, _ := c.CiyDB.Getone(csql)
|
||||
if cbrow == nil {
|
||||
return ErrJSON(w, "代码库未找到code="+code)
|
||||
return c.ErrJSON(w, "代码库未找到code="+code)
|
||||
}
|
||||
cbid = Toint(cbrow["id"])
|
||||
cname = Tostr(cbrow["name"])
|
||||
cbid = c.Toint(cbrow["id"])
|
||||
cname = c.Tostr(cbrow["name"])
|
||||
} else {
|
||||
csql := NewCiySQL("zc_cata")
|
||||
csql := c.NewCiySQL("zc_cata")
|
||||
csql.Where("id", cbid)
|
||||
csql.Where("cbid=0")
|
||||
cbrow, _ := CiyDB.Getone(csql)
|
||||
cbrow, _ := c.CiyDB.Getone(csql)
|
||||
if cbrow == nil {
|
||||
return ErrJSON(w, "代码库未找到cbid="+Tostr(cbid))
|
||||
return c.ErrJSON(w, "代码库未找到cbid="+c.Tostr(cbid))
|
||||
}
|
||||
cname = Tostr(cbrow["name"])
|
||||
code = Tostr(cbrow["codeid"])
|
||||
cname = c.Tostr(cbrow["name"])
|
||||
code = c.Tostr(cbrow["codeid"])
|
||||
}
|
||||
csql := NewCiySQL("zc_cata")
|
||||
csql := c.NewCiySQL("zc_cata")
|
||||
csql.Where("cbid", cbid)
|
||||
csql.Order("csort,id")
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
rows = append(rows, map[string]any{
|
||||
"id": 0,
|
||||
|
|
@ -61,15 +61,15 @@ func Cata_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
if post.Getbool("field") {
|
||||
field := map[string]map[string]any{}
|
||||
fshow := ""
|
||||
FieldAdd(&field, &fshow, -1, "name", cname)
|
||||
FieldAdd(&field, &fshow, -1, "codeid", "代码|")
|
||||
c.FieldAdd(&field, &fshow, -1, "name", cname)
|
||||
c.FieldAdd(&field, &fshow, -1, "codeid", "代码|")
|
||||
if ext != "" {
|
||||
FieldAdd(&field, &fshow, -1, "extdata", ext)
|
||||
c.FieldAdd(&field, &fshow, -1, "extdata", ext)
|
||||
}
|
||||
FieldAdd(&field, &fshow, -1, "isuse", "启用")
|
||||
FieldAdd(&field, &fshow, -1, "csort", "排序|")
|
||||
FieldAdd(&field, &fshow, -1, "clas", "样式")
|
||||
FieldAdd(&field, &fshow, -1, "_btn", "操作")
|
||||
c.FieldAdd(&field, &fshow, -1, "isuse", "启用")
|
||||
c.FieldAdd(&field, &fshow, -1, "csort", "排序|")
|
||||
c.FieldAdd(&field, &fshow, -1, "clas", "样式")
|
||||
c.FieldAdd(&field, &fshow, -1, "_btn", "操作")
|
||||
|
||||
field["clas"]["thwidth"] = "7em"
|
||||
field["codeid"]["thwidth"] = "6em"
|
||||
|
|
@ -107,23 +107,23 @@ func Cata_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
once["code"] = code
|
||||
ret["once"] = once
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Cata_update(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p601pd") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p601pd") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
id := post.Getint("id")
|
||||
cbid := post.Getint("cbid")
|
||||
codeid := post.Get("codeid")
|
||||
name := post.Get("name")
|
||||
if name == "" {
|
||||
return ErrJSON(w, "请填写名称")
|
||||
return c.ErrJSON(w, "请填写名称")
|
||||
}
|
||||
upid := post.Getint("upid")
|
||||
csort := post.Getint("csort")
|
||||
|
|
@ -133,21 +133,21 @@ func Cata_update(w http.ResponseWriter, r *http.Request) bool {
|
|||
var err error
|
||||
var datarow map[string]any
|
||||
if id > 0 {
|
||||
csql := NewCiySQL("zc_cata")
|
||||
csql := c.NewCiySQL("zc_cata")
|
||||
csql.Where("id", id)
|
||||
datarow, err = CiyDB.Getone(csql)
|
||||
datarow, err = c.CiyDB.Getone(csql)
|
||||
if datarow == nil {
|
||||
return ErrJSON(w, "数据不存在", err)
|
||||
return c.ErrJSON(w, "数据不存在", err)
|
||||
}
|
||||
}
|
||||
updata := map[string]any{}
|
||||
err = CiyDB.Tran(func() error {
|
||||
var csql *CiySQL
|
||||
csql = NewCiySQL("zc_cata")
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
var csql *c.CiySQL
|
||||
csql = c.NewCiySQL("zc_cata")
|
||||
csql.Where("cbid", cbid)
|
||||
csql.Where("codeid", codeid)
|
||||
csql.Column("id")
|
||||
chkid := Toint(CiyDB.Get1(csql))
|
||||
chkid := c.Toint(c.CiyDB.Get1(csql))
|
||||
if chkid > 0 && ((id > 0 && chkid != id) || id == 0) {
|
||||
return fmt.Errorf("代码值重复")
|
||||
}
|
||||
|
|
@ -159,62 +159,62 @@ func Cata_update(w http.ResponseWriter, r *http.Request) bool {
|
|||
updata["csort"] = csort
|
||||
updata["clas"] = clas
|
||||
updata["extdata"] = extdata
|
||||
csql = NewCiySQL("zc_cata")
|
||||
csql = c.NewCiySQL("zc_cata")
|
||||
if id > 0 {
|
||||
csql.Where("id", id)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
} else {
|
||||
id, err = CiyDB.Insert(csql, updata)
|
||||
id, err = c.CiyDB.Insert(csql, updata)
|
||||
}
|
||||
updata["newid"] = id
|
||||
if err != nil {
|
||||
return fmt.Errorf("更新失败:%v", err)
|
||||
}
|
||||
admin.SaveLogDB(CiyDB, "zc_cata", datarow, updata)
|
||||
admin.SaveLogDB(c.CiyDB, "zc_cata", datarow, updata)
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
CiyDB.Execute("update zc_online set usrchg=2")
|
||||
c.CiyDB.Execute("update zc_online set usrchg=2")
|
||||
ret := map[string]any{}
|
||||
ret["data"] = updata
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Cata_del(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p601pd") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p601pd") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
ids := post.Get("ids")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
cbid := post.Getint("cbid")
|
||||
var csql *CiySQL
|
||||
csql = NewCiySQL("zc_cata")
|
||||
var csql *c.CiySQL
|
||||
csql = c.NewCiySQL("zc_cata")
|
||||
csql.Where("cbid=0")
|
||||
csql.Where("id", cbid)
|
||||
cbrow, _ := CiyDB.Getone(csql)
|
||||
cbrow, _ := c.CiyDB.Getone(csql)
|
||||
if cbrow == nil {
|
||||
return ErrJSON(w, "代码库未找到cbid="+Tostr(cbid))
|
||||
return c.ErrJSON(w, "代码库未找到cbid="+c.Tostr(cbid))
|
||||
}
|
||||
exs := strings.Split(Tostr(cbrow["extdata"]), "\n")
|
||||
csql = NewCiySQL("zc_cata")
|
||||
exs := strings.Split(c.Tostr(cbrow["extdata"]), "\n")
|
||||
csql = c.NewCiySQL("zc_cata")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, _ := CiyDB.Get(csql)
|
||||
rows, _, _ := c.CiyDB.Get(csql)
|
||||
vids := make([]int, 0)
|
||||
err := CiyDB.Tran(func() error {
|
||||
err := c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
delid := Toint(row["id"])
|
||||
csql = NewCiySQL("zc_cata")
|
||||
delid := c.Toint(row["id"])
|
||||
csql = c.NewCiySQL("zc_cata")
|
||||
csql.Where("upid", delid)
|
||||
csql.Where("cbid", row["cbid"])
|
||||
downcnt := Toint(CiyDB.Get1(csql))
|
||||
downcnt := c.Toint(c.CiyDB.Get1(csql))
|
||||
if downcnt > 0 {
|
||||
return fmt.Errorf("[%v]有%v个子码,请先删除子码", row["name"], downcnt)
|
||||
}
|
||||
|
|
@ -224,21 +224,21 @@ func Cata_del(w http.ResponseWriter, r *http.Request) bool {
|
|||
}
|
||||
tabf := strings.Split(exn, ",")
|
||||
if len(tabf) == 1 {
|
||||
tabf = append(tabf, Tostr(cbrow["codeid"]))
|
||||
tabf = append(tabf, c.Tostr(cbrow["codeid"]))
|
||||
}
|
||||
Delcheck(CiyDB, Toint(row["codeid"]), tabf[0], tabf[1], tabf[0]+"数据")
|
||||
c.Delcheck(c.CiyDB, c.Toint(row["codeid"]), tabf[0], tabf[1], tabf[0]+"数据")
|
||||
}
|
||||
Delme(CiyDB, delid, "zc_cata")
|
||||
admin.SaveLogDB(CiyDB, "zc_cata", row, nil)
|
||||
c.Delme(c.CiyDB, delid, "zc_cata")
|
||||
admin.SaveLogDB(c.CiyDB, "zc_cata", row, nil)
|
||||
vids = append(vids, delid)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
CiyDB.Execute("update zc_online set usrchg=2")
|
||||
c.CiyDB.Execute("update zc_online set usrchg=2")
|
||||
ret := map[string]any{}
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,33 +6,33 @@ import (
|
|||
"strings"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func Cataindex_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
csql := NewCiySQL("zc_cata")
|
||||
csql := c.NewCiySQL("zc_cata")
|
||||
csql.Where("cbid=0")
|
||||
csql.Order("csort,id")
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["list"] = rows
|
||||
if post.Getbool("field") {
|
||||
field := map[string]map[string]any{}
|
||||
fshow := ""
|
||||
FieldAdd(&field, &fshow, -1, "_btn", "操作")
|
||||
FieldAdd(&field, &fshow, -1, "id", "|库索引|")
|
||||
FieldAdd(&field, &fshow, -1, "name", "库名称")
|
||||
FieldAdd(&field, &fshow, -1, "codeid", "库代码")
|
||||
FieldAdd(&field, &fshow, -1, "csort", "排序|")
|
||||
FieldAdd(&field, &fshow, -1, "extdata", "引用表")
|
||||
c.FieldAdd(&field, &fshow, -1, "_btn", "操作")
|
||||
c.FieldAdd(&field, &fshow, -1, "id", "|库索引|")
|
||||
c.FieldAdd(&field, &fshow, -1, "name", "库名称")
|
||||
c.FieldAdd(&field, &fshow, -1, "codeid", "库代码")
|
||||
c.FieldAdd(&field, &fshow, -1, "csort", "排序|")
|
||||
c.FieldAdd(&field, &fshow, -1, "extdata", "引用表")
|
||||
field["name"]["thwidth"] = "20em"
|
||||
field["extdata"]["thwidth"] = "20em"
|
||||
ret["fshow"] = strings.TrimLeft(fshow, ",")
|
||||
|
|
@ -62,25 +62,25 @@ func Cataindex_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
once["input"] = input
|
||||
ret["once"] = once
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Cataindex_update(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p601pi") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p601pi") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
id := post.Getint("id")
|
||||
codeid := post.Get("codeid")
|
||||
if codeid == "" {
|
||||
return ErrJSON(w, "请填写值")
|
||||
return c.ErrJSON(w, "请填写值")
|
||||
}
|
||||
name := post.Get("name")
|
||||
if name == "" {
|
||||
return ErrJSON(w, "请填写名称")
|
||||
return c.ErrJSON(w, "请填写名称")
|
||||
}
|
||||
upid := post.Getint("upid")
|
||||
csort := post.Getint("csort")
|
||||
|
|
@ -88,21 +88,21 @@ func Cataindex_update(w http.ResponseWriter, r *http.Request) bool {
|
|||
var err error
|
||||
var datarow map[string]any
|
||||
if id > 0 {
|
||||
csql := NewCiySQL("zc_cata")
|
||||
csql := c.NewCiySQL("zc_cata")
|
||||
csql.Where("id", id)
|
||||
datarow, err = CiyDB.Getone(csql)
|
||||
datarow, err = c.CiyDB.Getone(csql)
|
||||
if datarow == nil {
|
||||
return ErrJSON(w, "数据不存在", err)
|
||||
return c.ErrJSON(w, "数据不存在", err)
|
||||
}
|
||||
}
|
||||
updata := map[string]any{}
|
||||
err = CiyDB.Tran(func() error {
|
||||
var csql *CiySQL
|
||||
csql = NewCiySQL("zc_cata")
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
var csql *c.CiySQL
|
||||
csql = c.NewCiySQL("zc_cata")
|
||||
csql.Where("cbid=0")
|
||||
csql.Where("codeid", codeid)
|
||||
csql.Column("id")
|
||||
chkid := Toint(CiyDB.Get1(csql))
|
||||
chkid := c.Toint(c.CiyDB.Get1(csql))
|
||||
if chkid > 0 && ((id > 0 && chkid != id) || id == 0) {
|
||||
return fmt.Errorf("该库代码重复")
|
||||
}
|
||||
|
|
@ -111,67 +111,67 @@ func Cataindex_update(w http.ResponseWriter, r *http.Request) bool {
|
|||
updata["codeid"] = codeid
|
||||
updata["name"] = name
|
||||
updata["extdata"] = extdata
|
||||
csql = NewCiySQL("zc_cata")
|
||||
csql = c.NewCiySQL("zc_cata")
|
||||
if id > 0 {
|
||||
csql.Where("id", id)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
} else {
|
||||
updata["isuse"] = 1
|
||||
id, err = CiyDB.Insert(csql, updata)
|
||||
id, err = c.CiyDB.Insert(csql, updata)
|
||||
}
|
||||
updata["id"] = id
|
||||
if err != nil {
|
||||
return fmt.Errorf("更新失败:%v", err)
|
||||
}
|
||||
admin.SaveLogDB(CiyDB, "zc_cata", datarow, updata)
|
||||
admin.SaveLogDB(c.CiyDB, "zc_cata", datarow, updata)
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["data"] = updata
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Cataindex_del(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p601pi") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p601pi") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
ids := post.Get("ids")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
var csql *CiySQL
|
||||
csql = NewCiySQL("zc_cata")
|
||||
var csql *c.CiySQL
|
||||
csql = c.NewCiySQL("zc_cata")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, _ := CiyDB.Get(csql)
|
||||
rows, _, _ := c.CiyDB.Get(csql)
|
||||
vids := make([]int, 0)
|
||||
err := CiyDB.Tran(func() error {
|
||||
err := c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
delid := Toint(row["id"])
|
||||
csql = NewCiySQL("zc_cata")
|
||||
delid := c.Toint(row["id"])
|
||||
csql = c.NewCiySQL("zc_cata")
|
||||
csql.Where("upid", delid)
|
||||
csql.Where("cbid=0")
|
||||
downcnt := Toint(CiyDB.Get1(csql))
|
||||
downcnt := c.Toint(c.CiyDB.Get1(csql))
|
||||
if downcnt > 0 {
|
||||
return fmt.Errorf("该库有%d个子库,请先删除子库", downcnt)
|
||||
}
|
||||
Delcheck(CiyDB, delid, "zc_cata", "cbid", Tostr(row["name"]))
|
||||
Delme(CiyDB, delid, "zc_cata")
|
||||
admin.SaveLogDB(CiyDB, "zc_cata", row, nil)
|
||||
c.Delcheck(c.CiyDB, delid, "zc_cata", "cbid", c.Tostr(row["name"]))
|
||||
c.Delme(c.CiyDB, delid, "zc_cata")
|
||||
admin.SaveLogDB(c.CiyDB, "zc_cata", row, nil)
|
||||
vids = append(vids, delid)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,54 +5,54 @@ import (
|
|||
"net/http"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func Chgpass_update(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
oldpass := post.Get("oldpass")
|
||||
newpass := post.Get("newpass")
|
||||
if oldpass == "" {
|
||||
return ErrJSON(w, "请输入原密码")
|
||||
return c.ErrJSON(w, "请输入原密码")
|
||||
}
|
||||
if newpass == "" {
|
||||
return ErrJSON(w, "请输入新密码")
|
||||
return c.ErrJSON(w, "请输入新密码")
|
||||
}
|
||||
if newpass == admin.Gdefpass {
|
||||
return ErrJSON(w, "新密码不要与默认密码相同")
|
||||
return c.ErrJSON(w, "新密码不要与默认密码相同")
|
||||
}
|
||||
if len(newpass) < 6 {
|
||||
return ErrJSON(w, "密码应至少6位")
|
||||
return c.ErrJSON(w, "密码应至少6位")
|
||||
}
|
||||
|
||||
csql := NewCiySQL("zc_admin")
|
||||
csql := c.NewCiySQL("zc_admin")
|
||||
csql.Where("id", userid)
|
||||
userrow, err := CiyDB.Getone(csql)
|
||||
userrow, err := c.CiyDB.Getone(csql)
|
||||
if userrow == nil {
|
||||
return ErrJSON(w, "遇到读取错误", err)
|
||||
return c.ErrJSON(w, "遇到读取错误", err)
|
||||
}
|
||||
if Tostr(userrow["password"]) != MD5(oldpass+admin.Gtokensalt) {
|
||||
return ErrJSON(w, "原密码错误")
|
||||
if c.Tostr(userrow["password"]) != c.MD5(oldpass+admin.Gtokensalt) {
|
||||
return c.ErrJSON(w, "原密码错误")
|
||||
}
|
||||
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
updata := map[string]any{}
|
||||
updata["password"] = MD5(newpass + admin.Gtokensalt)
|
||||
csql = NewCiySQL("zc_admin")
|
||||
updata["password"] = c.MD5(newpass + admin.Gtokensalt)
|
||||
csql = c.NewCiySQL("zc_admin")
|
||||
csql.Where("id", userid)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
if err != nil {
|
||||
return fmt.Errorf("更新失败:%v", err)
|
||||
}
|
||||
admin.SaveLog(CiyDB, "PASSWORD", "修改密码:"+Tostr(updata["password"]))
|
||||
admin.SaveLog(c.CiyDB, "PASSWORD", "修改密码:"+c.Tostr(updata["password"]))
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
return SuccJSON(w)
|
||||
return c.SuccJSON(w)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,22 +6,22 @@ import (
|
|||
"strings"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func config_setwhere(post *CiyPost) (map[string]any, *CiySQL) {
|
||||
func config_setwhere(post *c.CiyPost) (map[string]any, *c.CiySQL) {
|
||||
query := post.Getobj("query")
|
||||
csql := NewCiySQL("zc_config")
|
||||
csql.Where("types like", Getstr(query, "types"))
|
||||
csql.Where("params like", Getstr(query, "params"))
|
||||
order := Getstr(query, "order", "id desc")
|
||||
csql := c.NewCiySQL("zc_config")
|
||||
csql.Where("types like", c.Getstr(query, "types"))
|
||||
csql.Where("params like", c.Getstr(query, "params"))
|
||||
order := c.Getstr(query, "order", "id desc")
|
||||
csql.Order(order)
|
||||
query["order"] = order
|
||||
return query, csql
|
||||
}
|
||||
func Config_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
|
|
@ -29,9 +29,9 @@ func Config_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
pageno := post.Getint("pageno", 1)
|
||||
pagecount := post.Getint("pagecount", 10)
|
||||
csql.Limit(pageno, pagecount)
|
||||
rows, mainrowcount, err := CiyDB.Get(csql, post.Getint("count"))
|
||||
rows, mainrowcount, err := c.CiyDB.Get(csql, post.Getint("count"))
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
rows = append(rows, map[string]any{
|
||||
"id": 0,
|
||||
|
|
@ -46,9 +46,9 @@ func Config_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
if post.Getbool("field") {
|
||||
field := map[string]map[string]any{}
|
||||
fshow := ""
|
||||
FieldAdd(&field, &fshow, -1, "types", "参数代码")
|
||||
FieldAdd(&field, &fshow, -1, "params", "参数值")
|
||||
FieldAdd(&field, &fshow, -1, "_btn", "操作")
|
||||
c.FieldAdd(&field, &fshow, -1, "types", "参数代码")
|
||||
c.FieldAdd(&field, &fshow, -1, "params", "参数值")
|
||||
c.FieldAdd(&field, &fshow, -1, "_btn", "操作")
|
||||
field["types"]["thwidth"] = "12em"
|
||||
field["params"]["thwidth"] = "21em"
|
||||
ret["fshow"] = strings.TrimLeft(fshow, ",")
|
||||
|
|
@ -72,99 +72,99 @@ func Config_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
once["input"] = input
|
||||
ret["once"] = once
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Config_update(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p600u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p600u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
id := post.Getint("id")
|
||||
types := post.Get("types")
|
||||
if types == "" {
|
||||
return ErrJSON(w, "请填写代码")
|
||||
return c.ErrJSON(w, "请填写代码")
|
||||
}
|
||||
params := post.Get("params")
|
||||
var err error
|
||||
var datarow map[string]any
|
||||
if id > 0 {
|
||||
csql := NewCiySQL("zc_config")
|
||||
csql := c.NewCiySQL("zc_config")
|
||||
csql.Where("id", id)
|
||||
datarow, err = CiyDB.Getone(csql)
|
||||
datarow, err = c.CiyDB.Getone(csql)
|
||||
if datarow == nil {
|
||||
return ErrJSON(w, "数据不存在", err)
|
||||
return c.ErrJSON(w, "数据不存在", err)
|
||||
}
|
||||
}
|
||||
var updata = map[string]any{}
|
||||
err = CiyDB.Tran(func() error {
|
||||
var csql *CiySQL
|
||||
csql = NewCiySQL("zc_config")
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
var csql *c.CiySQL
|
||||
csql = c.NewCiySQL("zc_config")
|
||||
csql.Where("types", types)
|
||||
csql.Column("id")
|
||||
chkid := Toint(CiyDB.Get1(csql))
|
||||
chkid := c.Toint(c.CiyDB.Get1(csql))
|
||||
if chkid > 0 && ((id > 0 && chkid != id) || id == 0) {
|
||||
return fmt.Errorf("代码重复")
|
||||
}
|
||||
updata["types"] = types
|
||||
updata["params"] = params
|
||||
csql = NewCiySQL("zc_config")
|
||||
csql = c.NewCiySQL("zc_config")
|
||||
if id > 0 {
|
||||
csql.Where("id", id)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
} else {
|
||||
id, err = CiyDB.Insert(csql, updata)
|
||||
id, err = c.CiyDB.Insert(csql, updata)
|
||||
}
|
||||
updata["id"] = id
|
||||
if err != nil {
|
||||
return fmt.Errorf("更新失败:%v", err)
|
||||
}
|
||||
admin.SaveLogDB(CiyDB, "zc_config", datarow, updata)
|
||||
admin.SaveLogDB(c.CiyDB, "zc_config", datarow, updata)
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["data"] = updata
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Config_del(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p600d") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p600d") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
ids := post.Get("ids")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
csql := NewCiySQL("zc_config")
|
||||
csql := c.NewCiySQL("zc_config")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据错误", err)
|
||||
return c.ErrJSON(w, "读取数据错误", err)
|
||||
}
|
||||
vids := make([]int, 0)
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
delid := Toint(row["id"])
|
||||
Delme(CiyDB, delid, "zc_config")
|
||||
admin.SaveLogDB(CiyDB, "zc_config", row, nil)
|
||||
delid := c.Toint(row["id"])
|
||||
c.Delme(c.CiyDB, delid, "zc_config")
|
||||
admin.SaveLogDB(c.CiyDB, "zc_config", row, nil)
|
||||
vids = append(vids, delid)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,26 +2,26 @@ package rigger
|
|||
|
||||
import (
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
"fmt"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func debug_user_setwhere(post *CiyPost) (map[string]any, *CiySQL) {
|
||||
func debug_user_setwhere(post *c.CiyPost) (map[string]any, *c.CiySQL) {
|
||||
query := post.Getobj("query")
|
||||
csql := NewCiySQL("zc_debug_user")
|
||||
csql.Where("name like", Getstr(query, "name"))
|
||||
csql.Where("user like", Getstr(query, "user"))
|
||||
csql.Where("targettype", Getstr(query, "targettype"))
|
||||
csql.Where("isuse", Getstr(query, "isuse"))
|
||||
order := Getstr(query, "order", "id desc")
|
||||
csql := c.NewCiySQL("zc_debug_user")
|
||||
csql.Where("name like", c.Getstr(query, "name"))
|
||||
csql.Where("user like", c.Getstr(query, "user"))
|
||||
csql.Where("targettype", c.Getstr(query, "targettype"))
|
||||
csql.Where("isuse", c.Getstr(query, "isuse"))
|
||||
order := c.Getstr(query, "order", "id desc")
|
||||
csql.Order(order)
|
||||
query["order"] = order
|
||||
return query, csql
|
||||
}
|
||||
func Debug_user_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
|
|
@ -29,9 +29,9 @@ func Debug_user_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
pageno := post.Getint("pageno", 1)
|
||||
pagecount := post.Getint("pagecount", 10)
|
||||
csql.Limit(pageno, pagecount)
|
||||
rows, mainrowcount, err := CiyDB.Get(csql, post.Getint("count"))
|
||||
rows, mainrowcount, err := c.CiyDB.Get(csql, post.Getint("count"))
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["where"] = where
|
||||
|
|
@ -40,15 +40,15 @@ func Debug_user_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
ret["count"] = mainrowcount
|
||||
ret["list"] = rows
|
||||
if post.Getbool("field") {
|
||||
field, fshow := CiyDB.GetField(csql)
|
||||
FieldAdd(&field, &fshow, 0, "_btn", "操作")
|
||||
field, fshow := c.CiyDB.GetField(csql)
|
||||
c.FieldAdd(&field, &fshow, 0, "_btn", "操作")
|
||||
ret["fshow"] = fshow
|
||||
ret["field"] = field
|
||||
}
|
||||
if post.Getbool("once") {
|
||||
once := map[string]any{}
|
||||
input := make([]map[string]any, 0)
|
||||
isusevals := CiyDB.Getdbcodes("zc_debug_user", "isuse")
|
||||
isusevals := c.CiyDB.Getdbcodes("zc_debug_user", "isuse")
|
||||
input = append(input, map[string]any{
|
||||
"form": "targettype",
|
||||
"type": "select",
|
||||
|
|
@ -84,53 +84,53 @@ func Debug_user_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
once["input"] = input
|
||||
ret["once"] = once
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Debug_user_update(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p900u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p900u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
id := post.Getint("id")
|
||||
targettype := post.Getint("targettype")
|
||||
if targettype <= 0 {
|
||||
return ErrJSON(w, "请选择子系统")
|
||||
return c.ErrJSON(w, "请选择子系统")
|
||||
}
|
||||
isuse := post.Getint("isuse")
|
||||
name := post.Get("name")
|
||||
if name == "" {
|
||||
return ErrJSON(w, "请填写显示名")
|
||||
return c.ErrJSON(w, "请填写显示名")
|
||||
}
|
||||
user := post.Get("user")
|
||||
if user == "" {
|
||||
return ErrJSON(w, "请填写用户名")
|
||||
return c.ErrJSON(w, "请填写用户名")
|
||||
}
|
||||
pass := post.Get("pass")
|
||||
if pass == "" {
|
||||
return ErrJSON(w, "请填写密码")
|
||||
return c.ErrJSON(w, "请填写密码")
|
||||
}
|
||||
var err error
|
||||
var datarow map[string]any
|
||||
if id > 0 {
|
||||
csql := NewCiySQL("zc_debug_user")
|
||||
csql := c.NewCiySQL("zc_debug_user")
|
||||
csql.Where("id", id)
|
||||
datarow, err = CiyDB.Getone(csql)
|
||||
datarow, err = c.CiyDB.Getone(csql)
|
||||
if datarow == nil {
|
||||
return ErrJSON(w, "数据不存在", err)
|
||||
return c.ErrJSON(w, "数据不存在", err)
|
||||
}
|
||||
}
|
||||
updata := map[string]any{}
|
||||
err = CiyDB.Tran(func() error {
|
||||
var csql *CiySQL
|
||||
csql = NewCiySQL("zc_debug_user")
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
var csql *c.CiySQL
|
||||
csql = c.NewCiySQL("zc_debug_user")
|
||||
csql.Where("targettype", targettype)
|
||||
csql.Where("user", user)
|
||||
csql.Column("id")
|
||||
chkid := Toint(CiyDB.Get1(csql))
|
||||
chkid := c.Toint(c.CiyDB.Get1(csql))
|
||||
if chkid > 0 && ((id > 0 && chkid != id) || id == 0) {
|
||||
return fmt.Errorf("数据已存在")
|
||||
}
|
||||
|
|
@ -139,87 +139,87 @@ func Debug_user_update(w http.ResponseWriter, r *http.Request) bool {
|
|||
updata["name"] = name
|
||||
updata["user"] = user
|
||||
updata["pass"] = pass
|
||||
csql = NewCiySQL("zc_debug_user")
|
||||
csql = c.NewCiySQL("zc_debug_user")
|
||||
if id > 0 {
|
||||
csql.Where("id", id)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
} else {
|
||||
id, err = CiyDB.Insert(csql, updata)
|
||||
id, err = c.CiyDB.Insert(csql, updata)
|
||||
}
|
||||
updata["id"] = id
|
||||
if err != nil {
|
||||
return fmt.Errorf("更新失败:%v", err)
|
||||
}
|
||||
admin.SaveLogDB(CiyDB, "zc_debug_user", datarow, updata)
|
||||
admin.SaveLogDB(c.CiyDB, "zc_debug_user", datarow, updata)
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["data"] = updata
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
||||
func Debug_user_del(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p900u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p900u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
ids := post.Get("ids")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
csql := NewCiySQL("zc_debug_user")
|
||||
csql := c.NewCiySQL("zc_debug_user")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据错误", err)
|
||||
return c.ErrJSON(w, "读取数据错误", err)
|
||||
}
|
||||
vids := make([]int, 0)
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
delid := Toint(row["id"])
|
||||
Delme(CiyDB, delid, "zc_debug_user")
|
||||
admin.SaveLogDB(CiyDB, "zc_debug_user", row, nil)
|
||||
delid := c.Toint(row["id"])
|
||||
c.Delme(c.CiyDB, delid, "zc_debug_user")
|
||||
admin.SaveLogDB(c.CiyDB, "zc_debug_user", row, nil)
|
||||
vids = append(vids, delid)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
||||
func Debug_user_getlocal(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p900n") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p900n") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
targettype := post.Getint("targettype")
|
||||
if targettype == 0 {
|
||||
return ErrJSON(w, "请选择子系统")
|
||||
return c.ErrJSON(w, "请选择子系统")
|
||||
}
|
||||
csql := NewCiySQL("zc_debug_user")
|
||||
csql := c.NewCiySQL("zc_debug_user")
|
||||
csql.Where("targettype", targettype)
|
||||
csql.Where("isuse", 1)
|
||||
csql.Column("id,name,user,pass")
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["list"] = rows
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,26 +6,26 @@ import (
|
|||
"strings"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func Depart_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
csql := NewCiySQL("zc_depart")
|
||||
csql := c.NewCiySQL("zc_depart")
|
||||
csql.Order("csort desc,id")
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "遇到读取错误", err)
|
||||
return c.ErrJSON(w, "遇到读取错误", err)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["list"] = rows
|
||||
if post.Getbool("field") {
|
||||
field, fshow := CiyDB.GetField(csql)
|
||||
FieldAdd(&field, &fshow, -1, "_btn", "操作")
|
||||
field, fshow := c.CiyDB.GetField(csql)
|
||||
c.FieldAdd(&field, &fshow, -1, "_btn", "操作")
|
||||
field["csort"]["thwidth"] = "8em"
|
||||
ret["fshow"] = fshow
|
||||
ret["field"] = field
|
||||
|
|
@ -42,137 +42,137 @@ func Depart_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
once["input"] = input
|
||||
ret["once"] = once
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Depart_update(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p501u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p501u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
id := post.Getint("id")
|
||||
name := post.Get("name")
|
||||
if name == "" {
|
||||
return ErrJSON(w, "请填写部门名称")
|
||||
return c.ErrJSON(w, "请填写部门名称")
|
||||
}
|
||||
upid := post.Getint("upid")
|
||||
csort := post.Getint("csort")
|
||||
isuse := post.Getint("isuse")
|
||||
csql := NewCiySQL("zc_depart")
|
||||
csql := c.NewCiySQL("zc_depart")
|
||||
csql.Where("id", id)
|
||||
datarow, err := CiyDB.Getone(csql)
|
||||
datarow, err := c.CiyDB.Getone(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "数据不存在", err)
|
||||
return c.ErrJSON(w, "数据不存在", err)
|
||||
}
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
updata := map[string]any{}
|
||||
updata["name"] = name
|
||||
updata["isuse"] = isuse
|
||||
updata["upid"] = upid
|
||||
updata["csort"] = csort
|
||||
csql = NewCiySQL("zc_depart")
|
||||
csql = c.NewCiySQL("zc_depart")
|
||||
csql.Where("id", id)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
if err != nil {
|
||||
return fmt.Errorf("更新失败:%v", err)
|
||||
}
|
||||
admin.SaveLogDB(CiyDB, "zc_depart", datarow, updata)
|
||||
admin.SaveLogDB(c.CiyDB, "zc_depart", datarow, updata)
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
return SuccJSON(w)
|
||||
return c.SuccJSON(w)
|
||||
}
|
||||
func Depart_del(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p501d") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p501d") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
ids := post.Get("ids")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
csql := NewCiySQL("zc_depart")
|
||||
csql := c.NewCiySQL("zc_depart")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "遇到读取错误", err)
|
||||
return c.ErrJSON(w, "遇到读取错误", err)
|
||||
}
|
||||
vids := make([]int, 0)
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
delid := Toint(row["id"])
|
||||
Delcheck(CiyDB, delid, "zc_admin", "departid", "人员")
|
||||
Delcheck(CiyDB, delid, "zc_depart", "upid", "下级部门")
|
||||
Delme(CiyDB, delid, "zc_depart")
|
||||
admin.SaveLogDB(CiyDB, "zc_depart", row, nil)
|
||||
delid := c.Toint(row["id"])
|
||||
c.Delcheck(c.CiyDB, delid, "zc_admin", "departid", "人员")
|
||||
c.Delcheck(c.CiyDB, delid, "zc_depart", "upid", "下级部门")
|
||||
c.Delme(c.CiyDB, delid, "zc_depart")
|
||||
admin.SaveLogDB(c.CiyDB, "zc_depart", row, nil)
|
||||
vids = append(vids, delid)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Depart_modifyupid(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p501u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p501u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
id := post.Getint("id")
|
||||
newupid := post.Getint("newupid")
|
||||
csql := NewCiySQL("zc_depart")
|
||||
csql := c.NewCiySQL("zc_depart")
|
||||
csql.Where("id", id)
|
||||
datarow, err := CiyDB.Getone(csql)
|
||||
datarow, err := c.CiyDB.Getone(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "数据不存在", err)
|
||||
return c.ErrJSON(w, "数据不存在", err)
|
||||
}
|
||||
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
updata := map[string]any{}
|
||||
updata["upid"] = newupid
|
||||
csql = NewCiySQL("zc_depart")
|
||||
csql = c.NewCiySQL("zc_depart")
|
||||
csql.Where("id", id)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
if err != nil {
|
||||
return fmt.Errorf("操作数据库失败:%v", err)
|
||||
}
|
||||
admin.SaveLogDB(CiyDB, "zc_depart", datarow, updata)
|
||||
admin.SaveLogDB(c.CiyDB, "zc_depart", datarow, updata)
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
return SuccJSON(w)
|
||||
return c.SuccJSON(w)
|
||||
}
|
||||
func Depart_multiadd(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p501u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p501u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
upid := post.Getint("upid")
|
||||
multi := strings.Split(post.Get("multi"), "\n")
|
||||
cnt := 0
|
||||
err := CiyDB.Tran(func() error {
|
||||
err := c.CiyDB.Tran(func() error {
|
||||
for _, m := range multi {
|
||||
m = strings.TrimSpace(m)
|
||||
if m == "" {
|
||||
|
|
@ -183,21 +183,21 @@ func Depart_multiadd(w http.ResponseWriter, r *http.Request) bool {
|
|||
updata["isuse"] = 1
|
||||
updata["upid"] = upid
|
||||
updata["csort"] = 10
|
||||
csql := NewCiySQL("zc_depart")
|
||||
_, err := CiyDB.Insert(csql, updata)
|
||||
csql := c.NewCiySQL("zc_depart")
|
||||
_, err := c.CiyDB.Insert(csql, updata)
|
||||
if err != nil {
|
||||
return fmt.Errorf("新增失败:%v", err)
|
||||
}
|
||||
cnt++
|
||||
admin.SaveLogDB(CiyDB, "zc_depart", nil, updata)
|
||||
admin.SaveLogDB(c.CiyDB, "zc_depart", nil, updata)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
if cnt == 0 {
|
||||
return ErrJSON(w, "没有任何新增")
|
||||
return c.ErrJSON(w, "没有任何新增")
|
||||
}
|
||||
return SuccJSON(w)
|
||||
return c.SuccJSON(w)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,24 +5,24 @@ import (
|
|||
"net/http"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func funcslow_setwhere(post *CiyPost) (map[string]any, *CiySQL) {
|
||||
func funcslow_setwhere(post *c.CiyPost) (map[string]any, *c.CiySQL) {
|
||||
query := post.Getobj("query")
|
||||
csql := NewCiySQL("zc_funcslow")
|
||||
csql.Where_daterange("addtimes", Getstr(query, "addtimes"))
|
||||
csql.Where_numrange("ms", Getstr(query, "ms_1"), Getstr(query, "ms_2"), 1)
|
||||
csql.Where("uri like", Getstr(query, "uri"))
|
||||
csql.Where("posts like", Getstr(query, "posts"))
|
||||
order := Getstr(query, "order", "id desc")
|
||||
csql := c.NewCiySQL("zc_funcslow")
|
||||
csql.Where_daterange("addtimes", c.Getstr(query, "addtimes"))
|
||||
csql.Where_numrange("ms", c.Getstr(query, "ms_1"), c.Getstr(query, "ms_2"), 1)
|
||||
csql.Where("uri like", c.Getstr(query, "uri"))
|
||||
csql.Where("posts like", c.Getstr(query, "posts"))
|
||||
order := c.Getstr(query, "order", "id desc")
|
||||
csql.Order(order)
|
||||
query["order"] = order
|
||||
return query, csql
|
||||
}
|
||||
func Funcslow_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
|
|
@ -30,9 +30,9 @@ func Funcslow_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
pageno := post.Getint("pageno", 1)
|
||||
pagecount := post.Getint("pagecount", 10)
|
||||
csql.Limit(pageno, pagecount)
|
||||
rows, mainrowcount, err := CiyDB.Get(csql, post.Getint("count"))
|
||||
rows, mainrowcount, err := c.CiyDB.Get(csql, post.Getint("count"))
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["where"] = where
|
||||
|
|
@ -41,8 +41,8 @@ func Funcslow_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
ret["count"] = mainrowcount
|
||||
ret["list"] = rows
|
||||
if post.Getbool("field") {
|
||||
field, fshow := CiyDB.GetField(csql)
|
||||
FieldAdd(&field, &fshow, 0, "_btn", "操作")
|
||||
field, fshow := c.CiyDB.GetField(csql)
|
||||
c.FieldAdd(&field, &fshow, 0, "_btn", "操作")
|
||||
field["ms"]["thwidth"] = "5em"
|
||||
field["ms"]["order"] = true
|
||||
ret["fshow"] = fshow
|
||||
|
|
@ -77,61 +77,61 @@ func Funcslow_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
once["input"] = input
|
||||
ret["once"] = once
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Funcslow_del(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p555d") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p555d") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
ids := post.Get("ids")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
csql := NewCiySQL("zc_funcslow")
|
||||
csql := c.NewCiySQL("zc_funcslow")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据错误", err)
|
||||
return c.ErrJSON(w, "读取数据错误", err)
|
||||
}
|
||||
vids := make([]int, 0)
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
delid := Toint(row["id"])
|
||||
Delme(CiyDB, delid, "zc_funcslow")
|
||||
admin.SaveLogDB(CiyDB, "zc_funcslow", row, nil)
|
||||
delid := c.Toint(row["id"])
|
||||
c.Delme(c.CiyDB, delid, "zc_funcslow")
|
||||
admin.SaveLogDB(c.CiyDB, "zc_funcslow", row, nil)
|
||||
vids = append(vids, delid)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
||||
func Funcslow_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p555e") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p555e") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
_, csql := funcslow_setwhere(post)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
if len(rows) > 10000 {
|
||||
return ErrJSON(w, "将导出"+Tostr(len(rows))+"条,不建议超过1万条,请筛选缩小范围", err)
|
||||
return c.ErrJSON(w, "将导出"+c.Tostr(len(rows))+"条,不建议超过1万条,请筛选缩小范围", err)
|
||||
}
|
||||
fields := []map[string]string{}
|
||||
fields = append(fields, map[string]string{"style": "c", "width": "60", "field": "id", "name": "行码"})
|
||||
|
|
@ -148,16 +148,16 @@ func Funcslow_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
|||
if val, ok := row[field]; ok {
|
||||
var str string
|
||||
if field == "id" {
|
||||
str = EnID(Toint(val))
|
||||
str = c.EnID(c.Toint(val))
|
||||
} else if field == "addtimes" {
|
||||
t := Toint(val)
|
||||
t := c.Toint(val)
|
||||
if t <= 0 {
|
||||
str = "--"
|
||||
} else {
|
||||
str = Todate(t, "Y-m-d H:i")
|
||||
str = c.Todate(t, "Y-m-d H:i")
|
||||
}
|
||||
} else {
|
||||
str = Tostr(val)
|
||||
str = c.Tostr(val)
|
||||
}
|
||||
dat = append(dat, str)
|
||||
} else {
|
||||
|
|
@ -174,17 +174,17 @@ func Funcslow_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
|||
param["toptitle"] = "慢请求数据报表"
|
||||
total := []map[string]any{} //单行统计数据
|
||||
// total = append(total, map[string]any{"style": "l", "name": "合计", "merge": 5})
|
||||
// total = append(total, map[string]any{"style": "r", "name": "=SUM(R[-" + Tostr(len(datas)) + "]C:R[-1]C)"})
|
||||
// total = append(total, map[string]any{"style": "r", "name": "=MAX(R[-" + Tostr(len(datas)) + "]C:R[-1]C)"})
|
||||
// total = append(total, map[string]any{"style": "r", "name": "=SUM(R[-" + c.Tostr(len(datas)) + "]C:R[-1]C)"})
|
||||
// total = append(total, map[string]any{"style": "r", "name": "=MAX(R[-" + c.Tostr(len(datas)) + "]C:R[-1]C)"})
|
||||
// param["rowstop"] = `<Row ss:Height="45"><Cell ss:MergeAcross="7" ss:StyleID="cap"><Data ss:Type="String">众产Ciyon</Data></Cell></Row>`
|
||||
// param["rowsfooter"] = `<Row><Cell ss:MergeAcross="2"><Data ss:Type="String" ss:StyleID="r">总计</Data></Cell><Cell ss:Formula="=SUM(R[-2]C:R[-1]C)"><Data ss:Type="Number"></Data></Cell></Row>`
|
||||
str := General_excel_xml(fields, datas, param, total)
|
||||
filename := "/ud/tmp/" + Todate(-1, "Ymd_His") + Tostr(rand.Intn(8999)+1000) + ".xls"
|
||||
err = FileSave(CiyWebDir+filename, str)
|
||||
str := c.General_excel_xml(fields, datas, param, total)
|
||||
filename := "/ud/tmp/" + c.Todate(-1, "Ymd_His") + c.Tostr(rand.Intn(8999)+1000) + ".xls"
|
||||
err = c.FileSave(c.CiyWebDir+filename, str)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "导出保存文件错误:%v[%v]", err, filename)
|
||||
return c.ErrJSON(w, "导出保存文件错误:%v[%v]", err, filename)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["url"] = filename
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,32 +5,32 @@ import (
|
|||
"net/http"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func logdb_setwhere(post *CiyPost) (map[string]any, *CiySQL) {
|
||||
func logdb_setwhere(post *c.CiyPost) (map[string]any, *c.CiySQL) {
|
||||
query := post.Getobj("query")
|
||||
csql := NewCiySQL("zc_log")
|
||||
liid := Getint(query, "liid")
|
||||
csql := c.NewCiySQL("zc_log")
|
||||
liid := c.Getint(query, "liid")
|
||||
if liid == 1 {
|
||||
csql.Where("readuser=0")
|
||||
}
|
||||
if liid == 2 {
|
||||
csql.Where("readuser>0")
|
||||
}
|
||||
csql.Where("loguser", Getstr(query, "loguser"))
|
||||
csql.Where("readuser", Getstr(query, "readuser"))
|
||||
csql.Where("types", Getstr(query, "types"))
|
||||
csql.Where_daterange("addtimes", Getstr(query, "addtimes"))
|
||||
csql.Where("logs like", Getstr(query, "logs"))
|
||||
order := Getstr(query, "order", "id desc")
|
||||
csql.Where("loguser", c.Getstr(query, "loguser"))
|
||||
csql.Where("readuser", c.Getstr(query, "readuser"))
|
||||
csql.Where("types", c.Getstr(query, "types"))
|
||||
csql.Where_daterange("addtimes", c.Getstr(query, "addtimes"))
|
||||
csql.Where("logs like", c.Getstr(query, "logs"))
|
||||
order := c.Getstr(query, "order", "id desc")
|
||||
csql.Order(order)
|
||||
query["order"] = order
|
||||
return query, csql
|
||||
}
|
||||
func Logdb_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
|
|
@ -38,9 +38,9 @@ func Logdb_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
pageno := post.Getint("pageno", 1)
|
||||
pagecount := post.Getint("pagecount", 10)
|
||||
csql.Limit(pageno, pagecount)
|
||||
rows, mainrowcount, err := CiyDB.Get(csql, post.Getint("count"))
|
||||
rows, mainrowcount, err := c.CiyDB.Get(csql, post.Getint("count"))
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["where"] = where
|
||||
|
|
@ -49,7 +49,7 @@ func Logdb_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
ret["count"] = mainrowcount
|
||||
ret["list"] = rows
|
||||
if post.Getbool("field") {
|
||||
field, fshow := CiyDB.GetField(csql)
|
||||
field, fshow := c.CiyDB.GetField(csql)
|
||||
ret["fshow"] = fshow
|
||||
ret["field"] = field
|
||||
}
|
||||
|
|
@ -92,69 +92,69 @@ func Logdb_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
once["input"] = input
|
||||
ret["once"] = once
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Logdb_del(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p553d") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p553d") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
ids := post.Get("ids")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
csql := NewCiySQL("zc_log")
|
||||
csql := c.NewCiySQL("zc_log")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据错误", err)
|
||||
return c.ErrJSON(w, "读取数据错误", err)
|
||||
}
|
||||
vids := make([]int, 0)
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
delid := Toint(row["id"])
|
||||
Delme(CiyDB, delid, "zc_log")
|
||||
delid := c.Toint(row["id"])
|
||||
c.Delme(c.CiyDB, delid, "zc_log")
|
||||
vids = append(vids, delid)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
||||
func Logdb_multiread(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p553s") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p553s") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
ids := post.Get("ids")
|
||||
csql := NewCiySQL("zc_log")
|
||||
csql := c.NewCiySQL("zc_log")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据错误", err)
|
||||
return c.ErrJSON(w, "读取数据错误", err)
|
||||
}
|
||||
vids := make([]int, 0)
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
rowid := Toint(row["id"])
|
||||
rowid := c.Toint(row["id"])
|
||||
updata := map[string]any{}
|
||||
updata["readuser"] = userid
|
||||
csql = NewCiySQL("zc_log")
|
||||
csql = c.NewCiySQL("zc_log")
|
||||
csql.Where("id", rowid)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
if err != nil {
|
||||
return fmt.Errorf("更新失败:%v", err)
|
||||
}
|
||||
|
|
@ -163,9 +163,9 @@ func Logdb_multiread(w http.ResponseWriter, r *http.Request) bool {
|
|||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,61 +8,61 @@ import (
|
|||
"strings"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func Logfile_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
logfiles := []string{}
|
||||
if Log.Filename != "" {
|
||||
logfiles = append(logfiles, Log.Filename)
|
||||
if c.Log.Filename != "" {
|
||||
logfiles = append(logfiles, c.Log.Filename)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["logfiles"] = logfiles
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
||||
func Logfile_viewlog(w http.ResponseWriter, r *http.Request) bool {
|
||||
if !SSEInit(w) {
|
||||
if !c.SSEInit(w) {
|
||||
w.Write([]byte("不支持SSE Flush"))
|
||||
return false
|
||||
}
|
||||
post := NewCiyPost(w, r)
|
||||
_, err := admin.Verifyuser(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, err := admin.Verifyuser(c.CiyDB, post)
|
||||
if err != nil {
|
||||
SSESend_event(w, "请重新登录")
|
||||
c.SSESend_event(w, "请重新登录")
|
||||
return false
|
||||
}
|
||||
param := post.Get("param")
|
||||
buf, fsize, err := readfile(param, -102400)
|
||||
if err != nil {
|
||||
SSESend_event(w, err.Error())
|
||||
c.SSESend_event(w, err.Error())
|
||||
return false
|
||||
}
|
||||
SSESend_event(w, param+", Size:"+Tostr(fsize))
|
||||
c.SSESend_event(w, param+", Size:"+c.Tostr(fsize))
|
||||
lines := strings.Split(string(buf), "\n")
|
||||
for _, line := range lines {
|
||||
SSESend_data(w, line)
|
||||
c.SSESend_data(w, line)
|
||||
}
|
||||
for {
|
||||
buf, fsize, err = readfile(param, fsize)
|
||||
if err != nil {
|
||||
SSESend_event(w, err.Error())
|
||||
c.SSESend_event(w, err.Error())
|
||||
return false
|
||||
}
|
||||
if !SSESend_event(w, param+", Size:"+Tostr(fsize)) {
|
||||
if !c.SSESend_event(w, param+", Size:"+c.Tostr(fsize)) {
|
||||
return true
|
||||
}
|
||||
if buf == nil {
|
||||
Sleep(1)
|
||||
c.Sleep(1)
|
||||
} else {
|
||||
lines := strings.Split(string(buf), "\n")
|
||||
for _, line := range lines {
|
||||
if !SSESend_data(w, line) {
|
||||
if !c.SSESend_data(w, line) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,41 +6,41 @@ import (
|
|||
"strings"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func Menu_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
rsuser, _ := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
rsuser, _ := admin.Verifyfast(c.CiyDB, post)
|
||||
if rsuser == nil {
|
||||
return false
|
||||
}
|
||||
csql := NewCiySQL("zc_icon")
|
||||
csql := c.NewCiySQL("zc_icon")
|
||||
csql.Where("icontarget", 10)
|
||||
csql.Column("targetid as id,icon")
|
||||
iconrows, _, err := CiyDB.Get(csql)
|
||||
iconrows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "遇到读取错误", err)
|
||||
return c.ErrJSON(w, "遇到读取错误", err)
|
||||
}
|
||||
icons := Mapid2data(iconrows)
|
||||
csql = NewCiySQL("zc_menu")
|
||||
icons := c.Mapid2data(iconrows)
|
||||
csql = c.NewCiySQL("zc_menu")
|
||||
csql.Order("csort desc,id")
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "遇到menu读取错误", err)
|
||||
return c.ErrJSON(w, "遇到menu读取错误", err)
|
||||
}
|
||||
for i, row := range rows {
|
||||
if v, ok := icons[Toint(row["id"])]; ok {
|
||||
if v, ok := icons[c.Toint(row["id"])]; ok {
|
||||
rows[i]["icon"] = v["icon"]
|
||||
}
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["list"] = rows
|
||||
if post.Getbool("field") {
|
||||
field, fshow := CiyDB.GetField(csql)
|
||||
FieldAdd(&field, &fshow, -1, "_btn", "操作")
|
||||
FieldAdd(&field, &fshow, 2, "demo", "原型")
|
||||
FieldAdd(&field, &fshow, 1, "icon", "|图标|")
|
||||
field, fshow := c.CiyDB.GetField(csql)
|
||||
c.FieldAdd(&field, &fshow, -1, "_btn", "操作")
|
||||
c.FieldAdd(&field, &fshow, 2, "demo", "原型")
|
||||
c.FieldAdd(&field, &fshow, 1, "icon", "|图标|")
|
||||
field["url"]["thwidth"] = "20em"
|
||||
field["csort"]["thwidth"] = "5em"
|
||||
ret["fshow"] = fshow
|
||||
|
|
@ -64,51 +64,51 @@ func Menu_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
once["input"] = input
|
||||
ret["once"] = once
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Menu_update(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p903u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p903u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
id := post.Getint("id")
|
||||
name := post.Get("name")
|
||||
if name == "" {
|
||||
return ErrJSON(w, "请填写菜单名称")
|
||||
return c.ErrJSON(w, "请填写菜单名称")
|
||||
}
|
||||
upid := post.Getint("upid")
|
||||
csort := post.Getint("csort")
|
||||
isuse := post.Getint("isuse")
|
||||
csql := NewCiySQL("zc_menu")
|
||||
csql := c.NewCiySQL("zc_menu")
|
||||
csql.Where("id", id)
|
||||
datarow, err := CiyDB.Getone(csql)
|
||||
datarow, err := c.CiyDB.Getone(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "数据不存在", err)
|
||||
return c.ErrJSON(w, "数据不存在", err)
|
||||
}
|
||||
demo := ""
|
||||
url := ""
|
||||
urldb := ""
|
||||
pow := ""
|
||||
csql = NewCiySQL("zc_menu")
|
||||
csql = c.NewCiySQL("zc_menu")
|
||||
csql.Where("upid", id)
|
||||
downcnt := Toint(CiyDB.Get1(csql))
|
||||
downcnt := c.Toint(c.CiyDB.Get1(csql))
|
||||
if downcnt == 0 {
|
||||
url = post.Get("url", CIYPOST_ALLOW_ALL)
|
||||
url = post.Get("url", c.CIYPOST_ALLOW_ALL)
|
||||
urldb = url
|
||||
demo = post.Get("demo")
|
||||
if demo != "" {
|
||||
if demo[0] != ':' && demo[0] != 'a' && demo[0] != 'm' && demo[0] != 'c' {
|
||||
return ErrJSON(w, "原型前缀错误,支持[:acm]")
|
||||
return c.ErrJSON(w, "原型前缀错误,支持[:acm]")
|
||||
}
|
||||
urldb += "~" + demo
|
||||
}
|
||||
pow = post.Get("pow")
|
||||
}
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
updata := map[string]any{}
|
||||
updata["name"] = name
|
||||
updata["isuse"] = isuse
|
||||
|
|
@ -116,122 +116,122 @@ func Menu_update(w http.ResponseWriter, r *http.Request) bool {
|
|||
updata["csort"] = csort
|
||||
updata["url"] = urldb
|
||||
updata["pow"] = pow
|
||||
csql = NewCiySQL("zc_menu")
|
||||
csql = c.NewCiySQL("zc_menu")
|
||||
csql.Where("id", id)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
if err != nil {
|
||||
return fmt.Errorf("更新失败:%v", err)
|
||||
}
|
||||
admin.SaveLogDB(CiyDB, "zc_menu", datarow, updata)
|
||||
admin.SaveLogDB(c.CiyDB, "zc_menu", datarow, updata)
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["url"] = url
|
||||
ret["demo"] = demo
|
||||
ret["pow"] = pow
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Menu_del(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p903d") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p903d") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
ids := post.Get("ids")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
csql := NewCiySQL("zc_menu")
|
||||
csql := c.NewCiySQL("zc_menu")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "遇到读取错误", err)
|
||||
return c.ErrJSON(w, "遇到读取错误", err)
|
||||
}
|
||||
vids := make([]int, 0)
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
delid := Toint(row["id"])
|
||||
delid := c.Toint(row["id"])
|
||||
if delid >= 10 {
|
||||
Delcheck(CiyDB, delid, "zc_menu", "upid", Tostr(row["name"]))
|
||||
c.Delcheck(c.CiyDB, delid, "zc_menu", "upid", c.Tostr(row["name"]))
|
||||
}
|
||||
Delme(CiyDB, delid, "zc_menu")
|
||||
admin.SaveLogDB(CiyDB, "zc_menu", row, nil)
|
||||
c.Delme(c.CiyDB, delid, "zc_menu")
|
||||
admin.SaveLogDB(c.CiyDB, "zc_menu", row, nil)
|
||||
vids = append(vids, delid)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Menu_modifyupid(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p903u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p903u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
id := post.Getint("id")
|
||||
newupid := post.Getint("newupid")
|
||||
|
||||
csql := NewCiySQL("zc_menu")
|
||||
csql := c.NewCiySQL("zc_menu")
|
||||
csql.Where("id", id)
|
||||
datarow, err := CiyDB.Getone(csql)
|
||||
datarow, err := c.CiyDB.Getone(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "数据不存在", err)
|
||||
return c.ErrJSON(w, "数据不存在", err)
|
||||
}
|
||||
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
updata := map[string]any{}
|
||||
updata["url"] = ""
|
||||
updata["pow"] = ""
|
||||
csql = NewCiySQL("zc_menu")
|
||||
csql = c.NewCiySQL("zc_menu")
|
||||
csql.Where("id", newupid)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
if err != nil {
|
||||
return fmt.Errorf("更新new失败:%v", err)
|
||||
}
|
||||
|
||||
updata = map[string]any{}
|
||||
updata["upid"] = newupid
|
||||
csql = NewCiySQL("zc_menu")
|
||||
csql = c.NewCiySQL("zc_menu")
|
||||
csql.Where("id", id)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
if err != nil {
|
||||
return fmt.Errorf("更新id失败:%v", err)
|
||||
}
|
||||
admin.SaveLogDB(CiyDB, "zc_menu", datarow, updata)
|
||||
admin.SaveLogDB(c.CiyDB, "zc_menu", datarow, updata)
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
return SuccJSON(w)
|
||||
return c.SuccJSON(w)
|
||||
}
|
||||
func Menu_multiadd(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p903u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p903u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
upid := post.Getint("upid")
|
||||
multi := strings.Split(post.Get("multi"), "\n")
|
||||
cnt := 0
|
||||
err := CiyDB.Tran(func() error {
|
||||
err := c.CiyDB.Tran(func() error {
|
||||
for _, m := range multi {
|
||||
if m == "" {
|
||||
continue
|
||||
|
|
@ -253,89 +253,89 @@ func Menu_multiadd(w http.ResponseWriter, r *http.Request) bool {
|
|||
updata["isuse"] = 1
|
||||
updata["upid"] = upid
|
||||
updata["csort"] = 10
|
||||
csql := NewCiySQL("zc_menu")
|
||||
_, err := CiyDB.Insert(csql, updata)
|
||||
csql := c.NewCiySQL("zc_menu")
|
||||
_, err := c.CiyDB.Insert(csql, updata)
|
||||
if err != nil {
|
||||
return fmt.Errorf("新增失败:%v", err)
|
||||
}
|
||||
cnt++
|
||||
admin.SaveLogDB(CiyDB, "zc_menu", nil, updata)
|
||||
admin.SaveLogDB(c.CiyDB, "zc_menu", nil, updata)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
if cnt == 0 {
|
||||
return ErrJSON(w, "没有任何新增")
|
||||
return c.ErrJSON(w, "没有任何新增")
|
||||
}
|
||||
|
||||
updata := map[string]any{}
|
||||
updata["url"] = ""
|
||||
updata["pow"] = ""
|
||||
csql := NewCiySQL("zc_menu")
|
||||
csql := c.NewCiySQL("zc_menu")
|
||||
csql.Where("id", upid)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "更新upid失败:"+err.Error())
|
||||
return c.ErrJSON(w, "更新upid失败:"+err.Error())
|
||||
}
|
||||
return SuccJSON(w)
|
||||
return c.SuccJSON(w)
|
||||
}
|
||||
|
||||
func Menu_seticon(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p903u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p903u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
id := post.Getint("id")
|
||||
svg := post.Get("svg", CIYPOST_ALLOW_ALL)
|
||||
svg := post.Get("svg", c.CIYPOST_ALLOW_ALL)
|
||||
if svg != "" && !strings.HasPrefix(svg, "<svg ") {
|
||||
return ErrJSON(w, "svg格式错误")
|
||||
return c.ErrJSON(w, "svg格式错误")
|
||||
}
|
||||
csql := NewCiySQL("zc_icon")
|
||||
csql := c.NewCiySQL("zc_icon")
|
||||
csql.Where("icontarget", 10)
|
||||
csql.Where("targetid", id)
|
||||
datarow, err := CiyDB.Getone(csql)
|
||||
datarow, err := c.CiyDB.Getone(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "数据不存在", err)
|
||||
return c.ErrJSON(w, "数据不存在", err)
|
||||
}
|
||||
if datarow == nil && svg == "" {
|
||||
return SuccJSON(w)
|
||||
return c.SuccJSON(w)
|
||||
}
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
msg := ""
|
||||
if svg == "" {
|
||||
csql = NewCiySQL("zc_icon")
|
||||
csql = c.NewCiySQL("zc_icon")
|
||||
csql.Where("id", datarow["id"])
|
||||
_, err = CiyDB.Delete(csql)
|
||||
_, err = c.CiyDB.Delete(csql)
|
||||
msg = "删除图标"
|
||||
} else {
|
||||
msg = "更新图标"
|
||||
updata := map[string]any{}
|
||||
updata["icon"] = svg
|
||||
if datarow != nil {
|
||||
csql = NewCiySQL("zc_icon")
|
||||
csql = c.NewCiySQL("zc_icon")
|
||||
csql.Where("id", datarow["id"])
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
} else {
|
||||
updata["icontarget"] = 10
|
||||
updata["targetid"] = id
|
||||
csql = NewCiySQL("zc_icon")
|
||||
_, err = CiyDB.Insert(csql, updata)
|
||||
csql = c.NewCiySQL("zc_icon")
|
||||
_, err = c.CiyDB.Insert(csql, updata)
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
return fmt.Errorf("操作失败:%v", err)
|
||||
}
|
||||
admin.SaveLog(CiyDB, "zc_menu", "Upd="+Tostr(id)+"_|@|_icon="+msg)
|
||||
admin.SaveLog(c.CiyDB, "zc_menu", "Upd="+c.Tostr(id)+"_|@|_icon="+msg)
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
return SuccJSON(w)
|
||||
return c.SuccJSON(w)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,23 +6,23 @@ import (
|
|||
"net/http"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func mock_setwhere(post *CiyPost) (map[string]any, *CiySQL) {
|
||||
func mock_setwhere(post *c.CiyPost) (map[string]any, *c.CiySQL) {
|
||||
query := post.Getobj("query")
|
||||
csql := NewCiySQL("zc_ymock")
|
||||
csql.Where("name like", Getstr(query, "name"))
|
||||
csql.Where("upath like", Getstr(query, "upath"))
|
||||
csql.Where("ufunc like", Getstr(query, "ufunc"))
|
||||
order := Getstr(query, "order", "id desc")
|
||||
csql := c.NewCiySQL("zc_ymock")
|
||||
csql.Where("name like", c.Getstr(query, "name"))
|
||||
csql.Where("upath like", c.Getstr(query, "upath"))
|
||||
csql.Where("ufunc like", c.Getstr(query, "ufunc"))
|
||||
order := c.Getstr(query, "order", "id desc")
|
||||
csql.Order(order)
|
||||
query["order"] = order
|
||||
return query, csql
|
||||
}
|
||||
func Mock_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
|
|
@ -30,9 +30,9 @@ func Mock_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
pageno := post.Getint("pageno", 1)
|
||||
pagecount := post.Getint("pagecount", 10)
|
||||
csql.Limit(pageno, pagecount)
|
||||
rows, mainrowcount, err := CiyDB.Get(csql, post.Getint("count"))
|
||||
rows, mainrowcount, err := c.CiyDB.Get(csql, post.Getint("count"))
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
rows = append(rows, map[string]any{
|
||||
"id": 0,
|
||||
|
|
@ -50,9 +50,9 @@ func Mock_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
if post.Getbool("field") {
|
||||
field := map[string]map[string]any{}
|
||||
fshow := ""
|
||||
FieldAdd(&field, &fshow, -1, "mock", "Mock")
|
||||
FieldAdd(&field, &fshow, -1, "mockjson", "JSON")
|
||||
FieldAdd(&field, &fshow, -1, "_btn", "操作")
|
||||
c.FieldAdd(&field, &fshow, -1, "mock", "Mock")
|
||||
c.FieldAdd(&field, &fshow, -1, "mockjson", "JSON")
|
||||
c.FieldAdd(&field, &fshow, -1, "_btn", "操作")
|
||||
field["mock"]["thwidth"] = "20em"
|
||||
field["mockjson"]["thwidth"] = "50em"
|
||||
ret["fshow"] = fshow
|
||||
|
|
@ -82,57 +82,57 @@ func Mock_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
once["input"] = input
|
||||
ret["once"] = once
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Mock_update(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p911u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p911u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
id := post.Getint("id")
|
||||
name := post.Get("name")
|
||||
upath := post.Get("upath")
|
||||
if upath == "" {
|
||||
return ErrJSON(w, "请填写类空间")
|
||||
return c.ErrJSON(w, "请填写类空间")
|
||||
}
|
||||
ufunc := post.Get("ufunc")
|
||||
if ufunc == "" {
|
||||
return ErrJSON(w, "请填写函数名")
|
||||
return c.ErrJSON(w, "请填写函数名")
|
||||
}
|
||||
mockjson := post.Get("mockjson", CIYPOST_ALLOW_ALL)
|
||||
mockjson := post.Get("mockjson", c.CIYPOST_ALLOW_ALL)
|
||||
if mockjson == "" {
|
||||
return ErrJSON(w, "请填写JSON")
|
||||
return c.ErrJSON(w, "请填写JSON")
|
||||
}
|
||||
if mockjson[0:7] != "http://" {
|
||||
var jsn any
|
||||
err := json.Unmarshal([]byte(mockjson), &jsn)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "JSON格式错误", err)
|
||||
return c.ErrJSON(w, "JSON格式错误", err)
|
||||
}
|
||||
}
|
||||
|
||||
var err error
|
||||
var datarow map[string]any
|
||||
if id > 0 {
|
||||
csql := NewCiySQL("zc_ymock")
|
||||
csql := c.NewCiySQL("zc_ymock")
|
||||
csql.Where("id", id)
|
||||
datarow, err = CiyDB.Getone(csql)
|
||||
datarow, err = c.CiyDB.Getone(csql)
|
||||
if datarow == nil {
|
||||
return ErrJSON(w, "数据不存在", err)
|
||||
return c.ErrJSON(w, "数据不存在", err)
|
||||
}
|
||||
}
|
||||
updata := map[string]any{}
|
||||
err = CiyDB.Tran(func() error {
|
||||
var csql *CiySQL
|
||||
csql = NewCiySQL("zc_ymock")
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
var csql *c.CiySQL
|
||||
csql = c.NewCiySQL("zc_ymock")
|
||||
csql.Where("upath", upath)
|
||||
csql.Where("ufunc", ufunc)
|
||||
csql.Column("id")
|
||||
chkid := Toint(CiyDB.Get1(csql))
|
||||
chkid := c.Toint(c.CiyDB.Get1(csql))
|
||||
if chkid > 0 && ((id > 0 && chkid != id) || id == 0) {
|
||||
return fmt.Errorf("类函数重复")
|
||||
}
|
||||
|
|
@ -140,13 +140,13 @@ func Mock_update(w http.ResponseWriter, r *http.Request) bool {
|
|||
updata["upath"] = upath
|
||||
updata["ufunc"] = ufunc
|
||||
updata["mockjson"] = mockjson
|
||||
csql = NewCiySQL("zc_ymock")
|
||||
csql = c.NewCiySQL("zc_ymock")
|
||||
if id > 0 {
|
||||
csql.Where("id", id)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
} else {
|
||||
updata["addtimes"] = Tostamp()
|
||||
id, err = CiyDB.Insert(csql, updata)
|
||||
updata["addtimes"] = c.Tostamp()
|
||||
id, err = c.CiyDB.Insert(csql, updata)
|
||||
}
|
||||
updata["id"] = id
|
||||
if err != nil {
|
||||
|
|
@ -155,44 +155,44 @@ func Mock_update(w http.ResponseWriter, r *http.Request) bool {
|
|||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["data"] = updata
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Mock_del(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p911u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p911u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
ids := post.Get("ids")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
csql := NewCiySQL("zc_ymock")
|
||||
csql := c.NewCiySQL("zc_ymock")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据错误", err)
|
||||
return c.ErrJSON(w, "读取数据错误", err)
|
||||
}
|
||||
vids := make([]int, 0)
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
delid := Toint(row["id"])
|
||||
Delme(CiyDB, delid, "zc_ymock")
|
||||
delid := c.Toint(row["id"])
|
||||
c.Delme(c.CiyDB, delid, "zc_ymock")
|
||||
vids = append(vids, delid)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,23 +4,23 @@ import (
|
|||
"net/http"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func online_setwhere(post *CiyPost) (map[string]any, *CiySQL) {
|
||||
func online_setwhere(post *c.CiyPost) (map[string]any, *c.CiySQL) {
|
||||
query := post.Getobj("query")
|
||||
csql := NewCiySQL("zc_online")
|
||||
csql.Where("ip like", Getstr(query, "ip"))
|
||||
csql.Where("user", Getstr(query, "user"))
|
||||
csql.Where_daterange("addtimes", Getstr(query, "addtimes"))
|
||||
order := Getstr(query, "order", "id desc")
|
||||
csql := c.NewCiySQL("zc_online")
|
||||
csql.Where("ip like", c.Getstr(query, "ip"))
|
||||
csql.Where("user", c.Getstr(query, "user"))
|
||||
csql.Where_daterange("addtimes", c.Getstr(query, "addtimes"))
|
||||
order := c.Getstr(query, "order", "id desc")
|
||||
csql.Order(order)
|
||||
query["order"] = order
|
||||
return query, csql
|
||||
}
|
||||
func Online_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
|
|
@ -28,9 +28,9 @@ func Online_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
pageno := post.Getint("pageno", 1)
|
||||
pagecount := post.Getint("pagecount", 10)
|
||||
csql.Limit(pageno, pagecount)
|
||||
rows, mainrowcount, err := CiyDB.Get(csql, post.Getint("count"))
|
||||
rows, mainrowcount, err := c.CiyDB.Get(csql, post.Getint("count"))
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["where"] = where
|
||||
|
|
@ -39,8 +39,8 @@ func Online_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
ret["count"] = mainrowcount
|
||||
ret["list"] = rows
|
||||
if post.Getbool("field") {
|
||||
field, fshow := CiyDB.GetField(csql)
|
||||
FieldAdd(&field, &fshow, 0, "_btn", "操作")
|
||||
field, fshow := c.CiyDB.GetField(csql)
|
||||
c.FieldAdd(&field, &fshow, 0, "_btn", "操作")
|
||||
ret["fshow"] = fshow
|
||||
ret["field"] = field
|
||||
}
|
||||
|
|
@ -68,69 +68,69 @@ func Online_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
once["input"] = input
|
||||
ret["once"] = once
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Online_del(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p505d") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p505d") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
ids := post.Get("ids")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
csql := NewCiySQL("zc_online")
|
||||
csql := c.NewCiySQL("zc_online")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据错误", err)
|
||||
return c.ErrJSON(w, "读取数据错误", err)
|
||||
}
|
||||
vids := make([]int, 0)
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
delid := Toint(row["id"])
|
||||
Delme(CiyDB, delid, "zc_online")
|
||||
admin.SaveLogDB(CiyDB, "zc_online", row, nil)
|
||||
delid := c.Toint(row["id"])
|
||||
c.Delme(c.CiyDB, delid, "zc_online")
|
||||
admin.SaveLogDB(c.CiyDB, "zc_online", row, nil)
|
||||
vids = append(vids, delid)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
||||
func Online_logout(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p505o") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p505o") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
id := post.Getint("id")
|
||||
csql := NewCiySQL("zc_online")
|
||||
csql := c.NewCiySQL("zc_online")
|
||||
csql.Where("id", id)
|
||||
rows, _ := CiyDB.Getone(csql)
|
||||
rows, _ := c.CiyDB.Getone(csql)
|
||||
if rows == nil {
|
||||
return ErrJSON(w, "记录不存在")
|
||||
return c.ErrJSON(w, "记录不存在")
|
||||
}
|
||||
if rows["user"] == userid {
|
||||
return ErrJSON(w, "不能下线自己")
|
||||
return c.ErrJSON(w, "不能下线自己")
|
||||
}
|
||||
CiyDB.Execute("update zc_online set sid='' where id=?", id)
|
||||
c.CiyDB.Execute("update zc_online set sid='' where id=?", id)
|
||||
updata := map[string]any{}
|
||||
updata["id"] = id
|
||||
updata["sid"] = ""
|
||||
ret := map[string]any{}
|
||||
ret["data"] = updata
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,21 +5,21 @@ import (
|
|||
"net/http"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func power_setwhere(post *CiyPost) (map[string]any, *CiySQL) {
|
||||
func power_setwhere(post *c.CiyPost) (map[string]any, *c.CiySQL) {
|
||||
query := post.Getobj("query")
|
||||
csql := NewCiySQL("zc_power")
|
||||
csql.Where("types like", Getstr(query, "types"))
|
||||
order := Getstr(query, "order", "id desc")
|
||||
csql := c.NewCiySQL("zc_power")
|
||||
csql.Where("types like", c.Getstr(query, "types"))
|
||||
order := c.Getstr(query, "order", "id desc")
|
||||
csql.Order(order)
|
||||
query["order"] = order
|
||||
return query, csql
|
||||
}
|
||||
func Power_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
|
|
@ -27,9 +27,9 @@ func Power_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
pageno := post.Getint("pageno", 1)
|
||||
pagecount := post.Getint("pagecount", 10)
|
||||
csql.Limit(pageno, pagecount)
|
||||
rows, mainrowcount, err := CiyDB.Get(csql, post.Getint("count"))
|
||||
rows, mainrowcount, err := c.CiyDB.Get(csql, post.Getint("count"))
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
rows = append(rows, map[string]any{
|
||||
"id": 0,
|
||||
|
|
@ -48,12 +48,12 @@ func Power_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
if post.Getbool("field") {
|
||||
field := map[string]map[string]any{}
|
||||
fshow := ""
|
||||
FieldAdd(&field, &fshow, -1, "groupname", "分组名")
|
||||
FieldAdd(&field, &fshow, -1, "name", "模块名称")
|
||||
FieldAdd(&field, &fshow, -1, "scope", "模块代码")
|
||||
FieldAdd(&field, &fshow, -1, "powers", "权限项")
|
||||
FieldAdd(&field, &fshow, -1, "csort", "排序")
|
||||
FieldAdd(&field, &fshow, -1, "_btn", "操作")
|
||||
c.FieldAdd(&field, &fshow, -1, "groupname", "分组名")
|
||||
c.FieldAdd(&field, &fshow, -1, "name", "模块名称")
|
||||
c.FieldAdd(&field, &fshow, -1, "scope", "模块代码")
|
||||
c.FieldAdd(&field, &fshow, -1, "powers", "权限项")
|
||||
c.FieldAdd(&field, &fshow, -1, "csort", "排序")
|
||||
c.FieldAdd(&field, &fshow, -1, "_btn", "操作")
|
||||
field["groupname"]["thwidth"] = "8em"
|
||||
field["name"]["thwidth"] = "8em"
|
||||
field["scope"]["thwidth"] = "6em"
|
||||
|
|
@ -86,53 +86,53 @@ func Power_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
once["input"] = input
|
||||
ret["once"] = once
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Power_update(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p910u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p910u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
id := post.Getint("id")
|
||||
groupname := post.Get("groupname")
|
||||
if groupname == "" {
|
||||
return ErrJSON(w, "请填写分组名")
|
||||
return c.ErrJSON(w, "请填写分组名")
|
||||
}
|
||||
name := post.Get("name")
|
||||
if name == "" {
|
||||
return ErrJSON(w, "请填写模块名称")
|
||||
return c.ErrJSON(w, "请填写模块名称")
|
||||
}
|
||||
scope := post.Get("scope")
|
||||
if scope == "" {
|
||||
return ErrJSON(w, "请填写模块代码")
|
||||
return c.ErrJSON(w, "请填写模块代码")
|
||||
}
|
||||
powers := post.Get("powers")
|
||||
if powers == "" {
|
||||
return ErrJSON(w, "请填写权限项")
|
||||
return c.ErrJSON(w, "请填写权限项")
|
||||
}
|
||||
csort := post.Getint("csort")
|
||||
|
||||
var err error
|
||||
var datarow map[string]any
|
||||
if id > 0 {
|
||||
csql := NewCiySQL("zc_power")
|
||||
csql := c.NewCiySQL("zc_power")
|
||||
csql.Where("id", id)
|
||||
datarow, err = CiyDB.Getone(csql)
|
||||
datarow, err = c.CiyDB.Getone(csql)
|
||||
if datarow == nil {
|
||||
return ErrJSON(w, "数据不存在", err)
|
||||
return c.ErrJSON(w, "数据不存在", err)
|
||||
}
|
||||
}
|
||||
updata := map[string]any{}
|
||||
err = CiyDB.Tran(func() error {
|
||||
var csql *CiySQL
|
||||
csql = NewCiySQL("zc_power")
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
var csql *c.CiySQL
|
||||
csql = c.NewCiySQL("zc_power")
|
||||
csql.Where("scope", scope)
|
||||
csql.Column("id")
|
||||
chkid := Toint(CiyDB.Get1(csql))
|
||||
chkid := c.Toint(c.CiyDB.Get1(csql))
|
||||
if chkid > 0 && ((id > 0 && chkid != id) || id == 0) {
|
||||
return fmt.Errorf("模块代码重复")
|
||||
}
|
||||
|
|
@ -141,60 +141,60 @@ func Power_update(w http.ResponseWriter, r *http.Request) bool {
|
|||
updata["scope"] = scope
|
||||
updata["powers"] = powers
|
||||
updata["csort"] = csort
|
||||
csql = NewCiySQL("zc_power")
|
||||
csql = c.NewCiySQL("zc_power")
|
||||
if id > 0 {
|
||||
csql.Where("id", id)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
} else {
|
||||
id, err = CiyDB.Insert(csql, updata)
|
||||
id, err = c.CiyDB.Insert(csql, updata)
|
||||
}
|
||||
updata["id"] = id
|
||||
if err != nil {
|
||||
return fmt.Errorf("更新失败:%v", err)
|
||||
}
|
||||
admin.SaveLogDB(CiyDB, "zc_power", datarow, updata)
|
||||
admin.SaveLogDB(c.CiyDB, "zc_power", datarow, updata)
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["data"] = updata
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Power_del(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p910u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p910u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
ids := post.Get("ids")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
csql := NewCiySQL("zc_power")
|
||||
csql := c.NewCiySQL("zc_power")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据错误", err)
|
||||
return c.ErrJSON(w, "读取数据错误", err)
|
||||
}
|
||||
vids := make([]int, 0)
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
delid := Toint(row["id"])
|
||||
Delme(CiyDB, delid, "zc_power")
|
||||
admin.SaveLogDB(CiyDB, "zc_power", row, nil)
|
||||
delid := c.Toint(row["id"])
|
||||
c.Delme(c.CiyDB, delid, "zc_power")
|
||||
admin.SaveLogDB(c.CiyDB, "zc_power", row, nil)
|
||||
vids = append(vids, delid)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,22 +4,22 @@ import (
|
|||
"net/http"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func role_setwhere(post *CiyPost) (map[string]any, *CiySQL) {
|
||||
func role_setwhere(post *c.CiyPost) (map[string]any, *c.CiySQL) {
|
||||
query := post.Getobj("query")
|
||||
csql := NewCiySQL("zc_role")
|
||||
csql.Where("name like", Getstr(query, "name"))
|
||||
csql.Where("memo like", Getstr(query, "memo"))
|
||||
order := Getstr(query, "order", "id desc")
|
||||
csql := c.NewCiySQL("zc_role")
|
||||
csql.Where("name like", c.Getstr(query, "name"))
|
||||
csql.Where("memo like", c.Getstr(query, "memo"))
|
||||
order := c.Getstr(query, "order", "id desc")
|
||||
csql.Order(order)
|
||||
query["order"] = order
|
||||
return query, csql
|
||||
}
|
||||
func Role_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
|
|
@ -27,9 +27,9 @@ func Role_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
pageno := post.Getint("pageno", 1)
|
||||
pagecount := post.Getint("pagecount", 10)
|
||||
csql.Limit(pageno, pagecount)
|
||||
rows, mainrowcount, err := CiyDB.Get(csql, post.Getint("count"))
|
||||
rows, mainrowcount, err := c.CiyDB.Get(csql, post.Getint("count"))
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["where"] = where
|
||||
|
|
@ -38,8 +38,8 @@ func Role_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
ret["count"] = mainrowcount
|
||||
ret["list"] = rows
|
||||
if post.Getbool("field") {
|
||||
field, fshow := CiyDB.GetField(csql)
|
||||
FieldAdd(&field, &fshow, 0, "_btn", "操作")
|
||||
field, fshow := c.CiyDB.GetField(csql)
|
||||
c.FieldAdd(&field, &fshow, 0, "_btn", "操作")
|
||||
field["memo"]["thwidth"] = "25em"
|
||||
ret["fshow"] = fshow
|
||||
ret["field"] = field
|
||||
|
|
@ -62,42 +62,42 @@ func Role_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
once["input"] = input
|
||||
ret["once"] = once
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Role_del(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p502d") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p502d") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
ids := post.Get("ids")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
csql := NewCiySQL("zc_role")
|
||||
csql := c.NewCiySQL("zc_role")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据错误", err)
|
||||
return c.ErrJSON(w, "读取数据错误", err)
|
||||
}
|
||||
vids := make([]int, 0)
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
delid := Toint(row["id"])
|
||||
Delcheck(CiyDB, delid, "zc_admin", "roleid", "用户")
|
||||
Delme(CiyDB, delid, "zc_role")
|
||||
admin.SaveLogDB(CiyDB, "zc_role", row, nil)
|
||||
delid := c.Toint(row["id"])
|
||||
c.Delcheck(c.CiyDB, delid, "zc_admin", "roleid", "用户")
|
||||
c.Delme(c.CiyDB, delid, "zc_role")
|
||||
admin.SaveLogDB(c.CiyDB, "zc_role", row, nil)
|
||||
vids = append(vids, delid)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,51 +6,51 @@ import (
|
|||
"strings"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func Role_u_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
id := post.Getint("id")
|
||||
var err error
|
||||
ret := map[string]any{}
|
||||
csql := NewCiySQL("zc_role")
|
||||
csql := c.NewCiySQL("zc_role")
|
||||
csql.Where("id", id)
|
||||
ret["data"], err = CiyDB.Getone(csql)
|
||||
ret["data"], err = c.CiyDB.Getone(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取role失败:"+err.Error())
|
||||
return c.ErrJSON(w, "读取role失败:"+err.Error())
|
||||
}
|
||||
csql = NewCiySQL("zc_menu")
|
||||
csql = c.NewCiySQL("zc_menu")
|
||||
csql.Where("isuse", 1).Order("csort desc,id")
|
||||
ret["pcmenu"], _, err = CiyDB.Get(csql)
|
||||
ret["pcmenu"], _, err = c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取menu失败:"+err.Error())
|
||||
return c.ErrJSON(w, "读取menu失败:"+err.Error())
|
||||
}
|
||||
csql = NewCiySQL("zc_power")
|
||||
csql = c.NewCiySQL("zc_power")
|
||||
csql.Order("csort desc,id")
|
||||
ret["powers"], _, err = CiyDB.Get(csql)
|
||||
ret["powers"], _, err = c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取power失败:"+err.Error())
|
||||
return c.ErrJSON(w, "读取power失败:"+err.Error())
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Role_u_update(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p502u") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p502u") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
id := post.Getint("id")
|
||||
name := post.Get("name")
|
||||
if name == "" {
|
||||
return ErrJSON(w, "请填写角色名称")
|
||||
return c.ErrJSON(w, "请填写角色名称")
|
||||
}
|
||||
memo := post.Get("memo")
|
||||
pman := post.Get("pman")
|
||||
|
|
@ -81,40 +81,40 @@ func Role_u_update(w http.ResponseWriter, r *http.Request) bool {
|
|||
var err error
|
||||
var datarow map[string]any
|
||||
if id > 0 {
|
||||
csql := NewCiySQL("zc_role")
|
||||
csql := c.NewCiySQL("zc_role")
|
||||
csql.Where("id", id)
|
||||
datarow, err = CiyDB.Getone(csql)
|
||||
datarow, err = c.CiyDB.Getone(csql)
|
||||
if datarow == nil {
|
||||
return ErrJSON(w, "数据不存在", err)
|
||||
return c.ErrJSON(w, "数据不存在", err)
|
||||
}
|
||||
}
|
||||
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
updata := map[string]any{}
|
||||
updata["name"] = name
|
||||
updata["power"] = power
|
||||
updata["memo"] = memo
|
||||
updata["uptimes"] = Tostamp()
|
||||
csql := NewCiySQL("zc_role")
|
||||
updata["uptimes"] = c.Tostamp()
|
||||
csql := c.NewCiySQL("zc_role")
|
||||
if id > 0 {
|
||||
csql.Where("id", id)
|
||||
_, err = CiyDB.Update(csql, updata)
|
||||
_, err = c.CiyDB.Update(csql, updata)
|
||||
if datarow["power"] != power {
|
||||
CiyDB.Execute("update zc_admin set power=? where roleid=?", power, id)
|
||||
CiyDB.Execute("update zc_online set usrchg=2 where user in (select id from zc_admin where roleid=?)", id)
|
||||
c.CiyDB.Execute("update zc_admin set power=? where roleid=?", power, id)
|
||||
c.CiyDB.Execute("update zc_online set usrchg=2 where user in (select id from zc_admin where roleid=?)", id)
|
||||
}
|
||||
} else {
|
||||
id, err = CiyDB.Insert(csql, updata)
|
||||
id, err = c.CiyDB.Insert(csql, updata)
|
||||
updata["id"] = id
|
||||
}
|
||||
if err != nil {
|
||||
return fmt.Errorf("更新失败:%v", err)
|
||||
}
|
||||
admin.SaveLogDB(CiyDB, "zc_role", datarow, updata)
|
||||
admin.SaveLogDB(c.CiyDB, "zc_role", datarow, updata)
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
return SuccJSON(w)
|
||||
return c.SuccJSON(w)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,22 +5,22 @@ import (
|
|||
"net/http"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func Statsdb_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
rows, err := CiyDB.Getraw("show global status")
|
||||
rows, err := c.CiyDB.Getraw("show global status")
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
stats := map[string]map[string]any{}
|
||||
for _, row := range rows {
|
||||
name := Tostr(row["Variable_name"])
|
||||
name := c.Tostr(row["Variable_name"])
|
||||
val := row["Value"]
|
||||
help := ""
|
||||
if name == "Aborted_clients" {
|
||||
|
|
@ -278,20 +278,20 @@ func Statsdb_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
} else if name == "Uptime_since_flush_status" {
|
||||
help = "最近一次使用FLUSH STATUS 的时间(以秒为单位)"
|
||||
}
|
||||
if len(Tostr(val)) > 15 {
|
||||
if len(c.Tostr(val)) > 15 {
|
||||
stats[name] = map[string]any{"value": "--", "help": fmt.Sprintf("<kbd>%s</kbd><br/>%s", val, help)}
|
||||
} else {
|
||||
stats[name] = map[string]any{"value": val, "help": help}
|
||||
}
|
||||
}
|
||||
ret := map[string]any{}
|
||||
uptime := Toint(stats["Uptime"]["value"])
|
||||
uptime := c.Toint(stats["Uptime"]["value"])
|
||||
if uptime > 0 {
|
||||
qps := Tofloat(stats["Questions"]["value"]) / float64(uptime)
|
||||
tps := Tofloat(Toint(stats["Com_commit"]["value"])+Toint(stats["Com_rollback"]["value"])) / float64(uptime)
|
||||
qps := c.Tofloat(stats["Questions"]["value"]) / float64(uptime)
|
||||
tps := c.Tofloat(c.Toint(stats["Com_commit"]["value"])+c.Toint(stats["Com_rollback"]["value"])) / float64(uptime)
|
||||
ret["qps"] = qps
|
||||
ret["tps"] = tps
|
||||
}
|
||||
ret["stats"] = stats
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,25 +5,25 @@ import (
|
|||
"net/http"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func statsfunc_setwhere(post *CiyPost) (map[string]any, *CiySQL) {
|
||||
func statsfunc_setwhere(post *c.CiyPost) (map[string]any, *c.CiySQL) {
|
||||
query := post.Getobj("query")
|
||||
csql := NewCiySQL("zc_stats")
|
||||
csql.Where_daterange("addtimes", Getstr(query, "addtimes"))
|
||||
csql.Where_numrange("func_succ", Getstr(query, "func_succ_1"), Getstr(query, "func_succ_2"), 1)
|
||||
csql.Where_numrange("func_fail", Getstr(query, "func_fail_1"), Getstr(query, "func_fail_2"), 1)
|
||||
csql.Where_numrange("func_rollback", Getstr(query, "func_rollback_1"), Getstr(query, "func_rollback_2"), 1)
|
||||
csql.Where_numrange("func_runms", Getstr(query, "func_runms_1"), Getstr(query, "func_runms_2"), 1)
|
||||
order := Getstr(query, "order", "id desc")
|
||||
csql := c.NewCiySQL("zc_stats")
|
||||
csql.Where_daterange("addtimes", c.Getstr(query, "addtimes"))
|
||||
csql.Where_numrange("func_succ", c.Getstr(query, "func_succ_1"), c.Getstr(query, "func_succ_2"), 1)
|
||||
csql.Where_numrange("func_fail", c.Getstr(query, "func_fail_1"), c.Getstr(query, "func_fail_2"), 1)
|
||||
csql.Where_numrange("func_rollback", c.Getstr(query, "func_rollback_1"), c.Getstr(query, "func_rollback_2"), 1)
|
||||
csql.Where_numrange("func_runms", c.Getstr(query, "func_runms_1"), c.Getstr(query, "func_runms_2"), 1)
|
||||
order := c.Getstr(query, "order", "id desc")
|
||||
csql.Order(order)
|
||||
query["order"] = order
|
||||
return query, csql
|
||||
}
|
||||
func Statsfunc_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
|
|
@ -31,9 +31,9 @@ func Statsfunc_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
pageno := post.Getint("pageno", 1)
|
||||
pagecount := post.Getint("pagecount", 10)
|
||||
csql.Limit(pageno, pagecount)
|
||||
rows, mainrowcount, err := CiyDB.Get(csql, post.Getint("count"))
|
||||
rows, mainrowcount, err := c.CiyDB.Get(csql, post.Getint("count"))
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["where"] = where
|
||||
|
|
@ -42,7 +42,7 @@ func Statsfunc_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
ret["count"] = mainrowcount
|
||||
ret["list"] = rows
|
||||
if post.Getbool("field") {
|
||||
field, fshow := CiyDB.GetField(csql)
|
||||
field, fshow := c.CiyDB.GetField(csql)
|
||||
ret["fshow"] = fshow
|
||||
ret["field"] = field
|
||||
}
|
||||
|
|
@ -81,61 +81,61 @@ func Statsfunc_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
once["input"] = input
|
||||
ret["once"] = once
|
||||
}
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
func Statsfunc_del(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p550d") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p550d") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
ids := post.Get("ids")
|
||||
if ids == "" {
|
||||
return ErrJSON(w, "请选择至少一条")
|
||||
return c.ErrJSON(w, "请选择至少一条")
|
||||
}
|
||||
csql := NewCiySQL("zc_stats")
|
||||
csql := c.NewCiySQL("zc_stats")
|
||||
csql.Where("id in", ids)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取数据错误", err)
|
||||
return c.ErrJSON(w, "读取数据错误", err)
|
||||
}
|
||||
vids := make([]int, 0)
|
||||
err = CiyDB.Tran(func() error {
|
||||
err = c.CiyDB.Tran(func() error {
|
||||
for _, row := range rows {
|
||||
delid := Toint(row["id"])
|
||||
Delme(CiyDB, delid, "zc_stats")
|
||||
admin.SaveLogDB(CiyDB, "zc_stats", row, nil)
|
||||
delid := c.Toint(row["id"])
|
||||
c.Delme(c.CiyDB, delid, "zc_stats")
|
||||
admin.SaveLogDB(c.CiyDB, "zc_stats", row, nil)
|
||||
vids = append(vids, delid)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return ErrJSON(w, "事务"+err.Error())
|
||||
return c.ErrJSON(w, "事务"+err.Error())
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["ids"] = vids
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
||||
func Statsfunc_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
if admin.Nopower(CiyDB, userid, "p550e") {
|
||||
return ErrJSON(w, "您未被授权操作")
|
||||
if admin.Nopower(c.CiyDB, userid, "p550e") {
|
||||
return c.ErrJSON(w, "您未被授权操作")
|
||||
}
|
||||
_, csql := statsfunc_setwhere(post)
|
||||
rows, _, err := CiyDB.Get(csql)
|
||||
rows, _, err := c.CiyDB.Get(csql)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "读取错误", err)
|
||||
return c.ErrJSON(w, "读取错误", err)
|
||||
}
|
||||
if len(rows) > 10000 {
|
||||
return ErrJSON(w, "将导出"+Tostr(len(rows))+"条,不建议超过1万条,请筛选缩小范围", err)
|
||||
return c.ErrJSON(w, "将导出"+c.Tostr(len(rows))+"条,不建议超过1万条,请筛选缩小范围", err)
|
||||
}
|
||||
fields := []map[string]string{}
|
||||
fields = append(fields, map[string]string{"style": "c", "width": "60", "field": "id", "name": "行码"})
|
||||
|
|
@ -173,16 +173,16 @@ func Statsfunc_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
|||
if val, ok := row[field]; ok {
|
||||
var str string
|
||||
if field == "id" {
|
||||
str = EnID(Toint(val))
|
||||
str = c.EnID(c.Toint(val))
|
||||
} else if field == "addtimes" {
|
||||
t := Toint(val)
|
||||
t := c.Toint(val)
|
||||
if t <= 0 {
|
||||
str = "--"
|
||||
} else {
|
||||
str = Todate(t, "Y-m-d H:i")
|
||||
str = c.Todate(t, "Y-m-d H:i")
|
||||
}
|
||||
} else {
|
||||
str = Tostr(val)
|
||||
str = c.Tostr(val)
|
||||
}
|
||||
dat = append(dat, str)
|
||||
} else {
|
||||
|
|
@ -199,17 +199,17 @@ func Statsfunc_exportxls(w http.ResponseWriter, r *http.Request) bool {
|
|||
param["toptitle"] = "系统健康数据报表"
|
||||
total := []map[string]any{} //单行统计数据
|
||||
// total = append(total, map[string]any{"style": "l", "name": "合计", "merge": 5})
|
||||
// total = append(total, map[string]any{"style": "r", "name": "=SUM(R[-" + Tostr(len(datas)) + "]C:R[-1]C)"})
|
||||
// total = append(total, map[string]any{"style": "r", "name": "=MAX(R[-" + Tostr(len(datas)) + "]C:R[-1]C)"})
|
||||
// total = append(total, map[string]any{"style": "r", "name": "=SUM(R[-" + c.Tostr(len(datas)) + "]C:R[-1]C)"})
|
||||
// total = append(total, map[string]any{"style": "r", "name": "=MAX(R[-" + c.Tostr(len(datas)) + "]C:R[-1]C)"})
|
||||
// param["rowstop"] = `<Row ss:Height="45"><Cell ss:MergeAcross="7" ss:StyleID="cap"><Data ss:Type="String">众产Ciyon</Data></Cell></Row>`
|
||||
// param["rowsfooter"] = `<Row><Cell ss:MergeAcross="2"><Data ss:Type="String" ss:StyleID="r">总计</Data></Cell><Cell ss:Formula="=SUM(R[-2]C:R[-1]C)"><Data ss:Type="Number"></Data></Cell></Row>`
|
||||
str := General_excel_xml(fields, datas, param, total)
|
||||
filename := "/ud/tmp/" + Todate(-1, "Ymd_His") + Tostr(rand.Intn(8999)+1000) + ".xls"
|
||||
err = FileSave(CiyWebDir+filename, str)
|
||||
str := c.General_excel_xml(fields, datas, param, total)
|
||||
filename := "/ud/tmp/" + c.Todate(-1, "Ymd_His") + c.Tostr(rand.Intn(8999)+1000) + ".xls"
|
||||
err = c.FileSave(c.CiyWebDir+filename, str)
|
||||
if err != nil {
|
||||
return ErrJSON(w, "导出保存文件错误:%v[%v]", err, filename)
|
||||
return c.ErrJSON(w, "导出保存文件错误:%v[%v]", err, filename)
|
||||
}
|
||||
ret := map[string]any{}
|
||||
ret["url"] = filename
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,18 +5,18 @@ import (
|
|||
"runtime"
|
||||
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func Statssrv_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
stats := map[string]map[string]any{}
|
||||
stats["Go版本"] = map[string]any{"value": runtime.Version()}
|
||||
stats["程序版本"] = map[string]any{"value": CiyVars.Version}
|
||||
stats["程序版本"] = map[string]any{"value": c.CiyVars.Version}
|
||||
stats["操作系统"] = map[string]any{"value": runtime.GOOS}
|
||||
stats["CPU数量"] = map[string]any{"value": runtime.NumCPU()}
|
||||
|
||||
|
|
@ -34,5 +34,5 @@ func Statssrv_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
|
||||
ret := map[string]any{}
|
||||
ret["stats"] = stats
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package admin
|
||||
|
||||
import (
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
"crypto/hmac"
|
||||
"crypto/sha256"
|
||||
"encoding/hex"
|
||||
|
|
@ -16,50 +16,50 @@ func Upload_upload(w http.ResponseWriter, r *http.Request) bool {
|
|||
}
|
||||
extselect := "exts"
|
||||
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
path := post.Get("pathfile")
|
||||
file := post.Getfile()
|
||||
// if file.content == nil {
|
||||
// return ErrJSON(w, fmt.Sprintf("文件上传错误"))
|
||||
// return c.ErrJSON(w, fmt.Sprintf("文件上传错误"))
|
||||
// }
|
||||
// if file.Size != len(file.content) {
|
||||
// return ErrJSON(w, fmt.Sprintf("文件大小不匹配:%d!=%d", file.Size, len(file.content)))
|
||||
// return c.ErrJSON(w, fmt.Sprintf("文件大小不匹配:%d!=%d", file.Size, len(file.content)))
|
||||
// }
|
||||
_, extfile := Fileext(file.Filename)
|
||||
_, extfile := c.Fileext(file.Filename)
|
||||
if extselect == "exts" {
|
||||
if In_array(uploadcfg[extselect], extfile) == -1 {
|
||||
return ErrJSON(w, "不允许上传"+extfile+"类型文件")
|
||||
if c.In_array(uploadcfg[extselect], extfile) == -1 {
|
||||
return c.ErrJSON(w, "不允许上传"+extfile+"类型文件")
|
||||
}
|
||||
} else {
|
||||
if In_array(uploadcfg[extselect], extfile) > -1 {
|
||||
return ErrJSON(w, "禁止上传"+extfile+"类型文件")
|
||||
if c.In_array(uploadcfg[extselect], extfile) > -1 {
|
||||
return c.ErrJSON(w, "禁止上传"+extfile+"类型文件")
|
||||
}
|
||||
}
|
||||
json, err := SaveUploadFile(path, file)
|
||||
json, err := c.SaveUploadFile(path, file)
|
||||
if err != nil {
|
||||
return ErrJSON(w, err.Error())
|
||||
return c.ErrJSON(w, err.Error())
|
||||
}
|
||||
return SuccJSON(w, json)
|
||||
return c.SuccJSON(w, json)
|
||||
}
|
||||
|
||||
func Upload_s3(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
path := post.Get("pathfile")
|
||||
storselect := post.Get("storselect")
|
||||
accessKey := CiyVars.Ini.GetKey("s3"+storselect, "access", "")
|
||||
secretKey := CiyVars.Ini.GetKey("s3"+storselect, "secret", "")
|
||||
endpoint := CiyVars.Ini.GetKey("s3"+storselect, "endpoint", "")
|
||||
region := CiyVars.Ini.GetKey("s3"+storselect, "region", "")
|
||||
bucket := CiyVars.Ini.GetKey("s3"+storselect, "bucket", "")
|
||||
acl := CiyVars.Ini.GetKey("s3"+storselect, "acl", "")
|
||||
accessKey := c.CiyVars.Ini.GetKey("s3"+storselect, "access", "")
|
||||
secretKey := c.CiyVars.Ini.GetKey("s3"+storselect, "secret", "")
|
||||
endpoint := c.CiyVars.Ini.GetKey("s3"+storselect, "endpoint", "")
|
||||
region := c.CiyVars.Ini.GetKey("s3"+storselect, "region", "")
|
||||
bucket := c.CiyVars.Ini.GetKey("s3"+storselect, "bucket", "")
|
||||
acl := c.CiyVars.Ini.GetKey("s3"+storselect, "acl", "")
|
||||
objectKey := "ud/" + path
|
||||
vsha256 := "UNSIGNED-PAYLOAD"
|
||||
zdate := time.Now().UTC().Format("20060102T150405Z")
|
||||
|
|
@ -96,7 +96,7 @@ func Upload_s3(w http.ResponseWriter, r *http.Request) bool {
|
|||
headers["x-amz-content-sha256"] = vsha256
|
||||
headers["x-amz-date"] = zdate
|
||||
ret["headers"] = headers
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
||||
func sign(key []byte, msg string) []byte {
|
||||
|
|
|
|||
|
|
@ -1,22 +1,21 @@
|
|||
package admin
|
||||
|
||||
import (
|
||||
c "ciyon/zciyon"
|
||||
"net/http"
|
||||
|
||||
. "ciyon/zciyon"
|
||||
)
|
||||
|
||||
func Welcome_init(w http.ResponseWriter, r *http.Request) bool {
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
return false
|
||||
}
|
||||
ret := map[string]any{}
|
||||
works := []map[string]any{}
|
||||
// csql := NewCiySQL("zc_urole")
|
||||
// csql := c.NewCiySQL("zc_urole")
|
||||
// csql.Where("auditstatus", 20)
|
||||
// cnt := Toint(CiyDB.Get1(csql))
|
||||
// cnt := c.Toint(c.CiyDB.Get1(csql))
|
||||
// if cnt > 0 {
|
||||
// works = append(works, map[string]any{
|
||||
// "title": fmt.Sprintf("权限待审批%d条", cnt),
|
||||
|
|
@ -25,5 +24,5 @@ func Welcome_init(w http.ResponseWriter, r *http.Request) bool {
|
|||
// })
|
||||
// }
|
||||
ret["works"] = works
|
||||
return SuccJSON(w, ret)
|
||||
return c.SuccJSON(w, ret)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,19 +2,19 @@ package wsdemo
|
|||
|
||||
import (
|
||||
"ciyon/web/admin"
|
||||
. "ciyon/zciyon"
|
||||
c "ciyon/zciyon"
|
||||
"fmt"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func Wsdemo(w http.ResponseWriter, r *http.Request) bool {
|
||||
ws, err := NewCiyWebsocket(w, r)
|
||||
ws, err := c.NewCiyWebsocket(w, r)
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), http.StatusBadRequest)
|
||||
return false
|
||||
}
|
||||
post := NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(CiyDB, post)
|
||||
post := c.NewCiyPost(w, r)
|
||||
_, userid := admin.Verifyfast(c.CiyDB, post)
|
||||
if userid == 0 {
|
||||
ws.SendFail(0, "请重新登录")
|
||||
ws.Close()
|
||||
|
|
@ -26,7 +26,7 @@ func Wsdemo(w http.ResponseWriter, r *http.Request) bool {
|
|||
fmt.Println("Received message:", len(byt))
|
||||
})
|
||||
ws.OnMessageJSON(func(code, wsidx int, json map[string]any) {
|
||||
fmt.Println("Received json:", Tostr(code), "_wsid:", Tostr(wsidx))
|
||||
fmt.Println("Received json:", c.Tostr(code), "_wsid:", c.Tostr(wsidx))
|
||||
ws.SendFail(wsidx, "err:Sdfasdf")
|
||||
})
|
||||
ws.OnError(func(error) {
|
||||
|
|
@ -42,7 +42,7 @@ func Wsdemo(w http.ResponseWriter, r *http.Request) bool {
|
|||
if ws.Isclose {
|
||||
break
|
||||
}
|
||||
Sleep(5)
|
||||
c.Sleep(5)
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
package zciyon
|
||||
|
||||
//. "ciyon/zciyon"
|
||||
//c "ciyon/zciyon"
|
||||
|
||||
func Ciy_sys_getdisk(drive string) map[string]int {
|
||||
ret := map[string]int{}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user