无关风月
16 小时以前 e345b36025818615eb68d37819eaff312d1fb986
Merge remote-tracking branch 'origin/master'
46个文件已修改
622 ■■■■ 已修改文件
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ZiOnController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/FinancialStatementController.java 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgreementController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSysReformistController.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderCrossCityMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTaxiMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderCrossCityMapper.xml 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTaxiMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderCrossCityService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTaxiService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderCrossCityServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTaxiServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/home.html 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/financialStatement/paymentOrderStatistics/paymentOrderStatistics.html 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/report/operationalData.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponActivity/sysCouponActivity.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponRecord/sysCouponRecord.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponRecord/sysCouponRecord_add.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tAgreement/tAgreement.html 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_add.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_edit.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/platformEdit.html 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_add.html 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_addFranchisee.html 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_detail.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_detailFranchisee.html 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_edit.html 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_updateFranchisee.html 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_add.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_edit.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/financialStatement/paymentOrderStatistics/paymentOrderStatistics.js 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OpenCityController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java 237 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -365,6 +365,9 @@
        try {
            String[] split = orderId.split(",");
            Double aDouble = orderService.queryReassignMoney(Integer.valueOf(split[0]), orderType);
            if(Objects.isNull(aDouble)){
                return ResultUtil.error("未设置改派金额",null);
            }
            BaseWarpper baseWarpper = new BaseWarpper();
            if(orderType == 3){
                aDouble = aDouble * split.length;
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ZiOnController.java
@@ -273,6 +273,9 @@
                            case 2:
                                historyVo.setState("订单收入");
                                break;
                            case 3:
                                historyVo.setState("城际出行");
                                break;
                            default:
                                historyVo.setState("充值");
                                break;
@@ -311,6 +314,9 @@
                        case 2:
                            historyVo.setState("订单收入");
                            break;
                        case 3:
                            historyVo.setState("城际出行");
                            break;
                        default:
                            historyVo.setState("充值");
                            break;
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
@@ -351,6 +351,12 @@
     * @return
     */
    public Map<String, String> getDistance(String origins, String destination, Integer type){
        String[] split = origins.split(",");
        String[] split1 = destination.split(",");
        origins = split[1] + "," + split[0];
        destination = split1[1] + "," + split1[0];
        String url = "https://api.map.baidu.com/directionlite/v1/driving?origin="+origins+"&destination="+destination+"&ak="+key;
        String forObject = restTemplate.getForObject(url, String.class);
        JSONObject jsonObject = JSON.parseObject(forObject);
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/FinancialStatementController.java
@@ -6,6 +6,7 @@
import com.stylefeng.guns.core.util.DateUtil;
import com.stylefeng.guns.core.util.ExcelExportUtil;
import com.stylefeng.guns.core.util.SinataUtil;
import com.stylefeng.guns.modular.system.service.ITOrderCrossCityService;
import com.stylefeng.guns.modular.system.service.ITOrderTaxiService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@@ -15,6 +16,8 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -33,7 +36,9 @@
    
    @Resource
    private ITOrderTaxiService orderTaxiService;
    @Resource
    private ITOrderCrossCityService orderCrossCityService;
    
    /**
     * 跳转支付订单统计页
@@ -69,9 +74,24 @@
    @ResponseBody
    @RequestMapping("/paymentOrderStatisticsList")
    public Object paymentOrderStatisticsList(String paymentCode, String orderCode, String userPhone,
                                             String driverPhone, String createTime, String paymentTime){
                                             String driverPhone, String createTime, String paymentTime,Integer orderType){
        Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
        List<Map<String, Object>> list = orderTaxiService.paymentOrderStatisticsList(page, paymentCode, orderCode, userPhone, driverPhone, createTime, paymentTime);
        List<Map<String, Object>> list = orderTaxiService.paymentOrderStatisticsList(page, paymentCode, orderCode, userPhone, driverPhone, createTime, paymentTime,orderType);
        List<Map<String, Object>> list1 = orderCrossCityService.paymentOrderStatisticsList(page, paymentCode, orderCode, userPhone, driverPhone, createTime, paymentTime,orderType);
        list.addAll(list1);
        list.sort((o1, o2) -> {
            String insertTime = o1.get("insertTime").toString();
            String insertTime1 = o2.get("insertTime").toString();
            Date o1Date = null;
            Date o2Date = null;
            try {
                o1Date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(insertTime);
                o2Date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(insertTime1);
                return o2Date.compareTo(o1Date);
            } catch (ParseException e) {
                throw new RuntimeException(e);
            }
        });
        return super.packForBT(page.setRecords(list));
    }
    
@@ -88,9 +108,10 @@
    @ResponseBody
    @RequestMapping("/paymentOrderStatisticsList_export")
    public void paymentOrderStatisticsList_export(String paymentCode, String orderCode, String userPhone,
                                                  String driverPhone, String createTime, String paymentTime, HttpServletRequest request, HttpServletResponse response){
                                                  String driverPhone, String createTime, String paymentTime,Integer orderType,
                                                  HttpServletRequest request, HttpServletResponse response){
        Page<Map<String, Object>> page = new Page(1, 9999);
        List<Map<String, Object>> list = orderTaxiService.paymentOrderStatisticsList(page, paymentCode, orderCode, userPhone, driverPhone, createTime, paymentTime);
        List<Map<String, Object>> list = orderTaxiService.paymentOrderStatisticsList(page, paymentCode, orderCode, userPhone, driverPhone, createTime, paymentTime,orderType);
        
        // 表格数据【封装】
        List<List<String>> dataList = new ArrayList<>();
@@ -99,6 +120,7 @@
        List<String> shellList = new ArrayList<String>();
        shellList.add("支付流水号");
        shellList.add("订单号");
        shellList.add("订单类型");
        shellList.add("支付用户手机号");
        shellList.add("支付金额");
        shellList.add("接单司机手机号");
@@ -121,6 +143,19 @@
            }else{
                shellList.add("-");
            }
            if(SinataUtil.isNotEmpty(object.get("orderType"))){
                int orderType1 = Integer.parseInt(object.get("orderType").toString());
                switch (orderType1){
                    case 2:
                        shellList.add("出租车订单");
                        break;
                    case 3:
                        shellList.add("跨城出行订单");
                        break;
                }
            }else{
                shellList.add("-");
            }
            if(SinataUtil.isNotEmpty(object.get("userPhone"))){
                shellList.add(object.get("userPhone").toString());
            }else{
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgreementController.java
@@ -44,9 +44,12 @@
        TAgreement two = tAgreementService.selectOne(new EntityWrapper<TAgreement>().eq("useType", 1).eq("type", 2));
        //隐私协议
        TAgreement three = tAgreementService.selectOne(new EntityWrapper<TAgreement>().eq("useType", 1).eq("type", 1));
        //隐私协议
        TAgreement four = tAgreementService.selectOne(new EntityWrapper<TAgreement>().eq("useType", 1).eq("type", 11));
        model.addAttribute("one",one);
        model.addAttribute("two",two);
        model.addAttribute("three",three);
        model.addAttribute("four",four);
        return PREFIX + "tAgreement.html";
    }
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TSysReformistController.java
@@ -59,10 +59,10 @@
    @RequestMapping("")
    public String index(Model model) {
        //改派设置
        /*TSysReformist reformist = tSysReformistService.selectOne(new EntityWrapper<TSysReformist>().eq("companyId", ShiroKit.getUser().getObjectId()));
        TSysReformist reformist = tSysReformistService.selectOne(new EntityWrapper<TSysReformist>().eq("companyId", ShiroKit.getUser().getObjectId()));
        model.addAttribute("reformist",reformist);
        //积分设置
        TSysIntegral integral = tSysIntegralService.selectOne(new EntityWrapper<TSysIntegral>().eq("companyId", ShiroKit.getUser().getObjectId()));
        /*TSysIntegral integral = tSysIntegralService.selectOne(new EntityWrapper<TSysIntegral>().eq("companyId", ShiroKit.getUser().getObjectId()));
        model.addAttribute("integral",integral);*/
        //人脸识别
        TSysFaceDistinguish faceDistinguish = tSysFaceDistinguishService.selectOne(new EntityWrapper<TSysFaceDistinguish>().eq("companyId", ShiroKit.getUser().getObjectId()));
@@ -134,9 +134,19 @@
                        @RequestParam Double czc4,@RequestParam Integer czc5,@RequestParam Double czc6,
                        @RequestParam Double czc7,@RequestParam Integer czc8,@RequestParam Double czc9,
                        @RequestParam String phone1,@RequestParam String phone2,@RequestParam String phone3
            ,@RequestParam String res,@RequestParam String money
            ,@RequestParam String res,@RequestParam String money,@RequestParam Double one
    ) {
        //改派设置
        TSysReformist reformist = tSysReformistService.selectOne(new EntityWrapper<TSysReformist>().eq("companyId", ShiroKit.getUser().getObjectId()));
        if (SinataUtil.isNotEmpty(reformist)){
            reformist.setMoney(new BigDecimal(one));
            tSysReformistService.updateById(reformist);
        }else{
            reformist = new TSysReformist();
            reformist.setCompanyId(ShiroKit.getUser().getObjectId());
            reformist.setMoney(new BigDecimal(one));
            tSysReformistService.insert(reformist);
        }
        //人脸识别
        TSysFaceDistinguish faceDistinguish = tSysFaceDistinguishService.selectOne(new EntityWrapper<TSysFaceDistinguish>().eq("companyId", ShiroKit.getUser().getObjectId()));
        if (SinataUtil.isNotEmpty(faceDistinguish)){
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderCrossCityMapper.java
@@ -48,4 +48,13 @@
    List<TOrderCrossCity> queryOrders(@Param("driverId") Integer driverId, @Param("lineShiftDriverId") Integer lineShiftDriverId,
                                     @Param("state") List<Integer> state);
    List<Map<String, Object>> paymentOrderStatisticsList(Page<Map<String, Object>> page, @Param("paymentCode") String paymentCode,
                                                         @Param("orderCode") String orderCode, @Param("userPhone") String userPhone,
                                                         @Param("driverPhone") String driverPhone, @Param("createTimeStart") String createTimeStart,
                                                         @Param("createTimeEnd") String createTimeEnd, @Param("paymentTimeStart") String paymentTimeStart,
                                                         @Param("paymentTimeEnd") String paymentTimeEnd,@Param("orderType") Integer orderType);
}
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTaxiMapper.java
@@ -95,7 +95,7 @@
                                                         @Param("orderCode") String orderCode, @Param("userPhone") String userPhone,
                                                         @Param("driverPhone") String driverPhone, @Param("createTimeStart") String createTimeStart,
                                                         @Param("createTimeEnd") String createTimeEnd, @Param("paymentTimeStart") String paymentTimeStart,
                                                         @Param("paymentTimeEnd") String paymentTimeEnd);
                                                         @Param("paymentTimeEnd") String paymentTimeEnd,@Param("orderType") Integer orderType);
    
    
    /**
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderCrossCityMapper.xml
@@ -237,4 +237,49 @@
            </foreach>
        </if>
    </select>
    <select id="paymentOrderStatisticsList" resultType="map">
        select
        a.id,
        b.code as paymentCode,
        a.orderNum,
        c.phone as userPhone,
        b.amount,
        d.phone as driverPhone,
        e.name as company,
        f.money as income,
        b.orderType as orderType,
        DATE_FORMAT(a.insertTime, '%Y-%m-%d %H:%i:%s') as insertTime,
        DATE_FORMAT(b.insertTime, '%Y-%m-%d %H:%i:%s') as paymentTime
        from t_order_cross_city a
        left join t_payment_record b on (a.id = b.orderId and b.orderType = 3 and b.state = 2)
        left join t_user c on (a.userId = c.id)
        left join t_driver d on (a.driverId = d.id)
        left join t_company e on (d.companyId = e.id)
        left join t_pub_transaction_details f on (a.id = f.orderId and f.userType = 2 and f.state = 2)
        where a.state in (8, 9) and a.isDelete = 1 and a.payManner = 1
        <if test="null != paymentCode and '' != paymentCode">
            and b.code like CONCAT('%', #{paymentCode}, '%')
        </if>
        <if test="null != orderCode and '' != orderCode">
            and a.orderNum like CONCAT('%', #{orderCode}, '%')
        </if>
        <if test="null != orderType">
            and b.orderType = #{orderType}
        </if>
        <if test="null != userPhone and '' != userPhone">
            and c.phone like CONCAT('%', #{userPhone}, '%')
        </if>
        <if test="null != driverPhone and '' != driverPhone">
            and d.phone like CONCAT('%', #{driverPhone}, '%')
        </if>
        <if test="null != createTimeStart and '' != createTimeStart and null != createTimeEnd and '' != createTimeEnd">
            and a.insertTime between #{createTimeStart} and #{createTimeEnd}
        </if>
        <if test="null != paymentTimeStart and '' != paymentTimeStart and null != paymentTimeEnd and '' != paymentTimeEnd">
            and b.insertTime between #{paymentTimeStart} and #{paymentTimeEnd}
        </if>
        order by a.insertTime desc
    </select>
</mapper>
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTaxiMapper.xml
@@ -273,6 +273,7 @@
            d.phone as driverPhone,
            e.name as company,
            f.money as income,
            b.orderType as orderType,
            DATE_FORMAT(a.insertTime, '%Y-%m-%d %H:%i:%s') as insertTime,
            DATE_FORMAT(b.insertTime, '%Y-%m-%d %H:%i:%s') as paymentTime
        from t_order_taxi a
@@ -288,6 +289,9 @@
        <if test="null != orderCode and '' != orderCode">
            and a.orderNum like CONCAT('%', #{orderCode}, '%')
        </if>
        <if test="null != orderType">
            and b.orderType = #{orderType}
        </if>
        <if test="null != userPhone and '' != userPhone">
            and c.phone like CONCAT('%', #{userPhone}, '%')
        </if>
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderCrossCityService.java
@@ -51,4 +51,8 @@
    String getOrderNum(Integer driverId, Integer lineShiftDriverId) throws Exception;
    List<Map<String, Object>> paymentOrderStatisticsList(Page<Map<String, Object>> page, String paymentCode, String orderCode, String userPhone, String driverPhone, String createTime, String paymentTime, Integer orderType);
}
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTaxiService.java
@@ -90,7 +90,7 @@
     * @return
     */
    List<Map<String, Object>> paymentOrderStatisticsList(Page<Map<String, Object>> page, String paymentCode, String orderCode, String userPhone,
                                                         String driverPhone, String createTime, String paymentTime);
                                                         String driverPhone, String createTime, String paymentTime,  Integer orderType);
    
    
    /**
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderCrossCityServiceImpl.java
@@ -1,6 +1,7 @@
package com.stylefeng.guns.modular.system.service.impl;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.model.TOrderCrossCity;
import com.stylefeng.guns.modular.system.dao.TOrderCrossCityMapper;
import com.stylefeng.guns.modular.system.service.ITOrderCrossCityService;
@@ -55,4 +56,23 @@
        int size = this.selectCount(null);
        return "CROSS" + String.valueOf(1000000 + size + 1).substring(1);
    }
    @Override
    public List<Map<String, Object>> paymentOrderStatisticsList(Page<Map<String, Object>> page, String paymentCode, String orderCode, String userPhone, String driverPhone, String createTime, String paymentTime, Integer orderType) {
        String createTimeStart = null;
        String createTimeEnd = null;
        String paymentTimeStart = null;
        String paymentTimeEnd = null;
        if(ToolUtil.isNotEmpty(createTime)){
            String[] split = createTime.split(" - ");
            createTimeStart = split[0];
            createTimeEnd = split[1];
        }
        if(ToolUtil.isNotEmpty(paymentTime)){
            String[] split = paymentTime.split(" - ");
            paymentTimeStart = split[0];
            paymentTimeEnd = split[1];
        }
        return this.baseMapper.paymentOrderStatisticsList(page, paymentCode, orderCode, userPhone, driverPhone, createTimeStart, createTimeEnd, paymentTimeStart, paymentTimeEnd,orderType);
    }
}
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTaxiServiceImpl.java
@@ -65,7 +65,8 @@
     * @return
     */
    @Override
    public List<Map<String, Object>> paymentOrderStatisticsList(Page<Map<String, Object>> page, String paymentCode, String orderCode, String userPhone, String driverPhone, String createTime, String paymentTime) {
    public List<Map<String, Object>> paymentOrderStatisticsList(Page<Map<String, Object>> page, String paymentCode, String orderCode, String userPhone,
                                                                String driverPhone, String createTime, String paymentTime,Integer orderType) {
        String createTimeStart = null;
        String createTimeEnd = null;
        String paymentTimeStart = null;
@@ -80,7 +81,7 @@
            paymentTimeStart = split[0];
            paymentTimeEnd = split[1];
        }
        return this.baseMapper.paymentOrderStatisticsList(page, paymentCode, orderCode, userPhone, driverPhone, createTimeStart, createTimeEnd, paymentTimeStart, paymentTimeEnd);
        return this.baseMapper.paymentOrderStatisticsList(page, paymentCode, orderCode, userPhone, driverPhone, createTimeStart, createTimeEnd, paymentTimeStart, paymentTimeEnd,orderType);
    }
    
    /**
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/home.html
@@ -61,6 +61,10 @@
                            <h1 class="no-margins" id="orderDetail2">0</h1>
                            <small>出租车订单</small>
                        </div>
                        <div class="ibox-content">
                            <h1 class="no-margins" id="orderDetail3">0</h1>
                            <small>跨城出行订单</small>
                        </div>
                    </div>
                </div>
                <div class="col-sm-3">
@@ -116,6 +120,10 @@
                            <small>出租车订单数</small>
                        </div>
                        <div class="ibox-content">
                            <h1 class="no-margins" id="orderDetail31">0</h1>
                            <small>跨城出行订单数</small>
                        </div>
                        <div class="ibox-content">
                            <h1 class="no-margins" id="paiceSum1">0</h1>
                            <small>交易总金额</small>
                        </div>
@@ -149,6 +157,12 @@
                            </h1>
                            <small>出租车订单趋势图</small>
                        </div>
                        <div class="ibox-content">
                            <h1 class="no-margins">
                                <span class="dynamicsparkline" id="orderDetail32">Loading..</span>
                            </h1>
                            <small>跨城订单趋势图</small>
                        </div>
                    </div>
                </div>
            </div>
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/financialStatement/paymentOrderStatistics/paymentOrderStatistics.html
@@ -28,6 +28,13 @@
                                <#TimeCon id="paymentTime" name="支付时间" isTime="false"/>
                            </div>
                            <div class="col-sm-3">
                            <#SelectCon id="orderType" name="订单类型" >
                                <option value="">全部</option>
                                <option value="2">出租车订单</option>
                                <option value="3">跨城出行订单</option>
                            </#SelectCon>
                        </div>
                            <div class="col-sm-3">
                                <#button name="搜索" icon="fa-search" clickFun="PaymentOrderStatistics.search()"/>
                                <#button name="重置" icon="fa-trash" clickFun="PaymentOrderStatistics.resetSearch()" space="true"/>
                            </div>
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/report/operationalData.html
@@ -9,6 +9,7 @@
                            <div class="col-sm-3">
                                <#SelectCon id="type" name="类别" >
                                    <option value="2">出租车</option>
                                    <option value="3">跨城出行</option>
                                </#SelectCon>
                            </div>
                            <div class="col-sm-3">
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponActivity/sysCouponActivity.html
@@ -16,6 +16,7 @@
                                <#SelectCon id="couponUseType" name="优惠券类型" >
                                    <option value="">全部</option>
                                    <option value="2">出租车券</option>
                                    <option value="3">跨城出行券</option>
                                </#SelectCon>
                            </div>
                            <div class="col-sm-3">
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponRecord/sysCouponRecord.html
@@ -16,6 +16,7 @@
                                <#SelectCon id="couponUseType" name="优惠券类型" >
                                    <option value="">全部</option>
                                    <option value="2">出租车券</option>
                                    <option value="3">跨城出行券</option>
                                </#SelectCon>
                            </div>
                            <div class="col-sm-3">
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/sysCouponRecord/sysCouponRecord_add.html
@@ -19,6 +19,7 @@
                    </div>
                    <#select id="couponUseType" name="服务类型" underline="true">
                        <option value="2">出租车券</option>
                        <option value="3">跨城出行券</option>
                    </#select>
                    <#input id="money" name="金额" underline="true" placeholder="最多4位数字"/>
                    <div class="form-group" id="fullMoneys" style="display: none">
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tAgreement/tAgreement.html
@@ -15,6 +15,7 @@
                                <li class="active"><a data-toggle="tab" href="#tab-1" aria-expanded="true">注册协议</a></li>
                                <li class=""><a data-toggle="tab" href="#tab-2" aria-expanded="false">用户协议</a></li>
                                <li class=""><a data-toggle="tab" href="#tab-3" aria-expanded="false">隐私协议</a></li>
                                <li class=""><a data-toggle="tab" href="#tab-4" aria-expanded="false">跨城出行须知</a></li>
                            </ul>
                            <div class="tab-content">
                                <div id="tab-1" class="tab-pane active">
@@ -47,6 +48,16 @@
                                        </div>
                                    </div>
                                </div>
                                <div id="tab-4" class="tab-pane">
                                    <div class="panel-body">
                                        <textarea type="text/plain" id="editor_4" style="width:1200px;height:400px;">${four.content}</textarea>
                                        <div class="row btn-group-m-t">
                                            <div class="col-sm-10 col-sm-offset-5">
                                                <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="update_4(${four.id});"/>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
@@ -61,11 +72,13 @@
    var editor_1 = null;
    var editor_2 = null;
    var editor_3 = null;
    var editor_4 = null;
    $(function () {
        //初始化编辑器
        editor_1 = UE.getEditor('editor_1');
        editor_2 = UE.getEditor('editor_2');
        editor_3 = UE.getEditor('editor_3');
        editor_4 = UE.getEditor('editor_4');
    });
    function update_1(id){
@@ -89,6 +102,13 @@
        }
        submitData($("#three").val(),id);
    }
    function update_4(id){
        if (editor_4.getContentTxt() == ""){
            Feng.error("内容不能为空!");
            return;
        }
        submitData(editor_4.getContent(),id);
    }
    function submitData(content,id) {
        //提交信息
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_add.html
@@ -49,6 +49,10 @@
                                    <input type="checkbox" checked name="serverBox" id="serverBox2" value="2">
                                    <label for="serverBox2"> 出租车 </label>
                                </div>
                                <div class="checkbox checkbox-success  checkbox-inline">
                                    <input type="checkbox" name="serverBox" id="serverBox3" value="3" onclick="TCarInfoDlg.kcServerClick()">
                                    <label for="serverBox3"> 跨城 </label>
                                </div>
                            </div>
                        </fieldset>
                    </div>
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCar/tCar_edit.html
@@ -51,6 +51,10 @@
                                    <input type="checkbox" name="serverBox" id="serverBox2" value="2" ${2 == two ? 'checked=checked' : ''}>
                                    <label for="serverBox2"> 出租车 </label>
                                </div>
                                <div class="checkbox checkbox-success  checkbox-inline">
                                    <input type="checkbox" name="serverBox" id="serverBox3" value="3" ${2 == three ? 'checked=checked' : ''} onclick="TCarInfoDlg.kcServerClick()">
                                    <label for="serverBox3"> 跨城 </label>
                                </div>
                            </div>
                        </fieldset>
                    </div>
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/platformEdit.html
@@ -52,7 +52,12 @@
                                    <label for="checkbox2">
                                        出租车
                                    </label>
                                </div>
                                <div class="checkbox checkbox-success">
                                    <input name="checkbox" id="checkbox3" type="checkbox" value="3" ${1 == item.isCross ? 'checked=checked' : ''} onclick="TCompanyInfoDlg.checkbox3()">
                                    <label for="checkbox3">
                                        跨城出行
                                    </label>
                                </div>
                            </fieldset>
                        </div>
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_add.html
@@ -57,32 +57,12 @@
                                    <label for="checkbox2">
                                        出租车
                                    </label>
<!--                                    <fieldset>-->
<!--                                        <div class="row" style="display: none;" id="czDiv">-->
<!--                                            <div class="col-sm-6">-->
<!--                                                <div class="checkbox checkbox-circle">-->
<!--                                                    <input type="radio" name="cz" id="cz1" value="1" checked="">-->
<!--                                                    <label for="cz1">-->
<!--                                                        <div style="position: relative;top: -8px;">-->
<!--                                                            <span>按比例抽成,每笔订单抽取</span>-->
<!--                                                            <input style="width: 50%;display: inline-block;" type="text" class="form-control" id="czPercent" name="czPercent">-->
<!--                                                            <span>%</span>-->
<!--                                                        </div>-->
<!--                                                    </label>-->
<!--                                                </div>-->
<!--                                                <div class="checkbox checkbox-circle">-->
<!--                                                    <input type="radio" name="cz" id="cz2" value="2">-->
<!--                                                    <label for="cz2">-->
<!--                                                        <div style="position: relative;top: -8px;">-->
<!--                                                            <span>按固定金额抽成,每笔订单抽取</span>-->
<!--                                                            <input style="width: 50%;display: inline-block;" type="text" class="form-control" id="czMoney" name="czMoney">-->
<!--                                                            <span>元</span>-->
<!--                                                        </div>-->
<!--                                                    </label>-->
<!--                                                </div>-->
<!--                                            </div>-->
<!--                                        </div>-->
<!--                                    </fieldset>-->
                                </div>
                                <div class="checkbox checkbox-success">
                                    <input name="checkbox" id="checkbox3" type="checkbox" value="3" onclick="TCompanyInfoDlg.checkbox3()">
                                    <label for="checkbox3">
                                        跨城
                                    </label>
                                </div>
                            </fieldset>
                        </div>
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_addFranchisee.html
@@ -38,7 +38,12 @@
                                    <label for="checkbox2">
                                        出租车
                                    </label>
                                </div>
                                <div class="checkbox checkbox-success">
                                    <input name="checkbox" id="checkbox3" type="checkbox" value="3" onclick="FranchiseeInfoDlg.checkbox3()">
                                    <label for="checkbox3">
                                        跨城
                                    </label>
                                </div>
                            </fieldset>
                        </div>
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_detail.html
@@ -99,6 +99,12 @@
                                        出租车
                                    </label>
                                </div>
                                <div class="checkbox checkbox-success">
                                    <input name="checkbox" id="checkbox3" type="checkbox" disabled value="3" ${1 == item.isCross ? 'checked=checked' : ''} >
                                    <label for="checkbox3">
                                        跨城
                                    </label>
                                </div>
                            </fieldset>
                        </div>
                    </div>
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_detailFranchisee.html
@@ -30,7 +30,12 @@
                                <label for="checkbox2">
                                    出租车
                                </label>
                            </div>
                            <div class="checkbox checkbox-success">
                                <input name="checkbox" id="checkbox3" type="checkbox" disabled value="3" ${1 == item.isCross ? 'checked=checked' : ''} >
                                <label for="checkbox3">
                                    跨城
                                </label>
                            </div>
                        </fieldset>
                    </div>
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_edit.html
@@ -57,7 +57,12 @@
                                    <label for="checkbox2">
                                        出租车
                                    </label>
                                </div>
                                <div class="checkbox checkbox-success">
                                    <input name="checkbox" id="checkbox3" type="checkbox" value="3" ${1 == item.isCross ? 'checked=checked' : ''} onclick="TCompanyInfoDlg.checkbox3()">
                                    <label for="checkbox3">
                                        跨城
                                    </label>
                                </div>
                            </fieldset>
                        </div>
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tCompany/tCompany_updateFranchisee.html
@@ -39,6 +39,12 @@
                                        出租车
                                    </label>
                                </div>
                                <div class="checkbox checkbox-success">
                                    <input name="checkbox" id="checkbox3" type="checkbox" value="3" ${1 == item.isCross ? 'checked=checked' : ''} onclick="FranchiseeInfoDlg.checkbox3()">
                                    <label for="checkbox3">
                                        跨城
                                    </label>
                                </div>
                            </fieldset>
                        </div>
                    </div>
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html
@@ -74,6 +74,10 @@
                                    <input type="checkbox" name="serverBox" id="serverBox2" value="2">
                                    <label for="serverBox2"> 出租车 </label>
                                </div>
                                <div class="checkbox checkbox-success  checkbox-inline">
                                    <input type="checkbox" name="serverBox" id="serverBox3" value="3" onclick="YesDriverInfoDlg.checkBox()" >
                                    <label for="serverBox3"> 跨城 </label>
                                </div>
                            </div>
                        </fieldset>
                    </div>
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html
@@ -77,6 +77,10 @@
                                    <input type="checkbox" name="serverBox" id="serverBox2" value="2" ${2 == two ? 'checked=checked' : ''}>
                                    <label for="serverBox2"> 出租车 </label>
                                </div>
                                <div class="checkbox checkbox-success  checkbox-inline">
                                    <input type="checkbox" name="serverBox" id="serverBox3" value="3" ${2 == three ? 'checked=checked' : ''} onclick="YesDriverInfoDlg.checkBox()" >
                                    <label for="serverBox3"> 跨城 </label>
                                </div>
                            </div>
                        </fieldset>
                    </div>
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_add.html
@@ -27,6 +27,7 @@
                            <select class="form-control" id="businessType">
                                <option value="">选择经营业务</option>
                                <option value="2">出租车</option>
                                <option value="3">跨城出行</option>
                            </select>
                        </div>
                        <div class="col-sm-3" >
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_edit.html
@@ -34,6 +34,7 @@
                            <select class="form-control" id="businessType">
                                <option value="">选择经营业务</option>
                                <option value="2">出租车</option>
                                <option value="3">跨城出行</option>
                            </select>
                        </div>
                        <div class="col-sm-3" >
ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tSysReformist/tSysReformist.html
@@ -13,7 +13,7 @@
                        <h3>系统设置:</h3>
                    </div>
                    <!--<div class="form-group">
                    <div class="form-group">
                        <label class="col-sm-2 control-label">改派设置:</label>
                        <div class="col-sm-10">
                            改派费用为&nbsp;<input type="text" oninput="checkIsDouble(this)"
@@ -26,7 +26,7 @@
                        </div>
                    </div>
                    <div class="form-group">
                    <!--<div class="form-group">
                        <label class="col-sm-2 control-label">积分设置:</label>
                        <div class="col-sm-10">
                            消费一元积&nbsp;<input type="text" oninput="checkIsInt(this)"
@@ -459,6 +459,7 @@
            }
        });
        var openValue = $("#openValue").val();
        var one = $("#one").val().trim();
        var czc1 = $("#czc1").val().trim();
        var czc2 = $("#czc2").val().trim();
        var czc3 = $("#czc3").val().trim();
@@ -477,13 +478,13 @@
        if (
            "" == czc1 || "" == czc2 || "" == czc3 || "" == czc4 || "" == czc5 || "" == czc6 || "" == czc7 || "" == czc8 || "" == czc9
            || "" == phone1 || "" == phone2 ) {
            || "" == phone1 || "" == phone2 || "" == one) {
            Feng.info("输入框不能为空!");
            return;
        } else if (
             !regDouble.test(czc1) || !regInt.test(czc2) || !regDouble.test(czc3)
            || !regDouble.test(czc4) || !regInt.test(czc5) || !regDouble.test(czc6)
            || !regDouble.test(czc7) || !regInt.test(czc8) || !regDouble.test(czc9)
            || !regDouble.test(czc7) || !regInt.test(czc8) || !regDouble.test(czc9)|| !regDouble.test(one)
                ) {
            Feng.info("格式不正确!");
            return ;
@@ -496,6 +497,7 @@
        },function(data){
            Feng.error("操作失败!" + data.responseJSON.message + "!");
        });
        ajax.set("one", one);
        ajax.set("czc1", czc1);
        ajax.set("czc2", czc2);
        ajax.set("czc3", czc3);
ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/financialStatement/paymentOrderStatistics/paymentOrderStatistics.js
@@ -17,6 +17,15 @@
        {title: '', field: 'id', visible: false, align: 'center', valign: 'middle'},
        {title: '支付流水号', field: 'paymentCode', visible: true, align: 'center', valign: 'middle'},
        {title: '订单号', field: 'orderNum', visible: true, align: 'center', valign: 'middle'},
        {title: '订单类型', field: 'orderType', visible: true, align: 'center', valign: 'middle',
            formatter: function (value, row) {
                if(row.orderType == 2) {
                    return '出租车订单';
                } else {
                    return '跨城出行订单';
                }
            }
        },
        {title: '支付用户手机号', field: 'userPhone', visible: true, align: 'center', valign: 'middle'},
        {title: '支付金额', field: 'amount', visible: true, align: 'center', valign: 'middle'},
        {title: '接单司机手机号', field: 'driverPhone', visible: true, align: 'center', valign: 'middle'},
@@ -85,8 +94,9 @@
    let driverPhone = $("#driverPhone").val();
    let createTime = $("#createTime").val();
    let paymentTime = $("#paymentTime").val();
    let orderType = $("#orderType").val();
    window.location.href = Feng.ctxPath + '/financialStatement/paymentOrderStatisticsList_export?paymentCode=' + paymentCode + "&orderCode=" + orderCode +
            "&userPhone=" + userPhone + "&driverPhone=" + driverPhone + "&createTime=" + createTime + "&paymentTime=" + paymentTime
            "&userPhone=" + userPhone + "&driverPhone=" + driverPhone + "&createTime=" + createTime + "&paymentTime=" + paymentTime + "&orderType=" + orderType
}
@@ -102,6 +112,7 @@
    queryData['driverPhone'] = $("#driverPhone").val();
    queryData['createTime'] = $("#createTime").val();
    queryData['paymentTime'] = $("#paymentTime").val();
    queryData['orderType'] = $("#orderType").val();
    PaymentOrderStatistics.table.refresh({query: queryData});
};
@@ -113,6 +124,7 @@
    $("#driverPhone").val("");
    $("#createTime").val("");
    $("#paymentTime").val("");
    $("#orderType").val("");
    PaymentOrderStatistics.search();
};
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -81,7 +81,9 @@
    })
    public ResultUtil<DriverInfoWarpper> queryDriverInfo(Integer id){
        try {
            System.err.println(id);
            Map<String, Object> map = driverService.queryDriverInfo(id);
            System.err.println(map);
            String name = String.valueOf(map.get("name"));
            map.put("name", name.substring(0, 1) + "师傅");
            List<BaseWarpper> list = driverService.queryBusiness(id);
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OpenCityController.java
@@ -71,6 +71,7 @@
    public ResultUtil<List<BaseWarpper>> queryBusiness(String province, String city, String district){
        try {
            List<BaseWarpper> list = openCityBusinessService.queryBusiness(province, city, district);
            System.err.println(list);
            return ResultUtil.success(list);
        }catch (Exception e){
            e.printStackTrace();
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -1257,7 +1257,7 @@
    @PostMapping("/base/wxPayOrderTaxi")
    public void wxPayOrderTaxi(HttpServletRequest request, HttpServletResponse response){
        try {
            System.out.println("完成订单微信支付回调");
            System.err.println("完成订单微信支付回调");
            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
            System.out.println("wx支付信息:"+map);
@@ -1284,6 +1284,7 @@
                            orderTaxiService.payOrderTaxiCallback(id, order_id, 1);
                            break;
                        case 3:
                            orderCrossCityService.payOrderCrossCityCallback(id, order_id, 1);
                            break;
                        case 4:
                            break;
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
@@ -258,4 +258,10 @@
    List<OrderCrossCity> queryListOrder(Integer driverId, Integer lineShiftId, List<Integer> state, String day) throws Exception;
    /**
     * 自动取消订单
     */
    void autoCancelOrder();
}
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.core.util.GpsCoordinateUtils;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.crossCity.dao.LinePriceMapper;
import com.stylefeng.guns.modular.crossCity.dao.LineShiftDriverMapper;
@@ -43,6 +44,7 @@
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
@@ -51,6 +53,7 @@
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.*;
import static com.stylefeng.guns.modular.taxi.service.impl.OrderTaxiServiceImpl.orderIds;
@@ -167,7 +170,10 @@
    @Autowired
    private IOpenCityService openCityService;
    @Autowired
    private PayMoneyUtil payMoneyUtil;
    @Autowired
    private ICompanyService companyService;
    @Value("${callbackPath}")
    private String callbackPath;
