zoujiajian 2 tahun lalu
induk
melakukan
05bef2b075

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/views/OrderDonBackView.java

@@ -100,6 +100,9 @@ public class OrderDonBackView {
 	@DbField("o.balance")
 	private BigDecimal balance;
 
+	@DbField("o.gc_cash")
+	private BigDecimal gcCash;
+
 	@DbField("o.refund_money")
 	private BigDecimal refundMoney;
 

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/views/GiftCardUserPayView.java

@@ -46,6 +46,9 @@ public class GiftCardUserPayView {
 	@DbField("gr.is_send")
 	private Boolean isSend;
 
+	@DbField("gr.is_pay")
+	private Boolean isPay;
+
 	@DbField("gr.to_user_id")
 	private Long toUserId;
 

+ 16 - 0
netflix-service/src/main/java/com/cyksj/service/mange/impl/CmsOrderDonServiceImpl.java

@@ -144,6 +144,8 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
 
     private final GiftCardOrderUseRecordService giftCardOrderUseRecordService;
 
+    private final GiftCardUserRecordMapper giftCardUserRecordMapper;
+
     private static final GlobalThreadPoolTaskExecutor TASK_POOL = GlobalThreadPoolTaskExecutor.getInstance();
 
     @Override
@@ -610,9 +612,23 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
             }
             orderDon.setRefundMoney(refundMoney);
         }
+        //礼品卡是否已使用
+        GiftCardUserRecord giftCardUserRecord = null;
+        if (goodsDon.getSpecialType() != null && goodsDon.getSpecialType() == GoodsDon.SpecialType.giftCard) {
+            giftCardUserRecord = giftCardUserRecordMapper.selectOne(Wrappers.lambdaQuery(GiftCardUserRecord.class)
+                    .eq(GiftCardUserRecord::getOrderId, orderDon.getId()).last("limit 1"));
+            if (giftCardUserRecord != null && giftCardUserRecord.getIsUsed()) {
+                throw BusinessRuntimeException.getInstance("该礼品卡已使用无法退款");
+            }
+        }
         if (!redisService.setNx(String.format("%s", refundReq.getOrderId()), refundReq.getOrderId(), 10l)) {
             throw BusinessRuntimeException.getInstance("请勿重复点击,正在退款中..");
         }
+        //礼品卡购买状态
+        if (giftCardUserRecord != null) {
+            giftCardUserRecord.setIsPay(false);
+            giftCardUserRecordMapper.updateById(giftCardUserRecord);
+        }
     }
 
     /**

+ 4 - 2
netflix-web/src/main/java/com/cyksj/web/controller/manage/goods/GiftCardController.java

@@ -67,11 +67,13 @@ public class GiftCardController {
 	}
 
 	/**
-	 * 礼品卡用户购买记录
+	 * 礼品卡用户购买成功 记录
 	 */
 	@GetMapping("/get/pay")
 	public Result<SearchResult<GiftCardUserPayView>> getGiftCardPayRecord() {
-		SearchResult<GiftCardUserPayView> search = beanSearcher.search(GiftCardUserPayView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+		SearchResult<GiftCardUserPayView> search = beanSearcher.search(GiftCardUserPayView.class, MapUtils.flatBuilder(request.getParameterMap())
+				.field(GiftCardUserPayView::getIsPay, true)
+				.build());
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}