Bläddra i källkod

fix 奈飞恢复车票退款;恢复中车票过期 展示

zoujiajian 10 månader sedan
förälder
incheckning
f6cb4e3168

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

@@ -202,6 +202,12 @@ public class GroupsRelation extends BaseEntity {
      */
     private Boolean isFrozen;
 
+    /**
+     * 是否恢复中
+     * 默认false
+     */
+    private Boolean isRecover;
+
     /**
      * 解冻时长
      */

+ 7 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/views/GroupsRelationView.java

@@ -168,6 +168,13 @@ public class GroupsRelationView {
     @DbField("gr.is_frozen")
     private Boolean isFrozen;
 
+    /**
+     * 是否恢复中
+     * 默认false
+     */
+    @DbField("gr.is_recover")
+    private Boolean isRecover;
+
     /**
      * 解冻时长
      */

+ 2 - 1
netflix-dao/src/main/resources/mapper/GroupRelationMapper.xml

@@ -33,7 +33,8 @@
         is_frozen = 0,
         unfrozen_time = null,
         reserved_days = null,
-        recharge_remark = null
+        recharge_remark = null,
+        is_recover = 0
         where id = #{entity.id}
         <if test="expireTime != null">
             and expiry_time = #{expireTime}

+ 23 - 3
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationFrontServiceImpl.java

@@ -253,8 +253,8 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 		if (StrUtil.isNotBlank(account)) {
 			builder.field(RenewalView::getAccount, account).op(Operator.Contain);
 		}
-		//代充剩余次数大于0/未发车/过期时间/冻结时
-		String conditionSql = String.format("(gr.recharge_remain_num > 0 or gr.expiry_time is null or gr.expiry_time > '%s' or gr.is_frozen = true", now);
+		//代充剩余次数大于0/未发车/过期时间/冻结时/恢复中
+		String conditionSql = String.format("(gr.recharge_remain_num > 0 or gr.expiry_time is null or gr.expiry_time > '%s' or gr.is_frozen = true or gr.is_recover = true", now);
 		//镜像车票 过期7天后清除
 		//个人店铺和AI店铺 暂不支持过期续费
 		if (cmt == null && StrUtil.isEmpty(customId)) {
@@ -1204,6 +1204,15 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 			netflixUserAccountStatusRecord.setDeleted(false);
 			netflixUserAccountStatusRecordMapper.updateById(netflixUserAccountStatusRecord);
 		}
+		NetflixUserAccountSubmitRecoverRecord recoverRecord = netflixUserAccountSubmitRecoverRecordMapper.selectOne(Wrappers.lambdaQuery(NetflixUserAccountSubmitRecoverRecord.class)
+				.eq(NetflixUserAccountSubmitRecoverRecord::getRelationId, relationId)
+				.in(NetflixUserAccountSubmitRecoverRecord::getUserId, userIdList)
+				.eq(NetflixUserAccountSubmitRecoverRecord::getStatus, 0)
+				.last("limit 1"));
+		if (recoverRecord != null) {
+			recoverRecord.setStatus(3);
+			netflixUserAccountSubmitRecoverRecordMapper.updateById(recoverRecord);
+		}
 		redisService.del(key);
 	}
 
@@ -1623,6 +1632,8 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 		//往前加100位
 		recoverResp.setIndex(100 + selectCount + 1);
 		recoverResp.setRemainDays(recoverRecord.getRemainDays());
+		//更新车票恢复状态
+		groupsRelationMapper.update(null, Wrappers.lambdaUpdate(GroupsRelation.class).set(GroupsRelation::getIsRecover, Boolean.TRUE).eq(GroupsRelation::getId, recoverRecord.getRelationId()));
 		return recoverResp;
 	}
 
@@ -1920,6 +1931,15 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 					.set(NetflixUserAccountStatusRecord::getDeleted, false)
 					.eq(NetflixUserAccountStatusRecord::getId, netflixRelationView.getNfCheckId()));
 		}
+		NetflixUserAccountSubmitRecoverRecord recoverRecord = netflixUserAccountSubmitRecoverRecordMapper.selectOne(Wrappers.lambdaQuery(NetflixUserAccountSubmitRecoverRecord.class)
+				.eq(NetflixUserAccountSubmitRecoverRecord::getRelationId, orderDon.getRelationId())
+				.in(NetflixUserAccountSubmitRecoverRecord::getUserId, userIdList)
+				.eq(NetflixUserAccountSubmitRecoverRecord::getStatus, 0)
+				.last("limit 1"));
+		if (recoverRecord != null) {
+			recoverRecord.setStatus(3);
+			netflixUserAccountSubmitRecoverRecordMapper.updateById(recoverRecord);
+		}
 		return true;
 	}
 
@@ -2480,7 +2500,7 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 				//重新设置车票时长
 				netflixRelationView.setExpiryTime(DateUtil.offsetDay(DateTime.now(), netflixRelationView.getReservedDays()));
 			}
-			if (netflixRelationView.getExpiryTime().before(DateTime.now())) {
+			if (!netflixRelationView.getIsRecover() && netflixRelationView.getExpiryTime().before(DateTime.now())) {
 				throw BusinessRuntimeException.getInstance("奈飞车票已过期");
 			}
 		}