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> 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(); } } /** * 更换车辆 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); } } DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TEmailMapper.java
New file @@ -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> { } DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TEmailMapper.xml
New file @@ -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> DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TEmail.java
New file @@ -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; } } DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/TEmailService.java
New file @@ -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> { } 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); } } } DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TEmailServiceImpl.java
New file @@ -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 { } 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; } } 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 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; 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); } 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);//添加优惠券 }