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