luo
2024-01-31 021640e69b32dbd9b88a538402671c47f280df9e
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/IgoTravel into dev

# Conflicts:
# DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java
1个文件已添加
49个文件已修改
955 ■■■■■ 已修改文件
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 | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TOpenCityController.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOpenCityMapper.xml 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/City.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/resources/application-dev.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/resources/application-produce.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/resources/application.yml 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/resources/logback-spring.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/tOpenCity/tOpenCity_info.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/userActivity/addRegist.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-core/src/main/java/com/stylefeng/guns/core/util/DateUtil.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OpenCityController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/AgreementMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityBalanceMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/City.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverActivityHistory.java 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOpenCityService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/itextpdf/HtmlToPdfUtils.java 36 ●●●●● 补丁 | 查看 | 原始文档 | 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
@@ -1166,76 +1166,83 @@
            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);
@@ -1320,7 +1327,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();
//        }
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TOpenCityController.java
@@ -7,6 +7,8 @@
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
import com.stylefeng.guns.core.common.exception.BizExceptionEnum;
import com.stylefeng.guns.core.exception.GunsException;
import com.stylefeng.guns.core.shiro.ShiroKit;
import com.stylefeng.guns.core.util.DateUtil;
import com.stylefeng.guns.core.util.SinataUtil;
@@ -19,6 +21,7 @@
import com.stylefeng.guns.modular.system.util.GaoDeMapUtil;
import com.stylefeng.guns.modular.system.util.GoogleMap.FindPlaceFromTextVo;
import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@@ -134,24 +137,15 @@
        //获取code
        tOpenCity.setCityId(cityId);
        City city = cityService.selectById(cityId);
        FindPlaceFromTextVo textsearch = null;
        try {
            textsearch = GoogleMapUtil.textsearch(city.getEnglishName());
        } catch (Exception e) {
            e.printStackTrace();
        }
        if(null == textsearch){
            return "查询地图异常";
        }
        tOpenCity.setLat(textsearch.getLat());
        tOpenCity.setLon(textsearch.getLng());
        tOpenCity.setLat(city.getLat());
        tOpenCity.setLon(city.getLon());
        tOpenCity.setInsertTime(new Date());
        tOpenCity.setInsertUser(ShiroKit.getUser().getId());
        tOpenCityService.insert(tOpenCity);
        //添加经营业务
        testJSONStrToJSONArray(businessTypeStr,tOpenCity.getId());
        return SUCCESS_TIP;
        return ResultUtil.success();
    }
    public void testJSONStrToJSONArray(String subArr,Integer tOpenCityId){
@@ -208,17 +202,8 @@
        //获取code
        tOpenCity.setCityId(cityId);
        City city = cityService.selectById(cityId);
        FindPlaceFromTextVo textsearch = null;
        try {
            textsearch = GoogleMapUtil.textsearch(city.getEnglishName());
        } catch (Exception e) {
            e.printStackTrace();
        }
        if(null == textsearch){
            return "查询地图异常";
        }
        tOpenCity.setLat(textsearch.getLat());
        tOpenCity.setLon(textsearch.getLng());
        tOpenCity.setLat(city.getLat());
        tOpenCity.setLon(city.getLon());
        tOpenCity.setUpdateTime(new Date());
        tOpenCity.setUpdateUser(ShiroKit.getUser().getId());
        tOpenCityService.updateById(tOpenCity);
@@ -229,7 +214,7 @@
        tOpenCityBusinessService.update(business,new EntityWrapper<TOpenCityBusiness>().eq("openCityId",tOpenCity.getId()));
        //添加经营业务
        testJSONStrToJSONArray(businessTypeStr,tOpenCity.getId());
        return SUCCESS_TIP;
        return ResultUtil.success();
    }
    /**
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java
@@ -163,7 +163,7 @@
            if(2 == state){
                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
                String payerTransactionID = sdf.format(new Date()) + tPubWithdrawal.getId();
                PayoutResponse payoutResponse = tinggPayoutUtil.sendPayout(serviceCode, "+" + phone, payerTransactionID, tPubWithdrawal.getMoney().doubleValue(), callbackPath + "/base/withdrawalCallback", narration);
                PayoutResponse payoutResponse = tinggPayoutUtil.sendPayout(serviceCode, phone, payerTransactionID, tPubWithdrawal.getMoney().doubleValue(), callbackPath + "/base/withdrawalCallback", narration);
                AuthStatus authStatus = payoutResponse.getAuthStatus();
                Results results = payoutResponse.getResults().get(0);
                String statusCode = results.getStatusCode();
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOpenCityMapper.xml
@@ -26,23 +26,30 @@
    <!--根据条件查询开通城市列表-->
    <select id="getOpenCityList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page">
        SELECT * FROM (SELECT ocb.str as business,oc.*,b.chineseName FROM t_open_city as oc
        SELECT * FROM (
        SELECT
        ocb.str as business,
        oc.*,
        b.chineseName
        FROM t_open_city as oc
        left join t_city b on (oc.cityId = b.id)
        LEFT JOIN (
        SELECT GROUP_CONCAT(
        CONCAT((case when businessType = 1 then '专车'
        when businessType = 4 then '市内小件物流'
        else '' end),' :',sort)) as str,openCityId from t_open_city_business where flag != 3 GROUP BY openCityId
        ) as ocb on ocb.openCityId = oc.id) as o
        ) as ocb on ocb.openCityId = oc.id
        <where>
            o.flag != 3
            oc.flag != 3
            <if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
                AND (o.insertTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59'))
                AND (oc.insertTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59'))
            </if>
            <if test="condition != null and condition != ''">
                and (b.chineseName LIKE CONCAT('%',#{condition},'%') or b.englishName LIKE CONCAT('%',#{condition},'%') or b.frenchName LIKE CONCAT('%',#{condition},'%'))
            </if>
        </where>
        ) as o
        order by o.id desc
    </select>
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/City.java
@@ -23,6 +23,14 @@
    //法文名称
    @TableField("frenchName")
    private String frenchName;
    /**
     * 经度
     */
    private Double lon;
    /**
     * 纬度
     */
    private Double lat;
    public Integer getId() {
        return id;
@@ -56,6 +64,22 @@
        this.frenchName = frenchName;
    }
    public Double getLon() {
        return lon;
    }
    public void setLon(Double lon) {
        this.lon = lon;
    }
    public Double getLat() {
        return lat;
    }
    public void setLat(Double lat) {
        this.lat = lat;
    }
    @Override
    public String toString() {
        return "City{" +
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java
@@ -1,5 +1,6 @@
package com.stylefeng.guns.modular.system.util.GoogleMap;
import com.alibaba.fastjson.JSON;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.maps.*;
@@ -89,8 +90,10 @@
        FindPlaceFromTextRequest request = new FindPlaceFromTextRequest(context);
        request.input(input);
        request.inputType(FindPlaceFromTextRequest.InputType.TEXT_QUERY);
        System.err.println("findplacefromtext(请求参数)--->" + input);
        FindPlaceFromText findPlaceFromText = request.await();
        PlacesSearchResult[] candidates = findPlaceFromText.candidates;
        System.err.println("findplacefromtext(返回结果)--->" + JSON.toJSONString(candidates));
        FindPlaceFromTextVo vo = null;
        if(candidates.length > 0){
            vo = new FindPlaceFromTextVo();
@@ -124,6 +127,7 @@
        request.query(query);
        PlacesSearchResponse placesSearchResponse = request.await();
        PlacesSearchResult[] results = placesSearchResponse.results;
        System.err.println("textsearch--->" + JSON.toJSONString(results));
        FindPlaceFromTextVo vo = null;
        if(results.length > 0){
            vo = new FindPlaceFromTextVo();
ManagementIGOTravel/guns-admin/src/main/resources/application-dev.yml
@@ -42,7 +42,7 @@
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/igotravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
    url: jdbc:mysql://192.168.110.80/igotravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
    db-name: igotravel #用来搜集数据库的所有表
ManagementIGOTravel/guns-admin/src/main/resources/application-produce.yml
@@ -42,9 +42,9 @@
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/igotravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B0
    url: jdbc:mysql://192.168.110.80/igotravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B0
    username: root
    password: HjKbXilb9zajmXbl
    password: 123456
    db-name: guns #用来搜集数据库的所有表
    filters: wall,mergeStat
ManagementIGOTravel/guns-admin/src/main/resources/application.yml
@@ -1,127 +1,3 @@
server:
  port: 8010
guns:
  swagger-open: false              #是否开启swagger (true/false)
  kaptcha-open: false             #是否开启登录时验证码 (true/false)
  spring-session-open: false      #是否开启spring session,如果是多机环境需要开启(true/false)
  session-invalidate-time: 1800     #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒
  session-validation-interval: 900  #多久检测一次失效的session(只在单机环境下生效) 单位:秒
#  file-upload-path: C:\Users\hi\Desktop\ #文件上传目录(不配置的话为java.io.tmpdir目录)
#  picture-server-address: http://192.168.0.43/resources/  #图片服务器地址
  file-upload-path: C:\Users\Administrator\Desktop\apache-tomcat-8.0.33\webapps\ROOT\upload\ #文件上传目录(不配置的话为java.io.tmpdir目录)
  picture-server-address: http://139.9.249.67:8080/upload/  #图片服务器地址
  rest-url: http://139.9.249.67:8080/rest/    #前端接口调用基础路径
spring:
  profiles:
    active: @spring.active@
  mvc:
    static-path-pattern: /static/**
    view:
      prefix: /WEB-INF/view
  devtools:
    restart:
      enabled: false
      additional-paths: src/main/java
      exclude: static/**,WEB-INF/view/**
  servlet:
    multipart:
      max-request-size: 100MB
      max-file-size: 100MB
mybatis-plus:
  type-aliases-package: com.stylefeng.guns.modular.system.model
  global-config:
    id-type: 0  #0:数据库ID自增   1:用户输入id  2:全局唯一id(IdWorker)  3:全局唯一ID(uuid)
    db-column-underline: false
  configuration:
    configuration.map-underscore-to-camel-case: true #是否开启自动驼峰命名规则(camel case)映射
    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl #输出Sql,如需打印Sql注释该配置
---
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/igotravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B0
    username: root
    password: HjKbXilb9zajmXbl
    db-name: guns #用来搜集数据库的所有表
    filters: wall,mergeStat
################# 测试环境 ###################
#spring:
#  datasource:
#    url: jdbc:mysql://127.0.0.1:3306/igotravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
#    username: root
#    password: 123456
#    db-name: igotravel #用来搜集数据库的所有表
#    filters: wall,mergeStat
#多数据源情况的配置
guns:
  muti-datasource:
    open: false
    url: jdbc:mysql://120.24.34.190:3306/mask?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
    username: root
    password: Root2020!
    dataSourceNames:
      - dataSourceGuns
      - dataSourceBiz
---
filePath: /usr/local/server/orderPostionFile/ #存储订单轨迹文件路径
#filePath: d:/orderPostionFile/  #存储订单轨迹文件路径
#quartz配置
spring:
  quartz:
    properties:
      org:
        quartz:
          scheduler:
            instanceName: MyDefaultQuartzScheduler
            instanceId: AUTO
          jobStore:
            class: org.quartz.impl.jdbcjobstore.JobStoreTX
            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
            tablePrefix: qrtz_
            isClustered: false
            clusterCheckinInterval: 10000
            useProperties: false
          threadPool:
              class: org.quartz.simpl.SimpleThreadPool
              threadCount: 10
              threadPriority: 5
              threadsInheritContextClassLoaderOfInitializingThread: true
      job-store-type: jdbc
---
spring:
  mail:
    host: smtp.gmail.com # 配置 smtp 服务器地址
    port: 465 # smtp 服务器的端口
    username: i-gotech@i-go.group # 配置邮箱用户名(你的邮箱地址)
    password: mhizkqkhuknbitps # 配置申请到的授权码(刚让复制的授权码)
    default-encoding: UTF-8 # 配置邮件编码
    properties:
      mail:
        smtp:
          socketFactoryClass: javax.net.ssl.SSLSocketFactory # 配饰 SSL 加密工厂
        debug: true
    from: i-gotech@i-go.group # 发送方邮件,配在yml中可方便更改
    template-path: /usr/local/nginx/html/mailbox/
---
#支付回调地址
#正式环境
#callbackPath: https://okyueche.com:443/user
#测试环境
callbackPath: http://182.160.16.251:8010
---
    active: @spring.active@
ManagementIGOTravel/guns-admin/src/main/resources/logback-spring.xml
@@ -212,7 +212,7 @@
    </springProfile>
    <springProfile name="produce">
        <root level="warn">
        <root level="info">
            <!-- 生产环境最好不配置console写文件 -->
            <appender-ref ref="DEBUG_FILE" />
            <appender-ref ref="INFO_FILE" />
ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/tOpenCity/tOpenCity_info.js
@@ -129,9 +129,13 @@
    }
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/tOpenCity/add", function(data){
        Feng.success("添加成功!");
        window.parent.TOpenCity.table.refresh();
        TOpenCityInfoDlg.close();
        if(data.code == 200){
            Feng.success("添加成功!");
            window.parent.TOpenCity.table.refresh();
            TOpenCityInfoDlg.close();
        }else{
            Feng.error(data.msg);
        }
    },function(data){
        Feng.error("添加失败!" + data.responseJSON.message + "!");
    });
ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/userActivity/addRegist.js
@@ -103,7 +103,15 @@
    }
    var id1=$("#id1").val();
    if((null == id1 || '' == id1) && '' != num2){
        Feng.error("请选择通用优惠券");
        return;
    }
    var id2=$("#id2").val();
    if((null == id2 || '' == id2) && '' != num4){
        Feng.error("请选择专车优惠券");
        return;
    }
    var id3=$("#id3").val();
    var id4=$("#id4").val();
    var obj = $("#obj").val();
ManagementIGOTravel/guns-core/src/main/java/com/stylefeng/guns/core/util/DateUtil.java
@@ -98,7 +98,11 @@
    public static String getAllTime() {
        return formatDate(new Date(), "yyyyMMddHHmmss");
    }
    public static int getNowWeekDay() {
        Calendar canlendar = Calendar.getInstance(); // java.util包
        int week= canlendar.get(Calendar.DAY_OF_WEEK);
        return week == 0 ? 7 : week - 1;
    }
    /**
     * 获取YYYY-MM-DD HH:mm:ss格式
     */
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OpenCityController.java
@@ -1,6 +1,7 @@
package com.stylefeng.guns.modular.api;
import com.stylefeng.guns.modular.system.model.City;
import com.stylefeng.guns.modular.system.service.IOpenCityBusinessService;
import com.stylefeng.guns.modular.system.service.IOpenCityService;
import com.stylefeng.guns.modular.system.service.IUserInfoService;
@@ -124,9 +125,13 @@
    })
    public ResultUtil openCity(Double lat, Double lnt, Integer language){
        try {
            String s = openCityService.openCity(lat, lnt, language);
            City city = openCityService.openCity(lat, lnt, language);
            if(null == city){
                return ResultUtil.error("");
            }
            Map<String, Object> map = new HashMap<>();
            map.put("name", s);
            map.put("name", language == 1 ? city.getChineseName() : language == 2 ? city.getEnglishName() : city.getFrenchName());
            map.put("content", language == 1 ? city.getCountryChineseName() : language == 2 ? city.getCountryEnglishName() : city.getCountryFrenchName());
            return ResultUtil.success(map);
        }catch (Exception e){
            e.printStackTrace();
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -248,14 +248,14 @@
                    map.put("name", language == 1 ? "打车订单取消" : language == 2 ? "Ride order cancelled" : "Commande de trajet annulée");
                }
                if(4 == orderType){
                    map.put("name", language == 1 ? "包裹订单取消" : language == 2 ? "Parcel order cancellation" : "Annulation de commande de colis");
                    map.put("name", language == 1 ? "包裹订单取消" : language == 2 ? "Parcel order cancellation" : "Annulation de commande de livraison");
                }
            }
            List<Map<String, Object>> list = orderPrivateCarService.queryMyTravelRecord(language, uid);//专车
            for (Map<String, Object> map : list) {
                map.put("name", name);
            }
            name = language == 1 ? "包裹" : language == 2 ? "Package" : "Livraison";
            name = language == 1 ? "包裹" : language == 2 ? "Delivery" : "Livraison";
            List<Map<String, Object>> list3 = orderLogisticsService.queryMyTravelRecord(language, uid);//小件物流
            for (Map<String, Object> map : list3) {
                map.put("name", name);
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -299,8 +299,8 @@
        //添加消息
        systemNoticeService.addSystemNotice(1, language == 1 ? "您的市内包裹订单已下单成功,我们正在为您指派司机,请稍后!" :
                                            language == 2 ? "You've placed the package order successfully, we are assigning you a driver, please wait."
                                                    : "Vous avez passé la commande de colis avec succès, nous vous attribuons un chauffeur, veuillez patienter.", orderLogistics.getUserId(), 1);
                                            language == 2 ? "You've placed the delivery order successfully, we are assigning you a driver, please wait."
                                                    : "Vous avez passé la commande de livraison avec succès, nous vous attribuons un chauffeur, veuillez patienter.", orderLogistics.getUserId(), 1);
        BaseWarpper baseWarpper = new BaseWarpper();
        baseWarpper.setId(orderLogistics.getId());
@@ -571,8 +571,8 @@
            }).start();
            systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成包裹订单支付,谢谢使用!" : language == 2
                    ? "You've paid for the package order successfully, thank you for using I-GO" :
                    "Vous avez payé la commande de colis avec succès, merci d’utiliser I-GO", uid, 1);
                    ? "You've paid for the delivery order successfully, thank you for using I-GO" :
                    "Vous avez payé la commande de livraison avec succès, merci d’utiliser I-GO", uid, 1);
            this.pushOrder(orderLogistics);//推单
        }
