Pu Zhibing
2025-02-14 5228e24ff93fae148db40c44d9deb8e93110c6eb
开发新增加功能
15个文件已修改
383 ■■■■ 已修改文件
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SystemPriceMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemPriceMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SystemPrice.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ComplaintServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedbackServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderEvaluateServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ProblemServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ServerCarModelWarpper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java
@@ -19,10 +19,8 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -115,10 +113,21 @@
        if(ToolUtil.isNotEmpty(remark)){
            if(ToolUtil.isNotEmpty(remark)){
                List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
                List<String> list = Arrays.asList(remark.split(" "));
                for(SensitiveWords s : sensitiveWords){
                    remark = remark.replaceAll(s.getContent(), "***");
                    List<String> str = new ArrayList<>();
                    String lowerCase = s.getContent().toLowerCase();
                    for (String s1 : list) {
                        if(lowerCase.equals(s1.toLowerCase())){
                            str.add("***");
                        }else{
                            str.add(s1);
                }
            }
                    list = str;
                }
                remark = list.stream().collect(Collectors.joining(" "));
            }
        }
        OrderCharteredCar orderCharteredCar = this.selectById(id);
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -55,6 +55,7 @@
import java.math.MathContext;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
import static com.stylefeng.guns.modular.taxi.service.impl.OrderTaxiServiceImpl.orderIds;
@@ -1198,10 +1199,21 @@
        if(ToolUtil.isNotEmpty(remark)){
            if(ToolUtil.isNotEmpty(remark)){
                List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
                List<String> list = Arrays.asList(remark.split(" "));
                for(SensitiveWords s : sensitiveWords){
                    remark = remark.replaceAll(s.getContent(), "***");
                    List<String> str = new ArrayList<>();
                    String lowerCase = s.getContent().toLowerCase();
                    for (String s1 : list) {
                        if(lowerCase.equals(s1.toLowerCase())){
                            str.add("***");
                        }else{
                            str.add(s1);
                }
            }
                    list = str;
                }
                remark = list.stream().collect(Collectors.joining(" "));
            }
        }
        OrderCrossCity orderCrossCity = this.selectById(id);
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -62,6 +62,7 @@
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -418,47 +419,47 @@
     * @return
     * @throws Exception
     */
    public ResultUtil<Map<String, Double>> getPrice(Integer uid, Integer type, String startLon, String startLat, String endLon, String endLat) throws Exception{
        Company query = companyCityService.query1(uid, startLon, startLat);
        if(null == query){
            return ResultUtil.error("预约取货点暂无企业服务");
        }
        Double price1 = 0D;
        Double price2 = 0D;
        if(type == 4){//同城
            Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null);
            Map<String, String> distance = gdMapElectricFenceUtil.getDistance(startLon + "," + startLat, endLon + "," + endLat, 1);
            String content = String.valueOf(query1.get("content"));
            JSONObject jsonObject = JSON.parseObject(content);
            String distance1 = distance.get("distance");
            Double dist = Double.valueOf(distance1) / 1000;
            if(dist.compareTo(0D) >= 0 && dist.compareTo(jsonObject.getDouble("num1")) < 0){
                price1 = jsonObject.getDouble("num2");
            }
            if(dist.compareTo(jsonObject.getDouble("num3")) >= 0 && dist.compareTo(jsonObject.getDouble("num4")) < 0){
                price1 = jsonObject.getDouble("num5");
            }
            if(dist.compareTo(jsonObject.getDouble("num6")) >= 0 && dist.compareTo(jsonObject.getDouble("num7")) < 0){
                price1 = jsonObject.getDouble("num8");
            }
            if(dist.compareTo(jsonObject.getDouble("num9")) >= 0 && dist.compareTo(jsonObject.getDouble("num10")) < 0){
                price1 = jsonObject.getDouble("num11");
            }
        }else{
            Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null);
            String content = String.valueOf(query1.get("content"));
            JSONObject jsonObject = JSON.parseObject(content);
            price1 = jsonObject.getDouble("num1");
            price2 = jsonObject.getDouble("num2");
        }
        Map<String, Double> map = new HashMap<>();
        map.put("ordinary", price1);//普通
        map.put("precious", price2);//贵重
        return ResultUtil.success(map);
    }
