Przeglądaj źródła

奈飞检测超过1天未恢复,可替换其他车票

zoujiajian 11 miesięcy temu
rodzic
commit
e4a39d932e

+ 7 - 0
netflix-dao/src/main/java/com/cyksj/model/response/NetflixErrorAccountStatus.java

@@ -3,6 +3,8 @@ package com.cyksj.model.response;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.Date;
+
 /**
  * 项目名: yhlxj
  * 文件名: NetflixErrorAccountStatus
@@ -21,4 +23,9 @@ public class NetflixErrorAccountStatus {
 	 * 申请恢复状态
 	 */
 	private Integer recoverStatus;
+
+	/**
+	 * 提交检测时间
+	 */
+	private Date submitTime;
 }

+ 15 - 4
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationFrontServiceImpl.java

@@ -1324,6 +1324,7 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 		if (recoverRecord != null) {
 			//申请恢复状态
 			status.setRecoverStatus(recoverRecord.getStatus());
+			status.setSubmitTime(recoverRecord.getCreatedTime());
 		}
 		return status;
 	}
@@ -1640,11 +1641,21 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 			throw BusinessRuntimeException.getInstance("您的车票有效期未超过30天");
 		}
 		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
-		Integer count = netflixUserAccountSubmitRecoverRecordMapper.selectCount(Wrappers.lambdaQuery(NetflixUserAccountSubmitRecoverRecord.class)
+		NetflixUserAccountSubmitRecoverRecord recoverRecord = netflixUserAccountSubmitRecoverRecordMapper.selectOne(Wrappers.lambdaQuery(NetflixUserAccountSubmitRecoverRecord.class)
 				.eq(NetflixUserAccountSubmitRecoverRecord::getRelationId, relationId)
-				.in(NetflixUserAccountSubmitRecoverRecord::getUserId, userIdList));
-		if (count > 0) {
-			throw BusinessRuntimeException.getInstance("您的车票申请恢复中...");
+				.in(NetflixUserAccountSubmitRecoverRecord::getUserId, userIdList)
+				.orderByDesc(NetflixUserAccountSubmitRecoverRecord::getId).last("limit 1"));
+		if (recoverRecord != null) {
+			if (recoverRecord.getCreatedTime().after(DateUtil.offsetDay(DateTime.now(), -1))) {
+				throw BusinessRuntimeException.getInstance("您的车票申请恢复中...");
+			}
+			recoverRecord.setStatus(2);
+			int update = netflixUserAccountSubmitRecoverRecordMapper.update(recoverRecord, Wrappers.lambdaUpdate(NetflixUserAccountSubmitRecoverRecord.class)
+					.eq(NetflixUserAccountSubmitRecoverRecord::getStatus, 0)
+					.eq(NetflixUserAccountSubmitRecoverRecord::getId, recoverRecord.getId()));
+			if (update == 0) {
+				throw BusinessRuntimeException.getInstance("系统异常,请重试");
+			}
 		}
 		String key = RedisService.key.NETFLIX_CHANGE_TICKET_KEY.getName() + relationId;
 		if (!redisService.setNx(key, relationId, RedisService.key.NETFLIX_CHANGE_TICKET_KEY.getTimeout())) {