zoujiajian 1 tahun lalu
induk
melakukan
a0ff92ad50

+ 41 - 0
netflix-dao/src/main/java/com/cyksj/model/views/TicketRenewUpgradeView.java

@@ -0,0 +1,41 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbIgnore;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * 项目名: yhlxj11111111
+ * 文件名: TicketRenewUpgradeView
+ * 创建者: JavaZou
+ * 创建时间:2025/7/25 18:11
+ */
+@Getter
+@Setter
+public class TicketRenewUpgradeView {
+
+	/**
+	 * 是否是续费升级
+	 */
+	@DbIgnore
+	private Boolean isRenewPackage;
+
+	/**
+	 * 是否可升级套餐 (标准,专业)
+	 */
+	@DbIgnore
+	private Boolean upgrade;
+
+	@DbIgnore
+	private Long packageId;
+
+	/**
+	 * 目前已升级套餐价格
+	 */
+	@DbIgnore
+	private BigDecimal packagePrice;
+
+	private GoodsDonSkuRenewView renewSku;
+}

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/views/UserMirrorTicketView.java

@@ -309,4 +309,10 @@ public class UserMirrorTicketView {
 	 */
 	@DbIgnore
 	private Integer model;
+
+	/**
+	 * 订单id
+	 */
+	@DbIgnore
+	private Long orderId;
 }

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

@@ -11,10 +11,7 @@ import com.cyksj.model.request.TicketLoginReq;
 import com.cyksj.model.response.NetflixErrorAccountStatus;
 import com.cyksj.model.response.NetflixRecoverResp;
 import com.cyksj.model.response.NetflixRefundInfoResp;
-import com.cyksj.model.views.GoodsCategorySkuView;
-import com.cyksj.model.views.RenewalView;
-import com.cyksj.model.views.UserMirrorTicketView;
-import com.cyksj.model.views.UserRecommendGoodsFrontView;
+import com.cyksj.model.views.*;
 import com.ejlchina.searcher.SearchResult;
 
 import java.util.List;
@@ -116,4 +113,6 @@ public interface GroupRelationFrontService {
 	NetflixRefundInfoResp refundNetflixInfo(Long userId, Long relationId);
 
 	List<UserMirrorTicketView> getMirrorTicket(long userId);
+
+	TicketRenewUpgradeView getRenewUpgradeInfo(long userId, Long relationId);
 }

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

@@ -1814,6 +1814,68 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 		return list;
 	}
 
+	@Override
+	public TicketRenewUpgradeView getRenewUpgradeInfo(long userId, Long relationId) {
+		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
+		GroupsRelationView groupsRelationView = beanSearcher.searchFirst(GroupsRelationView.class, MapUtils.builder()
+				.field(GroupsRelationView::getUserId, userIdList).op(Operator.InList)
+				.field(GroupsRelationView::getId, relationId)
+				.field(GroupsRelationView::getExpiryTime, DateTime.now())
+				.build());
+		TicketRenewUpgradeView ticketRenewUpgradeView = new TicketRenewUpgradeView();
+		if (groupsRelationView != null) {
+			//clause pro
+			if (groupsRelationView.getGoodsId() == 75l) {
+				try {
+					ClaudeUserView userInfo = claudeService.getUserInfo(groupsRelationView.getUserId(), groupsRelationView.getId());
+					Long renewSkuId = userInfo.getRenewSkuId();
+					if (renewSkuId != null) {
+						GoodsDonSkuRenewView renewSku = beanSearcher.searchFirst(GoodsDonSkuRenewView.class, MapUtils.builder().field(GoodsDonSkuRenewView::getSkuId, renewSkuId).build());
+						ticketRenewUpgradeView.setRenewSku(renewSku);
+					}
+				} catch (Exception e) {
+				}
+			}
+
+			if (groupsRelationView.getGoodsId() == 18) {
+				try {
+					//gpt用户镜像
+					ChatGptUserView userInfo = chatGptAccountService.getUserInfo(groupsRelationView.getUserId(), groupsRelationView.getId());
+					Integer count = upgradePackageMapper.selectCount(Wrappers.lambdaQuery(UpgradePackage.class).apply("JSON_CONTAINS(sku_ids,'\"" + groupsRelationView.getSkuId() + "\"')")
+							.gt(UpgradePackage::getNum, userInfo.getLimitNum())
+							.eq(UpgradePackage::getStatus, Boolean.TRUE)
+							.eq(UpgradePackage::getGptType, 0)
+							.eq(UpgradePackage::getDeleted, Boolean.TRUE));
+					ticketRenewUpgradeView.setUpgrade(count > 0 ? true : false);
+					ticketRenewUpgradeView.setPackageId(userInfo.getPackageId());
+					if (userInfo.getPackageId() != 0) {
+						UpgradePackage upgradePackage = upgradePackageMapper.selectById(userInfo.getPackageId());
+						ticketRenewUpgradeView.setPackagePrice(upgradePackage.getPrice());
+						Long upgradeOrderDonSkuId = upgradePackage.getUpgradeSkuId();
+						GoodsDonSkuRenewView renewSku = beanSearcher.searchFirst(GoodsDonSkuRenewView.class, MapUtils.builder().field(GoodsDonSkuRenewView::getSkuId, upgradeOrderDonSkuId).build());
+						renewSku.setPackageId(userInfo.getPackageId());
+						ticketRenewUpgradeView.setRenewSku(renewSku);
+					}
+					ticketRenewUpgradeView.setIsRenewPackage(userInfo.getIsRenewPackage());
+					Long renewSkuId = userInfo.getRenewSkuId();
+					if (renewSkuId != null) {
+						GoodsDonSkuRenewView upgradeSkuRenewView = ticketRenewUpgradeView.getRenewSku();
+						GoodsDonSkuRenewView renewSku = beanSearcher.searchFirst(GoodsDonSkuRenewView.class, MapUtils.builder().field(GoodsDonSkuRenewView::getSkuId, renewSkuId).build());
+						//续费升级是更高级规格
+						if (upgradeSkuRenewView == null || (renewSku.getGptUserLimitNum() >= upgradeSkuRenewView.getGptUserLimitNum() && renewSku.getMonths() >= userInfo.getMonths())) {
+							Optional.ofNullable(orderDonRenewRecordMapper.selectOne(Wrappers.lambdaQuery(OrderDonRenewRecord.class)
+									.eq(OrderDonRenewRecord::getOrderId, userInfo.getRenewOrderId())
+									.last("limit 1"))).ifPresent(e -> renewSku.setOriginalOrderId(e.getOrderId()));
+							ticketRenewUpgradeView.setRenewSku(renewSku);
+						}
+					}
+				} catch (Exception e) {
+				}
+			}
+		}
+		return ticketRenewUpgradeView;
+	}
+
 	private DistributePosterGoodsDetailView setGoodsPoster(RenewalView ticket, User user, List<Long> userIds) {
 		DistributePosterGoodsDetailView distributePosterGoodsDetailView = beanSearcher.searchFirst(DistributePosterGoodsDetailView.class, MapUtils.flatBuilder(request.getParameterMap())
 				.field(DistributePosterGoodsFrontView::getGoodsId, ticket.getGoodsId()).build());

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

@@ -1386,4 +1386,15 @@ public class GroupRelationController {
         List<UserMirrorTicketView> list = groupRelationFrontService.getMirrorTicket(userId);
         return GatewayResponse.SUCCESS.newBuilder().toResult(list);
     }
+
+
+    /**
+     * 镜像车票续费升级信息
+     */
+    @GetMapping("/get/renewInfo")
+    public Result<TicketRenewUpgradeView> getRenewUpgradeInfo(Long relationId) {
+        long userId = StpUserUtil.getLoginIdAsLong();
+        TicketRenewUpgradeView renewView = groupRelationFrontService.getRenewUpgradeInfo(userId, relationId);
+        return GatewayResponse.SUCCESS.newBuilder().toResult(renewView);
+    }
 }