Sfoglia il codice sorgente

前台订单 物流api

hr~ 1 mese fa
parent
commit
919bb32ccc

+ 27 - 1
poyee-order/src/main/java/com/tzy/controller/LotOrderController.java

@@ -3,11 +3,12 @@ package com.tzy.controller;
 import com.tzy.common.config.handle.ApiVersion;
 import com.tzy.common.dto.OutDTO;
 import com.tzy.entity.LotOrder;
+import com.tzy.req.LotOrderConfirmRequest;
 import com.tzy.service.LotOrderService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -64,4 +65,29 @@ public class LotOrderController {
         }
         return OutDTO.error500("修改收货地址失败");
     }
+
+    @GetMapping("/logistics/info")
+    @ApiOperation("物流信息查询")
+    @ApiVersion(1.0)
+    public OutDTO queryLogisticsInfo(@RequestParam("orderNo") String orderNo) {
+        return OutDTO.ok().put("logistics", lotOrderService.logisticsInfo(orderNo));
+    }
+
+    @GetMapping("/updateOrderStatus/{orderNo}/{status}")
+    @ApiVersion(1.0)
+    @ApiOperation("修改订单状态(mock支付 签署确认书) 支付status传入101 模拟按钮签署确认书 传入 103")
+    public OutDTO updateOrderStatus(@PathVariable("orderNo") String orderNo, @PathVariable("status")Integer status) {
+        lotOrderService.updateOrderStatus(orderNo,status);
+        return OutDTO.ok();
+    }
+
+
+
+    @PostMapping("/confirm")
+    @ApiVersion(1.0)
+    @ApiOperation("确认订单收货")
+    public OutDTO confirm(@RequestBody @Validated LotOrderConfirmRequest lotOrderConfirmRequest) {
+        lotOrderService.confirm(lotOrderConfirmRequest);
+        return OutDTO.ok();
+    }
 }

+ 29 - 0
poyee-order/src/main/java/com/tzy/dto/LogisticsDTO.java

@@ -0,0 +1,29 @@
+package com.tzy.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author huang_run
+ * @date 2026/5/7 11:01
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("拍品订单物流DTO")
+public class LogisticsDTO {
+    @ApiModelProperty("订单号")
+    private String orderNo;
+    @ApiModelProperty("物流公司编码")
+    private String logisticsCompanyCode;
+    @ApiModelProperty("物流公司名称")
+    private String logisticsCompanyName;
+    @ApiModelProperty("物流单号")
+    private String trackingNo;
+
+}

+ 23 - 0
poyee-order/src/main/java/com/tzy/entity/GroupOrderExpress.java

@@ -0,0 +1,23 @@
+package com.tzy.entity;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author huang_run
+ * @date 2026/5/6 18:16
+ */
+
+@Data
+@ApiModel("拍品订单查询入参")
+public class GroupOrderExpress {
+    private Long id;
+    private String orderNo;
+    private String courierNo;
+    private String signStatus;
+    private String result;
+    private Date syncTime;
+    private String logisticsCompany;
+}

+ 10 - 0
poyee-order/src/main/java/com/tzy/mapper/GroupOrderExpressMapper.java

@@ -0,0 +1,10 @@
+package com.tzy.mapper;
+
+import com.tzy.dto.LogisticsDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface GroupOrderExpressMapper {
+    LogisticsDTO logisticsInfo(@Param("orderNo") String orderNo);
+}

+ 5 - 0
poyee-order/src/main/java/com/tzy/mapper/LotOrderMapper.java

@@ -1,6 +1,7 @@
 package com.tzy.mapper;
 
 import com.tzy.entity.LotOrder;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -11,4 +12,8 @@ public interface LotOrderMapper {
     int countLotOrderByLotId(LotOrder lotOrder);
     LotOrder selectLotOrderById(Long id);
     List<LotOrder> selectLotOrder(LotOrder lotOrder);
+    int findOrderByStatus(@Param("orderNo") String orderNo, @Param("status") Integer status);
+    int updateOrderStatus(@Param("orderNo") String orderNo, @Param("status") Integer status);
+
+    int orderConfirm(@Param("orderNo") String orderNo);
 }

+ 25 - 0
poyee-order/src/main/java/com/tzy/req/LotOrderConfirmRequest.java

@@ -0,0 +1,25 @@
+package com.tzy.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @author huang_run
+ * @date 2026/5/8 14:08
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("订单确认收货Request")
+public class LotOrderConfirmRequest {
+    @ApiModelProperty("订单号")
+    @NotBlank(message = "订单号不能为空")
+    private String orderNo;
+}

+ 8 - 0
poyee-order/src/main/java/com/tzy/service/LotOrderService.java

