xuhy
22 小时以前 cb7bb59905f6ff335ca24ec6a963d0b17d979d79
UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -35,6 +35,7 @@
import org.springframework.util.CollectionUtils;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.util.StringUtils;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
@@ -171,7 +172,8 @@
    private IServerCarModelService serverCarModelService;
    @Autowired
    private IAppOpenInfoService appOpenInfoService;
    @Resource
    private UserInfoMapper userInfoMapper;
    @Value("${filePath}")
    private String filePath;
@@ -286,24 +288,24 @@
        orderPrivateCar.setTravelTime(travelTime);
        orderPrivateCar.setOrderType(reservation);
        orderPrivateCar.setOrderSource(orderSource);
        Driver driver2 = driverService.selectById(driverId);
        if(orderSource == 2){//扫码下单
            Driver driver = driverService.selectById(driverId);
            if(null == driver){
            if(null == driver2){
                return ResultUtil.error("司机信息有误,无法完成下单");
            }
            if(driver.getAuthState() == 1){
            if(driver2.getAuthState() == 1){
                return ResultUtil.error("司机信息还未完成审核,无法完成下单");
            }
            if(driver.getAuthState() == 3){
            if(driver2.getAuthState() == 3){
                return ResultUtil.error("司机账户已被冻结,无法提供服务");
            }
            if(driver.getAuthState() == 4){
            if(driver2.getAuthState() == 4){
                return ResultUtil.error("司机信息未通过审核,无法提供服务");
            }
            if(driver.getState() == 1){
            if(driver2.getState() == 1){
                return ResultUtil.error("司机还未上线,无法提供服务");
            }
            if(driver.getState() == 3){
            if(driver2.getState() == 3){
                return ResultUtil.error("司机正在服务中,无法提供服务");
            }
            List<DriverService> query = driverServiceService.query(driverId, 1);
@@ -312,15 +314,15 @@
            }
            orderPrivateCar.setDriverId(driverId);
            orderPrivateCar.setCompanyId(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : (
                    driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1));
            orderPrivateCar.setCompanyId(driver2.getFranchiseeId() != null && driver2.getFranchiseeId() != 0 ? driver2.getFranchiseeId() : (
                    driver2.getCompanyId() != null && driver2.getCompanyId() != 0 ? driver2.getCompanyId() : 1));
            orderPrivateCar.setState(2);
            orderPrivateCar.setCarId(driver.getCarId());
            CarService query1 = carServiceMapper.query(1, driver.getCarId());
            orderPrivateCar.setCarId(driver2.getCarId());
            CarService query1 = carServiceMapper.query(1, driver2.getCarId());
            orderPrivateCar.setServerCarModelId(query1.getServerCarModelId());
            orderPrivateCar.setSnatchOrderTime(new Date());
            driver.setState(3);
            driverService.updateById(driver);
            driver2.setState(3);
            driverService.updateById(driver2);
        }
        // 查询城市的订单额度
        OpenCity openCity = openCityService.selectOne(new EntityWrapper<OpenCity>()
@@ -340,7 +342,17 @@
        // 查询预估价格
        ResultUtil<List<ServerCarModelWarpper>> listResultUtil = serverCarModelService.queryServerCarModel(startLon + "," + startLat, endLon + "," + endLat, 1);
        List<ServerCarModelWarpper> data = listResultUtil.getData();
        data = data.stream().filter(e -> serverCarModelId.equals(e.getId())).sorted(Comparator.comparing(ServerCarModelWarpper::getAmount)).collect(Collectors.toList());
        if(Objects.isNull(serverCarModelId)){
            //获取经营业务
            CarService query = new CarService();
            query.setCarId(driver2.getCarId());
            CarService service = carServiceMapper.selectOne(query);
            if(Objects.nonNull(service)){
                serverCarModelId = service.getServerCarModelId();
            }
        }
        Integer finalServerCarModelId = serverCarModelId;
        data = data.stream().filter(e -> finalServerCarModelId.equals(e.getId())).sorted(Comparator.comparing(ServerCarModelWarpper::getAmount)).collect(Collectors.toList());
        if(Objects.nonNull(openCity) && !CollectionUtils.isEmpty(data) && BigDecimal.valueOf(data.get(0).getAmount()).compareTo(openCity.getOrderMagnitude()) > 0){
            orderPrivateCar.setIsReassign(1);
            orderPrivateCar.setIsDelete(1);
@@ -362,7 +374,9 @@
            return ResultUtil.success(baseWarpper);
        }else {
            if(orderSource == 2){
                orderPrivateCar.setEstimatedPrice(data.get(0).getAmount());
                if(!CollectionUtils.isEmpty(data)){
                    orderPrivateCar.setEstimatedPrice(data.get(0).getAmount());
                }
            }else {
                orderPrivateCar.setEstimatedPrice(data.get(carIndex).getAmount());
            }
@@ -929,6 +943,26 @@
                integer = orderCancelService.saveData(id, 1, "无司机接单", "无司机接单", null, null, 2, 1, uid);
                orderPrivateCar.setState(10);
                this.updateById(orderPrivateCar);
                if (orderPrivateCar.getPayMethod() == 0 && (Objects.nonNull(orderPrivateCar.getPaymentAdvanceMoney()) && orderPrivateCar.getPaymentAdvanceMoney()>0)) {
                    // 退款
                    if (orderPrivateCar.getPayType() == 1 && orderPrivateCar.getOrderMoney() != 0) {//微信退款
                        // 微信退款
                        payMoneyUtil.wxRefund(orderPrivateCar.getTransactionId(), orderPrivateCar.getOrderNum(), String.valueOf(orderPrivateCar.getPaymentAdvanceMoney()), String.valueOf(new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney())), "/base/transferWXNotify");
//                        orderPrivateCar.setPayMoney(new BigDecimal(orderPrivateCar.getOrderMoney()).doubleValue());
                    }
                    if (orderPrivateCar.getPayType() == 2 && orderPrivateCar.getOrderMoney() != 0) {//支付宝退款
                        // 支付宝退款
                        payMoneyUtil.aliRefund(orderPrivateCar.getTransactionId(), String.valueOf(new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney()).multiply(new BigDecimal(100))));
//                        orderPrivateCar.setPayMoney(new BigDecimal(orderPrivateCar.getOrderMoney()).doubleValue());
                    }
                    if (orderPrivateCar.getPayType() == 3 && orderPrivateCar.getOrderMoney() != 0) {//余额支付
                        BigDecimal refundMoney = new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney());
                        // 余额退款
                        UserInfo userInfo = userInfoMapper.selectById(orderPrivateCar.getUserId());
                        userInfo.setBalance(new BigDecimal(userInfo.getBalance()).add(refundMoney).doubleValue());
                        userInfoMapper.updateById(userInfo);
                    }
                }
            }
        }else {
            CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, orderPrivateCar.getCompanyId());
@@ -942,6 +976,26 @@
                    orderPrivateCar.setState(10);
                    this.updateById(orderPrivateCar);
                    if (orderPrivateCar.getPayMethod() == 0 && (Objects.nonNull(orderPrivateCar.getPaymentAdvanceMoney()) && orderPrivateCar.getPaymentAdvanceMoney()>0)) {
                        // 退款
                        if (orderPrivateCar.getPayType() == 1 && orderPrivateCar.getOrderMoney() != 0) {//微信退款
                            // 微信退款
                            payMoneyUtil.wxRefund(orderPrivateCar.getTransactionId(), orderPrivateCar.getOrderNum(), String.valueOf(orderPrivateCar.getPaymentAdvanceMoney()), String.valueOf(new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney())), "/base/transferWXNotify");
//                            orderPrivateCar.setPayMoney(new BigDecimal(orderPrivateCar.getOrderMoney()).doubleValue());
                        }
                        if (orderPrivateCar.getPayType() == 2 && orderPrivateCar.getOrderMoney() != 0) {//支付宝退款
                            // 支付宝退款
                            payMoneyUtil.aliRefund(orderPrivateCar.getTransactionId(), String.valueOf(new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney()).multiply(new BigDecimal(100))));
//                            orderPrivateCar.setPayMoney(new BigDecimal(orderPrivateCar.getOrderMoney()).doubleValue());
                        }
                        if (orderPrivateCar.getPayType() == 3 && orderPrivateCar.getOrderMoney() != 0) {//余额支付
                            BigDecimal refundMoney = new BigDecimal(orderPrivateCar.getPaymentAdvanceMoney());
                            // 余额退款
                            UserInfo userInfo = userInfoMapper.selectById(orderPrivateCar.getUserId());
                            userInfo.setBalance(new BigDecimal(userInfo.getBalance()).add(refundMoney).doubleValue());
                            userInfoMapper.updateById(userInfo);
                        }
                    }
                }
                this.deleteTask(id);//删除定时任务
@@ -1883,13 +1937,15 @@
                transactionDetailsService.saveData(orderPrivateCar.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, 1, query.getOrderId());
//                orderPrivateCar.setState(8);
                orderPrivateCar.setPayType(type);
                orderPrivateCar.setTransactionId(order_id);
                if(!StringUtils.hasLength(orderPrivateCar.getTransactionId())){
                    orderPrivateCar.setTransactionId(order_id);
                }
                this.updateById(orderPrivateCar);
        
                UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
                SysIntegral query1 = sysIntegralMapper.query(orderPrivateCar.getCompanyId());
                userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
                userInfoService.updateById(userInfo);
//                UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
//                SysIntegral query1 = sysIntegralMapper.query(orderPrivateCar.getCompanyId());
//                userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
//                userInfoService.updateById(userInfo);
        
                //处理优惠券和红包
                if(null != orderPrivateCar.getCouponId()){