From 49ffecc181ee442546864c0eb78ba9be66cede15 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 09 九月 2023 10:36:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/TEmailService.java                         |   17 +
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java                |  439 +++++++++++++++++++++++++++
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java                |   18 
 DriverIGOTravel/guns-admin/pom.xml                                                                                            |    5 
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TEmailMapper.java                              |   17 +
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TEmail.java                                  |   65 ++++
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java                                 |   86 ++---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java                                  |   13 
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java                                 |   50 +-
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TEmailServiceImpl.java                |   20 +
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java                                |   79 ++++
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java |  106 ++++++
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TEmailMapper.xml                       |   13 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java                        |    3 
 14 files changed, 846 insertions(+), 85 deletions(-)

diff --git a/DriverIGOTravel/guns-admin/pom.xml b/DriverIGOTravel/guns-admin/pom.xml
index 29d890a..3114238 100644
--- a/DriverIGOTravel/guns-admin/pom.xml
+++ b/DriverIGOTravel/guns-admin/pom.xml
@@ -86,6 +86,11 @@
         </dependency>
 
         <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+        </dependency>
+
+        <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-tomcat</artifactId>
             <scope>provided</scope>
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
index 6973e29..a989545 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -1,6 +1,7 @@
 package com.stylefeng.guns.modular.api;
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
@@ -8,10 +9,7 @@
 import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
 import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
 import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
-import com.stylefeng.guns.modular.system.model.City;
-import com.stylefeng.guns.modular.system.model.Driver;
-import com.stylefeng.guns.modular.system.model.Income;
-import com.stylefeng.guns.modular.system.model.OrderPosition;
+import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.ALiSendSms;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
@@ -80,6 +78,9 @@
 
     @Value("${share.url}")
     private String shareUrl;
+
+    @Autowired
+    private TEmailService emailService;
 
 
 
@@ -367,6 +368,25 @@
     }
 
 
