From ec6d43aa07ee0e8faf34498057ebcfbb446aa015 Mon Sep 17 00:00:00 2001
From: hjl <1657978663@qq.com>
Date: 星期二, 16 七月 2024 09:21:51 +0800
Subject: [PATCH] feat: 代码重构

---
 ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/OrderServiceImpl.java |   95 ++++++++++++++++++++++++++++++++---------------
 1 files changed, 64 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 34f1368..e2bbacd 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
@@ -2,8 +2,10 @@
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 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.UserRecipient;
@@ -15,7 +17,6 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.math.BigDecimal;
 import java.util.List;
 import java.util.Random;
 import java.util.stream.Collectors;
@@ -35,6 +36,13 @@
     private UserRecipientService userRecipientService;
     @Resource
     private RecoveryServeService recoveryServeService;
+    @Resource
+    private OrderClient orderClient;
+
+    /**
+     * 雪花算法类
+     */
+    private static final SnowflakeIdWorker SNOW_FLAKE_ID_WORKER = new SnowflakeIdWorker(5, 5);
 
     @Override
     public Object obtainAllowance(List<Prize> prizeList) {
@@ -66,16 +74,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();
-        String 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();
@@ -84,28 +84,61 @@
         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);
+        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();
+
+        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());
+        userOrderRequest.setDefaultPrice(recoveryServe.getDefaultPrice());
+        userOrderRequest.setServeName(recoveryServe.getServeName());
+        userOrderRequest.setUserId(userid);
+        return orderClient.orderEstimate(userOrderRequest).getData();
+    }
+
 }

--
Gitblit v1.7.1