|
@@ -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) {
|