Procházet zdrojové kódy

Merge branch 'coupon_notify'

zoujiajian před 1 rokem
rodič
revize
d3065f1df0

+ 109 - 82
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationFrontServiceImpl.java

@@ -271,88 +271,9 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 				}
 				ticket.setPayTime(payTime);
 			}
-			if (ticket.getGoodsId() == 26 && ticket.getIsMirror()) {
-				List<UpgradePackage> upgradePackages = upgradePackageMapper.selectList(Wrappers.lambdaQuery(UpgradePackage.class).apply("JSON_CONTAINS(sku_ids,'\"" + ticket.getSkuId() + "\"')").eq(UpgradePackage::getStatus, Boolean.TRUE).eq(UpgradePackage::getDeleted, Boolean.TRUE));
-				if (CollectionUtil.isNotEmpty(upgradePackages)) {
-					upgradePackages.stream().map(e -> e.getPrice().divide(BigDecimal.valueOf(e.getNum()), 2, RoundingMode.HALF_UP)).min(BigDecimal::compareTo).ifPresent(ticket::setMjPackagePrice);
-				}
-				try {
-					MidjourneyUserView search = beanSearcher.searchFirst(MidjourneyUserView.class, MapUtils.flatBuilder(request.getParameterMap())
-							.field(MidjourneyUserView::getUserId, ticket.getUserId()).field(MidjourneyUserView::getRelationId, ticket.getRelationId())
-							.onlySelect(MidjourneyUserView::getMjUserRelaxNum, MidjourneyUserView::getMjUserFastNum, MidjourneyUserView::getIsCar)
-							.build());
-					if (search == null) {
-						MidjourneyUser midjourneyUser = midjourneyAccountService.getMidjourneyUserToken(ticket.getUserId(), ticket.getRelationId());
-						ticket.setMjUserFastNum(midjourneyUser.getMjFastNum());
-						ticket.setMjUserRelaxNum(midjourneyUser.getMjRelaxNum());
-						ticket.setIsCar(false);
-					} else {
-						ticket.setIsCar(search.getIsCar());
-						ticket.setMjUserFastNum(search.getMjUserFastNum());
-						ticket.setMjUserRelaxNum(search.getMjUserRelaxNum());
-					}
-				} catch (Exception e) {
-				}
-			}
-			if (ticket.getGoodsId() == 18 && ticket.getIsCar() && ticket.getExpiryTime() != null) {
-				try {
-					//gpt用户镜像
-					ChatGptUserView userInfo = chatGptAccountService.getUserInfo(userId, ticket.getRelationId());
-					ticket.setGptUserLimitNum(userInfo.getLimitNum());
-					ticket.setGptUserLimitTime(userInfo.getLimitTime());
-					ticket.setUse(userInfo.getUse());
-					Integer count = upgradePackageMapper.selectCount(Wrappers.lambdaQuery(UpgradePackage.class).apply("JSON_CONTAINS(sku_ids,'\"" + ticket.getSkuId() + "\"')")
-							.gt(UpgradePackage::getNum, userInfo.getLimitNum())
-							.eq(UpgradePackage::getStatus, Boolean.TRUE)
-							.eq(UpgradePackage::getGptType, 0)
-							.eq(UpgradePackage::getDeleted, Boolean.TRUE));
-					ticket.setUpgrade(count > 0 ? true : false);
-					ticket.setPackageId(userInfo.getPackageId());
-					if (userInfo.getPackageId() != 0) {
-						UpgradePackage upgradePackage = upgradePackageMapper.selectById(userInfo.getPackageId());
-						ticket.setPackagePrice(upgradePackage.getPrice());
-						Long upgradeOrderDonSkuId = upgradePackage.getUpgradeSkuId();
-						GoodsDonSkuRenewView renewSku = beanSearcher.searchFirst(GoodsDonSkuRenewView.class, MapUtils.builder().field(GoodsDonSkuRenewView::getSkuId, upgradeOrderDonSkuId).build());
-						renewSku.setPackageId(userInfo.getPackageId());
-						ticket.setRenewSku(renewSku);
-					}
-					ticket.setIsRenewPackage(userInfo.getIsRenewPackage());
-					Long renewSkuId = userInfo.getRenewSkuId();
-					if (renewSkuId != null) {
-						GoodsDonSkuRenewView upgradeSkuRenewView = ticket.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()));
-							ticket.setRenewSku(renewSku);
-						}
-					}
-				} catch (Exception e) {
-				}
-			}
+			//设置镜像车票信息
+			setMirrorTicketInfo(ticket);
 
-			if (ticket.getGoodsId() == 75l && ticket.getExpiryTime() != null) {
-				try {
-					ClaudeUserView userInfo = claudeService.getUserInfo(userId, ticket.getRelationId());
-					ticket.setGptUserLimitNum(userInfo.getLimitNum());
-					ticket.setGptUserLimitTime(userInfo.getLimitTime());
-					ticket.setUse(userInfo.getUse());
-				} catch (Exception e) {
-				}
-			}
-			if (ticket.getGoodsId() == Constant.LUMA_GOODS_ID && ticket.getExpiryTime() != null) {
-				try {
-					List<UpgradePackage> upgradePackages = upgradePackageMapper.selectList(Wrappers.lambdaQuery(UpgradePackage.class).apply("JSON_CONTAINS(sku_ids,'\"" + ticket.getSkuId() + "\"')").eq(UpgradePackage::getStatus, Boolean.TRUE).eq(UpgradePackage::getDeleted, Boolean.TRUE));
-					if (CollectionUtil.isNotEmpty(upgradePackages)){
-						upgradePackages.stream().map(e -> e.getPrice().divide(BigDecimal.valueOf(e.getNum()), 2, RoundingMode.HALF_UP)).min(BigDecimal::compareTo).ifPresent(ticket::setLumaPackagePrice);
-					}
-					LumaUser lumaUser = lumaService.getLumaUser(userId, ticket.getRelationId());
-					ticket.setLumaUserNum(lumaUser.getNum());
-				} catch (Exception e) {
-				}
-			}
 			List<GroupsRelationUserView> relationUserViews = groupsRelationMapper.getUserRelationUserViews(ticket.getGroupId(), ticket.getRelationId(), ticket.getUserId(), List.of(GroupsRelation.Status.validity, GroupsRelation.Status.outside));
 			ticket.setRelationViews(relationUserViews);
 			if (ticket.getExpiryTime() != null) {
@@ -779,7 +700,6 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 				.field(RenewalView::getStatus, List.of("validity", "overdue", "outside")).op(Operator.InList)
 				.field(RenewalView::getAqType, 1)
 				.orderBy(RenewalView::getExpiryTime).asc()
-				.onlySelect(RenewalView::getMonths, RenewalView::getExpiryTime, RenewalView::getRelationId, RenewalView::getAccount, RenewalView::getGoodsId, RenewalView::getTitle, RenewalView::getLogo, RenewalView::getImg, RenewalView::getGroupId, RenewalView::getSkuId, RenewalView::getSpecVal, RenewalView::getGoodsStatus, RenewalView::getSkuStatus)
 				.build());
 		if (list.size() > 5) {
 			redisService.setNx(RedisService.key.TICKET_EXPIRY_NOTIFY_DAY.getNameFormat(thisDate, userId), userId, RedisService.key.TICKET_EXPIRY_NOTIFY_DAY.getTimeout());
@@ -805,6 +725,8 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 			}
 			if (DateUtil.beginOfDay(expiryTime).compareTo(DateUtil.offsetDay(thisZero, day.get())) <= 0) {
 				ticket.setExpiryTimeStr(DateUtil.format(ticket.getExpiryTime(), "yyyy-MM-dd"));
+				//GPT镜像信息
+				setGptMirrorInfo(ticket);
 				ticket.setExpiryTime(null);
 				return true;
 			}
@@ -996,4 +918,109 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 		}
 	}
 
+	private void setMirrorTicketInfo(RenewalView ticket) {
+		//设置MJ镜像信息
+		setMjMirrorInfo(ticket);
+		//设置GPT镜像信息
+		setGptMirrorInfo(ticket);
+		//clause pro
+		setClaudeProInfo(ticket);
+		//luma
+		setLumaInfo(ticket);
+	}
+
+	private void setMjMirrorInfo(RenewalView ticket) {
+		if (ticket.getGoodsId() == 26 && ticket.getIsMirror()) {
+			List<UpgradePackage> upgradePackages = upgradePackageMapper.selectList(Wrappers.lambdaQuery(UpgradePackage.class).apply("JSON_CONTAINS(sku_ids,'\"" + ticket.getSkuId() + "\"')").eq(UpgradePackage::getStatus, Boolean.TRUE).eq(UpgradePackage::getDeleted, Boolean.TRUE));
+			if (CollectionUtil.isNotEmpty(upgradePackages)) {
+				upgradePackages.stream().map(e -> e.getPrice().divide(BigDecimal.valueOf(e.getNum()), 2, RoundingMode.HALF_UP)).min(BigDecimal::compareTo).ifPresent(ticket::setMjPackagePrice);
+			}
+			try {
+				MidjourneyUserView search = beanSearcher.searchFirst(MidjourneyUserView.class, MapUtils.flatBuilder(request.getParameterMap())
+						.field(MidjourneyUserView::getUserId, ticket.getUserId()).field(MidjourneyUserView::getRelationId, ticket.getRelationId())
+						.onlySelect(MidjourneyUserView::getMjUserRelaxNum, MidjourneyUserView::getMjUserFastNum, MidjourneyUserView::getIsCar)
+						.build());
+				if (search == null) {
+					MidjourneyUser midjourneyUser = midjourneyAccountService.getMidjourneyUserToken(ticket.getUserId(), ticket.getRelationId());
+					ticket.setMjUserFastNum(midjourneyUser.getMjFastNum());
+					ticket.setMjUserRelaxNum(midjourneyUser.getMjRelaxNum());
+					ticket.setIsCar(false);
+				} else {
+					ticket.setIsCar(search.getIsCar());
+					ticket.setMjUserFastNum(search.getMjUserFastNum());
+					ticket.setMjUserRelaxNum(search.getMjUserRelaxNum());
+				}
+			} catch (Exception e) {
+			}
+		}
+	}
+
+	public void setGptMirrorInfo(RenewalView ticket) {
+		if (ticket.getGoodsId() == 18 && ticket.getIsCar() && ticket.getExpiryTime() != null) {
+			try {
+				//gpt用户镜像
+				ChatGptUserView userInfo = chatGptAccountService.getUserInfo(ticket.getUserId(), ticket.getRelationId());
+				ticket.setGptUserLimitNum(userInfo.getLimitNum());
+				ticket.setGptUserLimitTime(userInfo.getLimitTime());
+				ticket.setUse(userInfo.getUse());
+				Integer count = upgradePackageMapper.selectCount(Wrappers.lambdaQuery(UpgradePackage.class).apply("JSON_CONTAINS(sku_ids,'\"" + ticket.getSkuId() + "\"')")
+						.gt(UpgradePackage::getNum, userInfo.getLimitNum())
+						.eq(UpgradePackage::getStatus, Boolean.TRUE)
+						.eq(UpgradePackage::getGptType, 0)
+						.eq(UpgradePackage::getDeleted, Boolean.TRUE));
+				ticket.setUpgrade(count > 0 ? true : false);
+				ticket.setPackageId(userInfo.getPackageId());
+				if (userInfo.getPackageId() != 0) {
+					UpgradePackage upgradePackage = upgradePackageMapper.selectById(userInfo.getPackageId());
+					ticket.setPackagePrice(upgradePackage.getPrice());
+					Long upgradeOrderDonSkuId = upgradePackage.getUpgradeSkuId();
+					GoodsDonSkuRenewView renewSku = beanSearcher.searchFirst(GoodsDonSkuRenewView.class, MapUtils.builder().field(GoodsDonSkuRenewView::getSkuId, upgradeOrderDonSkuId).build());
+					renewSku.setPackageId(userInfo.getPackageId());
+					ticket.setRenewSku(renewSku);
+				}
+				ticket.setIsRenewPackage(userInfo.getIsRenewPackage());
+				Long renewSkuId = userInfo.getRenewSkuId();
+				if (renewSkuId != null) {
+					GoodsDonSkuRenewView upgradeSkuRenewView = ticket.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()));
+						ticket.setRenewSku(renewSku);
+					}
+				}
+			} catch (Exception e) {
+			}
+		}
+	}
+
+	public void setClaudeProInfo(RenewalView ticket) {
+		//clause pro
+		if (ticket.getGoodsId() == 75l && ticket.getExpiryTime() != null) {
+			try {
+				ClaudeUserView userInfo = claudeService.getUserInfo(ticket.getUserId(), ticket.getRelationId());
+				ticket.setGptUserLimitNum(userInfo.getLimitNum());
+				ticket.setGptUserLimitTime(userInfo.getLimitTime());
+				ticket.setUse(userInfo.getUse());
+			} catch (Exception e) {
+			}
+		}
+	}
+
+	public void setLumaInfo(RenewalView ticket) {
+		if (ticket.getGoodsId() == Constant.LUMA_GOODS_ID && ticket.getExpiryTime() != null) {
+			try {
+				List<UpgradePackage> upgradePackages = upgradePackageMapper.selectList(Wrappers.lambdaQuery(UpgradePackage.class).apply("JSON_CONTAINS(sku_ids,'\"" + ticket.getSkuId() + "\"')").eq(UpgradePackage::getStatus, Boolean.TRUE).eq(UpgradePackage::getDeleted, Boolean.TRUE));
+				if (CollectionUtil.isNotEmpty(upgradePackages)){
+					upgradePackages.stream().map(e -> e.getPrice().divide(BigDecimal.valueOf(e.getNum()), 2, RoundingMode.HALF_UP)).min(BigDecimal::compareTo).ifPresent(ticket::setLumaPackagePrice);
+				}
+				LumaUser lumaUser = lumaService.getLumaUser(ticket.getUserId(), ticket.getRelationId());
+				ticket.setLumaUserNum(lumaUser.getNum());
+			} catch (Exception e) {
+			}
+		}
+	}
+
 }