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

Merge remote-tracking branch 'origin/master'

wangming 19 цаг өмнө
parent
commit
550fadd9ba

+ 105 - 0
yami-shop-api/src/main/java/com/yami/shop/api/controller/RefundDeliveryController.java

@@ -0,0 +1,105 @@
+package com.yami.shop.api.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yami.shop.bean.model.RefundDelivery;
+import com.yami.shop.common.util.PageParam;
+import com.yami.shop.security.api.util.SecurityUtils;
+import com.yami.shop.service.RefundDeliveryService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * 退货物流信息接口
+ */
+@RestController
+@RequestMapping("/refund/delivery")
+@Api(tags = "退货物流信息接口")
+@AllArgsConstructor
+public class RefundDeliveryController {
+
+    private final RefundDeliveryService refundDeliveryService;
+
+    /**
+     * 分页获取退货物流信息列表
+     */
+    @GetMapping("/page")
+    @ApiOperation("分页获取退货物流信息列表")
+    public ResponseEntity<IPage<RefundDelivery>> page(PageParam<RefundDelivery> pageParam, RefundDelivery refundDelivery) {
+        IPage<RefundDelivery> refundDeliveryPage = refundDeliveryService.page(pageParam, new LambdaQueryWrapper<RefundDelivery>());
+        return ResponseEntity.ok(refundDeliveryPage);
+    }
+
+    /**
+     * 根据退款编号获取退货物流信息
+     */
+    @GetMapping("/getByRefundSn/{refundSn}")
+    @ApiOperation("根据退款编号获取退货物流信息")
+    public ResponseEntity<RefundDelivery> getByRefundSn(@PathVariable String refundSn) {
+        RefundDelivery refundDelivery = refundDeliveryService.getOne(new LambdaQueryWrapper<RefundDelivery>().eq(RefundDelivery::getRefundSn, refundSn));
+        return ResponseEntity.ok(refundDelivery);
+    }
+
+    /**
+     * 根据ID获取退货物流信息
+     */
+    @GetMapping("/getById/{id}")
+    @ApiOperation("根据ID获取退货物流信息")
+    public ResponseEntity<RefundDelivery> getById(@PathVariable Long id) {
+        RefundDelivery refundDelivery = refundDeliveryService.getById(id);
+        return ResponseEntity.ok(refundDelivery);
+    }
+
+    /**
+     * 保存退货物流信息
+     */
+    @PostMapping("/save")
+    @ApiOperation("保存退货物流信息")
+    public ResponseEntity<Void> save(@Valid @RequestBody RefundDelivery refundDelivery) {
+        refundDeliveryService.save(refundDelivery);
+        return ResponseEntity.ok().build();
+    }
+
+    /**
+     * 更新退货物流信息
+     */
+    @PutMapping("/update")
+    @ApiOperation("更新退货物流信息")
+    public ResponseEntity<String> update(@Valid @RequestBody RefundDelivery refundDelivery) {
+        RefundDelivery dbRefundDelivery = refundDeliveryService.getById(refundDelivery.getRefundDeliveryId());
+        if (dbRefundDelivery == null) {
+            return ResponseEntity.badRequest().body("退货物流信息不存在");
+        }
+        // 确保用户只能更新自己的退货物流信息
+        if (!Objects.equals(dbRefundDelivery.getUserId(), SecurityUtils.getUser().getUserId())) {
+            return ResponseEntity.badRequest().body("无权限操作");
+        }
+        refundDeliveryService.updateById(refundDelivery);
+        return ResponseEntity.ok("更新成功");
+    }
+
+
+    /**
+     * 删除退货物流信息
+     */
+    @DeleteMapping("/delete/{id}")
+    @ApiOperation("删除退货物流信息")
+    public ResponseEntity<String> delete(@PathVariable Long id) {
+        RefundDelivery refundDelivery = refundDeliveryService.getById(id);
+        if (refundDelivery == null) {
+            return ResponseEntity.badRequest().body("退货物流信息不存在");
+        }
+        // 确保用户只能删除自己的退货物流信息
+        if (!Objects.equals(refundDelivery.getUserId(), SecurityUtils.getUser().getUserId())) {
+            return ResponseEntity.badRequest().body("无权限操作");
+        }
+        refundDeliveryService.removeById(id);
+        return ResponseEntity.ok("删除成功");
+    }
+}

