puzhibing
2023-11-04 4becc1e8cdb2fbe0dcb94493b75a59ec1817028c
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -90,6 +90,13 @@
    private ITransactionDetailsService transactionDetailsService;
    @Autowired
    private TEmailService emailService;
    @Autowired
    private IPhoneService phoneService;
@@ -185,8 +192,12 @@
            }
        }).start();
        systemNoticeService.addSystemNotice(2, "您已成功抢得包裹订单,请及时联系客户!", orderLogistics.getDriverId());
        systemNoticeService.addSystemNotice(1, "您的订单已指派给" + driver.getLastName().substring(0, 1) + "师傅,请保持电话畅通!", orderLogistics.getUserId());
        systemNoticeService.addSystemNotice(2, language == 1 ? "您已成功抢得包裹订单,请及时联系客户!" :
                language == 2 ? "You have successfully captured the parcel order, please contact the customer in time!"
                        : "Vous avez saisi avec succès la commande de colis, veuillez contacter le client à temps!", orderLogistics.getDriverId());
        systemNoticeService.addSystemNotice(1, language == 1 ? "您的订单已指派给" + driver.getFirstName() + "师傅,请保持电话畅通!" :
                language == 2 ? "Your order has been assigned to " + driver.getFirstName() + " master, please keep the phone open!"
                        : "Votre commande a été attribuée à " + driver.getFirstName() + " master, veuillez garder le téléphone ouvert!", orderLogistics.getUserId());
        return ResultUtil.success();
    }
@@ -249,14 +260,14 @@
                if(orderLogistics.getPayType() != 4){
                    //添加已收入明细
                    Company company = companyService.selectById(orderLogistics.getCompanyId());
                    Double speMoney = company.getCrossLogisticsMoney();
                    Double speMoney = company.getSameLogisticsMoney();
                    BigDecimal d = null;//企业收入
                    BigDecimal c = null;//司机收入
                    if(company.getIsCrossLogisticsFixedOrProportional() == 2){//固定
                    if(company.getIsSameLogisticsFixedOrProportional() == 2){//固定
                        d = new BigDecimal(speMoney);
                        c = new BigDecimal(orderLogistics.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机
                    }
                    if(company.getIsSpeFixedOrProportional() == 1){//比例
                    if(company.getIsSameLogisticsFixedOrProportional() == 1){//比例
                        Double price = orderLogistics.getOrderMoney();
                        d = new BigDecimal(price).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN)));
                        c = new BigDecimal(orderLogistics.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);
@@ -323,6 +334,9 @@
                        start_address_chinese.text(orderLogistics.getStartAddress());
                        Element end_address_chinese = document.getElementById("end_address_chinese");
                        end_address_chinese.text(orderLogistics.getEndAddress());
                        Phone phone = phoneService.selectOne(new EntityWrapper<Phone>().eq("type", 2).eq("companyId", driver.getCompanyId()));
                        Element server_tel_chinese = document.getElementById("server_tel_chinese");
                        server_tel_chinese.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                    }
                    if(2 == language){
                        document.getElementById("chinese").remove();
@@ -354,6 +368,9 @@
                        start_address_english.text(orderLogistics.getStartAddress());
                        Element end_address_english = document.getElementById("end_address_english");
                        end_address_english.text(orderLogistics.getEndAddress());
                        Phone phone = phoneService.selectOne(new EntityWrapper<Phone>().eq("type", 2).eq("companyId", driver.getCompanyId()));
                        Element server_tel_english = document.getElementById("server_tel_english");
                        server_tel_english.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                    }
                    if(3 == language){
                        document.getElementById("chinese").remove();
@@ -385,6 +402,9 @@
                        start_address_french.text(orderLogistics.getStartAddress());
                        Element end_address_french = document.getElementById("end_address_french");
                        end_address_french.text(orderLogistics.getEndAddress());
                        Phone phone = phoneService.selectOne(new EntityWrapper<Phone>().eq("type", 2).eq("companyId", driver.getCompanyId()));
                        Element server_tel_french = document.getElementById("server_tel_french");
                        server_tel_french.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                    }
                    EmailUtil.send(userInfo.getEmail(), language == 1 ? "包裹收据" : language == 2 ? "Parcel receipt" : "Réception de colis",  document.html());
@@ -413,6 +433,26 @@
                    }
                    FileOutputStream fileOutputStream = new FileOutputStream(file1);
                    HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
                    String link ="http://182.160.16.251:81/files/html/parcel_receipt_" + orderId + ".html";
                    TEmail tEmail = new TEmail();
                    tEmail.setLink(link);
                    tEmail.setUserId(userInfo.getId());
                    tEmail.setType(1);
                    tEmail.setName(language == 1 ? "包裹收据" : language == 2 ? "Parcel receipt" : "Réception de colis");
                    tEmail.setOrderId(orderId);
                    tEmail.setCreateTime(new Date());
                    int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
                    String week = EmailUtil.getWeek(language, i);
                    tEmail.setWeek(week);
                    boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
                    if(am){
                        tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée");
                    }else {
                        tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi");
                    }
                    emailService.insert(tEmail);
                }
            }
            if(orderLogistics.getPayType() == 2){
@@ -452,6 +492,9 @@
                        start_address_chinese.text(orderLogistics.getStartAddress());
                        Element end_address_chinese = document.getElementById("end_address_chinese");
                        end_address_chinese.text(orderLogistics.getEndAddress());
                        Phone phone = phoneService.selectOne(new EntityWrapper<Phone>().eq("type", 2).eq("companyId", driver.getCompanyId()));
                        Element server_tel_chinese = document.getElementById("server_tel_chinese");
                        server_tel_chinese.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                    }
                    if(2 == language){
                        document.getElementById("chinese").remove();
@@ -483,6 +526,9 @@
                        start_address_english.text(orderLogistics.getStartAddress());
                        Element end_address_english = document.getElementById("end_address_english");
                        end_address_english.text(orderLogistics.getEndAddress());
                        Phone phone = phoneService.selectOne(new EntityWrapper<Phone>().eq("type", 2).eq("companyId", driver.getCompanyId()));
                        Element server_tel_english = document.getElementById("server_tel_english");
                        server_tel_english.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                    }
                    if(3 == language){
                        document.getElementById("chinese").remove();
@@ -514,6 +560,9 @@
                        start_address_french.text(orderLogistics.getStartAddress());
                        Element end_address_french = document.getElementById("end_address_french");
                        end_address_french.text(orderLogistics.getEndAddress());
                        Phone phone = phoneService.selectOne(new EntityWrapper<Phone>().eq("type", 2).eq("companyId", driver.getCompanyId()));
                        Element server_tel_french = document.getElementById("server_tel_french");
                        server_tel_french.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                    }
                    EmailUtil.send(userInfo.getEmail(), language == 1 ? "包裹收据" : language == 2 ? "Parcel receipt" : "Réception de colis",  document.html());