//    public ResultUtil<Map<String, Double>> getPrice(Integer uid, Integer type, String startLon, String startLat, String endLon, String endLat) throws Exception{
//        Company query = companyCityService.query1(uid, startLon, startLat);
//        if(null == query){
//            return ResultUtil.error("预约取货点暂无企业服务");
//        }
//        Double price1 = 0D;
//        Double price2 = 0D;
//        if(type == 4){//同城
//            Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null);
//            Map<String, String> distance = gdMapElectricFenceUtil.getDistance(startLon + "," + startLat, endLon + "," + endLat, 1);
//            String content = String.valueOf(query1.get("content"));
//            JSONObject jsonObject = JSON.parseObject(content);
//            String distance1 = distance.get("distance");
//            Double dist = Double.valueOf(distance1) / 1000;
//            if(dist.compareTo(0D) >= 0 && dist.compareTo(jsonObject.getDouble("num1")) < 0){
//                price1 = jsonObject.getDouble("num2");
//            }
//
//            if(dist.compareTo(jsonObject.getDouble("num3")) >= 0 && dist.compareTo(jsonObject.getDouble("num4")) < 0){
//                price1 = jsonObject.getDouble("num5");
//            }
//
//            if(dist.compareTo(jsonObject.getDouble("num6")) >= 0 && dist.compareTo(jsonObject.getDouble("num7")) < 0){
//                price1 = jsonObject.getDouble("num8");
//            }
//
//            if(dist.compareTo(jsonObject.getDouble("num9")) >= 0 && dist.compareTo(jsonObject.getDouble("num10")) < 0){
//                price1 = jsonObject.getDouble("num11");
//            }
//        }else{
//            Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null);
//            String content = String.valueOf(query1.get("content"));
//            JSONObject jsonObject = JSON.parseObject(content);
//            price1 = jsonObject.getDouble("num1");
//            price2 = jsonObject.getDouble("num2");
//        }
//        Map<String, Double> map = new HashMap<>();
//        map.put("ordinary", price1);//普通
//        map.put("precious", price2);//贵重
//        return ResultUtil.success(map);
//    }
@@ -474,7 +475,7 @@
        Double discountMoney = 0D;
        Integer activityId = null;
        if(type == 4){//同城
            Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null);
            Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null, language);
            String tripId = redisUtil.getValue("trip" + uid);
            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(startLat), Double.valueOf(startLon), Double.valueOf(endLat), Double.valueOf(endLon), tripId);
            if(null == distancematrix){
@@ -503,7 +504,7 @@
                return ResultUtil.error(language == 1 ? "超出可服务范围" : language == 2 ? "Beyond service range" : "Au-delà de la portée de service");
            }
        }else{
            Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null);
            Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null, language);
            String content = String.valueOf(query1.get("content"));
            JSONObject jsonObject = JSON.parseObject(content);
            price1 = jsonObject.getDouble("num1");
