From 81a947d8dbf0dce48aa4c779107690f3a54cc7c5 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 15 十二月 2023 14:43:58 +0800
Subject: [PATCH] 修改bug

---
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysCouponActivityController.java |   98 ++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 93 insertions(+), 5 deletions(-)

diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysCouponActivityController.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysCouponActivityController.java
index fbd5c46..6739784 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysCouponActivityController.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/SysCouponActivityController.java
@@ -13,11 +13,16 @@
 import com.stylefeng.guns.core.util.DateUtil;
 import com.stylefeng.guns.core.util.SinataUtil;
 import com.stylefeng.guns.core.util.ToolUtil;
-import com.stylefeng.guns.modular.system.model.SysCouponRecord;
-import com.stylefeng.guns.modular.system.model.TUser;
-import com.stylefeng.guns.modular.system.model.UserCouponRecord;
+import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.ISysCouponRecordService;
 import com.stylefeng.guns.modular.system.service.ITUserService;
+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.jsoup.Jsoup;
+import org.jsoup.nodes.Document;
+import org.jsoup.nodes.Element;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
@@ -26,9 +31,13 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import com.stylefeng.guns.core.log.LogObjectHolder;
 import org.springframework.web.bind.annotation.RequestParam;
-import com.stylefeng.guns.modular.system.model.SysCouponActivity;
 import com.stylefeng.guns.modular.system.service.ISysCouponActivityService;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -51,6 +60,12 @@
 
     @Autowired
     private ISysCouponRecordService couponRecordService;
+
+    @Value("${spring.mail.template-path}")
+    private String templatePath;
+
+    @Autowired
+    private TEmailService emailService;
 
     /**
      * 跳转到首页
@@ -204,6 +219,7 @@
             userCouponRecord.setCouponActivityId(sysCouponActivity.getId());
             userCouponRecord.setActivityType(1);
             //判断发送类型1=全部用户,2=选择用户
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             if(sysCouponActivity.getSendType()==1){
                 Wrapper wrapper = new EntityWrapper<TUser>();
                 if(sysCouponActivity.getCompanyType()!=1){
@@ -215,6 +231,15 @@
                     for (int i=0;i<sysCouponActivity.getNumber();i++){
                         userCouponRecord.insert();
                     }
+                    String email = user.getEmail();
+                    if(ToolUtil.isNotEmpty(email)){
+                        Date expirationTime = userCouponRecord.getExpirationTime();
+                        String e = com.stylefeng.guns.modular.system.util.DateUtil.conversionFormat(2, sdf.format(expirationTime));
+                        String s = com.stylefeng.guns.modular.system.util.DateUtil.conversionFormat(2, sdf.format(new Date()));
+
+                        sendEmail(user, sysCouponActivity.getNumber(), s, e, userCouponRecord.getFullMoney().doubleValue());
+                    }
+
                 }
                 sysCouponActivity.setSendUserNum(list.size());
                 sysCouponActivity.updateById();
@@ -225,7 +250,11 @@
                     TUser tUser = userService.selectById(userId.getJSONObject(j).getInteger("userId"));
                     String email = tUser.getEmail();
                     if(ToolUtil.isNotEmpty(email)){
-                        // TODO 发送邮件
+                        Date expirationTime = userCouponRecord.getExpirationTime();
+                        String e = com.stylefeng.guns.modular.system.util.DateUtil.conversionFormat(2, sdf.format(expirationTime));
+                        String s = com.stylefeng.guns.modular.system.util.DateUtil.conversionFormat(2, sdf.format(new Date()));
+
+                        sendEmail(tUser, sysCouponActivity.getNumber(), s, e, userCouponRecord.getFullMoney().doubleValue());
                     }
                     userCouponRecord.setUserId(userId.getJSONObject(j).getInteger("userId"));
                     for (int i=0;i<sysCouponActivity.getNumber();i++){
@@ -239,6 +268,65 @@
 
         }
     }
+
+
+    public void sendEmail(TUser userInfo1, Integer num, String startTime, String endTime, Double fullMoney){
+        try {
+            if(ToolUtil.isNotEmpty(userInfo1.getEmail())){
+                String path1 = templatePath +  "user/coupon.html";
+                Document document1 = Jsoup.parse(new File(path1), "UTF-8");
+                document1.getElementById("chinese").remove();
+                document1.getElementById("french").remove();
+                document1.getElementsByTag("title").get(0).text("Coupon is in");
+                Element english_user = document1.getElementById("english_user");
+                english_user.text("Hello " + userInfo1.getNickName() + ",");
+                Element english_number = document1.getElementById("english_number");
+                english_number.text("You have received " + num + " coupons");
+                Element english_date = document1.getElementById("english_date");
+                english_date.text("You could use them from " + startTime + " to " + endTime);
+                Element english_remark = document1.getElementById("english_remark");
+                english_remark.text("NB! Coupon is valid only for the trip fare not less than GHS " + fullMoney + " per ride.");
+                EmailUtil.send(userInfo1.getEmail(), "Coupon is in",  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/coupon_" + randomString + ".html");
+                if(!file.exists()){
+                    file.createNewFile();
+                }
+                FileWriter fileWriter = new FileWriter(file);
+                fileWriter.write(document1.html());
+                fileWriter.flush();
+                fileWriter.close();
+
+                String link ="http://182.160.16.251:81/files/html/coupon_" + randomString + ".html";
+                TEmail tEmail = new TEmail();
+                tEmail.setLink(link);
+                tEmail.setUserId(userInfo1.getId());
+                tEmail.setType(1);
+                tEmail.setName("Coupon is in");
+                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