zoujiajian 1 год назад
Родитель
Сommit
b4dd38544e

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

@@ -18,7 +18,7 @@ import java.util.List;
  *创建时间:2022/12/29 15:42
  */
 public interface GroupRelationFrontService {
-	SearchResult<RenewalView> getMyTicket(long userId, Boolean isLoginPopularize, String customId, String account);
+	SearchResult<RenewalView> getMyTicket(long userId, Boolean isLoginPopularize, String customId, String account, String orderNo);
 
 	Boolean isJoinCorpWx(Long userId, Boolean isJoin, Boolean noCoupon);
 

+ 6 - 2
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationFrontServiceImpl.java

@@ -158,7 +158,7 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 	private final UserBenefitsMapper userBenefitsMapper;
 
 	@Override
-	public SearchResult<RenewalView> getMyTicket(long userId, Boolean isLoginPopularize, String customId, String account) {
+	public SearchResult<RenewalView> getMyTicket(long userId, Boolean isLoginPopularize, String customId, String account, String orderNo) {
 		User u = userMapper.selectById(userId);
 		if (u == null) throw BusinessRuntimeException.getGatewayApiCode(GatewayApiCode.CMS_TOKEN_VALID);
 		if (u.getIsBlack()) {
@@ -171,11 +171,15 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 		if (StrUtil.isNotBlank(account)) {
 			builder.field(RenewalView::getAccount, account).op(Operator.Contain);
 		}
+		String conditionSql = String.format("(gr.expiry_time is null or gr.expiry_time > '%s')", now);
+		if (StrUtil.isNotEmpty(orderNo)) {
+			conditionSql += String.format(" and exists(select 1 from order_don o where o.user_id = gr.user_id and o.order_no = %s and o.status not in ('close','noPayment','refund'))", orderNo);
+		}
 		SearchResult<RenewalView> list = beanSearcher.search(RenewalView.class, builder
 				.field(RenewalView::getUserId, 0).op(Operator.GreaterThan)
 				.field(RenewalView::getUserId, userIds).op(Operator.InList)
 				//.field(RenewalView::getYhsId, yhsId)
-				.put("condition", String.format("(gr.expiry_time is null or gr.expiry_time > '%s')", now))
+				.put("condition", conditionSql)
 				.field(RenewalView::getStatus, List.of("validity", "overdue", "outside")).op(Operator.InList)
 				.orderBy(RenewalView::getExpiryTime).asc()
 				.build());

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

@@ -138,9 +138,9 @@ public class GroupRelationController {
     private final static Sequence SEQUENCE = new Sequence(0);
 
     @RequestMapping("/get/renewal")
-    public Result<SearchResult<RenewalView>> get(Boolean isLoginPopularize, String customId, String account) {
+    public Result<SearchResult<RenewalView>> get(Boolean isLoginPopularize, String customId, String account, String orderNo) {
         long userId = StpUserUtil.getLoginIdAsLong();
-        SearchResult<RenewalView> list = groupRelationFrontService.getMyTicket(userId, isLoginPopularize, customId, account);
+        SearchResult<RenewalView> list = groupRelationFrontService.getMyTicket(userId, isLoginPopularize, customId, account, orderNo);
         return GatewayResponse.SUCCESS.newBuilder().toResult(list);
     }