package rigger import ( "fmt" "net/http" "strings" "ciyon/web/admin" . "ciyon/zciyon" ) func Depart_init(w http.ResponseWriter, r *http.Request) bool { post := NewCiyPost(w, r) _, userid := admin.Verifyfast(CiyDB, post) if userid == 0 { return false } csql := NewCiySQL("zc_depart") csql.Order("csort desc,id") rows, _, err := CiyDB.Get(csql) if err != nil { return 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["csort"]["thwidth"] = "8em" ret["fshow"] = fshow ret["field"] = field } if post.Getbool("once") { once := map[string]any{} input := make([]map[string]string, 0) input = append(input, map[string]string{ "form": "name", "type": "input", "name": "组织名称", "prop": ` style="width:8em;"`, }) once["input"] = input ret["once"] = once } return SuccJSON(w, ret) } func Depart_update(w http.ResponseWriter, r *http.Request) bool { post := NewCiyPost(w, r) _, userid := admin.Verifyfast(CiyDB, post) if userid == 0 { return false } if admin.Nopower(CiyDB, userid, "p501u") { return ErrJSON(w, "您未被授权操作") } id := post.Getint("id") name := post.Get("name") if name == "" { return ErrJSON(w, "请填写部门名称") } upid := post.Getint("upid") csort := post.Getint("csort") isuse := post.Getint("isuse") csql := NewCiySQL("zc_depart") csql.Where("id", id) datarow, err := CiyDB.Getone(csql) if err != nil { return ErrJSON(w, "数据不存在", err) } err = 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.Where("id", id) _, err = CiyDB.Update(csql, updata) if err != nil { return fmt.Errorf("更新失败:%v", err) } admin.SaveLogDB(CiyDB, "zc_depart", datarow, updata) return nil }) if err != nil { return ErrJSON(w, "事务"+err.Error()) } return SuccJSON(w) } func Depart_del(w http.ResponseWriter, r *http.Request) bool { post := NewCiyPost(w, r) _, userid := admin.Verifyfast(CiyDB, post) if userid == 0 { return false } if admin.Nopower(CiyDB, userid, "p501d") { return ErrJSON(w, "您未被授权操作") } ids := post.Get("ids") if ids == "" { return ErrJSON(w, "请选择至少一条") } csql := NewCiySQL("zc_depart") csql.Where("id in", ids) rows, _, err := CiyDB.Get(csql) if err != nil { return ErrJSON(w, "遇到读取错误", err) } vids := make([]int, 0) err = 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) vids = append(vids, delid) } return nil }) if err != nil { return ErrJSON(w, "事务"+err.Error()) } ret := map[string]any{} ret["ids"] = vids return SuccJSON(w, ret) } func Depart_modifyupid(w http.ResponseWriter, r *http.Request) bool { post := NewCiyPost(w, r) _, userid := admin.Verifyfast(CiyDB, post) if userid == 0 { return false } if admin.Nopower(CiyDB, userid, "p501u") { return ErrJSON(w, "您未被授权操作") } id := post.Getint("id") newupid := post.Getint("newupid") csql := NewCiySQL("zc_depart") csql.Where("id", id) datarow, err := CiyDB.Getone(csql) if err != nil { return ErrJSON(w, "数据不存在", err) } err = CiyDB.Tran(func() error { updata := map[string]any{} updata["upid"] = newupid csql = NewCiySQL("zc_depart") csql.Where("id", id) _, err = CiyDB.Update(csql, updata) if err != nil { return fmt.Errorf("操作数据库失败:%v", err) } admin.SaveLogDB(CiyDB, "zc_depart", datarow, updata) return nil }) if err != nil { return ErrJSON(w, "事务"+err.Error()) } return SuccJSON(w) } func Depart_multiadd(w http.ResponseWriter, r *http.Request) bool { post := NewCiyPost(w, r) _, userid := admin.Verifyfast(CiyDB, post) if userid == 0 { return false } if admin.Nopower(CiyDB, userid, "p501u") { return ErrJSON(w, "您未被授权操作") } upid := post.Getint("upid") multi := strings.Split(post.Get("multi"), "\n") cnt := 0 err := CiyDB.Tran(func() error { for _, m := range multi { m = strings.TrimSpace(m) if m == "" { continue } updata := map[string]any{} updata["name"] = m updata["isuse"] = 1 updata["upid"] = upid updata["csort"] = 10 csql := NewCiySQL("zc_depart") _, err := CiyDB.Insert(csql, updata) if err != nil { return fmt.Errorf("新增失败:%v", err) } cnt++ admin.SaveLogDB(CiyDB, "zc_depart", nil, updata) } return nil }) if err != nil { return ErrJSON(w, "事务"+err.Error()) } if cnt == 0 { return ErrJSON(w, "没有任何新增") } return SuccJSON(w) }