zoujiajian 11 месяцев назад
Родитель
Сommit
8d042c8340

+ 24 - 2
netflix-service/src/main/java/com/cyksj/service/mange/vip/impl/CmsVipOrderServiceImpl.java

@@ -5,15 +5,17 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.exception.BusinessRuntimeException;
+import com.cyksj.mapper.GoodsDonSkuMapper;
 import com.cyksj.mapper.GroupsRelationMapper;
 import com.cyksj.mapper.GroupsRelationMapper;
+import com.cyksj.mapper.NanoUserQuotaMapper;
 import com.cyksj.mapper.manage.cms.CmsUserMapper;
 import com.cyksj.mapper.manage.cms.CmsUserMapper;
-import com.cyksj.mapper.OrderDonGalaxyCoinRecordMapper;
 import com.cyksj.mapper.manage.distribute.DistributeWaitingSendPointsMapper;
 import com.cyksj.mapper.manage.distribute.DistributeWaitingSendPointsMapper;
 import com.cyksj.mapper.manage.distribute.UserDistributeMapper;
 import com.cyksj.mapper.manage.distribute.UserDistributeMapper;
 import com.cyksj.mapper.vip.RefundVipOrderDonMapper;
 import com.cyksj.mapper.vip.RefundVipOrderDonMapper;
 import com.cyksj.mapper.vip.VipOrderDonMapper;
 import com.cyksj.mapper.vip.VipOrderDonMapper;
 import com.cyksj.mapper.vip.VipUserMapper;
 import com.cyksj.mapper.vip.VipUserMapper;
 import com.cyksj.model.entity.*;
 import com.cyksj.model.entity.*;
+import com.cyksj.model.manage.views.GroupsRelationView;
 import com.cyksj.model.request.OrderRefundReq;
 import com.cyksj.model.request.OrderRefundReq;
 import com.cyksj.service.coin.UserGalaxyCoinService;
 import com.cyksj.service.coin.UserGalaxyCoinService;
 import com.cyksj.service.mange.vip.CmsVipOrderService;
 import com.cyksj.service.mange.vip.CmsVipOrderService;
@@ -21,6 +23,9 @@ import com.cyksj.service.order.OrderRefundService;
 import com.cyksj.service.relation.GroupRelationClearService;
 import com.cyksj.service.relation.GroupRelationClearService;
 import com.cyksj.service.user.UserBenefitsService;
 import com.cyksj.service.user.UserBenefitsService;
 import com.cyksj.service.user.UserBindRelationService;
 import com.cyksj.service.user.UserBindRelationService;
