licailing 5 tahun lalu
induk
melakukan
22483fe05d

+ 2 - 2
src/main/java/com/izouma/dingdong/repo/OrderInfoRepo.java

@@ -50,8 +50,8 @@ public interface OrderInfoRepo extends JpaRepository<OrderInfo, Long>, JpaSpecif
     List<OrderInfo> findAllByStatusAndOrderTimeAfterAndMerchantStatus(OrderStatus status, LocalDateTime time, MerchantStatus merchantStatus);
 
     //骑手未接单的订单
-    List<OrderInfo> findAllByStatusAndMerchantStatus(OrderStatus status, MerchantStatus merchantStatus);
-    List<OrderInfo> findAllByRiderIdIsNull();
+//    List<OrderInfo> findAllByStatusAndMerchantStatus(OrderStatus status, MerchantStatus merchantStatus);
+    List<OrderInfo> findAllByRiderIdIsNullAndMerchantStatus(MerchantStatus merchantStatus);
 
     //按商家和时间内的订单泪飙
     List<OrderInfo> findAllByMerchantIdAndOrderTimeAfter(Long merchantId, LocalDateTime dateTime);

+ 3 - 2
src/main/java/com/izouma/dingdong/service/OrderInfoService.java

@@ -241,9 +241,10 @@ public class OrderInfoService {
         OrderInfo orderInfo = orderInfoRepo.findById(orderId).orElseThrow(new BusinessException("无订单"));
         if (pass) {
             orderInfo.setMerchantStatus(MerchantStatus.RECEIVED);
+            orderInfo.setRiderStatus(RiderStatus.NOT_RECEIVED);
             //通知骑手 手动
-            orderInfo.setRiderId(151L);
-            orderInfo.setRiderStatus(RiderStatus.RECEIVED);
+//            orderInfo.setRiderId(151L);
+//            orderInfo.setRiderStatus(RiderStatus.RECEIVED);
 
 
         } else {

+ 30 - 26
src/main/java/com/izouma/dingdong/service/rider/RiderService.java

@@ -175,37 +175,40 @@ public class RiderService {
     骑手抢单形式接单
     5分钟内手动抢单
      */
-    public void riderReceiveOrder(Long riderId, Long orderId, Boolean pass) {
+    public void riderReceiveOrder(Long userId, Long orderId) {
         OrderInfo orderInfo = orderInfoRepo.findById(orderId).orElseThrow(new BusinessException("无订单"));
 
-        if (pass) {
-            if (!OrderStatus.PAID.equals(orderInfo.getStatus())) {
-                throw new BusinessException("订单不可接单");
-            }
-            if (!MerchantStatus.RECEIVED.equals(orderInfo.getMerchantStatus())) {
-                throw new BusinessException("商家未接单");
-            }
-            if (!RiderStatus.NOT_RECEIVED.equals(orderInfo.getRiderStatus())) {
-                throw new BusinessException("已被其他骑手接单");
-            }
+        Long riderId = riderRepo.findByUserId(userId).orElseThrow(new BusinessException("无骑手")).getId();
 
-            //如果是货到付款
-            if (PayMethod.CASH_DELIVERY.equals(orderInfo.getPayMethod())) {
-                if (!this.canCash(riderId)) {
-                    throw new BusinessException("不满足接货到付款订单");
-                }
-            }
 
-            List<OrderInfo> infos = orderInfoRepo.findAllByRiderIdAndRiderStatusIsNot(riderId, RiderStatus.CARRY_OUT);
-            if (infos.size() >= sysConfigService.getOrderLimit()) {
-                throw new BusinessException("未完成订单已达上线");
+        if (!OrderStatus.PAID.equals(orderInfo.getStatus())) {
+            throw new BusinessException("订单不可接单");
+        }
+        if (!MerchantStatus.RECEIVED.equals(orderInfo.getMerchantStatus())) {
+            throw new BusinessException("商家未接单");
+        }
+        if (!RiderStatus.NOT_RECEIVED.equals(orderInfo.getRiderStatus())
+                || orderInfo.getRiderStatus() == null) {
+            throw new BusinessException("已被其他骑手接单");
+        }
+
+        //如果是货到付款
+        if (PayMethod.CASH_DELIVERY.equals(orderInfo.getPayMethod())) {
+            if (!this.canCash(riderId)) {
+                throw new BusinessException("不满足接货到付款订单");
             }
-            //设置订单状态
-            orderInfo.setRiderId(riderId);
-            orderInfo.setRiderStatus(RiderStatus.RECEIVED);
-//            orderInfo.setRiderOrderTime(LocalDateTime.now());
-            orderInfoRepo.save(orderInfo);
         }
+
+        List<OrderInfo> infos = orderInfoRepo.findAllByRiderIdAndRiderStatusIsNot(riderId, RiderStatus.CARRY_OUT);
+        if (infos.size() >= sysConfigService.getOrderLimit()) {
+            throw new BusinessException("未完成订单已达上线");
+        }
+        //设置订单状态
+        orderInfo.setRiderId(riderId);
+        orderInfo.setRiderStatus(RiderStatus.RECEIVED);
+//            orderInfo.setRiderOrderTime(LocalDateTime.now());
+        orderInfoRepo.save(orderInfo);
+
     }
 
     /*
@@ -227,7 +230,8 @@ public class RiderService {
         Map<Long, Double> map = new HashMap<>();
         //筛查骑手,查出订单数小于5,3000米以内,(支持货到付款)
         locationList.forEach(d -> {
-            if (orderInfoRepo.countByRiderIdAndRiderStatusIsNot(d.getRiderId(), RiderStatus.CARRY_OUT) < sysConfigService.getOrderLimit()) {
+            if (orderInfoRepo.countByRiderIdAndRiderStatusIsNot(d.getRiderId(), RiderStatus.CARRY_OUT) < sysConfigService
+                    .getOrderLimit()) {
                 boolean t = true;
                 if (cash) {
                     //是否支持货到付款

+ 1 - 1
src/main/java/com/izouma/dingdong/web/OrderInfoController.java

@@ -164,7 +164,7 @@ public class OrderInfoController extends BaseController {
     @GetMapping("/riderReceived")
     @ApiOperation("骑手端,未接单的订单")
     public List<OrderInfo> riderReceived() {
-        return orderInfoRepo.findAllByRiderIdIsNull();
+        return orderInfoRepo.findAllByRiderIdIsNullAndMerchantStatus(MerchantStatus.RECEIVED);
     }
 
     @GetMapping("/blackAll")

+ 2 - 2
src/main/java/com/izouma/dingdong/web/rider/RiderController.java

@@ -68,8 +68,8 @@ public class RiderController extends BaseController {
 
     @GetMapping("/receiver")
     @ApiOperation("骑手手动接单")
-    public void riderReceiveOrder(Long orderId, Boolean pass) {
-        riderService.riderReceiveOrder(SecurityUtils.getAuthenticatedUser().getId(), orderId, pass);
+    public void riderReceiveOrder(Long orderId) {
+        riderService.riderReceiveOrder(SecurityUtils.getAuthenticatedUser().getId(), orderId);
     }
 
     @GetMapping("/autoReceive")

+ 2 - 2
src/main/vue/src/views/OrderInfoList.vue

@@ -31,9 +31,9 @@
             <el-table-column v-if="multipleMode" align="center" type="selection"
                              width="50">
             </el-table-column>
+            <el-table-column prop="id" label="ID" width="100">
+            </el-table-column>
             <el-table-column prop="status" label="状态" :formatter="statusFormatter"></el-table-column>
-            <!--     <el-table-column prop="id" label="ID" width="100">
-                 </el-table-column>-->
             <el-table-column prop="nickname" label="用户"
             >
             </el-table-column>

+ 1 - 2
src/test/java/com/izouma/dingdong/repo/OrderInfoRepoTest.java

@@ -31,7 +31,6 @@ public class OrderInfoRepoTest {
 
     @Test
     public void test1(){
-        System.out.println(orderInfoRepo.findAllByRiderIdIsNull());
+        System.out.println(orderInfoRepo.findAllByRiderIdIsNullAndMerchantStatus(MerchantStatus.RECEIVED));
     }
-
 }

+ 4 - 0
src/test/java/com/izouma/dingdong/service/OrderInfoServiceTest.java

@@ -18,5 +18,9 @@ public class OrderInfoServiceTest {
         System.out.println(orderInfoService.cancel(296L, RefundReason.ORDER_TIMEOUT, null, null));
     }
 
+    @Test
+    public void test1() {
+        orderInfoService.merReceiveOrder(1870L, true);
+    }
 
 }

+ 5 - 0
src/test/java/com/izouma/dingdong/service/RiderServiceTest.java

@@ -52,4 +52,9 @@ public class RiderServiceTest {
         System.out.println(riderController.save(rider));
     }
 
+    @Test
+    public void test3() {
+        riderService.riderReceiveOrder(2105L, 1870L);
+    }
+
 }