mirror of https://github.com/bjdgyc/anylink.git
修复发送邮件只能发一次的问题,整合代码到一个文件
This commit is contained in:
parent
9fe31212e4
commit
7032ebdc85
|
@ -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
|
||||
}
|
|
@ -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")
|
||||
|
|
Loading…
Reference in New Issue