From 242725f795b4cca830421c07f714a3ec36af0add Mon Sep 17 00:00:00 2001
From: hjl <1657978663@qq.com>
Date: 星期二, 02 七月 2024 13:59:39 +0800
Subject: [PATCH] feat: 代码初始化、腾讯云短信SDK

---
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java |  128 +++++++++++++++++++++++++-----------------
 1 files changed, 76 insertions(+), 52 deletions(-)

diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java
index 4952123..98a4736 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java
@@ -5,7 +5,6 @@
 import com.alibaba.excel.write.builder.ExcelWriterBuilder;
 import com.alibaba.excel.write.metadata.WriteSheet;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.admin.entity.*;
@@ -19,7 +18,6 @@
 import com.ruoyi.common.core.constant.OrderConstants;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.GlobalException;
-import com.ruoyi.common.core.utils.StringUtils;
 import org.apache.commons.codec.CharEncoding;
 import org.springframework.stereotype.Service;
 
@@ -32,7 +30,6 @@
 import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -61,10 +58,12 @@
     private ServeCoordinateService serveCoordinateService;
     @Resource
     private EvaluateService evaluateService;
+    @Resource
+    private ChangeDispatchService changeDispatchService;
 
     @Override
     public OrderResultVO orderCountHome(OrderCountRequest orderCount) {
-        List<String> cityId = orderCount.getCityIdList();
+        List<String> cityList = orderCount.getCityList();
         Integer orderState = orderCount.getOrderState();
         String countType = orderCount.getCountType();
         String startTime = orderCount.getStartTime();
@@ -72,13 +71,13 @@
         List<OrderQueryVO> list;
         // 根据查询类型查询订单信息
         if (OrderConstants.YEAR.equals(countType)) {
-            list = baseMapper.orderCountByYear(cityId, orderState, startTime, endTime);
+            list = baseMapper.orderCountByYear(cityList, orderState, startTime, endTime);
         } else if (OrderConstants.MONTH.equals(countType)) {
-            list = baseMapper.orderCountByMonth(cityId, orderState, startTime, endTime);
+            list = baseMapper.orderCountByMonth(cityList, orderState, startTime, endTime);
         } else if (OrderConstants.WEEK.equals(countType)) {
-            list = baseMapper.orderCountByWeek(cityId, orderState, startTime, endTime);
+            list = baseMapper.orderCountByWeek(cityList, orderState, startTime, endTime);
         } else if (OrderConstants.TODAY.equals(countType)) {
-            list = baseMapper.orderCountByToday(cityId, orderState, startTime, endTime);
+            list = baseMapper.orderCountByToday(cityList, orderState, startTime, endTime);
         } else {
             list = new ArrayList<>();
         }
@@ -96,22 +95,22 @@
     }
 
     @Override
