pt-admin/src/main/java/com/ruoyi/web/controller/errand/CourierController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pt-admin/src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pt-errand/src/main/java/com/ruoyi/errand/object/vo/app/WorkNumberVO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pt-errand/src/main/java/com/ruoyi/errand/service/CourierService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pt-errand/src/main/java/com/ruoyi/errand/service/impl/CourierServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pt-errand/src/main/java/com/ruoyi/errand/utils/JwtUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
pt-admin/src/main/java/com/ruoyi/web/controller/errand/CourierController.java
@@ -49,6 +49,16 @@ } /** * 工作台-数据统计 */ @GetMapping("/getWorkNumber") @ApiOperation(value = "工作台-订单数量统计",tags = "app用户端-跑腿员") public R<WorkNumberVO> getWorkNumber() { return R.ok(courierService.getWorkNumber()); } /** * 订单列表 1待确认2进行中3已取消4已完成 */ @GetMapping("/getCourierOrderList") pt-admin/src/main/resources/application.yml
@@ -17,6 +17,7 @@ server: # 服务器的HTTP端口,默认为8080 port: 8080 # port: 8086 servlet: # 应用的访问路径 context-path: / pt-errand/src/main/java/com/ruoyi/errand/object/vo/app/WorkNumberVO.java
New file @@ -0,0 +1,18 @@ package com.ruoyi.errand.object.vo.app; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel("") public class WorkNumberVO { @ApiModelProperty("全部") private Integer totalNumber; @ApiModelProperty("待接单") private Integer waitNumber; @ApiModelProperty("进行中") private Integer inProgressNumber; @ApiModelProperty("完成") private Integer completedNumber; } pt-errand/src/main/java/com/ruoyi/errand/service/CourierService.java
@@ -7,10 +7,7 @@ import com.ruoyi.errand.object.dto.sys.AddCourierDTO; import com.ruoyi.errand.object.dto.sys.CourierPageListDTO; import com.ruoyi.errand.object.dto.sys.EditCourierDTO; import com.ruoyi.errand.object.vo.app.CompleteOrderDTO; import com.ruoyi.errand.object.vo.app.CourierInfoVO; import com.ruoyi.errand.object.vo.app.CourierOrderListVO; import com.ruoyi.errand.object.vo.app.CourierStatisticsVO; import com.ruoyi.errand.object.vo.app.*; import com.ruoyi.errand.object.vo.sys.AllCourierListVO; import com.ruoyi.errand.object.vo.sys.CourierPageListVO; import com.ruoyi.errand.object.vo.sys.CourierSysDetailVO; @@ -42,4 +39,6 @@ void delete(Integer id); List<AllCourierListVO> getAllCourierList(); WorkNumberVO getWorkNumber(); } pt-errand/src/main/java/com/ruoyi/errand/service/impl/CourierServiceImpl.java
@@ -17,10 +17,7 @@ import com.ruoyi.errand.object.dto.sys.AddCourierDTO; import com.ruoyi.errand.object.dto.sys.CourierPageListDTO; import com.ruoyi.errand.object.dto.sys.EditCourierDTO; import com.ruoyi.errand.object.vo.app.CompleteOrderDTO; import com.ruoyi.errand.object.vo.app.CourierInfoVO; import com.ruoyi.errand.object.vo.app.CourierOrderListVO; import com.ruoyi.errand.object.vo.app.CourierStatisticsVO; import com.ruoyi.errand.object.vo.app.*; import com.ruoyi.errand.object.vo.sys.AllCourierListVO; import com.ruoyi.errand.object.vo.sys.AppUserPageListVO; import com.ruoyi.errand.object.vo.sys.CourierPageListVO; @@ -40,10 +37,7 @@ import java.time.LocalDateTime; import java.time.LocalTime; import java.time.temporal.TemporalAdjusters; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.*; import java.util.stream.Collectors; @Service @@ -458,6 +452,47 @@ } @Override public WorkNumberVO getWorkNumber() { AppUser appuser = (AppUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (appuser.getCourierId()==null){ throw new ServiceException("您还不是跑腿员"); } CommunityCourier communityCourier = communityCourierMapper.selectOne(new LambdaUpdateWrapper<CommunityCourier>() .eq(CommunityCourier::getCourierId, appuser.getCourierId())); if(communityCourier==null){ throw new ServiceException("您未绑定小区"); } //查询订单 List<Order> orderList = orderMapper.selectList(new LambdaQueryWrapper<Order>() .eq(Order::getCourierId, communityCourier.getCourierId()) .eq(Order::getDelFlag, DelFlagConstant.UNDELETE) .eq(Order::getPayStatus,2) ); Map<Integer, List<Order>> orderStatusMap = orderList.stream().collect(Collectors.groupingBy(Order::getOrderStatus)); Integer totalNum=orderList.size(); Integer inProgressNumber = orderStatusMap.getOrDefault(2, Collections.emptyList()).size(); Integer completedNumber = orderStatusMap.getOrDefault(4, Collections.emptyList()).size(); completedNumber += orderStatusMap.getOrDefault(5, Collections.emptyList()).size(); //待接单 Integer waitNumber = Math.toIntExact(orderMapper.selectCount( new LambdaQueryWrapper<Order>() .eq(Order::getDelFlag, 0) .eq(Order::getOrderStatus, 1) .eq(Order::getPayStatus, 2) .eq(Order::getCommunityId, communityCourier.getCommunityId()) )); totalNum += waitNumber; WorkNumberVO workNumberVO = new WorkNumberVO(); workNumberVO.setTotalNumber(totalNum); workNumberVO.setCompletedNumber(completedNumber); workNumberVO.setInProgressNumber(inProgressNumber); workNumberVO.setWaitNumber(waitNumber); return workNumberVO; } private static long countByTimeRange(List<Order> orderList, LocalDateTime start, LocalDateTime end) { return orderList.stream() .filter(order -> order.getReceivingTime() != null) // 过滤空时间 pt-errand/src/main/java/com/ruoyi/errand/utils/JwtUtil.java
@@ -18,7 +18,7 @@ * 用户生成jwt令牌相关配置 */ private static final String secretKey = "xx"; private static final long ttl =7200000; private static final long ttl =2592000000L; private static final String tokenName = "Authorization"; /**