+    @ResponseBody
+    @PostMapping("/api/driver/getEmailList")
+    @ApiOperation(value = "获取邮箱信息", tags = {"司机端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<?> getEmailList(HttpServletRequest request){
+        try {
+            Integer uid = driverService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return ResultUtil.success(emailService.selectList(new EntityWrapper<TEmail>().eq("userId",uid).eq("type",2).orderBy("createTime",false)));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
 
     /**
      * 司机注册后完善车辆信息
@@ -476,7 +496,6 @@
         }
     }
 
-
     /**
      * 获取忘记密码页面的电话
      * @return
@@ -553,7 +572,6 @@
             return ResultUtil.runErr();
         }
     }
-
 
     /**
      * 司机上下班操作
@@ -635,7 +653,6 @@
         }
     }
 
-
     @ResponseBody
     @PostMapping("/api/driver/work2")
     @ApiOperation(value = "司机上下班操作,同时设置接单类型【1.0】", tags = {"司机端-车载端"}, notes = "")
@@ -656,7 +673,6 @@
         }
     }
 
-
     @ResponseBody
     @PostMapping("/api/driver/queryHomeNum")
     @ApiOperation(value = "获取首页统计数据", tags = {"司机端-车载端"}, notes = "")
@@ -676,8 +692,6 @@
             return ResultUtil.runErr();
         }
     }
-
-
 
     /**
      * 上班时选择的业务类型
@@ -713,7 +727,6 @@
         }
     }
 
-
     /**
      * 存储订单服务中的司机位置
      * @param orderPosition
@@ -731,8 +744,6 @@
         }
     }
 
-
-
     @ResponseBody
     @PostMapping("/base/driver/queryInfo_")
     @ApiOperation(value = "根据用户id获取数据", tags = {"司机端-注册"}, notes = "")
@@ -748,9 +759,6 @@
             return ResultUtil.runErr();
         }
     }
-
-
-
 
     /**
      * 获取个人中心详情
@@ -781,7 +789,6 @@
             return ResultUtil.runErr();
         }
     }
-
 
     /**
      * 修改手机号码
@@ -854,8 +861,6 @@
         }
     }
 
-
-
     /**
      * 修改密码
      * @param password
@@ -882,7 +887,6 @@
             return ResultUtil.runErr();
         }
     }
-
 
     /**
      * 获取设置接单的业务类型列表
@@ -918,10 +922,6 @@
         }
     }
 
-
-
-
-
     /**
      * 设置接单规则
      * @param type
@@ -948,7 +948,6 @@
         }
     }
 
-
     /**
      * 获取当前车辆及空闲车辆
      * @param request
@@ -973,7 +972,6 @@
             return ResultUtil.runErr();
         }
     }
-
 
     /**
      * 更换车辆
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
index a15d0ca..d1042cc 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -90,6 +90,10 @@
     private ITransactionDetailsService transactionDetailsService;
 
 
+    @Autowired
+    private TEmailService emailService;
+
+
 
 
 
@@ -413,6 +417,26 @@
                     }
                     FileOutputStream fileOutputStream = new FileOutputStream(file1);
                     HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
+
+                    String link ="http://182.160.16.251:81/files/html/parcel_receipt_" + orderId + ".html";
+                    TEmail tEmail = new TEmail();
+                    tEmail.setLink(link);
+                    tEmail.setUserId(userInfo.getId());
+                    tEmail.setType(1);
+                    tEmail.setName(language == 1 ? "包裹收据" : language == 2 ? "Parcel receipt" : "Réception de colis");
+                    tEmail.setOrderId(orderId);
+                    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);
+
                 }
             }
             if(orderLogistics.getPayType() == 2){
@@ -542,6 +566,26 @@
                     }
                     FileOutputStream fileOutputStream = new FileOutputStream(file1);
                     HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
+
+                    String link ="http://182.160.16.251:81/files/html/parcel_receipt_" + orderId + ".html";
+                    TEmail tEmail = new TEmail();
+                    tEmail.setLink(link);
+                    tEmail.setUserId(userInfo.getId());
+                    tEmail.setType(1);
+                    tEmail.setName(language == 1 ? "包裹收据" : language == 2 ? "Parcel receipt" : "Réception de colis");
+                    tEmail.setOrderId(orderId);
+                    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);
+
                 }
             }
             if(orderLogistics.getPayType() == 3){
@@ -671,6 +715,25 @@
                     }
                     FileOutputStream fileOutputStream = new FileOutputStream(file1);
                     HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
+
+                    String link ="http://182.160.16.251:81/files/html/parcel_receipt_" + orderId + ".html";
+                    TEmail tEmail = new TEmail();
+                    tEmail.setLink(link);
+                    tEmail.setUserId(userInfo.getId());
+                    tEmail.setType(1);
+                    tEmail.setName(language == 1 ? "包裹收据" : language == 2 ? "Parcel receipt" : "Réception de colis");
+                    tEmail.setOrderId(orderId);
+                    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);
                 }
             }
         }
@@ -901,6 +964,49 @@
                 email2_content.text("Vous êtes lié à une adresse e-mail. Le code de vérification e-mail pour cette demande est: " + random + ". Veuillez compléter la vérification dans les 5 minutes");
             }
             EmailUtil.send(userInfo.getEmail(), language == 1 ? "取件码" : language == 2 ? "Pickup code" : "Code de prise en charge",  document.html());
+            //开始生成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/code_" + orderId + ".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/code_" + orderId + ".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/code_" + orderId + ".html";
+            TEmail tEmail = new TEmail();
+            tEmail.setLink(link);
+            tEmail.setUserId(userInfo.getId());
+            tEmail.setType(1);
+            tEmail.setName(language == 1 ? "取件码" : language == 2 ? "Pickup code" : "Code de prise en charge");
+            tEmail.setOrderId(orderId);
+            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);
         }
 
     }
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TEmailMapper.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TEmailMapper.java
new file mode 100644
index 0000000..2791eec
--- /dev/null
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TEmailMapper.java
@@ -0,0 +1,17 @@
+package com.stylefeng.guns.modular.system.dao;
+
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.TEmail;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author administrator
+ * @since 2023-09-01
+ */
+public interface TEmailMapper extends BaseMapper<TEmail> {
+
+}
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TEmailMapper.xml b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TEmailMapper.xml
new file mode 100644
index 0000000..ee7f596
--- /dev/null
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TEmailMapper.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.TEmailMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.TEmail">
+        <id column="id" property="id" />
+        <result column="userId" property="userId" />
+        <result column="type" property="type" />
+        <result column="link" property="link" />
+    </resultMap>
+
+</mapper>
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TEmail.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TEmail.java
new file mode 100644
index 0000000..76c1dbf
--- /dev/null
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TEmail.java
@@ -0,0 +1,65 @@
+package com.stylefeng.guns.modular.system.model;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author administrator
+ * @since 2023-09-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_email")
+public class TEmail extends Model<TEmail> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 用户id
+     */
+    @TableField("userId")
+    private Integer userId;
+
+    /**
+     * 1用户2司机
+     */
+    private Integer type;
+
+    /**
+     * html 链接
+     */
+    private String link;
+    @TableField("orderId")
+    private Integer orderId;
+    @TableField("createTime")
+    private Date createTime;
+    private String week;
+    @TableField("amOrPm")
+    private String amOrPm;
+
+    private String name;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/TEmailService.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/TEmailService.java
new file mode 100644
index 0000000..89bc94c
--- /dev/null
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/TEmailService.java
@@ -0,0 +1,17 @@
+package com.stylefeng.guns.modular.system.service;
+
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.TEmail;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author administrator
+ * @since 2023-09-01
+ */
+public interface TEmailService extends IService<TEmail> {
+
+}
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 09b6696..65cb1ba 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.*;
@@ -145,6 +149,10 @@
 
     @Autowired
     private SMSUtil smsUtil;
+
+
+    @Autowired
+    private TEmailService emailService;
 
 
     @Override
@@ -382,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);
                 }
 
             }
