zoujiajian 2 年 前
コミット
2ae3ff5afc

+ 2 - 0
netflix-service/src/main/java/com/cyksj/service/relation/GroupRelationFrontService.java

@@ -57,4 +57,6 @@ public interface GroupRelationFrontService {
 	List<RenewalView> getExpiryRenewalNotify(Long userId);
 
 	void getCollegeStudentUserGptTicket(Long userId);
+
+	RenewalView getTicketDetail(long userId, Long relationId);
 }

+ 18 - 0
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationFrontServiceImpl.java

@@ -812,4 +812,22 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 			log.error("发送用户GPT镜像体验失败:{}", StringUtil.getErrorText(e));
 		}
 	}
+
+	@Override
+	public RenewalView getTicketDetail(long userId, Long relationId) {
+		User u = userMapper.selectById(userId);
+		List<Long> userIds = userBindRelationService.getRelationUserIdList(userId, u);
+		MapBuilder builder = MapUtils.builder();
+		RenewalView renewalView = beanSearcher.searchFirst(RenewalView.class, builder
+				.field(RenewalView::getRelationId, relationId)
+				.field(RenewalView::getUserId, 0).op(Operator.GreaterThan)
+				.field(RenewalView::getUserId, userIds).op(Operator.InList)
+				.field("condition", String.format("(gr.expiry_time is null or gr.expiry_time > '%s')", DateTime.now()))
+				.field(RenewalView::getStatus, List.of("validity", "outside")).op(Operator.InList)
+				.orderBy(RenewalView::getExpiryTime).asc()
+				.onlySelect(RenewalView::getRelationId, RenewalView::getExpiryTime)
+				.build());
+		renewalView.setExpiryTimeStr(DateUtil.format(renewalView.getExpiryTime(), "yyyy-MM-dd"));
+		return renewalView;
+	}
 }

+ 13 - 0
netflix-web/src/main/java/com/cyksj/web/controller/group/GroupRelationController.java

@@ -763,4 +763,17 @@ public class GroupRelationController {
         List<RenewalView> expiryRenewals = groupRelationFrontService.getExpiryRenewalNotify(userId);
         return GatewayResponse.SUCCESS.newBuilder().toResult(expiryRenewals);
     }
+
+    /**
+     * 车票详情
+     */
+    @GetMapping("/get/detail")
+    public Result<RenewalView> getTicketDetail(Long relationId) {
+        if (relationId == null) {
+            return GatewayResponse.SUCCESS.newBuilder().toResult();
+        }
+        long userId = StpUserUtil.getLoginIdAsLong();
+        RenewalView ticketDetail = groupRelationFrontService.getTicketDetail(userId, relationId);
+        return GatewayResponse.SUCCESS.newBuilder().toResult(ticketDetail);
+    }
 }