@@ -1318,23 +1319,28 @@
    
            language = userInfo.getLanguage();
    
            Integer finalLanguage1 = language;
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
            if(ToolUtil.isNotEmpty(userInfo.getEmail())){
                String path = templatePath + "user/receiptLogistics.html";
                Document document = Jsoup.parse(new File(path), "UTF-8");
                SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
                SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                driver = driverService.selectById(orderLogistics.getDriverId());
                            Driver driver = driverService.selectById(orderLogistics.getDriverId());
                Car car = carMapper.selectById(orderLogistics.getCarId());
                Double aDouble = 0D;
                if(null != orderLogistics.getDriverId()){
                    aDouble = orderEvaluateService.queryDriverScore(orderLogistics.getDriverId());
                }
                if(1 == language){
                            if(1 == finalLanguage1){
                    document.getElementById("english").remove();
                    document.getElementById("french").remove();
                    document.getElementsByTag("title").get(0).text("包裹收据");
                    Element title_chinese = document.getElementById("title_chinese");
                    title_chinese.text(DateUtil.conversionFormat(language, sdf2.format(orderLogistics.getTravelTime())) + ",您在I-GO此订单消费GHS " + orderLogistics.getPayMoney());
                                title_chinese.text(DateUtil.conversionFormat(finalLanguage1, sdf2.format(orderLogistics.getTravelTime())) + ",您在I-GO此订单消费GHS " + orderLogistics.getPayMoney());
                    Element qbj_chinese = document.getElementById("qbj_chinese");
                    qbj_chinese.text("GHS " + new BigDecimal(orderLogistics.getStartMoney()).setScale(2, RoundingMode.HALF_EVEN));
                    Element scf_chinese = document.getElementById("scf_chinese");
@@ -1415,11 +1421,11 @@
                    Element pdf_chinese = document.getElementById("pdf_chinese");
                    pdf_chinese.attr("href", "https://igo.i-go.group/user/base/order/uploadReceiptPdf?orderId=" + orderId + "&orderType=4");
                    Element lost_item_chinese = document.getElementById("lost_item_chinese");
                    lost_item_chinese.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=4");
                                lost_item_chinese.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + finalLanguage1 + "&orderId=" + orderId + "&orderType=4");
//                    Element track_chinese = document.getElementById("track_chinese");
//                    track_chinese.attr("href", "https://igo.i-go.group/mailbox/user/location.html");
                    Element pay_time_chinese = document.getElementById("pay_time_chinese");
                    pay_time_chinese.text(DateUtil.conversionFormat(language, sdf1.format(orderLogistics.getTravelTime())));
                                pay_time_chinese.text(DateUtil.conversionFormat(finalLanguage1, sdf1.format(orderLogistics.getTravelTime())));
                    Elements driver_chinese = document.getElementsByClass("driver_chinese");
                    for (int i = 0; i < driver_chinese.size(); i++) {
                        Element element = driver_chinese.get(i);
@@ -1437,12 +1443,12 @@
                    Element server_tel_chinese = document.getElementById("server_tel_chinese");
                    server_tel_chinese.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                }
                if(2 == language){
                            if(2 == finalLanguage1){
                    document.getElementById("chinese").remove();
                    document.getElementById("french").remove();
                    document.getElementsByTag("title").get(0).text("Delivery receipt");
                    Element title_english = document.getElementById("title_english");
                    title_english.text(DateUtil.conversionFormat(language, sdf2.format(orderLogistics.getTravelTime())) + ",You spent GHS " + orderLogistics.getPayMoney() + " on the trip ");
                                title_english.text(DateUtil.conversionFormat(finalLanguage1, sdf2.format(orderLogistics.getTravelTime())) + ",You spent GHS " + orderLogistics.getPayMoney() + " on the trip ");
                    Element qbj_english = document.getElementById("qbj_english");
                    qbj_english.text("GHS " + new BigDecimal(orderLogistics.getStartMoney()).setScale(2, RoundingMode.HALF_EVEN));
                    Element scf_english = document.getElementById("scf_english");
@@ -1523,11 +1529,11 @@
                    Element pdf_english = document.getElementById("pdf_english");
                    pdf_english.attr("href", "https://igo.i-go.group/user/base/order/uploadReceiptPdf?orderId=" + orderId + "&orderType=4");
                    Element lost_item_english = document.getElementById("lost_item_english");
                    lost_item_english.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=4");
                                lost_item_english.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + finalLanguage1 + "&orderId=" + orderId + "&orderType=4");
//                    Element track_english = document.getElementById("track_english");
//                    track_english.attr("href", "https://igo.i-go.group/mailbox/user/location.html");
                    Element pay_time_english = document.getElementById("pay_time_english");
                    pay_time_english.text(DateUtil.conversionFormat(language, sdf1.format(orderLogistics.getTravelTime())));
                                pay_time_english.text(DateUtil.conversionFormat(finalLanguage1, sdf1.format(orderLogistics.getTravelTime())));
                    Elements driver_english = document.getElementsByClass("driver_english");
                    for (int i = 0; i < driver_english.size(); i++) {
                        Element element = driver_english.get(i);
@@ -1545,12 +1551,12 @@
                    Element server_tel_english = document.getElementById("server_tel_english");
                    server_tel_english.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                }
                if(3 == language){
                            if(3 == finalLanguage1){
                    document.getElementById("chinese").remove();
                    document.getElementById("english").remove();
                    document.getElementsByTag("title").get(0).text("Reçu de livraison");
                    Element title_french = document.getElementById("title_french");
                    title_french.text(DateUtil.conversionFormat(language, sdf2.format(orderLogistics.getTravelTime())) + ",Vous consommez GHS " + orderLogistics.getPayMoney() + " sur votre commande I-GO ");
                                title_french.text(DateUtil.conversionFormat(finalLanguage1, sdf2.format(orderLogistics.getTravelTime())) + ",Vous consommez GHS " + orderLogistics.getPayMoney() + " sur votre commande I-GO ");
                    Element qbj_french = document.getElementById("qbj_french");
                    qbj_french.text("GHS " + new BigDecimal(orderLogistics.getStartMoney()).setScale(2, RoundingMode.HALF_EVEN));
                    Element scf_french = document.getElementById("scf_french");
@@ -1631,11 +1637,11 @@
                    Element pdf_french = document.getElementById("pdf_french");
                    pdf_french.attr("href", "https://igo.i-go.group/user/base/order/uploadReceiptPdf?orderId=" + orderId + "&orderType=4");
                    Element lost_item_french = document.getElementById("lost_item_french");
                    lost_item_french.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=4");
                                lost_item_french.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + finalLanguage1 + "&orderId=" + orderId + "&orderType=4");
//                    Element track_french = document.getElementById("track_french");
//                    track_french.attr("href", "https://igo.i-go.group/mailbox/user/location.html");
                    Element pay_time_french = document.getElementById("pay_time_french");
                    pay_time_french.text(DateUtil.conversionFormat(language, sdf1.format(orderLogistics.getTravelTime())));
                                pay_time_french.text(DateUtil.conversionFormat(finalLanguage1, sdf1.format(orderLogistics.getTravelTime())));
                    Elements driver_french = document.getElementsByClass("driver_french");
                    for (int i = 0; i < driver_french.size(); i++) {
                        Element element = driver_french.get(i);
@@ -1654,7 +1660,7 @@
                    server_tel_french.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                }
        
                EmailUtil.send(userInfo.getEmail(), language == 1 ? "包裹收据" : language == 2 ? "Delivery receipt" : "Reçu de livraison",  document.html());
                            EmailUtil.send(userInfo.getEmail(), finalLanguage1 == 1 ? "包裹收据" : finalLanguage1 == 2 ? "Delivery receipt" : "Reçu de livraison",  document.html());
        
                //开始生成pdf收据和html收据
                File file = new File("/home/igotechgh/nginx/html/files/html/");
@@ -1691,20 +1697,25 @@
                tEmail.setLink(link);
                tEmail.setUserId(userInfo.getId());
                tEmail.setType(1);
                tEmail.setName(language == 1 ? "包裹收据" : language == 2 ? "Delivery receipt" : "Reçu de livraison");
                            tEmail.setName(finalLanguage1 == 1 ? "包裹收据" : finalLanguage1 == 2 ? "Delivery receipt" : "Reçu de livraison");
                tEmail.setOrderId(orderId);
                tEmail.setCreateTime(new Date());
                int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
                String week = EmailUtil.getWeek(language, i);
                            String week = EmailUtil.getWeek(finalLanguage1, i);
                tEmail.setWeek(week);
                boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
                if(am){
                    tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin");
                                tEmail.setAmOrPm(finalLanguage1 ==1?"上午": finalLanguage1 ==2?"morning":"matin");
                }else {
                    tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
                                tEmail.setAmOrPm(finalLanguage1 ==1?"下午": finalLanguage1 ==2?"afternoon":"après-midi");
                }
                emailService.insert(tEmail);
            }
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                }
            }).start();
            
        }
