From 2855ae89d2ab6268e1edc42c3e9d7e73c8e7259e Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期二, 03 九月 2024 10:09:24 +0800
Subject: [PATCH] 8.9

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java |   81 ++++++++++++++++++++++++++++++++++------
 1 files changed, 68 insertions(+), 13 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
index c07ae66..5cda282 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -4,7 +4,10 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.constant.OrderConstants;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.GaoDeMapUtil;
+import com.ruoyi.common.core.vo.AddressDto;
+import com.ruoyi.common.core.vo.PaperInVo;
 import com.ruoyi.common.core.vo.Path;
 import com.ruoyi.order.entity.ChangeDispatch;
 import com.ruoyi.order.entity.Order;
@@ -13,16 +16,20 @@
 import com.ruoyi.order.service.ChangeDispatchService;
 import com.ruoyi.order.service.OrderService;
 import com.ruoyi.order.vo.*;
+import com.ruoyi.user.api.feignClient.UserClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.Month;
 import java.time.Year;
 import java.time.temporal.TemporalAdjusters;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 
@@ -40,6 +47,8 @@
 
     @Resource
     private ChangeDispatchService changeDispatchService;
+    @Resource
+    private UserClient userClient;
 
     @Override
     public OrderResultVO orderCountHome(OrderCountRequest orderCount) {
@@ -51,29 +60,52 @@
         List<OrderQueryVO> list;
         // 根据查询类型查询订单信息
         if (OrderConstants.YEAR.equals(countType)) {
-            list = baseMapper.orderCountByYear(cityList, orderState, startTime, endTime);
+            list = baseMapper.orderCountByYear(cityList, orderState);
         } else if (OrderConstants.MONTH.equals(countType)) {
-            list = baseMapper.orderCountByMonth(cityList, orderState, startTime, endTime);
+            list = baseMapper.orderCountByMonth(cityList, orderState);
         } else if (OrderConstants.WEEK.equals(countType)) {
-            list = baseMapper.orderCountByWeek(cityList, orderState, startTime, endTime);
+            list = baseMapper.orderCountByWeek(cityList, orderState);
         } else if (OrderConstants.TODAY.equals(countType)) {
-            list = baseMapper.orderCountByToday(cityList, orderState, startTime, endTime);
+            list = baseMapper.orderCountByToday(cityList, orderState);
         } else {
-            list = new ArrayList<>();
+            try {
+                startTime = startTime + " 00:00:00";
+                endTime = endTime + " 00:00:00";
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                Date date1 = sdf.parse(startTime);
+                Date date2 = sdf.parse(endTime);
+                long diffInMillis = date2.getTime() - date1.getTime();
+                long diffInDays = diffInMillis / (24 * 60 * 60 * 1000);
+                if (diffInDays > Constants.YEAR_DAY) {
+                    list = baseMapper.orderCountByTimeRangeYear(cityList, startTime, endTime, orderState);
+                } else if (diffInDays > Constants.THIRTY) {
+                    list = baseMapper.orderCountByTimeRangeMonth(cityList, startTime, endTime, orderState);
+                } else {
+                    list = baseMapper.orderCountByTimeRange(cityList, startTime, endTime, orderState);
+                }
+            } catch (ParseException e) {
+                list = new ArrayList<>();
+            }
         }
         // 计算订单总额及总订单数量
         BigDecimal totalMoney;
         int orderNumber;
+        int fakeNumber;
         if (list.isEmpty()) {
             totalMoney = BigDecimal.ZERO;
             orderNumber = 0;
+            fakeNumber = 0;
         } else {
             totalMoney = list.stream().map(OrderQueryVO::getTotalPrice)
                     .filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
             orderNumber = list.stream().filter(order -> order.getNumber() != null)
                     .mapToInt(OrderQueryVO::getNumber).sum();
+            fakeNumber = list.stream().filter(order -> order.getFakeCount() != null)
+                    .mapToInt(OrderQueryVO::getFakeCount).sum();
+
         }
-        return new OrderResultVO(totalMoney, orderNumber, list);
+        return new OrderResultVO(totalMoney, orderNumber, list,fakeNumber);
+
     }
 
     @Override