@@ -599,8 +599,8 @@
            }).start();
            systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成包裹订单支付,谢谢使用!" : language == 2
                    ? "You've paid for the package order successfully, thank you for using I-GO" :
                    "Vous avez payé la commande de colis avec succès, merci d’utiliser I-GO", uid, 1);
                    ? "You've paid for the delivery order successfully, thank you for using I-GO" :
                    "Vous avez payé la commande de livraison avec succès, merci d’utiliser I-GO", uid, 1);
            this.pushOrder(orderLogistics);//推单
        }
@@ -724,8 +724,8 @@
            }).start();
            systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成包裹订单差价支付,谢谢使用!" : language == 2
                    ? "You've paid for the difference of package order successfully, thank you for using I-GO"
                    : "Vous avez payé la différence de commande de colis avec succès, merci d’utiliser I-GO", uid, 1);
                    ? "You've paid for the difference of delivery order successfully, thank you for using I-GO"
                    : "Vous avez payé la différence de commande de livraison avec succès, merci d’utiliser I-GO", uid, 1);
        }
        if(payType == 4){//现金支付
@@ -781,8 +781,8 @@
            }).start();
            systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成包裹订单差价支付,谢谢使用!" : language == 2
                    ? "You've paid for the difference of package order successfully, thank you for using I-GO"
                    : "Vous avez payé la différence de commande de colis avec succès, merci d’utiliser I-GO", uid, 1);
                    ? "You've paid for the difference of delivery order successfully, thank you for using I-GO"
                    : "Vous avez payé la différence de commande de livraison avec succès, merci d’utiliser I-GO", uid, 1);
        }
