| | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.stylefeng.guns.core.util.DateUtil; |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | import com.stylefeng.guns.modular.call.model.OrderCall; |
| | | import com.stylefeng.guns.modular.call.server.IOrderCallService; |
| | | import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; |
| | | import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; |
| | | import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; |
| | |
| | | import com.stylefeng.guns.modular.system.dao.PhoneMapper; |
| | | import com.stylefeng.guns.modular.system.dao.RegionMapper; |
| | | import com.stylefeng.guns.modular.system.dao.SysReformistMapper; |
| | | import com.stylefeng.guns.modular.system.model.AdditionalFee; |
| | | import com.stylefeng.guns.modular.system.model.Driver; |
| | | import com.stylefeng.guns.modular.system.model.OrderPosition; |
| | | import com.stylefeng.guns.modular.system.model.Region; |
| | | import com.stylefeng.guns.modular.system.service.IAdditionalFeeService; |
| | | import com.stylefeng.guns.modular.system.service.IDriverService; |
| | | import com.stylefeng.guns.modular.system.service.IOrderService; |
| | | import com.stylefeng.guns.modular.system.util.*; |
| | | import com.stylefeng.guns.modular.system.warpper.BaseWarpper; |
| | | import com.stylefeng.guns.modular.system.warpper.OrderListWarpper; |
| | | import com.stylefeng.guns.modular.taxi.model.OrderTaxi; |
| | | import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; |
| | |
| | | |
| | | @Autowired |
| | | private PushMinistryOfTransportUtil pushMinistryOfTransportUtil; |
| | | |
| | | @Autowired |
| | | private IOrderCallService orderCallService; |
| | | |
| | | @Autowired |
| | | private IAdditionalFeeService additionalFeeService; |
| | | |
| | | |
| | | |
| | |
| | | datas.addAll(list2); |
| | | //小件物流 |
| | | List<Map<String, Object>> list3 = orderLogisticsService.queryMyAllOrder(state, uid); |
| | | for (Map<String, Object> map : list3) { |
| | | if (ToolUtil.isNotEmpty(map.get("endServiceTime")) && ToolUtil.isNotEmpty(map.get("arriveTimeExpects"))){ |
| | | if (DateUtil.parseTime(map.get("endServiceTime").toString()).getTime() > DateUtil.parseTime(map.get("arriveTimeExpects").toString()).getTime()){ |
| | | map.put("timeOutState",1); |
| | | }else { |
| | | map.put("timeOutState",2); |
| | | } |
| | | }else { |
| | | map.put("timeOutState",2); |
| | | } |
| | | } |
| | | datas.addAll(list3); |
| | | |
| | | List<OrderListWarpper> orderListWarpper = OrderListWarpper.getOrderListWarpper(datas); |
| | |
| | | |
| | | /** |
| | | * 获取司机端我的订单列表 |
| | | * @param state 1=全部,2=待支付,3=已取消,4=已完成 |
| | | * @param pageNum |
| | | * @param size |
| | | * @param uid |
| | |
| | | map.put("startDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0); |
| | | |
| | | //总距离 |
| | | String end = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat")); |
| | | distance = gdMapElectricFenceUtil.getDistance(end, order, 1).get("distance"); |
| | | map.put("totalDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0); |
| | | if(null == map.get("endLon")){ |
| | | map.put("totalDistance", 0); |
| | | }else{ |
| | | String end = String.valueOf(map.get("endLon")) + "," + String.valueOf(map.get("endLat")); |
| | | distance = gdMapElectricFenceUtil.getDistance(end, order, 1).get("distance"); |
| | | map.put("totalDistance", ToolUtil.isNotEmpty(distance) ? Double.valueOf(distance) / 1000 : 0); |
| | | } |
| | | |
| | | Integer orderSource = Integer.valueOf(String.valueOf(map.get("orderSource"))); |
| | | if(orderSource == 1 || orderSource == 2 || orderSource == 3){ |
| | |
| | | if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ |
| | | map.put("type", "改派"); |
| | | } |
| | | } |
| | | if(orderSource == 6){ |
| | | map.put("type", "乘客下单"); |
| | | } |
| | | break; |
| | | case 2://出租 |
| | |
| | | Map<String, Object> map = null; |
| | | switch (orderType){ |
| | | case 1://专车 |
| | | map = orderPrivateCarService.queryOrderInfo2(orderId); |
| | | map = orderPrivateCarService.queryOrderInfo(orderId); |
| | | break; |
| | | case 2://出租 |
| | | map = orderTaxiService.queryOrderInfo(orderId); |
| | |
| | | break; |
| | | case 6: |
| | | break; |
| | | case 7: |
| | | map = orderPrivateCarService.queryOrderInfo(orderId); |
| | | break; |
| | | } |
| | | if(null != map.get("phone")){ |
| | | map.put("phone",AESUtil.decrypt((String) map.get("phone"))); |
| | | } |
| | | if(null != map.get("telX")){ |
| | | map.put("phone", map.get("telX")); |
| | |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public ResultUtil process(Integer orderId, Integer orderType, Integer state, Integer uid, Double lon, Double lat, String driverImg) throws Exception { |
| | | public ResultUtil process(Integer orderId, Integer orderType, Integer state, Integer uid, Double lon, Double lat) throws Exception { |
| | | Map<String, String> geocode = gdMapGeocodingUtil.geocode(String.valueOf(lon), String.valueOf(lat)); |
| | | String address = geocode.get("address"); |
| | | switch (orderType){ |
| | |
| | | case 3://城际 |
| | | return orderCrossCityService.process(orderId, state, lon, lat, address); |
| | | case 4://同城小件 |
| | | return orderLogisticsService.process(orderId, state, lon, lat, address, driverImg); |
| | | return orderLogisticsService.process(orderId, state, lon, lat, address); |
| | | case 5://跨城小件 |
| | | return orderLogisticsService.process(orderId, state, lon, lat, address, driverImg); |
| | | return orderLogisticsService.process(orderId, state, lon, lat, address); |
| | | case 6: |
| | | break; |
| | | } |
| | |
| | | } |
| | | return null; |
| | | } |
| | | @Override |
| | | public ResultUtil cancleOrder(Integer orderId, Integer orderType) throws Exception { |
| | | switch (orderType){ |
| | | case 1://专车 |
| | | return orderPrivateCarService.cancleOrder(orderId); |
| | | case 2://出租 |
| | | break; |
| | | case 3://城际(没有此流程) |
| | | break; |
| | | case 4:// |
| | | break; |
| | | case 5: |
| | | break; |
| | | case 6: |
| | | break; |
| | | } |
| | | return null; |
| | | } |
| | | @Override |
| | | public ResultUtil updatePeopleNum(Integer orderId, Integer peopleNum) throws Exception { |
| | | return orderPrivateCarService.updatePeopleNum(orderId,peopleNum); |
| | | } |
| | | @Override |
| | | public ResultUtil confirmFees1(Integer orderId, Integer orderType, Integer type, Double travelFee, String additionalFee) throws Exception { |
| | | switch (orderType){ |
| | | case 1://专车 |
| | | return orderPrivateCarService.confirmFees1(orderId, type, additionalFee); |
| | | case 2://出租 |
| | | return orderTaxiService.confirmFees1(orderId, type, travelFee, additionalFee); |
| | | case 3://城际(没有此流程) |
| | | break; |
| | | case 4:// |
| | | break; |
| | | case 5: |
| | | break; |
| | | case 6: |
| | | break; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 确认费用(车载端) |
| | |
| | | @Override |
| | | public Integer queryOrderNum(Integer driverId, Date start, Date end) throws Exception { |
| | | //出租车 |
| | | Integer[] state = new Integer[]{8, 9}; |
| | | int i = orderTaxiService.selectCount(new EntityWrapper<OrderTaxi>().eq("driverId", driverId).ne("payManner",2).between("insertTime", start, end).in("state", state)); |
| | | Integer[] state = new Integer[]{6, 7, 8, 9}; |
| | | int i = orderTaxiService.selectCount(new EntityWrapper<OrderTaxi>().eq("driverId", driverId).between("insertTime", start, end).in("state", state)); |
| | | return i; |
| | | } |
| | | |
| | |
| | | |
| | | Integer muoth = Long.valueOf((orderTaxi.getTravelTime().getTime() - System.currentTimeMillis()) / (1000 * 60)).intValue(); |
| | | //发送短信提醒 |
| | | aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderTaxi.getStartAddress() + "\",\"data1\":\"" + orderTaxi.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}"); |
| | | aLiSendSms.sendSms(driver.getPhone(), "SMS_207522070", "{\"data\":\"" + orderTaxi.getStartAddress() + "\",\"data1\":\"" + orderTaxi.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}"); |
| | | } |
| | | //专车 |
| | | List<OrderPrivateCar> list1 = orderPrivateCarService.queryMaturity(); |
| | |
| | | |
| | | Integer muoth = Long.valueOf((orderPrivateCar.getTravelTime().getTime() - System.currentTimeMillis()) / (1000 * 60)).intValue(); |
| | | //发送短信提醒 |
| | | aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderPrivateCar.getStartAddress() + "\",\"data1\":\"" + orderPrivateCar.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}"); |
| | | aLiSendSms.sendSms(driver.getPhone(), "SMS_207522070", "{\"data\":\"" + orderPrivateCar.getStartAddress() + "\",\"data1\":\"" + orderPrivateCar.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}"); |
| | | } |
| | | //跨城 |
| | | List<OrderCrossCity> orderCrossCities = orderCrossCityService.queryMaturity(); |
| | |
| | | |
| | | Integer muoth = Long.valueOf((orderCrossCity.getTravelTime().getTime() - System.currentTimeMillis()) / (1000 * 60)).intValue(); |
| | | //发送短信提醒 |
| | | aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderCrossCity.getStartAddress() + "\",\"data1\":\"" + orderCrossCity.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}"); |
| | | aLiSendSms.sendSms(driver.getPhone(), "SMS_207522070", "{\"data\":\"" + orderCrossCity.getStartAddress() + "\",\"data1\":\"" + orderCrossCity.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}"); |
| | | } |
| | | //小件物流 |
| | | List<OrderLogistics> orderLogistics = orderLogisticsService.queryMaturity(); |
| | |
| | | |
| | | Integer muoth = Long.valueOf((orderLogistics1.getTravelTime().getTime() - System.currentTimeMillis()) / (1000 * 60)).intValue(); |
| | | //发送短信提醒 |
| | | aLiSendSms.sendSms(driver.getPhone(), "SMS_229613325", "{\"data\":\"" + orderLogistics1.getStartAddress() + "\",\"data1\":\"" + orderLogistics1.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}"); |
| | | aLiSendSms.sendSms(driver.getPhone(), "SMS_207522070", "{\"data\":\"" + orderLogistics1.getStartAddress() + "\",\"data1\":\"" + orderLogistics1.getEndAddress() + "\",\"data2\":\"" + muoth + "\"}"); |
| | | } |
| | | if(drivers.size() > 0){ |
| | | driverService.updateBatchById(drivers);//批量修改状态为服务中 |
| | |
| | | public void taskMidAxbUnBindSend() throws Exception { |
| | | List<OrderTaxi> list = orderTaxiService.taskMidAxbUnBindSend(); |
| | | for(OrderTaxi orderTaxi : list){ |
| | | Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(), orderTaxi.getTelX(), (System.currentTimeMillis() + 600000)); |
| | | Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId()); |
| | | if(!String.valueOf(map.get("code")).equals("200")){ |
| | | System.err.println(String.valueOf(map.get("msg"))); |
| | | } |
| | |
| | | } |
| | | if(list.size() > 0){ |
| | | orderTaxiService.updateBatchById(list); |
| | | } |
| | | |
| | | List<OrderPrivateCar> list1 = orderPrivateCarService.taskMidAxbUnBindSend(); |
| | | for(OrderPrivateCar orderTaxi : list1){ |
| | | Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(), orderTaxi.getTelX(), (System.currentTimeMillis() + 600000)); |
| | | if(!String.valueOf(map.get("code")).equals("200")){ |
| | | System.err.println(String.valueOf(map.get("msg"))); |
| | | } |
| | | orderTaxi.setTelX(""); |
| | | orderTaxi.setBindId(""); |
| | | } |
| | | if(list1.size() > 0){ |
| | | orderPrivateCarService.updateBatchById(list1); |
| | | } |
| | | |
| | | List<OrderCrossCity> orderCrossCities = orderCrossCityService.taskMidAxbUnBindSend(); |
| | | for(OrderCrossCity orderTaxi : orderCrossCities){ |
| | | Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(), orderTaxi.getTelX(), (System.currentTimeMillis() + 600000)); |
| | | if(!String.valueOf(map.get("code")).equals("200")){ |
| | | System.err.println(String.valueOf(map.get("msg"))); |
| | | } |
| | | orderTaxi.setTelX(""); |
| | | orderTaxi.setBindId(""); |
| | | } |
| | | if(orderCrossCities.size() > 0){ |
| | | orderCrossCityService.updateBatchById(orderCrossCities); |
| | | } |
| | | |
| | | List<OrderLogistics> orderLogistics = orderLogisticsService.taskMidAxbUnBindSend(); |
| | | for(OrderLogistics orderTaxi : orderLogistics){ |
| | | Map<String, String> map = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(), orderTaxi.getTelX(), (System.currentTimeMillis() + 600000)); |
| | | if(!String.valueOf(map.get("code")).equals("200")){ |
| | | System.err.println(String.valueOf(map.get("msg"))); |
| | | } |
| | | orderTaxi.setTelX(""); |
| | | orderTaxi.setBindId(""); |
| | | } |
| | | if(orderLogistics.size() > 0){ |
| | | orderLogisticsService.updateBatchById(orderLogistics); |
| | | } |
| | | } |
| | | |
| | |
| | | case 1: |
| | | OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); |
| | | if(ToolUtil.isNotEmpty(orderPrivateCar.getBindId())){ |
| | | Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(), orderPrivateCar.getTelX(), (System.currentTimeMillis() + 600000)); |
| | | Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId()); |
| | | 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(), (System.currentTimeMillis() + 86400000)); |
| | | 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")); |
| | |
| | | case 2: |
| | | OrderTaxi orderTaxi = orderTaxiService.selectById(orderId); |
| | | if(ToolUtil.isNotEmpty(orderTaxi.getBindId())){ |
| | | Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId(), orderTaxi.getTelX(), (System.currentTimeMillis() + 600000)); |
| | | Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId()); |
| | | 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(), (System.currentTimeMillis() + 86400000)); |
| | | 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")); |
| | |
| | | case 3: |
| | | OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId); |
| | | if(ToolUtil.isNotEmpty(orderCrossCity.getBindId())){ |
| | | Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(), orderCrossCity.getTelX(), (System.currentTimeMillis() + 600000)); |
| | | Map<String, String> map1 = chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId()); |
| | | 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(), (System.currentTimeMillis() + 86400000)); |
| | | 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")); |
| | |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<BaseWarpper> queryAdditionalFee(Integer orderType, Integer orderId, Integer uid) throws Exception { |
| | | Integer companyId = null; |
| | | if(orderType == 1){//专车 |
| | | OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); |
| | | companyId = orderPrivateCar.getCompanyId(); |
| | | } |
| | | if(orderType == 2){//出租车 |
| | | OrderTaxi orderTaxi = orderTaxiService.selectById(orderId); |
| | | companyId = orderTaxi.getCompanyId(); |
| | | } |
| | | if(orderType == 3){//跨城出行 |
| | | Driver driver = driverService.selectById(uid); |
| | | companyId = driver.getCompanyId(); |
| | | } |
| | | if(orderType == 4){//同城小件 |
| | | OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId); |
| | | companyId = orderLogistics.getCompanyId(); |
| | | } |
| | | if(orderType == 5){//跨城小件 |
| | | OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId); |
| | | companyId = orderLogistics.getCompanyId(); |
| | | } |
| | | if(orderType == 6){//包车 |
| | | } |
| | | if(orderType == 7){//助老模式 |
| | | OrderCall orderCall = orderCallService.selectById(orderId); |
| | | companyId = orderCall.getCompanyId(); |
| | | } |
| | | List<AdditionalFee> additionalFees = additionalFeeService.selectList(new EntityWrapper<AdditionalFee>().eq("companyId", companyId).eq("state", 1)); |
| | | List<BaseWarpper> list = new ArrayList<>(); |
| | | additionalFees.forEach(additionalFee -> { |
| | | BaseWarpper baseWarpper = new BaseWarpper(); |
| | | baseWarpper.setId(additionalFee.getId()); |
| | | baseWarpper.setName(additionalFee.getName()); |
| | | list.add(baseWarpper); |
| | | }); |
| | | return list; |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |