diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberSettlePeriodDetailMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberSettlePeriodDetailMapper.java index 50ef8887..dd6c9185 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberSettlePeriodDetailMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/mapper/CuMemberSettlePeriodDetailMapper.java @@ -4,12 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.member.achieve.CuMemberSettlePeriodDetail; /** - *

* 会员结算期间明细 Mapper 接口 - *

- * - * @author hzs - * @since 2023-07-27 */ public interface CuMemberSettlePeriodDetailMapper extends BaseMapper { diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberSettlePeriodDetailServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberSettlePeriodDetailServiceImpl.java index 21e75a25..360f1fb9 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberSettlePeriodDetailServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberSettlePeriodDetailServiceImpl.java @@ -1,47 +1,38 @@ package com.hzs.bonus.achieve.service.impl; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodDetailService; -import com.hzs.common.core.constant.BonusFieldConstants; -import com.hzs.common.core.constant.MemberFieldConstants; -import com.hzs.common.core.constant.SystemFieldConstants; import com.hzs.common.domain.member.achieve.CuMemberSettlePeriodDetail; import com.hzs.common.domain.member.achieve.ext.CuMemberSettlePeriodExt; import com.hzs.bonus.achieve.mapper.CuMemberSettlePeriodDetailMapper; import org.springframework.stereotype.Service; /** - *

* 会员结算期间明细 服务实现类 - *

- * - * @author hzs - * @since 2023-07-27 */ @Service public class CuMemberSettlePeriodDetailServiceImpl extends ServiceImpl implements ICuMemberSettlePeriodDetailService { - @Override public boolean updateCuMemberSettlePeriodDetailByPeriod(CuMemberSettlePeriodExt cuMemberSettlePeriodExt) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - if(cuMemberSettlePeriodExt.getIsPublish() != null && cuMemberSettlePeriodExt.getPublishDate() != null){ - updateWrapper.set(BonusFieldConstants.IS_PUBLISH, cuMemberSettlePeriodExt.getIsPublish()); - updateWrapper.set(BonusFieldConstants.PUBLISH_DATE, cuMemberSettlePeriodExt.getPublishDate()); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + if (cuMemberSettlePeriodExt.getIsPublish() != null && cuMemberSettlePeriodExt.getPublishDate() != null) { + updateWrapper.set(CuMemberSettlePeriodDetail::getIsPublish, cuMemberSettlePeriodExt.getIsPublish()); + updateWrapper.set(CuMemberSettlePeriodDetail::getPublishDate, cuMemberSettlePeriodExt.getPublishDate()); } - if(cuMemberSettlePeriodExt.getIsGrant() != null && cuMemberSettlePeriodExt.getGrantDate() != null){ - updateWrapper.set(BonusFieldConstants.IS_GRANT, cuMemberSettlePeriodExt.getIsGrant()); - updateWrapper.set(BonusFieldConstants.GRANT_DATE, cuMemberSettlePeriodExt.getGrantDate()); + if (cuMemberSettlePeriodExt.getIsGrant() != null && cuMemberSettlePeriodExt.getGrantDate() != null) { + updateWrapper.set(CuMemberSettlePeriodDetail::getIsGrant, cuMemberSettlePeriodExt.getIsGrant()); + updateWrapper.set(CuMemberSettlePeriodDetail::getGrantDate, cuMemberSettlePeriodExt.getGrantDate()); } - if(cuMemberSettlePeriodExt.getIsWithdrawal() != null && cuMemberSettlePeriodExt.getWithdrawalDate() != null){ - updateWrapper.set(BonusFieldConstants.IS_WITHDRAWAL, cuMemberSettlePeriodExt.getIsWithdrawal()); - updateWrapper.set(BonusFieldConstants.WITHDRAWAL_DATE, cuMemberSettlePeriodExt.getWithdrawalDate()); + if (cuMemberSettlePeriodExt.getIsWithdrawal() != null && cuMemberSettlePeriodExt.getWithdrawalDate() != null) { + updateWrapper.set(CuMemberSettlePeriodDetail::getIsWithdrawal, cuMemberSettlePeriodExt.getIsWithdrawal()); + updateWrapper.set(CuMemberSettlePeriodDetail::getWithdrawalDate, cuMemberSettlePeriodExt.getWithdrawalDate()); } - updateWrapper.eq(MemberFieldConstants.START_PERIOD, cuMemberSettlePeriodExt.getStartPeriod()); - updateWrapper.eq(MemberFieldConstants.END_PERIOD, cuMemberSettlePeriodExt.getEndPeriod()); - if(cuMemberSettlePeriodExt.getPkCountry() != null){ - updateWrapper.eq(SystemFieldConstants.PK_COUNTRY, cuMemberSettlePeriodExt.getPkCountry()); + updateWrapper.eq(CuMemberSettlePeriodDetail::getStartPeriod, cuMemberSettlePeriodExt.getStartPeriod()); + updateWrapper.eq(CuMemberSettlePeriodDetail::getEndPeriod, cuMemberSettlePeriodExt.getEndPeriod()); + if (cuMemberSettlePeriodExt.getPkCountry() != null) { + updateWrapper.eq(CuMemberSettlePeriodDetail::getPkCountry, cuMemberSettlePeriodExt.getPkCountry()); } return update(updateWrapper); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberSettlePeriodServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberSettlePeriodServiceImpl.java index 616358d4..876efb8e 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberSettlePeriodServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/achieve/service/impl/CuMemberSettlePeriodServiceImpl.java @@ -239,7 +239,6 @@ public class CuMemberSettlePeriodServiceImpl extends ServiceImpl i @Override public void updateCuMemberRetailRangeByPeriod(List cuMemberAwardsList, Integer period) { baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.RANGE_TYPE.getValue()); - baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.SHARE_TYPE.getValue()); +// baseMapper.updateCuMemberRetailAwardsByPeriod(period, EAwardsType.SHARE_TYPE.getValue()); } @Override public void updateCuMemberRetailRangeByList(List cuMemberAwardsList, Integer period) { baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.RANGE_TYPE.getValue()); - baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.SHARE_TYPE.getValue()); +// baseMapper.updateCuMemberRetailRangeByList(cuMemberAwardsList, period, EAwardsType.SHARE_TYPE.getValue()); } @Override @@ -96,13 +96,13 @@ public class CuMemberServiceImpl extends ServiceImpl i @Override public void updateBackCuMemberRetailRangeAward(Integer period) { baseMapper.updateBackCuMemberRetailRangeAward(period, EAwardsType.RANGE_TYPE.getValue()); - baseMapper.updateBackCuMemberRetailRangeAward(period, EAwardsType.SHARE_TYPE.getValue()); +// baseMapper.updateBackCuMemberRetailRangeAward(period, EAwardsType.SHARE_TYPE.getValue()); } @Override public void updateCuMemberRetailRangeAwardByDate(Date settleDate) { baseMapper.updateCuMemberRetailRangeAwardByDate(settleDate, EAwardsType.RANGE_TYPE.getValue()); - baseMapper.updateCuMemberRetailRangeAwardByDate(settleDate, EAwardsType.SHARE_TYPE.getValue()); +// baseMapper.updateCuMemberRetailRangeAwardByDate(settleDate, EAwardsType.SHARE_TYPE.getValue()); } @Override diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/param/BonusExpandParam.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/param/BonusExpandParam.java index 26a3e9a3..1a1190f1 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/param/BonusExpandParam.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/param/BonusExpandParam.java @@ -11,12 +11,7 @@ import java.util.Date; import java.util.List; /** - * @description: 4-n 增加碰次 - * @author: sui q - * @time: 2024/7/19 14:21 - * @classname: BonusExpandParam - * @package_name: com.hzs.bonus.bonus.param - * version 1.0.0 + * 4-n 增加碰次 */ @Data @Builder diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java index cacd8812..9c17af6c 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/bonus/service/impl/BonusSettleRangeHandle.java @@ -491,11 +491,12 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 个人累计消费pv BigDecimal orderAchieve = saOrderExt.getOrderAchieve(); // 复购、重消,盒数、业绩算个人累计数据(盒数、业绩) - sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() + boxNum); sourceMemberRangeExt.setNewBoxNum(sourceMemberRangeExt.getNewBoxNum() + boxNum); + sourceMemberRangeExt.setConsumeBoxNum(sourceMemberRangeExt.getConsumeBoxNum() + boxNum); + sourceMemberRangeExt.setMonthBoxNum(sourceMemberRangeExt.getConsumeBoxNum() + boxNum); + sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getNewConsumePv(), orderAchieve)); sourceMemberRangeExt.setConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getConsumePv(), orderAchieve)); sourceMemberRangeExt.setMonthConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getMonthConsumePv(), orderAchieve)); - sourceMemberRangeExt.setNewConsumePv(ComputeUtil.computeAdd(sourceMemberRangeExt.getNewConsumePv(), orderAchieve)); // 计算自己等级、奖衔等 calculateGradeAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, null, cuMemberGradeList, cuMemberAwardsList, sourceMemberRangeExt, activateMap); @@ -864,16 +865,17 @@ public class BonusSettleRangeHandle extends BonusSettleHandle { // 激活的账号才能累计业绩和盒数(有注册、升级订单) if (targetMemberRangeExt.getEnableStatus() == EYesNo.YES.getIntValue()) { // 累计业绩 - targetMemberRangeExt.setTeamConsumeAmount(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamConsumeAmount(), orderAmount)); - targetMemberRangeExt.setTeamConsumePv(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamConsumePv(), orderAchieve)); - targetMemberRangeExt.setTeamMonthAmount(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthAmount(), orderAmount)); - targetMemberRangeExt.setTeamMonthPv(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), orderAchieve)); targetMemberRangeExt.setTeamNewAmount(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamNewAmount(), orderAmount)); + targetMemberRangeExt.setTeamConsumeAmount(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamConsumeAmount(), orderAmount)); + targetMemberRangeExt.setTeamMonthAmount(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthAmount(), orderAmount)); + // 累计金额 targetMemberRangeExt.setTeamNewPv(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamNewPv(), orderAchieve)); + targetMemberRangeExt.setTeamConsumePv(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamConsumePv(), orderAchieve)); + targetMemberRangeExt.setTeamMonthPv(ComputeUtil.computeAdd(targetMemberRangeExt.getTeamMonthPv(), orderAchieve)); // 累计盒数 + targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum() + boxNum); targetMemberRangeExt.setTeamBoxNum(targetMemberRangeExt.getTeamBoxNum() + boxNum); targetMemberRangeExt.setMonthBoxNum(targetMemberRangeExt.getMonthBoxNum() + boxNum); - targetMemberRangeExt.setTeamNewBoxNum(targetMemberRangeExt.getTeamNewBoxNum() + boxNum); // 计算等级 calculateGradeAwards(period, memberRangeExtMap, rangeTableName, saOrderExt, retailTeamGradeMap, retailAwardsMap, secondRangeTableName, cuMemberGradeList, cuMemberAwardsList, targetMemberRangeExt, activateMap); diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberAwardsMapper.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberAwardsMapper.java index 58f5e868..cac46543 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberAwardsMapper.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/mapper/CuMemberAwardsMapper.java @@ -3,10 +3,8 @@ package com.hzs.bonus.detail.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt; import com.hzs.common.domain.member.detail.CuMemberAwards; -import com.hzs.common.domain.system.config.BdAwards; import org.apache.ibatis.annotations.Param; -import java.math.BigDecimal; import java.util.List; /** @@ -43,47 +41,25 @@ public interface CuMemberAwardsMapper extends BaseMapper { */ Integer saveBatchCuMemberAwards(@Param("cuMemberAwardsList") List cuMemberAwardsList); - /* - * 删除升级的奖衔 - **/ + /** + * 删除升级的奖衔 + */ void deleteCuMemberAwardsByList(@Param("cuMemberAwards") List cuMemberAwards, @Param("period") Integer period); - /* - * 查询自动升级的等级 - **/ + /** + * 查询自动升级的等级 + */ List queryCuMemberAwards(@Param("cuMemberRetailRangeExtList") List cuMemberRetailRangeExtList, @Param("period") Integer period); - /* - * 回退等级 - **/ + /** + * 回退等级 + */ void mergeCuMemberBackAwards(@Param("rangeTableName") String rangeTableName, @Param("pkMember") Long pkMember, @Param("period") Integer period); - /* - * 每月1号计算奖衔 - **/ - void calculateCuMemberAwardsEveryMonth(@Param("period") Integer period, @Param("month") String month, - @Param("beforeMontTableName") String beforeMontTableName, @Param("minAchieve") BigDecimal minAchieve); - - /* - * 每月1号计算奖衔 - **/ - void calculateCuMemberRangeAwardsEveryMonth(@Param("period") Integer period, @Param("rangeTableName") String rangeTableName, @Param("minAchieve") BigDecimal minAchieve); - - /* - * 更新奖衔 - **/ - void calculateCuMemberAwards(@Param("period") Integer period, @Param("bdAwardsList") List bdAwardsList); - - /* - * 删除重复奖衔数据 - **/ - void deleteRepeatCuMemberAwards(@Param("period") Integer period, @Param("firstPeriod") Integer firstPeriod, - @Param("yesPeriod") Integer yesPeriod); - - /* - * 根据结算表更新奖衔 - **/ + /** + * 根据结算表更新奖衔 + */ void updateCuMemberAwardsExamine(@Param("assessTableName") String assessTableName, @Param("awardPeriod") Integer awardPeriod, @Param("assessPeriod") Integer assessPeriod); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java index 4775e50a..2f5ce241 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/ICuMemberAwardsService.java @@ -46,19 +46,19 @@ public interface ICuMemberAwardsService extends IService { */ void saveBatchCuMemberAwards(List cuMemberAwardsList); - /* - * 删除升级的奖衔 - **/ + /** + * 删除升级的奖衔 + */ void deleteCuMemberAwards(List cuMemberAwards, Integer period); - /* - * 查询自动升级的等级 - **/ + /** + * 查询自动升级的等级 + */ List queryCuMemberAwards(List cuMemberRetailRangeExtList, Integer period); - /* - * 回退等级 - **/ + /** + * 回退奖衔 + */ void mergeCuMemberBackAwards(String rangeTableName, Long pkMember, Integer period); /** @@ -70,13 +70,8 @@ public interface ICuMemberAwardsService extends IService { */ void deleteCuMemberAwards(Long pkOrder, Long pkApprove, Date currentDateTime); - /* - * 每月1号计算奖衔 - **/ - void calculateCuMemberAwardsEveryMonth(Integer currentMonthFirstPeriod, Integer yesterdayPeriod, Integer period, String settleDate, String beforeMontTableName, Map awardsMap); - - /* - * 根据结算表更新奖衔 - **/ + /** + * 根据结算表更新奖衔 + */ void updateCuMemberAwardsExamine(Date currentDate, Integer period); } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberAwardsServiceImpl.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberAwardsServiceImpl.java index 8d5d41e8..56f55e32 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberAwardsServiceImpl.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/detail/service/impl/CuMemberAwardsServiceImpl.java @@ -1,7 +1,7 @@ package com.hzs.bonus.detail.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hzs.bonus.achieve.service.ICuMemberSettlePeriodService; import com.hzs.bonus.achieve.service.ICuMemberTreeService; @@ -21,60 +21,39 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.math.BigDecimal; import java.time.temporal.ChronoUnit; import java.util.*; /** - *

* 会员信息-奖衔升级记录 服务实现类 - *

- * - * @author hzs - * @since 2022-08-31 */ @Service public class CuMemberAwardsServiceImpl extends ServiceImpl implements ICuMemberAwardsService { - private ICuMemberTreeService cuMemberTreeService; - - private ICuMemberService cuMemberService; - - private ICuMemberSettlePeriodService cuMemberSettlePeriodService; - + @Autowired + private ICuMemberService iCuMemberService; + @Autowired + private ICuMemberTreeService iCuMemberTreeService; + @Autowired + private ICuMemberSettlePeriodService iCuMemberSettlePeriodService; @Autowired private CuMemberBonusSettle cuMemberBonusSettle; - @Autowired - public void setCuMemberSettlePeriodService(ICuMemberSettlePeriodService cuMemberSettlePeriodService) { - this.cuMemberSettlePeriodService = cuMemberSettlePeriodService; - } - - @Autowired - public void setCuMemberService(ICuMemberService cuMemberService) { - this.cuMemberService = cuMemberService; - } - - @Autowired - public void setCuMemberTreeService(ICuMemberTreeService cuMemberTreeService) { - this.cuMemberTreeService = cuMemberTreeService; - } - @Override @Transactional(rollbackFor = Exception.class) public void calculateCuMemberAwards(String setDate, Map countryAwardsMap, String settleTableName) { // 查询结算日当天奖衔发生过变动的会员,本期 Date settleDate = DateUtils.parseStringToDate(setDate); - Integer period = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(setDate).getPkId(); + Integer period = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(setDate).getPkId(); //删除当天奖衔升级记录,自动升级的 // 更新奖衔,回退奖衔 List cuMemberAwards = queryCuMemberAwardsByPeriod(period, null); - cuMemberTreeService.updateBackCuMemberSettleAward(settleTableName, period); - cuMemberService.updateBackCuMemberAward(cuMemberAwards, period); + iCuMemberTreeService.updateBackCuMemberSettleAward(settleTableName, period); + iCuMemberService.updateBackCuMemberAward(cuMemberAwards, period); // 回退业绩表奖衔 baseMapper.deleteCuMemberAwards(period); while (true) { - List cuMemberSettleExtList = cuMemberTreeService.queryCuMemberSettleEnoughAwardAchieve(settleTableName); + List cuMemberSettleExtList = iCuMemberTreeService.queryCuMemberSettleEnoughAwardAchieve(settleTableName); if (!calculateAwards(countryAwardsMap, settleTableName, settleDate, period, cuMemberSettleExtList)) { break; } @@ -85,8 +64,8 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl cuMemberAwards = queryCuMemberAwardsByPeriod(period, systemType); - cuMemberTreeService.updateBackCuMemberSettleRangeAward(rangeTableName, period); - cuMemberService.updateBackCuMemberRangeAward(cuMemberAwards, period); + iCuMemberTreeService.updateBackCuMemberSettleRangeAward(rangeTableName, period); + iCuMemberService.updateBackCuMemberRangeAward(cuMemberAwards, period); // 回退业绩表奖衔 baseMapper.deleteCuMemberAwards(period); } @@ -95,22 +74,22 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl 0) { // 将变动值插入临时表中 // 更新会员表 - cuMemberService.updateCuMemberByPeriod(enoughAwardsMemberList, period); + iCuMemberService.updateCuMemberByPeriod(enoughAwardsMemberList, period); // 更新结算网体表(月表、日表) // 根据结算日期获得所有需要更新的周期 updateMemberAwardPeriod(settleDate); return Boolean.TRUE; } else { - cuMemberService.updateCuMemberByPeriod(null, period); + iCuMemberService.updateCuMemberByPeriod(null, period); updateMemberAwardPeriod(settleDate); return Boolean.FALSE; } @@ -224,52 +203,26 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl periodList = new ArrayList<>(); while (DateUtils.compareDateBefore(settleDate, currentDate)) { String settleDateStr = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, settleDate); - periodList.add(cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDateStr).getPkId()); + periodList.add(iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(settleDateStr).getPkId()); settleDate = DateUtils.afterDate(1, ChronoUnit.DAYS, settleDate); } - cuMemberTreeService.updateCuMemberSettleByPeriod(periodList); + iCuMemberTreeService.updateCuMemberSettleByPeriod(periodList); } @Override public void deleteCuMemberAwards(Long pkOrder, Long pkApprove, Date currentDateTime) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.set(SystemFieldConstants.DEL_FLAG, EYesNo.NO.getIntValue()); - updateWrapper.set(SystemFieldConstants.PK_MODIFIED, pkApprove); - updateWrapper.set(SystemFieldConstants.MODIFIED_TIME, currentDateTime); - updateWrapper.eq(SaOrderFieldConstants.PK_ORDER, pkOrder); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.set(CuMemberAwards::getDelFlag, EYesNo.NO.getIntValue()); + updateWrapper.set(CuMemberAwards::getPkModified, pkApprove); + updateWrapper.set(CuMemberAwards::getModifiedTime, currentDateTime); + updateWrapper.eq(CuMemberAwards::getPkOrder, pkOrder); update(updateWrapper); } - @Override - public void calculateCuMemberAwardsEveryMonth(Integer currentMonthFirstPeriod, Integer yesterdayPeriod, Integer period, String settleDate, String beforeMontTableName, Map awardsMap) { - // 根据奖衔找到最小的业绩要求 - BigDecimal minAchieve = BigDecimal.valueOf(999999999); - List bdAwardsList = new ArrayList<>(); - for (String key : awardsMap.keySet()) { - BdAwards bdAwards = awardsMap.get(key); - if (bdAwards.getPkCountry().equals(CountryConstants.CHINA_COUNTRY) && ComputeUtil.compareValue(bdAwards.getCommunityCheck()) && ComputeUtil.compareGreaterThan(minAchieve, bdAwards.getCommunityCheck())) { - minAchieve = bdAwards.getCommunityCheck(); - } - if (ComputeUtil.compareValue(bdAwards.getCommunityCheck()) && bdAwards.getPkCountry().equals(CountryConstants.CHINA_COUNTRY)) { - bdAwardsList.add(bdAwards); - } - } - String month = DateUtils.getMonth(settleDate); -// baseMapper.deleteCuMemberSettleAwards(period); - // 计算业绩, 计算直销团队的福利奖衔 - baseMapper.calculateCuMemberAwardsEveryMonth(period, month, beforeMontTableName, minAchieve); - String rangeTableName = TableNameConstants.CU_MEMBER_RANGE + period; - // 计算乐享极差团队奖衔 - baseMapper.calculateCuMemberRangeAwardsEveryMonth(period, rangeTableName, minAchieve); - baseMapper.calculateCuMemberAwards(period, bdAwardsList); - // 清空当月cu_member_settle_awards中数据 currentMonthFirstPeriod yesterdayPeriod 之间和period重复的去掉 - baseMapper.deleteRepeatCuMemberAwards(period, currentMonthFirstPeriod, yesterdayPeriod); - } - @Override public void updateCuMemberAwardsExamine(Date currentDate, Integer period) { String currentMonthFirstDate = DateUtils.currentMonthFirstDateStr(currentDate); - Integer currentPeriod = cuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(currentMonthFirstDate).getPkId(); + Integer currentPeriod = iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(currentMonthFirstDate).getPkId(); String currentTableName = TableNameConstants.CU_MEMBER_ASSESS + DateUtils.getYear(currentMonthFirstDate); baseMapper.updateCuMemberAwardsExamine(currentTableName, period, currentPeriod); } @@ -286,9 +239,6 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl updateAwardsRecord(List enoughAwardsMemberList, Map originalCuMemberSettleMap, Integer period) { @@ -350,20 +300,18 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl changeAwardsList, Integer period, List cuMemberAwardsList) { // 验证是否有降奖衔的,降奖衔的也要更新 if (changeAwardsList.size() > 0) { // 更新奖衔表,将奖衔升级记录修改为删除状态 - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq(MemberFieldConstants.PERIOD, period); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(CuMemberAwards::getPeriod, period); baseMapper.updateBatchCuMemberAwards(changeAwardsList, period); // 根据 changeAwardsList 查找到这群人的历史奖衔升级记录 List hisCuMemberAwardsList = baseMapper.queryLastCuMemberAwards(changeAwardsList); @@ -384,19 +332,17 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl - * @Author: sui q - * @Date: 2022/11/5 14:21 */ private List queryCuMemberAwardsByPeriod(Integer period, Integer systemType) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq(MemberFieldConstants.PERIOD, period); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(CuMemberAwards::getPeriod, period); if (systemType != null) { - queryWrapper.eq("SYSTEM_TYPE", systemType); + queryWrapper.eq(CuMemberAwards::getSystemType, systemType); } - queryWrapper.eq(MemberFieldConstants.UP_TYPE, EUpgradeType.AUTO_UPGRADE.getValue()); + queryWrapper.eq(CuMemberAwards::getUpType, EUpgradeType.AUTO_UPGRADE.getValue()); return baseMapper.selectList(queryWrapper); } @@ -409,13 +355,13 @@ public class CuMemberAwardsServiceImpl extends ServiceImpl diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberSettlePeriodMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberSettlePeriodMapper.xml index e38b09f2..f3cbc3aa 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberSettlePeriodMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberSettlePeriodMapper.xml @@ -47,7 +47,7 @@ diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml index 36742b84..df9ee4ca 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/achieve/CuMemberTreeMapper.xml @@ -237,43 +237,24 @@ - CREATE - OR REPLACE TRIGGER - ${tableName} - _ - TRIG - BEFORE - INSERT - OR - UPDATE ON ${tableName} - FOR EACH ROW + CREATE OR REPLACE TRIGGER + ${tableName}_TRIG + BEFORE INSERT OR UPDATE ON ${tableName} FOR EACH ROW DECLARE v_newVal NUMBER(12) := 0; - v_incval - NUMBER(12) := 0; + v_incval NUMBER(12) := 0; BEGIN - IF - INSERTING AND :new.pk_id IS NULL THEN - SELECT ${tableNameSeq}.NEXTVAL - INTO v_newVal - FROM DUAL; - IF - v_newVal = 1 THEN - SELECT NVL(max(pk_id), 0) - INTO v_newVal - FROM ${tableName}; - v_newVal - := v_newVal + 1; + IF INSERTING AND :new.pk_id IS NULL THEN + SELECT ${tableNameSeq}.NEXTVAL INTO v_newVal FROM DUAL; + IF v_newVal = 1 THEN SELECT NVL(max(pk_id), 0) INTO v_newVal FROM ${tableName}; + v_newVal := v_newVal + 1; LOOP EXIT WHEN v_incval >= v_newVal; - SELECT ${tableNameSeq}.nextval - INTO v_incval - FROM dual; + SELECT ${tableNameSeq}.nextval INTO v_incval FROM dual; END LOOP; END IF; - :new - .pk_id := v_newVal; + :new.pk_id := v_newVal; END IF; END; @@ -309,8 +290,7 @@ - create index - ${tableName}_parent + create index ${tableName}_parent on ${tableName} ( @@ -319,8 +299,7 @@ - create index - ${tableName}_place + create index ${tableName}_place on ${tableName} ( @@ -330,8 +309,7 @@ - create unique index - ${tableName}_PK_M + create unique index ${tableName}_PK_M on ${tableName} ( PK_MEMBER, @@ -340,8 +318,7 @@ - create unique index - ${tableName}_PK_M + create unique index ${tableName}_PK_M on ${tableName} ( PK_MEMBER @@ -416,6 +393,7 @@ using (select pk_member, max(old_level) old_level from cu_member_awards where period = #{period} + and del_flag = 0 group by pk_member) b on (a.pk_member = b.pk_member) when matched then @@ -433,6 +411,7 @@ where period = #{period} and up_type = 1 and system_type = 1 + and del_flag = 0 group by pk_member) ca inner join bd_range_awards ba on ca.old_level = ba.pk_id @@ -447,11 +426,14 @@ merge into ${rangeTableName} a using ( - select ca.pk_member, max(old_level) pk_awards from cu_member_awards ca + select ca.pk_member, max(old_level) pk_awards + from cu_member_awards ca inner join ${rangeTableName} cm on ca.pk_member = cm.pk_member - where ca.period = #{period} and ca.up_type = 1 + where ca.period = #{period} + and ca.up_type = 1 and ca.award_type = #{awardType} + and ca.del_flag = 0 and cm.pk_awards <= ca.new_level @@ -476,9 +458,13 @@ using ( select y.pk_member,y.pk_awards from ${rangeTableName} x inner join ( - select a.pk_member,a.new_level pk_awards from cu_member_awards a + select a.pk_member,a.new_level pk_awards + from cu_member_awards a + where a.del_flag = 0 inner join( - select pk_member, max(pk_id) pk_id from cu_member_awards where del_flag = 0 and up_type=2 + select pk_member, max(pk_id) pk_id + from cu_member_awards + where del_flag = 0 and up_type=2 and end_validity_date <= #{settleDate, jdbcType=DATE} and award_type = #{awardType} group by pk_member) b @@ -506,15 +492,13 @@ update ${rangeTableName} - set pk_awards = (select pk_id from bd_awards where awards_value = 0), - pk_share_awards = (select pk_id from bd_awards where awards_value = 0) + set pk_awards = (select pk_id from bd_awards where awards_value = 0) update ${rangeTableName} - set pk_awards = (select pk_id from bd_awards where awards_value = 5), - pk_share_awards = (select pk_id from bd_awards where awards_value = 5) + set pk_awards = (select pk_id from bd_awards where awards_value = 5) where pk_grade = ( select pk_id from bd_grade @@ -664,12 +648,14 @@ connect by pk_place_parent = prior pk_member) a inner join (select cw.pk_member, cw.new_level pk_awards from cu_member_awards cw - inner join(select pk_member, max(pk_id) pk_id - from cu_member_awards - where del_flag = 0 - and UP_TYPE in (1, 3) - group by pk_member) ca - on cw.pk_id = ca.pk_id) b + inner join (select pk_member, max(pk_id) pk_id + from cu_member_awards + where del_flag = 0 + and UP_TYPE in (1, 3) + group by pk_member) ca + on cw.pk_id = ca.pk_id + where cw.del_flag = 0 + ) b on a.pk_member = b.pk_member) a inner join bd_awards ba on a.pk_awards = ba.pk_id @@ -697,7 +683,9 @@ where del_flag = 0 and UP_TYPE in (1, 3) group by pk_member) ca - on cw.pk_id = ca.pk_id) b + on cw.pk_id = ca.pk_id + where cw.del_flag = 0 + ) b on a.pk_member = b.pk_member ) x inner join bd_awards ba diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml index 277883bd..6ef7a0b6 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/base/CuMemberMapper.xml @@ -206,7 +206,7 @@ a.pk_awards = b.pk_awards, - a.pk_range_awards=b.pk_awards, + a.pk_range_awards = b.pk_awards, a.modified_time = sysdate @@ -263,6 +263,7 @@ using (select pk_member, max(old_level) old_level from cu_member_awards where period = #{period} + and del_flag = 0 group by pk_member) b on (a.pk_id = b.pk_member) when matched then @@ -279,6 +280,7 @@ from cu_member_awards where period = #{period} and up_type = 1 + and del_flag = 0 group by pk_member) ca inner join bd_range_awards ba on ca.old_level = ba.pk_id @@ -292,11 +294,14 @@ merge into cu_member a - using (select pk_member, max(old_level) pk_awards from cu_member_awards ca + using (select pk_member, max(old_level) pk_awards + from cu_member_awards ca inner join cu_member cm on ca.pk_member = cm.pk_id - where ca.period = #{period} and ca.up_type = 1 + where ca.period = #{period} + and ca.up_type = 1 and award_type = #{awardType} + and ca.del_flag = 0 and cm.pk_awards < ca.new_level @@ -321,14 +326,19 @@ using ( select y.pk_member,y.pk_awards from cu_member x inner join ( - select a.pk_member,a.new_level pk_awards from cu_member_awards a - inner join( - select pk_member,max(pk_id) pk_id from cu_member_awards where del_flag=0 and up_type=2 - and end_validity_date <=#{settleDate, jdbcType=DATE} + select a.pk_member,a.new_level pk_awards + from cu_member_awards a + where a.del_flag = 0 + inner join ( + select pk_member, max(pk_id) pk_id + from cu_member_awards + where del_flag = 0 + and up_type = 2 + and end_validity_date <= #{settleDate, jdbcType=DATE} and award_type = #{awardType} group by pk_member) b - on a.pk_id=b.pk_id ) y - on x.pk_id=y.pk_member + on a.pk_id = b.pk_id) y + on x.pk_id = y.pk_member where x.pk_awards < y.pk_awards @@ -344,7 +354,7 @@ a.pk_awards = b.pk_awards, - a.pk_range_awards=b.pk_awards, + a.pk_range_awards = b.pk_awards, a.modified_time = sysdate @@ -352,15 +362,13 @@ update cu_member - set pk_awards = (select pk_id from bd_awards where awards_value = 0), - pk_range_awards = (select pk_id from bd_awards where awards_value = 0) + set pk_awards = (select pk_id from bd_awards where awards_value = 0) update cu_member - set pk_awards=(select pk_id from bd_awards where awards_value = 5), - pk_range_awards=(select pk_id from bd_awards where awards_value = 5) + set pk_awards = (select pk_id from bd_awards where awards_value = 5) where pk_settle_grade = ( select pk_id from bd_grade diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml index 4620375d..1334060f 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml @@ -58,16 +58,15 @@ - - - update cu_member_bonus set grant_status = #{grantStatus}, pk_modified=100000000, modified_time=sysdate - where del_flag= 0 + update cu_member_bonus + set grant_status = #{grantStatus}, pk_modified = 100000000, modified_time = sysdate + where del_flag = 0 and grant_status = #{oldGrantStatus} and period between #{startPeriod} and #{endPeriod} diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml index fbd4d289..8635906a 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/detail/CuMemberAwardsMapper.xml @@ -39,74 +39,6 @@ SELECT 1 FROM dual - - merge into cu_member_settle_awards a - using ( - select #{period} period, b.* - from ( - select pk_member, - pk_country, - a_balance, - b_balance, - a_new_pv, - b_new_pv, - (case - when a_balance = 0 and b_balance = 0 then a_new_pv + b_new_pv - when a_balance = 0 then a_new_pv - else b_new_pv end) new_pv - from ( - select ct.pk_member, - ct.pk_country, - nvl(ctb.a_balance, 0) a_balance, - nvl(ctb.b_balance, 0) b_balance, - ct.a_sum_pv a_new_pv, - ct.b_sum_pv b_new_pv - from ( - select pk_member, - pk_country, - sum(A_NEW_PV + REP_A_NEW_PV) A_SUM_PV, - sum(b_NEW_PV + REP_B_NEW_PV) b_SUM_PV, - sum(register_new_pv) REGISTER_PV, - sum(upgrade_new_pv) UPGRADE_PV, - sum(repurchase_new_pv) REPURCHASE_PV, - sum(hi_fun_new_pv) HI_FUN_PV, - sum(mall_new_pv) MALL_PV - from cu_member_achieve${month} - where period <= #{period} - and pk_country = 1 - group by pk_member, pk_country - ) ct - left join ${beforeMontTableName} ctb - on ct.pk_member = ctb.pk_member - )) b - where new_pv >= #{minAchieve}) b - on (a.pk_member = b.pk_member and a.period = b.period) - when matched then - update set a.a_balance = b.a_balance,a.b_balance = b.b_balance, - a.a_new_pv = b.a_new_pv,a.b_new_pv = b.b_new_pv,a.new_pv = b.new_pv - when not matched then - insert (pk_id, period, pk_member, a_balance, b_balance, a_new_pv, b_new_pv, new_pv, pk_country, assess_status) - values (cu_member_settle_awards_seq.nextval, b.period, b.pk_member, b.a_balance, b.b_balance, b.a_new_pv, b.b_new_pv, b.new_pv, - b.pk_country, 3) - - - merge into cu_member_settle_awards a - using( - select pk_member,period,max(pk_awards) pk_awards from( - - select pk_member,period,#{item.pkId} pk_awards from cu_member_settle_awards - where period = #{period} and pk_country=#{item.pkCountry} and new_pv>=#{item.communityCheck} - - and new_pv <#{item.communityCheckEnd} - - - ) - group by pk_member,period - ) b on (a.pk_member=b.pk_member and a.period=b.period) - when matched then - update set a.pk_awards=b.pk_awards - - update cu_member_awards set del_flag = 1, modified_time = sysdate, PK_MODIFIED = 1 where period= #{period} and pk_member in @@ -114,6 +46,7 @@ #{item.pkMember} + merge into cu_member_settle_awards a using ( @@ -128,27 +61,6 @@ update set a.assess_target = b.assess_target,a.assess_status = b.assess_status - - merge into cu_member_settle_awards a - using ( - select #{period} period, b.pk_member, b.max_team_pv, b.small_team_pv new_pv - from ( - select pk_parent pk_member, - max(team_month_pv + new_pv) max_team_pv, - (sum(team_month_pv + new_pv) - max(team_month_pv + new_pv)) small_team_pv, - count(pk_parent) dept_num - from ${rangeTableName} - group by pk_parent - having count(pk_parent) >= 2) b - where b.small_team_pv >= #{minAchieve}) b - on (a.pk_member = b.pk_member and a.period = b.period) - when matched then - update set a.a_new_pv = b.max_team_pv,a.b_new_pv = b.new_pv,a.new_pv = b.new_pv - when not matched then - insert (pk_id, period, pk_member, a_balance, b_balance, a_new_pv, b_new_pv, new_pv, pk_country, assess_status) - values (cu_member_settle_awards_seq.nextval, b.period, b.pk_member, 0, 0, b.max_team_pv, b.new_pv, b.new_pv, 1, 3) - - merge into ${rangeTableName} a using ( @@ -169,8 +81,11 @@ from cu_member start with pk_id = #{pkMember} connect by prior pk_parent = pk_id) - group by ca.pk_member) cx - on cw.pk_id = cx.pk_id ) b + group by ca.pk_member + ) cx + on cw.pk_id = cx.pk_id + where cw.del_flag = 0 + ) b on (a.pk_member = b.pk_member) when matched then update set a.pk_awards = b.old_level @@ -178,48 +93,45 @@ - delete - from cu_member_awards + update cu_member_awards cma + set cma.del_flag = 1, + cma.modified_time = sysdate + where period = #{period} + and up_type = 1 + + - - delete - from cu_member_settle_awards - where pk_id in ( - select a.pk_id - from ( - select ct.pk_id, ct.pk_member, ba.awards_value - from cu_member_settle_awards ct - inner join bd_awards ba - on ct.pk_awards = ba.pk_id and ba.del_flag = 0 - where period = #{period}) a - inner join( - select ct.*, bw.awards_value - from ( - select pk_member, max(pk_awards) pk_awards - from cu_member_settle_awards - where period between #{firstPeriod} and #{yesPeriod} - group by pk_member) ct - inner join bd_awards bw - on ct.pk_awards = bw.pk_id and bw.del_flag = 0 - ) b - on a.pk_member = b.pk_member and a.awards_value <= b.awards_value) - + - delete from cu_member_awards where period = #{period} and del_flag=0 and up_type=1 + update cu_member_awards cma + set cma.del_flag = 1, + cma.modified_time = sysdate + where period = #{period} and del_flag = 0 and up_type = 1 and pk_id in #{item.pkId} + + + select ca.pk_member,ba.awards_value new_level from cu_member_awards ca diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java index 6a5328a4..cc89b47f 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java @@ -8,6 +8,7 @@ import com.hzs.common.core.constant.CacheConstants; import com.hzs.common.core.domain.R; import com.hzs.common.core.enums.EGrade; import com.hzs.common.core.enums.ESpecialArea; +import com.hzs.common.core.enums.EYesNo; import com.hzs.common.core.exception.ServiceException; import com.hzs.common.core.service.RedisService; import com.hzs.common.core.utils.StringUtils; @@ -94,7 +95,7 @@ public class ApiRetailOrderController { try { // 购物车中获取商品信息,获取等级 BdGrade bdGrade = iSaOrderService.calculateGrade(levelParam.getSpecialArea(), convertShoppingCarToSku(SecurityUtils.getUserId(), levelParam.getShopList()), - null, levelParam.getUpgradeMember(), SecurityUtils.getSystemType()); + null, levelParam.getUpgradeMember(), SecurityUtils.getSystemType(), EYesNo.NO.getIntValue()); if (null != bdGrade) { orderLevelVO.setIsEnough(true); orderLevelVO.setPkGradeVal(bdGrade.getGradeName()); @@ -276,6 +277,9 @@ public class ApiRetailOrderController { // return AjaxResult.error(relationStr); // } + // 支付入参 + registerParam.setIsPay(EYesNo.YES.getIntValue()); + // 封装会员信息 CuMember newMember = iRetailOrderService.packageCuMember(registerParam); // 封装订单信息 @@ -383,6 +387,9 @@ public class ApiRetailOrderController { return AjaxResult.error(otherCheckStr); } + // 支付入参 + upgradeParam.setIsPay(EYesNo.YES.getIntValue()); + // 封装订单信息 SaOrderExt saOrderExt = iRetailOrderService.createSaOrder(upgradeParam, null, updateGradeMember); diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java index 643f1b2f..a1e5bfa2 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java @@ -208,7 +208,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService { if (ESpecialArea.RETAIL_REGISTER.getValue() == orderParam.getSpecialArea() || ESpecialArea.RETAIL_UPGRADE.getValue() == orderParam.getSpecialArea()) { // 注册、升级订单,计算会员等级 - BdGrade newGrade = iSaOrderService.calculateGrade(orderParam.getSpecialArea(), orderParam.getOrderItemsParams(), gradeList, cuMember, orderParam.getSystemType()); + BdGrade newGrade = iSaOrderService.calculateGrade(orderParam.getSpecialArea(), orderParam.getOrderItemsParams(), gradeList, + cuMember, orderParam.getSystemType(), orderParam.getIsPay()); if (null == newGrade) { throw new ServiceException("会员不满足升级条件"); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderParam.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderParam.java index 18de1236..a5587c9a 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderParam.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderParam.java @@ -161,4 +161,9 @@ public class RetailOrderParam implements Serializable { */ private Integer systemType; + /** + * 是否支付操作(0=是,1=否) + */ + private Integer isPay; + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderPayParam.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderPayParam.java index 3ce00264..fe2d6b99 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderPayParam.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/param/RetailOrderPayParam.java @@ -9,11 +9,7 @@ import javax.validation.constraints.NotNull; import java.io.Serializable; /** - * @Description: 新零售订单支付入参 - * @Author: jiang chao - * @Time: 2024/12/12 16:45 - * @Classname: RetailPayOrderParam - * @PackageName: com.hzs.retail.sale.param + * 新零售订单支付入参 */ @Data public class RetailOrderPayParam implements Serializable { @@ -42,4 +38,10 @@ public class RetailOrderPayParam implements Serializable { @JsonIgnore private Integer pkCountry = CountryConstants.CHINA_COUNTRY; + /** + * 是否支付操作(0=是,1=否) + */ + private Integer isPay; + + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java index d6a6e692..cee80d55 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderService.java @@ -689,7 +689,9 @@ public interface ISaOrderService extends IService { * @param systemType 系统类型 * @return 返回 null 则为不满足升级条件 */ - BdGrade calculateGrade(Integer specialArea, List orderItemsParams, List gradeList, CuMember updateGradeMember, Integer systemType); + BdGrade calculateGrade(Integer specialArea, List orderItemsParams, + List gradeList, CuMember updateGradeMember, + Integer systemType, Integer isPay); /** * 根据盒数计算等级 diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java index 4c17c2c1..73790db7 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderServiceImpl.java @@ -2607,7 +2607,8 @@ public class SaOrderServiceImpl extends ServiceImpl impl @Override public BdGrade calculateGrade(Integer specialArea, List orderItemsParams, - List gradeList, CuMember updateGradeMember, Integer systemType) { + List gradeList, CuMember updateGradeMember, + Integer systemType, Integer isPay) { if (CollectionUtil.isEmpty(gradeList)) { gradeList = iGradeServiceApi.getRetailGradeList().getData(); } @@ -2654,6 +2655,25 @@ public class SaOrderServiceImpl extends ServiceImpl impl return null; } } + + // TODO 2025.06.14 添加新需求,V1-V3,购买多给两级 + if (null != isPay && EYesNo.YES.getIntValue() == isPay) { + // 支付时才进行处理 + if (null != bdGrade) { + if (EGrade.HAI_FAN.getValue() == bdGrade.getGradeValue()) { + // V1 给 V3 + bdGrade = gradeList.stream().filter(tmpData -> EGrade.MAKER.getValue() == tmpData.getGradeValue()).findFirst().get(); + } else if (EGrade.YOU_KE.getValue() == bdGrade.getGradeValue()) { + // V2 给 V4 + bdGrade = gradeList.stream().filter(tmpData -> EGrade.VIP.getValue() == tmpData.getGradeValue()).findFirst().get(); + } else if (EGrade.MAKER.getValue() == bdGrade.getGradeValue()) { + // V3 给 V5 + bdGrade = gradeList.stream().filter(tmpData -> EGrade.S_VIP.getValue() == tmpData.getGradeValue()).findFirst().get(); + } + } + } + + return bdGrade; } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/address/CuMemberReceiving.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/address/CuMemberReceiving.java index c29f3b5f..ae3a433a 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/address/CuMemberReceiving.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/address/CuMemberReceiving.java @@ -11,12 +11,7 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** - *

* 会员收货信息 - *

- * - * @author hzs - * @since 2022-08-22 */ @Data @EqualsAndHashCode(callSuper = false) diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/base/CuMember.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/base/CuMember.java index c4731c77..a0f7eec7 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/base/CuMember.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/member/base/CuMember.java @@ -13,9 +13,6 @@ import java.util.Date; /** * 会员 - * - * @author hzs - * @since 2022-08-04 */ @Data @EqualsAndHashCode(callSuper = false)