@@ -823,8 +823,8 @@
            systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成包裹订单支付,谢谢使用!" : language == 2
                    ? "You've paid for the package order successfully, thank you for using I-GO" :
                    "Vous avez payé la commande de colis avec succès, merci d’utiliser I-GO", orderLogistics.getUserId(), 1);
                    ? "You've paid for the delivery order successfully, thank you for using I-GO" :
                    "Vous avez payé la commande de livraison avec succès, merci d’utiliser I-GO", orderLogistics.getUserId(), 1);
            this.pushOrder(orderLogistics);//推单
        }else{
@@ -898,8 +898,8 @@
            }).start();
            systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成包裹订单差价支付,谢谢使用!" : language == 2
                    ? "You've paid for the difference of package order successfully, thank you for using I-GO"
                    : "Vous avez payé la différence de commande de colis avec succès, merci d’utiliser I-GO", orderLogistics.getUserId(), 1);
                    ? "You've paid for the difference of delivery order successfully, thank you for using I-GO"
                    : "Vous avez payé la différence de commande de livraison avec succès, merci d’utiliser I-GO", orderLogistics.getUserId(), 1);
        }else{
            System.err.println("预支付数据异常(orderId = "  + id + ")");
        }
@@ -978,7 +978,7 @@
        endTime = dateUtil.getStartOrEndDate(endTime, "end");
        List<Map<String, Object>> list = orderLogisticsMapper.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
        for (Map<String, Object> map : list) {
            map.put("orderName", language == 1 ? "包裹订单" : language == 2 ? "Package" : "Livraison");
            map.put("orderName", language == 1 ? "包裹订单" : language == 2 ? "Delivery" : "Livraison");
            if(null != map.get("time")){
                String time = map.get("time").toString();
                map.put("time", DateUtil.conversionFormat(language, time));
@@ -1122,8 +1122,8 @@
        }
        //添加消息
        systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功取消包裹订单,谢谢使用!" : language == 2 ? "You've cancelled the package order successfully, thank you for using I-GO "
                : "Vous avez annulé la commande de colis avec succès, merci d’utiliser I-GO", orderLogistics.getUserId(), 1);
        systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功取消包裹订单,谢谢使用!" : language == 2 ? "You've cancelled the delivery order successfully, thank you for using I-GO "
                : "Vous avez annulé la commande de livraison avec succès, merci d’utiliser I-GO", orderLogistics.getUserId(), 1);
        Map<String, Object> map = new HashMap<>();
        map.put("id", integer);
        return ResultUtil.success(map);
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -707,11 +707,11 @@
                orderCancel.setPayType(3);
                orderCancelService.updateById(orderCancel);
                //添加已收入明细
                incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, query.getMoney());
                //添加已收入明细
                Company company = companyService.selectById(orderPrivateCar.getCompanyId());
                Double taxi = company.getSpeMoney();
