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