@@ -317,13 +323,16 @@
            }else{
                appletsOpenId = userInfo.getAppletsOpenId();
            }
            Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",3", 9, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/wxPayOrderTaxi", "", type, appletsOpenId);
            if(map.get("code").equals("200")){
                paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 1, orderMoney, map.get("order_id"), 1);//添加预支付数据
                resultUtil = ResultUtil.success(map.get("data"));
            }else{
                resultUtil = ResultUtil.error(map.get("msg"), "");
            }
//            Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",3", 9, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/wxPayOrderTaxi", "", type, appletsOpenId);
//            if(map.get("code").equals("200")){
//                paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 1, orderMoney, map.get("order_id"), 1);//添加预支付数据
//                resultUtil = ResultUtil.success(map.get("data"));
//            }else{
//                resultUtil = ResultUtil.error(map.get("msg"), "");
//            }
            String app = type == 1 ? "APP" : "JSAPI";
            resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_3_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId());
            paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 1, orderMoney, "", 1);//添加预支付数据
        }
        if(payType == 2){//支付宝支付
            Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",3", 10, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/aliPayOrderTaxi", "", type, null);
@@ -407,6 +416,24 @@
        OrderCrossCity orderCrossCity = this.selectById(id);
        PaymentRecord query = paymentRecordService.query(1, orderCrossCity.getUserId(), 1, Integer.valueOf(id), 3, type, 1);
        if(null != query){
            Integer placeOrderWay = null;
            switch (orderCrossCity.getOrderSource()){
                case 2:
                    placeOrderWay = 4;
                    break;
                case 3:
                    placeOrderWay = 4;
                    break;
                case 6:
                    placeOrderWay = 1;
                    break;
                case 7:
                    placeOrderWay = 2;
                    break;
                case 5:
                    placeOrderWay = 3;
                    break;
            }
            //添加交易明细
            transactionDetailsService.saveData(orderCrossCity.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, 3, query.getOrderId());
            orderCrossCity.setState(2);//先支付再服务
@@ -414,10 +441,10 @@
            orderCrossCity.setPayMoney(query.getAmount());
            this.updateById(orderCrossCity);
            UserInfo userInfo = userInfoService.selectById(orderCrossCity.getUserId());
            SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId());
            userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
            userInfoService.updateById(userInfo);
//            UserInfo userInfo = userInfoService.selectById(orderCrossCity.getUserId());
//            SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId());
//            userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
//            userInfoService.updateById(userInfo);
            //处理优惠券和红包
            if(null != orderCrossCity.getCouponId()){
@@ -439,16 +466,40 @@
            paymentRecordService.updateById(query);
            //添加已收入明细
            Line line = lineService.selectById(orderCrossCity.getLineId());
            Double speMoney = Double.valueOf(line.getRakeRate());
            BigDecimal d = new BigDecimal(orderCrossCity.getOrderMoney()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN);//企业收入
            BigDecimal c = new BigDecimal(orderCrossCity.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);//司机收入
            incomeService.saveData(1, orderCrossCity.getCompanyId(), 2, orderCrossCity.getId(), 3, d.doubleValue());
            incomeService.saveData(2, orderCrossCity.getDriverId(), 2, orderCrossCity.getId(), 3, c.doubleValue());
//            Line line = lineService.selectById(orderCrossCity.getLineId());
//            Double speMoney = Double.valueOf(line.getRakeRate());
//            BigDecimal d = new BigDecimal(orderCrossCity.getOrderMoney()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN);//企业收入
//            BigDecimal c = new BigDecimal(orderCrossCity.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);//司机收入
//            incomeService.saveData(1, orderCrossCity.getCompanyId(), 2, orderCrossCity.getId(), 3, d.doubleValue());
//            incomeService.saveData(2, orderCrossCity.getDriverId(), 2, orderCrossCity.getId(), 3, c.doubleValue());
            Driver driver = driverService.selectById(orderCrossCity.getDriverId());
            driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
//            driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
//            driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
//            driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
//            driverService.updateById(driver);
            Company company = companyService.selectById(driver.getFranchiseeId());
            if(Objects.isNull(company)){
                company = companyService.selectById(driver.getCompanyId());
            }
            // 司机收入
            double moneyTwo;
            // 平台收入
            double money;
            if(orderCrossCity.getOrderSource() == 2 || orderCrossCity.getOrderSource() == 3){
                double v = company.getPercentageDeduction() / 100;
                money = v * orderCrossCity.getOrderMoney();
                moneyTwo = orderCrossCity.getOrderMoney()-money;
            }else {
                money = company.getFixedDeduction();
                moneyTwo = orderCrossCity.getOrderMoney()-money;
            }
            driver.setBalance(driver.getBalance() + moneyTwo);
            // 新增扣除使用费记录
            transactionDetailsService.saveDataTaxi(driver.getId(), "软件使用费", money, 2, 1, 2, 6, orderCrossCity.getId(),placeOrderWay,company.getId());
            // 司机订单收入
            transactionDetailsService.saveDataTaxi(driver.getId(), "完成订单", moneyTwo, 1, 1, 2, 3, orderCrossCity.getId(),placeOrderWay,company.getId());
            driverService.updateById(driver);
            // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
@@ -463,6 +514,8 @@
            systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功完成出行订单支付,谢谢使用!", orderCrossCity.getUserId(), 1);
            //添加司机消息提醒
            systemNoticeService.addSystemNotice(2, "用户已线上完成支付", driver.getId(), 1);
        }else{
            System.err.println("预支付数据异常(orderId = "  + id + ")");
        }
@@ -1186,38 +1239,39 @@
        }
        //还原座位
        CancleOrder query1 = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId());
        if (null != query1) {
            integer = orderCancelService.saveData(id, 3, reason, remark, null, null, 2, 1, uid);
            orderCrossCity.setState(10);
            this.updateById(orderCrossCity);
//        CancleOrder query1 = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId());
//        if (null != query1) {
        integer = orderCancelService.saveData(id, 3, reason, remark, null, null, 2, 1, uid);
        orderCrossCity.setState(10);
        this.updateById(orderCrossCity);
            if(orderCrossCity.getState() != 7){//已经支付的情况推送给司机提醒
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
                        System.err.println("推送取消操作---------------------");
                    }
                }).start();
            }
            //修改司机座位
            LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId());
            lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber());
            lineShiftDriver.setLaveSeatNumber(lineShiftDriver.getLaveSeatNumber() + (orderCrossCity.getTravelMode() == 1 ? "," : "") + orderCrossCity.getSeatNumber());
            lineShiftDriverMapper.updateById(lineShiftDriver);
            //修改司机为空闲
            List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.queryByDriverId(orderCrossCity.getDriverId(), 2, 3, 4, 5, 11);
            if(orderCrossCities.size() == 0){
                Driver driver = driverService.selectById(orderCrossCity.getDriverId());
                driver.setState(2);
                driverService.updateById(driver);
            }
        }else{
            return ResultUtil.error("请完善后台取消规则设置");
        if(orderCrossCity.getState() != 7){//已经支付的情况推送给司机提醒
            new Thread(new Runnable() {
                @Override
                public void run() {
                    pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
                    System.err.println("推送取消操作---------------------");
                }
            }).start();
        }
        //修改司机座位
        LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId());
        lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber());
        lineShiftDriver.setLaveSeatNumber(lineShiftDriver.getLaveSeatNumber() + (orderCrossCity.getTravelMode() == 1 ? "," : "") + orderCrossCity.getSeatNumber());
        lineShiftDriverMapper.updateById(lineShiftDriver);
        //修改司机为空闲
        List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.queryByDriverId(orderCrossCity.getDriverId(), 2, 3, 4, 5, 11);
        if(orderCrossCities.size() == 0){
            Driver driver = driverService.selectById(orderCrossCity.getDriverId());
            driver.setState(2);
            driverService.updateById(driver);
        }
