xuhy
2025-08-20 21b672143b34eb7e7014f3ff6beded581609f086
UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -287,7 +287,6 @@
        orderPrivateCar.setTravelTime(travelTime);
        orderPrivateCar.setOrderType(reservation);
        orderPrivateCar.setOrderSource(orderSource);
        orderPrivateCar.setEstimatedPrice(estimatedPrice);
        if(orderSource == 2){//扫码下单
            Driver driver = driverService.selectById(driverId);
            if(null == driver){
@@ -324,13 +323,21 @@
            driver.setState(3);
            driverService.updateById(driver);
        }
        // 查询城市的订单额度
        OpenCity openCity = openCityService.selectOne(new EntityWrapper<OpenCity>()
                .eq("code", cityCode)
                .ne("flag", 3)
                .orderBy("orderMagnitude", false)
                .last("LIMIT 1"));
        if(Objects.isNull(openCity)){
            String city = cityCode.substring(0, 4) + "00";
            openCity = openCityService.selectOne(new EntityWrapper<OpenCity>()
                    .eq("code", city)
                    .ne("flag", 3)
                    .orderBy("orderMagnitude", false)
                    .last("LIMIT 1"));
        }
        // 查询预估价格
        ResultUtil<List<ServerCarModelWarpper>> listResultUtil = serverCarModelService.queryServerCarModel(startLon + "," + startLat, endLon + "," + endLat, 1);
        List<ServerCarModelWarpper> data = listResultUtil.getData();
@@ -341,8 +348,10 @@
            orderPrivateCar.setState(7);
            if(orderSource == 2){
                orderPrivateCar.setOrderMoney(data.get(0).getAmount());
                orderPrivateCar.setEstimatedPrice(data.get(0).getAmount());
            }else {
                orderPrivateCar.setOrderMoney(data.get(carIndex).getAmount());
                orderPrivateCar.setEstimatedPrice(data.get(carIndex).getAmount());
            }
            orderPrivateCar.setPayMethod(0);
            this.insert(orderPrivateCar);
@@ -353,6 +362,11 @@
            baseWarpper.setAmount(orderPrivateCar.getOrderMoney());
            return ResultUtil.success(baseWarpper);
        }else {
            if(orderSource == 2){
                orderPrivateCar.setEstimatedPrice(data.get(0).getAmount());
            }else {
                orderPrivateCar.setEstimatedPrice(data.get(carIndex).getAmount());
            }
            orderPrivateCar.setIsReassign(1);
            orderPrivateCar.setIsDelete(1);
            orderPrivateCar.setPayMethod(1);
@@ -1158,7 +1172,11 @@
                    for(int i = 1; i <= querys.size(); i++){
                        PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0);
                        //获取空闲司机
//                        List<Driver> list = driverService.queryIdleDriver(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
                        List<Driver> list = driverService.queryIdleDriver(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
                        List<Driver> list1 = driverService.queryIdleDriver_(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), 2.0D, null);//所有附近空闲司机
                        list.addAll(list1);
                        list = list.stream().distinct().collect(Collectors.toList());
                        if(list.size() > 0){
                            // 查询预约单
                            List<Integer> driverIds = list.stream().map(Driver::getId).collect(Collectors.toList());
@@ -1326,36 +1344,36 @@
                return ResultUtil.error("订单不在待支付状态,不允许支付", "");
            }
            PaymentRecord query3 = paymentRecordService.query(1, null, null, orderId, 1, null, 1);
            if(null != query3){
                ResultUtil<Map<String, Object>> resultUtil1 = payMoneyUtil.queryWXOrder("", query3.getSerialNumber(), "JSAPI");
                if (resultUtil1.getCode() == 200) {
                    /**
                     * SUCCESS--支付成功
                     * REFUND--转入退款
                     * NOTPAY--未支付
                     * CLOSED--已关闭
                     * REVOKED--已撤销(刷卡支付)
                     * USERPAYING--用户支付中
                     * PAYERROR--支付失败(其他原因,如银行返回失败)
                     * ACCEPT--已接收,等待扣款
                     */
                    String result_code = resultUtil1.getData().get("result_code").toString();
                    if("SUCCESS".equals(result_code)){
                        String s = resultUtil1.getData().get("trade_state").toString();
                        if ("REFUND".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s)) {
                            payMoneyUtil.closeWXOrder(query3.getSerialNumber());
                            paymentRecordService.deleteById(query3.getId());
                        }
                        if ("SUCCESS".equals(s) || "ACCEPT".equals(s)) {
                            return ResultUtil.error("不允许重复支付");
                        }
                        if ("NOTPAY".equals(s) || "USERPAYING".equals(s)) {
                            payMoneyUtil.closeWXOrder(query3.getSerialNumber());
                            paymentRecordService.deleteById(query3.getId());
                        }
                    }
                }
            }