@@ -1946,6 +1957,11 @@
                    "Vous avez payé la commande de livraison avec succès, merci d’utiliser I-GO", uid, 1);
    
            language = userInfo.getLanguage();
            Integer finalLanguage = language;
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
            if(ToolUtil.isNotEmpty(userInfo.getEmail())){
                String path = templatePath + "user/receiptLogistics.html";
                Document document = Jsoup.parse(new File(path), "UTF-8");
@@ -1956,12 +1972,12 @@
                if(null != orderLogistics.getDriverId()){
                    aDouble = orderEvaluateService.queryDriverScore(orderLogistics.getDriverId());
                }
                if(1 == language){
                            if(1 == finalLanguage){
                    document.getElementById("english").remove();
                    document.getElementById("french").remove();
                    document.getElementsByTag("title").get(0).text("包裹收据");
                    Element title_chinese = document.getElementById("title_chinese");
                    title_chinese.text(DateUtil.conversionFormat(language, sdf2.format(orderLogistics.getTravelTime())) + ",您在I-GO此订单消费GHS " + orderLogistics.getPayMoney());
                                title_chinese.text(DateUtil.conversionFormat(finalLanguage, sdf2.format(orderLogistics.getTravelTime())) + ",您在I-GO此订单消费GHS " + orderLogistics.getPayMoney());
                    Element qbj_chinese = document.getElementById("qbj_chinese");
                    qbj_chinese.text("GHS " + new BigDecimal(orderLogistics.getStartMoney()).setScale(2, RoundingMode.HALF_EVEN));
                    Element scf_chinese = document.getElementById("scf_chinese");
@@ -2042,11 +2058,11 @@
                    Element pdf_chinese = document.getElementById("pdf_chinese");
                    pdf_chinese.attr("href", "https://igo.i-go.group/user/base/order/uploadReceiptPdf?orderId=" + orderId + "&orderType=4");
                    Element lost_item_chinese = document.getElementById("lost_item_chinese");
                    lost_item_chinese.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=4");
                                lost_item_chinese.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + finalLanguage + "&orderId=" + orderId + "&orderType=4");
//                    Element track_chinese = document.getElementById("track_chinese");
//                    track_chinese.attr("href", "https://igo.i-go.group/mailbox/user/location.html");
                    Element pay_time_chinese = document.getElementById("pay_time_chinese");
                    pay_time_chinese.text(DateUtil.conversionFormat(language, sdf1.format(orderLogistics.getTravelTime())));
                                pay_time_chinese.text(DateUtil.conversionFormat(finalLanguage, sdf1.format(orderLogistics.getTravelTime())));
                    Elements driver_chinese = document.getElementsByClass("driver_chinese");
                    for (int i = 0; i < driver_chinese.size(); i++) {
                        Element element = driver_chinese.get(i);
@@ -2064,12 +2080,12 @@
                    Element server_tel_chinese = document.getElementById("server_tel_chinese");
                    server_tel_chinese.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                }
                if(2 == language){
                            if(2 == finalLanguage){
                    document.getElementById("chinese").remove();
                    document.getElementById("french").remove();
                    document.getElementsByTag("title").get(0).text("Delivery receipt");
                    Element title_english = document.getElementById("title_english");
                    title_english.text(DateUtil.conversionFormat(language, sdf2.format(orderLogistics.getTravelTime())) + ",You spent GHS " + orderLogistics.getPayMoney() + " on the trip ");
                                title_english.text(DateUtil.conversionFormat(finalLanguage, sdf2.format(orderLogistics.getTravelTime())) + ",You spent GHS " + orderLogistics.getPayMoney() + " on the trip ");
                    Element qbj_english = document.getElementById("qbj_english");
                    qbj_english.text("GHS " + new BigDecimal(orderLogistics.getStartMoney()).setScale(2, RoundingMode.HALF_EVEN));
                    Element scf_english = document.getElementById("scf_english");
@@ -2150,11 +2166,11 @@
                    Element pdf_english = document.getElementById("pdf_english");
                    pdf_english.attr("href", "https://igo.i-go.group/user/base/order/uploadReceiptPdf?orderId=" + orderId + "&orderType=4");
                    Element lost_item_english = document.getElementById("lost_item_english");
                    lost_item_english.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=4");
                                lost_item_english.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + finalLanguage + "&orderId=" + orderId + "&orderType=4");
//                    Element track_english = document.getElementById("track_english");
//                    track_english.attr("href", "https://igo.i-go.group/mailbox/user/location.html");
                    Element pay_time_english = document.getElementById("pay_time_english");
                    pay_time_english.text(DateUtil.conversionFormat(language, sdf1.format(orderLogistics.getTravelTime())));
                                pay_time_english.text(DateUtil.conversionFormat(finalLanguage, sdf1.format(orderLogistics.getTravelTime())));
                    Elements driver_english = document.getElementsByClass("driver_english");
                    for (int i = 0; i < driver_english.size(); i++) {
                        Element element = driver_english.get(i);
@@ -2172,12 +2188,12 @@
                    Element server_tel_english = document.getElementById("server_tel_english");
                    server_tel_english.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                }
                if(3 == language){
                            if(3 == finalLanguage){
                    document.getElementById("chinese").remove();
                    document.getElementById("english").remove();
                    document.getElementsByTag("title").get(0).text("Reçu de livraison");
                    Element title_french = document.getElementById("title_french");
                    title_french.text(DateUtil.conversionFormat(language, sdf2.format(orderLogistics.getTravelTime())) + ",Vous consommez GHS " + orderLogistics.getPayMoney() + " sur votre commande I-GO ");
                                title_french.text(DateUtil.conversionFormat(finalLanguage, sdf2.format(orderLogistics.getTravelTime())) + ",Vous consommez GHS " + orderLogistics.getPayMoney() + " sur votre commande I-GO ");
                    Element qbj_french = document.getElementById("qbj_french");
                    qbj_french.text("GHS " + new BigDecimal(orderLogistics.getStartMoney()).setScale(2, RoundingMode.HALF_EVEN));
                    Element scf_french = document.getElementById("scf_french");
@@ -2258,11 +2274,11 @@
                    Element pdf_french = document.getElementById("pdf_french");
                    pdf_french.attr("href", "https://igo.i-go.group/user/base/order/uploadReceiptPdf?orderId=" + orderId + "&orderType=4");
                    Element lost_item_french = document.getElementById("lost_item_french");
                    lost_item_french.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + language + "&orderId=" + orderId + "&orderType=4");
                                lost_item_french.attr("href", "https://igo.i-go.group/mailbox/user/lossGoods.html?language=" + finalLanguage + "&orderId=" + orderId + "&orderType=4");
//                    Element track_french = document.getElementById("track_french");
//                    track_french.attr("href", "https://igo.i-go.group/mailbox/user/location.html");
                    Element pay_time_french = document.getElementById("pay_time_french");
                    pay_time_french.text(DateUtil.conversionFormat(language, sdf1.format(orderLogistics.getTravelTime())));
                                pay_time_french.text(DateUtil.conversionFormat(finalLanguage, sdf1.format(orderLogistics.getTravelTime())));
                    Elements driver_french = document.getElementsByClass("driver_french");
                    for (int i = 0; i < driver_french.size(); i++) {
                        Element element = driver_french.get(i);
@@ -2281,7 +2297,7 @@
                    server_tel_french.attr("href", "tel:" + (null != phone ? phone.getPhone() : ""));
                }
        
                EmailUtil.send(userInfo.getEmail(), language == 1 ? "包裹收据" : language == 2 ? "Delivery receipt" : "Reçu de livraison",  document.html());
                            EmailUtil.send(userInfo.getEmail(), finalLanguage == 1 ? "包裹收据" : finalLanguage == 2 ? "Delivery receipt" : "Reçu de livraison",  document.html());
        
                //开始生成pdf收据和html收据
                File file = new File("/home/igotechgh/nginx/html/files/html/");
@@ -2318,20 +2334,25 @@
                tEmail.setLink(link);
                tEmail.setUserId(userInfo.getId());
                tEmail.setType(1);
                tEmail.setName(language == 1 ? "包裹收据" : language == 2 ? "Delivery receipt" : "Reçu de livraison");
                            tEmail.setName(finalLanguage == 1 ? "包裹收据" : finalLanguage == 2 ? "Delivery receipt" : "Reçu de livraison");
                tEmail.setOrderId(orderId);
                tEmail.setCreateTime(new Date());
                int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
                String week = EmailUtil.getWeek(language, i);
                            String week = EmailUtil.getWeek(finalLanguage, i);
                tEmail.setWeek(week);
                boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
                if(am){
                    tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin");
                                tEmail.setAmOrPm(finalLanguage ==1?"上午": finalLanguage ==2?"morning":"matin");
                }else {
                    tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
                                tEmail.setAmOrPm(finalLanguage ==1?"下午": finalLanguage ==2?"afternoon":"après-midi");
                }
                emailService.insert(tEmail);
            }
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                }
            }).start();
        }
        this.updateAllColumnById(orderLogistics);
