沈阳玫苑物业管理后端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

156 lines
3.9 KiB

  1. package controllers
  2. import (
  3. "lapp_-wy/conf"
  4. "lapp_-wy/utils"
  5. "lapp_-wy/web/middleware/jwts"
  6. "lapp_-wy/web/models"
  7. "lapp_-wy/web/supports"
  8. "github.com/kataras/iris"
  9. "io"
  10. "log"
  11. "net/http"
  12. "time"
  13. )
  14. //上传excel
  15. func TabInfo(ctx iris.Context) {
  16. user, ok := jwts.ParseToken(ctx)
  17. utils.TrimStruct(user, *user)
  18. if !ok {
  19. supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
  20. return
  21. }
  22. //获取通过iris.WithPostMaxMemory获取的最大上传值大小。
  23. maxSize := ctx.Application().ConfigurationReadOnly().GetPostMaxMemory()
  24. err := ctx.Request().ParseMultipartForm(maxSize)
  25. if err != nil {
  26. ctx.StatusCode(iris.StatusInternalServerError)
  27. ctx.WriteString(err.Error())
  28. return
  29. }
  30. form := ctx.Request().MultipartForm
  31. files := form.File["upload[]"]
  32. guid := utils.MakeOrderSn(user.Userid)
  33. savePath := "web/public/uploadxlsx/" + guid + ".xlsx"
  34. for _, file := range files {
  35. // 上传文件至指定目录
  36. err := utils.SaveUploadedFile(file, savePath)
  37. if err != nil {
  38. log := new(models.LeitServerLog)
  39. log.File = "/controllers/TabInfo"
  40. log.Level = "debug"
  41. log.Function = "TabInfo"
  42. log.Message = error.Error(err)
  43. log.Operator = user.Userid
  44. log.TimeStamp = utils.TimeFormat(time.Now(),"yyyyMMddHHmmss")
  45. log.InsertRecord()
  46. return
  47. }
  48. }
  49. tab := new(models.Tabcolname)
  50. tab.Lastuser = user.Userid
  51. res := tab.ReadXlsx(savePath)
  52. if res {
  53. supports.Ok(ctx, supports.OptionSuccess, "")
  54. return
  55. }
  56. supports.Error(ctx, iris.StatusBadRequest, "上传失败", nil)
  57. return
  58. }
  59. //下载模板
  60. func Download(ctx iris.Context) {
  61. file := conf.ExampleFile
  62. ctx.Header("Content-Disposition", `attachment; filename="example.xlsx"`)
  63. ctx.Header("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
  64. res, err := http.Get(file)
  65. defer res.Body.Close()
  66. if err != nil {
  67. log.Println("获取文件错误")
  68. }
  69. io.Copy(ctx.ResponseWriter(), res.Body)
  70. }
  71. //分页查询
  72. func TabDataListPage(ctx iris.Context) {
  73. user, ok := jwts.ParseToken(ctx)
  74. utils.TrimStruct(user, *user)
  75. if !ok {
  76. supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
  77. return
  78. }
  79. var data models.Tabcolname
  80. var err error
  81. var pageSize = 10
  82. var pageIndex = 1
  83. if size := ctx.URLParam("pageSize"); size != "" {
  84. pageSize = utils.ValueToInt(size, 0)
  85. }
  86. if index := ctx.URLParam("pageIndex"); index != "" {
  87. pageIndex = utils.ValueToInt(index, 0)
  88. }
  89. data.Colname = ctx.URLParam("colname")
  90. result, count, err := data.DataListPage(pageSize, pageIndex)
  91. if err != nil {
  92. supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
  93. return
  94. }
  95. res := make(map[string]interface{})
  96. res["data"] = result
  97. res["count"] = count
  98. res["pageIndex"] = pageIndex
  99. res["pageSize"] = pageSize
  100. supports.Ok(ctx, supports.OptionSuccess, res)
  101. }
  102. //返回所有数据
  103. func TabDataList(ctx iris.Context) {
  104. user, ok := jwts.ParseToken(ctx)
  105. utils.TrimStruct(user, *user)
  106. if !ok {
  107. supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
  108. return
  109. }
  110. var data models.Tabcolname
  111. var err error
  112. result, err := data.DataList()
  113. res := map[string]string{}
  114. for _,v:= range result{
  115. key := v.Tabname +"."+v.Colname
  116. val := v.Textlabel
  117. res[key] = val
  118. }
  119. if err != nil {
  120. log := new(models.LeitServerLog)
  121. log.File = "/controllers/TabDataList"
  122. log.Level = "debug"
  123. log.Function = "TabDataList"
  124. log.Message = error.Error(err)
  125. log.Operator = user.Userid
  126. log.TimeStamp = utils.TimeFormat(time.Now(),"yyyyMMddHHmmss")
  127. log.InsertRecord()
  128. supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
  129. return
  130. }
  131. supports.Ok(ctx, supports.OptionSuccess, res)
  132. }
  133. //删除数据
  134. func DeleteTab(ctx iris.Context) {
  135. var data models.Tabcolname
  136. data.Tabname = ctx.URLParam("tabname")
  137. data.Colname = ctx.URLParam("colname")
  138. ok, err := data.DelData()
  139. if !ok || err != nil {
  140. supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
  141. return
  142. }
  143. supports.Ok(ctx, "删除成功", "")
  144. }