@@ -613,6 +664,49 @@
                 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();
@@ -692,6 +786,49 @@
                 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分钟后失效,请及时登录!");
@@ -1159,6 +1296,49 @@
                 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);
         }
     }
 
@@ -1468,6 +1648,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);
                     }
                 }
             }
@@ -1549,6 +1772,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);
                     }
                 }
             }
@@ -1631,6 +1897,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);
                     }
                 }
             }
@@ -1713,6 +2022,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);
                     }
                 }
             }
@@ -1811,6 +2163,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);
                     }
                 }
             }
@@ -1894,7 +2289,51 @@
                         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);
                 }
             }
         }
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TEmailServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TEmailServiceImpl.java
new file mode 100644
index 0000000..a9e7cda
--- /dev/null
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TEmailServiceImpl.java
@@ -0,0 +1,20 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.TEmailMapper;
+import com.stylefeng.guns.modular.system.model.TEmail;
+import com.stylefeng.guns.modular.system.service.TEmailService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author administrator
+ * @since 2023-09-01
+ */
+@Service
+public class TEmailServiceImpl extends ServiceImpl<TEmailMapper, TEmail> implements TEmailService {
+
+}
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java
index 161ecd9..0d8a9b0 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java
@@ -96,4 +96,83 @@
         transport.close();
         return true;
     }
