From 02ed694178dddda58117553733cef9e8f73dbf0e Mon Sep 17 00:00:00 2001 From: YXY <932687738@qq.com> Date: Tue, 23 May 2023 20:49:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E5=86=8C=E5=8D=A1=E7=89=87=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E5=A4=84=E7=90=86=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/photo/title.png | Bin 0 -> 88756 bytes .../resources/template/COURSE_FEEDBACK.ftl | 48 ++++++++------ .../java/com/ruoyi/common/utils/PdfUtils.java | 18 ++++-- .../flyingbook/LarkHelper/LarkFileHelper.java | 61 ++++++++++++++++++ .../flyingbook/controller/EdiController.java | 12 ++-- .../controller/EventControllers.java | 46 ------------- .../controller/RobotController.java | 40 ++++++++++++ .../domain/lark/LarkFileRequest.java | 31 +++++++++ .../framework/config/SecurityConfig.java | 2 +- 9 files changed, 180 insertions(+), 78 deletions(-) create mode 100644 ruoyi-admin/src/main/resources/photo/title.png create mode 100644 ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/LarkHelper/LarkFileHelper.java delete mode 100644 ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/EventControllers.java create mode 100644 ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/RobotController.java create mode 100644 ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/lark/LarkFileRequest.java diff --git a/ruoyi-admin/src/main/resources/photo/title.png b/ruoyi-admin/src/main/resources/photo/title.png new file mode 100644 index 0000000000000000000000000000000000000000..8ef336163bb02346a44ecc499fdbd1fbbe0081fb GIT binary patch literal 88756 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 + +表头

课程反馈表

+ 日期:    月    日 - + - + - + - + - + - + - + - + - +
专业 Program 专业 Program ${program!}学生姓名 Name 学生姓名 Name ${studentName!}
上课时间 上课时间 ${startClassTime!}授课老师 Tutor 授课老师 Tutor ${tutor!}
下课时间 下课时间 ${endClassTime!}
作业完成情况
- Feedback
 作业完成情况
+  Feedback
评分 ${feedbackScore}
${feedback!}
课堂表现
- Performance
 课堂表现
+  Performance
评分 ${performanceScore}
${performance!}
课堂内容
- Content
 课堂内容
+  Content
${content!}
课后作业
- Work
 课后作业
