From d6ef18f23c4b298cb9b977ab3a5d65e2f4a39fe2 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期三, 06 十一月 2024 18:02:28 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/OrderServiceImpl.java | 111 ++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 80 insertions(+), 31 deletions(-)
diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/OrderServiceImpl.java
index 5adde65..61b34c1 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/OrderServiceImpl.java
@@ -4,19 +4,22 @@
import com.ruoyi.admin.api.entity.Prize;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.exception.GlobalException;
+import com.ruoyi.common.core.utils.SnowflakeIdWorker;
+import com.ruoyi.order.api.entity.UserOrderRequest;
+import com.ruoyi.order.api.feignClient.OrderClient;
import com.ruoyi.user.entity.Order;
import com.ruoyi.user.entity.RecoveryServe;
+import com.ruoyi.user.entity.RecoveryServePrice;
import com.ruoyi.user.entity.UserRecipient;
import com.ruoyi.user.mapper.OrderMapper;
import com.ruoyi.user.request.OrderRequest;
import com.ruoyi.user.service.OrderService;
+import com.ruoyi.user.service.RecoveryServePriceService;
import com.ruoyi.user.service.RecoveryServeService;
import com.ruoyi.user.service.UserRecipientService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
-import java.math.BigDecimal;
-import java.util.Date;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
@@ -36,6 +39,15 @@
private UserRecipientService userRecipientService;
@Resource
private RecoveryServeService recoveryServeService;
+ @Resource
+ private OrderClient orderClient;
+ @Resource
+ private RecoveryServePriceService servePriceService;
+
+ /**
+ * 雪花算法类
+ */
+ private static final SnowflakeIdWorker SNOW_FLAKE_ID_WORKER = new SnowflakeIdWorker(5, 5);
@Override
public Object obtainAllowance(List<Prize> prizeList) {
@@ -67,16 +79,8 @@
@Override
public Boolean placeOrder(OrderRequest orderRequest, Integer userId) {
- String orderNumber = orderRequest.getOrderNumber();
Integer serveId = orderRequest.getServeId();
- String reservationName = orderRequest.getReservationName();
- String reservationPhone = orderRequest.getReservationPhone();
Integer addressId = orderRequest.getAddressId();
- Date time = orderRequest.getTime();
- String reservationRemark = orderRequest.getReservationRemark();
- Double longitude = orderRequest.getLongitude();
- Double latitude = orderRequest.getLatitude();
- BigDecimal subsidy = orderRequest.getSubsidy();
// 下单相关信息
RecoveryServe recoveryServe = recoveryServeService.lambdaQuery().eq(RecoveryServe::getId, serveId)
.eq(RecoveryServe::getIsDelete, 0).one();
@@ -85,28 +89,73 @@
if (null == recoveryServe || null == userRecipient) {
throw new GlobalException("下单失败,预约服务信息或收货地址信息异常!");
}
- // 订单信息
- Order order = new Order();
- order.setOrderNumber(orderNumber);
- order.setServeId(serveId);
- order.setServeName(recoveryServe.getServeName());
- order.setServePrice(recoveryServe.getDefaultPrice());
- order.setUserId(userId);
- order.setReservationName(reservationName);
- order.setReservationPhone(reservationPhone);
- order.setReservationAddress(userRecipient.getAddress());
- order.setTime(time);
- order.setReservationRemark(reservationRemark);
- order.setOrderMoney(recoveryServe.getDefaultPrice().add(new BigDecimal(String.valueOf(subsidy))));
- order.setState(Constants.ZERO);
- order.setType(Constants.ZERO);
- order.setLongitude(longitude);
- order.setLatitude(latitude);
- order.setIsWithdrawal(Constants.ZERO);
- order.setSubsidy(subsidy);
- order.setAddress(userRecipient.getAddressDetail());
- return this.save(order);
+ String address = userRecipient.getAddress();
+ if (address.contains(Constants.PROVINCE) && address.contains(Constants.MARKET)) {
+ }
+ UserOrderRequest userOrderRequest = new UserOrderRequest();
+ userOrderRequest.setOrderNumber(orderRequest.getOrderNumber());
+ userOrderRequest.setServeId(orderRequest.getServeId());
+ userOrderRequest.setReservationName(orderRequest.getReservationName());
+ userOrderRequest.setReservationPhone(orderRequest.getReservationPhone());
+ userOrderRequest.setAddressId(orderRequest.getAddressId());
+ userOrderRequest.setTime(orderRequest.getTime());
+ userOrderRequest.setReservationRemark(orderRequest.getReservationRemark());
+ userOrderRequest.setLongitude(orderRequest.getLongitude());
+ userOrderRequest.setLatitude(orderRequest.getLatitude());
+ userOrderRequest.setSubsidy(orderRequest.getSubsidy());
+ userOrderRequest.setDefaultPrice(recoveryServe.getDefaultPrice());
+ userOrderRequest.setServeName(recoveryServe.getServeName());
+ userOrderRequest.setAddress(userRecipient.getAddress());
+ userOrderRequest.setAddressDetail(userRecipient.getAddressDetail());
+ userOrderRequest.setUserId(userId);
+ return orderClient.placeOrder(userOrderRequest).getData();
+
+ }
+
+ @Override
+ public String orderEstimate(OrderRequest orderRequest, Integer userid) {
+ Integer serveId = orderRequest.getServeId();
+ orderRequest.setOrderNumber(String.valueOf(SNOW_FLAKE_ID_WORKER.nextId()));
+ Integer addressId = orderRequest.getAddressId();
+ // 下单相关信息
+ RecoveryServe recoveryServe = recoveryServeService.lambdaQuery().eq(RecoveryServe::getId, serveId)
+ .eq(RecoveryServe::getIsDelete, 0).one();
+ RecoveryServePrice price = servePriceService.lambdaQuery()
+ .eq(RecoveryServePrice::getRecoveryServeId, serveId)
+ .eq(RecoveryServePrice::getCity, orderRequest.getCity())
+ .eq(RecoveryServePrice::getIsDelete, 0).one();
+ if (null == recoveryServe) {
+ throw new GlobalException("下单失败,预约服务信息或收货地址信息异常!");
+ }
+ UserOrderRequest userOrderRequest = new UserOrderRequest();
+ if (null != orderRequest.getAddressId()) {
+ UserRecipient userRecipient = userRecipientService.lambdaQuery().eq(UserRecipient::getId, addressId)
+ .eq(UserRecipient::getIsDelete, 0).one();
+ userOrderRequest.setAddress(userRecipient.getAddress());
+ userOrderRequest.setAddressDetail(userRecipient.getAddressDetail());
+ } else {
+ userOrderRequest.setAddressDetail(orderRequest.getFillAddress());
+ }
+ userOrderRequest.setOrderNumber(orderRequest.getOrderNumber());
+ userOrderRequest.setServeId(orderRequest.getServeId());
+ userOrderRequest.setReservationName(orderRequest.getReservationName());
+ userOrderRequest.setReservationPhone(orderRequest.getReservationPhone());
+ userOrderRequest.setAddressId(orderRequest.getAddressId());
+ userOrderRequest.setTime(orderRequest.getTime());
+ userOrderRequest.setReservationRemark(orderRequest.getReservationRemark());
+ userOrderRequest.setLongitude(orderRequest.getLongitude());
+ userOrderRequest.setLatitude(orderRequest.getLatitude());
+ userOrderRequest.setSubsidy(orderRequest.getSubsidy());
+ // 城市回收价
+ if (null == price) {
+ userOrderRequest.setDefaultPrice(recoveryServe.getDefaultPrice());
+ } else {
+ userOrderRequest.setDefaultPrice(price.getRecoveryPrice());
+ }
+ userOrderRequest.setServeName(recoveryServe.getServeName());
+ userOrderRequest.setUserId(userid);
+ return orderClient.orderEstimate(userOrderRequest).getData();
}
}
--
Gitblit v1.7.1