//        }
//        else{
//            return ResultUtil.error("请完善后台取消规则设置");
//        }
        //已支付的情况下进行退款操作
        if(null != orderCrossCity.getPayType() && null != orderCrossCity.getPayMoney()){
@@ -1232,39 +1286,30 @@
                if(null == query){
                    return ResultUtil.error("订单还未进行支付");
                }
                Map<String, Object> merrefund = icbcPayUtil.merrefund(query.getCode(), "", query.getAmount(), id + "_3", orderCrossCity.getOrderNum());
                if(Integer.valueOf(merrefund.get("code").toString()) == 0){
                    Map<String, Object> refundqry = icbcPayUtil.refundqry("", query.getCode(), orderCrossCity.getOrderNum());
                    if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 0){//成功
                        //添加交易明细
                        transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, 1, 3, id);
                    }
                    if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 1){//失败
                        return ResultUtil.error("订单取消失败(退款不成功)");
                    }
                    if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 2){//未知
                        return ResultUtil.error("退款返回未知异常");
                    }
                }
                Map<String, String> merrefund = payMoneyUtil.wxRefund(query.getCode(), orderCrossCity.getOrderNum(), String.valueOf(query.getAmount()), String.valueOf(query.getAmount()), "");
                System.err.println("跨城退款数据:::"+merrefund);
                //添加交易明细
                transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, 1, 3, id);
                integer = orderCancelService.saveData(id, 3, reason, remark, null, null, 2, 1, uid);
            }
            //添加负的收入明细
            List<Income> incomes = incomeService.selectList(new EntityWrapper<Income>().eq("type", 2).eq("incomeId", id).eq("orderType", 3));
            for(Income income : incomes){
                if(income.getUserType() == 2){//处理司机的收入
                    Driver driver = driverService.selectById(income.getObjectId());
                    driver.setBalance(driver.getBalance() - income.getMoney());
                    driver.setBusinessMoney(driver.getBusinessMoney() - income.getMoney());
                    driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - income.getMoney());
                    driverService.updateById(driver);
                }
                Income income1 = new Income();
                BeanUtils.copyProperties(income, income1);
                income1.setMoney(income.getMoney() * -1);
                income1.setId(null);
                income1.setInsertTime(new Date());
                incomeService.insert(income1);
            }