+
+
+    public static String getWeek(int language,int i){
+        String week="";
+        if(language==1){
+            switch (i){
+                case 1:
+                    week="星期一";
+                    break;
+                case 2:
+                    week="星期二";
+                    break;
+                case 3:
+                    week="星期三";
+                    break;
+                case 4:
+                    week="星期四";
+                    break;
+                case 5:
+                    week="星期五";
+                    break;
+                case 6:
+                    week="星期六";
+                    break;
+                case 7:
+                    week="星期天";
+                    break;
+            }
+        }else if(language==2){
+            switch (i){
+                case 1:
+                    week="Monday";
+                    break;
+                case 2:
+                    week="Tuesday";
+                    break;
+                case 3:
+                    week="Wednesday";
+                    break;
+                case 4:
+                    week="Thursday";
+                    break;
+                case 5:
+                    week="Friday";
+                    break;
+                case 6:
+                    week="Saturday";
+                    break;
+                case 7:
+                    week="Sunday";
+                    break;
+            }
+        }else {
+            switch (i) {
+                case 1:
+                    week = "lundi";
+                    break;
+                case 2:
+                    week = "Mardi mardi ";
+                    break;
+                case 3:
+                    week = "mercredi";
+                    break;
+                case 4:
+                    week = "jeudi";
+                    break;
+                case 5:
+                    week = "vendredi";
+                    break;
+                case 6:
+                    week = "Samedi samedi";
+                    break;
+                case 7:
+                    week = "dimanche";
+                    break;
+            }
+        }
+        return week;
+    }
 }
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
index 5ff94df..7138ccb 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
@@ -116,8 +116,6 @@
         }
     }
 
