xuhy
2025-01-14 a50197bd1a429d903718e40b54685bb2a241bd4a
UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -240,6 +240,8 @@
        orderTaxi.setInsertTime(new Date());
        orderTaxi.setIsReassign(1);
        UserInfo userInfo = userInfoService.selectById(uid);
        orderTaxi.setPassengersPhone(userInfo.getPhone());
        orderTaxi.setPassengers(userInfo.getNickName());
        if (!StringUtils.hasLength(orderTaxi.getPassengers())  || StringUtils.hasLength(orderTaxi.getPassengersPhone()) ){
            // 如果没有填写乘车人电话或者姓名 那么用用户的
@@ -557,8 +559,26 @@
                }
                userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(query.getMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                Integer placeOrderWay = null;
                switch (orderTaxi.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(uid, "取消订单", query.getMoney(), 2, 1, 1, 2, id);
                transactionDetailsService.saveDataTaxi(uid, "取消订单", query.getMoney(), 2, 1, 1, 2, id,placeOrderWay);
                userInfoService.updateById(userInfo);
                //解除小号绑定
@@ -731,12 +751,15 @@
                appletsOpenId = userInfo.getAppletsOpenId();
            }
            Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",2", 9, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/wxPayOrderTaxi", "", type, appletsOpenId);
            if(map.get("code").equals("200")){
                paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, orderId, 2, 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 + "_2_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId());
            paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, orderId, 2, 1, orderMoney, "", 1);//添加预支付数据
//            if(map.get("code").equals("200")){
//                paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, orderId, 2, 1, orderMoney, map.get("order_id"), 1);//添加预支付数据
//                resultUtil = ResultUtil.success(map.get("data"));
//            }else{
//                resultUtil = ResultUtil.error(map.get("msg"), "");
//            }
        }
        if(payType == 2){//支付宝支付
            Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",2", 10, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/aliPayOrderTaxi", "", type, null);
@@ -756,9 +779,26 @@
            SysIntegral query1 = sysIntegralMapper.query(orderTaxi.getCompanyId());
            userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分
            Integer placeOrderWay = null;
            switch (orderTaxi.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(uid, "完成订单", orderMoney, 2, 1, 1, 2, orderId);
            transactionDetailsService.saveDataTaxi(uid, "完成订单", orderMoney, 2, 1, 1, 2, orderId,placeOrderWay);
            userInfoService.updateById(userInfo);
            orderTaxi.setState(8);
@@ -1168,8 +1208,26 @@
        OrderTaxi orderTaxi = this.selectById(id);
        PaymentRecord query = paymentRecordService.query(1, orderTaxi.getUserId(), 1, Integer.valueOf(id), 2, type, 1);
        if(null != query){
            Integer placeOrderWay = null;
            switch (orderTaxi.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(orderTaxi.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId());
            transactionDetailsService.saveDataTaxi(orderTaxi.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId(),placeOrderWay);
            orderTaxi.setState(8);
            orderTaxi.setPayType(type);
            orderTaxi.setPayMoney(query.getAmount());
@@ -1262,8 +1320,26 @@
        OrderTaxi orderTaxi = this.selectById(id);
        PaymentRecord query = paymentRecordService.query(1, orderTaxi.getUserId(), 1, Integer.valueOf(id), 2, type, 1);
        if(null != query){
            Integer placeOrderWay = null;
            switch (orderTaxi.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(orderTaxi.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId());
            transactionDetailsService.saveDataTaxi(orderTaxi.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId(),placeOrderWay);
            orderTaxi.setState(10);
            //解除小号绑定
            if(orderTaxi.getBindId() != null){
@@ -1314,20 +1390,15 @@
            @Override
            public void run() {
                try {
                    System.out.println("进入订单推送111111111111");
                    orderIds.add(orderTaxi.getId());//添加记录,防止调用接口重复提醒无人接单
                    String vehicle = redisUtil.getValue("VEHICLE");
                    List<Integer> integers = new ArrayList<>();
                    if(ToolUtil.isNotEmpty(vehicle)){
                        integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
                    }
                    System.out.println("进入订单推送22222222222222=========="+integers);
                    Company query = companyCityService.query(String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat()));//获取起点所属分公司
                    System.out.println("进入订单推送=========3==========="+query);
                    List<PushOrder> querys = pushOrderService.querys(null, 2, query.getId());//获取需要推送的次数
                    System.out.println("进入订单推送=========4==========="+querys);
                    for(int i = 1; i <= querys.size(); i++){
                        System.out.println("进入订单推送");
                        PushOrder pushOrder = pushOrderService.querys(i, 2, query.getId()).get(0);
                        System.out.println("进入订单推送");
                        //获取空闲司机
@@ -1336,11 +1407,8 @@
                        if(list.size() > 0){
                            System.out.println("进入司机推送");
                            double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
                            System.out.println("推送占比计算成小数======="+driverProportion);
                            int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
                            System.out.println("计算占比转成整数======="+lastIndex);
                            list = list.subList(0, lastIndex);//获取空闲司机中占比数据
                            System.out.println("获取空闲司机中占比数据======="+list);
                            for(Driver driver : list){//开始进行推送
                                System.out.println("开始进行推送======="+driver);
                                //查询是否在限制推单范围内
@@ -1354,7 +1422,6 @@
                                if(bo){
                                    continue;
                                }
                                System.out.println("推送订单前");
                                pushUtil.pushOrderState(2, driver.getId(), orderTaxi.getId(), 2, orderTaxi.getState(), pushOrder.getPushTime());
                                System.out.println("推送订单后");
                            }