From 7032ebdc8505c640d8d62c4739475c4153fe89c2 Mon Sep 17 00:00:00 2001 From: wsczx Date: Tue, 25 Oct 2022 14:59:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8F=91=E9=80=81=E9=82=AE?= =?UTF-8?q?=E4=BB=B6=E5=8F=AA=E8=83=BD=E5=8F=91=E4=B8=80=E6=AC=A1=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E6=95=B4=E5=90=88=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=88=B0=E4=B8=80=E4=B8=AA=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{uploaduser.go => api_uploaduser.go} | 40 ++++++++++++++++--- server/admin/api_user.go | 25 +----------- 2 files changed, 35 insertions(+), 30 deletions(-) rename server/admin/{uploaduser.go => api_uploaduser.go} (65%) diff --git a/server/admin/uploaduser.go b/server/admin/api_uploaduser.go similarity index 65% rename from server/admin/uploaduser.go rename to server/admin/api_uploaduser.go index 4f904bf..2205cc9 100755 --- a/server/admin/uploaduser.go +++ b/server/admin/api_uploaduser.go @@ -2,17 +2,44 @@ package admin import ( "fmt" + "io" + "net/http" + "os" "strconv" + "strings" "time" + "github.com/bjdgyc/anylink/base" "github.com/bjdgyc/anylink/dbdata" "github.com/bjdgyc/anylink/pkg/utils" "github.com/spf13/cast" "github.com/xuri/excelize/v2" ) +func UserUpload(w http.ResponseWriter, r *http.Request) { + r.ParseMultipartForm(8 << 20) + file, header, err := r.FormFile("file") + if err != nil || !strings.Contains(header.Filename, ".xlsx") || !strings.Contains(header.Filename, ".xls") { + RespError(w, RespInternalErr, "文件解析失败:仅支持xlsx或xls文件") + return + } + defer file.Close() + newFile, err := os.Create(base.Cfg.FilesPath + header.Filename) + if err != nil { + RespError(w, RespInternalErr, "创建文件失败:", err) + return + } + defer newFile.Close() + io.Copy(newFile, file) + if err = UploadUser(newFile.Name()); err != nil { + RespError(w, RespInternalErr, err) + os.Remove(base.Cfg.FilesPath + header.Filename) + return + } + os.Remove(base.Cfg.FilesPath + header.Filename) + RespSucess(w, "批量添加成功") +} func UploadUser(file string) error { - user := &dbdata.User{} f, err := excelize.OpenFile(file) if err != nil { return err @@ -44,7 +71,7 @@ func UploadUser(file string) error { sendmail, _ := strconv.ParseBool(row[10]) // createdAt, _ := time.ParseInLocation("2006-01-02 15:04:05", row[11], time.Local) // updatedAt, _ := time.ParseInLocation("2006-01-02 15:04:05", row[12], time.Local) - user = &dbdata.User{ + user := &dbdata.User{ Id: id, Username: row[1], Nickname: row[2], @@ -62,10 +89,11 @@ func UploadUser(file string) error { if err := dbdata.AddBatch(user); err != nil { return fmt.Errorf("请检查是否导入有重复用户") } - } - if user.SendEmail { - err := userAccountMail(user) - return err + if user.SendEmail { + if err := userAccountMail(user); err != nil { + return err + } + } } return nil } diff --git a/server/admin/api_user.go b/server/admin/api_user.go index 4d075bd..62f80ac 100644 --- a/server/admin/api_user.go +++ b/server/admin/api_user.go @@ -8,7 +8,6 @@ import ( "io" "net/http" "net/url" - "os" "strconv" "strings" "text/template" @@ -112,29 +111,7 @@ func UserSet(w http.ResponseWriter, r *http.Request) { sessdata.CloseUserLimittimeSession() RespSucess(w, nil) } -func UserUpload(w http.ResponseWriter, r *http.Request) { - r.ParseMultipartForm(8 << 20) - file, header, err := r.FormFile("file") - if err != nil || !strings.Contains(header.Filename, ".xlsx") || !strings.Contains(header.Filename, ".xls") { - RespError(w, RespInternalErr, "文件解析失败:仅支持xlsx或xls文件") - return - } - defer file.Close() - newFile, err := os.Create(base.Cfg.FilesPath + header.Filename) - if err != nil { - RespError(w, RespInternalErr, "创建文件失败:", err) - return - } - defer newFile.Close() - io.Copy(newFile, file) - if err = UploadUser(newFile.Name()); err != nil { - RespError(w, RespInternalErr, err) - os.Remove(base.Cfg.FilesPath + header.Filename) - return - } - os.Remove(base.Cfg.FilesPath + header.Filename) - RespSucess(w, "批量添加成功") -} + func UserDel(w http.ResponseWriter, r *http.Request) { _ = r.ParseForm() idS := r.FormValue("id")