xuhy
2025-08-12 21599e9ff5b454f7cefd14512cff1ab5f7203950
UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -324,13 +324,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();
@@ -1326,36 +1334,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 +1511,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 +1541,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 +2014,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);
            }
        }