licailing преди 5 години
родител
ревизия
ae8d4f2815

+ 0 - 1
src/main/java/com/izouma/dingdong/domain/UserSig.java

@@ -17,7 +17,6 @@ import java.time.LocalDateTime;
 @AllArgsConstructor
 @NoArgsConstructor
 @Builder
-@Where(clause = "enabled = 1")
 @ApiModel(value = "用户sig", description = "用户sig")
 @JsonIgnoreProperties(value = {"hibernateLazyInitializer"})
 public class UserSig extends BaseEntity {

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

@@ -49,9 +49,9 @@ 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> findAllByRiderIdIsNullAndMerchantStatus(MerchantStatus merchantStatus);
+    List<OrderInfo> findAllByRiderIdIsNullAndMerchantStatusAndStatus(MerchantStatus merchantStatus, OrderStatus status);
 
     //按商家和时间内的订单泪飙
     List<OrderInfo> findAllByMerchantIdAndOrderTimeAfter(Long merchantId, LocalDateTime dateTime);

+ 7 - 26
src/main/java/com/izouma/dingdong/service/OrderInfoService.java

@@ -108,9 +108,10 @@ public class OrderInfoService {
         OrderInfo orderInfo = new OrderInfo();
         BeanUtil.copyProperties(userOrderDTO, orderInfo);
         BeanUtil.copyProperties(cart, orderInfo);
-        orderInfo.setMerchantStatus(MerchantStatus.NOT_RECEIVED);
+        //orderInfo.setMerchantStatus(MerchantStatus.NOT_RECEIVED);
         orderInfo.setCancel(false);
         orderInfo.setOrderTime(now);
+        orderInfo.setStatus(OrderStatus.UNPAID);
         orderInfo.setEnabled(true);
 //        orderInfo.setGoodsAmount(cart.getRealAmount().subtract(cart.getDeliveryAmount()));
 
@@ -222,6 +223,8 @@ public class OrderInfoService {
         OrderInfo orderInfo = orderInfoRepo.findById(orderId).orElseThrow(new BusinessException("无订单"));
         //设置状态已支付
         orderInfo.setStatus(OrderStatus.PAID);
+        //设置商家未接单
+        orderInfo.setMerchantStatus(MerchantStatus.NOT_RECEIVED);
         orderInfoRepo.save(orderInfo);
 
         //商家
@@ -246,6 +249,9 @@ public class OrderInfoService {
      */
     public OrderInfo merReceiveOrder(Long orderId, Boolean pass) {
         OrderInfo orderInfo = orderInfoRepo.findById(orderId).orElseThrow(new BusinessException("无订单"));
+        if (!OrderStatus.PAID.equals(orderInfo.getStatus())) {
+            throw new BusinessException("订单状态错误");
+        }
         if (pass) {
             orderInfo.setMerchantStatus(MerchantStatus.RECEIVED);
             orderInfo.setRiderStatus(RiderStatus.NOT_RECEIVED);
@@ -364,31 +370,6 @@ public class OrderInfoService {
         }
     }
 
-    /**
-     * 按用户ID查出用户/商家/骑手订单
-     *
-     * @param userId 登录的ID
-     * @return 订单列表
-     */
-    public List<OrderInfo> my(Long userId) {
-        User user = userRepo.findById(userId).orElseThrow(new BusinessException("无用户"));
-        if (user.getIdentity() == null) {
-            throw new BusinessException("身份错误");
-        }
-        switch (user.getIdentity()) {
-            case USER:
-                return orderInfoRepo.findAllByUserId(userId);
-            case MERCHANT:
-                Long merchantId = merchantService.findMerchantId(userId);
-                return orderInfoRepo.findAllByMerchantId(merchantId);
-            case RIDER:
-                Rider rider = riderRepo.findByUserId(userId).orElseThrow(new BusinessException("无用户"));
-                return orderInfoRepo.findAllByRiderId(rider.getId());
-        }
-        return null;
-    }
-
-
     /*
     用户取消订单
      */

+ 1 - 2
src/main/java/com/izouma/dingdong/service/backstage/PromoteService.java

@@ -18,8 +18,7 @@ public class PromoteService {
         promoteRepo.findAll().forEach(promote -> {
             Merchant merchant = merchantRepo.findById(promote.getMerchantId()).orElse(null);
             if (merchant == null) {
-                promote.setEnabled(false);
-                promoteRepo.save(promote);
+                promoteRepo.deleteById(promote.getId());
             }
         });
     }

+ 1 - 2
src/main/java/com/izouma/dingdong/service/merchant/MerchantService.java

@@ -272,8 +272,7 @@ public class MerchantService {
      * @return 商家ID
      */
     public Long findMerchantId(Long userId) {
-        Merchant merchant = merchantRepo.findByUserId(userId).orElseThrow(new BusinessException("商户不存在"));
-        return merchant.getId();
+        return merchantRepo.findByUserId(userId).orElseThrow(new BusinessException("商户不存在")).getId();
     }
 
     /*

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

@@ -108,6 +108,10 @@ public class OrderInfoController extends BaseController {
             case MERCHANT:
                 Long merchantId = merchantService.findMerchantId(id);
                 query.put("merchantId", merchantId);
+                //未接单列表只展示已支付的
+                if (query.get("merchantStatus") != null && "NOT_RECEIVED".equals(query.get("merchantStatus"))) {
+                    query.put("status", "PAID");
+                }
                 break;
             case RIDER:
                 Long riderId = riderRepo.findByUserId(id).orElseThrow(new BusinessException("无骑手")).getId();
@@ -166,7 +170,7 @@ public class OrderInfoController extends BaseController {
     @GetMapping("/riderReceived")
     @ApiOperation("骑手端,未接单的订单")
     public List<OrderInfoDTO> riderReceived() {
-        return orderInfoRepo.findAllByRiderIdIsNullAndMerchantStatus(MerchantStatus.RECEIVED)
+        return orderInfoRepo.findAllByRiderIdIsNullAndMerchantStatusAndStatus(MerchantStatus.RECEIVED,OrderStatus.PAID)
                 .stream()
                 .map(orderInfoService::toDto)
                 .collect(Collectors.toList());
@@ -193,5 +197,11 @@ public class OrderInfoController extends BaseController {
         orderInfoService.mandatory(orderId, status);
     }
 
+    @GetMapping("/toCompleted")
+    @ApiOperation("跳过支付")
+    public void toCompleted(@RequestParam Long orderId) {
+        orderInfoService.toCompleted(orderId);
+    }
+
 }
 

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

@@ -1,15 +1,22 @@
 package com.izouma.dingdong.repo;
 
 
+import com.izouma.dingdong.domain.OrderInfo;
+import com.izouma.dingdong.dto.PageQuery;
 import com.izouma.dingdong.enums.MerchantStatus;
 import com.izouma.dingdong.enums.OrderStatus;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.data.domain.Page;
 import org.springframework.test.context.junit4.SpringRunner;
 
 import java.time.LocalDateTime;
+import java.util.HashMap;
+import java.util.Map;
+
+import static com.izouma.dingdong.web.BaseController.*;
 
 
 @RunWith(SpringRunner.class)
@@ -25,14 +32,32 @@ public class OrderInfoRepoTest {
 
     @Test
     public void testTime() {
-        System.out.println(orderInfoRepo.findAllByStatusAndOrderTimeAfterAndMerchantStatus(OrderStatus.PAID, LocalDateTime.now()
+        System.out.println(orderInfoRepo.findAllByStatusAndOrderTimeAfterAndMerchantStatus(OrderStatus.PAID, LocalDateTime
+                .now()
                 .plusMinutes(5), MerchantStatus.RECEIVED));
     }
 
     @Test
-    public void test1(){
+    public void test1() {
 //        System.out.println(orderInfoRepo.findAllByRiderIdIsNullAndMerchantStatus(MerchantStatus.RECEIVED));
         System.out.println(orderInfoRepo.findById(2085L).orElse(null));
     }
 
+
+    @Test
+    public void testMy() {
+        PageQuery pageQuery = new PageQuery();
+        Map<String, Object> map = new HashMap<>();
+        map.put("merchantId", 189);
+        map.put("merchantStatus", "NOT_RECEIVED");
+        if ("NOT_RECEIVED".equals(map.get("merchantStatus"))){
+            map.put("status","PAID");
+        }
+        pageQuery.setQuery(map);
+
+        Page<Long> map1 = orderInfoRepo.findAll(toSpecification(pageQuery, OrderInfo.class), toPageRequest(pageQuery))
+                .map(OrderInfo::getId);
+        System.out.println(map1.getContent());
+    }
+
 }

+ 9 - 5
src/test/java/com/izouma/dingdong/service/OrderInfoServiceTest.java

@@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
+
 @RunWith(SpringRunner.class)
 @SpringBootTest
 public class OrderInfoServiceTest {
@@ -34,13 +35,10 @@ public class OrderInfoServiceTest {
                 .build();
         orderInfoService.userOrder(build);
     }
-    @Test
-    public void testMy(){
-        System.out.println(orderInfoService.my(83L));
-    }
+
 
     @Test
-    public void testBuy(){
+    public void testBuy() {
         UserOrderDTO dto = UserOrderDTO.builder()
                 .addressId(1889L)
                 .payMethod(PayMethod.ALI_PAY)
@@ -52,4 +50,10 @@ public class OrderInfoServiceTest {
         System.out.println(orderInfoService.userOrder(dto).getId());
     }
 
+    @Test
+    public void testPay() {
+        orderInfoService.toCompleted(2177L);
+    }
+
+
 }