//            if(null != query3){
//                ResultUtil<Map<String, Object>> resultUtil1 = payMoneyUtil.queryWXOrder("", query3.getSerialNumber(), "JSAPI");
//                if (resultUtil1.getCode() == 200) {
//                    /**
//                     * SUCCESS--支付成功
//                     * REFUND--转入退款
//                     * NOTPAY--未支付
//                     * CLOSED--已关闭
//                     * REVOKED--已撤销(刷卡支付)
//                     * USERPAYING--用户支付中
//                     * PAYERROR--支付失败(其他原因,如银行返回失败)
//                     * ACCEPT--已接收,等待扣款
//                     */
//                    String result_code = resultUtil1.getData().get("result_code").toString();
//                    if("SUCCESS".equals(result_code)){
//                        String s = resultUtil1.getData().get("trade_state").toString();
//                        if ("REFUND".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s)) {
//                            payMoneyUtil.closeWXOrder(query3.getSerialNumber());
//                            paymentRecordService.deleteById(query3.getId());
//                        }
//                        if ("SUCCESS".equals(s) || "ACCEPT".equals(s)) {
//                            return ResultUtil.error("不允许重复支付");
//                        }
//                        if ("NOTPAY".equals(s) || "USERPAYING".equals(s)) {
//                            payMoneyUtil.closeWXOrder(query3.getSerialNumber());
//                            paymentRecordService.deleteById(query3.getId());
//                        }
//                    }
//                }
//            }
    
    
    
@@ -1503,13 +1521,14 @@
                userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                SysIntegral query1 = sysIntegralMapper.query(orderPrivateCar.getCompanyId());
                userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分
//                SysIntegral query1 = sysIntegralMapper.query(orderPrivateCar.getCompanyId());
//                if(Objects.nonNull(query1)){
//                    userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分
//                }
                //添加交易明细
                transactionDetailsService.saveData(uid, "完成订单", orderMoney, 2, 1, 1, 1, orderId);
                userInfoService.updateById(userInfo);
//                orderPrivateCar.setState(8);
                orderPrivateCar.setPayType(3);
//                orderPrivateCar.setPayMoney(orderMoney);
@@ -1532,6 +1551,12 @@
                    if(Objects.nonNull(orderPrivateCar.getPaymentAdvanceMoney()) && orderPrivateCar.getPaymentAdvanceMoney() > 0){
                        orderPrivateCar.setPayMoney(new BigDecimal(orderMoney).add(new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney())).doubleValue());
                        orderPrivateCar.setOrderMoney(orderPrivateCar.getPayMoney());
                        SysIntegral query1 = sysIntegralMapper.query(orderPrivateCar.getCompanyId());
                        if(Objects.nonNull(query1)){
                            userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分
                        }
                        userInfoService.updateById(userInfo);
                        //添加已收入明细
                        Company company = companyService.selectById(orderPrivateCar.getCompanyId());
                        Double speMoney = company.getSpeMoney();
@@ -1999,19 +2024,23 @@
        }
        if(Integer.valueOf(String.valueOf(map.get("state"))) == 7){
            OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(orderId);
            UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(Integer.valueOf(String.valueOf(map.get("companyId"))));
            if(null != query2){
                Integer orderNum=this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("userId",orderPrivateCar.getUserId()).eq("activityId",query2.getId()).last(" and to_days(getoffTime) = to_days(now())"));
                if(query2.getDistance()*1000>orderPrivateCar.getMileage() && query2.getOrderNum()>orderNum){
                    Double special = query2.getSpecial();
                    orderPrivateCar.setDiscount(special);
                    Double orderMoney = orderPrivateCar.getOrderMoney();
                    double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
                    if(orderMoney.compareTo(v) > 0){
                        map.put("discountMoney",orderMoney - v);
            Object companyId = map.get("companyId");
            if(Objects.nonNull(companyId)){
                UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(Integer.valueOf(String.valueOf(map.get("companyId"))));
                if(null != query2){
                    Integer orderNum=this.selectCount(new EntityWrapper<OrderPrivateCar>().eq("userId",orderPrivateCar.getUserId()).eq("activityId",query2.getId()).last(" and to_days(getoffTime) = to_days(now())"));
                    if(query2.getDistance()*1000>orderPrivateCar.getMileage() && query2.getOrderNum()>orderNum){
                        Double special = query2.getSpecial();
                        orderPrivateCar.setDiscount(special);
                        Double orderMoney = orderPrivateCar.getOrderMoney();
                        double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
                        if(orderMoney.compareTo(v) > 0){
                            map.put("discountMoney",orderMoney - v);
                        }
                    }
                }
            }else{
                map.put("discountMoney",0);
            }
        }
@@ -2102,6 +2131,16 @@
            List<OrderPosition> list = JSONArray.parseArray(sb.toString(), OrderPosition.class);
            orderServerWarpper.setOrderPositionList(JSONObject.toJSONString(list));
        }
        // 查询司机服务中的订单
        OrderPrivateCar one = this.selectOne(new EntityWrapper<OrderPrivateCar>()
                .eq("driverId", orderPrivateCar.getDriverId())
                .eq("state", 5)
                .orderBy("insertTime", false)
                .last("LIMIT 1"));
        if(Objects.nonNull(one)){
            orderServerWarpper.setLastLon(one.getEndLon()+"");
            orderServerWarpper.setLastLat(one.getEndLat()+"");
        }
        return orderServerWarpper;
    }