-    public BigDecimal totalMoneyByQuarter(String startDateStr, String endDateStr, List<String> cityIdList) {
-        return baseMapper.totalMoneyByQuarter(startDateStr, endDateStr, cityIdList);
+    public BigDecimal totalMoneyByQuarter(String startDateStr, String endDateStr, List<String> cityList) {
+        return baseMapper.totalMoneyByQuarter(startDateStr, endDateStr, cityList);
     }
 
     @Override
-    public BigDecimal totalMoneyByYear(List<String> cityIdList) {
-        return baseMapper.totalMoneyByYear(cityIdList);
+    public BigDecimal totalMoneyByYear(List<String> cityList) {
+        return baseMapper.totalMoneyByYear(cityList);
     }
 
     @Override
-    public BigDecimal totalMoneyByMonth(List<String> cityIdList) {
-        return baseMapper.totalMoneyByMonth(cityIdList);
+    public BigDecimal totalMoneyByMonth(List<String> cityList) {
+        return baseMapper.totalMoneyByMonth(cityList);
     }
 
     @Override
-    public R<String> excelExport(List<String> idList, HttpServletResponse response) {
+    public R<String> excelExport(OrderQueryRequest orderQueryRequest, HttpServletResponse response) {
         try {
             response.setCharacterEncoding(Constants.UTF8);
             response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
@@ -121,7 +120,13 @@
             return R.fail("excel导出失败!");
         }
         try {
-            List<Order> list = lambdaQuery().in(Order::getId, idList).eq(Order::getIsDelete, 0).list();
+            List<String> ids = orderQueryRequest.getIds();
+            List<Order> list;
+            if (null != ids && !ids.isEmpty()) {
+                list = baseMapper.exportByIdList(ids);
+            } else {
+                list = baseMapper.exportList(orderQueryRequest);
+            }
             // excel模板封装
             ExcelWriterBuilder excelWriterBuilder = EasyExcelFactory.write(response.getOutputStream());
             InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("template/" + Constants.EXCEL_ORDER_FILE_NAME + ".xlsx");
@@ -141,32 +146,20 @@
 
     @Override
     public IPage<Order> queryPage(OrderQueryRequest orderQueryRequest) {
-        // 查询参数
-        String orderNumber = orderQueryRequest.getOrderNumber();
-        String cityName = orderQueryRequest.getCityName();
-        String reservationName = orderQueryRequest.getReservationName();
-        String reservationPhone = orderQueryRequest.getReservationPhone();
-        Integer state = orderQueryRequest.getState();
-        String workerName = orderQueryRequest.getWorkerName();
-        String workerPhone = orderQueryRequest.getWorkerPhone();
-        Date orderTime = orderQueryRequest.getOrderTime();
-        Date time = orderQueryRequest.getTime();
-        String serveName = orderQueryRequest.getServeName();
         Page<Order> page = Page.of(orderQueryRequest.getPageNum(), orderQueryRequest.getPageSize());
-        // 构建查询体
-        LambdaQueryChainWrapper<Order> wrapper = lambdaQuery();
-        wrapper = StringUtils.isNotBlank(orderNumber) ? wrapper.like(Order::getOrderNumber, orderNumber) : wrapper;
-        wrapper = StringUtils.isNotBlank(cityName) ? wrapper.like(Order::getReservationAddress, cityName) : wrapper;
-        wrapper = StringUtils.isNotBlank(reservationName) ? wrapper.like(Order::getReservationName, reservationName) : wrapper;
-        wrapper = StringUtils.isNotBlank(reservationPhone) ? wrapper.like(Order::getReservationPhone, reservationPhone) : wrapper;
-        wrapper = null != state ? wrapper.eq(Order::getState, state) : wrapper;
-        wrapper = StringUtils.isNotBlank(workerName) ? wrapper.like(Order::getServerName, workerName) : wrapper;
-        wrapper = StringUtils.isNotBlank(workerPhone) ? wrapper.like(Order::getServerPhone, workerPhone) : wrapper;
-        wrapper = null != orderTime ? wrapper.eq(Order::getCreateTime, orderTime) : wrapper;
-        wrapper = null != time ? wrapper.eq(Order::getTime, time) : wrapper;
-        wrapper = StringUtils.isNotBlank(serveName) ? wrapper.like(Order::getServeName, serveName) : wrapper;
         // 基础查询
-        return wrapper.eq(Order::getIsDelete, 0).orderByDesc(Order::getCreateTime).page(page);
+        IPage<Order> pageList = baseMapper.queryPage(orderQueryRequest, page);
+        for (Order order : pageList.getRecords()) {
+            ChangeDispatch changeDispatch = changeDispatchService.lambdaQuery()
+                    .eq(ChangeDispatch::getOrderId, order.getId())
+                    .eq(ChangeDispatch::getIsDelete, 0)
+                    .orderByDesc(ChangeDispatch::getCreateTime)
+                    .last("limit 1").one();
+            if (null != changeDispatch) {
+                order.setApplyReason(changeDispatch.getApplyReason());
+            }
+        }
+        return pageList;
     }
 
     @Override
@@ -191,18 +184,17 @@
         Evaluate evaluate = evaluateService.lambdaQuery().eq(Evaluate::getOrderId, order.getId())
                 .eq(Evaluate::getIsDelete, 0).one();
         OrderByEvaluateVO orderByEvaluate = new OrderByEvaluateVO();
-        orderByEvaluate.setStarRating(evaluate.getStarRating());
-        orderByEvaluate.setEvaluateTime(evaluate.getCreateTime());
-        orderByEvaluate.setEvaluateContent(evaluate.getContent());
+        if (null != evaluate) {
+            orderByEvaluate.setStarRating(evaluate.getStarRating());
+            orderByEvaluate.setEvaluateTime(evaluate.getCreateTime());
+            orderByEvaluate.setEvaluateContent(evaluate.getContent());
+        }
         result.setEvaluateInfo(orderByEvaluate);
     }
 
     private void serveRecordInfo(OrderDetailVO result, Order order) {
         ServeRecord serveRecord = serveRecordService.lambdaQuery().eq(ServeRecord::getOrderId, order.getId())
                 .eq(ServeRecord::getIsDelete, 0).one();
-        if (null == serveRecord) {
-            throw new GlobalException("服务记录信息异常,请重试");
-        }
         // 师傅路线轨迹
         List<ServeCoordinate> serveCoordinateList = serveCoordinateService.lambdaQuery().eq(ServeCoordinate::getWorkerId, order.getServerId())
                 .eq(ServeCoordinate::getIsDelete, 0).orderByDesc(ServeCoordinate::getCreateTime).list();
@@ -210,7 +202,9 @@
         orderByServeRecord.setAcceptOrderTime(order.getAcceptTime());
         orderByServeRecord.setReachTime(order.getTime());
         orderByServeRecord.setCoordinate(serveCoordinateList.stream().map(ServeCoordinate::getCoordinate).collect(Collectors.toList()));
-        orderByServeRecord.setPhoto(Arrays.stream(serveRecord.getPhoto().split(",")).collect(Collectors.toList()));
+        if (null != serveRecord) {
+            orderByServeRecord.setPhoto(Arrays.stream(serveRecord.getPhoto().split(",")).collect(Collectors.toList()));
+        }
         result.setServeRecordInfo(orderByServeRecord);
     }
 
@@ -259,12 +253,11 @@
     private void userInfo(OrderDetailVO result, Order order) {
         Integer userId = order.getUserId();
         User user = userMapper.selectById(userId);
-        if (null == user) {
-            throw new GlobalException("预约人信息异常,请重试");
-        }
         OrderByUserInfoVO orderByUserInfo = new OrderByUserInfoVO();
-        orderByUserInfo.setProfilePicture(user.getProfilePicture());
-        orderByUserInfo.setUserNumber(user.getUserNo());
+        if (null != user) {
+            orderByUserInfo.setProfilePicture(user.getProfilePicture());
+            orderByUserInfo.setUserNumber(user.getUserNo());
+        }
         orderByUserInfo.setReservationName(order.getReservationName());
         orderByUserInfo.setReservationPhone(order.getReservationPhone());
         orderByUserInfo.setReservationAddress(order.getReservationAddress());
@@ -276,4 +269,35 @@
     public IPage<OrderCountVO> orderCount(String name, String phone, Page<OrderCountVO> page) {
         return baseMapper.orderCount(name, phone, page);
     }
+
+    @Override
+    public OrderPageCountVO orderPageCount() {
+        List<Order> orderList = baseMapper.orderPageCount();
+        int total = 0;
+        int toBeDispatched = 0;
+        int stayDoorstep = 0;
+        int toBeCompleted = 0;
+        int completed = 0;
+        int canceled = 0;
+        int reInvestment = 0;
+        for (Order order : orderList) {
+            total++;
+            Integer state = order.getState();
+            if (Constants.ZERO.equals(state)) {
+                toBeDispatched++;
+            } else if (Constants.ONE.equals(state)) {
+                stayDoorstep++;
+            } else if (Constants.TWO.equals(state)) {
+                toBeCompleted++;
+            } else if (Constants.THREE.equals(state)) {
+                completed++;
+            } else if (Constants.FOUR.equals(state)) {
+                canceled++;
+            } else if (Constants.FIVE.equals(state)) {
+                reInvestment++;
+            }
+        }
+        return new OrderPageCountVO(total, toBeDispatched, stayDoorstep,
+                toBeCompleted, completed, canceled, reInvestment);
+    }
 }

--
Gitblit v1.7.1