-
-
     /**
      * 获取短信验证码
      * @param phone
@@ -158,8 +156,6 @@
         }
     }
 
-
-
     @ResponseBody
     @PostMapping("/base/queryCaptcha1")
     @ApiOperation(value = "获取短信验证码", tags = {"用户端-登录"}, notes = "")
@@ -187,10 +183,6 @@
         }
     }
 
-
-
-
-
     @ResponseBody
     @PostMapping("/base/sedEmail")
     @ApiOperation(value = "获取邮箱验证码【1.0】", tags = {"用户端-登录"}, notes = "")
@@ -199,22 +191,33 @@
     })
     public ResultUtil sedEmail(String email, Integer language, HttpServletRequest request){
         try {
+
             Integer uid = userInfoService.getUserIdFormRedis(request);
+
             if(ToolUtil.isEmpty(email)){
                 return ResultUtil.error(language == 1 ? "邮箱不能为空" : language == 2 ? "The mailbox cannot be empty" : "L’email ne peut pas être vide");
             }
+
             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();
+
             redisUtil.setStrValue(email, authCode, 5 * 60);
 
             UserInfo userInfo = userInfoService.selectById(uid);
+
             String nickName = "";
+
             if(null != userInfo){
+
                 nickName = userInfo.getNickName();
+
             }
 
             if(ToolUtil.isNotEmpty(email)){
@@ -252,9 +255,6 @@
             return ResultUtil.runErr();
         }
     }
-
-
-
 
     /**
      * 手机验证码登录
@@ -304,8 +304,6 @@
         }
     }
 
-
-
     /**
      * 手机验证码登录
      * @param phone
@@ -353,10 +351,6 @@
         }
     }
 
-
-
-
-
     /**
      * 账号密码登录
      * @param phone
@@ -389,7 +383,6 @@
             return ResultUtil.paranErr();
         }
     }
-
 
     /**
      * 忘记密码
@@ -425,7 +418,6 @@
             return ResultUtil.paranErr();
         }
     }
-
 
     /**
      * 微信授权登录
@@ -480,7 +472,6 @@
         }
     }
 
-
     @ResponseBody
     @PostMapping("/base/user/facebookLogin")
     @ApiOperation(value = "FaceBook授权登录【1.0】", tags = {"用户端-登录"}, notes = "")
@@ -496,15 +487,33 @@
     })
     public ResultUtil facebookLogin(String id, String name, String email, Double lat, Double lng, Integer uid, Integer language){
         try {
-            return userInfoService.facebookLogin(id, name, email, lat, lng, uid, language);
+            return userInfoService.facebookLogin(id, name, email, lat, lng, uid, language,1);
         }catch (Exception e){
             e.printStackTrace();
             return ResultUtil.runErr();
         }
     }
-
-
-
+    @ResponseBody
+    @PostMapping("/base/user/twitterLogin")
+    @ApiOperation(value = "twitter授权登录【1.0】", tags = {"用户端-登录"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "twitter用户id", name = "id", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "twitter用户名称", name = "name", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "twitter绑定的email", name = "email", required = false, dataType = "String"),
+            @ApiImplicitParam(value = "头像", name = "avatar", required = false, dataType = "String"),
+            @ApiImplicitParam(value = "性别(1=男,2=女)", name = "sex", required = false, dataType = "int"),
+            @ApiImplicitParam(value = "纬度", name = "lat", required = false, dataType = "double"),
+            @ApiImplicitParam(value = "经度", name = "lng", required = false, dataType = "double"),
+            @ApiImplicitParam(value = "分享的用户id", name = "uid", required = false, dataType = "int"),
+    })
+    public ResultUtil twitterLogin(String id, String name, String email, Double lat, Double lng, Integer uid, Integer language){
+        try {
+            return userInfoService.facebookLogin(id, name, email, lat, lng, uid, language,2);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
 
     /**
      * 设置电话号码
@@ -556,7 +565,6 @@
         }
     }
 
-
     @ResponseBody
     @PostMapping("/api/user/bindingEmail")
     @ApiOperation(value = "设置邮箱地址【1.0】", tags = {"用户端-登录"}, notes = "")
@@ -598,9 +606,6 @@
         }
     }
 
-
-
-
     /**
      * 获取用户个人信息
      * @param request
@@ -625,7 +630,6 @@
             return ResultUtil.runErr();
         }
     }
-
 
     /**
      * 手机号码获取用户
@@ -659,7 +663,6 @@
         }
     }
 
-
     /**
      * 实名认证操作
      * @param verifiedWarpper
@@ -684,7 +687,6 @@
             return ResultUtil.runErr();
         }
     }
-
 
     /**
      * 设置紧急联系人
@@ -722,7 +724,6 @@
         }
     }
 
-
     /**
      * 用户充值余额
      * @param payType
@@ -752,7 +753,6 @@
             return ResultUtil.runErr();
         }
     }
-
 
     /**
      * 修改手机号码
@@ -837,8 +837,6 @@
         }
     }
 
-
-
     /**
      * 修改登录密码
      * @param password
@@ -864,7 +862,6 @@
             return ResultUtil.runErr();
         }
     }
-
 
     /**
      * 修改个人信息
@@ -902,7 +899,6 @@
         }
     }
 
-
     @ResponseBody
     @PostMapping("/api/user/queryRealName")
     @ApiOperation(value = "获取实名认证的数据", tags = {"用户端-个人中心"}, notes = "")
@@ -923,7 +919,6 @@
         }
     }
 
-
     /**
      * 后台调用禁用用户
      * @param uid
@@ -943,7 +938,6 @@
             return ResultUtil.runErr();
         }
     }
-
 
     /**
      * 仿socket接口(单点登录)
@@ -1033,8 +1027,6 @@
         }
     }
 
-
-
     @ResponseBody
     @PostMapping("/api/user/editLanguage")
     @ApiOperation(value = "修改多语言配置", tags = {"用户端-个人中心"}, notes = "")
@@ -1058,7 +1050,6 @@
         }
     }
 
-
     @ResponseBody
     @PostMapping("/base/user/addReportLoss")
     @ApiOperation(value = "提交报失", tags = {"用户端-个人中心"}, notes = "")
@@ -1078,8 +1069,6 @@
         }
     }
 
-
-
     @ResponseBody
     @PostMapping("/base/user/queryOrderLicensePlate")
     @ApiOperation(value = "获取报失也车牌等信息", tags = {"用户端-个人中心"}, notes = "")
@@ -1097,8 +1086,6 @@
         }
     }
 
-
-
     @ResponseBody
     @RequestMapping("/base/user/image")
     public String image(@RequestPart("file") MultipartFile file) {
@@ -1109,8 +1096,6 @@
             return null;
         }
     }
-
-
 
     @ResponseBody
     @PostMapping("/api/user/queryBankCardList")
@@ -1139,8 +1124,6 @@
             return ResultUtil.runErr();
         }
     }
-
-
 
     @ResponseBody
     @PostMapping("/api/user/addBankCard")
@@ -1184,8 +1167,6 @@
         }
     }
 
-
-
     @ResponseBody
     @PostMapping("/api/user/delBankCard")
     @ApiOperation(value = "删除银行卡【1.1】", tags = {"用户端-个人中心"}, notes = "")
@@ -1202,7 +1183,6 @@
             return ResultUtil.runErr();
         }
     }
-
 
     /**
      * 下载pdf
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
index 20d50dc..d36d466 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
@@ -172,6 +172,19 @@
      */
     @TableField("language")
     private Integer language;
