From efd4e4fadb4f711a8b0573edc808d6f0045f366c Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期日, 08 十月 2023 17:03:15 +0800
Subject: [PATCH] 更新接口

---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 1315 ++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 898 insertions(+), 417 deletions(-)

diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
index a9a29c9..368a89d 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -20,6 +20,7 @@
 import com.stylefeng.guns.modular.system.util.GoogleMap.AddressComponentsVo;
 import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
 import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
+import com.stylefeng.guns.modular.system.util.itextpdf.HtmlToPdfUtils;
 import com.stylefeng.guns.modular.system.warpper.*;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import org.apache.shiro.authc.SimpleAuthenticationInfo;
@@ -37,6 +38,9 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -143,6 +147,13 @@
 
     private String salt = "SA;d5#";
 
+    @Autowired
+    private SMSUtil smsUtil;
+
+
+    @Autowired
+    private TEmailService emailService;
+
 
     @Override
     public Integer getAppOpenInfo(Integer type) {
@@ -162,17 +173,43 @@
      */
     @Override
     public ResultUtil queryCaptcha(String phone, Integer type, Integer language) throws Exception {
+        if(type == 3){
+            Driver driver1 = driverMapper.queryByPhone(phone);
+            if(null != driver1){
+                if(driver1.getAuthState() == 1){
+                    return ResultUtil.error(language == 1 ? "该司机正在审核中" : language == 2 ? "The driver is currently under review" : "The driver is currently under review");
+                }
+                if(driver1.getAuthState() == 2){
+                    return ResultUtil.error(language == 1 ? "该司机已存在" : language == 2 ? "The driver already exists" : "Les Driver already exists");
+                }
+                if(driver1.getAuthState() == 3){
+                    return ResultUtil.error(language == 1 ? "该司机账号已被冻结" : language == 2 ? "The driver's account has been frozen" : "Le compte du conducteur a été froid");
+                }
+            }
+        }
+
         Random random = new Random();
         StringBuffer sb = new StringBuffer();
         for(int i = 0; i < 4; i++){
             sb.append((int) (random.nextDouble() * 10));
         }
         String authCode = sb.toString();
-        String sms = "短信验证码【" + authCode + "】已发到您的手机,验证码将在5分钟后失效.";
+        String sms = "";
 
         //发送验证码短信
         redisUtil.setStrValue(phone, authCode, 5 * 60);//设置五分钟过期
-        SMSUtil.send_huawei_sms("b793ae3d41a049059197bfe92cf8bc83", "+" + phone, "[\"" + authCode + "\"]");
+        switch (language){
+            case 1:
+                sms = "您的验证码为:" + authCode + ",该验证码5分钟内有效,请勿泄漏于他人!";
+                break;
+            case 2:
+                sms = "Your verification code is: " + authCode + ", the verification code is valid within 5 minutes, do not leak to others!";
+                break;
+            case 3:
+                sms = "Votre code de vérification est: " + authCode + ". Ce code est valide pendant 5 minutes. Ne le divulguez pas aux autres!";
+                break;
+        }
+        smsUtil.sendCellulantMessage(phone, sms);
         System.out.println(sms);
         return ResultUtil.success();
     }
@@ -190,20 +227,20 @@
         //发送验证码短信
         redisUtil.setStrValue(email, authCode, 5 * 60);//设置五分钟过期
 
-        String path = templatePath + "index.html";
+        String path = templatePath + "driver/index.html";
         Document document = Jsoup.parse(new File(path), "UTF-8");
         if(1 == language){
-            document.getElementById("english").attr("style", "display: none;");
-            document.getElementById("french").attr("style", "display: none;");
-            document.getElementById("invite").attr("style", "display: none;");
-            document.getElementById("user").attr("style", "display: none;");
-            document.getElementById("settle").attr("style", "display: none;");
-            document.getElementById("pass").attr("style", "display: none;");
-            document.getElementById("bill").attr("style", "display: none;");
-            document.getElementById("reward").attr("style", "display: none;");
-            document.getElementById("rewardToday").attr("style", "display: none;");
-            document.getElementById("driverAudit").attr("style", "display: none;");
-            document.getElementById("carAudit").attr("style", "display: none;");
+            document.getElementById("english").remove();
+            document.getElementById("french").remove();
+            document.getElementById("invite").remove();
+            document.getElementById("user").remove();
+            document.getElementById("settle").remove();
+            document.getElementById("pass").remove();
+            document.getElementById("bill").remove();
+            document.getElementById("reward").remove();
+            document.getElementById("rewardToday").remove();
+            document.getElementById("driverAudit").remove();
+            document.getElementById("carAudit").remove();
 
             Element email_user = document.getElementById("email_user");
             email_user.text("您好 ,");
@@ -211,17 +248,17 @@
             email_content.text("邮件验证码是:" + authCode + ",请在5分钟内完成验证");
         }
         if(2 == language){
-            document.getElementById("chinese").attr("style", "display: none;");
-            document.getElementById("french").attr("style", "display: none;");
-            document.getElementById("invite1").attr("style", "display: none;");
-            document.getElementById("user1").attr("style", "display: none;");
-            document.getElementById("settle1").attr("style", "display: none;");
-            document.getElementById("pass1").attr("style", "display: none;");
-            document.getElementById("bill1").attr("style", "display: none;");
-            document.getElementById("reward1").attr("style", "display: none;");
-            document.getElementById("rewardToday1").attr("style", "display: none;");
-            document.getElementById("driverAudit1").attr("style", "display: none;");
-            document.getElementById("carAudit1").attr("style", "display: none;");
+            document.getElementById("chinese").remove();
+            document.getElementById("french").remove();
+            document.getElementById("invite1").remove();
+            document.getElementById("user1").remove();
+            document.getElementById("settle1").remove();
+            document.getElementById("pass1").remove();
+            document.getElementById("bill1").remove();
+            document.getElementById("reward1").remove();
+            document.getElementById("rewardToday1").remove();
+            document.getElementById("driverAudit1").remove();
+            document.getElementById("carAudit1").remove();
 
             Element email1_user = document.getElementById("email1_user");
             email1_user.text("Hello ,");
@@ -229,17 +266,17 @@
             email1_content.text("verification code is " + authCode + ", please complete the verification within 5 minutes. If the request wasn't made by you, please ignore this email.");
         }
         if(3 == language){
-            document.getElementById("chinese").attr("style", "display: none;");
-            document.getElementById("english").attr("style", "display: none;");
-            document.getElementById("invite2").attr("style", "display: none;");
-            document.getElementById("user2").attr("style", "display: none;");
-            document.getElementById("settle2").attr("style", "display: none;");
-            document.getElementById("pass2").attr("style", "display: none;");
-            document.getElementById("bill2").attr("style", "display: none;");
-            document.getElementById("reward2").attr("style", "display: none;");
-            document.getElementById("rewardToday2").attr("style", "display: none;");
-            document.getElementById("driverAudit2").attr("style", "display: none;");
-            document.getElementById("carAudit2").attr("style", "display: none;");
+            document.getElementById("chinese").remove();
+            document.getElementById("english").remove();
+            document.getElementById("invite2").remove();
+            document.getElementById("user2").remove();
+            document.getElementById("settle2").remove();
+            document.getElementById("pass2").remove();
+            document.getElementById("bill2").remove();
+            document.getElementById("reward2").remove();
+            document.getElementById("rewardToday2").remove();
+            document.getElementById("driverAudit2").remove();
+            document.getElementById("carAudit2").remove();
 
             Element email2_user = document.getElementById("email2_user");
             email2_user.text("Hello ,");
@@ -258,8 +295,8 @@
      * @throws Exception
      */
     @Override
-    public boolean checkCaptcha(String phone, String code) throws Exception {
-        Object value = redisUtil.getValue(phone);
+    public boolean checkCaptcha(String email, String phone, String code) throws Exception {
+        Object value = redisUtil.getValue(ToolUtil.isNotEmpty(email) ? email : phone);
         if("1246".equals(code)){
             return true;
         }
@@ -296,20 +333,20 @@
                 driverMapper.updateById(driver);
 
                 if(ToolUtil.isNotEmpty(driver.getEmail())){
-                    String path = templatePath + "index.html";
+                    String path = templatePath + "driver/index.html";
                     Document document = Jsoup.parse(new File(path), "UTF-8");
                     if(1 == language){
-                        document.getElementById("english").attr("style", "display: none;");
-                        document.getElementById("french").attr("style", "display: none;");
-                        document.getElementById("user").attr("style", "display: none;");
-                        document.getElementById("settle").attr("style", "display: none;");
-                        document.getElementById("pass").attr("style", "display: none;");
-                        document.getElementById("email").attr("style", "display: none;");
-                        document.getElementById("bill").attr("style", "display: none;");
-                        document.getElementById("reward").attr("style", "display: none;");
-                        document.getElementById("rewardToday").attr("style", "display: none;");
-                        document.getElementById("driverAudit").attr("style", "display: none;");
-                        document.getElementById("carAudit").attr("style", "display: none;");
+                        document.getElementById("english").remove();
+                        document.getElementById("french").remove();
+                        document.getElementById("user").remove();
+                        document.getElementById("settle").remove();
+                        document.getElementById("pass").remove();
+                        document.getElementById("email").remove();
+                        document.getElementById("bill").remove();
+                        document.getElementById("reward").remove();
+                        document.getElementById("rewardToday").remove();
+                        document.getElementById("driverAudit").remove();
+                        document.getElementById("carAudit").remove();
 
                         Element invite_user = document.getElementById("invite_user");
                         invite_user.text("您好 " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -317,17 +354,17 @@
                         invite_content.text("您已成功邀请一位司机注册I-GO,获得奖励GHS " + bigDecimal.doubleValue() + ",请查收");
                     }
                     if(2 == language){
-                        document.getElementById("chinese").attr("style", "display: none;");
-                        document.getElementById("french").attr("style", "display: none;");
-                        document.getElementById("user1").attr("style", "display: none;");
-                        document.getElementById("settle1").attr("style", "display: none;");
-                        document.getElementById("pass1").attr("style", "display: none;");
-                        document.getElementById("email1").attr("style", "display: none;");
-                        document.getElementById("bill1").attr("style", "display: none;");
-                        document.getElementById("reward1").attr("style", "display: none;");
-                        document.getElementById("rewardToday1").attr("style", "display: none;");
-                        document.getElementById("driverAudit1").attr("style", "display: none;");
-                        document.getElementById("carAudit1").attr("style", "display: none;");
+                        document.getElementById("chinese").remove();
+                        document.getElementById("french").remove();
+                        document.getElementById("user1").remove();
+                        document.getElementById("settle1").remove();
+                        document.getElementById("pass1").remove();
+                        document.getElementById("email1").remove();
+                        document.getElementById("bill1").remove();
+                        document.getElementById("reward1").remove();
+                        document.getElementById("rewardToday1").remove();
+                        document.getElementById("driverAudit1").remove();
+                        document.getElementById("carAudit1").remove();
 
                         Element invite1_user = document.getElementById("invite1_user");
                         invite1_user.text("Hello " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -335,17 +372,17 @@
                         invite1_content.text("You have succeeded to invite a driver to register with I-GO, so you received a GHS " + bigDecimal.doubleValue() + " bonus, please check your balance.");
                     }
                     if(3 == language){
-                        document.getElementById("chinese").attr("style", "display: none;");
-                        document.getElementById("english").attr("style", "display: none;");
-                        document.getElementById("user2").attr("style", "display: none;");
-                        document.getElementById("settle2").attr("style", "display: none;");
-                        document.getElementById("pass2").attr("style", "display: none;");
-                        document.getElementById("email2").attr("style", "display: none;");
-                        document.getElementById("bill2").attr("style", "display: none;");
-                        document.getElementById("reward2").attr("style", "display: none;");
-                        document.getElementById("rewardToday2").attr("style", "display: none;");
-                        document.getElementById("driverAudit2").attr("style", "display: none;");
-                        document.getElementById("carAudit2").attr("style", "display: none;");
+                        document.getElementById("chinese").remove();
+                        document.getElementById("english").remove();
+                        document.getElementById("user2").remove();
+                        document.getElementById("settle2").remove();
+                        document.getElementById("pass2").remove();
+                        document.getElementById("email2").remove();
+                        document.getElementById("bill2").remove();
+                        document.getElementById("reward2").remove();
+                        document.getElementById("rewardToday2").remove();
+                        document.getElementById("driverAudit2").remove();
+                        document.getElementById("carAudit2").remove();
 
                         Element invite2_user = document.getElementById("invite2_user");
                         invite2_user.text("Bonjour " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -353,6 +390,49 @@
                         invite2_content.text("Vous avez invité avec succès un conducteur à s’inscrire à i-go pour recevoir une récompense GHS " + bigDecimal.doubleValue() + ". Veuillez vérifier");
                     }
                     EmailUtil.send(driver.getEmail(), language == 1 ? "邀请奖励" : language == 2 ? "invitation bonus" : "prime d'invitation",  document.html());
+                    String randomString = ToolUtil.getRandomString(10);
+                    //开始生成pdf收据和html收据
+                    File file = new File("/usr/local/nginx/html/files/html/");
+                    if(!file.exists()){
+                        file.mkdirs();
+                    }
+                    file = new File("/usr/local/nginx/html/files/html/invitation_" + randomString + ".html");
+                    if(!file.exists()){
+                        file.createNewFile();
+                    }
+                    FileWriter fileWriter = new FileWriter(file);
+                    fileWriter.write(document.html());
+                    fileWriter.flush();
+                    fileWriter.close();
+                    FileInputStream fileInputStream = new FileInputStream(file);
+                    File file1 = new File("/usr/local/nginx/html/files/pdf/");
+                    if(!file1.exists()){
+                        file1.mkdirs();
+                    }
+                    file1 = new File("/usr/local/nginx/html/files/pdf/invitation_" + randomString + ".pdf");
+                    if(!file1.exists()){
+                        file1.createNewFile();
+                    }
+                    FileOutputStream fileOutputStream = new FileOutputStream(file1);
+                    HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
+
+                    String link ="http://182.160.16.251:81/files/html/invitation_" + randomString + ".html";
+                    TEmail tEmail = new TEmail();
+                    tEmail.setLink(link);
+                    tEmail.setUserId(driver.getId());
+                    tEmail.setType(2);
+                    tEmail.setName(language == 1 ? "邀请奖励" : language == 2 ? "invitation bonus" : "prime d'invitation");
+                    tEmail.setCreateTime(new Date());
+                    int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+                    String week = EmailUtil.getWeek(language, i);
+                    tEmail.setWeek(week);
+                    boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+                    if(am){
+                        tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée");
+                    }else {
+                        tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi");
+                    }
+                    emailService.insert(tEmail);
                 }
 
             }
@@ -399,7 +479,7 @@
      */
     @Override
     public ResultUtil<LoginWarpper> registeredDriver(String phoneOperator, String phone, String code, String password,Integer uid,Integer uType, Integer language) throws Exception {
-        boolean b = this.checkCaptcha(phone, code);
+        boolean b = this.checkCaptcha("", phone, code);
         if(!b){
             return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
         }
@@ -412,7 +492,6 @@
             loginWarpper.setId(driver1.getId());
             return ResultUtil.success(loginWarpper);
         }
-
 
         driver1 = driverMapper.queryByPhone(phone);
         if(null != driver1){
@@ -476,7 +555,7 @@
         String[] city = new String[]{city1.getEnglishName()};
         Company query = companyCityService.query(city);
         if(null == query){
-            return ResultUtil.error(language == 1 ? "车牌号已经使用" : language == 2 ? "" : "选择从业地暂未开通业务");
+            return ResultUtil.error(language == 1 ? "选择从业地暂未开通业务" : language == 2 ? "The selected place of employment has not yet opened business" : "Choisir un lieu de pratique pas encore ouvert");
         }
         if(null != query){
             switch (query.getType()){
@@ -502,13 +581,14 @@
         driver.setPlaceOfPractice(language == 1 ? city1.getChineseName() : language == 2 ? city1.getEnglishName() : city1.getFrenchName());
 
         Calendar calendar = Calendar.getInstance();
-        calendar.setTime(registeredWarpper.getGetDriverLicenseDate());
+//        calendar.setTime(registeredWarpper.getGetDriverLicenseDate());
         Calendar now = Calendar.getInstance();
         now.setTime(new Date());
         driver.setDriverAge(now.get(Calendar.YEAR) - calendar.get(Calendar.YEAR));
-        driver.setGetDriverLicenseDate(registeredWarpper.getGetDriverLicenseDate());
+//        driver.setGetDriverLicenseDate(registeredWarpper.getGetDriverLicenseDate());
         driver.setDriveCardImgUrl1(registeredWarpper.getDriveCardImgUrl());
         driver.setDriveCardImgUrl2(registeredWarpper.getDriveCardImgUrl2());
+        driver.setDriveCard(registeredWarpper.getDriveCard());
         driver.setEmail(registeredWarpper.getEmail());
 
         this.updateById(driver);
@@ -534,57 +614,100 @@
         }
 
         if(ToolUtil.isNotEmpty(driver.getEmail())){
-            String path1 = templatePath + "index.html";
+            String path1 = templatePath + "driver/index.html";
             Document document1 = Jsoup.parse(new File(path1), "UTF-8");
             if(1 == language){
-                document1.getElementById("english").attr("style", "display: none;");
-                document1.getElementById("french").attr("style", "display: none;");
-                document1.getElementById("invite").attr("style", "display: none;");
-                document1.getElementById("user").attr("style", "display: none;");
-                document1.getElementById("pass").attr("style", "display: none;");
-                document1.getElementById("email").attr("style", "display: none;");
-                document1.getElementById("bill").attr("style", "display: none;");
-                document1.getElementById("reward").attr("style", "display: none;");
-                document1.getElementById("rewardToday").attr("style", "display: none;");
-                document1.getElementById("driverAudit").attr("style", "display: none;");
-                document1.getElementById("carAudit").attr("style", "display: none;");
+                document1.getElementById("english").remove();
+                document1.getElementById("french").remove();
+                document1.getElementById("invite").remove();
+                document1.getElementById("user").remove();
+                document1.getElementById("pass").remove();
+                document1.getElementById("email").remove();
+                document1.getElementById("bill").remove();
+                document1.getElementById("reward").remove();
+                document1.getElementById("rewardToday").remove();
+                document1.getElementById("driverAudit").remove();
+                document1.getElementById("carAudit").remove();
 
                 Element settle_user = document1.getElementById("settle_user");
                 settle_user.text("您好 " + driver.getFirstName() + "" + driver.getLastName() + ",");
             }
             if(2 == language){
-                document1.getElementById("chinese").attr("style", "display: none;");
-                document1.getElementById("french").attr("style", "display: none;");
-                document1.getElementById("invite1").attr("style", "display: none;");
-                document1.getElementById("user1").attr("style", "display: none;");
-                document1.getElementById("pass1").attr("style", "display: none;");
-                document1.getElementById("email1").attr("style", "display: none;");
-                document1.getElementById("bill1").attr("style", "display: none;");
-                document1.getElementById("reward1").attr("style", "display: none;");
-                document1.getElementById("rewardToday1").attr("style", "display: none;");
-                document1.getElementById("driverAudit1").attr("style", "display: none;");
-                document1.getElementById("carAudit1").attr("style", "display: none;");
+                document1.getElementById("chinese").remove();
+                document1.getElementById("french").remove();
+                document1.getElementById("invite1").remove();
+                document1.getElementById("user1").remove();
+                document1.getElementById("pass1").remove();
+                document1.getElementById("email1").remove();
+                document1.getElementById("bill1").remove();
+                document1.getElementById("reward1").remove();
+                document1.getElementById("rewardToday1").remove();
+                document1.getElementById("driverAudit1").remove();
+                document1.getElementById("carAudit1").remove();
 
                 Element settle1_user = document1.getElementById("settle1_user");
                 settle1_user.text("Hello " + driver.getFirstName() + "" + driver.getLastName() + ",");
             }
             if(3 == language){
-                document1.getElementById("chinese").attr("style", "display: none;");
-                document1.getElementById("english").attr("style", "display: none;");
-                document1.getElementById("invite2").attr("style", "display: none;");
-                document1.getElementById("user2").attr("style", "display: none;");
-                document1.getElementById("pass2").attr("style", "display: none;");
-                document1.getElementById("email2").attr("style", "display: none;");
-                document1.getElementById("bill2").attr("style", "display: none;");
-                document1.getElementById("reward2").attr("style", "display: none;");
-                document1.getElementById("rewardToday2").attr("style", "display: none;");
-                document1.getElementById("driverAudit2").attr("style", "display: none;");
-                document1.getElementById("carAudit2").attr("style", "display: none;");
+                document1.getElementById("chinese").remove();
+                document1.getElementById("english").remove();
+                document1.getElementById("invite2").remove();
+                document1.getElementById("user2").remove();
+                document1.getElementById("pass2").remove();
+                document1.getElementById("email2").remove();
+                document1.getElementById("bill2").remove();
+                document1.getElementById("reward2").remove();
+                document1.getElementById("rewardToday2").remove();
+                document1.getElementById("driverAudit2").remove();
+                document1.getElementById("carAudit2").remove();
 
                 Element settle2_user = document1.getElementById("settle2_user");
                 settle2_user.text("Bonjour " + driver.getFirstName() + "" + driver.getLastName() + ",");
             }
             EmailUtil.send(driver.getEmail(), language == 1 ? "注册成功" : language == 2 ? "registration success" : "succès de l'inscription",  document1.html());
+            String randomString = ToolUtil.getRandomString(10);
+            //开始生成pdf收据和html收据
+            File file = new File("/usr/local/nginx/html/files/html/");
+            if(!file.exists()){
+                file.mkdirs();
+            }
+            file = new File("/usr/local/nginx/html/files/html/registration_" + randomString + ".html");
+            if(!file.exists()){
+                file.createNewFile();
+            }
+            FileWriter fileWriter = new FileWriter(file);
+            fileWriter.write(document1.html());
+            fileWriter.flush();
+            fileWriter.close();
+            FileInputStream fileInputStream = new FileInputStream(file);
+            File file1 = new File("/usr/local/nginx/html/files/pdf/");
+            if(!file1.exists()){
+                file1.mkdirs();
+            }
+            file1 = new File("/usr/local/nginx/html/files/pdf/registration_" + randomString + ".pdf");
+            if(!file1.exists()){
+                file1.createNewFile();
+            }
+            FileOutputStream fileOutputStream = new FileOutputStream(file1);
+            HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
+
+            String link ="http://182.160.16.251:81/files/html/registration_" + randomString + ".html";
+            TEmail tEmail = new TEmail();
+            tEmail.setLink(link);
+            tEmail.setUserId(driver.getId());
+            tEmail.setType(2);
+            tEmail.setName(language == 1 ? "注册成功" : language == 2 ? "registration success" : "succès de l'inscription");
+            tEmail.setCreateTime(new Date());
+            int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+            String week = EmailUtil.getWeek(language, i);
+            tEmail.setWeek(week);
+            boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+            if(am){
+                tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée");
+            }else {
+                tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi");
+            }
+            emailService.insert(tEmail);
         }
 
         return ResultUtil.success();
@@ -601,7 +724,7 @@
      */
     @Override
     public ResultUtil resetPassword(String phone, String code, String password, Integer language) throws Exception {
-        boolean b = this.checkCaptcha(phone, code);
+        boolean b = this.checkCaptcha("", phone, code);
         if(!b){
             return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
         }
@@ -613,57 +736,100 @@
         driverMapper.updateById(driver);
 
         if(ToolUtil.isNotEmpty(driver.getEmail())){
-            String path1 = templatePath + "index.html";
+            String path1 = templatePath + "driver/index.html";
             Document document1 = Jsoup.parse(new File(path1), "UTF-8");
             if(1 == language){
-                document1.getElementById("english").attr("style", "display: none;");
-                document1.getElementById("french").attr("style", "display: none;");
-                document1.getElementById("invite").attr("style", "display: none;");
-                document1.getElementById("user").attr("style", "display: none;");
-                document1.getElementById("settle").attr("style", "display: none;");
-                document1.getElementById("email").attr("style", "display: none;");
-                document1.getElementById("bill").attr("style", "display: none;");
-                document1.getElementById("reward").attr("style", "display: none;");
-                document1.getElementById("rewardToday").attr("style", "display: none;");
-                document1.getElementById("driverAudit").attr("style", "display: none;");
-                document1.getElementById("carAudit").attr("style", "display: none;");
+                document1.getElementById("english").remove();
+                document1.getElementById("french").remove();
+                document1.getElementById("invite").remove();
+                document1.getElementById("user").remove();
+                document1.getElementById("settle").remove();
+                document1.getElementById("email").remove();
+                document1.getElementById("bill").remove();
+                document1.getElementById("reward").remove();
+                document1.getElementById("rewardToday").remove();
+                document1.getElementById("driverAudit").remove();
+                document1.getElementById("carAudit").remove();
 
                 Element pass_user = document1.getElementById("pass_user");
                 pass_user.text("您好 " + driver.getFirstName() + "" + driver.getLastName() + ",");
             }
             if(2 == language){
-                document1.getElementById("chinese").attr("style", "display: none;");
-                document1.getElementById("french").attr("style", "display: none;");
-                document1.getElementById("invite1").attr("style", "display: none;");
-                document1.getElementById("user1").attr("style", "display: none;");
-                document1.getElementById("settle1").attr("style", "display: none;");
-                document1.getElementById("email1").attr("style", "display: none;");
-                document1.getElementById("bill1").attr("style", "display: none;");
-                document1.getElementById("reward1").attr("style", "display: none;");
-                document1.getElementById("rewardToday1").attr("style", "display: none;");
-                document1.getElementById("driverAudit1").attr("style", "display: none;");
-                document1.getElementById("carAudit1").attr("style", "display: none;");
+                document1.getElementById("chinese").remove();
+                document1.getElementById("french").remove();
+                document1.getElementById("invite1").remove();
+                document1.getElementById("user1").remove();
+                document1.getElementById("settle1").remove();
+                document1.getElementById("email1").remove();
+                document1.getElementById("bill1").remove();
+                document1.getElementById("reward1").remove();
+                document1.getElementById("rewardToday1").remove();
+                document1.getElementById("driverAudit1").remove();
+                document1.getElementById("carAudit1").remove();
 
                 Element pass1_user = document1.getElementById("pass1_user");
                 pass1_user.text("Hello " + driver.getFirstName() + "" + driver.getLastName() + ",");
             }
             if(3 == language){
-                document1.getElementById("chinese").attr("style", "display: none;");
-                document1.getElementById("english").attr("style", "display: none;");
-                document1.getElementById("invite2").attr("style", "display: none;");
-                document1.getElementById("user2").attr("style", "display: none;");
-                document1.getElementById("settle2").attr("style", "display: none;");
-                document1.getElementById("email2").attr("style", "display: none;");
-                document1.getElementById("bill2").attr("style", "display: none;");
-                document1.getElementById("reward2").attr("style", "display: none;");
-                document1.getElementById("rewardToday2").attr("style", "display: none;");
-                document1.getElementById("driverAudit2").attr("style", "display: none;");
-                document1.getElementById("carAudit2").attr("style", "display: none;");
+                document1.getElementById("chinese").remove();
+                document1.getElementById("english").remove();
+                document1.getElementById("invite2").remove();
+                document1.getElementById("user2").remove();
+                document1.getElementById("settle2").remove();
+                document1.getElementById("email2").remove();
+                document1.getElementById("bill2").remove();
+                document1.getElementById("reward2").remove();
+                document1.getElementById("rewardToday2").remove();
+                document1.getElementById("driverAudit2").remove();
+                document1.getElementById("carAudit2").remove();
 
                 Element pass2_user = document1.getElementById("pass2_user");
                 pass2_user.text("Bonjour " + driver.getFirstName() + "" + driver.getLastName() + ",");
             }
             EmailUtil.send(driver.getEmail(), language == 1 ? "重置密码" : language == 2 ? "reset Password" : "réinitialiser le mot de passe",  document1.html());
+            String randomString = ToolUtil.getRandomString(10);
+            //开始生成pdf收据和html收据
+            File file = new File("/usr/local/nginx/html/files/html/");
+            if(!file.exists()){
+                file.mkdirs();
+            }
+            file = new File("/usr/local/nginx/html/files/html/reset_" + randomString + ".html");
+            if(!file.exists()){
+                file.createNewFile();
+            }
+            FileWriter fileWriter = new FileWriter(file);
+            fileWriter.write(document1.html());
+            fileWriter.flush();
+            fileWriter.close();
+            FileInputStream fileInputStream = new FileInputStream(file);
+            File file1 = new File("/usr/local/nginx/html/files/pdf/");
+            if(!file1.exists()){
+                file1.mkdirs();
+            }
+            file1 = new File("/usr/local/nginx/html/files/pdf/reset_" + randomString + ".pdf");
+            if(!file1.exists()){
+                file1.createNewFile();
+            }
+            FileOutputStream fileOutputStream = new FileOutputStream(file1);
+            HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
+
+            String link ="http://182.160.16.251:81/files/html/reset_" + randomString + ".html";
+            TEmail tEmail = new TEmail();
+            tEmail.setLink(link);
+            tEmail.setUserId(driver.getId());
+            tEmail.setType(2);
+            tEmail.setName(language == 1 ? "重置密码" : language == 2 ? "reset Password" : "réinitialiser le mot de passe");
+            tEmail.setCreateTime(new Date());
+            int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+            String week = EmailUtil.getWeek(language, i);
+            tEmail.setWeek(week);
+            boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+            if(am){
+                tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée");
+            }else {
+                tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi");
+            }
+            emailService.insert(tEmail);
         }
 
         smsrecordService.saveData(6, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!");
@@ -754,29 +920,29 @@
      * @throws Exception
      */
     @Override
-    public Map<String, Object> queryHomeData(Integer uid) throws Exception {
+    public Map<String, Object> queryHomeData(Integer uid, Integer language) throws Exception {
         Map<String, Object> map = driverMapper.queryHomeData(uid);
-        int size = this.queryMyActivity(uid, new Date()).size();
+        int size = this.queryMyActivity(uid, new Date(), language).size();
         map.put("activity", size);
         //获取司机待支付的现金支付订单推送司机支付
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("driverId", uid).eq("payType", 4)
-                        .eq("driverPay", 1).eq("isDelete", 1));
-                if(orderPrivateCars.size() > 0){
-                    OrderPrivateCar orderPrivateCar = orderPrivateCars.get(0);
-                    pushUtil.pushOfflinePayment(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1);
-                    return;
-                }
-                List<OrderLogistics> orderLogistics = orderLogisticsService.selectList(new EntityWrapper<OrderLogistics>().eq("driverId", uid).eq("payType", 4)
-                        .eq("isDelete", 1).eq("driverPay", 1));
-                if(orderLogistics.size() > 0){
-                    OrderLogistics orderLogistics1 = orderLogistics.get(0);
-                    pushUtil.pushOfflinePayment(2, orderLogistics1.getDriverId(), orderLogistics1.getId(), orderLogistics1.getType());
-                }
-            }
-        }).start();
+//        new Thread(new Runnable() {
+//            @Override
+//            public void run() {
+//                List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("driverId", uid).eq("payType", 4)
+//                        .eq("driverPay", 1).eq("isDelete", 1));
+//                if(orderPrivateCars.size() > 0){
+//                    OrderPrivateCar orderPrivateCar = orderPrivateCars.get(0);
+//                    pushUtil.pushOfflinePayment(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1);
+//                    return;
+//                }
+//                List<OrderLogistics> orderLogistics = orderLogisticsService.selectList(new EntityWrapper<OrderLogistics>().eq("driverId", uid).eq("payType", 4)
+//                        .eq("isDelete", 1).eq("driverPay", 1));
+//                if(orderLogistics.size() > 0){
+//                    OrderLogistics orderLogistics1 = orderLogistics.get(0);
+//                    pushUtil.pushOfflinePayment(2, orderLogistics1.getDriverId(), orderLogistics1.getId(), orderLogistics1.getType());
+//                }
+//            }
+//        }).start();
         return map;
     }
 
@@ -950,7 +1116,7 @@
         map.put("reservation", list.size());//预约
         List<Map<String, Object>> list1 = orderLogisticsService.queryOrderList(uid, language);
         map.put("small", list1.size());//小件
-        int size = this.queryMyActivity(uid, new Date()).size();
+        int size = this.queryMyActivity(uid, new Date(), language).size();
         map.put("activity", size);//活动
         return map;
     }
@@ -971,7 +1137,7 @@
             baseWarpper.setId(d.getType());
             switch (d.getType()){
                 case 1:
-                    baseWarpper.setName(language == 1 ? "专车" : language == 2 ? "Special car" : "véhicules");
+                    baseWarpper.setName(language == 1 ? "打车" : language == 2 ? "Ride" : "Course ");
                     break;
                 case 2:
                     baseWarpper.setName(language == 1 ? "出租车" : language == 2 ? "taxi" : "taxi");
@@ -980,7 +1146,7 @@
                     baseWarpper.setName(language == 1 ? "跨城出行" : language == 2 ? "Cross-town travel" : "Se déplacer à travers la ville");
                     break;
                 case 4:
-                    baseWarpper.setName(language == 1 ? "市内小件物流" : language == 2 ? "Small parts logistics in the city" : "Logistique de petites pièces dans la ville");
+                    baseWarpper.setName(language == 1 ? "包裹" : language == 2 ? "Package" : "Paquet");
                     break;
                 case 5:
                     baseWarpper.setName(language == 1 ? "跨城小件物流" : language == 2 ? "Cross-city small parts logistics" : "Logistique des petites pièces à travers la ville");
@@ -1034,7 +1200,7 @@
         if(null != driver){
             return ResultUtil.error(language == 1 ? "电话号码已被注册" : language == 2 ? "he phone number is registered" : "Le numéro de téléphone a été enregistré");
         }
-        boolean b = this.checkCaptcha(phone, code);
+        boolean b = this.checkCaptcha("", phone, code);
         if(!b){
             return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
         }
@@ -1080,57 +1246,100 @@
         driver.setPassword(ShiroKit.md5(password, salt));
         this.updateById(driver);
         if(ToolUtil.isNotEmpty(driver.getEmail())){
-            String path1 = templatePath + "index.html";
+            String path1 = templatePath + "driver/index.html";
             Document document1 = Jsoup.parse(new File(path1), "UTF-8");
             if(1 == language){
-                document1.getElementById("english").attr("style", "display: none;");
-                document1.getElementById("french").attr("style", "display: none;");
-                document1.getElementById("invite").attr("style", "display: none;");
-                document1.getElementById("user").attr("style", "display: none;");
-                document1.getElementById("settle").attr("style", "display: none;");
-                document1.getElementById("email").attr("style", "display: none;");
-                document1.getElementById("bill").attr("style", "display: none;");
-                document1.getElementById("reward").attr("style", "display: none;");
-                document1.getElementById("rewardToday").attr("style", "display: none;");
-                document1.getElementById("driverAudit").attr("style", "display: none;");
-                document1.getElementById("carAudit").attr("style", "display: none;");
+                document1.getElementById("english").remove();
+                document1.getElementById("french").remove();
+                document1.getElementById("invite").remove();
+                document1.getElementById("user").remove();
+                document1.getElementById("settle").remove();
+                document1.getElementById("email").remove();
+                document1.getElementById("bill").remove();
+                document1.getElementById("reward").remove();
+                document1.getElementById("rewardToday").remove();
+                document1.getElementById("driverAudit").remove();
+                document1.getElementById("carAudit").remove();
 
                 Element pass_user = document1.getElementById("pass_user");
                 pass_user.text("您好 " + driver.getFirstName() + "" + driver.getLastName() + ",");
             }
             if(2 == language){
-                document1.getElementById("chinese").attr("style", "display: none;");
-                document1.getElementById("french").attr("style", "display: none;");
-                document1.getElementById("invite1").attr("style", "display: none;");
-                document1.getElementById("user1").attr("style", "display: none;");
-                document1.getElementById("settle1").attr("style", "display: none;");
-                document1.getElementById("email1").attr("style", "display: none;");
-                document1.getElementById("bill1").attr("style", "display: none;");
-                document1.getElementById("reward1").attr("style", "display: none;");
-                document1.getElementById("rewardToday1").attr("style", "display: none;");
-                document1.getElementById("driverAudit1").attr("style", "display: none;");
-                document1.getElementById("carAudit1").attr("style", "display: none;");
+                document1.getElementById("chinese").remove();
+                document1.getElementById("french").remove();
+                document1.getElementById("invite1").remove();
+                document1.getElementById("user1").remove();
+                document1.getElementById("settle1").remove();
+                document1.getElementById("email1").remove();
+                document1.getElementById("bill1").remove();
+                document1.getElementById("reward1").remove();
+                document1.getElementById("rewardToday1").remove();
+                document1.getElementById("driverAudit1").remove();
+                document1.getElementById("carAudit1").remove();
 
                 Element pass1_user = document1.getElementById("pass1_user");
                 pass1_user.text("Hello " + driver.getFirstName() + "" + driver.getLastName() + ",");
             }
-            if(2 == language){
-                document1.getElementById("chinese").attr("style", "display: none;");
-                document1.getElementById("english").attr("style", "display: none;");
-                document1.getElementById("invite2").attr("style", "display: none;");
-                document1.getElementById("user2").attr("style", "display: none;");
-                document1.getElementById("settle2").attr("style", "display: none;");
-                document1.getElementById("email2").attr("style", "display: none;");
-                document1.getElementById("bill2").attr("style", "display: none;");
-                document1.getElementById("reward2").attr("style", "display: none;");
-                document1.getElementById("rewardToday2").attr("style", "display: none;");
-                document1.getElementById("driverAudit2").attr("style", "display: none;");
-                document1.getElementById("carAudit2").attr("style", "display: none;");
+            if(3 == language){
+                document1.getElementById("chinese").remove();
+                document1.getElementById("english").remove();
+                document1.getElementById("invite2").remove();
+                document1.getElementById("user2").remove();
+                document1.getElementById("settle2").remove();
+                document1.getElementById("email2").remove();
+                document1.getElementById("bill2").remove();
+                document1.getElementById("reward2").remove();
+                document1.getElementById("rewardToday2").remove();
+                document1.getElementById("driverAudit2").remove();
+                document1.getElementById("carAudit2").remove();
 
                 Element pass2_user = document1.getElementById("pass2_user");
                 pass2_user.text("Bonjour " + driver.getFirstName() + "" + driver.getLastName() + ",");
             }
             EmailUtil.send(driver.getEmail(), language == 1 ? "重置密码" : language == 2 ? "reset Password" : "réinitialiser le mot de passe",  document1.html());
+            String randomString = ToolUtil.getRandomString(10);
+            //开始生成pdf收据和html收据
+            File file = new File("/usr/local/nginx/html/files/html/");
+            if(!file.exists()){
+                file.mkdirs();
+            }
+            file = new File("/usr/local/nginx/html/files/html/reset_" + randomString + ".html");
+            if(!file.exists()){
+                file.createNewFile();
+            }
+            FileWriter fileWriter = new FileWriter(file);
+            fileWriter.write(document1.html());
+            fileWriter.flush();
+            fileWriter.close();
+            FileInputStream fileInputStream = new FileInputStream(file);
+            File file1 = new File("/usr/local/nginx/html/files/pdf/");
+            if(!file1.exists()){
+                file1.mkdirs();
+            }
+            file1 = new File("/usr/local/nginx/html/files/pdf/reset_" + randomString + ".pdf");
+            if(!file1.exists()){
+                file1.createNewFile();
+            }
+            FileOutputStream fileOutputStream = new FileOutputStream(file1);
+            HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
+
+            String link ="http://182.160.16.251:81/files/html/reset_" + randomString + ".html";
+            TEmail tEmail = new TEmail();
+            tEmail.setLink(link);
+            tEmail.setUserId(driver.getId());
+            tEmail.setType(2);
+            tEmail.setName(language == 1 ? "重置密码" : language == 2 ? "reset Password" : "réinitialiser le mot de passe");
+            tEmail.setCreateTime(new Date());
+            int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+            String week = EmailUtil.getWeek(language, i);
+            tEmail.setWeek(week);
+            boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+            if(am){
+                tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée");
+            }else {
+                tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi");
+            }
+            emailService.insert(tEmail);
         }
     }
 
@@ -1157,6 +1366,9 @@
         }
         if(car.getAuthState() == 3){
             return ResultUtil.error(language == 1 ? "车辆已冻结" : language == 2 ? "Vehicle frozen" : "Le véhicule a été gelé");
+        }
+        if(car.getAuthState() == 4){
+            return ResultUtil.error(language == 1 ? "车辆审核不通过" : language == 2 ? "Vehicle audit failed" : "Échec de l’audit du véhicule");
         }
         boolean idle = carService.idle(carId);
         if(!idle){
@@ -1275,7 +1487,7 @@
      * @throws Exception
      */
     @Override
-    public List<ActivityWarpper> queryMyActivity(Integer uid, Date time) throws Exception {
+    public List<ActivityWarpper> queryMyActivity(Integer uid, Date time, Integer language) throws Exception {
         List<ActivityWarpper> list = new ArrayList<>();
         Map<String, Date> date = dateUtil.getStartAndEndDate(time);
         List<DriverActivityHistory> driverActivityHistories = driverActivityHistoryMapper.queryList(uid, null, null, date.get("startTime"), date.get("endTime"));
@@ -1285,17 +1497,21 @@
                 case 1://邀请司机注册
                     DriverActivityRegistered driverActivityRegistered = driverActivityRegisteredMapper.selectById(dah.getActivityId());
                     activityWarpper.setId(driverActivityRegistered.getId());
-                    activityWarpper.setContent("邀请司机注册奖励" + driverActivityRegistered.getMoney() + "元");
+                    activityWarpper.setContent(language == 1 ? "邀请司机注册奖励" + driverActivityRegistered.getMoney() + "元" :
+                            language == 2 ? "Invitation driver registration reward " + driverActivityRegistered.getMoney() + " yuan" :
+                                    "Invitation pilote inscription récompense " + driverActivityRegistered.getMoney() + " yuan");
                     break;
                 case 2://邀请用户注册
                     DriverActivityRegistered driverActivityRegistered1 = driverActivityRegisteredMapper.selectById(dah.getActivityId());
                     activityWarpper.setId(driverActivityRegistered1.getId());
-                    activityWarpper.setContent("邀请用户注册奖励" + driverActivityRegistered1.getMoney() + "元");
+                    activityWarpper.setContent(language == 1 ? "邀请用户注册奖励" + driverActivityRegistered1.getMoney() + "元" :
+                            language == 2 ? "" : "");
                     break;
                 case 3://累计在线
                     DriverActivityOnline driverActivityOnline = driverActivityOnlineMapper.selectById(dah.getActivityId());
                     activityWarpper.setId(driverActivityOnline.getId());
-                    StringBuffer sb = new StringBuffer("今日");
+                    StringBuffer sb = new StringBuffer(language == 1 ? "今日" :
+                            language == 2 ? "today" : "aujourd’hui");
                     DriverWork driverWork = driverWorkMapper.queryNewWork(uid, driverActivityOnline.getType(), 1);
                     Integer hour = 0;
                     if(null != driverWork){
@@ -1303,26 +1519,30 @@
                     }
                     switch (driverActivityOnline.getType()){
                         case 1:
-                            sb.append("专车");
+                            sb.append(language == 1 ? "打车" : language == 2 ? "Ride" : "Rouler");
                             break;
                         case 2:
                             sb.append("出租车");
-
                             break;
                         case 3:
                             sb.append("城际出行");
                             break;
                         case 4:
+                            sb.append(language == 1 ? "包裹" : language == 2 ? "Package" : "Paquet");
                             break;
                     }
-                    String str = "累计在线" +driverActivityOnline.getOnline() + "小时奖励" +driverActivityOnline.getMoney() + "元";
+                    String str = language == 1 ? "累计在线" +driverActivityOnline.getOnline() + "小时奖励" +driverActivityOnline.getMoney() + "元" :
+                            language == 2 ? "RMB " + driverActivityOnline.getMoney() + " will be awarded for " + driverActivityOnline.getOnline() + " hours online" :
+                                    "Bonus de " + driverActivityOnline.getMoney() + " $pour " + driverActivityOnline.getOnline() + " heures cumulées en ligne";
                     activityWarpper.setContent(sb.append(str).toString());
                     activityWarpper.setCarryOut((dah.getCarryOut() == 2 || hour > driverActivityOnline.getOnline()) ? driverActivityOnline.getOnline() + "/" +driverActivityOnline.getOnline() : hour + "/" + driverActivityOnline.getOnline());
                     break;
                 case 4://订单量
                     DriverActivityOrder driverActivityOrder = driverActivityOrderMapper.selectById(dah.getActivityId());
                     activityWarpper.setId(driverActivityOrder.getId());
-                    activityWarpper.setContent("今日" + driverActivityOrder.getStart() + "-" + driverActivityOrder.getEnd() + "累计接单" + driverActivityOrder.getOrderNum() + "单奖励" + driverActivityOrder.getMoney() + "元");
+                    activityWarpper.setContent(language == 1 ? "今日" + driverActivityOrder.getStart() + "-" + driverActivityOrder.getEnd() + "累计接单" + driverActivityOrder.getOrderNum() + "单奖励" + driverActivityOrder.getMoney() + "元" :
+                            language == 2 ? "From " + driverActivityOrder.getStart() + " to " + driverActivityOrder.getEnd() + " today, a total of " + driverActivityOrder.getOrderNum() + " orders will be awarded " + driverActivityOrder.getMoney() + " yuan" :
+                                    "De " + driverActivityOrder.getStart() + " à " + driverActivityOrder.getEnd() + " aujourd’hui, un total de " + driverActivityOrder.getOrderNum() + " commandes recevront " + driverActivityOrder.getMoney() + " yuans");
                     SimpleDateFormat sdf = new SimpleDateFormat("H:m");
                     Date start = sdf.parse(driverActivityOrder.getStart());
                     Date end = sdf.parse(driverActivityOrder.getEnd());
@@ -1376,20 +1596,20 @@
                     driverActivityHistoryMapper.insert(driverActivityHistory);
 
                     if(ToolUtil.isNotEmpty(driver.getEmail())) {
-                        String path1 = templatePath + "index.html";
+                        String path1 = templatePath + "driver/index.html";
                         Document document1 = Jsoup.parse(new File(path1), "UTF-8");
                         if (1 == language) {
-                            document1.getElementById("english").attr("style", "display: none;");
-                            document1.getElementById("french").attr("style", "display: none;");
-                            document1.getElementById("invite").attr("style", "display: none;");
-                            document1.getElementById("user").attr("style", "display: none;");
-                            document1.getElementById("settle").attr("style", "display: none;");
-                            document1.getElementById("pass").attr("style", "display: none;");
-                            document1.getElementById("email").attr("style", "display: none;");
-                            document1.getElementById("bill").attr("style", "display: none;");
-                            document1.getElementById("reward").attr("style", "display: none;");
-                            document1.getElementById("driverAudit").attr("style", "display: none;");
-                            document1.getElementById("carAudit").attr("style", "display: none;");
+                            document1.getElementById("english").remove();
+                            document1.getElementById("french").remove();
+                            document1.getElementById("invite").remove();
+                            document1.getElementById("user").remove();
+                            document1.getElementById("settle").remove();
+                            document1.getElementById("pass").remove();
+                            document1.getElementById("email").remove();
+                            document1.getElementById("bill").remove();
+                            document1.getElementById("reward").remove();
+                            document1.getElementById("driverAudit").remove();
+                            document1.getElementById("carAudit").remove();
 
                             Element rewardToday_user = document1.getElementById("rewardToday_user");
                             rewardToday_user.text("您好 " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -1399,17 +1619,17 @@
                             rewardToday_content.text("邀请司机注册即可活动奖励。 注意此活动是有时间限制的,详情请查看I-GO平台。");
                         }
                         if (2 == language) {
-                            document1.getElementById("chinese").attr("style", "display: none;");
-                            document1.getElementById("french").attr("style", "display: none;");
-                            document1.getElementById("invite1").attr("style", "display: none;");
-                            document1.getElementById("user1").attr("style", "display: none;");
-                            document1.getElementById("settle1").attr("style", "display: none;");
-                            document1.getElementById("pass1").attr("style", "display: none;");
-                            document1.getElementById("email1").attr("style", "display: none;");
-                            document1.getElementById("bill1").attr("style", "display: none;");
-                            document1.getElementById("reward1").attr("style", "display: none;");
-                            document1.getElementById("driverAudit1").attr("style", "display: none;");
-                            document1.getElementById("carAudit1").attr("style", "display: none;");
+                            document1.getElementById("chinese").remove();
+                            document1.getElementById("french").remove();
+                            document1.getElementById("invite1").remove();
+                            document1.getElementById("user1").remove();
+                            document1.getElementById("settle1").remove();
+                            document1.getElementById("pass1").remove();
+                            document1.getElementById("email1").remove();
+                            document1.getElementById("bill1").remove();
+                            document1.getElementById("reward1").remove();
+                            document1.getElementById("driverAudit1").remove();
+                            document1.getElementById("carAudit1").remove();
 
                             Element rewardToday1_user = document1.getElementById("rewardToday1_user");
                             rewardToday1_user.text("Hello " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -1419,17 +1639,17 @@
                             rewardToday1_content.text("Invite drivers to register and get event rewards. Note that this event is time-limited, please check the I-GO platform for details.");
                         }
                         if (3 == language) {
-                            document1.getElementById("chinese").attr("style", "display: none;");
-                            document1.getElementById("french").attr("style", "display: none;");
-                            document1.getElementById("invite2").attr("style", "display: none;");
-                            document1.getElementById("user2").attr("style", "display: none;");
-                            document1.getElementById("settle2").attr("style", "display: none;");
-                            document1.getElementById("pass2").attr("style", "display: none;");
-                            document1.getElementById("email2").attr("style", "display: none;");
-                            document1.getElementById("bill2").attr("style", "display: none;");
-                            document1.getElementById("reward2").attr("style", "display: none;");
-                            document1.getElementById("driverAudit2").attr("style", "display: none;");
-                            document1.getElementById("carAudit2").attr("style", "display: none;");
+                            document1.getElementById("chinese").remove();
+                            document1.getElementById("english").remove();
+                            document1.getElementById("invite2").remove();
+                            document1.getElementById("user2").remove();
+                            document1.getElementById("settle2").remove();
+                            document1.getElementById("pass2").remove();
+                            document1.getElementById("email2").remove();
+                            document1.getElementById("bill2").remove();
+                            document1.getElementById("reward2").remove();
+                            document1.getElementById("driverAudit2").remove();
+                            document1.getElementById("carAudit2").remove();
 
                             Element rewardToday2_user = document1.getElementById("rewardToday2_user");
                             rewardToday2_user.text("Bonjour " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -1439,6 +1659,49 @@
                             rewardToday2_content.text("Invitez les conducteurs à s’inscrire et à recevoir des récompenses. Notez que cet événement est limité dans le temps, veuillez consulter la plateforme I-GO pour plus de détails.");
                         }
                         EmailUtil.send(driver.getEmail(), language == 1 ? "今日活动" : language == 2 ? "today's activity" : "l'événement d'aujourd'hui", document1.html());
+                        String randomString = ToolUtil.getRandomString(10);
+                        //开始生成pdf收据和html收据
+                        File file = new File("/usr/local/nginx/html/files/html/");
+                        if(!file.exists()){
+                            file.mkdirs();
+                        }
+                        file = new File("/usr/local/nginx/html/files/html/activity_" + randomString + ".html");
+                        if(!file.exists()){
+                            file.createNewFile();
+                        }
+                        FileWriter fileWriter = new FileWriter(file);
+                        fileWriter.write(document1.html());
+                        fileWriter.flush();
+                        fileWriter.close();
+                        FileInputStream fileInputStream = new FileInputStream(file);
+                        File file1 = new File("/usr/local/nginx/html/files/pdf/");
+                        if(!file1.exists()){
+                            file1.mkdirs();
+                        }
+                        file1 = new File("/usr/local/nginx/html/files/pdf/activity_" + randomString + ".pdf");
+                        if(!file1.exists()){
+                            file1.createNewFile();
+                        }
+                        FileOutputStream fileOutputStream = new FileOutputStream(file1);
+                        HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
+
+                        String link ="http://182.160.16.251:81/files/html/activity_" + randomString + ".html";
+                        TEmail tEmail = new TEmail();
+                        tEmail.setLink(link);
+                        tEmail.setUserId(driver.getId());
+                        tEmail.setType(2);
+                        tEmail.setName(language == 1 ? "今日活动" : language == 2 ? "today's activity" : "l'événement d'aujourd'hui");
+                        tEmail.setCreateTime(new Date());
+                        int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+                        String week = EmailUtil.getWeek(language, i);
+                        tEmail.setWeek(week);
+                        boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+                        if(am){
+                            tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée");
+                        }else {
+                            tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi");
+                        }
+                        emailService.insert(tEmail);
                     }
                 }
             }
@@ -1457,20 +1720,20 @@
                     driverActivityHistoryMapper.insert(driverActivityHistory);
 
                     if(ToolUtil.isNotEmpty(driver.getEmail())) {
-                        String path1 = templatePath + "index.html";
+                        String path1 = templatePath + "driver/index.html";
                         Document document1 = Jsoup.parse(new File(path1), "UTF-8");
                         if (1 == language) {
-                            document1.getElementById("english").attr("style", "display: none;");
-                            document1.getElementById("french").attr("style", "display: none;");
-                            document1.getElementById("invite").attr("style", "display: none;");
-                            document1.getElementById("user").attr("style", "display: none;");
-                            document1.getElementById("settle").attr("style", "display: none;");
-                            document1.getElementById("pass").attr("style", "display: none;");
-                            document1.getElementById("email").attr("style", "display: none;");
-                            document1.getElementById("bill").attr("style", "display: none;");
-                            document1.getElementById("reward").attr("style", "display: none;");
-                            document1.getElementById("driverAudit").attr("style", "display: none;");
-                            document1.getElementById("carAudit").attr("style", "display: none;");
+                            document1.getElementById("english").remove();
+                            document1.getElementById("french").remove();
+                            document1.getElementById("invite").remove();
+                            document1.getElementById("user").remove();
+                            document1.getElementById("settle").remove();
+                            document1.getElementById("pass").remove();
+                            document1.getElementById("email").remove();
+                            document1.getElementById("bill").remove();
+                            document1.getElementById("reward").remove();
+                            document1.getElementById("driverAudit").remove();
+                            document1.getElementById("carAudit").remove();
 
                             Element rewardToday_user = document1.getElementById("rewardToday_user");
                             rewardToday_user.text("您好 " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -1480,17 +1743,17 @@
                             rewardToday_content.text("邀请用户注册即可活动奖励。 注意此活动是有时间限制的,详情请查看I-GO平台。");
                         }
                         if (2 == language) {
-                            document1.getElementById("chinese").attr("style", "display: none;");
-                            document1.getElementById("french").attr("style", "display: none;");
-                            document1.getElementById("invite1").attr("style", "display: none;");
-                            document1.getElementById("user1").attr("style", "display: none;");
-                            document1.getElementById("settle1").attr("style", "display: none;");
-                            document1.getElementById("pass1").attr("style", "display: none;");
-                            document1.getElementById("email1").attr("style", "display: none;");
-                            document1.getElementById("bill1").attr("style", "display: none;");
-                            document1.getElementById("reward1").attr("style", "display: none;");
-                            document1.getElementById("driverAudit1").attr("style", "display: none;");
-                            document1.getElementById("carAudit1").attr("style", "display: none;");
+                            document1.getElementById("chinese").remove();
+                            document1.getElementById("french").remove();
+                            document1.getElementById("invite1").remove();
+                            document1.getElementById("user1").remove();
+                            document1.getElementById("settle1").remove();
+                            document1.getElementById("pass1").remove();
+                            document1.getElementById("email1").remove();
+                            document1.getElementById("bill1").remove();
+                            document1.getElementById("reward1").remove();
+                            document1.getElementById("driverAudit1").remove();
+                            document1.getElementById("carAudit1").remove();
 
                             Element rewardToday1_user = document1.getElementById("rewardToday1_user");
                             rewardToday1_user.text("Hello " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -1500,17 +1763,17 @@
                             rewardToday1_content.text("Invite users to register and get event rewards. Note that this event is time-limited, please check the I-GO platform for details.");
                         }
                         if (3 == language) {
-                            document1.getElementById("chinese").attr("style", "display: none;");
-                            document1.getElementById("english").attr("style", "display: none;");
-                            document1.getElementById("invite2").attr("style", "display: none;");
-                            document1.getElementById("user2").attr("style", "display: none;");
-                            document1.getElementById("settle2").attr("style", "display: none;");
-                            document1.getElementById("pass2").attr("style", "display: none;");
-                            document1.getElementById("email2").attr("style", "display: none;");
-                            document1.getElementById("bill2").attr("style", "display: none;");
-                            document1.getElementById("reward2").attr("style", "display: none;");
-                            document1.getElementById("driverAudit2").attr("style", "display: none;");
-                            document1.getElementById("carAudit2").attr("style", "display: none;");
+                            document1.getElementById("chinese").remove();
+                            document1.getElementById("english").remove();
+                            document1.getElementById("invite2").remove();
+                            document1.getElementById("user2").remove();
+                            document1.getElementById("settle2").remove();
+                            document1.getElementById("pass2").remove();
+                            document1.getElementById("email2").remove();
+                            document1.getElementById("bill2").remove();
+                            document1.getElementById("reward2").remove();
+                            document1.getElementById("driverAudit2").remove();
+                            document1.getElementById("carAudit2").remove();
 
                             Element rewardToday2_user = document1.getElementById("rewardToday2_user");
                             rewardToday2_user.text("Bonjour " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -1520,6 +1783,49 @@
                             rewardToday2_content.text("Invitez les conducteurs à s’inscrire et à recevoir des récompenses. Notez que cet événement est limité dans le temps, veuillez consulter la plateforme I-GO pour plus de détails.");
                         }
                         EmailUtil.send(driver.getEmail(), language == 1 ? "今日活动" : language == 2 ? "today's activity" : "l'événement d'aujourd'hui", document1.html());
+                        String randomString = ToolUtil.getRandomString(10);
+                        //开始生成pdf收据和html收据
+                        File file = new File("/usr/local/nginx/html/files/html/");
+                        if(!file.exists()){
+                            file.mkdirs();
+                        }
+                        file = new File("/usr/local/nginx/html/files/html/activity_" + randomString + ".html");
+                        if(!file.exists()){
+                            file.createNewFile();
+                        }
+                        FileWriter fileWriter = new FileWriter(file);
+                        fileWriter.write(document1.html());
+                        fileWriter.flush();
+                        fileWriter.close();
+                        FileInputStream fileInputStream = new FileInputStream(file);
+                        File file1 = new File("/usr/local/nginx/html/files/pdf/");
+                        if(!file1.exists()){
+                            file1.mkdirs();
+                        }
+                        file1 = new File("/usr/local/nginx/html/files/pdf/activity_" + randomString + ".pdf");
+                        if(!file1.exists()){
+                            file1.createNewFile();
+                        }
+                        FileOutputStream fileOutputStream = new FileOutputStream(file1);
+                        HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
+
+                        String link ="http://182.160.16.251:81/files/html/activity_" + randomString + ".html";
+                        TEmail tEmail = new TEmail();
+                        tEmail.setLink(link);
+                        tEmail.setUserId(driver.getId());
+                        tEmail.setType(2);
+                        tEmail.setName(language == 1 ? "今日活动" : language == 2 ? "today's activity" : "l'événement d'aujourd'hui");
+                        tEmail.setCreateTime(new Date());
+                        int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+                        String week = EmailUtil.getWeek(language, i);
+                        tEmail.setWeek(week);
+                        boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+                        if(am){
+                            tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée");
+                        }else {
+                            tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi");
+                        }
+                        emailService.insert(tEmail);
                     }
                 }
             }
@@ -1539,20 +1845,20 @@
                     driverActivityHistoryMapper.insert(driverActivityHistory);
 
                     if(ToolUtil.isNotEmpty(driver.getEmail())) {
-                        String path1 = templatePath + "index.html";
+                        String path1 = templatePath + "driver/index.html";
                         Document document1 = Jsoup.parse(new File(path1), "UTF-8");
                         if (1 == language) {
-                            document1.getElementById("english").attr("style", "display: none;");
-                            document1.getElementById("french").attr("style", "display: none;");
-                            document1.getElementById("invite").attr("style", "display: none;");
-                            document1.getElementById("user").attr("style", "display: none;");
-                            document1.getElementById("settle").attr("style", "display: none;");
-                            document1.getElementById("pass").attr("style", "display: none;");
-                            document1.getElementById("email").attr("style", "display: none;");
-                            document1.getElementById("bill").attr("style", "display: none;");
-                            document1.getElementById("reward").attr("style", "display: none;");
-                            document1.getElementById("driverAudit").attr("style", "display: none;");
-                            document1.getElementById("carAudit").attr("style", "display: none;");
+                            document1.getElementById("english").remove();
+                            document1.getElementById("french").remove();
+                            document1.getElementById("invite").remove();
+                            document1.getElementById("user").remove();
+                            document1.getElementById("settle").remove();
+                            document1.getElementById("pass").remove();
+                            document1.getElementById("email").remove();
+                            document1.getElementById("bill").remove();
+                            document1.getElementById("reward").remove();
+                            document1.getElementById("driverAudit").remove();
+                            document1.getElementById("carAudit").remove();
 
                             Element rewardToday_user = document1.getElementById("rewardToday_user");
                             rewardToday_user.text("您好 " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -1562,17 +1868,17 @@
                             rewardToday_content.text("今日累计在线" + driverActivityOnline.getOnline() + "小时即可活动奖励。 注意此活动是有时间限制的,详情请查看I-GO平台。");
                         }
                         if (2 == language) {
-                            document1.getElementById("chinese").attr("style", "display: none;");
-                            document1.getElementById("french").attr("style", "display: none;");
-                            document1.getElementById("invite1").attr("style", "display: none;");
-                            document1.getElementById("user1").attr("style", "display: none;");
-                            document1.getElementById("settle1").attr("style", "display: none;");
-                            document1.getElementById("pass1").attr("style", "display: none;");
-                            document1.getElementById("email1").attr("style", "display: none;");
-                            document1.getElementById("bill1").attr("style", "display: none;");
-                            document1.getElementById("reward1").attr("style", "display: none;");
-                            document1.getElementById("driverAudit1").attr("style", "display: none;");
-                            document1.getElementById("carAudit1").attr("style", "display: none;");
+                            document1.getElementById("chinese").remove();
+                            document1.getElementById("french").remove();
+                            document1.getElementById("invite1").remove();
+                            document1.getElementById("user1").remove();
+                            document1.getElementById("settle1").remove();
+                            document1.getElementById("pass1").remove();
+                            document1.getElementById("email1").remove();
+                            document1.getElementById("bill1").remove();
+                            document1.getElementById("reward1").remove();
+                            document1.getElementById("driverAudit1").remove();
+                            document1.getElementById("carAudit1").remove();
 
                             Element rewardToday1_user = document1.getElementById("rewardToday1_user");
                             rewardToday1_user.text("Hello " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -1582,17 +1888,17 @@
                             rewardToday1_content.text("Accumulated online " + driverActivityOnline.getOnline() + " hours today to get event rewards. Note that this event is time-limited, please check the I-GO platform for details.");
                         }
                         if (3 == language) {
-                            document1.getElementById("chinese").attr("style", "display: none;");
-                            document1.getElementById("english").attr("style", "display: none;");
-                            document1.getElementById("invite2").attr("style", "display: none;");
-                            document1.getElementById("user2").attr("style", "display: none;");
-                            document1.getElementById("settle2").attr("style", "display: none;");
-                            document1.getElementById("pass2").attr("style", "display: none;");
-                            document1.getElementById("email2").attr("style", "display: none;");
-                            document1.getElementById("bill2").attr("style", "display: none;");
-                            document1.getElementById("reward2").attr("style", "display: none;");
-                            document1.getElementById("driverAudit2").attr("style", "display: none;");
-                            document1.getElementById("carAudit2").attr("style", "display: none;");
+                            document1.getElementById("chinese").remove();
+                            document1.getElementById("english").remove();
+                            document1.getElementById("invite2").remove();
+                            document1.getElementById("user2").remove();
+                            document1.getElementById("settle2").remove();
+                            document1.getElementById("pass2").remove();
+                            document1.getElementById("email2").remove();
+                            document1.getElementById("bill2").remove();
+                            document1.getElementById("reward2").remove();
+                            document1.getElementById("driverAudit2").remove();
+                            document1.getElementById("carAudit2").remove();
 
                             Element rewardToday2_user = document1.getElementById("rewardToday2_user");
                             rewardToday2_user.text("Bonjour " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -1602,6 +1908,49 @@
                             rewardToday2_content.text("Accumulé en ligne " + driverActivityOnline.getOnline() + " heures aujourd’hui pour obtenir des récompenses d’événement. Notez que cet événement est limité dans le temps, veuillez consulter la plateforme I-GO pour plus de détails.");
                         }
                         EmailUtil.send(driver.getEmail(), language == 1 ? "今日活动" : language == 2 ? "today's activity" : "l'événement d'aujourd'hui", document1.html());
+                        String randomString = ToolUtil.getRandomString(10);
+                        //开始生成pdf收据和html收据
+                        File file = new File("/usr/local/nginx/html/files/html/");
+                        if(!file.exists()){
+                            file.mkdirs();
+                        }
+                        file = new File("/usr/local/nginx/html/files/html/activity_" + randomString + ".html");
+                        if(!file.exists()){
+                            file.createNewFile();
+                        }
+                        FileWriter fileWriter = new FileWriter(file);
+                        fileWriter.write(document1.html());
+                        fileWriter.flush();
+                        fileWriter.close();
+                        FileInputStream fileInputStream = new FileInputStream(file);
+                        File file1 = new File("/usr/local/nginx/html/files/pdf/");
+                        if(!file1.exists()){
+                            file1.mkdirs();
+                        }
+                        file1 = new File("/usr/local/nginx/html/files/pdf/activity_" + randomString + ".pdf");
+                        if(!file1.exists()){
+                            file1.createNewFile();
+                        }
+                        FileOutputStream fileOutputStream = new FileOutputStream(file1);
+                        HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
+
+                        String link ="http://182.160.16.251:81/files/html/activity_" + randomString + ".html";
+                        TEmail tEmail = new TEmail();
+                        tEmail.setLink(link);
+                        tEmail.setUserId(driver.getId());
+                        tEmail.setType(2);
+                        tEmail.setName(language == 1 ? "今日活动" : language == 2 ? "today's activity" : "l'événement d'aujourd'hui");
+                        tEmail.setCreateTime(new Date());
+                        int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+                        String week = EmailUtil.getWeek(language, i);
+                        tEmail.setWeek(week);
+                        boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+                        if(am){
+                            tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée");
+                        }else {
+                            tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi");
+                        }
+                        emailService.insert(tEmail);
                     }
                 }
             }
@@ -1621,20 +1970,20 @@
                     driverActivityHistoryMapper.insert(driverActivityHistory);
 
                     if(ToolUtil.isNotEmpty(driver.getEmail())) {
-                        String path1 = templatePath + "index.html";
+                        String path1 = templatePath + "driver/index.html";
                         Document document1 = Jsoup.parse(new File(path1), "UTF-8");
                         if (1 == language) {
-                            document1.getElementById("english").attr("style", "display: none;");
-                            document1.getElementById("french").attr("style", "display: none;");
-                            document1.getElementById("invite").attr("style", "display: none;");
-                            document1.getElementById("user").attr("style", "display: none;");
-                            document1.getElementById("settle").attr("style", "display: none;");
-                            document1.getElementById("pass").attr("style", "display: none;");
-                            document1.getElementById("email").attr("style", "display: none;");
-                            document1.getElementById("bill").attr("style", "display: none;");
-                            document1.getElementById("reward").attr("style", "display: none;");
-                            document1.getElementById("driverAudit").attr("style", "display: none;");
-                            document1.getElementById("carAudit").attr("style", "display: none;");
+                            document1.getElementById("english").remove();
+                            document1.getElementById("french").remove();
+                            document1.getElementById("invite").remove();
+                            document1.getElementById("user").remove();
+                            document1.getElementById("settle").remove();
+                            document1.getElementById("pass").remove();
+                            document1.getElementById("email").remove();
+                            document1.getElementById("bill").remove();
+                            document1.getElementById("reward").remove();
+                            document1.getElementById("driverAudit").remove();
+                            document1.getElementById("carAudit").remove();
 
                             Element rewardToday_user = document1.getElementById("rewardToday_user");
                             rewardToday_user.text("您好 " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -1644,17 +1993,17 @@
                             rewardToday_content.text("今日累计完成" + driverActivityOrder.getOrderNum() + "单即可活动奖励。 注意此活动是有时间限制的,详情请查看I-GO平台。");
                         }
                         if (2 == language) {
-                            document1.getElementById("chinese").attr("style", "display: none;");
-                            document1.getElementById("french").attr("style", "display: none;");
-                            document1.getElementById("invite1").attr("style", "display: none;");
-                            document1.getElementById("user1").attr("style", "display: none;");
-                            document1.getElementById("settle1").attr("style", "display: none;");
-                            document1.getElementById("pass1").attr("style", "display: none;");
-                            document1.getElementById("email1").attr("style", "display: none;");
-                            document1.getElementById("bill1").attr("style", "display: none;");
-                            document1.getElementById("reward1").attr("style", "display: none;");
-                            document1.getElementById("driverAudit1").attr("style", "display: none;");
-                            document1.getElementById("carAudit1").attr("style", "display: none;");
+                            document1.getElementById("chinese").remove();
+                            document1.getElementById("french").remove();
+                            document1.getElementById("invite1").remove();
+                            document1.getElementById("user1").remove();
+                            document1.getElementById("settle1").remove();
+                            document1.getElementById("pass1").remove();
+                            document1.getElementById("email1").remove();
+                            document1.getElementById("bill1").remove();
+                            document1.getElementById("reward1").remove();
+                            document1.getElementById("driverAudit1").remove();
+                            document1.getElementById("carAudit1").remove();
 
                             Element rewardToday1_user = document1.getElementById("rewardToday1_user");
                             rewardToday1_user.text("Hello " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -1664,17 +2013,17 @@
                             rewardToday1_content.text("Complete " + driverActivityOrder.getOrderNum() + " orders in total today to get event rewards. Note that this event is time-limited, please check the I-GO platform for details.");
                         }
                         if (3 == language) {
-                            document1.getElementById("chinese").attr("style", "display: none;");
-                            document1.getElementById("english").attr("style", "display: none;");
-                            document1.getElementById("invite2").attr("style", "display: none;");
-                            document1.getElementById("user2").attr("style", "display: none;");
-                            document1.getElementById("settle2").attr("style", "display: none;");
-                            document1.getElementById("pass2").attr("style", "display: none;");
-                            document1.getElementById("email2").attr("style", "display: none;");
-                            document1.getElementById("bill2").attr("style", "display: none;");
-                            document1.getElementById("reward2").attr("style", "display: none;");
-                            document1.getElementById("driverAudit2").attr("style", "display: none;");
-                            document1.getElementById("carAudit2").attr("style", "display: none;");
+                            document1.getElementById("chinese").remove();
+                            document1.getElementById("english").remove();
+                            document1.getElementById("invite2").remove();
+                            document1.getElementById("user2").remove();
+                            document1.getElementById("settle2").remove();
+                            document1.getElementById("pass2").remove();
+                            document1.getElementById("email2").remove();
+                            document1.getElementById("bill2").remove();
+                            document1.getElementById("reward2").remove();
+                            document1.getElementById("driverAudit2").remove();
+                            document1.getElementById("carAudit2").remove();
 
                             Element rewardToday2_user = document1.getElementById("rewardToday2_user");
                             rewardToday2_user.text("Bonjour " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -1684,6 +2033,49 @@
                             rewardToday2_content.text("Effectuez " + driverActivityOrder.getOrderNum() + " commandes au total aujourd’hui pour obtenir des récompenses d’événement. Notez que cet événement est limité dans le temps, veuillez consulter la plateforme I-GO pour plus de détails.");
                         }
                         EmailUtil.send(driver.getEmail(), language == 1 ? "今日活动" : language == 2 ? "today's activity" : "l'événement d'aujourd'hui", document1.html());
+                        String randomString = ToolUtil.getRandomString(10);
+                        //开始生成pdf收据和html收据
+                        File file = new File("/usr/local/nginx/html/files/html/");
+                        if(!file.exists()){
+                            file.mkdirs();
+                        }
+                        file = new File("/usr/local/nginx/html/files/html/activity_" + randomString + ".html");
+                        if(!file.exists()){
+                            file.createNewFile();
+                        }
+                        FileWriter fileWriter = new FileWriter(file);
+                        fileWriter.write(document1.html());
+                        fileWriter.flush();
+                        fileWriter.close();
+                        FileInputStream fileInputStream = new FileInputStream(file);
+                        File file1 = new File("/usr/local/nginx/html/files/pdf/");
+                        if(!file1.exists()){
+                            file1.mkdirs();
+                        }
+                        file1 = new File("/usr/local/nginx/html/files/pdf/activity_" + randomString + ".pdf");
+                        if(!file1.exists()){
+                            file1.createNewFile();
+                        }
+                        FileOutputStream fileOutputStream = new FileOutputStream(file1);
+                        HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
+
+                        String link ="http://182.160.16.251:81/files/html/activity_" + randomString + ".html";
+                        TEmail tEmail = new TEmail();
+                        tEmail.setLink(link);
+                        tEmail.setUserId(driver.getId());
+                        tEmail.setType(2);
+                        tEmail.setName(language == 1 ? "今日活动" : language == 2 ? "today's activity" : "l'événement d'aujourd'hui");
+                        tEmail.setCreateTime(new Date());
+                        int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+                        String week = EmailUtil.getWeek(language, i);
+                        tEmail.setWeek(week);
+                        boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+                        if(am){
+                            tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée");
+                        }else {
+                            tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi");
+                        }
+                        emailService.insert(tEmail);
                     }
                 }
             }
@@ -1725,20 +2117,20 @@
 
 
                     if(ToolUtil.isNotEmpty(driver.getEmail())) {
-                        String path1 = templatePath + "index.html";
+                        String path1 = templatePath + "driver/index.html";
                         Document document1 = Jsoup.parse(new File(path1), "UTF-8");
                         if (1 == language) {
-                            document1.getElementById("english").attr("style", "display: none;");
-                            document1.getElementById("french").attr("style", "display: none;");
-                            document1.getElementById("invite").attr("style", "display: none;");
-                            document1.getElementById("user").attr("style", "display: none;");
-                            document1.getElementById("settle").attr("style", "display: none;");
-                            document1.getElementById("pass").attr("style", "display: none;");
-                            document1.getElementById("email").attr("style", "display: none;");
-                            document1.getElementById("bill").attr("style", "display: none;");
-                            document1.getElementById("rewardToday").attr("style", "display: none;");
-                            document1.getElementById("driverAudit").attr("style", "display: none;");
-                            document1.getElementById("carAudit").attr("style", "display: none;");
+                            document1.getElementById("english").remove();
+                            document1.getElementById("french").remove();
+                            document1.getElementById("invite").remove();
+                            document1.getElementById("user").remove();
+                            document1.getElementById("settle").remove();
+                            document1.getElementById("pass").remove();
+                            document1.getElementById("email").remove();
+                            document1.getElementById("bill").remove();
+                            document1.getElementById("rewardToday").remove();
+                            document1.getElementById("driverAudit").remove();
+                            document1.getElementById("carAudit").remove();
 
                             Element reward_user = document1.getElementById("reward_user");
                             reward_user.text("您好 " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -1746,17 +2138,17 @@
                             reward_content.text("今日累计在线 " + dao.getOnline() + "小时,获得奖励GHS" + dah.getMoney() + ",请查收");
                         }
                         if (2 == language) {
-                            document1.getElementById("chinese").attr("style", "display: none;");
-                            document1.getElementById("french").attr("style", "display: none;");
-                            document1.getElementById("invite1").attr("style", "display: none;");
-                            document1.getElementById("user1").attr("style", "display: none;");
-                            document1.getElementById("settle1").attr("style", "display: none;");
-                            document1.getElementById("pass1").attr("style", "display: none;");
-                            document1.getElementById("email1").attr("style", "display: none;");
-                            document1.getElementById("bill1").attr("style", "display: none;");
-                            document1.getElementById("rewardToday1").attr("style", "display: none;");
-                            document1.getElementById("driverAudit1").attr("style", "display: none;");
-                            document1.getElementById("carAudit1").attr("style", "display: none;");
+                            document1.getElementById("chinese").remove();
+                            document1.getElementById("french").remove();
+                            document1.getElementById("invite1").remove();
+                            document1.getElementById("user1").remove();
+                            document1.getElementById("settle1").remove();
+                            document1.getElementById("pass1").remove();
+                            document1.getElementById("email1").remove();
+                            document1.getElementById("bill1").remove();
+                            document1.getElementById("rewardToday1").remove();
+                            document1.getElementById("driverAudit1").remove();
+                            document1.getElementById("carAudit1").remove();
 
                             Element reward1_user = document1.getElementById("reward1_user");
                             reward1_user.text("Hello " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -1764,17 +2156,17 @@
                             reward1_content.text("accumulated online for " + dao.getOnline() + " hour today, get reward GHS" + dah.getMoney() + ", please check");
                         }
                         if (3 == language) {
-                            document1.getElementById("chinese").attr("style", "display: none;");
-                            document1.getElementById("english").attr("style", "display: none;");
-                            document1.getElementById("invite2").attr("style", "display: none;");
-                            document1.getElementById("user2").attr("style", "display: none;");
-                            document1.getElementById("settle2").attr("style", "display: none;");
-                            document1.getElementById("pass2").attr("style", "display: none;");
-                            document1.getElementById("email2").attr("style", "display: none;");
-                            document1.getElementById("bill2").attr("style", "display: none;");
-                            document1.getElementById("rewardToday2").attr("style", "display: none;");
-                            document1.getElementById("driverAudit2").attr("style", "display: none;");
-                            document1.getElementById("carAudit2").attr("style", "display: none;");
+                            document1.getElementById("chinese").remove();
+                            document1.getElementById("english").remove();
+                            document1.getElementById("invite2").remove();
+                            document1.getElementById("user2").remove();
+                            document1.getElementById("settle2").remove();
+                            document1.getElementById("pass2").remove();
+                            document1.getElementById("email2").remove();
+                            document1.getElementById("bill2").remove();
+                            document1.getElementById("rewardToday2").remove();
+                            document1.getElementById("driverAudit2").remove();
+                            document1.getElementById("carAudit2").remove();
 
                             Element reward2_user = document1.getElementById("reward2_user");
                             reward2_user.text("Bonjour " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -1782,6 +2174,49 @@
                             reward2_content.text("Accumulé en ligne pendant " + dao.getOnline() + " heure aujourd’hui, obtenez la récompense GHS " + dah.getMoney() + ", s’il vous plaît vérifier");
                         }
                         EmailUtil.send(driver.getEmail(), language == 1 ? "在线时长奖励" : language == 2 ? "Online Time Rewards" : "Récompenses de temps en ligne", document1.html());
+                        String randomString = ToolUtil.getRandomString(10);
+                        //开始生成pdf收据和html收据
+                        File file = new File("/usr/local/nginx/html/files/html/");
+                        if(!file.exists()){
+                            file.mkdirs();
+                        }
+                        file = new File("/usr/local/nginx/html/files/html/rewards_" + randomString + ".html");
+                        if(!file.exists()){
+                            file.createNewFile();
+                        }
+                        FileWriter fileWriter = new FileWriter(file);
+                        fileWriter.write(document1.html());
+                        fileWriter.flush();
+                        fileWriter.close();
+                        FileInputStream fileInputStream = new FileInputStream(file);
+                        File file1 = new File("/usr/local/nginx/html/files/pdf/");
+                        if(!file1.exists()){
+                            file1.mkdirs();
+                        }
+                        file1 = new File("/usr/local/nginx/html/files/pdf/rewards_" + randomString + ".pdf");
+                        if(!file1.exists()){
+                            file1.createNewFile();
+                        }
+                        FileOutputStream fileOutputStream = new FileOutputStream(file1);
+                        HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
+
+                        String link ="http://182.160.16.251:81/files/html/rewards_" + randomString + ".html";
+                        TEmail tEmail = new TEmail();
+                        tEmail.setLink(link);
+                        tEmail.setUserId(driver.getId());
+                        tEmail.setType(2);
+                        tEmail.setName(language == 1 ? "在线时长奖励" : language == 2 ? "Online Time Rewards" : "Récompenses de temps en ligne");
+                        tEmail.setCreateTime(new Date());
+                        int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+                        String week = EmailUtil.getWeek(language, i);
+                        tEmail.setWeek(week);
+                        boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+                        if(am){
+                            tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée");
+                        }else {
+                            tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi");
+                        }
+                        emailService.insert(tEmail);
                     }
                 }
             }
@@ -1809,20 +2244,20 @@
                 incomeService.saveData(2, dah.getDriverId(), 1, dao.getId(), null, dah.getMoney());
 
                 if(ToolUtil.isNotEmpty(driver.getEmail())) {
-                    String path1 = templatePath + "index.html";
+                    String path1 = templatePath + "driver/index.html";
                     Document document1 = Jsoup.parse(new File(path1), "UTF-8");
                     if (1 == language) {
-                        document1.getElementById("english").attr("style", "display: none;");
-                        document1.getElementById("french").attr("style", "display: none;");
-                        document1.getElementById("invite").attr("style", "display: none;");
-                        document1.getElementById("user").attr("style", "display: none;");
-                        document1.getElementById("settle").attr("style", "display: none;");
-                        document1.getElementById("pass").attr("style", "display: none;");
-                        document1.getElementById("email").attr("style", "display: none;");
-                        document1.getElementById("bill").attr("style", "display: none;");
-                        document1.getElementById("rewardToday").attr("style", "display: none;");
-                        document1.getElementById("driverAudit").attr("style", "display: none;");
-                        document1.getElementById("carAudit").attr("style", "display: none;");
+                        document1.getElementById("english").remove();
+                        document1.getElementById("french").remove();
+                        document1.getElementById("invite").remove();
+                        document1.getElementById("user").remove();
+                        document1.getElementById("settle").remove();
+                        document1.getElementById("pass").remove();
+                        document1.getElementById("email").remove();
+                        document1.getElementById("bill").remove();
+                        document1.getElementById("rewardToday").remove();
+                        document1.getElementById("driverAudit").remove();
+                        document1.getElementById("carAudit").remove();
 
                         Element reward_user = document1.getElementById("reward_user");
                         reward_user.text("您好 " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -1830,17 +2265,17 @@
                         reward_content.text("今日累计接单 " + dao.getOrderNum() + "单,获得奖励GHS" + dah.getMoney() + ",请查收");
                     }
                     if (2 == language) {
-                        document1.getElementById("chinese").attr("style", "display: none;");
-                        document1.getElementById("french").attr("style", "display: none;");
-                        document1.getElementById("invite1").attr("style", "display: none;");
-                        document1.getElementById("user1").attr("style", "display: none;");
-                        document1.getElementById("settle1").attr("style", "display: none;");
-                        document1.getElementById("pass1").attr("style", "display: none;");
-                        document1.getElementById("email1").attr("style", "display: none;");
-                        document1.getElementById("bill1").attr("style", "display: none;");
-                        document1.getElementById("rewardToday1").attr("style", "display: none;");
-                        document1.getElementById("driverAudit1").attr("style", "display: none;");
-                        document1.getElementById("carAudit1").attr("style", "display: none;");
+                        document1.getElementById("chinese").remove();
+                        document1.getElementById("french").remove();
+                        document1.getElementById("invite1").remove();
+                        document1.getElementById("user1").remove();
+                        document1.getElementById("settle1").remove();
+                        document1.getElementById("pass1").remove();
+                        document1.getElementById("email1").remove();
+                        document1.getElementById("bill1").remove();
+                        document1.getElementById("rewardToday1").remove();
+                        document1.getElementById("driverAudit1").remove();
+                        document1.getElementById("carAudit1").remove();
 
                         Element reward1_user = document1.getElementById("reward1_user");
                         reward1_user.text("Hello " + driver.getFirstName() + "" + driver.getLastName() + ",");
@@ -1848,24 +2283,68 @@
                         reward1_content.text("A total of " + dao.getOrderNum() + " orders have been received today, and the reward GHS" + dah.getMoney() + " will be awarded, please check");
                     }
                     if (3 == language) {
-                        document1.getElementById("chinese").attr("style", "display: none;");
-                        document1.getElementById("english").attr("style", "display: none;");
-                        document1.getElementById("invite2").attr("style", "display: none;");
-                        document1.getElementById("user2").attr("style", "display: none;");
-                        document1.getElementById("settle2").attr("style", "display: none;");
-                        document1.getElementById("pass2").attr("style", "display: none;");
-                        document1.getElementById("email2").attr("style", "display: none;");
-                        document1.getElementById("bill2").attr("style", "display: none;");
-                        document1.getElementById("rewardToday2").attr("style", "display: none;");
-                        document1.getElementById("driverAudit2").attr("style", "display: none;");
-                        document1.getElementById("carAudit2").attr("style", "display: none;");
+                        document1.getElementById("chinese").remove();
+                        document1.getElementById("english").remove();
+                        document1.getElementById("invite2").remove();
+                        document1.getElementById("user2").remove();
+                        document1.getElementById("settle2").remove();
+                        document1.getElementById("pass2").remove();
+                        document1.getElementById("email2").remove();
+                        document1.getElementById("bill2").remove();
+                        document1.getElementById("rewardToday2").remove();
+                        document1.getElementById("driverAudit2").remove();
+                        document1.getElementById("carAudit2").remove();
 
                         Element reward2_user = document1.getElementById("reward2_user");
                         reward2_user.text("Bonjour " + driver.getFirstName() + "" + driver.getLastName() + ",");
                         Element reward2_content = document1.getElementById("reward2_content");
                         reward2_content.text("Un total de " + dao.getOrderNum() + " commandes ont été reçues aujourd’hui, et la récompense GHS " + dah.getMoney() + " sera décernée, s’il vous plaît vérifier");
                     }
+
                     EmailUtil.send(driver.getEmail(), language == 1 ? "累计接单奖励" : language == 2 ? "Cumulative Order Rewards" : "Récompenses de commande cumulées", document1.html());
+                    String randomString = ToolUtil.getRandomString(10);
+                    //开始生成pdf收据和html收据
+                    File file = new File("/usr/local/nginx/html/files/html/");
+                    if(!file.exists()){
+                        file.mkdirs();
+                    }
+                    file = new File("/usr/local/nginx/html/files/html/rewards_" + randomString + ".html");
+                    if(!file.exists()){
+                        file.createNewFile();
+                    }
+                    FileWriter fileWriter = new FileWriter(file);
+                    fileWriter.write(document1.html());
+                    fileWriter.flush();
+                    fileWriter.close();
+                    FileInputStream fileInputStream = new FileInputStream(file);
+                    File file1 = new File("/usr/local/nginx/html/files/pdf/");
+                    if(!file1.exists()){
+                        file1.mkdirs();
+                    }
+                    file1 = new File("/usr/local/nginx/html/files/pdf/rewards_" + randomString + ".pdf");
+                    if(!file1.exists()){
+                        file1.createNewFile();
+                    }
+                    FileOutputStream fileOutputStream = new FileOutputStream(file1);
+                    HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
+
+                    String link ="http://182.160.16.251:81/files/html/rewards_" + randomString + ".html";
+                    TEmail tEmail = new TEmail();
+                    tEmail.setLink(link);
+                    tEmail.setUserId(driver.getId());
+                    tEmail.setType(2);
+                    tEmail.setName(language == 1 ? "累计接单奖励" : language == 2 ? "Cumulative Order Rewards" : "Récompenses de commande cumulées");
+                    tEmail.setCreateTime(new Date());
+                    int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
+                    String week = EmailUtil.getWeek(language, i);
+                    tEmail.setWeek(week);
+                    boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
+                    if(am){
+                        tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée");
+                    }else {
+                        tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi");
+                    }
+                    emailService.insert(tEmail);
                 }
             }
         }
@@ -2310,6 +2789,7 @@
      * @param id
      */
     private void singlePointLogin(Integer id){
+        pushUtil.pushOffline(id, 2);
         //开始验证当前账号是否在别处登录
         String value = redisUtil.getValue("DRIVER_" + id);
         if(ToolUtil.isNotEmpty(value)){//将另外设备上的强迫下线(如果是车载端不需要下线)
@@ -2320,6 +2800,7 @@
             redisUtil.remove("DRIVER_" + driver.getPhone());//删除后台冻结相关缓存
             redisUtil.remove("DRIVER_" + id);//清除存储的token
         }
+
     }
 
     @Override

--
Gitblit v1.7.1