+import com.ejlchina.searcher.BeanSearcher;
+import com.ejlchina.searcher.param.Operator;
+import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
@@ -61,10 +66,14 @@ public class CmsVipOrderServiceImpl implements CmsVipOrderService {
 
 
 	private final CmsUserMapper cmsUserMapper;
 	private final CmsUserMapper cmsUserMapper;
 
 
-	private final OrderDonGalaxyCoinRecordMapper orderDonGalaxyCoinRecordMapper;
+	private final NanoUserQuotaMapper nanoUserQuotaMapper;
 
 
 	private final UserGalaxyCoinService userGalaxyCoinService;
 	private final UserGalaxyCoinService userGalaxyCoinService;
 
 
+	private final BeanSearcher beanSearcher;
+
+	private final GoodsDonSkuMapper skuMapper;
+
 	@Override
 	@Override
 	public void refundOrders(OrderRefundReq refundReq) throws Exception {
 	public void refundOrders(OrderRefundReq refundReq) throws Exception {
 		VipOrderDon orderDon = vipOrderDonMapper.selectById(refundReq.getOrderId());
 		VipOrderDon orderDon = vipOrderDonMapper.selectById(refundReq.getOrderId());
@@ -163,6 +172,19 @@ public class CmsVipOrderServiceImpl implements CmsVipOrderService {
 			//分销提成积分扣除
 			//分销提成积分扣除
 			deductVipDsPoints(orderDon);
 			deductVipDsPoints(orderDon);
 		}
 		}
+
+		GroupsRelationView groupsRelationView = beanSearcher.searchFirst(GroupsRelationView.class, MapUtils.builder().field(GroupsRelationView::getUserId, userIdList).op(Operator.InList).field(GroupsRelationView::getIsVip, Boolean.TRUE).build());
+		if (groupsRelationView != null) {
+			Long relationId = groupsRelationView.getId();
+			NanoUserQuota nanoUserQuota = nanoUserQuotaMapper.selectOne(Wrappers.lambdaQuery(NanoUserQuota.class).eq(NanoUserQuota::getRelationId, relationId).last("limit 1"));
+			if (nanoUserQuota != null) {
+				GoodsDonSku sku = skuMapper.selectById(groupsRelationView.getSkuId());
+				Integer offsetNum = orderDon.getNum() * sku.getNanoQuota();
+				nanoUserQuota.setTotalQuota(nanoUserQuota.getTotalQuota() <= offsetNum ? nanoUserQuota.getTotalQuota() : nanoUserQuota.getTotalQuota() - offsetNum);
+				nanoUserQuota.setRemainingQuota(nanoUserQuota.getRemainingQuota() < offsetNum ? 0 : nanoUserQuota.getRemainingQuota() - offsetNum);
+				nanoUserQuotaMapper.updateById(nanoUserQuota);
+			}
+		}
 	}
 	}
 
 
 	private void deductVipDsPoints(VipOrderDon orderDon) {
 	private void deductVipDsPoints(VipOrderDon orderDon) {

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

@@ -152,6 +152,8 @@ public class VipOrderDonServiceImpl extends ServiceImpl<VipOrderDonMapper, VipOr
 
 
 	private final UserBalanceSourceRecordMapper userBalanceSourceRecordMapper;
 	private final UserBalanceSourceRecordMapper userBalanceSourceRecordMapper;
 
 
+	private final NanoUserQuotaMapper nanoUserQuotaMapper;
+
 	private static final Long EXPIRY_TIME = 1000 * 60 * 5L;
 	private static final Long EXPIRY_TIME = 1000 * 60 * 5L;
 
 
 	@Override
 	@Override
@@ -453,6 +455,18 @@ public class VipOrderDonServiceImpl extends ServiceImpl<VipOrderDonMapper, VipOr
 			vipUserMapper.updateById(vipUser);
 			vipUserMapper.updateById(vipUser);
 			//续费订单
 			//续费订单
 			setTicketToVipExpiryTime(userIdList, vipUser.getUserId(), vipUser.getExpiryTime());
 			setTicketToVipExpiryTime(userIdList, vipUser.getUserId(), vipUser.getExpiryTime());
+
+			//增加nano剩余次数
+			NanoUserQuota nanoUserQuota = nanoUserQuotaMapper.selectOne(Wrappers.lambdaQuery(NanoUserQuota.class).in(NanoUserQuota::getUid, userIdList).last("limit 1"));
+			if (nanoUserQuota != null) {
+				GroupsRelationView groupsRelationView = beanSearcher.searchFirst(GroupsRelationView.class, MapUtils.builder().field(GroupsRelationView::getId, nanoUserQuota.getRelationId()).build());
+				Long skuId = groupsRelationView.getSkuId();
+				GoodsDonSku sku = skuMapper.selectById(skuId);
+				Integer offestNum = offsetMonths * sku.getNanoQuota();
+				nanoUserQuota.setTotalQuota(nanoUserQuota.getTotalQuota() + offestNum);
+				nanoUserQuota.setRemainingQuota(nanoUserQuota.getRemainingQuota() + offestNum);
+				nanoUserQuotaMapper.updateById(nanoUserQuota);
+			}
 		}
 		}
 		//金额大于0 是否是分销订单
 		//金额大于0 是否是分销订单
 		if (orderDon.getMoney().compareTo(BigDecimal.ZERO) > 0) {
 		if (orderDon.getMoney().compareTo(BigDecimal.ZERO) > 0) {