+  Work
${work!}
- 学生签字:
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PdfUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PdfUtils.java index 5145804..c7c5e91 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PdfUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PdfUtils.java @@ -1,10 +1,7 @@ package com.ruoyi.common.utils; -import cn.hutool.core.io.resource.ClassPathResource; -import cn.hutool.core.io.resource.Resource; import com.itextpdf.text.BaseColor; import com.itextpdf.text.DocumentException; -import com.itextpdf.text.Element; import com.itextpdf.text.Image; import com.itextpdf.text.pdf.*; import freemarker.template.Configuration; @@ -14,7 +11,10 @@ import org.springframework.stereotype.Component; import org.springframework.util.ResourceUtils; import org.xhtmlrenderer.pdf.ITextRenderer; -import java.io.*; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.StringWriter; import java.util.Locale; /** @@ -26,7 +26,7 @@ import java.util.Locale; public class PdfUtils { private final static String TEMPLATE_BASE_PATH = "/template/";//存放文件模板的地址 - private final static String IMG_BASE_PATH = "/photo/";//存放图片文件的地址(logo图片、机构公章等) + private final static String IMG_BASE_PATH = "photo/";//存放图片文件的地址(logo图片、机构公章等) private final static String DEFAULT_FONT = "font/simsun.ttc";//默认字体资源文件([宋体][simsun.ttc]) private final static String ENCODING = "UTF-8";//指定编码 @@ -44,6 +44,7 @@ public class PdfUtils { private String getPath(String fileName){ return System.getProperty("user.dir") + "/" + fileName; } + private FileOutputStream getOutputStream(String fileName) throws IOException { String path = getPath(fileName); @@ -82,6 +83,9 @@ public class PdfUtils { String html = writer.toString(); // 把html代码传入渲染器中 renderer.setDocumentFromString(html); + String imgUrl = "file:"+templatePath + IMG_BASE_PATH; + renderer.getSharedContext().setBaseURL(imgUrl); +// renderer.getSharedContext().setBaseURL("file:/D:/study/workspace/RuoYi-flowable/ruoyi-admin/target/classes/photo/"); renderer.layout(); renderer.createPDF(fileOutputStream, false); renderer.finishPDF(); @@ -132,8 +136,8 @@ public class PdfUtils { if (picFilePath != null || !"".contentEquals(picFilePath)) { // 设置图片水印 Image image = Image.getInstance(picFilePath); - image.setAbsolutePosition(100f, 250f); - image.scaleAbsolute(500, 500); // 自定义大小 + image.setAbsolutePosition(0f, -70f); + image.scaleAbsolute(650, 900); // 自定义大小 watermark.setGState(gs); // 设置透明度 watermark.addImage(image); // 添加水印图片 } diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/LarkHelper/LarkFileHelper.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/LarkHelper/LarkFileHelper.java new file mode 100644 index 0000000..7ae2e4a --- /dev/null +++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/LarkHelper/LarkFileHelper.java @@ -0,0 +1,61 @@ +package com.ruoyi.flyingbook.LarkHelper; + +import com.lark.oapi.service.drive.v1.enums.ParentTypeEnum; +import com.lark.oapi.service.drive.v1.model.UploadAllFileReq; +import com.lark.oapi.service.drive.v1.model.UploadAllFileReqBody; +import com.lark.oapi.service.drive.v1.model.UploadAllFileResp; +import com.lark.oapi.service.drive.v1.model.UploadAllFileRespBody; +import com.ruoyi.flyingbook.domain.lark.LarkFileRequest; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.io.File; + +/** + * @author yuxiangyong + * @create 2023-03-12 18:10 + */ +@Slf4j +@Component +public class LarkFileHelper extends LarkHelper { + + public static void main(String[] args) throws Exception { + LarkFileHelper fileHelper = new LarkFileHelper(); + LarkFileRequest fileRequest = new LarkFileRequest(appId, secret, new File(""), "text.pdf", 1024,"adwd"); + UploadAllFileRespBody resp = fileHelper.uploadFile(fileRequest); + int i = 0; + } + + + /** + * 上传附件 + * @return + */ + public UploadAllFileRespBody uploadFile(LarkFileRequest request) { + try { + UploadAllFileResp uploadAllFileResp = buildClient(request) + .drive() + .file() + .uploadAll( + UploadAllFileReq.newBuilder() + .uploadAllFileReqBody( + UploadAllFileReqBody.newBuilder() + .file(request.getFile()) + .fileName(request.getFileName()) + .parentNode(request.getParentNode()) + .parentType(ParentTypeEnum.EXPLORER.getValue()) + .size(request.getFileSize()) + .build() + ) + .build() + ); + if (uploadAllFileResp.getCode() == 0){ + return uploadAllFileResp.getData(); + }else { + throw new RuntimeException(uploadAllFileResp.getMsg()); + } + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); + } + } +} diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/EdiController.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/EdiController.java index cea97c5..5327d35 100644 --- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/EdiController.java +++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/EdiController.java @@ -13,6 +13,8 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; @Slf4j @@ -27,12 +29,12 @@ public class EdiController extends BaseController { /** * 同步数据到飞书表格 */ -// @PostMapping("/sync2Table") -// public EdiResponseVo sync2Table(@RequestBody SyncToTableRequest request) { -// return ediOperateService.sync2Table(request); -// } + @PostMapping("/sync2Table") + public EdiResponseVo sync2Table(@RequestBody SyncToTableRequest request) { + return ediOperateService.sync2Table(request); + } - @RequestMapping("sync2Table") + @RequestMapping("/createPdf") public void exportPdfDemo(@RequestParam("param")String param) throws Exception{ CourseFeedbackTemplateDto resultDTO = new CourseFeedbackTemplateDto(); resultDTO.setProgram("program"); diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/EventControllers.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/EventControllers.java deleted file mode 100644 index 78dd410..0000000 --- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/EventControllers.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.ruoyi.flyingbook.controller; -import com.lark.oapi.service.drive.v1.DriveService; -import com.lark.oapi.service.drive.v1.model.P2FileBitableFieldChangedV1; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RestController; -import com.lark.oapi.core.utils.Jsons; -import com.lark.oapi.event.EventDispatcher; -import com.lark.oapi.sdk.servlet.ext.ServletAdapter; -import org.springframework.beans.factory.annotation.Autowired; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -@Slf4j -@RestController -public class EventControllers { - - - //1. 注册消息处理器 - private final EventDispatcher EVENT_DISPATCHER = EventDispatcher.newBuilder("xJJE7c2rlHzDCk2uPZk77fQNJFtXgTW3", - "ND2ANZB8F7NplUqcrmKD530lDRFssNWJ") - .onP2FileBitableFieldChangedV1(new DriveService.P2FileBitableFieldChangedV1Handler(){ - @Override - public void handle(P2FileBitableFieldChangedV1 p2FileBitableFieldChangedV1) throws Exception { - System.out.println(Jsons.DEFAULT.toJson(p2FileBitableFieldChangedV1)); - System.out.println(p2FileBitableFieldChangedV1.getRequestId()); - } - }) - .build(); - - //2. 注入 ServletAdapter 实例 - @Autowired - private ServletAdapter servletAdapter; - - - //3. 创建路由处理器 - @PostMapping("/approval2") - public void event(HttpServletRequest request, HttpServletResponse response) - throws Throwable { - //3.1 回调扩展包提供的事件回调处理器 - servletAdapter.handleEvent(request, response, EVENT_DISPATCHER); - } - - - -} diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/RobotController.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/RobotController.java new file mode 100644 index 0000000..88821f3 --- /dev/null +++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/controller/RobotController.java @@ -0,0 +1,40 @@ +package com.ruoyi.flyingbook.controller; + +import com.alibaba.fastjson.JSONObject; +import com.lark.oapi.card.CardActionHandler; +import com.lark.oapi.card.model.CardAction; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.lark.oapi.core.utils.Jsons; +import com.lark.oapi.sdk.servlet.ext.ServletAdapter; +import org.springframework.beans.factory.annotation.Autowired; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@Slf4j +@RestController +public class RobotController { + + + //1. 注册卡片处理器 + private final CardActionHandler CARD_ACTION_HANDLER = CardActionHandler.newBuilder("xJJE7c2rlHzDCk2uPZk77fQNJFtXgTW3", "ND2ANZB8F7NplUqcrmKD530lDRFssNWJ", + new CardActionHandler.ICardHandler() { + @Override + public Object handle(CardAction cardAction) { + System.out.println(JSONObject.toJSONString(cardAction)); + return cardAction.getChallenge(); + } + }).build(); + @Autowired + private ServletAdapter servletAdapter; + + //3. 注册服务路由 + @RequestMapping("/robot/callback") + public void card(HttpServletRequest request, HttpServletResponse response) + throws Throwable { + //3.1 回调扩展包卡片行为处理回调 + servletAdapter.handleCardAction(request, response, CARD_ACTION_HANDLER); + } +} diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/lark/LarkFileRequest.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/lark/LarkFileRequest.java new file mode 100644 index 0000000..fd5115b --- /dev/null +++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/lark/LarkFileRequest.java @@ -0,0 +1,31 @@ +package com.ruoyi.flyingbook.domain.lark; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.File; +import java.util.Date; +import java.util.List; + +/** + * @author yuxiangyong + * @create 2023-03-18 1:05 + */ +@Data +@NoArgsConstructor +public class LarkFileRequest extends LarkRequest{ + + + private File file; + private String fileName; + private Integer fileSize; + private String parentNode; + + public LarkFileRequest(String appId, String appSecret, File file, String fileName, Integer fileSize, String parentNode) { + super(appId, appSecret); + this.file = file; + this.fileName = fileName; + this.fileSize = fileSize; + this.parentNode = parentNode; + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index fc1fd28..fbf8436 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -97,7 +97,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter // 过滤请求 .authorizeRequests() // 对于登录login 验证码captchaImage 允许匿名访问 - .antMatchers("/login", "/captchaImage", "/approval","/syncEmail","/scheduledReminders", "/approval2", "/sync2Table").anonymous() + .antMatchers("/login", "/captchaImage", "/approval","/syncEmail","/scheduledReminders", "/approval2", "/sync2Table", "/createPdf").anonymous() .antMatchers( HttpMethod.GET, "/*.html",