Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master'

wang 3 өдөр өмнө
parent
commit
a0b35cefe4

+ 4 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/model/Order.java

@@ -222,6 +222,10 @@ public class Order implements Serializable {
     @ApiModelProperty("买家手机号")
     private String userMobile;
 
+    @TableField(exist = false)
+    @ApiModelProperty("收货人")
+    private String receiver;
+
     @TableField(exist = false)
     private List<OrderItem> orderItems;
 

+ 1 - 1
yami-shop-bean/src/main/java/com/yami/shop/bean/model/ShopCategory.java

@@ -92,7 +92,7 @@ public class ShopCategory implements Serializable {
     /**
      * 标签
      */
-    private String label;
+    private Long label;
 
     /**
      * 子类名称(导入时处理需要)

+ 78 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/param/BackendOrderParam.java

@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2018-2999 广州亚米信息科技有限公司 All rights reserved.
+ *
+ * https://www.gz-yami.com/
+ *
+ * 未经允许,不可做商业用途!
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.yami.shop.bean.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class BackendOrderParam {
+
+    /**
+     * 开始时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
+
+    /**
+     * 结束时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date endTime;
+
+    /**
+     * 店铺id
+     */
+    private Long shopId;
+
+    /**
+     * 订购流水号
+     */
+    private String orderNumber;
+
+    @ApiModelProperty("全部-all " +
+            "待支付-paddingPay(0) " +
+            "待发货-paddingShipped(1) " +
+            "待收货-paddingReceived(20 30 40 70) " +
+            "已完成-completed(80) " +
+            "已取消-cancel(60)")
+    /**
+     * 海博订单状态:0-待支付,
+     * 1-待发货(快递使用),
+     * 20-订单已接单(待拣货),
+     * 30-订单待配送(拣货完成/自提类订单为待自提),
+     * 40-订单配送中 ,
+     * 50-订单取消待审核,
+     * 60-订单已取消,
+     * 70-订单已送达,
+     * 80-订单已完成
+     */
+    private String orderStatus;
+
+    /**
+     * 收货人姓名
+     */
+    private String receiver;
+
+    /**
+     * 收货人手机号
+     */
+    private String mobile;
+
+    /**
+     * 订单退款状态参考refundStatus(1:申请退款 2:退款成功 3:部分退款成功 4:退款失败)
+     */
+    private Integer refundStatus;
+
+}

+ 19 - 4
yami-shop-platform/src/main/java/com/yami/shop/platform/controller/OrderController.java

@@ -17,6 +17,7 @@ import com.yami.shop.bean.enums.OrderStatus;
 import com.yami.shop.bean.model.Order;
 import com.yami.shop.bean.model.OrderItem;
 import com.yami.shop.bean.model.UserAddrOrder;
+import com.yami.shop.bean.param.BackendOrderParam;
 import com.yami.shop.bean.param.DeliveryOrderParam;
 import com.yami.shop.bean.param.OrderParam;
 import com.yami.shop.bean.param.OrderPayParam;
@@ -29,12 +30,12 @@ import lombok.AllArgsConstructor;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 
 /**
@@ -44,7 +45,7 @@ import java.util.Objects;
  * @version 1.0.0
  * @since 2018-09-15
  */
-@Controller
+@RestController
 @RequestMapping("/platform/order")
 @AllArgsConstructor
 public class OrderController {
@@ -60,12 +61,26 @@ public class OrderController {
      * 分页获取
      */
     @GetMapping("/page")
-    @PreAuthorize("@pms.hasPermission('platform:order:page')")
+//    @PreAuthorize("@pms.hasPermission('platform:order:page')")
     public R<IPage<Order>> page(OrderParam orderParam, PageParam<Order> page) {
         IPage<Order> orderIPage = orderService.pageOrdersDetialByOrderParam(page, orderParam);
         return R.SUCCESS(orderIPage);
     }
 
+    @GetMapping("/deliverList")
+    @ApiOperation("后管端-快递订单列表")
+    public R<IPage<Order>> deliverList(BackendOrderParam orderParam, PageParam<Order> page) {
+        IPage<Order> orderIPage = orderService.deliverList(page, orderParam);
+        return R.SUCCESS(orderIPage);
+    }
+
+    @GetMapping("/deliverListStatusNum")
+    @ApiOperation("后管端-快递订单列表-订单状态数量")
+    public R<Map<String,Integer>> deliverListStatusNum() {
+        return R.SUCCESS(orderService.deliverListStatusNum());
+    }
+
+
     /**
      * 根据商家获取支付信息
      */
@@ -81,7 +96,7 @@ public class OrderController {
      * 获取信息
      */
     @GetMapping("/orderInfo/{orderNumber}")
-    @PreAuthorize("@pms.hasPermission('platform:order:info')")
+//    @PreAuthorize("@pms.hasPermission('platform:order:info')")
     public R<Order> info(@PathVariable("orderNumber") String orderNumber) {
         Order order = orderService.getOne(new LambdaUpdateWrapper<Order>().eq(Order::getOrderNumber, orderNumber));
         if (order == null) {

+ 11 - 0
yami-shop-platform/src/main/java/com/yami/shop/platform/controller/hb/FrontCategoryController.java

@@ -1,12 +1,15 @@
 package com.yami.shop.platform.controller.hb;
 
 import com.alibaba.fastjson.JSONObject;
+import com.yami.shop.bean.model.FrontCategory;
 import com.yami.shop.common.util.hb.HBR;
 import com.yami.shop.service.hb.IHBFrontCategoryService;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * 海博-前台类目管理
  *
@@ -60,4 +63,12 @@ public class FrontCategoryController {
     }
 
 
+    /**
+     * 通过门店shopId和hbShopId同步全部前台类目
+     */
+    @GetMapping("/sync")
+    public void sync(Long shopId, Long hbShopId) {
+        frontCategoryService.sync(shopId, hbShopId);
+    }
+
 }

+ 4 - 0
yami-shop-service/src/main/java/com/yami/shop/dao/OrderMapper.java

@@ -17,6 +17,7 @@ import com.yami.shop.bean.app.dto.MyOrderItemDto;
 import com.yami.shop.bean.app.dto.OrderCountData;
 import com.yami.shop.bean.distribution.UserShoppingDataDto;
 import com.yami.shop.bean.model.Order;
+import com.yami.shop.bean.param.BackendOrderParam;
 import com.yami.shop.bean.param.OrderParam;
 import com.yami.shop.bean.param.OrderPayParam;
 import com.yami.shop.common.util.PageAdapter;
@@ -41,6 +42,8 @@ public interface OrderMapper extends BaseMapper<Order> {
 
     List<Order> listOrdersDetialByOrderParam(@Param("adapter") PageAdapter adapter, @Param("orderParam") OrderParam orderParam);
 
+    List<Order> deliverList(@Param("adapter") PageAdapter adapter, @Param("orderParam") BackendOrderParam orderParam);
+
     Long countOrderDetial(@Param("orderParam") OrderParam orderParam);
 
     UserShoppingDataDto calculateUserInShopData(@Param("shopId") Long shopId, @Param("userId") String userId);
@@ -118,4 +121,5 @@ public interface OrderMapper extends BaseMapper<Order> {
 
     void updateByToPaySuccessDelivery(@Param("orderNumbers") List<String> orderNumbers, @Param("payType") Integer payType);
 
+    Integer statusCount(@Param("status") List<Integer> status);
 }

+ 6 - 2
yami-shop-service/src/main/java/com/yami/shop/service/OrderService.java

@@ -20,10 +20,9 @@ import com.yami.shop.bean.model.Order;
 import com.yami.shop.bean.model.OrderItem;
 import com.yami.shop.bean.model.OrderRefund;
 import com.yami.shop.bean.param.*;
-import org.springframework.web.bind.annotation.RequestBody;
+import com.yami.shop.common.util.PageParam;
 
 import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -93,6 +92,8 @@ public interface OrderService extends IService<Order> {
 
     IPage<Order> pageOrdersDetialByOrderParam(Page<Order> page, OrderParam orderParam);
 
+    IPage<Order> deliverList(PageParam<Order> page, BackendOrderParam orderParam);
+
     void deleteOrders(List<Order> orders);
 
     OrderCountData getOrderCount(String userId);
@@ -144,4 +145,7 @@ public interface OrderService extends IService<Order> {
      * @return {@link OrderRefundAmountDTO}
      */
     OrderRefundAmountDTO computeOrderRefundAmount(String orderNumber, List<OrderRefundAmountParam> suk);
+
+    Map<String,Integer> deliverListStatusNum();
+
 }

+ 14 - 0
yami-shop-service/src/main/java/com/yami/shop/service/hb/IHBFrontCategoryService.java

@@ -1,6 +1,7 @@
 package com.yami.shop.service.hb;
 
 import com.alibaba.fastjson.JSONObject;
+import com.yami.shop.bean.model.FrontCategory;
 import com.yami.shop.common.util.hb.HBR;
 
 /**
@@ -26,4 +27,17 @@ public interface IHBFrontCategoryService {
      * @param hbRequest
      */
     void deleteFrontCategory(JSONObject hbRequest);
+
+    /**
+     * 添加门店分类
+     * @param frontCategory 前台分类
+     * @param shopId 门店id
+     * @param hbShopId 海博门店id
+     */
+    void addShopCategory(FrontCategory frontCategory, Long shopId, Long hbShopId);
+
+    /**
+     * 同步对应门店
+     */
+    void sync( Long shopId, Long hbShopId);
 }

+ 70 - 9
yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBFrontCategoryService.java

@@ -35,7 +35,6 @@ import static com.yami.shop.common.util.HttpUtil.post;
 @Slf4j
 @Service
 @AllArgsConstructor
-@Transactional(readOnly = true)
 public class HBFrontCategoryService implements IHBFrontCategoryService {
     private final FrontCategoryMapper frontCategoryMapper;
     private final ShopCategoryMapper shopCategoryMapper;
@@ -80,22 +79,20 @@ public class HBFrontCategoryService implements IHBFrontCategoryService {
                         .eq(FrontCategory::getIsDelete, 0));
                 if (frontCategory1 == null) {
                     frontCategoryMapper.insert(frontCategory);
+
+                    //添加门店分类
+                    addShopCategory(frontCategory, 1L, 5104238L);
                 } else {
                     frontCategory.setId(frontCategory1.getId());
                     frontCategoryMapper.updateById(frontCategory);
-
-                    //修改门店分类里面对应的
-                    List<ShopCategory> shopCategory = shopCategoryMapper.selectList(new LambdaQueryWrapper<ShopCategory>().eq(ShopCategory::getCode, frontCategory.getCode())
-                    .eq(ShopCategory::getIsDelete, 0));
+                    List<ShopCategory> shopCategory = shopCategoryMapper.selectList(new LambdaQueryWrapper<ShopCategory>()
+                            .eq(ShopCategory::getCode, frontCategory.getCode())
+                            .eq(ShopCategory::getIsDelete, 0));
                     for (ShopCategory shopCategory1 : shopCategory) {
                         shopCategory1.setName(frontCategory.getName());
                         shopCategoryMapper.updateById(shopCategory1);
                     }
-
-
                 }
-                // 3. 保存门店信息
-//                frontCategoryMapper.insert(frontCategory);
             }
             log.info("前台分类成功");
             // 4. 构建响应
@@ -106,6 +103,70 @@ public class HBFrontCategoryService implements IHBFrontCategoryService {
         }
     }
 
+    /**
+     * 添加门店分类
+     *
+     * @param frontCategory 前台分类
+     * @param shopId        门店id
+     * @return
+     */
+    @Override
+    //添加事务
+    @Transactional(rollbackFor = Exception.class)
+    public void addShopCategory(FrontCategory frontCategory, Long shopId, Long hbShopId) {
+        ShopCategory shopCategoryByCode = shopCategoryMapper.selectOne(new LambdaQueryWrapper<ShopCategory>()
+                .eq(ShopCategory::getCode, frontCategory.getCode())
+                .eq(ShopCategory::getShopId, shopId)
+                .eq(ShopCategory::getIsDelete, 0));
+
+        if (shopCategoryByCode != null) {
+            return;
+        }
+        ShopCategory shopCategory = new ShopCategory();
+        shopCategory.setCode(frontCategory.getCode());
+        shopCategory.setName(frontCategory.getName());
+        if (frontCategory.getParentCode() == null || frontCategory.getParentCode().equals("0")) {
+            shopCategory.setPid(0L);
+            shopCategory.setParentCode("0");
+        } else {
+            ShopCategory shopCategoryByCode1 = shopCategoryMapper.selectOne(new LambdaQueryWrapper<ShopCategory>()
+                    .eq(ShopCategory::getCode, frontCategory.getParentCode())
+                    .eq(ShopCategory::getShopId, shopId)
+                    .eq(ShopCategory::getIsDelete, 0));
+            if (shopCategoryByCode1 == null) {
+                //不存在父类目添加
+                FrontCategory frontCategoryParent = frontCategoryMapper.selectOne(new LambdaQueryWrapper<FrontCategory>()
+                        .eq(FrontCategory::getCode, frontCategory.getParentCode())
+                        .eq(FrontCategory::getIsDelete, 0));
+                addShopCategory(frontCategoryParent, shopId, hbShopId);
+            }
+            shopCategory.setPid(shopCategoryByCode1.getId());
+            shopCategory.setParentCode(shopCategoryByCode1.getCode());
+        }
+
+        shopCategory.setShopId(shopId);
+        shopCategory.setHbShopId(String.valueOf(hbShopId));
+        shopCategory.setLabel(frontCategory.getLabel());
+        shopCategory.setIcon(frontCategory.getIcon());
+        shopCategory.setPic(frontCategory.getPic());
+        shopCategory.setLevel(frontCategory.getLevel());
+        shopCategory.setIsDelete(0);
+        shopCategory.setOperateUser("admin");
+        shopCategory.setNum(frontCategory.getNum());
+        shopCategory.setIsLeaves(frontCategory.getIsLeaves());
+
+        shopCategoryMapper.insert(shopCategory);
+    }
+
+    @Override
+    public void sync(Long shopId, Long hbShopId) {
+        List<FrontCategory> frontCategoryList = frontCategoryMapper.selectList(new LambdaQueryWrapper<FrontCategory>()
+        .eq(FrontCategory::getIsDelete, 0));
+        for (FrontCategory frontCategory : frontCategoryList) {
+            addShopCategory(frontCategory, shopId, hbShopId);
+        }
+    }
+
     public String selectHBFrontCategory(List<String> resultList) {
         HBBaseReq<Object> build = HBBaseReq.create();
         build.setAppId(hbSignUtil.getAppId());

+ 5 - 9
yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBGoodsService.java

@@ -527,10 +527,10 @@ public class HBGoodsService implements IHBGoodsService {
             String ztFrontCategoryCodeLevel = jsonObject.getString("ztFrontCategoryCodeLevel2");
             if (StringUtils.isEmpty(ztFrontCategoryCodeLevel)) {
                 ztFrontCategoryCodeLevel = jsonObject.getString("ztFrontCategoryCode");
-            } else {
-                //如果是二级,一级对应商品不存在也需要添加
-                addCategoryProd(spuId, ztFrontCategoryCodeLevel);
-                ztFrontCategoryCodeLevel = jsonObject.getString("ztFrontCategoryCode");
+//            } else {
+//                //如果是二级,一级对应商品不存在也需要添加
+//                addCategoryProd(spuId, ztFrontCategoryCodeLevel);
+//                ztFrontCategoryCodeLevel = jsonObject.getString("ztFrontCategoryCode");
             }
             addCategoryProd(spuId, ztFrontCategoryCodeLevel);
 
@@ -547,11 +547,7 @@ public class HBGoodsService implements IHBGoodsService {
                 .eq(CategoryProd::getProdId, spuId)
                 .eq(CategoryProd::getIsDelete, 0)
                 .eq(CategoryProd::getCode, ztFrontCategoryCodeLevel));
-        if (integer != null) {
-            categoryProd.setId(integer.getId());
-            categoryProdMapper.updateById(categoryProd);
-            log.info("商品对应分类已存在{}", categoryProd);
-        } else {
+        if (integer == null) {
             categoryProdMapper.insert(categoryProd);
         }
     }

+ 1 - 2
yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderRefundServiceImpl.java

@@ -298,8 +298,7 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
     private void getRefundTypeByOrderItem2(OrderRefundDto orderRefundDto) {
         List<OrderItem> item = orderItemService.getRefundTypeByOrderItem2(orderRefundDto.getRefundId());
         if (!item.isEmpty()){
-            orderRefundDto.setGoodsTotal(item.get(0).getGoodsTotal());
-        }
+            orderRefundDto.setGoodsTotal(item.stream().map(OrderItem::getGoodsTotal).reduce(0.0, Double::sum));}
         orderRefundDto.setOrderItems(item);
     }
 

+ 29 - 7
yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderServiceImpl.java

@@ -28,23 +28,25 @@ import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+import com.google.gson.internal.LinkedTreeMap;
 import com.yami.shop.bean.app.dto.OrderCountData;
 import com.yami.shop.bean.app.dto.ShopCartOrderMergerDto;
 import com.yami.shop.bean.enums.*;
-import com.yami.shop.bean.event.*;
+import com.yami.shop.bean.event.CancelOrderEvent;
+import com.yami.shop.bean.event.ReceiptOrderEvent;
+import com.yami.shop.bean.event.SubmitOrderEvent;
+import com.yami.shop.bean.event.SubmitScoreOrderEvent;
 import com.yami.shop.bean.model.*;
 import com.yami.shop.bean.param.*;
 import com.yami.shop.common.config.Constant;
 import com.yami.shop.common.exception.GlobalException;
-import com.yami.shop.common.exception.YamiShopBindException;
 import com.yami.shop.common.util.Arith;
 import com.yami.shop.common.util.PageAdapter;
+import com.yami.shop.common.util.PageParam;
 import com.yami.shop.dao.*;
 import com.yami.shop.service.OrderItemService;
-import com.yami.shop.service.OrderRefundService;
 import com.yami.shop.service.OrderService;
 import com.yami.shop.service.OrderSettlementService;
-import com.yami.shop.service.hb.IHBOrderService;
 import com.yami.shop.utils.CullenUtils;
 import com.yami.shop.wx.po.RefundInfoPo;
 import com.yami.shop.wx.service.WxProviderService;
@@ -54,18 +56,15 @@ import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.CachePut;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.context.ApplicationEventPublisher;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.time.Instant;
@@ -339,6 +338,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return page;
     }
 
+    @Override
+    public IPage<Order> deliverList(PageParam<Order> page, BackendOrderParam orderParam) {
+        List<Order> orderList = orderMapper.deliverList(new PageAdapter(page), orderParam);
+        if (!orderList.isEmpty()){
+            orderList.forEach(c-> c.setOrderItems(orderItemMapper.getListByOrderNumber(c.getOrderNumber())));
+        }
+        page.setRecords(orderList);
+        page.setTotal(orderList.size());
+        return page;
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void deleteOrders(List<Order> orders) {
@@ -1129,6 +1139,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return OrderRefundAmountDTO.builder().orderRefundAmount(orderRefundAmount).offsetPoints(offsetPoints).build();
     }
 
+    @Override
+    public Map<String, Integer> deliverListStatusNum() {
+        Map<String, Integer> map = new LinkedTreeMap<>();
+        map.put("all",orderMapper.statusCount(Lists.newArrayList(0, 1,20,30,40,50,60,70,80)));
+        map.put("paddingPay",orderMapper.statusCount(Lists.newArrayList(0)));
+        map.put("paddingShipped",orderMapper.statusCount(Lists.newArrayList(1)));
+        map.put("paddingReceived",orderMapper.statusCount(Lists.newArrayList(20,30,40,50,70)));
+        map.put("completed",orderMapper.statusCount(Lists.newArrayList(80)));
+        map.put("cancel",orderMapper.statusCount(Lists.newArrayList(60)));
+        return map;
+    }
+
 
     private boolean isPaymentOver7Days(Date paymentDate) {
         // 1. 将支付时间转换为 Instant

+ 2 - 2
yami-shop-service/src/main/java/com/yami/shop/service/impl/ShopCategoryServiceImpl.java

@@ -173,9 +173,9 @@ public class ShopCategoryServiceImpl extends ServiceImpl<ShopCategoryMapper, Sho
             category.setPic(sc.getPic());
             category.setSeq(sc.getNum());
             category.setGrade(sc.getLevel());
-            if (null != sc.getLabel() && !sc.getLabel().isEmpty()) {
+            if (ObjectUtils.isNotEmpty(sc.getLabel())) {
                 Label label = labelMapper.selectOne(new LambdaQueryWrapper<Label>()
-                        .eq(Label::getId, Long.valueOf(sc.getLabel()))
+                        .eq(Label::getId, sc.getLabel())
                         .eq(Label::getIsDelete, 0)
                         .eq(Label::getType, 0));
                 if (null != label && null != label.getName()) {

+ 65 - 1
yami-shop-service/src/main/resources/mapper/OrderMapper.xml

@@ -28,6 +28,8 @@
         <result column="delete_status" jdbcType="INTEGER" property="deleteStatus"/>
         <result column="refund_status" jdbcType="INTEGER" property="refundStatus"/>
         <result column="close_type" jdbcType="INTEGER" property="closeType"/>
+        <result column="user_mobile" jdbcType="VARCHAR" property="userMobile"/>
+        <result column="receiver" jdbcType="VARCHAR" property="receiver"/>
     </resultMap>
 
     <resultMap id="MyOrderMap" type="com.yami.shop.bean.app.dto.MyOrderDto">
@@ -162,6 +164,7 @@
         <result column="shop_name" jdbcType="VARCHAR" property="shopName"/>
         <result column="pay_score" jdbcType="INTEGER" property="payScore"/>
         <result column="user_mobile" jdbcType="VARCHAR" property="userMobile"/>
+        <result column="receiver" jdbcType="VARCHAR" property="receiver"/>
         <result column="qnh_order_id" jdbcType="VARCHAR" property="qnhOrderId"/>
         <result column="qnh_order_status" jdbcType="VARCHAR" property="qnhOrderStatus"/>
         <result column="dvy_status" jdbcType="INTEGER" property="dvyStatus"/>
@@ -398,7 +401,7 @@
 <!--            <if test="orderParam.type!=null and orderParam.type==6 and orderParam.content != null and orderParam.content != ''">-->
 <!--                and u.dvy_flow_id = #{orderParam.content}-->
 <!--            </if>-->
-            <if test="orderParam.hb_order_status != null">
+            <if test="orderParam.hbOrderStatus != null">
                 and o.hb_order_status = #{orderParam.hbOrderStatus}
             </if>
 <!--            <if test="orderParam.payType != null">-->
@@ -454,6 +457,61 @@
         ORDER BY temp.create_time DESC
     </select>
 
+    <select id="deliverList" resultMap="BaseResultMap">
+        SELECT a.*,b.receiver,b.mobile user_mobile FROM tz_order a
+        LEFT JOIN tz_user_addr_order b on a.addr_order_id=b.addr_order_id
+        <where>
+            a.dvy_type=3
+            <if test="orderParam.orderNumber != null and orderParam.orderNumber != ''">
+                and a.order_number = #{orderParam.orderNumber}
+            </if>
+            <if test="orderParam.shopId != null">
+                and a.shop_id = #{orderParam.shopId}
+            </if>
+            <if test="orderParam.startTime != null">
+                and a.create_time &gt; #{orderParam.startTime}
+            </if>
+            <if test="orderParam.endTime != null">
+                and a.create_time &lt; #{orderParam.endTime}
+            </if>
+            <if test="orderParam.refundStatus != null and orderParam.refundStatus != 0">
+                and a.refund_status = #{orderParam.refundStatus}
+            </if>
+            <if test="orderParam.receiver != null">
+                and b.receiver LIKE concat("%",#{orderParam.receiver},"%")
+            </if>
+            <if test="orderParam.mobile != null">
+                and b.mobile LIKE concat("%",#{orderParam.mobile},"%")
+            </if>
+
+            <if test="orderParam.orderStatus != null and orderParam.orderStatus != ''">
+                <if test="orderParam.orderStatus == 'all'">
+                    AND a.hb_order_status in (0, 1,20,30,40,50,60,70,80)
+                </if>
+                <if test="orderParam.orderStatus == 'paddingPay'">
+                    AND a.hb_order_status in (0)
+                </if>
+
+                <if test="orderParam.orderStatus == 'paddingShipped'">
+                    AND a.hb_order_status in (1)
+                </if>
+
+                <if test="orderParam.orderStatus == 'paddingReceived'">
+                    AND a.hb_order_status in (20,30,40,50,70)
+                </if>
+                <if test="orderParam.orderStatus == 'completed'">
+                    AND a.hb_order_status in (80)
+                </if>
+                <if test="orderParam.orderStatus == 'cancel'">
+                    AND a.hb_order_status in (60)
+                </if>
+            </if>
+        </where>
+        order by a.create_time desc,a.order_id desc
+        LIMIT #{adapter.begin} , #{adapter.size}
+    </select>
+
+
     <select id="countOrderDetial" resultType="long">
         SELECT count(0)
         FROM tz_order o
@@ -845,5 +903,11 @@
         </if>
     </select>
 
+    <select id="statusCount" resultType="integer">
+        SELECT count(1) FROM `tz_order` WHERE hb_order_status in
+        <foreach collection="status" item="status" separator="," open="(" close=")">
+            #{status}
+        </foreach>
+    </select>
 
 </mapper>