//                //添加已收入明细
//                incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, query.getMoney());
//                //添加已收入明细
//                Company company = companyService.selectById(orderPrivateCar.getCompanyId());
//                Double taxi = company.getSpeMoney();
                BigDecimal c =new BigDecimal(query.getMoney());//司机收入
                incomeService.saveData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue());
                Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
@@ -1203,7 +1203,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();
@@ -1214,7 +1214,7 @@
                            }
                            try {
                                FileOutputStream fileOutputStream = new FileOutputStream(file1);
                                HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
                                HtmlToPdfUtils.convertToPdf("/usr/local/nginx/html/files/html/ride_receipt_" + orderId + ".html", "IGO", fileOutputStream);
                            }catch (Exception e){
                                e.printStackTrace();
                                System.out.println("html转pdf异常");
@@ -1520,7 +1520,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();
@@ -1531,7 +1531,7 @@
                            }
                            try {
                                FileOutputStream fileOutputStream = new FileOutputStream(file1);
                                HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
                                HtmlToPdfUtils.convertToPdf("/usr/local/nginx/html/files/html/ride_receipt_" + orderId + ".html", "IGO", fileOutputStream);
                            }catch (Exception e){
                                e.printStackTrace();
                                System.out.println("html转pdf异常");
@@ -1764,11 +1764,11 @@
                orderCancelService.updateById(query1);
            }
            //添加已收入明细
            incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, query.getAmount());
            //添加已收入明细
            Company company = companyService.selectById(orderPrivateCar.getCompanyId());
            Double taxi = company.getSpeMoney();
