diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/mapper/CuMemberMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/mapper/CuMemberMapper.java index da2ebe62..13c7c192 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/mapper/CuMemberMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/mapper/CuMemberMapper.java @@ -61,4 +61,12 @@ public interface CuMemberMapper extends BaseMapper { */ Integer updateCuMemberLevelByPeriod(Integer period); + /** + * 查询推荐伞上 + * + * @param pkMember + * @return + */ + List listParentMember(@Param("pkMember") Long pkMember); + } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java index 0aff7566..24c2f232 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/ICuMemberService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.detail.CuMemberAwards; import com.hzs.common.domain.member.detail.CuMemberLevel; +import com.hzs.common.domain.member.ext.CuMemberExt; import java.util.List; @@ -58,4 +59,12 @@ public interface ICuMemberService extends IService { */ void updateCuMemberLevelByPeriod(Integer period); + /** + * 查询推荐伞上 + * + * @param pkMember + * @return + */ + List listParentMember(Long pkMember); + } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java index dd452945..baaf076b 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/base/service/impl/CuMemberServiceImpl.java @@ -6,6 +6,7 @@ import com.hzs.common.domain.member.base.*; import com.hzs.common.domain.member.detail.CuMemberAwards; import com.hzs.common.domain.member.detail.CuMemberLevel; import com.hzs.bonus.base.mapper.CuMemberMapper; +import com.hzs.common.domain.member.ext.CuMemberExt; import org.springframework.stereotype.Service; import java.util.*; @@ -54,4 +55,9 @@ public class CuMemberServiceImpl extends ServiceImpl i baseMapper.updateCuMemberLevelByPeriod(period); } + @Override + public List listParentMember(Long pkMember) { + return baseMapper.listParentMember(pkMember); + } + } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java index 37708752..b3e7d075 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleServiceImpl.java @@ -36,9 +36,9 @@ import com.hzs.common.domain.member.base.CuAwardsControl; import com.hzs.common.domain.member.base.CuMember; import com.hzs.common.domain.member.bonus.*; import com.hzs.common.domain.member.detail.CuMemberAchieveLog; -import com.hzs.common.domain.member.detail.CuMemberAssess; import com.hzs.common.domain.member.ext.BdWaresBonusExt; import com.hzs.common.domain.member.ext.CuBonusExpandExt; +import com.hzs.common.domain.member.ext.CuMemberExt; import com.hzs.common.domain.member.ext.CuMemberSettleExt; import com.hzs.common.domain.member.swing.ext.CuMemberSwingNetDetailExt; import com.hzs.common.domain.member.swing.ext.CuMemberSwingNetExt; @@ -54,7 +54,6 @@ import com.hzs.system.config.IBonusItemsServiceApi; import com.hzs.system.config.IGradeServiceApi; import com.hzs.system.config.IRangeServiceApi; import com.hzs.system.config.dto.BonusConfigDTO; -import com.hzs.system.config.dto.GradeDTO; import com.hzs.system.config.dto.RangeDTO; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; @@ -65,6 +64,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.time.temporal.ChronoUnit; import java.util.*; +import java.util.stream.Collectors; /** * 奖金结算服务类 @@ -154,9 +154,6 @@ public class BonusSettleServiceImpl implements IBonusSettleService { SaOrderExt saOrderExt = iSaOrderServiceApi.querySaOrderByDay(startDate, DateUtils.afterDate(1, ChronoUnit.DAYS, startDate), orderCode).getData(); log.info("查询订单,订单参数:{}", JSONUtil.toJsonStr(saOrderExt)); - Map systemConfigMap = iSystemConfigServiceApi.getBonusSystemConfig().getData(); - Map rangeDtoMap = iRangeServiceApi.queryRangeDto().getData(); - // 处理奖金结算秒结表,判断是否存在当天结算的秒接表,从cu_member中获取网体,从昨日结算表中获取累计、结余数据 String settleDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, saOrderExt.getPayTime()); String beforeDay = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.beforeDate(1, ChronoUnit.DAYS, saOrderExt.getPayTime())); @@ -173,11 +170,13 @@ public class BonusSettleServiceImpl implements IBonusSettleService { // 前天日结表 String yesSettleTableName = TableNameConstants.CU_MEMBER_SETTLE + beforeYesPeriod; - Map cuMemberBonusMap = new HashMap<>(MagicNumberConstants.DELETE_DATA_BATCH_UPDATE_NUM); - BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData(); Map cuMemberSettleExtMap = new HashMap<>(); - Map cuAwardsControlMap = getCuAwardsControlMap(); - List awardsList = iAwardsServiceApi.queryAwards(saOrderExt.getPkCountry()).getData(); +// Map systemConfigMap = iSystemConfigServiceApi.getBonusSystemConfig().getData(); +// Map rangeDtoMap = iRangeServiceApi.queryRangeDto().getData(); +// Map cuMemberBonusMap = new HashMap<>(MagicNumberConstants.DELETE_DATA_BATCH_UPDATE_NUM); +// BonusConfigDTO bonusConfigDTO = iBonusItemsServiceApi.queryBonusConfigDTO().getData(); +// Map cuAwardsControlMap = getCuAwardsControlMap(); +// List awardsList = iAwardsServiceApi.queryAwards(saOrderExt.getPkCountry()).getData(); // 计算奖金 if (EOrderType.REGISTER_ORDER.getValue() == saOrderExt.getOrderType() || @@ -383,14 +382,19 @@ public class BonusSettleServiceImpl implements IBonusSettleService { // 先处理关系 memberList.add(saOrderExt.getPkMember()); long pkParent = saOrderExt.getPkReference(); - while (true) { - CuMember cuMember = iCuMemberService.getMember(pkParent); - if (cuMember == null) { - break; - } - memberList.add(cuMember.getPkId()); - pkParent = cuMember.getPkParent(); + // 查询伞上所有推荐人ID + List parentList = iCuMemberService.listParentMember(pkParent); + if (CollectionUtil.isNotEmpty(parentList)) { + memberList.addAll(parentList.stream().map(CuMemberExt::getPkId).collect(Collectors.toList())); } +// while (true) { +// CuMember cuMember = iCuMemberService.getMember(pkParent); +// if (cuMember == null) { +// break; +// } +// memberList.add(cuMember.getPkId()); +// pkParent = cuMember.getPkParent(); +// } // 初始化需要秒接结算的数据 iCuMemberTreeService.updateCuMemberSecondPlaceParent(secondTableName, settleTableName, yesSettleTableName, saOrderExt.getPkMember(), memberList, EYesNo.YES.getIntValue()); } @@ -448,7 +452,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService { // 判断特殊业务是否有到期日期,有到期的需要使用真实业绩,昨天的期间真实更新当前的 iCuMemberAchieveService.updateCuMemberSettleAchieveByDueDate(currentSettleTableName, yesterdayTableName, DateUtils.parseStringToDate(settleDate)); - // TODO 2025.05.14 新拓展处理在2025.06.01之前还是走原来的1:1对碰,之后走1:2对碰 + // 2025.05.14 新拓展处理在2025.06.01之前还是走原来的1:1对碰,之后走1:2对碰 // true 走新逻辑(首购+复购 合并计算) boolean newExpandFlag = settleDate.compareTo(newExpandDate) >= 0; if (EEnv.TEST.getValue().equals(BdConfig.getEnv())) { @@ -696,7 +700,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService { Map awardsMap = iAwardsServiceApi.getAwards().getData(); List awardsList = iAwardsServiceApi.queryAwards(CountryConstants.CHINA_COUNTRY).getData(); - // TODO 2025.05.14 新拓展处理在2025.06.01之前还是走原来的1:1对碰,之后走1:2对碰 + // 2025.05.14 新拓展处理在2025.06.01之前还是走原来的1:1对碰,之后走1:2对碰 // true 走新逻辑(首购+复购 合并计算) boolean newExpandFlag = settleDate.compareTo(newExpandDate) >= 0; @@ -876,7 +880,7 @@ public class BonusSettleServiceImpl implements IBonusSettleService { newExpandFlag); } if (newExpandFlag) { - // TODO 2025.05.14 新拓展订单处理 + // 2025.05.14 新拓展订单处理 if (CollectionUtil.isNotEmpty(expandOrderList)) { calculateNewExpandOrder(riskControlMap, cuMemberSettleExtMap, settleTableName, settleDate, bonusConfigDTO, expandOrderList, period, cuMemberBonusMap, bonusRecordDetailVO, awardsList, cuAwardsControlMap, cuBonusExpandExtMap); diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/member/base/CuMemberMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/member/base/CuMemberMapper.xml index f61bf0b7..a700356c 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/member/base/CuMemberMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/member/base/CuMemberMapper.xml @@ -223,4 +223,12 @@ a.modified_time = sysdate + + +