puzhibing
2023-12-15 2afa95337899f6482b90759fd06cb7b206b327cf
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -827,8 +827,19 @@
        UserInfo userInfo = userInfoService.selectById(uid);
        map.put("balance", userInfo.getBalance());
        OrderPrivateCar orderPrivateCar = this.selectById(orderId);
        int i = userCouponRecordService.queryAvailable(uid, orderPrivateCar.getCompanyId(), 1, 1, orderPrivateCar.getOrderMoney());
        i = i + userCouponRecordService.queryAvailable(uid, orderPrivateCar.getCompanyId(), 1, 0, orderPrivateCar.getOrderMoney());
        UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderPrivateCar.getCompanyId());
        double v = orderPrivateCar.getOrderMoney();
        if(null != query2){
            Integer orderNum=this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("userId",orderPrivateCar.getUserId()).eq("activityId",query2.getId()).last(" and to_days(getoffTime) = to_days(now())"));
            if(query2.getDistance()*1000>orderPrivateCar.getMileage() && query2.getOrderNum()>orderNum){
                Double special = query2.getSpecial();
                orderPrivateCar.setDiscount(special);
                Double orderMoney = orderPrivateCar.getOrderMoney();
                v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
            }
        }
        int i = userCouponRecordService.queryAvailable(uid, orderPrivateCar.getCompanyId(), 1, 1, v);
        i = i + userCouponRecordService.queryAvailable(uid, orderPrivateCar.getCompanyId(), 1, 0, v);
        map.put("coupon", i);
        return map;
    }
@@ -836,8 +847,19 @@
    @Override
    public List<Map<String, Object>> queryCoupon(Integer language, Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception {
        OrderPrivateCar orderPrivateCar = this.selectById(orderId);
        List<Map<String, Object>> list = userCouponRecordService.queryCoupon(language, uid, orderPrivateCar.getCompanyId(), 1, 1, orderPrivateCar.getOrderMoney(), pageNum, size);
        List<Map<String, Object>> list1 = userCouponRecordService.queryCoupon(language, uid, orderPrivateCar.getCompanyId(), 1, 0, orderPrivateCar.getOrderMoney(), pageNum, size);
        UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderPrivateCar.getCompanyId());
        double v = orderPrivateCar.getOrderMoney();
        if(null != query2){
            Integer orderNum=this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("userId",orderPrivateCar.getUserId()).eq("activityId",query2.getId()).last(" and to_days(getoffTime) = to_days(now())"));
            if(query2.getDistance()*1000>orderPrivateCar.getMileage() && query2.getOrderNum()>orderNum){
                Double special = query2.getSpecial();
                orderPrivateCar.setDiscount(special);
                Double orderMoney = orderPrivateCar.getOrderMoney();
                v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
            }
        }
        List<Map<String, Object>> list = userCouponRecordService.queryCoupon(language, uid, orderPrivateCar.getCompanyId(), 1, 1, v, pageNum, size);
        List<Map<String, Object>> list1 = userCouponRecordService.queryCoupon(language, uid, orderPrivateCar.getCompanyId(), 1, 0, v, pageNum, size);
        list.addAll(list1);
        return list;
    }
@@ -860,6 +882,22 @@
        ResultUtil resultUtil = ResultUtil.success("");
        orderPrivateCar.setCouponMoney(0D);//初始化历史数据
        orderPrivateCar.setCouponId(null);
        //计算折扣
        UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderPrivateCar.getCompanyId());
        if(null != query2){
            Integer orderNum=this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("userId",orderPrivateCar.getUserId()).eq("activityId",query2.getId()).last(" and to_days(getoffTime) = to_days(now())"));
            if(query2.getDistance()*1000>orderPrivateCar.getMileage() && query2.getOrderNum()>orderNum){
                Double special = query2.getSpecial();
                orderPrivateCar.setDiscount(special);
                double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
                if(orderMoney.compareTo(v) > 0){
                    orderPrivateCar.setDiscountMoney(orderMoney - v);
                    orderPrivateCar.setActivityId(query2.getId());
                    orderMoney = v;
                }
            }
        }
        //计算优惠券
        UserCouponRecord userCouponRecord = null;
