Pu Zhibing
2025-08-05 b85d1d0b0a33190fc820adf4af45f98499b274cf
提交推送服务
2个文件已修改
85 ■■■■ 已修改文件
MessagePushTravel/src/main/java/com/sinata/push/util/applets/WebSocketHandler.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MessagePushTravel/src/main/java/com/sinata/push/util/applets/WebSocketHandler.java
@@ -27,7 +27,7 @@
    private static final String WEB_SOCKET_URL = "ws://localhost:8888/websocket";
    
    private NettyWebSocketController nettyWebSocketController = SpringUtil.getObject(NettyWebSocketController.class);
//    private NettyWebSocketController nettyWebSocketController = SpringUtil.getObject(NettyWebSocketController.class);
@@ -123,18 +123,21 @@
        //给连接的客户端返回数据
        //返回心跳
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("code", 200);
        jsonObject.put("method", Method.ok);
        jsonObject.put("msg", "SUCCESS");
        jsonObject.put("data", new JSONObject());
        TextWebSocketFrame tws = new TextWebSocketFrame(jsonObject.toJSONString());
//        JSONObject jsonObject = new JSONObject();
//        jsonObject.put("code", 200);
//        jsonObject.put("method", Method.ok);
//        jsonObject.put("msg", "SUCCESS");
//        jsonObject.put("data", new JSONObject());
//        TextWebSocketFrame tws = new TextWebSocketFrame(jsonObject.toJSONString());
//        ctx.channel().writeAndFlush(tws);
        String s = NettyMsg.setMsg(Method.ok, new HashMap<String, Object>());
        ctx.writeAndFlush(Unpooled.copiedBuffer((s).getBytes()));
    
        nettyWebSocketController.JudgeOperation(ctx,requestmsg);//小程序心跳处理
//        nettyWebSocketController.JudgeOperation(ctx,requestmsg);//小程序心跳处理
        // 群发服务端心跳响应
        Global.group.writeAndFlush(new TextWebSocketFrame((tws).text()));
//        Global.group.writeAndFlush(new TextWebSocketFrame((tws).text()));
    }
    private void sendHttpResponse(ChannelHandlerContext ctx, FullHttpRequest req, FullHttpResponse res) {
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -2816,45 +2816,39 @@
                        int finalI = i;
                        PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null);
                        System.out.println("pushOrder:" + pushOrder);
                        int i2 = pushOrder.getPushTime() / 10;
                        if (i2 == 0) {
                            i2 = 1;
                        if (orderPrivateCar.getState() > 1) {
                            break;
                        }
                        for (int i1 = 0; i1 < i2; i1++) {
                            if (orderPrivateCar.getState() > 1) {
                                break;
                            }
                            //获取空闲司机
                            List<Driver> list = driverService.queryIdleDriver(orderType, serverCarModelId, startLon, startLat, pushOrder.getPushDistance(), null);//所有附近空闲司机
                            if (list.size() > 0) {
                                double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
                                int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
                                lastIndex = lastIndex == 0 ? list.size() : lastIndex;
                                list = list.subList(0, lastIndex);//获取空闲司机中占比数据
                                for (Driver driver : list) {//开始进行推送
                                    boolean bo = false;
                                    for (Integer integer : integers) {
                                        if (integer.compareTo(driver.getId()) == 0) {
                                            bo = true;
                                            break;
                                        }
                        //获取空闲司机
                        List<Driver> list = driverService.queryIdleDriver(orderType, serverCarModelId, startLon, startLat, pushOrder.getPushDistance(), null);//所有附近空闲司机
                        if (list.size() > 0) {
                            double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
                            int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
                            lastIndex = lastIndex == 0 ? list.size() : lastIndex;
                            list = list.subList(0, lastIndex);//获取空闲司机中占比数据
                            for (Driver driver : list) {//开始进行推送
                                boolean bo = false;
                                for (Integer integer : integers) {
                                    if (integer.compareTo(driver.getId()) == 0) {
                                        bo = true;
                                        break;
                                    }
                                    if (bo) {
                                        continue;
                                    }
                                    pushUtil.pushOrderState(2, driver.getId(), id, 1, 1, pushOrder.getPushTime());
                                }
                                if (bo) {
                                    continue;
                                }
                                pushUtil.pushOrderState(2, driver.getId(), id, 1, 1, pushOrder.getPushTime());
                            }
                            Thread.sleep(10000);//设置等待时间
                            Integer state = orderPrivateCarMapper.selectById(orderPrivateCar.getId()).getState();
                            if (state > 1) {
                                orderIds.remove(orderPrivateCar.getId());
                                break;
                            }
                            if (i == querys.size() + 5) {
                                pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
                                orderIds.remove(orderPrivateCar.getId());
                            }
                        }
                        Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
                        Integer state = orderPrivateCarMapper.selectById(orderPrivateCar.getId()).getState();
                        if (state > 1) {
                            orderIds.remove(orderPrivateCar.getId());
                            break;
                        }
                        if (i == querys.size() + 5) {
                            pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
                            orderIds.remove(orderPrivateCar.getId());
                        }
                    }
                } catch (Exception e) {