igl пре 1 месец
родитељ
комит
00e3443515

+ 5 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/OmsOrderRefundMapper.java

@@ -3,7 +3,12 @@ package com.chelvc.cloud.vehicle.server.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.chelvc.cloud.vehicle.server.entity.OmsOrderRefund;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 
 @Mapper
 public interface OmsOrderRefundMapper extends BaseMapper<OmsOrderRefund> {
+
+    @Select("select count(1) from oms_order_refund where order_id = #{orderId} and status in (0,1)")
+    int queryApplyOrder(@Param("orderId") Long orderId);
 }

+ 2 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/OmsOrderRefundService.java

@@ -13,4 +13,6 @@ public interface OmsOrderRefundService {
     int updateStatus(Long refundId, Integer status, String cause, String serialNumber);
 
     OmsOrderRefund queryById(Long id);
+
+    int queryApplyOrder(Long orderId);
 }

+ 5 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/OmsOrderRefundServiceImpl.java

@@ -61,4 +61,9 @@ public class OmsOrderRefundServiceImpl extends ServiceImpl<OmsOrderRefundMapper,
     public OmsOrderRefund queryById(Long id) {
         return baseMapper.selectById(id);
     }
+
+    @Override
+    public int queryApplyOrder(Long orderId) {
+        return baseMapper.queryApplyOrder(orderId);
+    }
 }

+ 5 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/OmsOrderServiceImpl.java

@@ -1080,6 +1080,11 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
         if(status != 1){
             throw new ResourceUnavailableException("该订单状态不支持退款");
         }
+        //查询申请中的退款订单
+        int num = orderRefundService.queryApplyOrder(orderId);
+        if(num > 0){
+            throw new ResourceUnavailableException("该订单退款已申请");
+        }
         Long refundId = orderRefundService.insert(omsOrder, param);
         onlinePayService.refund(omsOrder, refundId);
     }