Kaynağa Gözat

fix 退款后获取权益订单状态修改

zoujiajian 3 yıl önce
ebeveyn
işleme
04049961da

+ 6 - 1
netflix-dao/src/main/java/com/cyksj/model/entity/EquipmentUserReceiveBenefitsRecord.java

@@ -35,10 +35,15 @@ public class EquipmentUserReceiveBenefitsRecord extends BaseEntity{
 	private Long relationId;
 
 	/**
-	 * 退款后订单id
+	 * 生成车票的订单id
 	 */
 	private Long orderId;
 
+	/**
+	 * 对方退款后订单id
+	 */
+	private Long refundOrderId;
+
 	/**
 	 * 默认1成功,退款后0
 	 */

+ 9 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GroupsRelation.java

@@ -1,5 +1,7 @@
 package com.cyksj.model.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ejlchina.searcher.bean.DbIgnore;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.Setter;
@@ -51,6 +53,13 @@ public class GroupsRelation extends BaseEntity {
      */
     private String customerService;
 
+    /**
+     * 获取权益时的订单id
+     */
+    @TableField(exist = false)
+    @DbIgnore
+    private Long orderId;
+
 
     @AllArgsConstructor
     @Getter

+ 3 - 1
netflix-service/src/main/java/com/cyksj/service/distribute/equipment/impl/EquipmentDistributeFrontServiceImpl.java

@@ -63,6 +63,7 @@ public class EquipmentDistributeFrontServiceImpl implements EquipmentDistributeF
 				.field(GroupsRelationView::getUserId, userId)
 				.build());
 		GoodsDonSku goodsDonSku = goodsDonSkuMapper.selectById(skuId);
+		Long orderId = null;
 		if (goodsDonSku == null || !goodsDonSku.getGoodsId().equals(goodsId)) {
 			throw BusinessRuntimeException.getInstance("");
 		}
@@ -70,6 +71,7 @@ public class EquipmentDistributeFrontServiceImpl implements EquipmentDistributeF
 			//领取权益时,没有车票的用户自动上车,获得对应车票
 			GroupsRelation relation = exchangeCodeService.getGroupTripsTicket(goodsDonSku, userId, null, OrderDon.Type.EQUIPMENT);
 			relationId = relation.getId();
+			orderId = relation.getOrderId();
 		} else {
 			Date expiryTime = groupsRelationView.getExpiryTime();
 			if (expiryTime == null) {
@@ -84,7 +86,7 @@ public class EquipmentDistributeFrontServiceImpl implements EquipmentDistributeF
 			relationId = groupsRelationView.getId();
 		}
 		//记录领取记录
-		saveReceiveBenefitsRecord(userId, skuId, goodsDonSku.getMonths(), relationId, null, 1);
+		saveReceiveBenefitsRecord(userId, skuId, goodsDonSku.getMonths(), relationId, orderId, 1);
 		return groupsRelationView;
 	}
 

+ 8 - 1
netflix-service/src/main/java/com/cyksj/service/distribute/equipment/impl/EquipmentDistributeServiceImpl.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.constant.Constant;
 import com.cyksj.common.util.Jsons;
 import com.cyksj.mapper.GroupsRelationMapper;
+import com.cyksj.mapper.OrderDonMapper;
 import com.cyksj.mapper.manage.distribute.equipment.EquipmentUserChanceMapper;
 import com.cyksj.mapper.manage.distribute.equipment.EquipmentUserChanceRecordMapper;
 import com.cyksj.mapper.manage.distribute.equipment.EquipmentUserDistributeInviteRecordMapper;
@@ -55,6 +56,8 @@ public class EquipmentDistributeServiceImpl implements EquipmentDistributeServic
 
 	private final RedisService redisService;
 
+	private final OrderDonMapper orderDonMapper;
+
 	@Override
 	public void saveDistributionInvitation(Long sharedId, Boolean isNewUser, Long userId) {
 		if (sharedId.equals(userId)) {
@@ -175,7 +178,11 @@ public class EquipmentDistributeServiceImpl implements EquipmentDistributeServic
 			relation.setExpiryTime(finalDate);
 			groupsRelationMapper.updateById(relation);
 		}
-		receiveBenefitsRecord.setOrderId(orderId);
+		Optional.ofNullable(receiveBenefitsRecord.getOrderId()).ifPresent(selfOrderId->{
+			orderDonMapper.update(null, Wrappers.lambdaUpdate(OrderDon.class).eq(OrderDon::getId, selfOrderId)
+					.set(OrderDon::getStatus, OrderDon.Status.refund));
+		});
+		receiveBenefitsRecord.setRefundOrderId(orderId);
 		equipmentUserReceiveBenefitsRecordMapper.updateById(receiveBenefitsRecord);
 	}
 

+ 2 - 1
netflix-service/src/main/java/com/cyksj/service/exchange/impl/ExchangeCodeServiceImpl.java

@@ -276,7 +276,7 @@ public class ExchangeCodeServiceImpl extends ServiceImpl<ExchangeCodeMapper, Exc
 			orderDon.setGoodsId(sku.getGoodsId());
 			orderDon.setStatus(goodsDon.getType() == 1 && goodsDon.getSecondType() == 2 ? OrderDon.Status.complete : OrderDon.Status.hasPayment);
 			//兑换码兑换
-			orderDon.setType(OrderDon.Type.EX_CODE);
+			orderDon.setType(orderDonTye);
 			orderDon.setUserId(user.getId());
 			orderDonMapper.insert(orderDon);
 		}
@@ -306,6 +306,7 @@ public class ExchangeCodeServiceImpl extends ServiceImpl<ExchangeCodeMapper, Exc
 				log.error("向客服发送用户{}兑换码兑换车票成功,发送消息失败:{}", user.getId(), e);
 			}
 		});
+		relation.setOrderId(orderDon.getId());
 		return relation;
 	}