puzhibing
2023-12-22 a0efb3f1c1eb1269e8cd0f0dda2543a9dadddb93
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityDiscount1ServiceImpl.java
@@ -296,78 +296,84 @@
    @Override
    public void sendActivityEmail() {
        try {
            List<UserActivityDiscount1> lis = this.selectList(new EntityWrapper<UserActivityDiscount1>().eq("enable", 2)
            List<UserActivityDiscount1> list = this.selectList(new EntityWrapper<UserActivityDiscount1>().eq("enable", 2)
                    .last(" and now() >= startTime and now() < ADDDATE(startTime,INTERVAL 1 MINUTE)"));
            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("Discount activities");
                                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(), "Discount activities",  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();
                                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("Discount activities");
                                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);
                            }
                        }
                    }
                }
            if(list.size() > 0){
                sendEmail(list);
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    public void sendEmail(List<UserActivityDiscount1> list) throws Exception{
        List<TUser> tUsers = userService.selectList(new EntityWrapper<TUser>().ne("flag", 3).eq("state", 1));
        for (UserActivityDiscount1 uad : list) {
            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("Discount activities");
                        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(), "Discount activities",  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();
                        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("Discount activities");
                        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);
                    }
                }
            }
        }
    }
}