@@ -3177,10 +3198,21 @@
        if(ToolUtil.isNotEmpty(remark)){
            if(ToolUtil.isNotEmpty(remark)){
                List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
                List<String> list = Arrays.asList(remark.split(" "));
                for(SensitiveWords s : sensitiveWords){
                    remark = remark.replaceAll(s.getContent(), "***");
                    List<String> str = new ArrayList<>();
                    String lowerCase = s.getContent().toLowerCase();
                    for (String s1 : list) {
                        if(lowerCase.equals(s1.toLowerCase())){
                            str.add("***");
                        }else{
                            str.add(s1);
                }
            }
                    list = str;
                }
                remark = list.stream().collect(Collectors.joining(" "));
            }
        }
        language = userInfoService.queryLanguage(uid, language);
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -59,6 +59,7 @@
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -789,10 +790,21 @@
        if(ToolUtil.isNotEmpty(remark)){
            if(ToolUtil.isNotEmpty(remark)){
                List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
                List<String> list = Arrays.asList(remark.split(" "));
                for(SensitiveWords s : sensitiveWords){
                    remark = remark.replaceAll(s.getContent(), "***");
                    List<String> str = new ArrayList<>();
                    String lowerCase = s.getContent().toLowerCase();
                    for (String s1 : list) {
                        if(lowerCase.equals(s1.toLowerCase())){
                            str.add("***");
                        }else{
                            str.add(s1);
                }
            }
                    list = str;
                }
                remark = list.stream().collect(Collectors.joining(" "));
            }
        }
        language = userInfoService.queryLanguage(uid, language);
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SystemPriceMapper.java
@@ -16,5 +16,5 @@
     * @return
     */
    Map<String, Object> query(@Param("companyId") Integer companyId, @Param("type") Integer type,
                              @Param("serverCarModelId") Integer serverCarModelId);
                              @Param("serverCarModelId") Integer serverCarModelId, @Param("language") Integer language);
}
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemPriceMapper.xml
@@ -14,7 +14,8 @@
    <select id="query" resultType="map">
        select
        id as id,
        content as content
        content as content,
        if(#{language} = 1, fareTypeNoteChinese, if(#{language} = 2, fareTypeNoteEnglish, fareTypeNoteFrench)) as fareTypeNote
        from t_system_price where companyId = #{companyId} and state = 1
        <if test="null != type">
            and `type` = #{type}
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SystemPrice.java
@@ -32,6 +32,21 @@
    @TableField("serverCarModelId")
    private Integer serverCarModelId;
    /**
     * 运价类型说明
     */
    @TableField("fareTypeNoteChinese")
    private String fareTypeNoteChinese;
    /**
     * 运价类型说明
     */
    @TableField("fareTypeNoteEnglish")
    private String fareTypeNoteEnglish;
    /**
     * 运价类型说明
     */
    @TableField("fareTypeNoteFrench")
    private String fareTypeNoteFrench;
    /**
     * 价格规则,每个输入框为一个参数{"num1":1,"num2":2.3}
     */
    @TableField("content")
@@ -77,6 +92,30 @@
        this.serverCarModelId = serverCarModelId;
    }
    public String getFareTypeNoteChinese() {
        return fareTypeNoteChinese;
    }
    public void setFareTypeNoteChinese(String fareTypeNoteChinese) {
        this.fareTypeNoteChinese = fareTypeNoteChinese;
    }
    public String getFareTypeNoteEnglish() {
        return fareTypeNoteEnglish;
    }
    public void setFareTypeNoteEnglish(String fareTypeNoteEnglish) {
        this.fareTypeNoteEnglish = fareTypeNoteEnglish;
    }
    public String getFareTypeNoteFrench() {
        return fareTypeNoteFrench;
    }
    public void setFareTypeNoteFrench(String fareTypeNoteFrench) {
        this.fareTypeNoteFrench = fareTypeNoteFrench;
    }
    @Override
    public String toString() {
        return "SystemPrice{" +
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ComplaintServiceImpl.java
@@ -26,9 +26,8 @@
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -63,10 +62,21 @@
    public void saveData(Integer orderId, Integer orderType, Integer driverId, String reason, String description, Integer uid, Integer language) throws Exception {
        if(ToolUtil.isNotEmpty(description)){
            List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
            List<String> list = Arrays.asList(description.split(" "));
            for(SensitiveWords s : sensitiveWords){
                description = description.replaceAll(s.getContent(), "***");
                List<String> str = new ArrayList<>();
                String lowerCase = s.getContent().toLowerCase();
                for (String s1 : list) {
                    if(lowerCase.equals(s1.toLowerCase())){
                        str.add("***");
                    }else{
                        str.add(s1);
            }
        }
                list = str;
            }
            description = list.stream().collect(Collectors.joining(" "));
        }
        Complaint complaint = new Complaint();
        complaint.setInsertTime(new Date());
        complaint.setDriverId(driverId);
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedbackServiceImpl.java
@@ -27,8 +27,11 @@
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Service
@@ -66,10 +69,21 @@
                return ResultUtil.error(language == 1 ? "反馈内容过长" : language == 2 ? "Feedback-content is overlong." : "Le contenu de l’avis est trop long.");
            }
            List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
            List<String> list = Arrays.asList(content.split(" "));
            for(SensitiveWords s : sensitiveWords){
                content = content.replaceAll(s.getContent(), "***");
                List<String> str = new ArrayList<>();
                String lowerCase = s.getContent().toLowerCase();
                for (String s1 : list) {
                    if(lowerCase.equals(s1.toLowerCase())){
                        str.add("***");
                    }else{
                        str.add(s1);
            }
        }
                list = str;
            }
            content = list.stream().collect(Collectors.joining(" "));
        }
        Feedback feedback = new Feedback();
        feedback.setContent(content);
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderEvaluateServiceImpl.java
@@ -22,9 +22,8 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -70,10 +69,21 @@
                return ResultUtil.error(language == 1 ? "评价内容过长" : language == 2 ? "Rating-content is overlong." : "Le contenu de l’évaluation est trop long.");
            }
            List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
            List<String> list = Arrays.asList(content.split(" "));
            for(SensitiveWords s : sensitiveWords){
                content = content.replaceAll(s.getContent(), "***");
                List<String> str = new ArrayList<>();
                String lowerCase = s.getContent().toLowerCase();
                for (String s1 : list) {
                    if(lowerCase.equals(s1.toLowerCase())){
                        str.add("***");
                    }else{
                        str.add(s1);
            }
        }
                list = str;
            }
            content = list.stream().collect(Collectors.joining(" "));
        }
        OrderEvaluate orderEvaluate = new OrderEvaluate();
        Integer driverId = null;
        Integer uid = null;
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ProblemServiceImpl.java
@@ -14,9 +14,8 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -48,10 +47,21 @@
                return ResultUtil.error(language == 1 ? "留言内容过长" : language == 2 ? "Message-content is overlong." : "Le contenu du message est trop long.");
            }
            List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
            List<String> list = Arrays.asList(content.split(" "));
            for(SensitiveWords s : sensitiveWords){
                content = content.replaceAll(s.getContent(), "***");
                List<String> str = new ArrayList<>();
                String lowerCase = s.getContent().toLowerCase();
                for (String s1 : list) {
                    if(lowerCase.equals(s1.toLowerCase())){
                        str.add("***");
                    }else{
                        str.add(s1);
            }
        }
                list = str;
            }
            content = list.stream().collect(Collectors.joining(" "));
        }
        Problem problem = new Problem();
        problem.setContent(content);
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
@@ -141,7 +141,7 @@
            if(3 == language){
                map.put("name", map.get("frenchName"));
            }
            Map<String, Object> query1 = systemPriceMapper.query(companyId, type, Integer.valueOf(map.get("id").toString()));
            Map<String, Object> query1 = systemPriceMapper.query(companyId, type, Integer.valueOf(map.get("id").toString()), language);
            if(null == query1){//排除没有设置价格的车型
                continue;
            }
