|
@@ -13,6 +13,7 @@ import com.izouma.dingdong.domain.user.Address;
|
|
|
import com.izouma.dingdong.domain.user.Coupon;
|
|
import com.izouma.dingdong.domain.user.Coupon;
|
|
|
import com.izouma.dingdong.dto.UserOrderDTO;
|
|
import com.izouma.dingdong.dto.UserOrderDTO;
|
|
|
import com.izouma.dingdong.enums.MerchantStatus;
|
|
import com.izouma.dingdong.enums.MerchantStatus;
|
|
|
|
|
+import com.izouma.dingdong.enums.OrderStatus;
|
|
|
import com.izouma.dingdong.enums.RiderStatus;
|
|
import com.izouma.dingdong.enums.RiderStatus;
|
|
|
import com.izouma.dingdong.exception.BusinessException;
|
|
import com.izouma.dingdong.exception.BusinessException;
|
|
|
import com.izouma.dingdong.repo.OrderGoodsSpecRepo;
|
|
import com.izouma.dingdong.repo.OrderGoodsSpecRepo;
|
|
@@ -27,6 +28,7 @@ import com.izouma.dingdong.repo.user.CouponRepo;
|
|
|
import com.izouma.dingdong.service.merchant.GoodsService;
|
|
import com.izouma.dingdong.service.merchant.GoodsService;
|
|
|
import com.izouma.dingdong.service.merchant.MerchantService;
|
|
import com.izouma.dingdong.service.merchant.MerchantService;
|
|
|
import com.izouma.dingdong.service.merchant.MerchantSettingsService;
|
|
import com.izouma.dingdong.service.merchant.MerchantSettingsService;
|
|
|
|
|
+import com.izouma.dingdong.service.merchant.SalesService;
|
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
|
import me.chanjar.weixin.mp.bean.card.enums.BusinessServiceType;
|
|
import me.chanjar.weixin.mp.bean.card.enums.BusinessServiceType;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
@@ -51,6 +53,7 @@ public class OrderInfoService {
|
|
|
private AddressRepo addressRepo;
|
|
private AddressRepo addressRepo;
|
|
|
private UserRepo userRepo;
|
|
private UserRepo userRepo;
|
|
|
private MerchantService merchantService;
|
|
private MerchantService merchantService;
|
|
|
|
|
+ private SalesService salesService;
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
|
用户下单
|
|
用户下单
|
|
@@ -72,7 +75,7 @@ public class OrderInfoService {
|
|
|
LocalTime nowTime = LocalTime.now();
|
|
LocalTime nowTime = LocalTime.now();
|
|
|
|
|
|
|
|
//是否营业时间内
|
|
//是否营业时间内
|
|
|
- if (startTime.compareTo(nowTime) >= 0 || endTime.compareTo(nowTime) <= 0) {
|
|
|
|
|
|
|
+ if (startTime.compareTo(nowTime) >= 0 || endTime.compareTo(nowTime) <= 0 || !merchantSettings.getIsOpening()) {
|
|
|
throw new BusinessException("非营业时间");
|
|
throw new BusinessException("非营业时间");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -165,7 +168,7 @@ public class OrderInfoService {
|
|
|
/*
|
|
/*
|
|
|
商家接单
|
|
商家接单
|
|
|
*/
|
|
*/
|
|
|
- public void merReceiveOrder(Long orderId, Boolean pass) {
|
|
|
|
|
|
|
+ public OrderInfo merReceiveOrder(Long orderId, Boolean pass) {
|
|
|
OrderInfo orderInfo = orderInfoRepo.findById(orderId).orElseThrow(new BusinessException("无订单"));
|
|
OrderInfo orderInfo = orderInfoRepo.findById(orderId).orElseThrow(new BusinessException("无订单"));
|
|
|
if (pass) {
|
|
if (pass) {
|
|
|
orderInfo.setMerchantStatus(MerchantStatus.RECEIVED);
|
|
orderInfo.setMerchantStatus(MerchantStatus.RECEIVED);
|
|
@@ -175,7 +178,7 @@ public class OrderInfoService {
|
|
|
orderInfo.setCancel(true);
|
|
orderInfo.setCancel(true);
|
|
|
//退款流程
|
|
//退款流程
|
|
|
}
|
|
}
|
|
|
- orderInfoRepo.save(orderInfo);
|
|
|
|
|
|
|
+ return orderInfoRepo.save(orderInfo);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -205,7 +208,48 @@ public class OrderInfoService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
|
- 我的订单
|
|
|
|
|
|
|
+ 分配骑手
|
|
|
|
|
+ */
|
|
|
|
|
+
|
|
|
|
|
+ /*
|
|
|
|
|
+ 骑手点状态
|
|
|
|
|
+ */
|
|
|
|
|
+ public void carryOut(Long orderId, Boolean next) {
|
|
|
|
|
+ if (next) {
|
|
|
|
|
+ //userRepo.findById(userId).orElseThrow(new BusinessException("无用户"));
|
|
|
|
|
+ OrderInfo orderInfo = orderInfoRepo.findById(orderId).orElseThrow(new BusinessException("无订单"));
|
|
|
|
|
+
|
|
|
|
|
+ if (MerchantStatus.RECEIVED.equals(orderInfo.getMerchantStatus())) {
|
|
|
|
|
+ RiderStatus riderStatus = orderInfo.getRiderStatus();
|
|
|
|
|
+ switch (riderStatus) {
|
|
|
|
|
+ case RECEIVED:
|
|
|
|
|
+ orderInfo.setRiderStatus(RiderStatus.TAKE_MEAL);
|
|
|
|
|
+ break;
|
|
|
|
|
+ case TAKE_MEAL:
|
|
|
|
|
+ orderInfo.setRiderStatus(RiderStatus.MEAL_DELIVERY);
|
|
|
|
|
+ break;
|
|
|
|
|
+ case MEAL_DELIVERY:
|
|
|
|
|
+ orderInfo.setRiderStatus(RiderStatus.CARRY_OUT);
|
|
|
|
|
+ orderInfo.setUserReceivedTime(LocalDateTime.now());
|
|
|
|
|
+ orderInfo.setStatus(OrderStatus.COMPLETED);
|
|
|
|
|
+
|
|
|
|
|
+ //添加销量数据
|
|
|
|
|
+ salesService.addSale(orderInfo);
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ orderInfoRepo.save(orderInfo);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ throw new BusinessException("出错");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 按用户ID查出用户/商家/骑手订单
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param userId 登录的ID
|
|
|
|
|
+ * @return 订单列表
|
|
|
*/
|
|
*/
|
|
|
public List<OrderInfo> my(Long userId) {
|
|
public List<OrderInfo> my(Long userId) {
|
|
|
User user = userRepo.findById(userId).orElseThrow(new BusinessException("无用户"));
|
|
User user = userRepo.findById(userId).orElseThrow(new BusinessException("无用户"));
|
|
@@ -215,7 +259,7 @@ public class OrderInfoService {
|
|
|
case MERCHANT:
|
|
case MERCHANT:
|
|
|
Long merchantId = merchantService.findMerchantId(userId);
|
|
Long merchantId = merchantService.findMerchantId(userId);
|
|
|
return orderInfoRepo.findAllByMerchantId(merchantId);
|
|
return orderInfoRepo.findAllByMerchantId(merchantId);
|
|
|
- // case RIDER:
|
|
|
|
|
|
|
+ // case RIDER:
|
|
|
}
|
|
}
|
|
|
return null;
|
|
return null;
|
|
|
}
|
|
}
|