Преглед на файлове

加购订单退款车票清除

zoujiajian преди 1 година
родител
ревизия
d618d033ac

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/request/OrderRefundReq.java

@@ -5,6 +5,7 @@ import lombok.Setter;
 
 import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
+import java.util.List;
 
 /*
  *项目名: netflix
@@ -60,4 +61,9 @@ public class OrderRefundReq {
 	private Boolean isDiffer = false;
 
 	private Long adminId;
+
+	/**
+	 * 加购订单退款车票ids
+	 */
+	private List<Long> dpRelationIds;
 }

+ 8 - 1
netflix-dao/src/main/java/com/cyksj/model/views/GroupRelationDetailView.java

@@ -14,7 +14,8 @@ import lombok.Setter;
 @Getter
 @Setter
 @SearchBean(tables = "groups_relation gr left join groups_trips gt on gt.id = gr.groups_id" +
-		" left join goods_don_sku gdk on gdk.id = gt.sku_id")
+		" left join goods_don_sku gdk on gdk.id = gt.sku_id" +
+		" left join goods_don g on g.id = gdk.goods_id")
 public class GroupRelationDetailView {
 	@DbField("gr.id")
 	private Long relationId;
@@ -25,9 +26,15 @@ public class GroupRelationDetailView {
 	@DbField("gt.sku_id")
 	private Long skuId;
 
+	@DbField("gdk.spec_val")
+	private String specVal;
+
 	@DbField("gdk.goods_id")
 	private Long goodsId;
 
+	@DbField("g.title")
+	private String title;
+
 	@DbField("gt.account_Id")
 	private Long accountId;
 }

+ 11 - 4
netflix-service/src/main/java/com/cyksj/service/mange/impl/CmsOrderDonServiceImpl.java

@@ -391,7 +391,7 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
         }
         orderDon.setRefundDesc(refundReq.getRefundDesc());
         //记录退款信息
-        commonRefund(orderDon, refundReq.getRefundMoney(), refundReq.getOperator(), goodsDon, sku, outNo, refundType, refundReq.getIsOnly(), refundReq.getRefundBalance(), refundReq.getChatImg(), refundReq.getDeductBalance());
+        commonRefund(orderDon, refundReq.getRefundMoney(), refundReq.getOperator(), goodsDon, sku, outNo, refundType, refundReq.getIsOnly(), refundReq.getRefundBalance(), refundReq.getChatImg(), refundReq.getDeductBalance(), refundReq.getDpRelationIds());
         //修改订单状态
         orderDon.setStatus(OrderDon.Status.refund);
         orderDonMapper.updateById(orderDon);
@@ -989,13 +989,15 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
     /**
      * 退款后 处理关联
      */
-    public void commonRefund(OrderDon orderDon, BigDecimal refundMoney, String operator, GoodsDon goodsDon, GoodsDonSku sku, String outNo, String refundType, Boolean isOnly, BigDecimal refundBalance, String chatImg, BigDecimal deductBalance) {
+    public void commonRefund(OrderDon orderDon, BigDecimal refundMoney, String operator, GoodsDon goodsDon, GoodsDonSku sku, String outNo, String refundType, Boolean isOnly, BigDecimal refundBalance, String chatImg, BigDecimal deductBalance, List<Long> dpRelationIds) {
         orderRefundService.refundRecord(orderDon, refundMoney, operator, goodsDon, sku, outNo, refundType, chatImg);
         //退款一次
         goodsDonStockService.upStockRelate(null, orderDon.getId(), "refund");
         try {
-            //虚物订单退款,清出车队,车票变为已过期
-            orderCommonService.clearUnrealGoodsDetail(orderDon, goodsDon.getType(), sku);
+            if (!orderDon.getIsDp()) {
+                //虚物订单退款,清出车队,车票变为已过期
+                orderCommonService.clearUnrealGoodsDetail(orderDon, goodsDon.getType(), sku);
+            }
         } catch (Exception e) {
             log.error("清除车票错误:{}", StringUtil.getErrorText(e));
         }
@@ -1076,7 +1078,12 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
                 if (StrUtil.isNotBlank(relationIdsStr)) {
                     try {
                         List<Long> relationIds = Jsons.parseList(relationIdsStr, Long.class);
+                        //选择清除加购车票
+                        if (CollUtil.isNotEmpty(dpRelationIds)) {
+                            relationIds = dpRelationIds;
+                        }
                         List<GroupsRelation> groupsRelations = relationMapper.selectList(Wrappers.lambdaQuery(GroupsRelation.class)
+                                .eq(GroupsRelation::getUserId, orderDon.getUserId())
                                 .in(GroupsRelation::getId, relationIds));
                         log.info("优惠加购订单orderId:{}退款,清除相关车票relation_ids:{}", orderDon.getId(), relationIds);
                         groupsRelations.forEach(relation -> relationClearService.clearTicket(relation, UserTicketClearedRecord.Source.dp));

+ 24 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsOrderController.java

@@ -16,6 +16,7 @@ import com.cyksj.common.constant.Constant;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.task.GlobalThreadPoolTaskExecutor;
 import com.cyksj.common.util.IoKit;
+import com.cyksj.common.util.Jsons;
 import com.cyksj.common.util.Xmls;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.BusinessType;
@@ -130,6 +131,8 @@ public class CmsOrderController {
 
 	private final OrderDonDifferGoodsMapper orderDonDifferGoodsMapper;
 
+	private final OrderDiscountPlusPurchaseSkuRelationMapper plusPurchaseSkuRelationMapper;
+
 	private static final GlobalThreadPoolTaskExecutor TASK_EXECUTOR = GlobalThreadPoolTaskExecutor.getInstance();
 
 	@GetMapping("/get")
@@ -1331,4 +1334,25 @@ public class CmsOrderController {
 		} else orderDonDifferRelateMapper.insert(relate);
 		return GatewayResponse.SUCCESS.newBuilder().toResult();
 	}
+
+	/**
+	 * 用户加购订单车票列表
+	 */
+	@GetMapping("/get/dp/relations")
+	public Result<List<GroupRelationDetailView>> getDpRelations(Long orderId) throws Exception {
+		OrderDon orderDon = orderDonMapper.selectById(orderId);
+		OrderDiscountPlusPurchaseSkuRelation orderDiscountPlusPurchaseSkuRelation = plusPurchaseSkuRelationMapper.selectOne(Wrappers.lambdaQuery(OrderDiscountPlusPurchaseSkuRelation.class)
+				.eq(OrderDiscountPlusPurchaseSkuRelation::getOrderId, orderId)
+				.last("limit 1"));
+		if (orderDiscountPlusPurchaseSkuRelation != null) {
+			String relationIds = orderDiscountPlusPurchaseSkuRelation.getRelationIds();
+			if (StrUtil.isNotBlank(relationIds)) {
+				List<Long> longs = Jsons.parseList(relationIds, Long.class);
+				longs.add(orderDon.getRelationId());
+				List<GroupRelationDetailView> groupsRelationViews = beanSearcher.searchAll(GroupRelationDetailView.class, MapUtils.builder().field(GroupRelationDetailView::getUserId, orderDon.getUserId()).field(GroupRelationDetailView::getRelationId, longs).op(Operator.InList).build());
+				return GatewayResponse.SUCCESS.newBuilder().toResult(groupsRelationViews);
+			}
+		}
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
 }