Przeglądaj źródła

开放平台订单列表和订单详情

wangtao 3 lat temu
rodzic
commit
3de1dbd980

+ 11 - 10
lb-app/src/main/java/com/ydd/app/controller/OrderApi.java

@@ -200,11 +200,14 @@ public class OrderApi extends BaseController {
     @ApiOperation("订单列表(分页参数pageNum,pageSize)")
     @ApiImplicitParams({
             @ApiImplicitParam(paramType = "query", name = "status", value = "状态:1->待接单, 2->待配送,3->配送中,4->已完成,-1->已取消,0->待支付"),
-            @ApiImplicitParam(paramType = "query", name = "searchKey", value = "请输入收件人地址或取餐号"),
+            @ApiImplicitParam(paramType = "query", name = "searchKey", value = "请输入收件人地址或取餐号"),
             @ApiImplicitParam(paramType = "query", name = "shopId", value = "门店id"),
-            @ApiImplicitParam(paramType = "query", name = "isNew", value = "是否是新版本(传入1代表是新版本)"),
+//            @ApiImplicitParam(paramType = "query", name = "isNew", value = "是否是新版本(传入1代表是新版本)"),
             @ApiImplicitParam(paramType = "query", name = "startDate", value = "开始日期(yyyy-MM-dd)"),
-            @ApiImplicitParam(paramType = "query", name = "endDate", value = "结束日期(yyyy-MM-dd)")
+            @ApiImplicitParam(paramType = "query", name = "endDate", value = "结束日期(yyyy-MM-dd)"),
+            @ApiImplicitParam(paramType = "query", name = "city", value = "城市"),
+            @ApiImplicitParam(paramType = "query", name = "deliveryId", value = "配送平台"),
+            @ApiImplicitParam(paramType = "query", name = "type", value = "1 订单号 2三方订单号 3收件人手机")
     })
     @RequestMapping(value = "/list", method = RequestMethod.GET)
     @AccessToken
@@ -212,7 +215,10 @@ public class OrderApi extends BaseController {
                                            @RequestParam(required = false, value = "searchKey") String searchKey,
                                            @RequestParam(required = false, value = "shopId") Integer shopId,
                                            @RequestParam(required = false, value = "startDate") String startDate,
-                                           @RequestParam(required = false, value = "endDate") String endDate) {
+                                           @RequestParam(required = false, value = "endDate") String endDate,
+                                           @RequestParam(required = false, value = "city") String city,
+                                           @RequestParam(required = false, value = "deliveryId") Integer deliveryId,
+                                           @RequestParam(required = false, value = "type") Integer type) {
         List<Long> memberIds = new ArrayList<>();
         Long loginId = getLoginId();
         memberIds.add(loginId);
@@ -222,13 +228,8 @@ public class OrderApi extends BaseController {
             List<Long> shopMemberIds = iMemberService.selectByMerchatId(member.getMerchantId());
             memberIds.addAll(shopMemberIds);
         }
-//        else if (member != null && MemberTypeEnum.SHOP.type.equals(member.getMemberType())) {
-//            // 查询门店下所有的门店用户
-//            List<Long> shopMemberIds = iMemberService.selectByShopId(member.getShopId());
-//            memberIds.addAll(shopMemberIds);
-//        }
         startPage();
-        return BaseResult.success(new PageResult(apiOrderDetailService.findList(memberIds, status, searchKey, shopId, startDate, endDate)));
+        return BaseResult.success(new PageResult(apiOrderDetailService.findList(memberIds, status, searchKey, shopId, startDate, endDate,city,deliveryId,type)));
     }
 
     /**

+ 3 - 1
lb-app/src/main/java/com/ydd/app/service/ApiOrderDetailService.java

@@ -8,6 +8,7 @@ import com.ydd.module.domain.Order;
 import com.ydd.module.domain.OrderLog;
 import com.ydd.module.dto.OrderDetailDto;
 import com.ydd.module.dto.OrderDto;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -24,7 +25,8 @@ public interface ApiOrderDetailService {
 
 
 
-    List<Order> findList(List<Long> memberIds, Integer status, String searchKey, Integer shopId, String startDate, String endDate);
+    List<Order> findList(List<Long> memberIds, Integer status, String searchKey, Integer shopId, String startDate, String endDate,
+                         String city, Integer deliveryId, Integer type);
 
     OrderDto findDetail(Long loginId, Integer orderId,String version);
 

+ 31 - 6
lb-app/src/main/java/com/ydd/app/service/impl/ApiOrderDetailServiceImpl.java

@@ -8,6 +8,7 @@ import com.ydd.common.enums.DeliveryTypeEnums;
 import com.ydd.module.domain.*;
 import com.ydd.module.dto.MemberConfigDto;
 import com.ydd.module.dto.OrderDto;
+import com.ydd.module.dto.OrderInfoDto;
 import com.ydd.module.enums.DeliveryStatusEnum;
 import com.ydd.module.expection.CustomAppException;
 import com.ydd.module.service.*;
@@ -62,8 +63,8 @@ public class ApiOrderDetailServiceImpl implements ApiOrderDetailService {
     private final IWaimaiFoodImgService iWaimaiFoodImgService;
 
     @Override
-    public List<Order> findList(List<Long> memberIds, Integer status, String searchKey, Integer shopId,String startDate,String endDate) {
-        List<Order> list = iOrderService.findList(memberIds, status, searchKey,shopId,startDate,endDate);
+    public List<Order> findList(List<Long> memberIds, Integer status, String searchKey, Integer shopId,String startDate,String endDate, String city, Integer deliveryId, Integer type) {
+        List<Order> list = iOrderService.findList(memberIds, status, searchKey,shopId,startDate,endDate,city,deliveryId,type);
         for (Order order : list) {
 //            List<OrderLog> logs = iOrderLogService.list(new QueryWrapper<OrderLog>().eq("order_status", DeliveryStatusEnum.IN_DELIVERY.status).eq("order_id", order.getId()));
 //            if (!CollectionUtils.isEmpty(logs)) {
@@ -165,9 +166,10 @@ public class ApiOrderDetailServiceImpl implements ApiOrderDetailService {
               //  iOrderService.updateById(order);
             }
 
-            DspDelivery dspDelivery = iDspDeliveryService.getById(dto.getDeliveryId());
-            if (dspDelivery != null){
-                dto.setType(dspDelivery.getType());
+          //  DspDelivery dspDelivery = iDspDeliveryService.getById(dto.getDeliveryId());
+            if (delivery != null){
+                dto.setType(delivery.getType());
+                dto.setCustomerPhone(delivery.getCustomerPhone());
             }
             dto = apiRiderLocationService.getRiderLocation(order,orderDelivery,dto,delivery);
         }
@@ -214,6 +216,7 @@ public class ApiOrderDetailServiceImpl implements ApiOrderDetailService {
 //                dto.setIsMoRen(0);
 //            }
 //        }
+        this.setOrderInfoTime(dto);
         // 门店名称
         if (order.getShopId() != null) {
             Shop shop = iShopService.getById(order.getShopId());
@@ -224,5 +227,27 @@ public class ApiOrderDetailServiceImpl implements ApiOrderDetailService {
         log.info("订单详情返回:"+ JSONObject.toJSONString(dto));
         return dto;
     }
-
+    private void setOrderInfoTime(OrderDto dto) {
+        List<OrderLog> orderLogs = iOrderLogService.getOrderLogListByOrderId(dto.getId());
+        if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(orderLogs)) {
+            List<OrderLog> payList = orderLogs.stream().filter(item -> item.getOrderStatus() != null && item.getOrderStatus() == 5).collect(Collectors.toList());
+            List<OrderLog> toBeReceiveList = orderLogs.stream().filter(item -> DeliveryStatusEnum.ORDERS_TO_BE_RECEIVED.status.equals(item.getOrderStatus())).collect(Collectors.toList());
+            List<OrderLog> toBeDeliveredList = orderLogs.stream().filter(item -> DeliveryStatusEnum.TO_BE_DELIVERED.status.equals(item.getOrderStatus())).collect(Collectors.toList());
+            List<OrderLog> cancelList = orderLogs.stream().filter(item -> DeliveryStatusEnum.CANCEL.status.equals(item.getOrderStatus()) || DeliveryStatusEnum.ABNORMAL.status.equals(item.getOrderStatus())).collect(Collectors.toList());
+            List<OrderLog> finishList = orderLogs.stream().filter(item -> DeliveryStatusEnum.FINISH.status.equals(item.getOrderStatus())).collect(Collectors.toList());
+            List<OrderLog> inDeliveredList = orderLogs.stream().filter(item -> DeliveryStatusEnum.IN_DELIVERY.status.equals(item.getOrderStatus())).collect(Collectors.toList());
+            // 支付时间
+            dto.setPayTime(org.apache.commons.collections4.CollectionUtils.isNotEmpty(payList) ? payList.get(0).getCreateTime() : null);
+            // 发单时间
+            dto.setSendTime(org.apache.commons.collections4.CollectionUtils.isNotEmpty(toBeReceiveList) ? toBeReceiveList.get(0).getCreateTime() : null);
+            // 取消时间
+            dto.setCancelTime(org.apache.commons.collections4.CollectionUtils.isNotEmpty(cancelList) ? cancelList.get(0).getCreateTime() : null);
+            // 完成时间
+            dto.setFinishTime(org.apache.commons.collections4.CollectionUtils.isNotEmpty(finishList) ? finishList.get(0).getCreateTime() : null);
+            // 骑手接单时间
+            dto.setShipperReceiveTime(org.apache.commons.collections4.CollectionUtils.isEmpty(toBeDeliveredList) ? null : toBeDeliveredList.get(0).getCreateTime());
+            // 骑手取货时间
+            dto.setShipperTakeTime(org.apache.commons.collections4.CollectionUtils.isEmpty(inDeliveredList) ? null : inDeliveredList.get(0).getCreateTime());
+        }
+    }
 }

+ 15 - 1
lb-module/src/main/java/com/ydd/module/dto/OrderDto.java

@@ -96,7 +96,21 @@ public class OrderDto extends Order implements Serializable {
     private Integer wmstatus;
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date orderTime;
-
+    /**
+     * 支付时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date payTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date sendTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date cancelTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date finishTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date shipperReceiveTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date shipperTakeTime;
     /**
      * 商品金额
      */

+ 2 - 1
lb-module/src/main/java/com/ydd/module/mapper/OrderMapper.java

@@ -57,7 +57,8 @@ public interface OrderMapper extends BaseMapper<Order> {
                                         @Param("startDate") String startDate, @Param("endDate") String endDate,@Param("oldStatus") Integer oldStatus);
 
     List<Order> findList(@Param("memberId") List<Long> loginId, @Param("status") Integer status, @Param("searchKey") String searchKey,
-                         @Param("shopId") Integer shopId, @Param("startDate") String startDate, @Param("endDate") String endDate);
+                         @Param("shopId") Integer shopId, @Param("startDate") String startDate, @Param("endDate") String endDate,
+                         @Param("city") String city, @Param("deliveryId")  Integer deliveryId, @Param("type")  Integer type);
 
     Order getDetail(@Param("memberId") List<Long> loginId, @Param("orderId") Integer orderId);
 

