zoujiajian vor 1 Jahr
Ursprung
Commit
fd9c0506f1

+ 11 - 2
netflix-service/src/main/java/com/cyksj/service/fission/impl/UserMirrorFissionFrontServiceImpl.java

@@ -18,6 +18,7 @@ import com.cyksj.model.entity.*;
 import com.cyksj.model.response.UserMirrorFissionReceiveResp;
 import com.cyksj.model.views.RenewalView;
 import com.cyksj.service.fission.UserMirrorFissionFrontService;
+import com.cyksj.service.relation.GroupRelationClearService;
 import com.cyksj.service.relation.GroupRelationFrontService;
 import com.cyksj.service.user.UserBindRelationService;
 import com.ejlchina.searcher.BeanSearcher;
@@ -64,6 +65,8 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
 
 	private final BeanSearcher beanSearcher;
 
+	private final GroupRelationClearService groupRelationClearService;
+
 	@Override
 	public Boolean getPurchasedMirrorStatus(long userId, Long goodsId) {
 		return hasPaidMirrorTicket(userId, goodsId);
@@ -111,7 +114,7 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
 //			throw BusinessRuntimeException.getInstance("您已领取该试用车票");
 			return resp;
 		}
-
+		Long relationId = null;
 		try {
 			UserMirrorFissionReceiveRecord receiveRecord = new UserMirrorFissionReceiveRecord();
 			receiveRecord.setUserId(userId);
@@ -119,13 +122,19 @@ public class UserMirrorFissionFrontServiceImpl implements UserMirrorFissionFront
 			receiveRecord.setSkuId(trialSkuId);
 			receiveRecord.setFissionId(fissionId);
 			//车票id
-			Long relationId = groupRelationFrontService.getTrialTicketByUserIdAndGoodsId(userId, trialSkuId, 3);
+			relationId = groupRelationFrontService.getTrialTicketByUserIdAndGoodsId(userId, trialSkuId, 3);
 			receiveRecord.setRelationId(relationId);
 			userMirrorFissionReceiveRecordMapper.insert(receiveRecord);
 			//给裂变活动发起者车票添加时长
 			groupsRelationMapper.incrExpiryTime(userMirrorFissionRecord.getRelationId(), userMirrorFissionRecord.getUserId());
 		} catch (DuplicateKeyException e) {
 			resp.setStatus(UserMirrorFissionReceiveResp.Status.claimed);
+			if (relationId != null) {
+				GroupsRelation relation = groupsRelationMapper.selectById(relationId);
+				if (relation.getUserId().equals(userId)) {
+					groupRelationClearService.clearTicket(relation, UserTicketClearedRecord.Source.manual);
+				}
+			}
 //			throw BusinessRuntimeException.getInstance("您已领取该试用车票");
 		}
 		return resp;