@@ -542,6 +591,26 @@
                    }
                    FileOutputStream fileOutputStream = new FileOutputStream(file1);
                    HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
                    String link ="http://182.160.16.251:81/files/html/parcel_receipt_" + orderId + ".html";
                    TEmail tEmail = new TEmail();
                    tEmail.setLink(link);
                    tEmail.setUserId(userInfo.getId());
                    tEmail.setType(1);
                    tEmail.setName(language == 1 ? "包裹收据" : language == 2 ? "Parcel receipt" : "Réception de colis");
                    tEmail.setOrderId(orderId);
                    tEmail.setCreateTime(new Date());
                    int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
                    String week = EmailUtil.getWeek(language, i);
                    tEmail.setWeek(week);
                    boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
                    if(am){
                        tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée");
                    }else {
                        tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi");
                    }
                    emailService.insert(tEmail);
                }
            }
            if(orderLogistics.getPayType() == 3){
@@ -581,6 +650,9 @@
                        start_address_chinese.text(orderLogistics.getStartAddress());
                        Element end_address_chinese = document.getElementById("end_address_chinese");
                        end_address_chinese.text(orderLogistics.getEndAddress());
                        Phone phone = phoneService.selectOne(new EntityWrapper<Phone>().eq("type", 2).eq("companyId", driver.getCompanyId()));
                        Element server_tel_chinese = document.getElementById("server_tel_chinese");
                        server_tel_chinese.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                    }
                    if(2 == language){
                        document.getElementById("chinese").remove();
@@ -612,6 +684,9 @@
                        start_address_english.text(orderLogistics.getStartAddress());
                        Element end_address_english = document.getElementById("end_address_english");
                        end_address_english.text(orderLogistics.getEndAddress());
                        Phone phone = phoneService.selectOne(new EntityWrapper<Phone>().eq("type", 2).eq("companyId", driver.getCompanyId()));
                        Element server_tel_english = document.getElementById("server_tel_english");
                        server_tel_english.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                    }
                    if(3 == language){
                        document.getElementById("chinese").remove();
@@ -643,6 +718,9 @@
                        start_address_french.text(orderLogistics.getStartAddress());
                        Element end_address_french = document.getElementById("end_address_french");
                        end_address_french.text(orderLogistics.getEndAddress());
                        Phone phone = phoneService.selectOne(new EntityWrapper<Phone>().eq("type", 2).eq("companyId", driver.getCompanyId()));
                        Element server_tel_french = document.getElementById("server_tel_french");
                        server_tel_french.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                    }
                    EmailUtil.send(userInfo.getEmail(), language == 1 ? "包裹收据" : language == 2 ? "Parcel receipt" : "Réception de colis",  document.html());
@@ -671,6 +749,25 @@
                    }
                    FileOutputStream fileOutputStream = new FileOutputStream(file1);
                    HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
                    String link ="http://182.160.16.251:81/files/html/parcel_receipt_" + orderId + ".html";
                    TEmail tEmail = new TEmail();
                    tEmail.setLink(link);
                    tEmail.setUserId(userInfo.getId());
                    tEmail.setType(1);
                    tEmail.setName(language == 1 ? "包裹收据" : language == 2 ? "Parcel receipt" : "Réception de colis");
                    tEmail.setOrderId(orderId);
                    tEmail.setCreateTime(new Date());
                    int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
                    String week = EmailUtil.getWeek(language, i);
                    tEmail.setWeek(week);
                    boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
                    if(am){
                        tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée");
                    }else {
                        tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi");
                    }
                    emailService.insert(tEmail);
                }
            }
        }
@@ -821,8 +918,12 @@
            }
        }).start();
        systemNoticeService.addSystemNotice(2, "您已成功抢得出租车订单,请及时联系客户!", orderLogistics.getDriverId());
        systemNoticeService.addSystemNotice(1, "您的订单已指派给" + driver.getLastName().substring(0, 1) + "师傅,请保持电话畅通!", orderLogistics.getUserId());
        systemNoticeService.addSystemNotice(2, language == 1 ? "您已成功抢得出租车订单,请及时联系客户!" :
                language == 2 ? "You have successfully captured the taxi order, please contact the customer in time!"
                        : "Vous avez saisi avec succès la commande de taxi, veuillez contacter le client à temps!", orderLogistics.getDriverId());
        systemNoticeService.addSystemNotice(1, language == 1 ? "您的订单已指派给" + driver.getFirstName() + "师傅,请保持电话畅通!" :
                language == 2 ? "Your order has been assigned to " + driver.getFirstName() + " master, please keep the phone open!"
                        : "Votre commande a été attribuée à " + driver.getFirstName() + " master, veuillez garder le téléphone ouvert!", orderLogistics.getUserId());
        return ResultUtil.success();
    }
@@ -901,6 +1002,49 @@
                email2_content.text("Vous êtes lié à une adresse e-mail. Le code de vérification e-mail pour cette demande est: " + random + ". Veuillez compléter la vérification dans les 5 minutes");
            }
            EmailUtil.send(userInfo.getEmail(), language == 1 ? "取件码" : language == 2 ? "Pickup code" : "Code de prise en charge",  document.html());
            //开始生成pdf收据和html收据
            File file = new File("/usr/local/nginx/html/files/html/");
            if(!file.exists()){
                file.mkdirs();
            }
            file = new File("/usr/local/nginx/html/files/html/code_" + orderId + ".html");
            if(!file.exists()){
                file.createNewFile();
            }
            FileWriter fileWriter = new FileWriter(file);
            fileWriter.write(document.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/code_" + orderId + ".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/code_" + orderId + ".html";
            TEmail tEmail = new TEmail();
            tEmail.setLink(link);
            tEmail.setUserId(userInfo.getId());
            tEmail.setType(1);
            tEmail.setName(language == 1 ? "取件码" : language == 2 ? "Pickup code" : "Code de prise en charge");
            tEmail.setOrderId(orderId);
            tEmail.setCreateTime(new Date());
            int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
            String week = EmailUtil.getWeek(language, i);
            tEmail.setWeek(week);
            boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
            if(am){
                tEmail.setAmOrPm(language==1?"上午":language==2?"AM":"Dans la matinée");
            }else {
                tEmail.setAmOrPm(language==1?"下午":language==2?"PM":"après-midi");
            }
            emailService.insert(tEmail);
        }
    }