@@ -892,22 +930,6 @@
            orderMoney = orderMoney - query.getMoney();
            orderPrivateCar.setRedPacketMoney(query.getMoney());
            orderPrivateCar.setRedPacketId(query.getId());
        }
       //计算折扣
        UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderPrivateCar.getCompanyId());
        if(null != query2){
            Integer orderNum=this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("userId",orderPrivateCar.getUserId()).eq("activityId",query2.getId()).last(" and to_days(getoffTime) = to_days(now())"));
            if(query2.getDistance()*1000>orderPrivateCar.getMileage() && query2.getOrderNum()>orderNum){
                Double special = query2.getSpecial();
                orderPrivateCar.setDiscount(special);
                double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
                if(orderMoney.compareTo(v) > 0){
                    orderPrivateCar.setDiscountMoney(orderMoney - v);
                    orderPrivateCar.setActivityId(query2.getId());
                    orderMoney = v;
                }
            }
        }
        if(payType == 1){//手机支付
@@ -1034,7 +1056,7 @@
                            if(1 == language){
                                document.getElementById("english").remove();
                                document.getElementById("french").remove();
                                document.getElementsByTag("title").get(0).text("打车收据");
                                document.getElementsByTag("title").get(0).text("I-GO电子收据");
                                Element title_chinese = document.getElementById("title_chinese");
                                title_chinese.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",您在I-GO1个订单消费GHS " + orderPrivateCar.getPayMoney());
                                Element xcf_chinese = document.getElementById("xcf_chinese");
@@ -1079,7 +1101,7 @@
                            if(2 == language){
                                document.getElementById("chinese").remove();
                                document.getElementById("french").remove();
                                document.getElementsByTag("title").get(0).text("Ride Receipt");
                                document.getElementsByTag("title").get(0).text("Receipt");
                                Element title_english = document.getElementById("title_english");
                                title_english.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",You spent GHS " + orderPrivateCar.getPayMoney() + " on the trip ");
                                Element xcf_english = document.getElementById("xcf_english");
@@ -1124,7 +1146,7 @@
                            if(3 == language){
                                document.getElementById("chinese").remove();
                                document.getElementById("english").remove();
                                document.getElementsByTag("title").get(0).text("Reçu de course");
                                document.getElementsByTag("title").get(0).text("Reçu");
                                Element title_french = document.getElementById("title_french");
                                title_french.text("Le " + DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ", vous avez dépensé GHS " + orderPrivateCar.getPayMoney() + " sur le voyage");
                                Element xcf_french = document.getElementById("xcf_french");
@@ -1166,7 +1188,7 @@
                                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 ? "Ride Receipt" : "Reçu de course",  document.html());
                            EmailUtil.send(userInfo.getEmail(), language == 1 ? "I-GO电子收据" : language == 2 ? "Receipt" : "Reçu",  document.html());
                            //开始生成pdf收据和html收据
                            File file = new File("/usr/local/nginx/html/files/html/");
@@ -1194,6 +1216,7 @@
                                FileOutputStream fileOutputStream = new FileOutputStream(file1);
                                HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
                            }catch (Exception e){
                                e.printStackTrace();
                                System.out.println("html转pdf异常");
                            }
@@ -1201,7 +1224,7 @@
                            TEmail tEmail = new TEmail();
                            tEmail.setLink(link);
                            tEmail.setUserId(uid);
                            tEmail.setName(language == 1 ? "打车收据" : language == 2 ? "Ride Receipt" : "Reçu de course");
                            tEmail.setName(language == 1 ? "I-GO电子收据" : language == 2 ? "Receipt" : "Reçu");
                            tEmail.setType(1);
                            tEmail.setOrderId(orderId);
                            tEmail.setCreateTime(new Date());
@@ -1349,7 +1372,7 @@
                            if(1 == language){
                                document.getElementById("english").remove();
                                document.getElementById("french").remove();
                                document.getElementsByTag("title").get(0).text("打车收据");
                                document.getElementsByTag("title").get(0).text("I-GO电子收据");
                                Element title_chinese = document.getElementById("title_chinese");
                                title_chinese.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",您在I-GO1个订单消费GHS " + orderPrivateCar.getPayMoney());
                                Element xcf_chinese = document.getElementById("xcf_chinese");
