package controllers
|
|
|
|
import (
|
|
"lapp_-wy/conf"
|
|
"lapp_-wy/utils"
|
|
"lapp_-wy/web/middleware/jwts"
|
|
"lapp_-wy/web/models"
|
|
"lapp_-wy/web/supports"
|
|
"github.com/kataras/iris"
|
|
"io"
|
|
"log"
|
|
"net/http"
|
|
"time"
|
|
)
|
|
|
|
//上传excel
|
|
func TabInfo(ctx iris.Context) {
|
|
user, ok := jwts.ParseToken(ctx)
|
|
utils.TrimStruct(user, *user)
|
|
if !ok {
|
|
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
|
|
return
|
|
}
|
|
//获取通过iris.WithPostMaxMemory获取的最大上传值大小。
|
|
maxSize := ctx.Application().ConfigurationReadOnly().GetPostMaxMemory()
|
|
err := ctx.Request().ParseMultipartForm(maxSize)
|
|
if err != nil {
|
|
ctx.StatusCode(iris.StatusInternalServerError)
|
|
ctx.WriteString(err.Error())
|
|
return
|
|
}
|
|
form := ctx.Request().MultipartForm
|
|
files := form.File["upload[]"]
|
|
|
|
guid := utils.MakeOrderSn(user.Userid)
|
|
savePath := "web/public/uploadxlsx/" + guid + ".xlsx"
|
|
|
|
for _, file := range files {
|
|
// 上传文件至指定目录
|
|
err := utils.SaveUploadedFile(file, savePath)
|
|
if err != nil {
|
|
log := new(models.LeitServerLog)
|
|
log.File = "/controllers/TabInfo"
|
|
log.Level = "debug"
|
|
log.Function = "TabInfo"
|
|
log.Message = error.Error(err)
|
|
log.Operator = user.Userid
|
|
log.TimeStamp = utils.TimeFormat(time.Now(),"yyyyMMddHHmmss")
|
|
log.InsertRecord()
|
|
return
|
|
}
|
|
}
|
|
tab := new(models.Tabcolname)
|
|
tab.Lastuser = user.Userid
|
|
res := tab.ReadXlsx(savePath)
|
|
if res {
|
|
supports.Ok(ctx, supports.OptionSuccess, "")
|
|
return
|
|
}
|
|
supports.Error(ctx, iris.StatusBadRequest, "上传失败", nil)
|
|
return
|
|
}
|
|
|
|
//下载模板
|
|
func Download(ctx iris.Context) {
|
|
file := conf.ExampleFile
|
|
ctx.Header("Content-Disposition", `attachment; filename="example.xlsx"`)
|
|
ctx.Header("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
|
|
res, err := http.Get(file)
|
|
defer res.Body.Close()
|
|
if err != nil {
|
|
log.Println("获取文件错误")
|
|
}
|
|
io.Copy(ctx.ResponseWriter(), res.Body)
|
|
|
|
}
|
|
|
|
//分页查询
|
|
func TabDataListPage(ctx iris.Context) {
|
|
user, ok := jwts.ParseToken(ctx)
|
|
utils.TrimStruct(user, *user)
|
|
if !ok {
|
|
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
|
|
return
|
|
}
|
|
var data models.Tabcolname
|
|
var err error
|
|
var pageSize = 10
|
|
var pageIndex = 1
|
|
|
|
if size := ctx.URLParam("pageSize"); size != "" {
|
|
pageSize = utils.ValueToInt(size, 0)
|
|
}
|
|
|
|
if index := ctx.URLParam("pageIndex"); index != "" {
|
|
pageIndex = utils.ValueToInt(index, 0)
|
|
}
|
|
|
|
data.Colname = ctx.URLParam("colname")
|
|
result, count, err := data.DataListPage(pageSize, pageIndex)
|
|
if err != nil {
|
|
supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
|
|
return
|
|
}
|
|
res := make(map[string]interface{})
|
|
res["data"] = result
|
|
res["count"] = count
|
|
res["pageIndex"] = pageIndex
|
|
res["pageSize"] = pageSize
|
|
supports.Ok(ctx, supports.OptionSuccess, res)
|
|
}
|
|
|
|
//返回所有数据
|
|
func TabDataList(ctx iris.Context) {
|
|
user, ok := jwts.ParseToken(ctx)
|
|
utils.TrimStruct(user, *user)
|
|
if !ok {
|
|
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
|
|
return
|
|
}
|
|
var data models.Tabcolname
|
|
var err error
|
|
result, err := data.DataList()
|
|
res := map[string]string{}
|
|
for _,v:= range result{
|
|
key := v.Tabname +"."+v.Colname
|
|
val := v.Textlabel
|
|
res[key] = val
|
|
}
|
|
if err != nil {
|
|
log := new(models.LeitServerLog)
|
|
log.File = "/controllers/TabDataList"
|
|
log.Level = "debug"
|
|
log.Function = "TabDataList"
|
|
log.Message = error.Error(err)
|
|
log.Operator = user.Userid
|
|
log.TimeStamp = utils.TimeFormat(time.Now(),"yyyyMMddHHmmss")
|
|
log.InsertRecord()
|
|
supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
|
|
return
|
|
}
|
|
supports.Ok(ctx, supports.OptionSuccess, res)
|
|
}
|
|
|
|
//删除数据
|
|
func DeleteTab(ctx iris.Context) {
|
|
var data models.Tabcolname
|
|
data.Tabname = ctx.URLParam("tabname")
|
|
data.Colname = ctx.URLParam("colname")
|
|
ok, err := data.DelData()
|
|
if !ok || err != nil {
|
|
supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
|
|
return
|
|
}
|
|
supports.Ok(ctx, "删除成功", "")
|
|
}
|