| | |
| | | import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; |
| | | import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; |
| | | import com.stylefeng.guns.modular.system.service.INettyService; |
| | | import com.stylefeng.guns.modular.system.util.RedisUtil; |
| | | import com.stylefeng.guns.modular.system.util.ResultUtil; |
| | | import com.stylefeng.guns.modular.system.warpper.EndPushWarpper; |
| | | import com.stylefeng.guns.modular.system.warpper.OrderServerWarpper; |
| | | import com.stylefeng.guns.modular.system.warpper.OrderStatusWarpper; |
| | | import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | |
| | | @Service |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | @Resource |
| | | private RedisUtil redisUtil; |
| | | private RedisTemplate redisTemplate; |
| | | |
| | | /** |
| | | * 获取服务中的订单数据 |
| | |
| | | |
| | | |
| | | //从redis中拿取最后的距离参数 |
| | | String value = redisUtil.getValue("DISTANCE:"+orderServerWarpper.getState()+":"+ orderId); |
| | | String value = (String) redisTemplate.opsForValue().get("DISTANCE:" + orderServerWarpper.getState() + ":" + orderId); |
| | | if (value==null){ |
| | | redisUtil.setStrValue("DISTANCE:" + orderId,reservationMileage); |
| | | redisTemplate.opsForValue().set("DISTANCE:" + orderId, reservationMileage); |
| | | String s = new BigDecimal(reservationMileage).setScale(2, RoundingMode.HALF_UP).toString(); |
| | | orderServerWarpper.setReservationMileage(s); |
| | | }else { |
| | | //最近的一次距离 |
| | | String recent = redisUtil.getValue("DISTANCE:"+orderServerWarpper.getState()+":"+orderId); |
| | | String recent = (String) redisTemplate.opsForValue().get("DISTANCE:" + orderServerWarpper.getState() + ":" + orderId); |
| | | BigDecimal recentDecimal = new BigDecimal(recent).setScale(2, RoundingMode.HALF_UP); |
| | | BigDecimal bigDecimal = new BigDecimal(reservationMileage).setScale(2, RoundingMode.HALF_UP); |
| | | if (bigDecimal.compareTo(recentDecimal)<0){ |
| | | orderServerWarpper.setReservationMileage(bigDecimal.toString()); |
| | | redisUtil.setStrValue("DISTANCE:" +orderServerWarpper.getState()+":"+ orderId,reservationMileage); |
| | | redisTemplate.opsForValue().set("DISTANCE:" + orderServerWarpper.getState() + ":" + orderId, reservationMileage); |
| | | }else { |
| | | orderServerWarpper.setReservationMileage(recentDecimal.toString()); |
| | | } |
| | |
| | | } |
| | | String reservationTime = orderServerWarpper.getReservationTime(); |
| | | if (reservationTime!=null){ |
| | | String value = redisUtil.getValue("TIME:"+orderServerWarpper.getState()+":"+ orderId); |
| | | String value = (String) redisTemplate.opsForValue().get("TIME:" + orderServerWarpper.getState() + ":" + orderId); |
| | | if (value==null){ |
| | | redisUtil.setStrValue("TIME:" + orderId,reservationTime); |
| | | redisTemplate.opsForValue().set("TIME:" + orderId, reservationTime); |
| | | String s = new BigDecimal(reservationTime).setScale(2, RoundingMode.HALF_UP).toString(); |
| | | orderServerWarpper.setReservationTime(s); |
| | | }else { |
| | | //最近的一次距离 |
| | | String recent = redisUtil.getValue("TIME:"+orderServerWarpper.getState()+":"+orderId); |
| | | String recent = (String) redisTemplate.opsForValue().get("TIME:" + orderServerWarpper.getState() + ":" + orderId); |
| | | BigDecimal recentDecimal = new BigDecimal(recent).setScale(2, RoundingMode.HALF_UP); |
| | | BigDecimal bigDecimal = new BigDecimal(reservationTime).setScale(2, RoundingMode.HALF_UP); |
| | | if (bigDecimal.compareTo(recentDecimal)<0){ |
| | | orderServerWarpper.setReservationTime(bigDecimal.toString()); |
| | | redisUtil.setStrValue("TIME:" +orderServerWarpper.getState()+":"+ orderId,reservationTime); |
| | | redisTemplate.opsForValue().set("TIME:" + orderServerWarpper.getState() + ":" + orderId, reservationTime); |
| | | }else { |
| | | orderServerWarpper.setReservationTime(recentDecimal.toString()); |
| | | } |