@@ -1394,7 +1417,7 @@
                            if(2 == language){
                                document.getElementById("chinese").remove();
                                document.getElementById("french").remove();
                                document.getElementsByTag("title").get(0).text("Ride Receipt");
                                document.getElementsByTag("title").get(0).text("Receipt");
                                Element title_english = document.getElementById("title_english");
                                title_english.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",You spent GHS " + orderPrivateCar.getPayMoney() + " on the trip ");
                                Element xcf_english = document.getElementById("xcf_english");
@@ -1439,7 +1462,7 @@
                            if(3 == language){
                                document.getElementById("chinese").remove();
                                document.getElementById("english").remove();
                                document.getElementsByTag("title").get(0).text("Reçu de course");
                                document.getElementsByTag("title").get(0).text("Reçu");
                                Element title_french = document.getElementById("title_french");
                                title_french.text("Le " + DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ", vous avez dépensé GHS " + orderPrivateCar.getPayMoney() + " sur le voyage");
                                Element xcf_french = document.getElementById("xcf_french");
@@ -1482,7 +1505,7 @@
                                server_tel_french.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                            }
                            EmailUtil.send(userInfo.getEmail(), language == 1 ? "打车收据" : language == 2 ? "Ride Receipt" : "Reçu de course",  document.html());
                            EmailUtil.send(userInfo.getEmail(), language == 1 ? "I-GO电子收据" : language == 2 ? "Receipt" : "Reçu",  document.html());
                            //开始生成pdf收据和html收据
                            File file = new File("/usr/local/nginx/html/files/html/");
@@ -1506,13 +1529,18 @@
                            if(!file1.exists()){
                                file1.createNewFile();
                            }
                            FileOutputStream fileOutputStream = new FileOutputStream(file1);
                            HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
                            try {
                                FileOutputStream fileOutputStream = new FileOutputStream(file1);
                                HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
                            }catch (Exception e){
                                e.printStackTrace();
                                System.out.println("html转pdf异常");
                            }
                            String link ="http://182.160.16.251:81/files/html/ride_receipt_" + orderId + ".html";
                            TEmail tEmail = new TEmail();
                            tEmail.setLink(link);
                            tEmail.setUserId(uid);
                            tEmail.setName(language == 1 ? "打车收据" : language == 2 ? "Ride Receipt" : "Reçu de course");
                            tEmail.setName(language == 1 ? "I-GO电子收据" : language == 2 ? "Receipt" : "Reçu");
                            tEmail.setType(1);
                            tEmail.setOrderId(orderId);
                            tEmail.setCreateTime(new Date());
@@ -1643,7 +1671,7 @@
                    Element user_chinese = document.getElementById("user_chinese");
                    user_chinese.text("您好 " + userInfo.getNickName() + ",");
                    Element time_chinese = document.getElementById("time_chinese");
                    time_chinese.text("此活动有效期在 " + DateUtil.conversionFormat(language, sdf.format(query.getInsertTime())) + " 至 " + DateUtil.conversionFormat(language, sdf.format(query.getEndTime())) + ",详情请查看I-GO平台");
                    time_chinese.text("此活动有效期在 " + DateUtil.conversionFormat(language, sdf.format(query.getInsertTime())) + " 至 " + DateUtil.conversionFormat(language, sdf.format(query.getExpirationTime())) + ",详情请查看I-GO平台");
                }
                if(2 == language){
                    document.getElementById("chinese").remove();
@@ -1652,7 +1680,7 @@
                    Element user_english = document.getElementById("user_english");
                    user_english.text("Hello " + userInfo.getNickName() + ",");
                    Element time_english = document.getElementById("time_english");
                    time_english.text("You could use it from " + DateUtil.conversionFormat(language, sdf.format(query.getInsertTime())) + " to " + DateUtil.conversionFormat(language, sdf.format(query.getEndTime())) + ",check more details on the app.");
                    time_english.text("You could use it from " + DateUtil.conversionFormat(language, sdf.format(query.getInsertTime())) + " to " + DateUtil.conversionFormat(language, sdf.format(query.getExpirationTime())) + ",check more details on the app.");
                }
                if(3 == language){
                    document.getElementById("chinese").remove();
@@ -1661,7 +1689,7 @@
                    Element user_french = document.getElementById("user_french");
                    user_french.text("Bonjour " + userInfo.getNickName() + ",");
                    Element time_french = document.getElementById("time_french");
                    time_french.text("Cette promotion est valable du " + DateUtil.conversionFormat(language, sdf.format(query.getInsertTime())) + " au " + DateUtil.conversionFormat(language, sdf.format(query.getEndTime())) + ". Veuillez consulter la plateforme i-go pour plus de détails.");
                    time_french.text("Cette promotion est valable du " + DateUtil.conversionFormat(language, sdf.format(query.getInsertTime())) + " au " + DateUtil.conversionFormat(language, sdf.format(query.getExpirationTime())) + ". Veuillez consulter la plateforme i-go pour plus de détails.");
                }
                EmailUtil.send(userInfo.getEmail(), language == 1 ? "红包活动" : language == 2 ? "Lucky-promo activities" : "Activités bonus",  document.html());
