zoujiajian vor 1 Jahr
Ursprung
Commit
f642aaea21

+ 3 - 3
netflix-service/src/main/java/com/cyksj/service/order/impl/VipOrderDonServiceImpl.java

@@ -145,7 +145,7 @@ public class VipOrderDonServiceImpl extends ServiceImpl<VipOrderDonMapper, VipOr
 		orderDon.setOrderNo(donNo);
 		orderDon.setOpenId(user.getOpenId());
 		//获取会员价格
-		VipDeductDto vipMoneyIfDeduct = getVipMoneyIfDeduct(user, payRequest.getIsDeduct());
+		VipDeductDto vipMoneyIfDeduct = getVipMoneyIfDeduct(user, payRequest.getIsDeduct(), payRequest.getNum());
 		BigDecimal vipMoney = getVipMoney(payRequest.getNum());
 		payRequest.setDonMoney(vipMoney);
 		if (vipMoneyIfDeduct != null) {
@@ -440,10 +440,10 @@ public class VipOrderDonServiceImpl extends ServiceImpl<VipOrderDonMapper, VipOr
 		deductBalancePayOrderMoney(orderDon, balance, user);
 	}
 
-	private VipDeductDto getVipMoneyIfDeduct(User user, Boolean isDeduct) {
+	private VipDeductDto getVipMoneyIfDeduct(User user, Boolean isDeduct, Integer months) {
 		//若用户抵扣
 		if (isDeduct) {
-			return vipFrontService.checkAndGetOrderDeductMoney(user.getId());
+			return vipFrontService.checkAndGetOrderDeductMoney(user.getId(), months);
 		}
 		return null;
 	}

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

@@ -266,7 +266,7 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 			}
 			List<Long> vipSkuIds = vipGoodsSkuMapper.selectList(null).stream().map(VipGoodsSku::getSkuId).collect(Collectors.toList());
 			Set<Long> vipGoodsIds = goodsDonSkuMapper.selectList(Wrappers.lambdaQuery(GoodsDonSku.class)
-					.in(GoodsDonSku::getId, vipSkuIds)).stream().map(GoodsDonSku::getId).collect(Collectors.toSet());
+					.in(GoodsDonSku::getId, vipSkuIds)).stream().map(GoodsDonSku::getGoodsId).collect(Collectors.toSet());
 			Integer vipUserCount = vipUserMapper.selectCount(Wrappers.lambdaQuery(VipUser.class)
 					.in(VipUser::getUserId, userIds)
 					.gt(VipUser::getExpiryTime, now));

+ 1 - 1
netflix-service/src/main/java/com/cyksj/service/vip/VipFrontService.java

@@ -12,5 +12,5 @@ import com.cyksj.model.response.VipUserPageResp;
 public interface VipFrontService {
 	void fillVipInfo(Long userId, VipUserPageResp vipUserPageResp);
 
-	VipDeductDto checkAndGetOrderDeductMoney(Long userId);
+	VipDeductDto checkAndGetOrderDeductMoney(Long userId, Integer months);
 }

+ 7 - 7
netflix-service/src/main/java/com/cyksj/service/vip/impl/VipFrontServiceImpl.java

@@ -76,7 +76,7 @@ public class VipFrontServiceImpl implements VipFrontService {
 		//可抵扣车票
 		if (count.intValue() > 0) {
 			//处理vip抵扣金额
-			VipDeductDto vipDeductDto = commonHandleVipDeductMoney(userIdList, vipSkuIds);
+			VipDeductDto vipDeductDto = commonHandleVipDeductMoney(userIdList, vipSkuIds, 12);
 			deductMoney = vipDeductDto.getDeductMoney();
 			vipUserPageResp.setRelationUserViews(vipDeductDto.getRelationUserViews());
 		}
@@ -87,7 +87,7 @@ public class VipFrontServiceImpl implements VipFrontService {
 	 * 检查用户并获取订单抵扣金额
 	 */
 	@Override
-	public VipDeductDto checkAndGetOrderDeductMoney(Long userId) {
+	public VipDeductDto checkAndGetOrderDeductMoney(Long userId, Integer months) {
 		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
 		List<Long> vipSkuIds = vipGoodsSkuMapper.selectList(null).stream().map(VipGoodsSku::getSkuId).collect(Collectors.toList());
 		Number count = beanSearcher.searchCount(GroupsRelationView.class, MapUtils.builder()
@@ -99,29 +99,29 @@ public class VipFrontServiceImpl implements VipFrontService {
 		if (count.intValue() == 0) {
 			throw BusinessRuntimeException.getInstance("暂无可抵扣AI车票");
 		}
-		VipDeductDto vipDeductDto = commonHandleVipDeductMoney(userIdList, vipSkuIds);
+		VipDeductDto vipDeductDto = commonHandleVipDeductMoney(userIdList, vipSkuIds, months);
 		return vipDeductDto;
 	}
 
 
-	private BigDecimal getVipMoney() {
+	private BigDecimal getVipMoney(Integer months) {
 		SysConfig sysConfig = sysConfigMapper.selectOne(Wrappers.lambdaQuery(SysConfig.class).eq(SysConfig::getSysKey, Constant.VIP_FEE_KEY).last("limit 1"));
 		if (sysConfig == null || StrUtil.isEmpty(sysConfig.getSysValue())) {
 			throw BusinessRuntimeException.getInstance("系统异常");
 		}
 		BigDecimal vipFee = BigDecimal.valueOf(Long.valueOf(sysConfig.getSysValue()));
-		return vipFee;
+		return vipFee.multiply(BigDecimal.valueOf(months));
 	}
 
 	/**
 	 * 统一处理vip抵扣金额
 	 */
-	public VipDeductDto commonHandleVipDeductMoney(List<Long> userIdList, List<Long> vipSkuIds) {
+	public VipDeductDto commonHandleVipDeductMoney(List<Long> userIdList, List<Long> vipSkuIds, Integer months) {
 		VipDeductDto vipDeductDto = new VipDeductDto();
 		DateTime now = DateTime.now();
 		List<Long> deductRelationIds = new ArrayList<>();
 		BigDecimal deductMoney = BigDecimal.ZERO;
-		BigDecimal vipMoney = getVipMoney();
+		BigDecimal vipMoney = getVipMoney(months);
 		//会员规格
 		Set<Long> goodsIds = goodsDonSkuMapper.selectList(Wrappers.lambdaQuery(GoodsDonSku.class)
 				.in(GoodsDonSku::getId, vipSkuIds)).stream().map(GoodsDonSku::getGoodsId).collect(Collectors.toSet());