//            //添加已收入明细
//            incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, query.getAmount());
//            //添加已收入明细
//            Company company = companyService.selectById(orderPrivateCar.getCompanyId());
//            Double taxi = company.getSpeMoney();
            BigDecimal c =new BigDecimal(query.getAmount());//司机收入
            incomeService.saveData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue());
            Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
@@ -2024,7 +2024,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();
@@ -2035,7 +2035,7 @@
                            }
                            try {
                                FileOutputStream fileOutputStream = new FileOutputStream(file1);
                                HtmlToPdfUtils.convertToPdf(fileInputStream, "IGO", fileOutputStream);
                                HtmlToPdfUtils.convertToPdf("/usr/local/nginx/html/files/html/ride_receipt_" + id + ".html", "IGO", fileOutputStream);
                            }catch (Exception e){
                                e.printStackTrace();
                                System.out.println("html转pdf异常");
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/AgreementMapper.xml
@@ -20,7 +20,7 @@
    <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>
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityBalanceMapper.xml
@@ -71,6 +71,6 @@
        left join t_sys_coupon_record e on (a.intercityCouponId = e.id)
        left join t_user_activity f on (a.userActivityId = f.id)
        where a.`enable` = 2 and f.status = 3 and now() between a.startTime and a.endTime and a.money &lt;= #{money}
        and (b.companyId = #{companyId} and c.companyId = #{companyId} and d.companyId = #{companyId} and e.companyId = #{companyId})
        and (b.companyId = #{companyId} or c.companyId = #{companyId} or d.companyId = #{companyId} or e.companyId = #{companyId})
    </select>
</mapper>
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/City.java
@@ -23,6 +23,11 @@
    //法文名称
    @TableField("frenchName")
    private String frenchName;
    private String lon;
    private String lat;
    private String countryChineseName;
    private String countryEnglishName;
    private String countryFrenchName;
    public Integer getId() {
        return id;
@@ -56,6 +61,46 @@
        this.frenchName = frenchName;
    }
    public String getLon() {
        return lon;
    }
    public void setLon(String lon) {
        this.lon = lon;
    }
    public String getLat() {
        return lat;
    }
    public void setLat(String lat) {
        this.lat = lat;
    }
    public String getCountryChineseName() {
        return countryChineseName;
    }
    public void setCountryChineseName(String countryChineseName) {
        this.countryChineseName = countryChineseName;
    }
    public String getCountryEnglishName() {
        return countryEnglishName;
    }
    public void setCountryEnglishName(String countryEnglishName) {
        this.countryEnglishName = countryEnglishName;
    }
    public String getCountryFrenchName() {
        return countryFrenchName;
    }
    public void setCountryFrenchName(String countryFrenchName) {
        this.countryFrenchName = countryFrenchName;
    }
    @Override
    public String toString() {
        return "City{" +
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverActivityHistory.java
New file
@@ -0,0 +1,134 @@
package com.stylefeng.guns.modular.system.model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import java.util.Date;
/**
 * 司机每天活动数量
 */
@TableName("t_driver_activity_history")
public class DriverActivityHistory {
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    @TableField("id")
    private Integer id;
    /**
     * 活动日期
     */
    @TableField("day")
    private Date day;
    /**
     * 司机id
     */
    @TableField("driverId")
    private Integer driverId;
    /**
     * 活动类型(1=邀请司机注册,2=邀请用户注册,3=累计在线,4=订单量)
     */
    @TableField("type")
    private Integer type;
    /**
     * 活动id
     */
    @TableField("activityId")
    private Integer activityId;
    /**
     * 是否完成(1=否,2=完成)
     */
    @TableField("carryOut")
    private Integer carryOut;
    /**
     * 奖励金额
     */
    @TableField("money")
    private Double money;
    /**
     * 添加时间
     */
    @TableField("insertTime")
    private Date insertTime;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Date getDay() {
        return day;
    }
    public void setDay(Date day) {
        this.day = day;
    }
    public Integer getDriverId() {
        return driverId;
    }
    public void setDriverId(Integer driverId) {
        this.driverId = driverId;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public Integer getActivityId() {
        return activityId;
    }
    public void setActivityId(Integer activityId) {
        this.activityId = activityId;
    }
    public Integer getCarryOut() {
        return carryOut;
    }
    public void setCarryOut(Integer carryOut) {
        this.carryOut = carryOut;
    }
    public Double getMoney() {
        return money;
    }
    public void setMoney(Double money) {
        this.money = money;
    }
    public Date getInsertTime() {
        return insertTime;
    }
    public void setInsertTime(Date insertTime) {
        this.insertTime = insertTime;
    }
    @Override
    public String toString() {
        return "DriverActivityHistory{" +
                "id=" + id +
                ", day=" + day +
                ", driverId=" + driverId +
                ", type=" + type +
                ", activityId=" + activityId +
                ", carryOut=" + carryOut +
                ", money=" + money +
                ", insertTime=" + insertTime +
                '}';
    }
}
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOpenCityService.java
@@ -1,6 +1,7 @@
package com.stylefeng.guns.modular.system.service;
import com.baomidou.mybatisplus.service.IService;
import com.stylefeng.guns.modular.system.model.City;
import com.stylefeng.guns.modular.system.model.OpenCity;
import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
@@ -22,5 +23,5 @@
     * @return
     * @throws Exception
     */
    String openCity(Double lat, Double lnt, Integer language) throws Exception;
    City openCity(Double lat, Double lnt, Integer language) throws Exception;
}
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -149,7 +149,7 @@
                    baseWarpper.setName("跨城出行");
                    break;
                case 4:
                    baseWarpper.setName(language == 1 ? "包裹" : language == 2 ? "Package" : "Livraison");
                    baseWarpper.setName(language == 1 ? "包裹" : language == 2 ? "Delivery" : "Livraison");
                    break;
                case 5:
                    baseWarpper.setName("跨城小件物流");
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java
@@ -59,7 +59,7 @@
//                    baseWarpper.setId(3);
//                    break;
                case 4:
                    baseWarpper.setName(language == 1 ? "包裹" : language == 2 ? "Package" : "Livraison");
                    baseWarpper.setName(language == 1 ? "包裹" : language == 2 ? "Delivery" : "Livraison");
                    baseWarpper.setId(4);
                    break;
//                case 5:
@@ -106,7 +106,7 @@
//                    baseWarpper.setId(3);
//                    break;
                case 4:
                    baseWarpper.setName(language == 1 ? "包裹" : language == 2 ? "Package" : "Livraison");
                    baseWarpper.setName(language == 1 ? "包裹" : language == 2 ? "Delivery" : "Livraison");
                    baseWarpper.setId(4);
                    break;
//                case 5:
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityServiceImpl.java
@@ -57,6 +57,7 @@
            baseWarpper.setName(language == 1 ? city.getChineseName() : language == 2 ? city.getEnglishName() : language == 3 ? city.getFrenchName() : city.getEnglishName());
            baseWarpper.setLon(null != c.getLon() ? c.getLon() : 0);
            baseWarpper.setLat(null != c.getLat() ? c.getLat() : 0);
            baseWarpper.setContent(language == 1 ? city.getCountryChineseName() : language == 2 ? city.getCountryEnglishName() : language == 3 ? city.getCountryFrenchName() : city.getEnglishName());
            list.add(baseWarpper);
        }
        return list;
@@ -69,13 +70,13 @@
     * @throws Exception
     */
    @Override
    public String openCity(Double lat, Double lnt, Integer language) throws Exception {
    public City openCity(Double lat, Double lnt, Integer language) throws Exception {
        if(null == language){
            language = 2;
        }
        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lnt);
        if(null == reverseGeocode){
            return "";
            return null;
        }
        AddressComponentsVo[] addressComponentsVos = reverseGeocode.getAddressComponentsVos();
        String[] city = new String[addressComponentsVos.length];
@@ -84,9 +85,9 @@
        }
        List<OpenCity> openCities = openCityMapper.queryByCode(city);
        if(openCities.size() == 0){
            return "";
            return null;
        }
        City city1 = cityService.selectById(openCities.get(0).getCityId());
        return language == 1 ? city1.getChineseName() : language == 2 ? city1.getEnglishName() : city1.getFrenchName();
        return city1;
    }
}
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -9,10 +9,7 @@
import com.stylefeng.guns.core.shiro.ShiroUser;
import com.stylefeng.guns.core.util.JwtTokenUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.dao.DriverActivityRegisteredMapper;
import com.stylefeng.guns.modular.system.dao.DriverMapper;
import com.stylefeng.guns.modular.system.dao.UserActivityInviteMapper;
import com.stylefeng.guns.modular.system.dao.UserInfoMapper;
import com.stylefeng.guns.modular.system.dao.*;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.*;
@@ -93,6 +90,9 @@
    @Resource
    private DriverActivityRegisteredMapper driverActivityRegisteredMapper;
    @Resource
    private DriverActivityHistoryMapper driverActivityHistoryMapper;
    @Autowired
    private IIncomeService incomeService;
@@ -658,6 +658,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(2);
                        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());