@@ -1678,17 +1706,6 @@
                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/redpacket_" + 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/redpacket_" + orderId + ".html";
                TEmail tEmail = new TEmail();
@@ -1859,7 +1876,7 @@
                            if(1 == language){
                                document.getElementById("english").remove();
                                document.getElementById("french").remove();
                                document.getElementsByTag("title").get(0).text("打车收据");
                                document.getElementsByTag("title").get(0).text("I-GO电子收据");
                                Element title_chinese = document.getElementById("title_chinese");
                                title_chinese.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",您在I-GO1个订单消费GHS " + orderPrivateCar.getPayMoney());
                                Element xcf_chinese = document.getElementById("xcf_chinese");
@@ -1904,7 +1921,7 @@
                            if(2 == language){
                                document.getElementById("chinese").remove();
                                document.getElementById("french").remove();
                                document.getElementsByTag("title").get(0).text("Ride Receipt");
                                document.getElementsByTag("title").get(0).text("Receipt");
                                Element title_english = document.getElementById("title_english");
                                title_english.text(DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ",You spent GHS " + orderPrivateCar.getPayMoney() + " on the trip ");
                                Element xcf_english = document.getElementById("xcf_english");
@@ -1949,7 +1966,7 @@
                            if(3 == language){
                                document.getElementById("chinese").remove();
                                document.getElementById("english").remove();
                                document.getElementsByTag("title").get(0).text("Reçu de course");
                                document.getElementsByTag("title").get(0).text("Reçu");
                                Element title_french = document.getElementById("title_french");
                                title_french.text("Le " + DateUtil.conversionFormat(language, sdf.format(orderPrivateCar.getTravelTime())) + ", vous avez dépensé GHS " + orderPrivateCar.getPayMoney() + " sur le voyage");
                                Element xcf_french = document.getElementById("xcf_french");
@@ -1992,7 +2009,7 @@
                                server_tel_french.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                            }
                            EmailUtil.send(userInfo.getEmail(), language == 1 ? "打车收据" : language == 2 ? "Ride Receipt" : "Reçu de course",  document.html());
                            EmailUtil.send(userInfo.getEmail(), language == 1 ? "I-GO电子收据" : language == 2 ? "Receipt" : "Reçu",  document.html());
                            //开始生成pdf收据和html收据
                            File file = new File("/usr/local/nginx/html/files/html/");
@@ -2016,14 +2033,19 @@
                            if(!file1.exists()){
                                file1.createNewFile();
                            }
                            FileOutputStream fileOutputStream = new FileOutputStream(file1);
                            HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
                            try {
                                FileOutputStream fileOutputStream = new FileOutputStream(file1);
                                HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
                            }catch (Exception e){
                                e.printStackTrace();
                                System.out.println("html转pdf异常");
                            }
                            String link ="http://182.160.16.251:81/files/html/ride_receipt_" + id + ".html";
                            TEmail tEmail = new TEmail();
                            tEmail.setLink(link);
                            tEmail.setName(language == 1 ? "打车收据" : language == 2 ? "Ride Receipt" : "Reçu de course");
                            tEmail.setName(language == 1 ? "I-GO电子收据" : language == 2 ? "Receipt" : "Reçu");
                            tEmail.setUserId(userInfo.getId());
                            tEmail.setType(1);
                            tEmail.setOrderId(id);