@@ -149,6 +149,7 @@
            double amount = 0;
            if(type == 1 || type == 4){//专车
                JSONObject jsonObject = JSON.parseObject(query1.get("content").toString());
                String fareTypeNote = query1.get("fareTypeNote").toString();
                Double num1 = jsonObject.getDouble("num1");//起步价(元)
                Double num2 = jsonObject.getDouble("num2");//起步公里(公里)
                Double num3 = jsonObject.getDouble("num3");//起步时间(分钟)
@@ -258,6 +259,7 @@
                    serverCarModelWarpper.setAmount(new BigDecimal(amount).setScale(BigDecimal.ROUND_HALF_EVEN, 2).doubleValue());
                    serverCarModelWarpper.setMileage(d);
                    serverCarModelWarpper.setDuration(t);
                    serverCarModelWarpper.setFareTypeNote(fareTypeNote);
                    data.add(serverCarModelWarpper);
                    continue;
                }
@@ -277,6 +279,7 @@
                serverCarModelWarpper.setAmount(new BigDecimal(amount).setScale(BigDecimal.ROUND_HALF_EVEN, 2).doubleValue());
                serverCarModelWarpper.setMileage(d);
                serverCarModelWarpper.setDuration(t);
                serverCarModelWarpper.setFareTypeNote(fareTypeNote);
                data.add(serverCarModelWarpper);
                continue;
            }
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/EmailUtil.java
@@ -52,7 +52,7 @@
        gmailssl(props);
        final String username = "i-gotech@i-go.group";// gmail 邮箱
        final String password = "rvbmuovvpocmhast";// Google应用专用密码
        final String password = "mbhyptngnvlewdxo";// Google应用专用密码
        Session session = Session.getInstance(props,
                new Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ServerCarModelWarpper.java
@@ -24,6 +24,8 @@
    private Double mileage;
    @ApiModelProperty("预估时间(分钟)")
    private Double duration;
    @ApiModelProperty("运价说明")
    private String fareTypeNote;
    public Integer getId() {
        return id;
@@ -118,4 +120,13 @@
        }
        return data;
    }
    public String getFareTypeNote() {
        return fareTypeNote;
    }
    public void setFareTypeNote(String fareTypeNote) {
        this.fareTypeNote = fareTypeNote;
    }
}
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -43,6 +43,7 @@
import java.math.MathContext;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
@Service
@Transactional(isolation = Isolation.READ_UNCOMMITTED, propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
@@ -402,10 +403,21 @@
        if(ToolUtil.isNotEmpty(remark)){
            if(ToolUtil.isNotEmpty(remark)){
                List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
                List<String> list = Arrays.asList(remark.split(" "));
                for(SensitiveWords s : sensitiveWords){
                    remark = remark.replaceAll(s.getContent(), "***");
                    List<String> str = new ArrayList<>();
                    String lowerCase = s.getContent().toLowerCase();
                    for (String s1 : list) {
                        if(lowerCase.equals(s1.toLowerCase())){
                            str.add("***");
                        }else{
                            str.add(s1);
                }
            }
                    list = str;
                }
                remark = list.stream().collect(Collectors.joining(" "));
            }
        }
        OrderTaxi orderTaxi = this.selectById(id);