zoujiajian 11 meses atrás
pai
commit
3d12c33bc0

+ 30 - 8
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationFrontServiceImpl.java

@@ -1522,14 +1522,36 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 		//校验奈飞账号状态
 		GroupsRelationView netflixRelationView = checkNetflixErrorStatus(relationId, userId);
 		if (netflixRelationView.getIsFrozen()) {
-			//获取同规格的车票
-			Long skuId = netflixRelationView.getSkuId();
-			GoodsDonSku sku = goodsDonSkuMapper.selectById(skuId);
-			GroupsRelation relation = getRelation(null, userId, sku, null);
-			if (relation != null) {
-				resetUserTicket(netflixRelationView, relation);
-				recoverResp.setIsReset(Boolean.TRUE);
-				return recoverResp;
+			int update = groupsRelationMapper.update(null, Wrappers.lambdaUpdate(GroupsRelation.class)
+					.set(GroupsRelation::getIsFrozen, Boolean.FALSE)
+					.eq(GroupsRelation::getId, netflixRelationView.getId())
+					.eq(GroupsRelation::getIsFrozen, Boolean.TRUE));
+			if (update > 0) {
+				try {
+					//获取同规格的车票
+					Long skuId = netflixRelationView.getSkuId();
+					GoodsDonSku sku = goodsDonSkuMapper.selectById(skuId);
+					GroupsRelation relation = getRelation(null, userId, sku, null);
+					if (relation == null) {
+						//还原冻结状态
+						groupsRelationMapper.update(null, Wrappers.lambdaUpdate(GroupsRelation.class)
+								.set(GroupsRelation::getIsFrozen, Boolean.TRUE)
+								.eq(GroupsRelation::getId, netflixRelationView.getId())
+								.eq(GroupsRelation::getIsFrozen, Boolean.FALSE));
+					}
+					if (relation != null) {
+						Long groupsId = relation.getGroupsId();
+						GroupsTrips groupsTrips = groupsMapper.selectById(groupsId);
+						//已发车
+						if (groupsTrips.getStatus() == GroupsTrips.Status.validity) {
+							resetUserTicket(netflixRelationView, relation);
+							recoverResp.setIsReset(Boolean.TRUE);
+							return recoverResp;
+						}
+					}
+				} catch (Exception e) {
+					throw BusinessRuntimeException.getInstance("申请恢复账号失败,请重试");
+				}
 			}
 		}
 		Date expiryTime = netflixRelationView.getExpiryTime();