@@ -1,6 +1,8 @@
 package com.tzy.service;
 
+import com.tzy.dto.LogisticsDTO;
 import com.tzy.entity.LotOrder;
+import com.tzy.req.LotOrderConfirmRequest;
 
 import java.util.List;
 
@@ -10,4 +12,10 @@ public interface LotOrderService {
     List<LotOrder> getLotOrders(LotOrder lotOrder);
     LotOrder getLotOrderById(Long id);
     int updateLotOrderAddress(LotOrder lotOrder);
+
+    LogisticsDTO logisticsInfo(String orderNo);
+
+    void updateOrderStatus(String orderNo,Integer status);
+
+    void confirm(LotOrderConfirmRequest lotOrderConfirmRequest);
 }

+ 29 - 1
poyee-order/src/main/java/com/tzy/service/impl/LotOrderServiceImpl.java

@@ -2,12 +2,14 @@ package com.tzy.service.impl;
 
 import com.tzy.common.exception.ServiceException;
 import com.tzy.common.utils.DateUtils;
+import com.tzy.dto.LogisticsDTO;
 import com.tzy.entity.LotOrder;
 import com.tzy.entity.Spu;
+import com.tzy.mapper.GroupOrderExpressMapper;
 import com.tzy.mapper.LotOrderMapper;
+import com.tzy.req.LotOrderConfirmRequest;
 import com.tzy.service.LotOrderService;
 import com.tzy.service.SpuService;
-import com.tzy.sportcard.api.domain.ShippingAddressDto;
 import com.tzy.sportcard.api.service.MineApiService;
 import com.tzy.system.domain.TzyShippingAddress;
 import com.tzy.system.service.ITzyShippingAddressService;
@@ -28,6 +30,9 @@ public class LotOrderServiceImpl implements LotOrderService {
     private SpuService spuService;
     @Resource
     ITzyShippingAddressService shippingAddressService;
+
+    @Resource
+    GroupOrderExpressMapper groupOrderExpressMapper;
     @Override
     public List<LotOrder> getLotOrders(LotOrder lotOrder) {
         return lotOrderMapper.selectLotOrder(lotOrder);
@@ -68,4 +73,27 @@ public class LotOrderServiceImpl implements LotOrderService {
 
         return lotOrderMapper.updateLotOrderAddress(lotOrder);
     }
+
+    @Override
+    public LogisticsDTO logisticsInfo(String orderNo) {
+        int count = lotOrderMapper.findOrderByStatus(orderNo, 104);
+        if (count <= 0) {
+            return new LogisticsDTO();
+        }
+        return groupOrderExpressMapper.logisticsInfo(orderNo);
+    }
+
+    @Override
+    public void updateOrderStatus(String orderNo,Integer status) {
+        //跳过确认书 直接支付
+        int i = lotOrderMapper.updateOrderStatus(orderNo, status);
+        if (i <=0) {
+            throw new ServiceException(500, "订单不存在");
+        }
+    }
+
+    @Override
+    public void confirm(LotOrderConfirmRequest lotOrderConfirmRequest) {
+        lotOrderMapper.updateOrderStatus(lotOrderConfirmRequest.getOrderNo(), 103);
+    }
 }

+ 17 - 0
poyee-order/src/main/resources/mapper/LogisticsMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.tzy.mapper.GroupOrderExpressMapper">
+
+    <sql id="base_select">
+        id,order_no,courier_no,sign_status,result,sync_time,logistics_company
+    </sql>
+
+    <select id="logisticsInfo" resultType="com.tzy.dto.LogisticsDTO">
+        select
+        id,order_no,courier_no as tracking_no,logistics_company as logisticsCompanyName
+        from group_order_express
+        where order_no=#{orderNo}
+    </select>
+</mapper>

+ 10 - 0
poyee-order/src/main/resources/mapper/LotOrderMapper.xml

@@ -61,4 +61,14 @@
         update lot_order_info set shipping_address_id=#{shippingAddressId},shipping_address=#{shippingAddress},shipping_address_likename=#{shippingAddressLinkname},shipping_address_phone=#{shippingAddressPhone}
         where id=#{id}
     </update>
+
+    <select id="findOrderByStatus"  resultType="int">
+        select <include refid="selectLotOrderSql"/>  from lot_order_info where order_no=#{orderNo} and status=#{status}
+    </select>
+    <update id="updateOrderStatus">
+        update lot_order_info set status=#{status} where order_no=#{orderNo}
+    </update>
+    <update id="orderConfirm">
+        update lot_order_info set status=104 where order_no=#{orderNo} and status=104
+    </update>
 </mapper>