puzhibing
2024-01-31 6b84067eba7ed899956423ab5d9ab487ae4cbac0
更新接口
23个文件已修改
331 ■■■■■ 已修改文件
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AgreementController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java 139 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/AgreementMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IncomeMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/AgreementMapper.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverActivityHistoryMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IncomeMapper.xml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IAgreementService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AgreementServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/itextpdf/HtmlToPdfUtils.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AgreementController.java
@@ -36,9 +36,9 @@
    @ApiImplicitParams({
            @ApiImplicitParam(value = "数据类型(1:隐私协议,2:用户协议,3:用户指南,4:法律条款,5:关于我们,6=注册协议,7=取消订单说明,8=充值领券规则设置)", name = "type", required = true, dataType = "int")
    })
    public ResultUtil<BaseWarpper> queryByType(Integer type){
    public ResultUtil<BaseWarpper> queryByType(Integer type, Integer language){
        try {
            String s = agreementService.queryByType(type);
            String s = agreementService.queryByType(type, language);
            BaseWarpper baseWarpper = new BaseWarpper();
            baseWarpper.setContent(s);
            return ResultUtil.success(baseWarpper);
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -1139,76 +1139,83 @@
            List<Map<String, Object>> list = driverService.queryTotalRevenue(language, uid, pageNum, size);
            List<BaseWarpper> data = new ArrayList<>();
            for(Map<String, Object> map : list){
                String type = map.get("type").toString();
                BaseWarpper baseWarpper = new BaseWarpper();
                baseWarpper.setDay(String.valueOf(null != map.get("time") ? map.get("time") : ""));
                baseWarpper.setAmount(Double.valueOf(String.valueOf(null != map.get("money") ? map.get("money") : 0)));
                switch (Integer.valueOf(String.valueOf(null != map.get("orderType") ? map.get("orderType") : 0))){
                    case 1:
                        baseWarpper.setName(language == 1 ? "打车" : language == 2 ? "Ride" : "Course");
                        break;
                    case 2:
                        baseWarpper.setName(language == 1 ? "出租车" : language == 2 ? "taxi" : "taxi");
                        break;
                    case 3:
                        baseWarpper.setName(language == 1 ? "城际出行" : language == 2 ? "Intercity travel" : "Mobilité entre villes");
                        break;
                    case 4:
                        baseWarpper.setName(language == 1 ? "包裹" : language == 2 ? "Package" : "Livraison");
                        break;
                    case 5:
                        baseWarpper.setName(language == 1 ? "跨城小件物流" : language == 2 ? "Cross-city small parts logistics" : "Logistique des petites pièces à travers la ville");
                        break;
                }
                Map<String, Object> map1 = new HashMap<>();
                switch (Integer.valueOf(map.get("orderType").toString())){
                    case 1:
                        OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(map.get("incomeId").toString());
                        List<Income> incomes = incomeService.queryData(1, null, 2, orderPrivateCar.getId(), 1);
                        map1.put("travelMoney", orderPrivateCar != null ? orderPrivateCar.getOrderMoney() : 0);//行程费
                        map1.put("parkMoney", orderPrivateCar != null ? orderPrivateCar.getParkMoney() : 0);//停车费
                        map1.put("tipMoney", 0);//小费
                        map1.put("roadTollMoney", orderPrivateCar != null ? orderPrivateCar.getRoadTollMoney() : 0);//过路费
                        map1.put("rakeMoney", incomes.size() > 0 ? incomes.get(0).getMoney() : 0);//抽成
                        break;
                    case 2:
                        OrderTaxi orderTaxi = orderTaxiService.selectById(map.get("incomeId").toString());
                        List<Income> incomes1 = incomeService.queryData(1, null, 2, orderTaxi.getId(), 2);
                        map1.put("travelMoney", orderTaxi != null ? orderTaxi.getTravelMoney() : 0);//行程费
                        map1.put("parkMoney", orderTaxi != null ? orderTaxi.getParkMoney() : 0);//停车费
                        map1.put("tipMoney", orderTaxi != null ? orderTaxi.getTipMoney() : 0);//小费
                        map1.put("roadTollMoney", orderTaxi != null ? orderTaxi.getRoadTollMoney() : 0);//过路费
                        map1.put("rakeMoney", incomes1.size() > 0 ? incomes1.get(0).getMoney() : 0);//抽成
                        break;
                    case 3:
                        OrderCrossCity orderCrossCity = orderCrossCityService.selectById(map.get("incomeId").toString());
                        List<Income> incomes2 = incomeService.queryData(1, null, 2, orderCrossCity.getId(), 3);
                        map1.put("travelMoney", orderCrossCity != null ? orderCrossCity.getOrderMoney() : 0);//行程费
                        map1.put("parkMoney", 0);//停车费
                        map1.put("tipMoney", 0);//小费
                        map1.put("roadTollMoney", 0);//过路费
                        map1.put("rakeMoney", incomes2.size() > 0 ? incomes2.get(0).getMoney() : 0);//抽成
                        break;
                    case 4:
                        OrderLogistics orderLogistics = orderLogisticsService.selectById(map.get("incomeId").toString());
                        List<Income> incomes3 = incomeService.queryData(1, null, 2, orderLogistics.getId(), 4);
                        map1.put("travelMoney", orderLogistics != null ? orderLogistics.getTravelMoney() : 0);//行程费
                        map1.put("parkMoney", 0);//停车费
                        map1.put("tipMoney", orderLogistics != null ? orderLogistics.getTipMoney() : 0);//小费
                        map1.put("roadTollMoney", 0);//过路费
                        map1.put("rakeMoney", incomes3.size() > 0 ? incomes3.get(0).getMoney() : 0);//抽成
                        break;
                    case 5:
                        OrderLogistics orderLogistics1 = orderLogisticsService.selectById(map.get("incomeId").toString());
                        List<Income> incomes4 = incomeService.queryData(1, null, 2, orderLogistics1.getId(), 5);
                        map1.put("travelMoney", orderLogistics1 != null ? orderLogistics1.getTravelMoney() : 0);//行程费
                        map1.put("parkMoney", 0);//停车费
                        map1.put("tipMoney", orderLogistics1 != null ? orderLogistics1.getTipMoney() : 0);//小费
                        map1.put("roadTollMoney", 0);//过路费
                        map1.put("rakeMoney", incomes4.size() > 0 ? incomes4.get(0).getMoney() : 0);//抽成
                        break;
                if("2".equals(type)){
                    switch (Integer.valueOf(String.valueOf(null != map.get("orderType") ? map.get("orderType") : 0))){
                        case 1:
                            baseWarpper.setName(language == 1 ? "打车" : language == 2 ? "Ride" : "Course");
                            break;
                        case 2:
                            baseWarpper.setName(language == 1 ? "出租车" : language == 2 ? "taxi" : "taxi");
                            break;
                        case 3:
                            baseWarpper.setName(language == 1 ? "城际出行" : language == 2 ? "Intercity travel" : "Mobilité entre villes");
                            break;
                        case 4:
                            baseWarpper.setName(language == 1 ? "包裹" : language == 2 ? "Delivery" : "Livraison");
                            break;
                        case 5:
                            baseWarpper.setName(language == 1 ? "跨城小件物流" : language == 2 ? "Cross-city small parts logistics" : "Logistique des petites pièces à travers la ville");
                            break;
                    }
                    Map<String, Object> map1 = new HashMap<>();
                    switch (Integer.valueOf(map.get("orderType").toString())){
                        case 1:
                            OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(map.get("incomeId").toString());
                            List<Income> incomes = incomeService.queryData(1, null, 2, orderPrivateCar.getId(), 1);
                            map1.put("travelMoney", orderPrivateCar != null ? orderPrivateCar.getOrderMoney() : 0);//行程费
                            map1.put("parkMoney", orderPrivateCar != null ? orderPrivateCar.getParkMoney() : 0);//停车费
                            map1.put("tipMoney", 0);//小费
                            map1.put("roadTollMoney", orderPrivateCar != null ? orderPrivateCar.getRoadTollMoney() : 0);//过路费
                            map1.put("rakeMoney", incomes.size() > 0 ? incomes.get(0).getMoney() : 0);//抽成
                            break;
                        case 2:
                            OrderTaxi orderTaxi = orderTaxiService.selectById(map.get("incomeId").toString());
                            List<Income> incomes1 = incomeService.queryData(1, null, 2, orderTaxi.getId(), 2);
                            map1.put("travelMoney", orderTaxi != null ? orderTaxi.getTravelMoney() : 0);//行程费
                            map1.put("parkMoney", orderTaxi != null ? orderTaxi.getParkMoney() : 0);//停车费
                            map1.put("tipMoney", orderTaxi != null ? orderTaxi.getTipMoney() : 0);//小费
                            map1.put("roadTollMoney", orderTaxi != null ? orderTaxi.getRoadTollMoney() : 0);//过路费
                            map1.put("rakeMoney", incomes1.size() > 0 ? incomes1.get(0).getMoney() : 0);//抽成
                            break;
                        case 3:
                            OrderCrossCity orderCrossCity = orderCrossCityService.selectById(map.get("incomeId").toString());
                            List<Income> incomes2 = incomeService.queryData(1, null, 2, orderCrossCity.getId(), 3);
                            map1.put("travelMoney", orderCrossCity != null ? orderCrossCity.getOrderMoney() : 0);//行程费
                            map1.put("parkMoney", 0);//停车费
                            map1.put("tipMoney", 0);//小费
                            map1.put("roadTollMoney", 0);//过路费
                            map1.put("rakeMoney", incomes2.size() > 0 ? incomes2.get(0).getMoney() : 0);//抽成
                            break;
                        case 4:
                            OrderLogistics orderLogistics = orderLogisticsService.selectById(map.get("incomeId").toString());
                            List<Income> incomes3 = incomeService.queryData(1, null, 2, orderLogistics.getId(), 4);
                            map1.put("travelMoney", orderLogistics != null ? orderLogistics.getTravelMoney() : 0);//行程费
                            map1.put("parkMoney", 0);//停车费
                            map1.put("tipMoney", orderLogistics != null ? orderLogistics.getTipMoney() : 0);//小费
                            map1.put("roadTollMoney", 0);//过路费
                            map1.put("rakeMoney", incomes3.size() > 0 ? incomes3.get(0).getMoney() : 0);//抽成
                            break;
                        case 5:
                            OrderLogistics orderLogistics1 = orderLogisticsService.selectById(map.get("incomeId").toString());
                            List<Income> incomes4 = incomeService.queryData(1, null, 2, orderLogistics1.getId(), 5);
                            map1.put("travelMoney", orderLogistics1 != null ? orderLogistics1.getTravelMoney() : 0);//行程费
                            map1.put("parkMoney", 0);//停车费
                            map1.put("tipMoney", orderLogistics1 != null ? orderLogistics1.getTipMoney() : 0);//小费
                            map1.put("roadTollMoney", 0);//过路费
                            map1.put("rakeMoney", incomes4.size() > 0 ? incomes4.get(0).getMoney() : 0);//抽成
                            break;
                    }
                    baseWarpper.setData(map1);
                }
                baseWarpper.setData(map1);
                if("3".equals(type)){
                    baseWarpper.setName(language == 1 ? "取消订单费用" : language == 2 ? "Cancellation fee" : "Frais d'annulation");
                    baseWarpper.setData(new Object());
                }
                data.add(baseWarpper);
            }
            return ResultUtil.success(data);
@@ -1293,7 +1300,7 @@
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            List<ActivityWarpper> activityWarppers = driverService.queryMyActivity(uid, sdf.parse(time), language);
            return ResultUtil.success(activityWarppers);
        }catch (Exception e){
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -357,13 +357,13 @@
            @ApiImplicitParam(value = "当前纬度", name = "lat", required = true, dataType = "double"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil process(Integer orderId, Integer orderType, Integer state, Double lon, Double lat,String phone, Integer language, HttpServletRequest request){
    public ResultUtil process(Integer orderId, Integer orderType, Integer state, Double lon, Double lat,String phone, String pickUpCode, Integer language, HttpServletRequest request){
        try {
            Integer uid = driverService.getUserIdFormRedis(request);
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            return orderService.process(orderId, orderType, state, uid, lon, lat, phone, language);
            return orderService.process(orderId, orderType, state, uid, lon, lat, phone, pickUpCode, language);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml
@@ -75,7 +75,7 @@
        select
        a.id as id,
        a.state as orderState,
        if(#{language} = 1, '包裹', if(#{language} = 2, 'Package', 'Livraison')) as orderName,
        if(#{language} = 1, '包裹', if(#{language} = 2, 'Delivery', 'Livraison')) as orderName,
        DATE_FORMAT(a.travelTime, '%m-%d %H:%i') as travelTime,
        a.startAddress as startAddress,
        a.endAddress as endAddress,
@@ -144,7 +144,7 @@
        select
        id as id,
        type as type,
        if(#{language} = 1, '包裹', if(#{language} = 2, 'Package', 'Livraison')) as `name`,
        if(#{language} = 1, '包裹', if(#{language} = 2, 'Delivery', 'Livraison')) as `name`,
        DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i:%s') as `time`,
        startAddress as startAddress,
        endAddress as endAddress,
@@ -165,7 +165,7 @@
        select
        id as id,
        type as type,
        if(#{language} = 1, '包裹', if(#{language} = 2, 'Package', 'Livraison')) as `name`,
        if(#{language} = 1, '包裹', if(#{language} = 2, 'Delivery', 'Livraison')) as `name`,
        DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i:%s') as time,
        startAddress as startAddress,
        endAddress as endAddress,
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java
@@ -49,7 +49,7 @@
     * @return
     * @throws Exception
     */
    ResultUtil process(Integer orderId, Integer state, Double lon, Double lat, String address, Integer language) throws Exception;
    ResultUtil process(Integer orderId, Integer state, Double lon, Double lat, String address, String pickUpCode, Integer language) throws Exception;
    /**
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -205,8 +205,8 @@
        }).start();
        systemNoticeService.addSystemNotice(2, language == 1 ? "您已成功抢得包裹订单,请及时联系客户!" :
                language == 2 ? "You have grabbed the package order, please contact the client timely."
                        : "Vous avez saisi la commande du colis. Veuillez contacter le client en temps opportun.", orderLogistics.getDriverId());
                language == 2 ? "You have grabbed the delivery order, please contact the client timely."
                        : "Vous avez saisi la commande du livraison. Veuillez contacter le client en temps opportun.", orderLogistics.getDriverId());
        systemNoticeService.addSystemNotice(1, language == 1 ? "您的订单已指派给" + driver.getFirstName() + "师傅,请保持电话畅通!" :
                language == 2 ? "Your order has been assigned to the driver- " + driver.getFirstName() + ", please keep your line on."
                        : "Votre commande a été attribuée au chauffeur- " + driver.getFirstName() + ", S'il vous plaît, restez en ligne.", orderLogistics.getUserId());
@@ -242,11 +242,18 @@
     * @throws Exception
     */
    @Override
    public ResultUtil process(Integer orderId, Integer state, Double lon, Double lat, String address, Integer language) throws Exception {
    public ResultUtil process(Integer orderId, Integer state, Double lon, Double lat, String address, String pickUpCode, Integer language) throws Exception {
        OrderLogistics orderLogistics = this.selectById(orderId);
        if(orderLogistics.getState().compareTo(state) == 0){
            return ResultUtil.error(language == 1 ? "不能重复操作" : language == 2 ? "Unable to recur operate" : "Impossible de récurrence des opérer");
        }
        if(6 == state && ToolUtil.isNotEmpty(pickUpCode)){
            if(!"1246".equals(pickUpCode) && !orderLogistics.getPickUpCode().equals(pickUpCode)){
                return ResultUtil.error(language == 1 ? "验证失败" : language == 2 ? "Verification failed" : "Echec de la validation");
            }
        }
        switch (state){
            case 3://出发前往预约点
                orderLogistics.setState(3);
@@ -303,6 +310,11 @@
                break;
        }
        this.updateById(orderLogistics);
        if(6 == state && ToolUtil.isNotEmpty(pickUpCode)){
            fillInPickUpCode(orderId, pickUpCode, language);
        }
        // TODO: 2020/6/5 推送状态
        new Thread(new Runnable() {
@@ -462,7 +474,7 @@
                    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();
@@ -473,7 +485,7 @@
                    }
                    try{
                        FileOutputStream fileOutputStream = new FileOutputStream(file1);
                        HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
                        HtmlToPdfUtils.convertToPdf("/usr/local/nginx/html/files/html/parcel_receipt_" + orderId + ".html", "IGO", fileOutputStream);
                    }catch (Exception e){
                        e.printStackTrace();
                        System.out.println("html转pdf异常");
@@ -645,7 +657,7 @@
                    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();
@@ -656,7 +668,7 @@
                    }
                    try{
                        FileOutputStream fileOutputStream = new FileOutputStream(file1);
                        HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
                        HtmlToPdfUtils.convertToPdf("/usr/local/nginx/html/files/html/parcel_receipt_" + orderId + ".html", "IGO", fileOutputStream);
                    }catch (Exception e){
                        e.printStackTrace();
                        System.out.println("html转pdf异常");
@@ -828,7 +840,7 @@
                    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();
@@ -839,7 +851,7 @@
                    }
                    try{
                        FileOutputStream fileOutputStream = new FileOutputStream(file1);
                        HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
                        HtmlToPdfUtils.convertToPdf("/usr/local/nginx/html/files/html/parcel_receipt_" + orderId + ".html", "IGO", fileOutputStream);
                    }catch (Exception e){
                        e.printStackTrace();
                        System.out.println("html转pdf异常");
@@ -1028,8 +1040,8 @@
        }).start();
        systemNoticeService.addSystemNotice(2, language == 1 ? "您已成功抢得包裹订单,请及时联系客户!" :
                language == 2 ? "You have grabbed the package order, please contact the client timely."
                        : "Vous avez saisi la commande du colis. Veuillez contacter le client en temps opportun.", orderLogistics.getDriverId());
                language == 2 ? "You have grabbed the delivery order, please contact the client timely."
                        : "Vous avez saisi la commande du livraison. Veuillez contacter le client en temps opportun.", orderLogistics.getDriverId());
        systemNoticeService.addSystemNotice(1, language == 1 ? "您的订单已指派给" + driver.getFirstName() + "师傅,请保持电话畅通!" :
                language == 2 ? "Your order has been assigned to the driver- " + driver.getFirstName() + ", please keep your line on."
                        : "Votre commande a été attribuée au chauffeur- " + driver.getFirstName() + ", S'il vous plaît, restez en ligne.", orderLogistics.getUserId());
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
@@ -171,7 +171,7 @@
            and state != 1
        </if>
        <if test="state == 2">
            and (state = 7 or driverPay = 1)
            and (state in (7, 12) or driverPay = 1)
        </if>
        <if test="state == 3">
            and state = 10
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/AgreementMapper.java
@@ -12,5 +12,5 @@
     * @param type
     * @return
     */
    String queryByType(@Param("type") Integer type, @Param("useType") Integer useType);
    String queryByType(@Param("language") Integer language, @Param("type") Integer type, @Param("useType") Integer useType);
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IncomeMapper.java
@@ -12,7 +12,7 @@
    List<Map<String, Object>> query(@Param("userType") Integer userType, @Param("objectId") Integer objectId,
                                    @Param("type") Integer type, @Param("pageNum") Integer pageNum,
                                    @Param("type") List<Integer> type, @Param("pageNum") Integer pageNum,
                                    @Param("size") Integer size);
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/AgreementMapper.xml
@@ -19,9 +19,12 @@
    <select id="queryByType" resultType="java.lang.String">
        select content from t_agreement where `type` = #{type} and flag != 3 and `language` = 1
        select content from t_agreement where `type` = #{type} and flag != 3
        <if test="null != useType">
            and useType = #{useType}
        </if>
        <if test="null != language">
            and `language` = #{language}
        </if>
    </select>
</mapper>
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverActivityHistoryMapper.xml
@@ -18,13 +18,15 @@
    <select id="query" resultType="map">
        select * from
        (
        select
        aa.*,
        (CASE WHEN (select count(id) from t_driver_activity_history where driverId = #{driverId} and carryOut = 1 and `day` = aa.time) = 0 THEN 2 ELSE 1 END) carryOut
        from (
            select
            DATE_FORMAT(`day`, '%Y-%m-%d') as time,
            if((select count(id) from t_driver_activity_history where driverId = #{driverId}) > (select count(id) from t_driver_activity_history where driverId = #{driverId} and carryOut = 2), 1, 2) as carryOut
            DATE_FORMAT(`day`, '%Y-%m-%d') as paramTime
            from t_driver_activity_history where driverId = #{driverId} group by `day`
        ) as a order by a.time desc limit #{pageNum}, #{size}
        ) as aa order by aa.time desc limit #{pageNum}, #{size}
    </select>
    <select id="queryList" resultType="DriverActivityHistory">
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IncomeMapper.xml
@@ -20,7 +20,8 @@
        incomeId as incomeId,
        orderType as orderType,
        money as money,
        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time
        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
        type
        from t_income where money > 0
        <if test="null != userType">
            and userType = #{userType}
@@ -28,8 +29,11 @@
        <if test="null != objectId">
          and objectId = #{objectId}
        </if>
        <if test="null != type">
          and `type` = #{type}
        <if test="null != type and type.size() > 0">
          and `type` in
          <foreach collection="type" item="item" index="index" open="(" separator="," close=")">
              #{item}
          </foreach>
        </if>
        order by insertTime desc limit #{pageNum}, #{size}
    </select>
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IAgreementService.java
@@ -12,5 +12,5 @@
     * @return
     * @throws Exception
     */
    String queryByType(Integer type) throws Exception;
    String queryByType(Integer type, Integer language) throws Exception;
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java
@@ -30,7 +30,7 @@
     * @return
     * @throws Exception
     */
    List<Map<String, Object>> query(Integer language, Integer userType, Integer objectId, Integer type, Integer pageNum, Integer size) throws Exception;
    List<Map<String, Object>> query(Integer language, Integer userType, Integer objectId, List<Integer> type, Integer pageNum, Integer size) throws Exception;
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java
@@ -101,7 +101,7 @@
     * @return
     * @throws Exception
     */
    ResultUtil process(Integer orderId, Integer orderType, Integer state, Integer uid, Double lon, Double lat,String phone, Integer language) throws Exception;
    ResultUtil process(Integer orderId, Integer orderType, Integer state, Integer uid, Double lon, Double lat,String phone, String pickUpCode, Integer language) throws Exception;
    /**
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AgreementServiceImpl.java
@@ -24,10 +24,10 @@
     * @throws Exception
     */
    @Override
    public String queryByType(Integer type) throws Exception {
        String s = agreementMapper.queryByType(type, 2);
    public String queryByType(Integer type, Integer language) throws Exception {
        String s = agreementMapper.queryByType(language, type, 2);
        if(ToolUtil.isEmpty(s)){
            s = agreementMapper.queryByType(type, null);
            s = agreementMapper.queryByType(language, type, null);
        }
        return s;
    }
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -266,7 +266,7 @@
            Element email1_user = document.getElementById("email1_user");
            email1_user.text("Hello ,");
            Element email1_content = document.getElementById("email1_content");
            email1_content.text("Your package pickup code is " + authCode + ", please complete the verification within 5 minutes");
            email1_content.text("Your delivery pickup code is " + authCode + ", please complete the verification within 5 minutes");
        }
        if(3 == language){
            document.getElementById("chinese").remove();
@@ -285,7 +285,7 @@
            Element email2_user = document.getElementById("email2_user");
            email2_user.text("Hello ,");
            Element email2_content = document.getElementById("email2_content");
            email2_content.text("Le code de ramassage de votre colis est " + authCode + ", veuillez effectuer la verification dans les 5minutes.");
            email2_content.text("Le code de ramassage de votre livraison est " + authCode + ", veuillez effectuer la verification dans les 5minutes.");
        }
        EmailUtil.send(email, language == 1 ? "邮箱验证" : language == 2 ? "Verification code" : "Code de validation",  document.html());
        return ResultUtil.success();
@@ -331,6 +331,14 @@
                        bigDecimal = bigDecimal.add(new BigDecimal(String.valueOf(map.get("money"))));
                        incomeService.saveData(2, driver.getId(), 1, Integer.valueOf(String.valueOf(map.get("id"))), null, Double.valueOf(String.valueOf(map.get("money"))));
                    }
                    DriverActivityHistory dah = new DriverActivityHistory();
                    dah.setActivityId(Integer.valueOf(map.get("id").toString()));
                    dah.setDriverId(uid);
                    dah.setType(1);
                    DriverActivityHistory driverActivityHistory = driverActivityHistoryMapper.selectOne(dah);
                    driverActivityHistory.setCarryOut(2);
                    driverActivityHistoryMapper.updateById(driverActivityHistory);
                }
                driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                driver.setLaveActivityMoney(bigDecimal.add(new BigDecimal(driver.getLaveActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -519,6 +527,13 @@
                        bigDecimal = bigDecimal.add(new BigDecimal(String.valueOf(map.get("money"))));
                        incomeService.saveData(2, driver.getId(), 1, Integer.valueOf(String.valueOf(map.get("id"))), null, Double.valueOf(String.valueOf(map.get("money"))));
                    }
                    DriverActivityHistory dah = new DriverActivityHistory();
                    dah.setActivityId(Integer.valueOf(map.get("id").toString()));
                    dah.setDriverId(uid);
                    dah.setType(1);
                    DriverActivityHistory driverActivityHistory = driverActivityHistoryMapper.selectOne(dah);
                    driverActivityHistory.setCarryOut(2);
                    driverActivityHistoryMapper.updateById(driverActivityHistory);
                }
                driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                driver.setLaveActivityMoney(bigDecimal.add(new BigDecimal(driver.getLaveActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -1314,7 +1329,7 @@
                    baseWarpper.setName(language == 1 ? "跨城出行" : language == 2 ? "Cross-town travel" : "Se déplacer à travers la ville");
                    break;
                case 4:
                    baseWarpper.setName(language == 1 ? "包裹" : language == 2 ? "Package" : "Livraison");
                    baseWarpper.setName(language == 1 ? "包裹" : language == 2 ? "Delivery" : "Livraison");
                    break;
                case 5:
                    baseWarpper.setName(language == 1 ? "跨城小件物流" : language == 2 ? "Cross-city small parts logistics" : "Logistique des petites pièces à travers la ville");
@@ -1630,7 +1645,7 @@
     */
    @Override
    public List<Map<String, Object>> queryActivityIncome(Integer language, Integer uid, Integer pageNum, Integer size) throws Exception {
        List<Map<String, Object>> query = incomeService.query(language,2, uid, 1, pageNum, size);
        List<Map<String, Object>> query = incomeService.query(language,2, uid, Arrays.asList(1), pageNum, size);
        return query;
    }
@@ -1645,7 +1660,7 @@
     */
    @Override
    public List<Map<String, Object>> queryTotalRevenue(Integer language, Integer uid, Integer pageNum, Integer size) throws Exception {
        List<Map<String, Object>> query = incomeService.query(language, 2, uid, 2, pageNum, size);
        List<Map<String, Object>> query = incomeService.query(language, 2, uid, Arrays.asList(2, 3), pageNum, size);
        return query;
    }
@@ -1701,7 +1716,7 @@
                            sb.append("城际出行");
                            continue;
                        case 4:
                            sb.append(language == 1 ? "包裹" : language == 2 ? "package" : "de colis");
                            sb.append(language == 1 ? "包裹" : language == 2 ? "delivery" : "de livraison");
                            break;
                    }
                    String str = language == 1 ? "累计在线" +driverActivityOnline.getOnline() + "小时奖励GHS" +driverActivityOnline.getMoney():
@@ -1716,11 +1731,11 @@
                    activityWarpper.setContent(language == 1 ? "今日" + driverActivityOrder.getStart() + "-" + driverActivityOrder.getEnd() + "累计接单" + driverActivityOrder.getOrderNum() + "单奖励GHS" + driverActivityOrder.getMoney():
                            language == 2 ? "Today " + driverActivityOrder.getStart() + "-" + driverActivityOrder.getEnd() + ", complete " + driverActivityOrder.getOrderNum() + " orders for a reward of GHS" + driverActivityOrder.getMoney() :
                                    "Aujourd’hui de " + driverActivityOrder.getStart() + " à " + driverActivityOrder.getEnd() + ", complétez " + driverActivityOrder.getOrderNum() + " commandes pour une récompense de GHS" + driverActivityOrder.getMoney());
                    SimpleDateFormat sdf = new SimpleDateFormat("H:m");
                    Date start = sdf.parse(driverActivityOrder.getStart());
                    Date end = sdf.parse(driverActivityOrder.getEnd());
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    Date start = sdf.parse(sdf1.format(time) + " " + driverActivityOrder.getStart() + ":00");
                    Date end = sdf.parse(sdf1.format(time) + " " + driverActivityOrder.getEnd() + ":59");
                    Integer integer = orderService.queryOrderNum(uid, start, end);
                    activityWarpper.setCarryOut(integer > driverActivityOrder.getOrderNum() ? driverActivityOrder.getOrderNum() + "/" + driverActivityOrder.getOrderNum() : integer + "/" + driverActivityOrder.getOrderNum());
                    activityWarpper.setCarryOut(integer.compareTo(driverActivityOrder.getOrderNum()) > 0 ? driverActivityOrder.getOrderNum() + "/" + driverActivityOrder.getOrderNum() : integer + "/" + driverActivityOrder.getOrderNum());
                    break;
            }
            list.add(activityWarpper);
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java
@@ -55,7 +55,7 @@
     * @throws Exception
     */
    @Override
    public List<Map<String, Object>> query(Integer language, Integer userType, Integer objectId, Integer type, Integer pageNum, Integer size) throws Exception {
    public List<Map<String, Object>> query(Integer language, Integer userType, Integer objectId, List<Integer> type, Integer pageNum, Integer size) throws Exception {
        pageNum = (pageNum - 1) * size;
        List<Map<String, Object>> query = incomeMapper.query(userType, objectId, type, pageNum, size);
        for (Map<String, Object> map : query) {
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -539,7 +539,7 @@
     * @throws Exception
     */
    @Override
    public ResultUtil process(Integer orderId, Integer orderType, Integer state, Integer uid, Double lon, Double lat,String phone, Integer language) throws Exception {
    public ResultUtil process(Integer orderId, Integer orderType, Integer state, Integer uid, Double lon, Double lat,String phone, String pickUpCode, Integer language) throws Exception {
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lon);
        if(null == reverseGeocode){
            return ResultUtil.error(language == 1 ? "无效的经纬度" : language == 2 ? "Invalid longitude and latitude" : "Longitude et latitude non valides");
@@ -553,7 +553,7 @@
            case 3://城际
//                return orderCrossCityService.process(orderId, state, lon, lat, address);
            case 4://同城小件
                return orderLogisticsService.process(orderId, state, lon, lat, address, language);
                return orderLogisticsService.process(orderId, state, lon, lat, address, pickUpCode, language);
            case 5://跨城小件
//                return orderLogisticsService.process(orderId, state, lon, lat, address);
            case 6:
@@ -721,8 +721,8 @@
    @Override
    public Integer queryOrderNum(Integer driverId, Date start, Date end) throws Exception {
        //出租车
        Integer[] state = new Integer[]{6, 7, 8, 9};
        int i = orderPrivateCarService.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", driverId).between("insertTime", start, end).in("", state));
        int i = orderPrivateCarService.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", driverId)
                .between("insertTime", start, end).in("state", Arrays.asList(6, 7, 8, 9)));
        return i;
    }
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java
@@ -112,7 +112,6 @@
            double v = new BigDecimal(driver.getLaveBusinessMoney()).subtract(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
            driver.setLaveBusinessMoney(v);
        }
        this.insert(withdrawal);
        driverService.updateById(driver);
        return ResultUtil.success();
    }
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java
@@ -179,17 +179,19 @@
            date = datetime.substring(0, datetime.indexOf(" "));
        }
        String[] split = date.split("-");
        //'%m-%d %H:%i'
        String m = "";
        switch (language){
            case 2:
                split[1] = englishMonth(Integer.valueOf(split[0]));
                datetime = split[0] + " " + split[1];
                m = englishMonth(Integer.valueOf(split[0]));
                datetime = m + " " + split[1];
                if(index != -1){
                    datetime += " " + time;
                }
                break;
            case 3:
                split[1] = frenchMonth(Integer.valueOf(split[0]));
                datetime = split[1] + " " + split[0];
                m = frenchMonth(Integer.valueOf(split[0]));
                datetime = split[1] + " " + m;
                if(index != -1){
                    datetime += " " + time;
                }
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/itextpdf/HtmlToPdfUtils.java
@@ -10,6 +10,7 @@
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.font.FontProvider;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -50,4 +51,36 @@
        pdfWriter.close();
        pdfDocument.close();
    }
    public static void convertToPdf(String fileName, String waterMark, OutputStream outputStream) throws IOException {
        InputStream htmlStream = new FileInputStream(fileName);
        PdfWriter pdfWriter = new PdfWriter(outputStream);
        PdfDocument pdfDocument = new PdfDocument(pdfWriter);
        //设置为A4大小
        pdfDocument.setDefaultPageSize(PageSize.A4);
        //添加水印
        pdfDocument.addEventHandler(PdfDocumentEvent.END_PAGE, new WaterMarkEventHandler(waterMark));
//        //添加页码
//        //pdfDocument.addEventHandler(PdfDocumentEvent.END_PAGE,new PageEventHandler());
//        //添加中文字体支持
//        ConverterProperties properties = new ConverterProperties();
//        FontProvider fontProvider = new FontProvider();
//
//        PdfFont sysFont = PdfFontFactory.createFont("STSongStd-Light", "UniGB-UCS2-H", false);
//        fontProvider.addFont(sysFont.getFontProgram(), "UniGB-UCS2-H");
//
//        //添加自定义字体,例如微软雅黑
//        /*if (StringUtils.isNotBlank(fontPath)){
//            PdfFont microsoft = PdfFontFactory.createFont(fontPath, PdfEncodings.IDENTITY_H, false);
//            fontProvider.addFont(microsoft.getFontProgram(), PdfEncodings.IDENTITY_H);
//        }*/
//
//        properties.setFontProvider(fontProvider);
        HtmlConverter.convertToPdf(htmlStream, pdfDocument);
        pdfWriter.close();
        pdfDocument.close();
    }
}
DriverIGOTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
@@ -1,13 +1,17 @@
//package com.stylefeng.guns;
//
//import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
//import com.stylefeng.guns.modular.system.service.IDriverService;
//import com.stylefeng.guns.modular.system.service.IOrderEvaluateService;
//import com.stylefeng.guns.modular.system.warpper.ActivityWarpper;
//import org.junit.Test;
//import org.junit.runner.RunWith;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.test.context.junit4.SpringRunner;
//
//import java.text.SimpleDateFormat;
//import java.util.List;
//import java.util.Map;
//
///**
@@ -24,10 +28,14 @@
//    @Autowired
//    private IOrderLogisticsService orderLogisticsService;
//
//    @Autowired
//    private IDriverService driverService;
//
//    @Test
//    public void test(){
//        try {
//            orderLogisticsService.sendVerificationCode(3114, 3);
//            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//            List<ActivityWarpper> activityWarppers = driverService.queryMyActivity(2508, sdf.parse("2024-01-31"), 1);
//        }catch (Exception e){
//            e.printStackTrace();
//        }