@@ -1624,57 +1631,10 @@
        if(null != userInfo1 && uid.compareTo(userInfo1.getId()) != 0){
            return ResultUtil.error(language == 1 ? "邮箱已被使用" : language == 2 ? "E-mail address is already in use." : "L’adresse e-mail est déjà utilisée.");
        }
//        if(null != userInfo1){
//            userInfo1.setOpenId(userInfo.getOpenId());
//            userInfo1.setUnionid(userInfo.getUnionid());
//            userInfo1.setAppletsOpenId(userInfo.getAppletsOpenId());
//            userInfo1.setAvatar(userInfo.getAvatar());
//            userInfo1.setSex(userInfo.getSex());
//            userInfo1.setNickName(userInfo.getNickName());
//            this.updateById(userInfo1);
//
//            this.deleteById(userInfo.getId());//删除原有数据
//            //还原之前账号领取的注册优惠券
//            List<UserCouponRecord> list = userCouponRecordService.selectList(new EntityWrapper<UserCouponRecord>().eq("userId", userInfo.getId()));
//            for(UserCouponRecord ucr : list){
//                if(ucr.getActivityType() == 1){//赠送
//
//                }
//                if(ucr.getActivityType() == 2){//注册
//                    UserActivityRegistered userActivityRegistered = userActivityRegisteredService.selectById(ucr.getCouponActivityId());
//                    userActivityRegistered.setLaveNum(userActivityRegistered.getLaveNum() + 1);
//                    userActivityRegistered.setLavePrice(userActivityRegistered.getLavePrice() + ucr.getMoney());
//                    userActivityRegisteredService.updateById(userActivityRegistered);
//                }
//                if(ucr.getActivityType() == 3){//邀请
//
//                }
//                if(ucr.getActivityType() == 4){//充值
//
//                }
//                userCouponRecordService.deleteById(ucr.getId());
//            }
//
//
//            //获取新的token等数据
//            String token = this.getToken(userInfo1, "");
//            LoginWarpper loginWarpper = new LoginWarpper();
//            loginWarpper.setId(userInfo1.getId());
//            loginWarpper.setToken(token);
//            loginWarpper.setAppid(UUIDUtil.getRandomCode());
//            loginWarpper.setPhone(2);
//            loginWarpper.setEmail(userInfo1.getEmail());
//            return ResultUtil.success(loginWarpper);
//        }
        userInfo.setEmail(email);
        userInfo.setUpdateTime(new Date());
        userInfo.setUpdateUser(userInfo.getId());
        this.updateById(userInfo);
//        if(type == 1){//注册成功后发送邮件
////            EmailUtil.getMimeMessage(email, "注册账户", "");
//        }
        return ResultUtil.success(new LoginWarpper());
    }
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java
@@ -177,17 +177,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;
                }
UserIGOTravel/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;
@@ -49,5 +50,40 @@
        pdfWriter.close();
        pdfDocument.close();
        inputStream.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();
        htmlStream.close();
    }
}