+ 6 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/model/RefundDelivery.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -20,18 +21,22 @@ public class RefundDelivery implements Serializable {
     /**
      * 店铺id
      */
+    @NotNull(message = "店铺id不能为空")
     private Long shopId;
     /**
      * 用户id
      */
+    @NotNull(message = "用户id不能为空")
     private String userId;
     /**
      * 退款编号
      */
+    @NotNull(message = "退款编号不能为空")
     private String refundSn;
     /**
      * 物流公司id
      */
+    @NotNull(message = "物流公司id不能为空")
     private Long deyId;
     /**
      * 物流公司名称
@@ -40,6 +45,7 @@ public class RefundDelivery implements Serializable {
     /**
      * 物流编号
      */
+    @NotNull(message = "物流编号不能为空")
     private String deyNu;
     /**
      * 收件人姓名

+ 12 - 3
yami-shop-platform/src/main/java/com/yami/shop/platform/task/OrderTask.java

@@ -28,6 +28,7 @@ import com.yami.shop.delivery.comment.api.paotui.PaoTuiApi;
 import com.yami.shop.delivery.comment.param.DeliveryOrderItemParam;
 import com.yami.shop.delivery.comment.service.DeliveryOrderService;
 import com.yami.shop.service.*;
+import com.yami.shop.service.hb.IHBOrderService;
 import com.yami.shop.service.impl.FeiEYunApi;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.core.util.JsonUtils;
@@ -61,12 +62,14 @@ public class OrderTask {
     private OrderSettlementService orderSettlementService;
     @Autowired
     private PayManagerService payManagerService;
+    @Autowired
+    private IHBOrderService ihbOrderService;
 
 
     public void cancelOrder(){
         Date now = new Date();
         logger.info("取消超时未支付订单。。。");
-        // 获取30分钟之前未支付的订单
+        // 获取15分钟之前未支付的订单
         List<Order> orders = orderService.listUnRefundOrderAndOrderItems(OrderStatus.UNPAY.value(),DateUtil.offsetMinute(now, -15));
         if (CollectionUtil.isEmpty(orders)) {
             return;
@@ -85,12 +88,18 @@ public class OrderTask {
     public void confirmOrder(){
         Date now = new Date();
         logger.info("系统自动确认收货订单。。。");
-        // 获取15天之前等待确认收货的订单
-        List<Order> orders = orderService.listUnRefundOrderAndOrderItems(OrderStatus.CONSIGNMENT.value(),DateUtil.offsetDay(now, -15));
+        // 获取10天之前等待确认收货的订单
+        List<Order> orders = orderService.listUnRefundOrderAndOrderItems(OrderStatus.CONSIGNMENT.value(),DateUtil.offsetDay(now, -10));
         if (CollectionUtil.isEmpty(orders)) {
             return;
         }
         orderService.receiptOrder(orders);
+
+        //海博同步订单状态
+        for (Order order : orders) {
+            //海博订单完成
+            ihbOrderService.changeOrderStatus(order.getOrderNumber(), OrderStatus.SUCCESS.value());
+        }
         // 移除缓存
         this.removeCache(orders);
     }

+ 1 - 1
yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBOrderService.java

@@ -187,7 +187,7 @@ public class HBOrderService implements IHBOrderService {
         Order order = orderMapper.getOrderAndOrderItemByOrderNumber(channelOrderId);
         //如果是已送达直接完成并且通知海博
         order.setHbOrderStatus(operatorType);
-        if (operatorType == 70 || order.getDvyType() == 3) {
+        if (operatorType == 70 && order.getDvyType() == 3) {
             order.setHbOrderStatus(80);
         }
         orderMapper.updateById(order);

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

@@ -217,7 +217,7 @@
       join tz_order_item oi on o.order_number = oi.order_number
       left join tz_order_refund tor on tor.order_id = o.order_id
     where o.hb_order_status = #{orderStatus} and (refund_status IS NULL OR o.refund_status &lt;&gt; 1)
-    and o.update_time &lt; #{lessThanUpdateTime}
+    and o.dvy_time &lt; #{lessThanUpdateTime}
   </select>
 
     <update id="cancelOrders">