//            List<Income> incomes = incomeService.selectList(new EntityWrapper<Income>().eq("type", 2).eq("incomeId", id).eq("orderType", 3));
//            for(Income income : incomes){
//                if(income.getUserType() == 2){//处理司机的收入
//                    Driver driver = driverService.selectById(income.getObjectId());
//                    driver.setBalance(driver.getBalance() - income.getMoney());
//                    driver.setBusinessMoney(driver.getBusinessMoney() - income.getMoney());
//                    driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - income.getMoney());
//                    driverService.updateById(driver);
//                }
//                Income income1 = new Income();
//                BeanUtils.copyProperties(income, income1);
//                income1.setMoney(income.getMoney() * -1);
//                income1.setId(null);
//                income1.setInsertTime(new Date());
//                incomeService.insert(income1);
//            }
        }
        //添加消息
@@ -1303,8 +1348,8 @@
        if(null == distance){
            System.err.println("查询距离出错了");
        }else{
            d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
            t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + "";
            d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000),2, BigDecimal.ROUND_HALF_EVEN).toString();
            t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60),2,BigDecimal.ROUND_HALF_EVEN).toString();
        }
        OrderServerWarpper orderServerWarpper = new OrderServerWarpper();
        orderServerWarpper.setOrderId(orderCrossCity.getId());
