Browse Source

[add] 配送单列表

BKGin 6 months ago
parent
commit
c6c2951703

+ 14 - 12
yiqi-admin/src/main/java/com/yiqi/admin/controller/order/OrderDeliveryController.java

@@ -6,6 +6,8 @@ import javax.servlet.http.HttpServletResponse;
 
 import com.yiqi.common.constant.UrlConstants;
 import com.yiqi.order.domain.OrderDelivery;
+import com.yiqi.order.domain.dto.OrderDeliveryRequestDTO;
+import com.yiqi.order.domain.vo.OrderDeliveryVO;
 import com.yiqi.order.service.IOrderDeliveryService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -34,7 +36,7 @@ import com.yiqi.common.core.page.TableDataInfo;
  */
 @Api(tags = "管理后台 - 订单配送")
 @RestController
-@RequestMapping(UrlConstants.managerApi + "/system/delivery")
+@RequestMapping(UrlConstants.managerApi + "/order/delivery")
 public class OrderDeliveryController extends BaseController {
     @Autowired
     private IOrderDeliveryService orderDeliveryService;
@@ -42,32 +44,32 @@ public class OrderDeliveryController extends BaseController {
     /**
      * 查询订单配送列表
      */
-    @PreAuthorize("@ss.hasPermi('system:delivery:list')")
+    @PreAuthorize("@ss.hasPermi('order:delivery:list')")
     @GetMapping("/list")
     @ApiOperation(value = "查询订单配送列表")
-    public TableDataInfo list(OrderDelivery orderDelivery) {
+    public TableDataInfo list(OrderDeliveryRequestDTO requestDTO) {
         startPage();
-        List<OrderDelivery> list = orderDeliveryService.selectOrderDeliveryList(orderDelivery);
+        List<OrderDeliveryVO> list = orderDeliveryService.selectOrderDeliveryList(requestDTO);
         return getDataTable(list);
     }
 
     /**
      * 导出订单配送列表
      */
-    @PreAuthorize("@ss.hasPermi('system:delivery:export')")
+    @PreAuthorize("@ss.hasPermi('order:delivery:export')")
     @Log(title = "订单配送", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     @ApiOperation(value = "导出订单配送列表")
-    public void export(HttpServletResponse response, OrderDelivery orderDelivery) {
-        List<OrderDelivery> list = orderDeliveryService.selectOrderDeliveryList(orderDelivery);
-        ExcelUtil<OrderDelivery> util = new ExcelUtil<OrderDelivery>(OrderDelivery.class);
+    public void export(HttpServletResponse response, OrderDeliveryRequestDTO requestDTO) {
+        List<OrderDeliveryVO> list = orderDeliveryService.selectOrderDeliveryList(requestDTO);
+        ExcelUtil<OrderDeliveryVO> util = new ExcelUtil<OrderDeliveryVO>(OrderDeliveryVO.class);
         util.exportExcel(response, list, "订单配送数据");
     }
 
     /**
      * 获取订单配送详细信息
      */
-    @PreAuthorize("@ss.hasPermi('system:delivery:query')")
+    @PreAuthorize("@ss.hasPermi('order:delivery:query')")
     @GetMapping(value = "/{id}")
     @ApiOperation(value = "获取订单配送详细信息")
     public AjaxResult getInfo(@PathVariable("id") Integer id) {
@@ -77,7 +79,7 @@ public class OrderDeliveryController extends BaseController {
     /**
      * 新增订单配送
      */
-    @PreAuthorize("@ss.hasPermi('system:delivery:add')")
+    @PreAuthorize("@ss.hasPermi('order:delivery:add')")
     @Log(title = "订单配送", businessType = BusinessType.INSERT)
     @PostMapping
     @ApiOperation(value = "新增订单配送")
@@ -90,7 +92,7 @@ public class OrderDeliveryController extends BaseController {
     /**
      * 修改订单配送
      */
-    @PreAuthorize("@ss.hasPermi('system:delivery:edit')")
+    @PreAuthorize("@ss.hasPermi('order:delivery:edit')")
     @Log(title = "订单配送", businessType = BusinessType.UPDATE)
     @PutMapping
     @ApiOperation(value = "修改订单配送")
@@ -103,7 +105,7 @@ public class OrderDeliveryController extends BaseController {
     /**
      * 删除订单配送
      */
-    @PreAuthorize("@ss.hasPermi('system:delivery:remove')")
+    @PreAuthorize("@ss.hasPermi('order:delivery:remove')")
     @Log(title = "订单配送", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     @ApiOperation(value = "删除订单配送")

+ 37 - 0
yiqi-common/src/main/java/com/yiqi/common/enums/OrderDeliveryStatusEnum.java

@@ -0,0 +1,37 @@
+package com.yiqi.common.enums;
+
+/**
+ * @Author BKGin
+ * @Email libra14xu@gmail.com
+ * @Date 2024-09-07
+ */
+public enum OrderDeliveryStatusEnum {
+
+    CREATE_ORDER_SUCCESS("10000", "订单创建成功"),
+    STORE_CANCEL("20000", "商家取消订单"),
+    DELIVERY_CANCEL("20001", "配送方取消订单"),
+    SENDER_RECEIVE("30000", "配送员接单"),
+    SENDER_ARRIVE_STORE("40000", "配送员到店"),
+    SENDING("50000", "配送中"),
+    SENDER_CANCEL("60000", "配送员撤单"),
+    SEND_FINISH("70000", "配送完成"),
+    SEND_ERROR("90000", "配送异常"),
+    ;
+
+    private final String code;
+    private final String label;
+
+    OrderDeliveryStatusEnum(String code, String label) {
+        this.code = code;
+        this.label = label;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getLabel() {
+        return label;
+    }
+
+}

+ 3 - 3
yiqi-common/src/main/java/com/yiqi/order/domain/OrderDelivery.java

@@ -107,10 +107,10 @@ public class OrderDelivery extends BaseEntity {
     private String userAddress;
 
     /**
-     * 地址
+     * 用户手机号
      */
-    @Excel(name = "地址")
-    @ApiModelProperty("地址")
+    @Excel(name = "用户手机号")
+    @ApiModelProperty("用户手机号")
     private String userPhone;
 
     /**

+ 36 - 0
yiqi-common/src/main/java/com/yiqi/order/domain/dto/OrderDeliveryRequestDTO.java

@@ -0,0 +1,36 @@
+package com.yiqi.order.domain.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Author BKGin
+ * @Email libra14xu@gmail.com
+ * @Date 2024-09-07
+ */
+@Data
+public class OrderDeliveryRequestDTO implements Serializable {
+
+    private Long storeId;
+    private String orderSn;
+    private String mobile;
+
+    /**
+     * 订单类型 {@link com.yiqi.common.enums.ClothOrderDeliveryType}
+      */
+    private String clothOrderType;
+    /**
+     * 配送订单状态 {@link com.yiqi.common.enums.OrderDeliveryStatusEnum}
+     */
+    private String deliveryStatus;
+
+
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date startDate;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date endDate;
+
+}

+ 171 - 0
yiqi-common/src/main/java/com/yiqi/order/domain/vo/OrderDeliveryVO.java

@@ -0,0 +1,171 @@
+package com.yiqi.order.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.yiqi.common.annotation.Excel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @Author BKGin
+ * @Email libra14xu@gmail.com
+ * @Date 2024-09-07
+ */
+@Data
+public class OrderDeliveryVO implements Serializable {
+
+    private Long id;
+
+    private Long storeId;
+    @Excel(name = "所属门店")
+    private String storeName;
+
+    /**
+     * 配送单号
+     */
+    @Excel(name = "配送单号")
+    private String deliverySn;
+
+    /**
+     * 商品订单号
+     */
+    @Excel(name = "商品订单号")
+    private String orderSn;
+
+    /**
+     * 微信门店id
+     */
+    @Excel(name = "微信门店id")
+    private String wxStoreId;
+
+    /**
+     * 衣服订单类型(0=收衣,1=取衣)
+     */
+    @Excel(name = "衣服订单类型", readConverterExp = "0==收衣,1=取衣")
+    private String clothOrderType;
+
+    /**
+     * 运力ID
+     */
+    @Excel(name = "运力ID")
+    private String serviceTransId;
+
+    /**
+     * 客户ID
+     */
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long appUserId;
+    @Excel(name = "客户姓名")
+    private String userName;
+
+    /**
+     * 经纬度
+     */
+    @Excel(name = "经纬度")
+    private String userLng;
+
+    /**
+     * 经纬度
+     */
+    @Excel(name = "经纬度")
+    private String userLat;
+
+    /**
+     * 地址
+     */
+    @Excel(name = "地址")
+    private String userAddress;
+
+    /**
+     * 地址
+     */
+    @Excel(name = "手机号")
+    private String userPhone;
+
+    /**
+     * 配送距离(整数单位:米)
+     */
+    @Excel(name = "配送距离(整数单位:米)")
+    private String distance;
+
+    /**
+     * 实际运费(单位:元),运费减去优惠券费用
+     */
+    @Excel(name = "实际运费(单位:元),运费减去优惠券费用")
+    private BigDecimal fee;
+
+    /**
+     * 取货码
+     */
+    @Excel(name = "取货码")
+    private String fetchCode;
+
+    /**
+     * 收货码
+     */
+    @Excel(name = "收货码")
+    private String recvCode;
+
+    /**
+     * 外部订单id
+     */
+    @Excel(name = "外部订单id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long transOrderId;
+
+    /**
+     * 配送状态,枚举值
+     */
+    @Excel(name = "配送状态,枚举值")
+    private String deliveryStatus;
+
+    /**
+     * 状态描述
+     */
+    @Excel(name = "状态描述")
+    private String deliveryStatusMsg;
+
+    /**
+     * 配送员接单时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @Excel(name = "配送员接单时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date acceptTime;
+
+    /**
+     * 配送员取货时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @Excel(name = "配送员取货时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date fetchTime;
+
+    /**
+     * 配送员完成时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @Excel(name = "配送员完成时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date finishTime;
+
+    /**
+     * 取消时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @Excel(name = "取消时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date cancelTime;
+
+    /**
+     * 配送员姓名
+     */
+    @Excel(name = "配送员姓名")
+    private String transporterName;
+
+    /**
+     * 配送员电话
+     */
+    @Excel(name = "配送员电话")
+    private String transporterPhone;
+}

+ 4 - 2
yiqi-common/src/main/java/com/yiqi/order/service/IOrderDeliveryService.java

@@ -4,6 +4,8 @@ import java.util.List;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yiqi.order.domain.OrderDelivery;
+import com.yiqi.order.domain.dto.OrderDeliveryRequestDTO;
+import com.yiqi.order.domain.vo.OrderDeliveryVO;
 
 /**
  * 订单配送Service接口
@@ -16,9 +18,9 @@ public interface IOrderDeliveryService extends IService<OrderDelivery> {
     /**
      * 查询订单配送列表
      *
-     * @param orderDelivery 订单配送
+     * @param requestDTO 订单配送
      * @return 订单配送集合
      */
-    public List<OrderDelivery> selectOrderDeliveryList(OrderDelivery orderDelivery);
+    List<OrderDeliveryVO> selectOrderDeliveryList(OrderDeliveryRequestDTO requestDTO);
 
 }

+ 5 - 2
yiqi-core/src/main/java/com/yiqi/order/mapper/OrderDeliveryMapper.java

@@ -3,7 +3,10 @@ package com.yiqi.order.mapper;
 import java.util.List;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.yiqi.order.domain.OrderDelivery;
+import com.yiqi.order.domain.dto.OrderDeliveryRequestDTO;
+import com.yiqi.order.domain.vo.OrderDeliveryVO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 订单配送Mapper接口
@@ -17,9 +20,9 @@ public interface OrderDeliveryMapper extends BaseMapper<OrderDelivery> {
     /**
      * 查询订单配送列表
      *
-     * @param orderDelivery 订单配送
+     * @param requestDTO 查询参数
      * @return 订单配送集合
      */
-    public List<OrderDelivery> selectOrderDeliveryList(OrderDelivery orderDelivery);
+    List<OrderDeliveryVO> selectOrderDeliveryList(@Param("requestDTO") OrderDeliveryRequestDTO requestDTO);
 
 }

+ 4 - 9
yiqi-core/src/main/java/com/yiqi/order/service/impl/OrderDeliveryServiceImpl.java

@@ -5,6 +5,8 @@ import java.util.List;
 import com.yiqi.common.utils.DateUtils;
 import com.yiqi.common.utils.SecurityUtils;
 import com.yiqi.order.domain.OrderDelivery;
+import com.yiqi.order.domain.dto.OrderDeliveryRequestDTO;
+import com.yiqi.order.domain.vo.OrderDeliveryVO;
 import com.yiqi.order.mapper.OrderDeliveryMapper;
 import com.yiqi.order.service.IOrderDeliveryService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,16 +22,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @Service
 public class OrderDeliveryServiceImpl extends ServiceImpl<OrderDeliveryMapper, OrderDelivery> implements IOrderDeliveryService {
 
-
-    /**
-     * 查询订单配送列表
-     *
-     * @param orderDelivery 订单配送
-     * @return 订单配送
-     */
     @Override
-    public List<OrderDelivery> selectOrderDeliveryList(OrderDelivery orderDelivery) {
-        return baseMapper.selectOrderDeliveryList(orderDelivery);
+    public List<OrderDeliveryVO> selectOrderDeliveryList(OrderDeliveryRequestDTO requestDTO) {
+        return baseMapper.selectOrderDeliveryList(requestDTO);
     }
 
 }

+ 25 - 4
yiqi-core/src/main/resources/mapper/order/OrderDeliveryMapper.xml

@@ -4,9 +4,30 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.yiqi.order.mapper.OrderDeliveryMapper">
 
-    <select id="selectOrderDeliveryList" resultType="com.yiqi.order.domain.OrderDelivery">
-        select *
-        from order_delivery
-        where 1 = 1
+    <select id="selectOrderDeliveryList" resultType="com.yiqi.order.domain.vo.OrderDeliveryVO">
+        SELECT s.`name` as 'storeName',u.nick_name AS 'userName', d.*
+        FROM order_delivery d
+        JOIN sys_store s ON s.id = d.store_id
+        JOIN app_user u ON u.id = d.app_user_id
+        WHERE 1 = 1
+        <if test="requestDTO.storeId != null">
+            AND d.store_id = #{requestDTO.storeId}
+        </if>
+        <if test="requestDTO.orderSn != null">
+            AND d.order_sn = #{requestDTO.orderSn}
+        </if>
+        <if test="requestDTO.mobile != null">
+            AND d.user_phone = #{requestDTO.mobile}
+        </if>
+        <if test="requestDTO.startDate != null and requestDTO.endDate != null">
+            AND d.create_time BETWEEN #{requestDTO.startDate} AND #{requestDTO.endDate}
+        </if>
+        <if test="requestDTO.clothOrderType != null">
+            AND d.cloth_order_type = #{requestDTO.clothOrderType}
+        </if>
+        <if test="requestDTO.deliveryStatus != null">
+            AND d.delivery_status = #{requestDTO.deliveryStatus}
+        </if>
+        ORDER BY d.id DESC
     </select>
 </mapper>