From c991959c9153036a14fd52a177cc398407e21e29 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 14 一月 2025 10:28:25 +0800
Subject: [PATCH] 修改bug
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java | 603 ++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 513 insertions(+), 90 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
index b31cce9..9960d13 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
@@ -2,13 +2,18 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.feignClient.BalanceChangeRecordClient;
+import com.ruoyi.account.api.feignClient.UserPointClient;
import com.ruoyi.account.api.model.AppUser;
+import com.ruoyi.account.api.model.BalanceChangeRecord;
+import com.ruoyi.account.api.model.UserPoint;
import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.order.service.CommissionService;
import com.ruoyi.order.service.OrderGoodService;
import com.ruoyi.order.service.OrderService;
-import com.ruoyi.other.api.domain.Shop;
-import com.ruoyi.other.api.feignClient.ShopClient;
+import com.ruoyi.other.api.domain.*;
+import com.ruoyi.other.api.feignClient.*;
import com.ruoyi.order.model.Order;
import com.ruoyi.order.model.OrderGood;
import org.springframework.data.redis.core.RedisTemplate;
@@ -35,101 +40,519 @@
@Resource
private ShopClient shopClient;
@Resource
- private RedisTemplate<String, String> redisTemplate;
+ private BalanceChangeRecordClient balanceChangeRecordClient;
+ @Resource
+ private UserPointClient userPointClient;
+ @Resource
+ private ShopBalanceStatementClient shopBalanceStatementClient;
+ @Resource
+ private ShopPointClient shopPointClient;
+ @Resource
+ private TechnicianClient technicianClient;
+ @Resource
+ private PointSettingClient pointSettingClient;
- /**
- * 返佣延迟队列(redis有序集合)
- *
- * @param orderId 订单ID
- * @param afterSalesDeadline 售后截止日期(计算日期)
- */
- @Override
- public void addToCommissionDelayQueue(Long orderId, LocalDateTime afterSalesDeadline) {
- // 获取订单售后截止日期时间戳(秒)
- long deadlineTimestamp = afterSalesDeadline.atZone(ZoneId.systemDefault()).toEpochSecond();
- redisTemplate.opsForZSet().add("delay_queue:commission", orderId.toString(), deadlineTimestamp);
- }
+
@Override
@Transactional(rollbackFor = Exception.class)
- public void calculationCommission(Set<String> orderIds) {
- List<OrderGood> orderGoods = orderGoodService.list(new LambdaQueryWrapper<OrderGood>()
- .in(OrderGood::getOrderId, orderIds));
-
- Map<Long, List<OrderGood>> ogMap = orderGoods.stream().collect(Collectors.groupingBy(OrderGood::getOrderId));
-
- for (Map.Entry<Long, List<OrderGood>> entry : ogMap.entrySet()) {
- Long k = entry.getKey();
- List<OrderGood> v = entry.getValue();
- Order order = orderService.getById(k);
- if (order.getIsCommission() == 1) {
- continue;
+ public void calculationCommission() {
+ List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getIsCommission, 0).isNotNull(Order::getAfterSaleTime)
+ .eq(Order::getDelFlag, 0).ne(Order::getPayMethod, 3).last(" and after_sale_time <= now()"));
+ List<Long> collect = list.stream().map(Order::getId).collect(Collectors.toList());
+ if(collect.size() == 0){
+ return;
+ }
+
+ for (Order order : list) {
+ List<OrderGood> orderGoods = orderGoodService.list(new LambdaQueryWrapper<OrderGood>()
+ .eq(OrderGood::getOrderId, order.getId()));
+ AppUser appUser = appUserClient.getAppUserById(order.getAppUserId());
+ if(null == appUser){
+ return;
}
+ //直推上级分佣金额
+ BigDecimal ztsj_price = BigDecimal.ZERO;
+ //直帮上级分佣金额
+ BigDecimal zbsj_price = BigDecimal.ZERO;
+ //直推上级分佣积分
+ Integer ztsj_point = 0;
+ //直帮上级分佣积分
+ Integer zbsj_point = 0;
+ //核销门店分佣金额
+ BigDecimal hxmd_price = BigDecimal.ZERO;
+ //核销门店分佣积分
+ Integer hxmd_point = 0;
+ //技师分佣积分
+ Integer js_point = 0;
+ //绑定门店分佣金额
+ BigDecimal bdmd_price = BigDecimal.ZERO;
+ //绑定门店分佣积分
+ Integer bdmd_point = 0;
+ //绑定门店上级门店分佣金额
+ BigDecimal bdmdsj_price = BigDecimal.ZERO;
+ //绑定门店上级门店分佣积分
+ Integer bdmdsj_point = 0;
+ for (OrderGood orderGood : orderGoods) {
+ //上级获得分佣金额(直推上级|直帮上级)
+ BigDecimal superiorSubcommission = orderGood.getSuperiorSubcommission();
+ //上级获得分佣积分(直推上级|直帮上级)
+ Integer superiorRebatePoints = orderGood.getSuperiorRebatePoints();
+ if(StringUtils.isNotEmpty(orderGood.getSuperiorPriceType())){
+ String[] split = orderGood.getSuperiorPriceType().split(",");
+ for (String s : split) {
+ //直推上级
+ if("1".equals(s)){
+ ztsj_price = ztsj_price.add(superiorSubcommission);
+ }
+ //直帮上级
+ if("2".equals(s)){
+ zbsj_price = zbsj_price.add(superiorSubcommission);
+ }
+ }
+ }
+ if(StringUtils.isNotEmpty(orderGood.getSuperiorType())){
+ String[] split = orderGood.getSuperiorType().split(",");
+ for (String s : split) {
+ //直推上级
+ if("1".equals(s)){
+ ztsj_point += superiorRebatePoints;
+ }
+ //直帮上级
+ if("2".equals(s)){
+ zbsj_point += superiorRebatePoints;
+ }
+ }
+ }
+
+ //核销门店获取服务费
+ hxmd_price = hxmd_price.add(orderGood.getServuceShopCharges());
+ //核销门店可获得积分
+ hxmd_point += orderGood.getServuceShopPoints();
+ //技师分佣金额
+ if(order.getOrderType() == 1){
+ js_point += orderGood.getTechnicianPoints();
+ }
+ //绑定门店分佣金额
+ bdmd_price = bdmd_price.add(orderGood.getBoundShopCharges());
+ //绑定门店分佣积分
+ bdmd_point += orderGood.getBoundShopPoints();
+ //绑定门店上级门店分佣金额
+ bdmdsj_price = bdmdsj_price.add(orderGood.getBoundShopSuperiorsCharges());
+ //绑定门店上级门店分佣积分
+ bdmdsj_point += orderGood.getBoundShopSuperiorsPoints();
+ }
+ //直推上级
+ if(null != appUser.getInviteUserId()){
+ AppUser inviteUser = appUserClient.getAppUserById(appUser.getInviteUserId());
+ if(null != inviteUser){
+ BigDecimal balance = inviteUser.getBalance();
+ Integer lavePoint = inviteUser.getLavePoint();
+ if(ztsj_price.compareTo(BigDecimal.ZERO) > 0){
+ inviteUser.setTotalDistributionAmount(inviteUser.getTotalDistributionAmount().add(ztsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ inviteUser.setBalance(inviteUser.getBalance().add(ztsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ inviteUser.setWithdrawableAmount(inviteUser.getWithdrawableAmount().add(ztsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ }
+ if(ztsj_point > 0){
+ PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+ int earnPoint1 = 0;
+ //计算可用积分比例
+ if(null != pointSetting && 1 == pointSetting.getSharePointOpen()){
+ earnPoint1 = new BigDecimal(ztsj_point).multiply(pointSetting.getSharePoint().divide(new BigDecimal(100))).intValue();
+ }
+ inviteUser.setSharePoint(inviteUser.getSharePoint() + ztsj_point);
+ inviteUser.setLavePoint(inviteUser.getLavePoint() + ztsj_point);
+ inviteUser.setAvailablePoint(inviteUser.getAvailablePoint() + earnPoint1);
+ inviteUser.setTotalAvailablePoint(inviteUser.getTotalAvailablePoint() + earnPoint1);
+ if(null != pointSetting && 1 == pointSetting.getSharePointGift()){
+ inviteUser.setTransferablePoint(inviteUser.getTransferablePoint() + earnPoint1);
+ }
+ inviteUser.setTotalPoint(inviteUser.getTotalPoint() + ztsj_point);
+ }
+ appUserClient.editAppUserById(inviteUser);
+ //添加明细记录
+ if(!inviteUser.getBalance().equals(balance)){
+ BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
+ balanceChangeRecord.setAppUserId(inviteUser.getId());
+ balanceChangeRecord.setVipId(inviteUser.getVipId());
+ balanceChangeRecord.setOrderId(order.getId());
+ balanceChangeRecord.setChangeType(4);
+ balanceChangeRecord.setBeforeAmount(balance);
+ balanceChangeRecord.setChangeAmount(ztsj_price);
+ balanceChangeRecord.setAfterAmount(inviteUser.getBalance());
+ balanceChangeRecord.setDelFlag(0);
+ balanceChangeRecord.setCreateTime(LocalDateTime.now());
+ balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord);
+ }
+ //添加积分明细
+ if(!inviteUser.getLavePoint().equals(lavePoint)){
+ UserPoint userPoint = new UserPoint();
+ userPoint.setType(2);
+ userPoint.setHistoricalPoint(lavePoint);
+ userPoint.setVariablePoint(ztsj_point);
+ userPoint.setBalance(inviteUser.getLavePoint());
+ userPoint.setCreateTime(LocalDateTime.now());
+ userPoint.setAppUserId(inviteUser.getId());
+ userPoint.setObjectId(order.getId());
+ userPoint.setExtention(order.getOrderNumber());
+ userPointClient.saveUserPoint(userPoint);
+ //变更等级
+ appUserClient.vipUpgrade(inviteUser.getId());
+ }
+ }
+ }
+
+ //直帮上级
+ AppUser superiorLeader = appUserClient.getSuperiorLeader(appUser.getId()).getData();
+ if(null != superiorLeader){
+ BigDecimal balance = superiorLeader.getBalance();
+ Integer lavePoint = superiorLeader.getLavePoint();
+ if(zbsj_price.compareTo(BigDecimal.ZERO) > 0){
+ superiorLeader.setTotalDistributionAmount(superiorLeader.getTotalDistributionAmount().add(zbsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ superiorLeader.setBalance(superiorLeader.getBalance().add(zbsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ superiorLeader.setWithdrawableAmount(superiorLeader.getWithdrawableAmount().add(zbsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ }
+ if(zbsj_point > 0){
+ PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+ int earnPoint1 = 0;
+ //计算可用积分比例
+ if(null != pointSetting && 1 == pointSetting.getSharePointOpen()){
+ earnPoint1 = new BigDecimal(zbsj_point).multiply(pointSetting.getSharePoint().divide(new BigDecimal(100))).intValue();
+ }
+ superiorLeader.setSharePoint(superiorLeader.getSharePoint() + zbsj_point);
+ superiorLeader.setLavePoint(superiorLeader.getLavePoint() + zbsj_point);
+ superiorLeader.setAvailablePoint(superiorLeader.getAvailablePoint() + earnPoint1);
+ superiorLeader.setTotalAvailablePoint(superiorLeader.getTotalAvailablePoint() + earnPoint1);
+ if(null != pointSetting && 1 == pointSetting.getSharePointGift()){
+ superiorLeader.setTransferablePoint(superiorLeader.getTransferablePoint() + earnPoint1);
+ }
+ superiorLeader.setTotalPoint(superiorLeader.getTotalPoint() + zbsj_point);
+ }
+ appUserClient.editAppUserById(superiorLeader);
+ //添加明细记录
+ if(!superiorLeader.getBalance().equals(balance)){
+ BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
+ balanceChangeRecord.setAppUserId(superiorLeader.getId());
+ balanceChangeRecord.setVipId(superiorLeader.getVipId());
+ balanceChangeRecord.setOrderId(order.getId());
+ balanceChangeRecord.setChangeType(4);
+ balanceChangeRecord.setBeforeAmount(balance);
+ balanceChangeRecord.setChangeAmount(zbsj_price);
+ balanceChangeRecord.setAfterAmount(superiorLeader.getBalance());
+ balanceChangeRecord.setDelFlag(0);
+ balanceChangeRecord.setCreateTime(LocalDateTime.now());
+ balanceChangeRecordClient.saveBalanceChangeRecord(balanceChangeRecord);
+ }
+ //添加积分明细
+ if(!superiorLeader.getLavePoint().equals(lavePoint)){
+ UserPoint userPoint = new UserPoint();
+ userPoint.setType(2);
+ userPoint.setHistoricalPoint(lavePoint);
+ userPoint.setVariablePoint(zbsj_point);
+ userPoint.setBalance(superiorLeader.getLavePoint());
+ userPoint.setCreateTime(LocalDateTime.now());
+ userPoint.setAppUserId(superiorLeader.getId());
+ userPoint.setObjectId(order.getId());
+ userPoint.setExtention(order.getOrderNumber());
+ userPointClient.saveUserPoint(userPoint);
+ //变更等级
+ appUserClient.vipUpgrade(superiorLeader.getId());
+ }
+ }
+
+ //核销门店
+ Shop shop = shopClient.getShopById(order.getShopId()).getData();
+ AppUser shopAppUser = appUserClient.getAppUserById(shop.getAppUserId());
+ if(null != shopAppUser){
+ BigDecimal shopBalance = shop.getBalance();
+ Integer lavePoint = shopAppUser.getLavePoint();
+ Integer shopLavePoint = shop.getLavePoint();
+ if(hxmd_price.compareTo(BigDecimal.ZERO) > 0){
+ //门店返佣
+ shop.setGiveawayAllMoney(shop.getGiveawayAllMoney().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ shop.setServerGiveawayMoney(shop.getServerGiveawayMoney().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ shop.setCanWithdrawMoney(shop.getCanWithdrawMoney().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ shop.setBalance(shop.getBalance().add(hxmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ }
+ if(hxmd_point > 0){
+ PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+ int earnPoint1 = 0;
+ //计算可用积分比例
+ if(null != pointSetting && 1 == pointSetting.getShopPointOpen()){
+ earnPoint1 = new BigDecimal(hxmd_point).multiply(pointSetting.getShopPoint().divide(new BigDecimal(100))).intValue();
+ }
+ shopAppUser.setLavePoint(shopAppUser.getLavePoint() + hxmd_point);
+ shopAppUser.setAvailablePoint(shopAppUser.getAvailablePoint() + earnPoint1);
+ shopAppUser.setTotalAvailablePoint(shopAppUser.getTotalAvailablePoint() + earnPoint1);
+ if(null != pointSetting && 1 == pointSetting.getShopPointGift()){
+ shopAppUser.setTransferablePoint(shopAppUser.getTransferablePoint() + earnPoint1);
+ }
+ shopAppUser.setTotalPoint(shopAppUser.getTotalPoint() + hxmd_point);
+ shopAppUser.setShopAchievementPoint(shopAppUser.getShopAchievementPoint() + hxmd_point);
+ //门店返佣
+ shop.setShopAllPoint(shop.getShopAllPoint() + hxmd_point);
+ shop.setServerPoint(shop.getServerPoint() + hxmd_point);
+ shop.setLavePoint(shop.getLavePoint() + hxmd_point);
+ }
+ appUserClient.editAppUserById(shopAppUser);
+ shopClient.updateShop(shop);
+ //添加明细记录
+ if(!shop.getBalance().equals(shopBalance)){
+ ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement();
+ shopBalanceStatement.setShopId(shop.getId());
+ shopBalanceStatement.setType(3);
+ shopBalanceStatement.setHistoricalBalance(shopBalance);
+ shopBalanceStatement.setVariableAmount(hxmd_price);
+ shopBalanceStatement.setBalance(shop.getBalance());
+ shopBalanceStatement.setCreateTime(LocalDateTime.now());
+ shopBalanceStatement.setCreateUserId(order.getAppUserId());
+ shopBalanceStatement.setObjectId(order.getId());
+ shopBalanceStatement.setExtension(order.getOrderNumber());
+ shopBalanceStatementClient.saveShopBalanceStatement(shopBalanceStatement);
+ }
+ //添加积分明细
+ if(!shopAppUser.getLavePoint().equals(lavePoint)){
+ UserPoint userPoint = new UserPoint();
+ userPoint.setType(9);
+ userPoint.setHistoricalPoint(lavePoint);
+ userPoint.setVariablePoint(hxmd_point);
+ userPoint.setBalance(shopAppUser.getLavePoint());
+ userPoint.setCreateTime(LocalDateTime.now());
+ userPoint.setAppUserId(shopAppUser.getId());
+ userPoint.setObjectId(order.getId());
+ userPoint.setExtention(order.getOrderNumber());
+ userPointClient.saveUserPoint(userPoint);
+ //变更等级
+ appUserClient.vipUpgrade(shopAppUser.getId());
+ }
+
+ if(!shop.getLavePoint().equals(shopLavePoint)){
+ ShopPoint shopPoint = new ShopPoint();
+ shopPoint.setShopId(shop.getId());
+ shopPoint.setType(1);
+ shopPoint.setHistoricalPoint(shopLavePoint);
+ shopPoint.setVariablePoint(hxmd_point);
+ shopPoint.setBalance(shop.getLavePoint());
+ shopPoint.setCreateTime(LocalDateTime.now());
+ shopPoint.setCreateUserId(order.getAppUserId());
+ shopPoint.setObjectId(order.getId());
+ shopPoint.setOrderNum(order.getOrderNumber());
+ shopPointClient.saveShopPoint(shopPoint);
+ }
+ }
+
+ //技师服务积分
+ if(order.getOrderType() == 1){
+ Technician technician = technicianClient.shopdetail(order.getTechnicianId()).getData();
+ if(null != technician){
+ AppUser technicianAppUser = appUserClient.getAppUserById(technician.getAppUserId());
+ Integer lavePoint = technicianAppUser.getLavePoint();
+ if(js_point > 0){
+ PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+ int earnPoint1 = 0;
+ //计算可用积分比例
+ if(null != pointSetting && 1 == pointSetting.getPersonPointOpen()){
+ earnPoint1 = new BigDecimal(js_point).multiply(pointSetting.getPersonPoint().divide(new BigDecimal(100))).intValue();
+ }
+ technicianAppUser.setLavePoint(technicianAppUser.getLavePoint() + js_point);
+ technicianAppUser.setAvailablePoint(technicianAppUser.getAvailablePoint() + earnPoint1);
+ technicianAppUser.setTotalAvailablePoint(technicianAppUser.getTotalAvailablePoint() + earnPoint1);
+ if(null != pointSetting && 1 == pointSetting.getPersonPointGift()){
+ technicianAppUser.setTransferablePoint(technicianAppUser.getTransferablePoint() + earnPoint1);
+ }
+ technicianAppUser.setTotalPoint(technicianAppUser.getTotalPoint() + js_point);
+ technicianAppUser.setTotalPerformancePoint(technicianAppUser.getTotalPerformancePoint() + js_point);
+ }
+ appUserClient.editAppUserById(technicianAppUser);
+ //添加积分明细
+ if(!technicianAppUser.getLavePoint().equals(lavePoint)){
+ UserPoint userPoint = new UserPoint();
+ userPoint.setType(10);
+ userPoint.setHistoricalPoint(lavePoint);
+ userPoint.setVariablePoint(js_point);
+ userPoint.setBalance(technicianAppUser.getLavePoint());
+ userPoint.setCreateTime(LocalDateTime.now());
+ userPoint.setAppUserId(technicianAppUser.getId());
+ userPoint.setObjectId(order.getId());
+ userPoint.setExtention(order.getOrderNumber());
+ userPointClient.saveUserPoint(userPoint);
+ //变更等级
+ appUserClient.vipUpgrade(technicianAppUser.getId());
+ }
+ }
+ }
+
+ //绑定门店分佣
+ Shop shop1 = shopClient.getShopById(appUser.getShopId()).getData();
+ if(null != shop1){
+ AppUser bdShopAppUser = appUserClient.getAppUserById(shop1.getAppUserId());
+ if(null != bdShopAppUser){
+ BigDecimal shopBalance = shop1.getBalance();
+ Integer lavePoint = bdShopAppUser.getLavePoint();
+ Integer shopLavePoint = shop1.getLavePoint();
+ if(bdmd_price.compareTo(BigDecimal.ZERO) > 0){
+ //门店返佣
+ shop1.setGiveawayAllMoney(shop1.getGiveawayAllMoney().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ shop1.setGiveawayMoney(shop1.getGiveawayMoney().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ shop1.setCanWithdrawMoney(shop1.getCanWithdrawMoney().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ shop1.setBalance(shop1.getBalance().add(bdmd_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ }
+ if(bdmd_point > 0){
+ PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+ int earnPoint1 = 0;
+ //计算可用积分比例
+ if(null != pointSetting && 1 == pointSetting.getShopSharePointOpen()){
+ earnPoint1 = new BigDecimal(bdmd_point).multiply(pointSetting.getShopSharePoint().divide(new BigDecimal(100))).intValue();
+ }
+ bdShopAppUser.setLavePoint(bdShopAppUser.getLavePoint() + bdmd_point);
+ bdShopAppUser.setAvailablePoint(bdShopAppUser.getAvailablePoint() + earnPoint1);
+ bdShopAppUser.setTotalAvailablePoint(bdShopAppUser.getTotalAvailablePoint() + earnPoint1);
+ if(null != pointSetting && 1 == pointSetting.getShopSharePointGift()){
+ bdShopAppUser.setTransferablePoint(bdShopAppUser.getTransferablePoint() + earnPoint1);
+ }
+ bdShopAppUser.setTotalPoint(bdShopAppUser.getTotalPoint() + bdmd_point);
+ bdShopAppUser.setShopSharePoint(bdShopAppUser.getShopSharePoint() + bdmd_point);
+ //门店返佣
+ shop1.setShopAllPoint(shop1.getShopAllPoint() + bdmd_point);
+ shop1.setSharePoint(shop1.getSharePoint() + bdmd_point);
+ shop1.setLavePoint(shop1.getLavePoint() + bdmd_point);
+ }
+ appUserClient.editAppUserById(bdShopAppUser);
+ shopClient.updateShop(shop1);
+ //添加明细记录
+ if(!shop1.getBalance().equals(shopBalance)){
+ ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement();
+ shopBalanceStatement.setShopId(shop1.getId());
+ shopBalanceStatement.setType(1);
+ shopBalanceStatement.setHistoricalBalance(shopBalance);
+ shopBalanceStatement.setVariableAmount(bdmd_price);
+ shopBalanceStatement.setBalance(shop1.getBalance());
+ shopBalanceStatement.setCreateTime(LocalDateTime.now());
+ shopBalanceStatement.setCreateUserId(order.getAppUserId());
+ shopBalanceStatement.setObjectId(order.getId());
+ shopBalanceStatement.setExtension(order.getOrderNumber());
+ shopBalanceStatementClient.saveShopBalanceStatement(shopBalanceStatement);
+ }
+ //添加积分明细
+ if(!bdShopAppUser.getLavePoint().equals(lavePoint)){
+ UserPoint userPoint = new UserPoint();
+ userPoint.setType(9);
+ userPoint.setHistoricalPoint(lavePoint);
+ userPoint.setVariablePoint(bdmd_point);
+ userPoint.setBalance(bdShopAppUser.getLavePoint());
+ userPoint.setCreateTime(LocalDateTime.now());
+ userPoint.setAppUserId(bdShopAppUser.getId());
+ userPoint.setObjectId(order.getId());
+ userPoint.setExtention(order.getOrderNumber());
+ userPointClient.saveUserPoint(userPoint);
+ //变更等级
+ appUserClient.vipUpgrade(bdShopAppUser.getId());
+ }
+
+ if(!shop1.getLavePoint().equals(shopLavePoint)){
+ ShopPoint shopPoint = new ShopPoint();
+ shopPoint.setShopId(shop1.getId());
+ shopPoint.setType(2);
+ shopPoint.setHistoricalPoint(shopLavePoint);
+ shopPoint.setVariablePoint(bdmd_point);
+ shopPoint.setBalance(shop1.getLavePoint());
+ shopPoint.setCreateTime(LocalDateTime.now());
+ shopPoint.setCreateUserId(order.getAppUserId());
+ shopPoint.setObjectId(order.getId());
+ shopPoint.setOrderNum(order.getOrderNumber());
+ shopPointClient.saveShopPoint(shopPoint);
+ }
+ }
+ }
+
+ //上级门店分佣
+ if(null != shop1){
+ Integer pid = shop1.getPid();
+ Shop shop2 = shopClient.getShopById(pid).getData();
+ if(null != shop2){
+ AppUser sjShopAppUser = appUserClient.getAppUserById(shop2.getAppUserId());
+ if(null != sjShopAppUser){
+ BigDecimal shopBalance = shop2.getBalance();
+ Integer lavePoint = sjShopAppUser.getLavePoint();
+ Integer shopLavePoint = shop2.getLavePoint();
+ if(bdmdsj_price.compareTo(BigDecimal.ZERO) > 0){
+ //门店返佣
+ shop2.setGiveawayAllMoney(shop2.getGiveawayAllMoney().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ shop2.setLowerLevelGiveawayMoney(shop2.getLowerLevelGiveawayMoney().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ shop2.setCanWithdrawMoney(shop2.getCanWithdrawMoney().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ shop2.setBalance(shop2.getBalance().add(bdmdsj_price).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ }
+ if(bdmdsj_point > 0){
+ PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
+ int earnPoint1 = 0;
+ //计算可用积分比例
+ if(null != pointSetting && 1 == pointSetting.getShopSharePointOpen()){
+ earnPoint1 = new BigDecimal(bdmdsj_point).multiply(pointSetting.getShopSharePoint().divide(new BigDecimal(100))).intValue();
+ }
+ sjShopAppUser.setLavePoint(sjShopAppUser.getLavePoint() + bdmdsj_point);
+ sjShopAppUser.setAvailablePoint(sjShopAppUser.getAvailablePoint() + earnPoint1);
+ sjShopAppUser.setTotalAvailablePoint(sjShopAppUser.getTotalAvailablePoint() + earnPoint1);
+ if(null != pointSetting && 1 == pointSetting.getShopSharePointGift()){
+ sjShopAppUser.setTransferablePoint(sjShopAppUser.getTransferablePoint() + earnPoint1);
+ }
+ sjShopAppUser.setTotalPoint(sjShopAppUser.getTotalPoint() + bdmdsj_point);
+ sjShopAppUser.setLowerLevelSharePoint(sjShopAppUser.getLowerLevelSharePoint() + bdmdsj_point);
+ //门店返佣
+ shop2.setShopAllPoint(shop2.getShopAllPoint() + bdmdsj_point);
+ shop2.setLowerLevelSharePoint(shop2.getLowerLevelSharePoint() + bdmdsj_point);
+ shop2.setLavePoint(shop2.getLavePoint() + bdmdsj_point);
+ }
+ appUserClient.editAppUserById(sjShopAppUser);
+ shopClient.updateShop(shop2);
+ //添加明细记录
+ if(!shop2.getBalance().equals(shopBalance)){
+ ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement();
+ shopBalanceStatement.setShopId(shop2.getId());
+ shopBalanceStatement.setType(2);
+ shopBalanceStatement.setHistoricalBalance(shopBalance);
+ shopBalanceStatement.setVariableAmount(bdmdsj_price);
+ shopBalanceStatement.setBalance(shop2.getBalance());
+ shopBalanceStatement.setCreateTime(LocalDateTime.now());
+ shopBalanceStatement.setCreateUserId(order.getAppUserId());
+ shopBalanceStatement.setObjectId(order.getId());
+ shopBalanceStatement.setExtension(order.getOrderNumber());
+ shopBalanceStatementClient.saveShopBalanceStatement(shopBalanceStatement);
+ }
+ //添加积分明细
+ if(!sjShopAppUser.getLavePoint().equals(lavePoint)){
+ UserPoint userPoint = new UserPoint();
+ userPoint.setType(14);
+ userPoint.setHistoricalPoint(lavePoint);
+ userPoint.setVariablePoint(bdmdsj_point);
+ userPoint.setBalance(sjShopAppUser.getLavePoint());
+ userPoint.setCreateTime(LocalDateTime.now());
+ userPoint.setAppUserId(sjShopAppUser.getId());
+ userPoint.setObjectId(order.getId());
+ userPoint.setExtention(order.getOrderNumber());
+ userPointClient.saveUserPoint(userPoint);
+ //变更等级
+ appUserClient.vipUpgrade(sjShopAppUser.getId());
+ }
+
+ if(!shop2.getLavePoint().equals(shopLavePoint)){
+ ShopPoint shopPoint = new ShopPoint();
+ shopPoint.setShopId(shop2.getId());
+ shopPoint.setType(3);
+ shopPoint.setHistoricalPoint(shopLavePoint);
+ shopPoint.setVariablePoint(bdmdsj_point);
+ shopPoint.setBalance(shop2.getLavePoint());
+ shopPoint.setCreateTime(LocalDateTime.now());
+ shopPoint.setCreateUserId(order.getAppUserId());
+ shopPoint.setObjectId(order.getId());
+ shopPoint.setOrderNum(order.getOrderNumber());
+ shopPointClient.saveShopPoint(shopPoint);
+ }
+ }
+ }
+ }
+
order.setIsCommission(1);
orderService.updateById(order);
- R<Shop> r = shopClient.getShopById(order.getShopId());
- if (!R.isSuccess(r)) {
- throw new RuntimeException("获取门店信息失败");
- }
- Shop shop = r.getData();
- if (shop == null) {
- throw new RuntimeException("获取门店信息失败");
- }
-
- Long appUserId = order.getAppUserId();
- AppUser appUser = appUserClient.getAppUserById(appUserId);
- if (appUser == null) {
- throw new RuntimeException("获取用户信息失败");
- }
- Long inviteUserId = appUser.getInviteUserId();
- // 直推上级用户
- AppUser inviteUser = appUserClient.getAppUserById(inviteUserId);
-
- // 获取直帮上级用户
- R<AppUser> superiorLeaderR = appUserClient.getSuperiorLeader(appUserId);
- if (!R.isSuccess(superiorLeaderR)) {
- throw new RuntimeException("获取直帮上级信息失败");
- }
- AppUser superiorLeader = superiorLeaderR.getData();
-
- for (OrderGood og : v) {// 累计分销金额
-
- // 直推上级分佣金额
- Integer superiorType = og.getSuperiorType();
- if (superiorType == 1 && inviteUser != null){
- // 分佣金额
- BigDecimal superiorSubcommission = og.getSuperiorSubcommission();
- BigDecimal totalDistributionAmount = inviteUser.getTotalDistributionAmount();
- totalDistributionAmount = totalDistributionAmount.add(superiorSubcommission);
- inviteUser.setTotalDistributionAmount(totalDistributionAmount);
-
- // 分佣积分
- Integer sharePoint = inviteUser.getSharePoint();
- Integer superiorRebatePoints = og.getSuperiorRebatePoints();
- sharePoint = sharePoint + superiorRebatePoints;
- inviteUser.setSharePoint(sharePoint);
-
- appUserClient.editAppUserById(inviteUser);
- }else
- // 直帮上级分佣金额
- if (superiorType == 2 && superiorLeader != null){
- // 分佣金额
- BigDecimal superiorSubcommission = og.getSuperiorSubcommission();
- BigDecimal totalDistributionAmount = superiorLeader.getTotalDistributionAmount();
- totalDistributionAmount = totalDistributionAmount.add(superiorSubcommission);
- superiorLeader.setTotalDistributionAmount(totalDistributionAmount);
-
- // 分佣积分
- Integer sharePoint = superiorLeader.getSharePoint();
- Integer superiorRebatePoints = og.getSuperiorRebatePoints();
- sharePoint = sharePoint + superiorRebatePoints;
- superiorLeader.setSharePoint(sharePoint);
-
- appUserClient.editAppUserById(superiorLeader);
- }
- }
}
-
-
}
}
--
Gitblit v1.7.1