From 59f70d9b19408d36f40ee0f418bf98232c40fb33 Mon Sep 17 00:00:00 2001 From: yanghb <yanghb> Date: 星期五, 21 四月 2023 09:41:42 +0800 Subject: [PATCH] 代码调整 --- DispatchTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderTaxiServiceImpl.java | 278 ------------------------------------------------------ 1 files changed, 4 insertions(+), 274 deletions(-) diff --git a/DispatchTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderTaxiServiceImpl.java b/DispatchTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderTaxiServiceImpl.java index d663fc7..a78d7bf 100644 --- a/DispatchTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderTaxiServiceImpl.java +++ b/DispatchTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderTaxiServiceImpl.java @@ -1,292 +1,22 @@ package com.stylefeng.guns.modular.system.service.impl; -import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; -import com.stylefeng.guns.core.util.ToolUtil; -import com.stylefeng.guns.modular.system.dao.OrderCrossCityMapper; -import com.stylefeng.guns.modular.system.dao.OrderPrivateCarMapper; import com.stylefeng.guns.modular.system.dao.OrderTaxiMapper; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; -import com.stylefeng.guns.modular.system.util.*; -import com.stylefeng.guns.modular.system.warpper.BaseWarpper; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Isolation; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Map; @Service +@Transactional(isolation = Isolation.READ_UNCOMMITTED, propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public class OrderTaxiServiceImpl extends ServiceImpl<OrderTaxiMapper, OrderTaxi> implements IOrderTaxiService { - - @Autowired - private IDispatchService dispatchService; - - @Autowired - private IOrderCancelService orderCancelService; - - @Autowired - private ISystemNoticeService systemNoticeService; - - @Autowired - private PushUtil pushUtil; - - @Autowired - private IDriverService driverService; - - @Autowired - private PushMinistryOfTransportUtil pushMinistryOfTransportUtil; - - @Autowired - private ICompanyCityService companyCityService; - - @Autowired - private GDMapGeocodingUtil gdMapGeocodingUtil; - - @Autowired - private IDriverServiceService driverServiceService; - - @Autowired - private ChinaMobileUtil chinaMobileUtil; - - @Autowired - private IUserInfoService userInfoService; - - @Resource - private OrderPrivateCarMapper orderPrivateCarMapper; @Resource private OrderTaxiMapper orderTaxiMapper; - @Resource - private OrderCrossCityMapper orderCrossCityMapper; - @Value("${pushMinistryOfTransport}") - private boolean pushMinistryOfTransport; - - - - @Override - public List<Map<String, Object>> queryOrderList(String search, String orderSource, String state, Integer pageNum, Integer size, Integer uid) throws Exception { - Dispatch dispatch = dispatchService.selectById(uid); - Integer companyId = null != dispatch.getFranchiseeId() ? dispatch.getFranchiseeId() : dispatch.getCompanyId(); - pageNum = (pageNum - 1) * size; - List<String> orderSources = null; - if(ToolUtil.isNotEmpty(orderSource)){ - orderSources = Arrays.asList(orderSource.split(",")); - } - List<String> states = null; - if(ToolUtil.isNotEmpty(state)){ - states = Arrays.asList(state.split(",")); - } - return this.baseMapper.queryOrderList(search, orderSources, states, companyId, pageNum, size); - } - - @Override - public Map<String, Object> queryOrderInfo(Integer orderId) throws Exception { - return this.baseMapper.queryOrderInfo(orderId); - } - - @Override - public ResultUtil cancelOrder(Integer orderId) throws Exception { - OrderTaxi orderTaxi = this.selectById(orderId); - if(orderTaxi.getState() == 10 || orderTaxi.getState() == 12){ - return ResultUtil.error("不允许重复取消"); - } - if(orderTaxi.getState() == 8 || orderTaxi.getState() == 9){ - return ResultUtil.error("订单已完成,不允许取消"); - } - orderTaxi.setState(10); - this.updateById(orderTaxi); - - //添加取消记录 - OrderCancel orderCancel = new OrderCancel(); - orderCancel.setOrderId(orderId); - orderCancel.setOrderType(2); - orderCancel.setReason("调度端取消"); - orderCancel.setRemark("调度端取消"); - orderCancel.setState(2); - orderCancel.setInsertTime(new Date()); - orderCancel.setUserType(2); - orderCancelService.insert(orderCancel); - - new Thread(new Runnable() {//发送消息提醒 - @Override - public void run() { - pushUtil.pushOrderState(1, orderTaxi.getUserId(), orderId, 2, 10, 0); - if(null != orderTaxi.getDriverId()){ - //修改司机为空闲 - Driver driver = driverService.selectById(orderTaxi.getDriverId()); - driver.setState(2); - driverService.updateById(driver); - pushUtil.pushOrderState(2, orderTaxi.getDriverId(), orderId, 2, 10, 0); - } - } - }).start(); - //添加消息 - systemNoticeService.addSystemNotice(1, "调度已成功取消出行订单,谢谢使用!", orderTaxi.getUserId(), 1); - - new Thread(new Runnable() { - @Override - public void run() { - if(pushMinistryOfTransport){//上传数据 - pushMinistryOfTransportUtil.orderCancel(orderId); - } - } - }).start(); - - return ResultUtil.success(); - } - - @Override - public ResultUtil<BaseWarpper> taxiOrder(OrderTaxi orderTaxi, Integer uid) throws Exception { - //定义用户所属公司 - Company query = companyCityService.query(String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat())); - if(null == query){ - return ResultUtil.error("出发点暂未开通"); - } - Dispatch dispatch = dispatchService.selectById(uid); - UserInfo userInfo = userInfoService.selectOne(new EntityWrapper<UserInfo>().eq("phone", orderTaxi.getPassengersPhone()).ne("flag", 3)); - if(userInfo == null){ - userInfo = new UserInfo(); - userInfo.setName(orderTaxi.getPassengers()); - userInfo.setPhone(orderTaxi.getPassengersPhone()); - userInfo.setCompanyId(dispatch.getCompanyId()); - userInfo.setState(1); - userInfo.setFlag(1); - userInfo.setInsertTime(new Date()); - userInfoService.insert(userInfo); - } - - if(orderTaxi.getTravelTime().getTime() > (System.currentTimeMillis() + 600000)){ - orderTaxi.setOrderType(2); - } - - /** - * 1.出租车、专车、跨城有待支付的订单不能叫车 - * 2.小件物流有未完成的订单可以下跨城、专车、出租车 - * 3.出租车、专车、跨城有预约单可以下即时单 - */ - List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.queryByState(userInfo.getId(), null, 1, 7, 12); - if(orderPrivateCars.size() > 0){ - return ResultUtil.error("乘客有未完成的订单"); - } - List<OrderTaxi> list = orderTaxiMapper.queryByState(userInfo.getId(), null, 1, 7, 12); - if(list.size() > 0){ - return ResultUtil.error("乘客有未完成的订单"); - } - List<OrderCrossCity> orderCrossCities1 = orderCrossCityMapper.queryByState(userInfo.getId(), 7, 12); - if(orderCrossCities1.size() > 0){ - return ResultUtil.error("乘客有未完成的订单"); - } - if(orderTaxi.getOrderType() == 1){ - orderPrivateCars = orderPrivateCarMapper.queryByState(userInfo.getId(), 1, 1, 1, 2, 3, 4, 5, 6, 7, 11, 12); - if(orderPrivateCars.size() > 0){ - return ResultUtil.error("乘客有未完成的订单"); - } - list = orderTaxiMapper.queryByState(userInfo.getId(), 1, 1, 1, 2, 3, 4, 5, 6, 7, 11, 12); - if(list.size() > 0){ - return ResultUtil.error("乘客有未完成的订单"); - } - } - - - - - orderTaxi.setOrderNum(this.getOrderNum()); - Map<String, String> geocode = gdMapGeocodingUtil.geocode(String.valueOf(orderTaxi.getPlacementLon()), String.valueOf(orderTaxi.getPlacementLat())); - orderTaxi.setPlacementAddress(geocode.get("address")); - orderTaxi.setStartAddress(orderTaxi.getStartAddress().replaceAll("& #40;", "\\("));//特殊字符转义 - orderTaxi.setStartAddress(orderTaxi.getStartAddress().replaceAll("& #41;", "\\)")); - orderTaxi.setEndAddress(orderTaxi.getEndAddress().replaceAll("& #40;", "\\(")); - orderTaxi.setEndAddress(orderTaxi.getEndAddress().replaceAll("& #41;", "\\)")); - orderTaxi.setUserId(userInfo.getId()); - orderTaxi.setMileage(0D); - orderTaxi.setOrderMoney(0D); - orderTaxi.setTravelMoney(0D); - orderTaxi.setParkMoney(0D); - orderTaxi.setRoadTollMoney(0D); - orderTaxi.setRedPacketMoney(0D); - orderTaxi.setCouponMoney(0D); - orderTaxi.setInsertTime(new Date()); - orderTaxi.setIsReassign(1); - orderTaxi.setState(1);//待接单 - if(null != orderTaxi.getDriverId()){ - Driver driver = driverService.selectById(orderTaxi.getDriverId()); - if(null == driver){ - return ResultUtil.error("司机信息有误"); - } - if(driver.getAuthState() == 1){ - return ResultUtil.error("司机信息还未完成审核,无法完成下单"); - } - if(driver.getAuthState() == 3){ - return ResultUtil.error("司机账户已被冻结,无法提供服务"); - } - if(driver.getAuthState() == 4){ - return ResultUtil.error("司机信息未通过审核,无法提供服务"); - } - if(driver.getState() == 1){ - return ResultUtil.error("司机还未上线,无法提供服务"); - } - if(driver.getState() == 3){ - return ResultUtil.error("司机正在服务中,无法提供服务"); - } - List<DriverService> driverServices = driverServiceService.query(orderTaxi.getDriverId(), 2); - if(driverServices.size() == 0){ - return ResultUtil.error("该司机不能服务此业务"); - } - - orderTaxi.setCompanyId(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : ( - driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1)); - orderTaxi.setCarId(driver.getCarId()); - orderTaxi.setState(2);//待出发 - orderTaxi.setSnatchOrderTime(new Date()); - -// //调用高德创建轨迹 -// String s = gdFalconUtil.selectTerminal(driver.getPhone()); -// String track = gdFalconUtil.createTrack(s); -// orderTaxi.setTrackId(track); -// - //调用移动的小号接口 - Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000)); - if(String.valueOf(map.get("code")).equals("200")){ - orderTaxi.setTelX(map.get("telX")); - orderTaxi.setBindId(map.get("bindId")); - } - - driver.setState(3); - driverService.updateById(driver); - } - - this.insert(orderTaxi); - - new Thread(new Runnable() { - @Override - public void run() { - if(orderTaxi.getState() == 2){ - //推送司机订单状态 - pushUtil.pushOrderState(2, orderTaxi.getDriverId(), orderTaxi.getId(), 2, orderTaxi.getState(), 0); - - pushUtil.pushDriverPosition(orderTaxi.getId(), 2); - } - } - }).start(); - - //添加消息 - systemNoticeService.addSystemNotice(1, "您的出租车订单已下单成功,我们正在为您指派司机,请稍后!", orderTaxi.getUserId(), 1); - - BaseWarpper baseWarpper = new BaseWarpper(); - baseWarpper.setId(orderTaxi.getId()); - return ResultUtil.success(baseWarpper); - } - - - public synchronized String getOrderNum() throws Exception{ - int size = this.selectCount(null); - return "TAXI" + String.valueOf(1000000 + size + 1).substring(1); - } } -- Gitblit v1.7.1