Pu Zhibing
2025-04-21 efd9ac5b88dfdb3c4d2e4bcc5e7a5258aa55542c
DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.stylefeng.guns.core.common.constant.state.Order;
import com.stylefeng.guns.core.util.DateUtil;
@@ -30,6 +31,8 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
/**
@@ -58,9 +61,6 @@
    @Autowired
    private TaskUtil taskUtil;
    @Autowired
    private ChinaMobileUtil chinaMobileUtil;
    @Autowired
    private RedisUtil redisUtil;
@@ -722,11 +722,11 @@
     */
    @Override
    public void reservationOrder() throws Exception {
        //快车
        List<OrderTaxi> list = orderTaxiService.queryMaturity();//获取所有快到期的预约单(出行时间在10分钟内)
        List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("orderType", 2).eq("state", 2)
                .eq("isDelete", 1).eq("isFrozen", 1).last(" and DATE_SUB(travelTime, INTERVAL 30 MINUTE) <= now()"));
        List<Driver> drivers = new ArrayList<>();
        Set<Integer> ids = new HashSet<>();
        for(OrderTaxi orderTaxi : list){
        for(OrderPrivateCar orderTaxi : orderPrivateCars){
            Driver driver = driverService.selectById(orderTaxi.getDriverId());
            if(driver.getState() == 2 && !ids.contains(driver.getId())){
                driver.setState(3);//修改司机为服务中
@@ -749,10 +749,10 @@
    public void taskMidAxbUnBindSend() throws Exception {
        List<OrderTaxi> list = orderTaxiService.taskMidAxbUnBindSend();
        for(OrderTaxi orderTaxi : list){
            Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX());
            if(!String.valueOf(map.get("code")).equals("200")){
                System.err.println(String.valueOf(map.get("msg")));
            }
//            Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX());
//            if(!String.valueOf(map.get("code")).equals("200")){
//                System.err.println(String.valueOf(map.get("msg")));
//            }
            orderTaxi.setTelX("");
            orderTaxi.setBindId("");
        }
@@ -762,10 +762,10 @@
        List<OrderPrivateCar> list1 = orderPrivateCarService.taskMidAxbUnBindSend();
        for(OrderPrivateCar orderPrivateCar : list1){
            Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX());
            if(!String.valueOf(map.get("code")).equals("200")){
                System.err.println(String.valueOf(map.get("msg")));
            }
//            Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX());
//            if(!String.valueOf(map.get("code")).equals("200")){
//                System.err.println(String.valueOf(map.get("msg")));
//            }
            orderPrivateCar.setTelX("");
            orderPrivateCar.setBindId("");
        }
@@ -787,57 +787,57 @@
            case 1:
                OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
                if(ToolUtil.isNotEmpty(orderPrivateCar.getBindId())){
                    Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX());
                    if(!String.valueOf(map1.get("code")).equals("200")){
                        System.err.println(String.valueOf(map1.get("msg")));
                    }
//                    Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX());
//                    if(!String.valueOf(map1.get("code")).equals("200")){
//                        System.err.println(String.valueOf(map1.get("msg")));
//                    }
                    //调用移动的小号接口
                    Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
                    Region region = regionMapper.query(geocode.get("districtCode"));
                    Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
                    Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderPrivateCar.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
                    if(String.valueOf(map.get("code")).equals("200")){
                        orderPrivateCar.setTelX(map.get("telX"));
                        orderPrivateCar.setBindId(map.get("bindId"));
                    }
//                    Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderPrivateCar.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
//                    if(String.valueOf(map.get("code")).equals("200")){
//                        orderPrivateCar.setTelX(map.get("telX"));
//                        orderPrivateCar.setBindId(map.get("bindId"));
//                    }
                    orderPrivateCarService.updateById(orderPrivateCar);
                }
                break;
            case 2:
                OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
                if(ToolUtil.isNotEmpty(orderTaxi.getBindId())){
                    Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX());
                    if(!String.valueOf(map1.get("code")).equals("200")){
                        System.err.println(String.valueOf(map1.get("msg")));
                    }
//                    Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(),orderTaxi.getTelX());
//                    if(!String.valueOf(map1.get("code")).equals("200")){
//                        System.err.println(String.valueOf(map1.get("msg")));
//                    }
                    //调用移动的小号接口
                    Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
                    Region region = regionMapper.query(geocode.get("districtCode"));
                    Driver driver = driverService.selectById(orderTaxi.getDriverId());
                    Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
                    if(String.valueOf(map.get("code")).equals("200")){
                        orderTaxi.setTelX(map.get("telX"));
                        orderTaxi.setBindId(map.get("bindId"));
                    }
//                    Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
//                    if(String.valueOf(map.get("code")).equals("200")){
//                        orderTaxi.setTelX(map.get("telX"));
//                        orderTaxi.setBindId(map.get("bindId"));
//                    }
                    orderTaxiService.updateById(orderTaxi);
                }
                break;
            case 3:
                OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
                if(ToolUtil.isNotEmpty(orderCrossCity.getBindId())){
                    Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX());
                    if(!String.valueOf(map1.get("code")).equals("200")){
                        System.err.println(String.valueOf(map1.get("msg")));
                    }
//                    Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX());
//                    if(!String.valueOf(map1.get("code")).equals("200")){
//                        System.err.println(String.valueOf(map1.get("msg")));
//                    }
                    //调用移动的小号接口
                    Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
                    Region region = regionMapper.query(geocode.get("districtCode"));
                    Driver driver = driverService.selectById(orderCrossCity.getDriverId());
                    Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
                    if(String.valueOf(map.get("code")).equals("200")){
                        orderCrossCity.setTelX(map.get("telX"));
                        orderCrossCity.setBindId(map.get("bindId"));
                    }
//                    Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
//                    if(String.valueOf(map.get("code")).equals("200")){
//                        orderCrossCity.setTelX(map.get("telX"));
//                        orderCrossCity.setBindId(map.get("bindId"));
//                    }
                    orderCrossCityService.updateById(orderCrossCity);
                }
                break;
@@ -1012,11 +1012,20 @@
        return null;
    }
    @Override
    public void getTrackId(Integer orderId, Integer orderType, Integer trackId) {
        switch (orderType){
            case 1:
                orderPrivateCarService.getTrackId(orderId,trackId);
                break;
            case 2:
                break;
        }
    }
    @Autowired
    private ISystemNoticeService systemNoticeService;
    @Autowired
    private ALiSendSms aLiSendSms;
    /**
     * 短信催收
@@ -1035,7 +1044,18 @@
                    order.setSmsTime(day);
                    //发送短信
                    if(order.getPassengersPhone()!=null){
                        String sData = aLiSendSms.sendSms1(order.getPassengersPhone(), "SMS_215342869", "{\"time\":\"" + DateUtil.format(order.getGetoffTime(),"yyyy-MM-dd HH:mm:ss") + "\",\"money\":\"" + order.getOrderMoney() + "\"}");
                        //发送记录集合
                        JSONArray records = new JSONArray();
                        JSONObject record = new JSONObject();
                        //手机号
                        record.put("mobile", order.getPassengersPhone());
                        //替换变量
                        JSONObject param = new JSONObject();
                        param.put("date", DateUtil.format(order.getGetoffTime(),"yyyy-MM-dd HH:mm:ss"));
                        param.put("amount", order.getOrderMoney());
                        record.put("tpContent", param);
                        records.add(record);
                        SMSUtil.sendSmsTp(103448L, records);
                    }
                    //添加消息记录
                    systemNoticeService.addSystemNotice(1, "有一笔订单未付款,请前往支付!", order.getUserId());
@@ -1046,7 +1066,18 @@
                    order.setSmsTime(day);
                    //发送短信
                    if(order.getPassengersPhone()!=null){
                        String sData = aLiSendSms.sendSms1(order.getPassengersPhone(), "SMS_215342869", "{\"time\":\"" + DateUtil.format(order.getGetoffTime(),"yyyy-MM-dd HH:mm:ss") + "\",\"money\":\"" + order.getOrderMoney() + "\"}");
                        //发送记录集合
                        JSONArray records = new JSONArray();
                        JSONObject record = new JSONObject();
                        //手机号
                        record.put("mobile", order.getPassengersPhone());
                        //替换变量
                        JSONObject param = new JSONObject();
                        param.put("date", DateUtil.format(order.getGetoffTime(),"yyyy-MM-dd HH:mm:ss"));
                        param.put("amount", order.getOrderMoney());
                        record.put("tpContent", param);
                        records.add(record);
                        SMSUtil.sendSmsTp(103448L, records);
                    }
                    //添加消息记录
@@ -1054,7 +1085,9 @@
                }
            }
        }
        orderPrivateCarService.updateBatchById(orderList);
        if(orderList.size() > 0){
            orderPrivateCarService.updateBatchById(orderList);
        }
    }
}