|
|
@@ -83,7 +83,7 @@ public class TaskCenterServiceImpl implements TaskCenterService {
|
|
|
wrapper.orderByDesc("predict_time");
|
|
|
}
|
|
|
PageQuery pageQuery = new PageQuery();
|
|
|
- pageQuery.setPageNum(page - 1);
|
|
|
+ pageQuery.setPageNum(page);
|
|
|
pageQuery.setPageSize(limit);
|
|
|
|
|
|
Page<KxRiderOrderVo> riderOrderDOList = riderOrderMapper.selectVoPage(pageQuery.build(), wrapper);
|
|
|
@@ -133,7 +133,7 @@ public class TaskCenterServiceImpl implements TaskCenterService {
|
|
|
riderOrderDO.setStatus(RiderOrderStatusType.WORKING.getCode());
|
|
|
riderOrderDO.setUpdateTime(new Date());
|
|
|
if (riderOrderMapper.updateById(riderOrderDO) > 0) {
|
|
|
- orderSnapshotService.addOrderSnapshotByOrderStatus(riderOrderDO.getId(), OrderSnapshotState.WORKING);
|
|
|
+ orderSnapshotService.addOrderSnapshotByOrderStatus(riderOrderDO.getId(), riderId, OrderSnapshotState.WORKING);
|
|
|
|
|
|
orderRiderBizService.sendRiderMessageBusiness(riderOrderDO.getOrderNo(), RiderOrderStatusType.WORKING, riderOrderDO.getRiderId(), null);
|
|
|
return "ok";
|
|
|
@@ -168,7 +168,7 @@ public class TaskCenterServiceImpl implements TaskCenterService {
|
|
|
riderOrderDO.setUpdateTime(new Date());
|
|
|
riderOrderDO.setReason(reason);
|
|
|
if (riderOrderMapper.updateById(riderOrderDO) > 0) {
|
|
|
- orderSnapshotService.addOrderSnapshotByOrderStatus(riderOrderDO.getId(), OrderSnapshotState.ABNORMAL);
|
|
|
+ orderSnapshotService.addOrderSnapshotByOrderStatus(riderOrderDO.getId(), riderId, OrderSnapshotState.ABNORMAL);
|
|
|
orderRiderBizService.sendRiderMessageBusiness(riderOrderDO.getOrderNo(), RiderOrderStatusType.ABNORMAL, riderOrderDO.getRiderId(), reason);
|
|
|
return "ok";
|
|
|
}
|
|
|
@@ -207,7 +207,7 @@ public class TaskCenterServiceImpl implements TaskCenterService {
|
|
|
// if (riderOrderDO.getFreightPrice() != null && riderOrderDO.getFreightPrice().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
// updateRiderWallet(riderOrderDO.getRiderId(), riderOrderDO.getFreightPrice(), riderOrderDO.getOrderNo());
|
|
|
// }
|
|
|
- orderSnapshotService.addOrderSnapshotByOrderStatus(riderOrderDO.getId(), OrderSnapshotState.COMPLETED);
|
|
|
+ orderSnapshotService.addOrderSnapshotByOrderStatus(riderOrderDO.getId(), riderId, OrderSnapshotState.COMPLETED);
|
|
|
|
|
|
KxRider kxRider = new KxRider();
|
|
|
kxRider.setId(riderId);
|
|
|
@@ -273,27 +273,25 @@ public class TaskCenterServiceImpl implements TaskCenterService {
|
|
|
|
|
|
@Override
|
|
|
public RiderOrderStatisticalDTO statistical(Long riderId) throws ServiceException {
|
|
|
- if (riderId != null) {
|
|
|
- List<RiderStatisticalDTO> riderStatisticalDTOList = riderOrderMapper.statisticalCount(riderId);
|
|
|
- if (riderStatisticalDTOList != null && riderStatisticalDTOList.size() > 0) {
|
|
|
- RiderOrderStatisticalDTO riderOrderStatisticalDTO = new RiderOrderStatisticalDTO();
|
|
|
- for (RiderStatisticalDTO riderStatisticalDTO : riderStatisticalDTOList) {
|
|
|
- if (RiderOrderStatusType.WAITING.getCode().equals(riderStatisticalDTO.getStatus())) {
|
|
|
- riderOrderStatisticalDTO.setWaitingCount(riderStatisticalDTO.getCount());
|
|
|
- } else if (RiderOrderStatusType.WORKING.getCode().equals(riderStatisticalDTO.getStatus())) {
|
|
|
- riderOrderStatisticalDTO.setTimeoutCount(riderStatisticalDTO.getCount());
|
|
|
- } else if (RiderOrderStatusType.ABNORMAL.getCode().equals(riderStatisticalDTO.getStatus())) {
|
|
|
- riderOrderStatisticalDTO.setAbnormalCount(riderStatisticalDTO.getCount());
|
|
|
- } else if (RiderOrderStatusType.COMPLETED.getCode().equals(riderStatisticalDTO.getStatus())) {
|
|
|
- riderOrderStatisticalDTO.setCompletedCount(riderStatisticalDTO.getCount());
|
|
|
- } else if (RiderOrderStatusType.IN_ROAD.getCode().equals(riderStatisticalDTO.getStatus())) {
|
|
|
- riderOrderStatisticalDTO.setDispenseCount(riderStatisticalDTO.getCount());
|
|
|
- }
|
|
|
- }
|
|
|
- return riderOrderStatisticalDTO;
|
|
|
- }
|
|
|
- }
|
|
|
- return null;
|
|
|
+ RiderOrderStatisticalDTO riderOrderStatisticalDTO = new RiderOrderStatisticalDTO();
|
|
|
+ LambdaQueryWrapper<KxRiderOrder> lqw = new LambdaQueryWrapper<>();
|
|
|
+ lqw.eq(KxRiderOrder::getRiderId, riderId);
|
|
|
+ List<KxRiderOrder> kxRiderOrders = riderOrderMapper.selectList(lqw);
|
|
|
+ Map<Integer, Long> map = kxRiderOrders.stream()
|
|
|
+ .collect(Collectors.groupingBy(KxRiderOrder::getStatus, Collectors.counting()));
|
|
|
+ LambdaQueryWrapper<KxOrderRiderRecommend> orderRiderRecommendLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ orderRiderRecommendLambdaQueryWrapper.eq(KxOrderRiderRecommend::getRiderId, riderId)
|
|
|
+ .eq(KxOrderRiderRecommend::getStatus, OrderRiderRecommendStatusEnum.WAITING.getStatus());
|
|
|
+ Long waitCount = orderRiderRecommendMapper.selectCount(orderRiderRecommendLambdaQueryWrapper);
|
|
|
+
|
|
|
+ riderOrderStatisticalDTO.setWaiting(waitCount.intValue());
|
|
|
+ riderOrderStatisticalDTO.setAllocated(map.getOrDefault(RiderOrderStatusType.ALLOCATED.getCode(), 0L).intValue());
|
|
|
+ riderOrderStatisticalDTO.setInroad(map.getOrDefault(RiderOrderStatusType.IN_ROAD.getCode(), 0L).intValue());
|
|
|
+ riderOrderStatisticalDTO.setWorking(map.getOrDefault(RiderOrderStatusType.WORKING.getCode(), 0L).intValue());
|
|
|
+ riderOrderStatisticalDTO.setCompleted(map.getOrDefault(RiderOrderStatusType.COMPLETED.getCode(), 0L).intValue());
|
|
|
+ riderOrderStatisticalDTO.setAbnormal(map.getOrDefault(RiderOrderStatusType.ABNORMAL.getCode(), 0L).intValue());
|
|
|
+
|
|
|
+ return riderOrderStatisticalDTO;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -326,7 +324,7 @@ public class TaskCenterServiceImpl implements TaskCenterService {
|
|
|
|
|
|
private List<KxRiderOrderVo> getWaitList(Long riderId, Integer page, Integer limit) {
|
|
|
PageQuery pageQuery = new PageQuery();
|
|
|
- pageQuery.setPageNum(page - 1);
|
|
|
+ pageQuery.setPageNum(page);
|
|
|
pageQuery.setPageSize(limit);
|
|
|
|
|
|
LambdaQueryWrapper<KxOrderRiderRecommend> orderRiderRecommendLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
@@ -368,7 +366,7 @@ public class TaskCenterServiceImpl implements TaskCenterService {
|
|
|
|
|
|
orderRiderBizService.sendRiderMessageBusiness(riderOrderDO.getOrderNo(), RiderOrderStatusType.IN_ROAD, riderOrderDO.getRiderId(), null);
|
|
|
|
|
|
- orderSnapshotService.addOrderSnapshotByOrderStatus(riderOrderDO.getId(), OrderSnapshotState.IN_ROAD);
|
|
|
+ orderSnapshotService.addOrderSnapshotByOrderStatus(riderOrderDO.getId(), riderId, OrderSnapshotState.IN_ROAD);
|
|
|
return "ok";
|
|
|
}
|
|
|
throw new ServiceException("配送员订单状态更新异常,请稍后再试");
|
|
|
@@ -396,6 +394,7 @@ public class TaskCenterServiceImpl implements TaskCenterService {
|
|
|
Lock lock = RedisUtils.lock(RIDER_ORDER_STATUS_LOCK + orderNo);
|
|
|
try {
|
|
|
if (lock.tryLock(RIDER_ORDER_LOCK_WAITING_TIME, TimeUnit.SECONDS)) {
|
|
|
+ riderOrderDO.setRiderId(riderId);
|
|
|
riderOrderDO.setStatus(RiderOrderStatusType.ALLOCATED.getCode());
|
|
|
riderOrderDO.setUpdateTime(new Date());
|
|
|
if (riderOrderMapper.updateById(riderOrderDO) > 0) {
|
|
|
@@ -404,7 +403,7 @@ public class TaskCenterServiceImpl implements TaskCenterService {
|
|
|
orderRiderRecommendMapper.deleteByOrderNo(orderNo);
|
|
|
RedisUtils.delCacheMapValue(CacheConstants.WAIT_DISPATCH_ORDERS, riderOrderDO.getId().toString());
|
|
|
|
|
|
- orderSnapshotService.addOrderSnapshotByOrderStatus(riderOrderDO.getId(), OrderSnapshotState.WAIT_BEGIN);
|
|
|
+ orderSnapshotService.addOrderSnapshotByOrderStatus(riderOrderDO.getId(), riderId, OrderSnapshotState.WAIT_BEGIN);
|
|
|
return "ok";
|
|
|
}
|
|
|
throw new ServiceException("配送员订单状态更新异常,请稍后再试");
|