From 302b40b8702f3b203223bacf71d44d76c5a598c0 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 13 十二月 2023 01:13:14 +0800 Subject: [PATCH] 修改bug --- ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java | 124 ++++++++++++++++++++++++++++++++++++++++- 1 files changed, 120 insertions(+), 4 deletions(-) diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java index e7a8078..83a8beb 100644 --- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java +++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java @@ -1,23 +1,37 @@ package com.stylefeng.guns.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.util.ToolUtil; +import com.stylefeng.guns.modular.system.model.TEmail; +import com.stylefeng.guns.modular.system.model.TUser; +import com.stylefeng.guns.modular.system.model.User; import com.stylefeng.guns.modular.system.model.UserActivityDiscount1; import com.stylefeng.guns.modular.system.dao.UserActivityDiscount1Mapper; import com.stylefeng.guns.modular.system.service.ITCompanyService; +import com.stylefeng.guns.modular.system.service.ITUserService; import com.stylefeng.guns.modular.system.service.IUserActivityDiscount1Service; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.stylefeng.guns.modular.system.service.TEmailService; +import com.stylefeng.guns.modular.system.util.EmailUtil; +import com.stylefeng.guns.modular.system.util.itextpdf.HtmlToPdfUtils; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.util.CellRangeAddress; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.text.SimpleDateFormat; +import java.util.*; /** * <p> @@ -35,6 +49,15 @@ @Autowired private ITCompanyService companyService; + + @Autowired + private ITUserService userService; + + @Value("${spring.mail.template-path}") + private String templatePath; + + @Autowired + private TEmailService emailService; /** @@ -265,4 +288,97 @@ } return hssfWorkbook; } + + + /** + * 发送活动提醒邮件 + */ + @Override + public void sendActivityEmail() { + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + List<UserActivityDiscount1> lis = this.selectList(new EntityWrapper<UserActivityDiscount1>().eq("enable", 2).last(" and DATE_FORMAT(startTime, '%Y-%m-%d') = '" + sdf.format(new Date()) + "'")); + if(lis.size() > 0){ + List<TUser> tUsers = userService.selectList(new EntityWrapper<TUser>().ne("flag", 3).eq("state", 1)); + for (UserActivityDiscount1 uad : lis) { + Map<String, Double> map = new HashMap<>(); + Double special = uad.getSpecial(); + if(null != special){ + map.put("ride", special * 10); + } + Double logistics = uad.getLogistics(); + if(null != special){ + map.put("package", logistics * 10); + } + Set<String> strings = map.keySet(); + + for (TUser user : tUsers) { + if(ToolUtil.isNotEmpty(user.getEmail())){ + for (String key : strings) { + Double aDouble = map.get(key); + String path1 = templatePath + "user/discount.html"; + Document document1 = Jsoup.parse(new File(path1), "UTF-8"); + document1.getElementById("chinese").remove(); + document1.getElementById("french").remove(); + document1.getElementsByTag("title").get(0).text("I-GO Discount activity"); + Element english_user = document1.getElementById("english_user"); + english_user.text("Hello " + user.getNickName() + ","); + Element english_ride = document1.getElementById("english_ride"); + english_ride.text("Discount for I-GO " + key); + Element english_discount = document1.getElementById("english_discount"); + english_discount.text(" Enjoy " + aDouble + "% off your trip fare."); + EmailUtil.send(user.getEmail(), "I-GO Discount activity", document1.html()); + //开始生成pdf收据和html收据 + File file = new File("/usr/local/nginx/html/files/html/"); + if(!file.exists()){ + file.mkdirs(); + } + String randomString = ToolUtil.getRandomString(10); + file = new File("/usr/local/nginx/html/files/html/discount_" + 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/discount_" + 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/discount_" + randomString + ".html"; + TEmail tEmail = new TEmail(); + tEmail.setLink(link); + tEmail.setUserId(user.getId()); + tEmail.setType(1); + tEmail.setName("I-GO Discount activity"); + tEmail.setCreateTime(new Date()); + int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1; + tEmail.setWeek(EmailUtil.getWeek(2,i)); + boolean am = cn.hutool.core.date.DateUtil.isAM(new Date()); + if(am){ + tEmail.setAmOrPm("AM"); + }else { + tEmail.setAmOrPm("PM"); + } + emailService.insert(tEmail); + } + + } + } + } + } + }catch (Exception e){ + e.printStackTrace(); + } + + } } -- Gitblit v1.7.1