@@ -1312,6 +1357,18 @@
        orderServerWarpper.setState(orderCrossCity.getState());
        orderServerWarpper.setLon(null != value ? value.split(",")[0] : "0.0");
        orderServerWarpper.setLat(null != value ? value.split(",")[1] : "0.0");
        value = value == null ? "0.0,0.0" : value;
        double[] doubles = GpsCoordinateUtils.calBD09toGCJ02(Double.parseDouble(value.split(",")[1]), Double.parseDouble(value.split(",")[0]));
        orderServerWarpper.setNextLongitude(String.valueOf(doubles[0]));
        orderServerWarpper.setNextLatitude(String.valueOf(doubles[1]));
        // 起点地址转换
        doubles = GpsCoordinateUtils.calBD09toGCJ02(orderCrossCity.getStartLat(), orderCrossCity.getStartLon());
        orderServerWarpper.setStartLat(String.valueOf(doubles[0]));
        orderServerWarpper.setStartLon(String.valueOf(doubles[1]));
        // 终点地址转换
        doubles = GpsCoordinateUtils.calBD09toGCJ02(orderCrossCity.getEndLat(), orderCrossCity.getEndLon());
        orderServerWarpper.setEndLat(String.valueOf(doubles[0]));
        orderServerWarpper.setEndLon(String.valueOf(doubles[1]));
        orderServerWarpper.setReassignNotice(orderCrossCity.getReassignNotice());
        if(orderCrossCity.getState() == 2 || orderCrossCity.getState() == 3){//前往预约地
            orderServerWarpper.setReservationMileage(d);
@@ -1740,6 +1797,20 @@
        return orderCrossCityMapper.queryListOrder(driverId, lineShiftId, state, day);
    }
    @Override
    public void autoCancelOrder() {
        LocalDateTime localDateTime = LocalDateTime.now();
        LocalDateTime dateTime = localDateTime.minusMinutes(30);
        String time = dateUtil.localDateTimeToStringHHmm(dateTime);
        List<OrderCrossCity> orderCrossCities = this.selectList(new EntityWrapper<OrderCrossCity>().eq("state", 7).like("insertTime", time));
        if(!CollectionUtils.isEmpty(orderCrossCities)){
            for (OrderCrossCity orderCrossCity : orderCrossCities) {
                orderCrossCity.setState(10);
            }
            this.updateBatchById(orderCrossCities);
        }
    }
    /**
     * 获取订单编号
     * @return
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java
@@ -36,6 +36,7 @@
        if(openCityBusinesses.size() == 0){
            openCityBusinesses = openCityBusinessMapper.queryBusiness(province, null, null);
        }
        System.err.println(openCityBusinesses);
        List<BaseWarpper> list = new ArrayList<>();
        for(OpenCityBusiness b : openCityBusinesses){
            BaseWarpper baseWarpper = new BaseWarpper();
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java
@@ -5,6 +5,9 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
/**
@@ -110,6 +113,28 @@
        return list;
    }
    /**
     * localdate转为字符串
     *
     * @param time localdate
     * @return 字符串
     */
    public String localDateToString(LocalDate time) {
        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        return df.format(time);
    }
    /**
     * localdatetime转为字符串
     *
     * @param time localdatetime
     * @return 字符串
     */
    public static String localDateTimeToStringHHmm(LocalDateTime time) {
        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
        return df.format(time);
    }
    /**
     * 获取月初和月末日期
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
@@ -351,21 +351,24 @@
     * @return
     */
    public Map<String, String> getDistance(String origins, String destination, Integer type){
        String[] split = origins.split(",");
        String[] split1 = destination.split(",");
        origins = split[1] + "," + split[0];
        destination = split1[1] + "," + split1[0];
        String url = "https://api.map.baidu.com/directionlite/v1/driving?origin="+origins+"&destination="+destination+"&ak="+key;
        String forObject = restTemplate.getForObject(url, String.class);
        JSONObject jsonObject = JSON.parseObject(forObject);
        System.err.println("获取距离"+jsonObject);
        String status = jsonObject.getString("status");
//        gdInterfaceService.saveData("https://restapi.amap.com/v3/distance", "查询两点间的距离");
        if(status.equals("0")){
            JSONObject result = jsonObject.getJSONObject("result");
            JSONArray results = result.getJSONArray("routes");
            System.err.println("路线数组"+results);
            JSONObject jsonObject1 = results.getJSONObject(0);
            Map<String, String> map = new HashMap<>();
            map.put("distance", jsonObject1.getString("distance"));//距离(米)
            map.put("duration", jsonObject1.getString("duration"));//预计时间(秒)
            System.err.println("返回map");
            return map;
        }else{
            System.err.println(forObject);
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java
@@ -527,6 +527,7 @@
        Map<String, String> map1 = null;
        String body1 = httpClientUtil.pushHttpRequsetXml(url, xmlString.toString(), new HashMap<>());
        System.err.println("退款返回信息========"+body1);
        //将结果xml解析成map
        body1 = body1.replaceAll("<!\\[CDATA\\[","");
        body1 = body1.replaceAll("]]>", "");
@@ -537,6 +538,7 @@
        } catch (DocumentException e) {
            e.printStackTrace();
        }
        System.err.println("跨城推送取消====="+map1);
        String return_code = map1.get("return_code");
        Map<String, String> map2 = new HashMap<>();
        if("SUCCESS".equals(return_code)){
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -1,6 +1,7 @@
package com.stylefeng.guns.modular.system.util;
import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
import com.stylefeng.guns.modular.system.service.IUserCouponRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
@@ -15,6 +16,8 @@
    @Autowired
    private IUserCouponRecordService userCouponRecordService;
    @Autowired
    private IOrderCrossCityService orderCrossCityService;
@@ -26,6 +29,8 @@
        try {
            //修改过期的优惠券
            userCouponRecordService.updateTimeOut();
            // 自动取消未支付订单
            orderCrossCityService.autoCancelOrder();
        } catch (Exception e) {
            e.printStackTrace();
        }