+    /**
+     * 推特id
+     */
+    @TableField("twitterId")
+    private String twitterId;
+
+    public String getTwitterId() {
+        return twitterId;
+    }
+
+    public void setTwitterId(String twitterId) {
+        this.twitterId = twitterId;
+    }
 
     public Integer getuType() {
         return uType;
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java
index 49df073..9533856 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java
@@ -90,7 +90,7 @@
      * @return
      * @throws Exception
      */
-    ResultUtil facebookLogin(String id, String name, String email, Double lat, Double lng, Integer uid, Integer language) throws Exception;
+    ResultUtil facebookLogin(String id, String name, String email, Double lat, Double lng, Integer uid, Integer language,int type) throws Exception;
 
 
     /**
@@ -249,4 +249,5 @@
      * @return
      */
     Integer queryLanguage(Integer uid, Integer language);
+
 }
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
index a05a44d..c74a29b 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -414,6 +414,7 @@
                         emailService.insert(tEmail);
                     }
                 }
+
                 if(type == 1){//用户分享
                     UserInfo userInfo1 = userInfoMapper.selectById(uid);
                     List<Map<String, Object>> query = userActivityInviteMapper.query(userInfo1.getCompanyId());
@@ -928,8 +929,13 @@
 
 
     @Override
-    public ResultUtil facebookLogin(String id, String name, String email, Double lat, Double lng, Integer uid, Integer language) throws Exception {
-        UserInfo userInfo = this.selectOne(new EntityWrapper<UserInfo>().eq("faceBookId", id).ne("flag", 3));
+    public ResultUtil facebookLogin(String id, String name, String email, Double lat, Double lng, Integer uid, Integer language,int type) throws Exception {
+        UserInfo userInfo=null;
+        if(type==1){
+             userInfo = this.selectOne(new EntityWrapper<UserInfo>().eq("faceBookId", id).ne("flag", 3));
+        }else {
+             userInfo = this.selectOne(new EntityWrapper<UserInfo>().eq("twitterId", id).ne("flag", 3));
+        }
         if(null == userInfo){
             userInfo = new UserInfo();
             userInfo.setEmail(email);
@@ -939,7 +945,11 @@
             userInfo.setBalance(0D);
             userInfo.setIntegral(0);
             userInfo.setPassWord(ShiroKit.md5("", salt));
-            userInfo.setFaceBookId(id);
+            if(type==1){
+                userInfo.setFaceBookId(id);
+            }else {
+                userInfo.setTwitterId(id);
+            }
             userInfo.setState(1);
             userInfo.setFlag(1);
             userInfo.setInsertTime(new Date());
@@ -1036,8 +1046,6 @@
                 }
                 emailService.insert(tEmail);
             }
-
-
             this.addCoupon(userInfo, language);//添加优惠券
         }
 

--
Gitblit v1.7.1