@@ -108,8 +140,8 @@
 
 
     @Override
-    public Page<OrderCountVO> orderCount(String name, String phone, Page<OrderCountVO> page) {
-        return baseMapper.orderCount(name, phone, page);
+    public Page<OrderCountVO> orderCount(String name, String phone, List<String> cityList, Page<OrderCountVO> page) {
+        return baseMapper.orderCount(name, phone, cityList, page);
     }
 
     @Override
@@ -136,7 +168,7 @@
             } else if (Constants.FOUR.equals(state)) {
                 canceled++;
             }
-            if (order.getIsReinvest() != null && order.getIsReinvest() == 1) {
+            if (order.getState().equals(Constants.SIX)) {
                 reInvestment++;
             }
         }
@@ -222,6 +254,9 @@
 
     @Override
     public Boolean placeOrder(UserOrderRequest userOrderRequest) {
+
+        R<AddressDto> cityCode = userClient.getCityCode(userOrderRequest.getAddressId());
+
         // 下单参数
         String orderNumber = userOrderRequest.getOrderNumber();
         Integer serveId = userOrderRequest.getServeId();
@@ -246,7 +281,7 @@
         order.setUserId(userId);
         order.setReservationName(reservationName);
         order.setReservationPhone(reservationPhone);
-        order.setReservationAddress(address);
+        order.setReservationAddress(address+cityCode.getData().getName());
         order.setTime(time);
         order.setReservationRemark(reservationRemark);
         order.setOrderMoney(defaultPrice.add(new BigDecimal(String.valueOf(subsidy))));
@@ -257,11 +292,23 @@
         order.setIsWithdrawal(Constants.ZERO);
         order.setSubsidy(subsidy);
         order.setAddress(addressDetail);
+        order.setIsEvaluate(Constants.ZERO);
+
+        order.setCity(cityCode.getData().getCity());
+        order.setCityCode(cityCode.getData().getCityCode());
         return this.save(order);
     }
 
+
     @Override
     public String orderEstimate(UserOrderRequest userOrderRequest) {
+        R<AddressDto> cityCode = userClient.getCityCode(userOrderRequest.getAddressId());
+        R<BigDecimal> servePrice = userClient.getServePrice(userOrderRequest.getServeId(), cityCode.getData().getCityCode());
+        if (servePrice.getData()!=null){
+            userOrderRequest.setDefaultPrice(servePrice.getData());
+        }
+
+
         // 下单参数
         String orderNumber = userOrderRequest.getOrderNumber();
         Integer serveId = userOrderRequest.getServeId();
@@ -284,12 +331,13 @@
         order.setServeName(serveName);
         order.setServePrice(defaultPrice);
         order.setUserId(userId);
+        order.setIsEvaluate(Constants.ZERO);
         order.setReservationName(reservationName);
         order.setReservationPhone(reservationPhone);
         if (null == userOrderRequest.getAddressId()) {
-            order.setReservationAddress(addressDetail);
+            order.setReservationAddress(cityCode.getData().getName()+address+cityCode.getData().getDetail());
         } else {
-            order.setReservationAddress(address);
+            order.setReservationAddress(address+cityCode.getData().getName()+cityCode.getData().getDetail());
         }
         order.setTime(time);
         order.setReservationRemark(reservationRemark);
@@ -304,11 +352,18 @@
         order.setLatitude(latitude);
         order.setIsWithdrawal(Constants.ZERO);
         order.setSubsidy(subsidy);
-        order.setAddress(addressDetail);
+        order.setAddress("");
+        order.setCity(cityCode.getData().getCity());
+        order.setCityCode(cityCode.getData().getCityCode());
         this.save(order);
         return String.valueOf(order.getId());
     }
 
+    @Override
+    public List<PaperInVo> papercout(String workId,String date) {
+        return this.baseMapper.papercout(workId,date);
+    }
+
     /**
      * 根据当前月份获取当前季度的开始月份
      */

--
Gitblit v1.7.1