| | |
| | | import java.io.FileInputStream; |
| | | import java.io.FileOutputStream; |
| | | import java.io.FileWriter; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | |
| | | @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); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | List<UserActivityDiscount1> list = this.selectList(new EntityWrapper<UserActivityDiscount1>().eq("enable", 2) |
| | | .last(" and now() >= startTime and now() < ADDDATE(startTime,INTERVAL 1 MINUTE)")); |
| | | 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("delivery", logistics * 10); |
| | | } |
| | | Set<String> strings = map.keySet(); |
| | | |
| | | for (TUser user : tUsers) { |
| | | if(ToolUtil.isNotEmpty(user.getEmail())){ |
| | | Integer language = user.getLanguage(); |
| | | for (String key : strings) { |
| | | Double aDouble = map.get(key); |
| | | String path1 = templatePath + "user/discount.html"; |
| | | Document document1 = Jsoup.parse(new File(path1), "UTF-8"); |
| | | if(1 == language){ |
| | | document1.getElementById("english").remove(); |
| | | document1.getElementById("french").remove(); |
| | | document1.getElementsByTag("title").get(0).text("折扣活动"); |
| | | Element chinese_user = document1.getElementById("chinese_user"); |
| | | chinese_user.text("您好 " + user.getNickName() + ","); |
| | | Element chinese_ride = document1.getElementById("chinese_ride"); |
| | | chinese_ride.text("I-GO" + (key.equals("ride") ? "打车" : "包裹") + "折扣活动奖励"); |
| | | Element chinese_go = document1.getElementById("chinese_go"); |
| | | if("ride".equals(key)){ |
| | | chinese_go.text("去打车"); |
| | | }else{ |
| | | chinese_go.text("寄包裹"); |
| | | } |
| | | Element chinese_discount = document1.getElementById("chinese_discount"); |
| | | chinese_discount.text("每单费用折扣" + new BigDecimal(100).subtract(new BigDecimal(aDouble)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() + "%"); |
| | | EmailUtil.send(user.getEmail(), "折扣活动", document1.html()); |
| | | } |
| | | if(2 == language){ |
| | | 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_go = document1.getElementById("english_go"); |
| | | if("ride".equals(key)){ |
| | | english_go.text("REQUEST A RIDE"); |
| | | }else{ |
| | | english_go.text("REQUEST A DELIVERY"); |
| | | } |
| | | Element english_discount = document1.getElementById("english_discount"); |
| | | english_discount.text(" Enjoy " + new BigDecimal(100).subtract(new BigDecimal(aDouble)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() + "% off your trip fare."); |
| | | EmailUtil.send(user.getEmail(), "Discount activities", document1.html()); |
| | | } |
| | | if(3 == language){ |
| | | document1.getElementById("chinese").remove(); |
| | | document1.getElementById("english").remove(); |
| | | document1.getElementsByTag("title").get(0).text("Activités à rabais"); |
| | | Element french_user = document1.getElementById("french_user"); |
| | | french_user.text("Cher(ère) " + user.getNickName() + ","); |
| | | Element french_ride = document1.getElementById("french_ride"); |
| | | french_ride.text("Remise pour I-GO (commande de " + (key.equals("ride") ? "course" : "livraison") + ")!"); |
| | | Element french_go = document1.getElementById("french_go"); |
| | | if("ride".equals(key)){ |
| | | french_go.text("Déplacez-vous avec I-GO"); |
| | | }else{ |
| | | french_go.text("Demander une livraison avec I-GO"); |
| | | } |
| | | Element french_discount = document1.getElementById("french_discount"); |
| | | french_discount.text("Profitez aujourd’hui de " + new BigDecimal(100).subtract(new BigDecimal(aDouble)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() + "% de réduction sur les commandes de " + (key.equals("ride") ? "course" : "livraison") + ", allez sur la plate-forme I-GO pour voir le détail."); |
| | | EmailUtil.send(user.getEmail(), "Activités à rabais", document1.html()); |
| | | } |
| | | //开始生成pdf收据和html收据 |
| | | File file = new File("/home/igotechgh/nginx/html/files/html/"); |
| | | if(!file.exists()){ |
| | | file.mkdirs(); |
| | | } |
| | | String randomString = ToolUtil.getRandomString(10); |
| | | file = new File("/home/igotechgh/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 ="https://igo.i-go.group/files/html/discount_" + randomString + ".html"; |
| | | TEmail tEmail = new TEmail(); |
| | | tEmail.setLink(link); |
| | | tEmail.setUserId(user.getId()); |
| | | tEmail.setType(1); |
| | | tEmail.setName(1 == language ? "折扣活动" : 2 == language ? "Discount activities" : "Activités à rabais"); |
| | | 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); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |