hjl
2024-07-02 242725f795b4cca830421c07f714a3ec36af0add
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java
@@ -58,6 +58,8 @@
    private ServeCoordinateService serveCoordinateService;
    @Resource
    private EvaluateService evaluateService;
    @Resource
    private ChangeDispatchService changeDispatchService;
    @Override
    public OrderResultVO orderCountHome(OrderCountRequest orderCount) {
@@ -108,7 +110,7 @@
    }
    @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");
@@ -118,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");
@@ -140,7 +148,18 @@
    public IPage<Order> queryPage(OrderQueryRequest orderQueryRequest) {
        Page<Order> page = Page.of(orderQueryRequest.getPageNum(), orderQueryRequest.getPageSize());
        // 基础查询
        return baseMapper.queryPage(orderQueryRequest, 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
@@ -165,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();
@@ -184,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);
    }
@@ -233,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());
@@ -252,8 +271,8 @@
    }
    @Override
    public OrderPageCountVO orderPageCount(OrderQueryRequest orderQueryRequest) {
        List<Order> orderList = baseMapper.orderPageCount(orderQueryRequest);
    public OrderPageCountVO orderPageCount() {
        List<Order> orderList = baseMapper.orderPageCount();
        int total = 0;
        int toBeDispatched = 0;
        int stayDoorstep = 0;