+ 1 - 1
lb-module/src/main/java/com/ydd/module/service/IOrderService.java

@@ -65,7 +65,7 @@ public interface IOrderService extends IService<Order> {
   //  List<OrderDetailDto> findOneKeyList(Long loginId, Integer status, String searchKey, Integer waimaiId, Integer shopId, Integer spId);
     List<OrderDetailDto> findOneKeyList(Long loginId, Integer status, String searchKey, Integer waimaiId, Integer shopId, List<Long> shopIds,String startDate,String endDate,String version);
 
-    List<Order> findList(List<Long> loginId, Integer status, String searchKey,Integer shopId,String startDate,String endDate);
+    List<Order> findList(List<Long> loginId, Integer status, String searchKey,Integer shopId,String startDate,String endDate ,String city, Integer deliveryId, Integer type);
 
     /**
      * 查询订单详情

+ 2 - 2
lb-module/src/main/java/com/ydd/module/service/impl/OrderServiceImpl.java

@@ -589,8 +589,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     }
 
     @Override
-    public List<Order> findList(List<Long> loginIds, Integer status, String searchKey, Integer shopId, String startDate, String endDate) {
-        return baseMapper.findList(loginIds, status, searchKey, shopId, startDate, endDate);
+    public List<Order> findList(List<Long> loginIds, Integer status, String searchKey, Integer shopId, String startDate, String endDate,String city, Integer deliveryId, Integer type) {
+        return baseMapper.findList(loginIds, status, searchKey, shopId, startDate, endDate, city,  deliveryId,  type);
     }
 
     /**

+ 16 - 1
lb-module/src/main/resources/mapper/module/orderMapper.xml

@@ -705,9 +705,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="status == 0">
             AND delivery_status = 0
         </if>
-        <if test="searchKey != null and searchKey != ''">
+        <if test="type==null and searchKey != null and searchKey != ''">
             AND (receipt_address like concat('%', #{searchKey}, '%') or order_sn like concat('%', #{searchKey}, '%'))
         </if>
+        <if test="type ==1 and  searchKey != null and searchKey != ''">
+            AND  order_sn like concat('%', #{searchKey}, '%'))
+        </if>
+        <if test="type ==2 and  searchKey != null and searchKey != ''">
+            AND  out_order_sn like concat('%', #{searchKey}, '%'))
+        </if>
+        <if test="type ==3 and searchKey != null and searchKey != ''">
+            AND  receipt_phone like concat('%', #{searchKey}, '%'))
+        </if>
         <if test="shopId != null ">
             AND shop_id = #{shopId}
         </if>
@@ -717,6 +726,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="endDate != null and endDate!=''">
             AND DATE_FORMAT(create_time,'%Y-%m-%d') &lt;= DATE_FORMAT(#{endDate},'%Y-%m-%d')
         </if>
+        <if test="city != null and city!=''">
+            AND  send_city_name like concat('%', #{city}, '%'))
+        </if>
+        <if test="delivery_id != null ">
+            AND delivery_id = #{deliveryId}
+        </if>
         ORDER BY create_time DESC
     </select>