diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/controller/ToDoController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/controller/ToDoController.java index f6c845c..a25a408 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/controller/ToDoController.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/controller/ToDoController.java @@ -10,7 +10,12 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.Objects; @Api(tags = "代办事项") @RestController @@ -38,4 +43,15 @@ public class ToDoController extends BaseController { return toDoService.getTaskType(bean); } + + /** + * 用户手册下载 + */ + @ApiOperation(value = "用户手册下载") + @PostMapping("/downLoadUserManual") + public void downLoadUserManual(){ + HttpServletResponse resp = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getResponse(); + toDoService.downLoadTemplate(resp); + } + } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/ToDoService.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/ToDoService.java index eb3e511..766ef74 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/ToDoService.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/ToDoService.java @@ -2,6 +2,8 @@ package com.bonus.material.basic.service; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.material.basic.domain.ToDoBean; + +import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -20,4 +22,8 @@ public interface ToDoService { */ AjaxResult getTaskType(ToDoBean bean); + /** + * 用户手册下载 + */ + void downLoadTemplate(HttpServletResponse resp); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/impl/ToDoServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/impl/ToDoServiceImpl.java index 29da51f..86c8e6b 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/impl/ToDoServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/basic/service/impl/ToDoServiceImpl.java @@ -9,6 +9,11 @@ import com.bonus.system.api.RemoteUserService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -41,4 +46,35 @@ public class ToDoServiceImpl implements ToDoService { return AjaxResult.success(list); } + @Override + public void downLoadTemplate(HttpServletResponse response) { + // 模板名称 + String templateName = "机械化施工装备管理(共享)平台操作手册V1.0.pdf"; + try ( + InputStream input = this.getClass().getClassLoader().getResourceAsStream("template/机械化施工装备管理(共享)平台操作手册V1.0.pdf"); + OutputStream out = response.getOutputStream() + ) { + if (input == null) { + throw new FileNotFoundException("文件不存在: " + templateName); + } + // 设置响应头 + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + response.setHeader( + "Content-Disposition", + "attachment;filename=" + new String(templateName.getBytes("UTF-8"), "ISO-8859-1") + ); + response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); + // 缓冲区传输 + byte[] buffer = new byte[1024]; + int bytesToRead; + while ((bytesToRead = input.read(buffer)) != -1) { + out.write(buffer, 0, bytesToRead); + } + out.flush(); + } catch (IOException e) { + log.error("下载失败: {}", e.getMessage(), e); + } + } + } diff --git a/bonus-modules/bonus-material-mall/src/main/resources/template/机械化施工装备管理(共享)平台操作手册V1.0.pdf b/bonus-modules/bonus-material-mall/src/main/resources/template/机械化施工装备管理(共享)平台操作手册V1.0.pdf new file mode 100644 index 0000000..801651b Binary files /dev/null and b/bonus-modules/bonus-material-mall/src/main/resources/template/机械化施工装备管理(共享)平台操作手册V1.0.pdf differ