sys_export_template.go 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. package system
  2. import (
  3. "fmt"
  4. "github.com/gin-gonic/gin"
  5. "go.uber.org/zap"
  6. "net/http"
  7. "server/global"
  8. "server/model/common/request"
  9. "server/model/common/response"
  10. "server/model/system"
  11. systemReq "server/model/system/request"
  12. "server/service"
  13. "server/utils"
  14. )
  15. type SysExportTemplateApi struct {
  16. }
  17. var sysExportTemplateService = service.ServiceGroupApp.SystemServiceGroup.SysExportTemplateService
  18. // CreateSysExportTemplate 创建导出模板
  19. // @Tags SysExportTemplate
  20. // @Summary 创建导出模板
  21. // @Security ApiKeyAuth
  22. // @accept application/json
  23. // @Produce application/json
  24. // @Param data body system.SysExportTemplate true "创建导出模板"
  25. // @Success 200 {string} string "{"success":true,"data":{},"msg":"创建成功"}"
  26. // @Router /sysExportTemplate/createSysExportTemplate [post]
  27. func (sysExportTemplateApi *SysExportTemplateApi) CreateSysExportTemplate(c *gin.Context) {
  28. var sysExportTemplate system.SysExportTemplate
  29. err := c.ShouldBindJSON(&sysExportTemplate)
  30. if err != nil {
  31. response.FailWithMessage(err.Error(), c)
  32. return
  33. }
  34. verify := utils.Rules{
  35. "Name": {utils.NotEmpty()},
  36. }
  37. if err := utils.Verify(sysExportTemplate, verify); err != nil {
  38. response.FailWithMessage(err.Error(), c)
  39. return
  40. }
  41. if err := sysExportTemplateService.CreateSysExportTemplate(&sysExportTemplate); err != nil {
  42. global.GVA_LOG.Error("创建失败!", zap.Error(err))
  43. response.FailWithMessage("创建失败", c)
  44. } else {
  45. response.OkWithMessage("创建成功", c)
  46. }
  47. }
  48. // DeleteSysExportTemplate 删除导出模板
  49. // @Tags SysExportTemplate
  50. // @Summary 删除导出模板
  51. // @Security ApiKeyAuth
  52. // @accept application/json
  53. // @Produce application/json
  54. // @Param data body system.SysExportTemplate true "删除导出模板"
  55. // @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}"
  56. // @Router /sysExportTemplate/deleteSysExportTemplate [delete]
  57. func (sysExportTemplateApi *SysExportTemplateApi) DeleteSysExportTemplate(c *gin.Context) {
  58. var sysExportTemplate system.SysExportTemplate
  59. err := c.ShouldBindJSON(&sysExportTemplate)
  60. if err != nil {
  61. response.FailWithMessage(err.Error(), c)
  62. return
  63. }
  64. if err := sysExportTemplateService.DeleteSysExportTemplate(sysExportTemplate); err != nil {
  65. global.GVA_LOG.Error("删除失败!", zap.Error(err))
  66. response.FailWithMessage("删除失败", c)
  67. } else {
  68. response.OkWithMessage("删除成功", c)
  69. }
  70. }
  71. // DeleteSysExportTemplateByIds 批量删除导出模板
  72. // @Tags SysExportTemplate
  73. // @Summary 批量删除导出模板
  74. // @Security ApiKeyAuth
  75. // @accept application/json
  76. // @Produce application/json
  77. // @Param data body request.IdsReq true "批量删除导出模板"
  78. // @Success 200 {string} string "{"success":true,"data":{},"msg":"批量删除成功"}"
  79. // @Router /sysExportTemplate/deleteSysExportTemplateByIds [delete]
  80. func (sysExportTemplateApi *SysExportTemplateApi) DeleteSysExportTemplateByIds(c *gin.Context) {
  81. var IDS request.IdsReq
  82. err := c.ShouldBindJSON(&IDS)
  83. if err != nil {
  84. response.FailWithMessage(err.Error(), c)
  85. return
  86. }
  87. if err := sysExportTemplateService.DeleteSysExportTemplateByIds(IDS); err != nil {
  88. global.GVA_LOG.Error("批量删除失败!", zap.Error(err))
  89. response.FailWithMessage("批量删除失败", c)
  90. } else {
  91. response.OkWithMessage("批量删除成功", c)
  92. }
  93. }
  94. // UpdateSysExportTemplate 更新导出模板
  95. // @Tags SysExportTemplate
  96. // @Summary 更新导出模板
  97. // @Security ApiKeyAuth
  98. // @accept application/json
  99. // @Produce application/json
  100. // @Param data body system.SysExportTemplate true "更新导出模板"
  101. // @Success 200 {string} string "{"success":true,"data":{},"msg":"更新成功"}"
  102. // @Router /sysExportTemplate/updateSysExportTemplate [put]
  103. func (sysExportTemplateApi *SysExportTemplateApi) UpdateSysExportTemplate(c *gin.Context) {
  104. var sysExportTemplate system.SysExportTemplate
  105. err := c.ShouldBindJSON(&sysExportTemplate)
  106. if err != nil {
  107. response.FailWithMessage(err.Error(), c)
  108. return
  109. }
  110. verify := utils.Rules{
  111. "Name": {utils.NotEmpty()},
  112. }
  113. if err := utils.Verify(sysExportTemplate, verify); err != nil {
  114. response.FailWithMessage(err.Error(), c)
  115. return
  116. }
  117. if err := sysExportTemplateService.UpdateSysExportTemplate(sysExportTemplate); err != nil {
  118. global.GVA_LOG.Error("更新失败!", zap.Error(err))
  119. response.FailWithMessage("更新失败", c)
  120. } else {
  121. response.OkWithMessage("更新成功", c)
  122. }
  123. }
  124. // FindSysExportTemplate 用id查询导出模板
  125. // @Tags SysExportTemplate
  126. // @Summary 用id查询导出模板
  127. // @Security ApiKeyAuth
  128. // @accept application/json
  129. // @Produce application/json
  130. // @Param data query system.SysExportTemplate true "用id查询导出模板"
  131. // @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}"
  132. // @Router /sysExportTemplate/findSysExportTemplate [get]
  133. func (sysExportTemplateApi *SysExportTemplateApi) FindSysExportTemplate(c *gin.Context) {
  134. var sysExportTemplate system.SysExportTemplate
  135. err := c.ShouldBindQuery(&sysExportTemplate)
  136. if err != nil {
  137. response.FailWithMessage(err.Error(), c)
  138. return
  139. }
  140. if resysExportTemplate, err := sysExportTemplateService.GetSysExportTemplate(sysExportTemplate.ID); err != nil {
  141. global.GVA_LOG.Error("查询失败!", zap.Error(err))
  142. response.FailWithMessage("查询失败", c)
  143. } else {
  144. response.OkWithData(gin.H{"resysExportTemplate": resysExportTemplate}, c)
  145. }
  146. }
  147. // GetSysExportTemplateList 分页获取导出模板列表
  148. // @Tags SysExportTemplate
  149. // @Summary 分页获取导出模板列表
  150. // @Security ApiKeyAuth
  151. // @accept application/json
  152. // @Produce application/json
  153. // @Param data query systemReq.SysExportTemplateSearch true "分页获取导出模板列表"
  154. // @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
  155. // @Router /sysExportTemplate/getSysExportTemplateList [get]
  156. func (sysExportTemplateApi *SysExportTemplateApi) GetSysExportTemplateList(c *gin.Context) {
  157. var pageInfo systemReq.SysExportTemplateSearch
  158. err := c.ShouldBindQuery(&pageInfo)
  159. if err != nil {
  160. response.FailWithMessage(err.Error(), c)
  161. return
  162. }
  163. if list, total, err := sysExportTemplateService.GetSysExportTemplateInfoList(pageInfo); err != nil {
  164. global.GVA_LOG.Error("获取失败!", zap.Error(err))
  165. response.FailWithMessage("获取失败", c)
  166. } else {
  167. response.OkWithDetailed(response.PageResult{
  168. List: list,
  169. Total: total,
  170. Page: pageInfo.Page,
  171. PageSize: pageInfo.PageSize,
  172. }, "获取成功", c)
  173. }
  174. }
  175. // ExportExcel 导出表格
  176. // @Tags SysExportTemplate
  177. // @Summary 导出表格
  178. // @Security ApiKeyAuth
  179. // @accept application/json
  180. // @Produce application/json
  181. // @Router /sysExportTemplate/exportExcel [get]
  182. func (sysExportTemplateApi *SysExportTemplateApi) ExportExcel(c *gin.Context) {
  183. templateID := c.Query("templateID")
  184. queryParams := c.Request.URL.Query()
  185. if templateID == "" {
  186. response.FailWithMessage("模板ID不能为空", c)
  187. return
  188. }
  189. if dept, name, err := sysExportTemplateService.ExportExcel(templateID, queryParams); err != nil {
  190. global.GVA_LOG.Error("获取失败!", zap.Error(err))
  191. response.FailWithMessage("获取失败", c)
  192. } else {
  193. c.Header("Content-Disposition", fmt.Sprintf("attachment; deptname=%s", name+utils.RandomString(6)+".xlsx")) // 对下载的文件重命名
  194. c.Header("success", "true")
  195. c.Data(http.StatusOK, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", dept.Bytes())
  196. }
  197. }
  198. // ExportExcel 导出表格模板
  199. // @Tags SysExportTemplate
  200. // @Summary 导出表格模板
  201. // @Security ApiKeyAuth
  202. // @accept application/json
  203. // @Produce application/json
  204. // @Router /sysExportTemplate/exportExcel [get]
  205. func (sysExportTemplateApi *SysExportTemplateApi) ExportTemplate(c *gin.Context) {
  206. templateID := c.Query("templateID")
  207. if templateID == "" {
  208. response.FailWithMessage("模板ID不能为空", c)
  209. return
  210. }
  211. if dept, name, err := sysExportTemplateService.ExportTemplate(templateID); err != nil {
  212. global.GVA_LOG.Error("获取失败!", zap.Error(err))
  213. response.FailWithMessage("获取失败", c)
  214. } else {
  215. c.Header("Content-Disposition", fmt.Sprintf("attachment; deptname=%s", name+"模板.xlsx")) // 对下载的文件重命名
  216. c.Header("success", "true")
  217. c.Data(http.StatusOK, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", dept.Bytes())
  218. }
  219. }
  220. // ExportExcel 导入表格
  221. // @Tags SysImportTemplate
  222. // @Summary 导入表格
  223. // @Security ApiKeyAuth
  224. // @accept application/json
  225. // @Produce application/json
  226. // @Router /sysExportTemplate/importExcel [post]
  227. func (sysExportTemplateApi *SysExportTemplateApi) ImportExcel(c *gin.Context) {
  228. templateID := c.Query("templateID")
  229. if templateID == "" {
  230. response.FailWithMessage("模板ID不能为空", c)
  231. return
  232. }
  233. dept, err := c.FormFile("dept")
  234. if err != nil {
  235. global.GVA_LOG.Error("文件获取失败!", zap.Error(err))
  236. response.FailWithMessage("文件获取失败", c)
  237. return
  238. }
  239. if err := sysExportTemplateService.ImportExcel(templateID, dept); err != nil {
  240. global.GVA_LOG.Error(err.Error(), zap.Error(err))
  241. response.FailWithMessage(err.Error(), c)
  242. } else {
  243. response.OkWithMessage("导入成功", c)
  244. }
  245. }