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