From 4c99ee7028c3fe58a2cd4b8273b22c75c45574fc Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 16 五月 2025 10:27:41 +0800
Subject: [PATCH] 修改文档bug

---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedbackServiceImpl.java |   93 ++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 88 insertions(+), 5 deletions(-)

diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedbackServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedbackServiceImpl.java
index 50a51d2..055d0c8 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedbackServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedbackServiceImpl.java
@@ -6,16 +6,32 @@
 import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper;
 import com.stylefeng.guns.modular.system.model.Feedback;
 import com.stylefeng.guns.modular.system.model.SensitiveWords;
+import com.stylefeng.guns.modular.system.model.TEmail;
+import com.stylefeng.guns.modular.system.model.UserInfo;
 import com.stylefeng.guns.modular.system.service.IFeedbackService;
 import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
 import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.service.TEmailService;
+import com.stylefeng.guns.modular.system.util.EmailUtil;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.util.itextpdf.HtmlToPdfUtils;
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Document;
+import org.jsoup.nodes.Element;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 @Service
@@ -29,6 +45,12 @@
 
     @Autowired
     private IUserInfoService userInfoService;
+
+    @Value("${spring.mail.template-path}")
+    private String templatePath;
+
+    @Autowired
+    private TEmailService emailService;
 
 
 
@@ -44,11 +66,12 @@
         if(ToolUtil.isNotEmpty(content)){
             if(content.length() > 200){
                 language = userInfoService.queryLanguage(uid, language);
-                return ResultUtil.error(language == 1 ? "反馈内容过长" : language == 2 ? "Feedback is too long" : "Les commentaires sont trop longs");
+                return ResultUtil.error(language == 1 ? "反馈内容过长" : language == 2 ? "Feedback-content is overlong." : "Le contenu de l’avis est trop long.");
             }
+            content = content.toLowerCase();
             List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
-            for(SensitiveWords s : sensitiveWords){
-                content = content.replaceAll(s.getContent(), "***");
+            for(SensitiveWords s : sensitiveWords) {
+                content = content.replaceAll(s.getContent().toLowerCase(), "***");
             }
         }
 
@@ -61,8 +84,68 @@
         feedback.setUserId(uid);
         this.insert(feedback);
 
-        systemNoticeService.addSystemNotice(1, language == 1 ? "您的反馈已提交成功,我们会尽快处理!" : language == 2 ? "Your feedback has been submitted successfully, we will deal with it as soon as possible"
-                : "Vos commentaires ont été soumis avec succès, nous les traiterons dès que possible", uid, 1);
+        UserInfo userInfo = userInfoService.selectById(uid);
+        if(ToolUtil.isNotEmpty(userInfo.getEmail())){
+            String path = templatePath +  "user/feedback.html";
+            Document document = Jsoup.parse(new File(path), "UTF-8");
+            if(1 == language){
+                document.getElementById("english").remove();
+                document.getElementById("french").remove();
+                document.getElementsByTag("title").get(0).text("意见反馈");
+                Element user_chinese = document.getElementById("user_chinese");
+                user_chinese.text("您好 " + userInfo.getNickName() + ",");
+            }
+            if(2 == language){
+                document.getElementById("chinese").remove();
+                document.getElementById("french").remove();
+                document.getElementsByTag("title").get(0).text("Feedback");
+                Element user_english = document.getElementById("user_english");
+                user_english.text("Hello " + userInfo.getNickName() + ",");
+            }
+            if(3 == language){
+                document.getElementById("chinese").remove();
+                document.getElementById("english").remove();
+                document.getElementsByTag("title").get(0).text("Avis");
+                Element user_french = document.getElementById("user_french");
+                user_french.text("Bonjour " + userInfo.getNickName() + ",");
+            }
+            EmailUtil.send(userInfo.getEmail(), language == 1 ? "反馈意见" : language == 2 ? "Feedback" : "Avis",  document.html());
+
+            //开始生成pdf收据和html收据
+            File file = new File("/home/igotechgh/nginx/html/files/html/");
+            if(!file.exists()){
+                file.mkdirs();
+            }
+            String randomString = ToolUtil.getRandomString(10);
+            file = new File("/home/igotechgh/nginx/html/files/html/feedback_" + randomString + ".html");
+            if(!file.exists()){
+                file.createNewFile();
+            }
+            FileWriter fileWriter = new FileWriter(file);
+            fileWriter.write(document.html());
+            fileWriter.flush();
+            fileWriter.close();
+
+            String link ="https://igo.i-go.group/files/html/feedback_" + randomString + ".html";
+            TEmail tEmail = new TEmail();
+            tEmail.setLink(link);
+            tEmail.setUserId(uid);
+            tEmail.setType(1);
+            tEmail.setName(language == 1 ? "反馈意见" : language == 2 ? "Feedback" : "Avis");
+            tEmail.setCreateTime(new Date());
+            int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+            tEmail.setWeek(EmailUtil.getWeek(language,i));
+            boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+            if(am){
+                tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin");
+            }else {
+                tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
+            }
+            emailService.insert(tEmail);
+        }
+
+        systemNoticeService.addSystemNotice(1, language == 1 ? "您的反馈已提交成功,我们会尽快处理!" : language == 2 ? "Your feedback was submitted successfully, we shall handle it as soon as possible."
+                : "Vos avis ont été soumis avec succès, nous les traiterons dans les plus brefs délais.", uid, 1);
         return ResultUtil.success();
     }
 }

--
Gitblit v1.7.1