Pu Zhibing
2025-05-16 4c99ee7028c3fe58a2cd4b8273b22c75c45574fc
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReportLossServiceImpl.java
@@ -10,10 +10,13 @@
import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
import com.stylefeng.guns.modular.system.dao.ReportLossMapper;
import com.stylefeng.guns.modular.system.model.ReportLoss;
import com.stylefeng.guns.modular.system.model.TEmail;
import com.stylefeng.guns.modular.system.model.UserInfo;
import com.stylefeng.guns.modular.system.service.IReportLossService;
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.itextpdf.HtmlToPdfUtils;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
import org.jsoup.Jsoup;
@@ -24,6 +27,9 @@
import org.springframework.stereotype.Service;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.util.Date;
@Service
@@ -47,10 +53,13 @@
    @Value("${spring.mail.template-path}")
    private String templatePath;
    @Autowired
    private TEmailService emailService;
    @Override
    public void addReportLoss(Integer orderType, Integer orderId, String remark, String image) throws Exception {
    public void addReportLoss(Integer orderType, Integer orderId, String remark, String image, Integer language) throws Exception {
        ReportLoss reportLoss = new ReportLoss();
        reportLoss.setImage(image);
        reportLoss.setInsertTime(new Date());
@@ -92,11 +101,60 @@
                    if(ToolUtil.isNotEmpty(userInfo.getEmail())){
                        String path = templatePath + "user/reportLoss.html";
                        Document document = Jsoup.parse(new File(path), "UTF-8");
                        document.getElementById("chinese").attr("style", "display: none;");
                        document.getElementById("french").attr("style", "display: none;");
                        Element english_user = document.getElementById("english_user");
                        english_user.text("Hello " + userInfo.getNickName() + ",");
                        EmailUtil.send(userInfo.getEmail(), "Report loss of goods",  document.html());
                        if(language == 1){
                            document.getElementById("english").remove();
                            document.getElementById("french").remove();
                            document.getElementsByTag("title").get(0).text("报失物品");
                            Element chinese_user = document.getElementById("chinese_user");
                            chinese_user.text("您好 " + userInfo.getNickName() + ",");
                        }
                        if(language == 2){
                            document.getElementById("chinese").remove();
                            document.getElementById("french").remove();
                            document.getElementsByTag("title").get(0).text("Report items lost");
                            Element english_user = document.getElementById("english_user");
                            english_user.text("Hello " + userInfo.getNickName() + ",");
                        }
                        if(language == 3){
                            document.getElementById("chinese").remove();
                            document.getElementById("english").remove();
                            document.getElementsByTag("title").get(0).text("Signaler l'objet perdu");
                            Element french_user = document.getElementById("french_user");
                            french_user.text("Bonjour! " + userInfo.getNickName() + ",");
                        }
                        EmailUtil.send(userInfo.getEmail(), language == 1 ? "物品报失" : language == 2 ? "Report items lost" : "Signaler l'objet perdu",  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/reportLoss_" + 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/reportLoss_" + randomString + ".html";
                        TEmail tEmail = new TEmail();
                        tEmail.setLink(link);
                        tEmail.setUserId(userInfo.getId());
                        tEmail.setType(1);
                        tEmail.setName(language == 1 ? "物品报失" : language == 2 ? "Report items lost" : "Signaler l'objet perdu");
                        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);
                    }
                }catch (Exception e){
                    e.printStackTrace();