| | |
| | | } |
| | | Long memberId = mallOrderInfo.getMemberId(); |
| | | MallMember mallMember = memberMapper.selectById(memberId); |
| | | |
| | | /** |
| | | * 用户是否满足最低消费,满足则升级成为会员,可以邀请用户,并且查看会员商城 |
| | | */ |
| | | Integer isMember = mallMember.getIsMember(); |
| | | if(AppContants.MEMBER_STATE_NO == isMember){ |
| | | List<MallOrderInfo> mallOrderInfos = mallOrderInfoMapper.selectOrderInfoByStatus(OrderStatusEnum.FINISH.getValue()); |
| | | if(CollUtil.isNotEmpty(mallOrderInfos)){ |
| | | DataDictionaryCustom minAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.MIN_AMOUNT_IS_MEMBER.getType(), |
| | | DataDictionaryEnum.MIN_AMOUNT_IS_MEMBER.getCode() |
| | | ); |
| | | BigDecimal minAmount = new BigDecimal(minAmountDic.getValue());//系统设置的累计消费金额 |
| | | BigDecimal accumulateAmount = mallOrderInfos.stream().map(MallOrderInfo::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);//累计消费金额 |
| | | if(minAmount.compareTo(accumulateAmount) <= 0){//用户累计消费大于系统设置的累计消费 |
| | | mallMember.setIsMember(AppContants.MEMBER_STATE_YES); |
| | | memberMapper.updateById(mallMember); |
| | | } |
| | | } |
| | | } |
| | | |
| | | List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(mallOrderInfo.getId()); |
| | | if(CollUtil.isEmpty(mallOrderItemList)){ |
| | |
| | | */ |
| | | //是否返利 |
| | | BigDecimal amountBigDecimal = new BigDecimal(StrUtil.isEmpty(amount) ? "0" : amount); |
| | | BigDecimal parentUpAmount = BigDecimal.ZERO; |
| | | if(BigDecimal.ZERO.compareTo(amountBigDecimal) < 0){ |
| | | if(ObjectUtil.isNotEmpty(mallMember.getReferrerId())){ |
| | | String referrerId = mallMember.getReferrerId(); |
| | |
| | | DataDictionaryEnum.MEMBER_RETURN_PERCENT.getType(), |
| | | DataDictionaryEnum.MEMBER_RETURN_PERCENT.getCode() |
| | | ); |
| | | String returnPercentStr = StrUtil.isNotEmpty(returnPercentDic.getValue()) ? "1" : returnPercentDic.getValue(); |
| | | String returnPercentStr = StrUtil.isEmpty(returnPercentDic.getValue()) ? "10" : returnPercentDic.getValue(); |
| | | BigDecimal returnPercent = new BigDecimal(returnPercentStr).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN); |
| | | BigDecimal amountActual = amountBigDecimal.multiply(returnPercent).setScale(2, BigDecimal.ROUND_DOWN); |
| | | |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | mallMember.getId(), |
| | | id, |
| | | amountActual, |
| | | MoneyFlowTypeEnum.DYNAMIC_ACHIEVE.getValue(), |
| | | mallOrderInfo.getOrderNo(), |
| | | "直推奖", |
| | | "直推奖", |
| | | id, |
| | | mallMember.getId(), |
| | | 1, |
| | | FlowTypeEnum.BALANCE.getValue(), |
| | | 2); |
| | | parentUpAmount = amountActual; |
| | | } |
| | | |
| | | /** |
| | | * 拿下一级(直推的)收入的百分之五十 |
| | | */ |
| | | if(ObjectUtil.isNotEmpty(mallMemberParent.getReferrerId())){ |
| | | String referrerIdParentUp = mallMemberParent.getReferrerId(); |
| | | MallMember mallMemberParentUp = memberMapper.selectInfoByInviteId(referrerIdParentUp); |
| | | Long idParentUp = mallMemberParentUp.getId(); |
| | | MallMoneyFlow mallMoneyFlowParentUp = mallMoneyFlowMapper.selectOneByOrderNoAndMemberIdAndRtMemberId(mallOrderInfo.getOrderNo() |
| | | , idParentUp |
| | | , id); |
| | | if(ObjectUtil.isEmpty(mallMoneyFlowParentUp)){ |
| | | DataDictionaryCustom returnPercentUpDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.MEMBER_RETURN_PERCENT_UP.getType(), |
| | | DataDictionaryEnum.MEMBER_RETURN_PERCENT_UP.getCode() |
| | | ); |
| | | String returnPercentUpStr = StrUtil.isEmpty(returnPercentUpDic.getValue()) ? "50" : returnPercentUpDic.getValue(); |
| | | BigDecimal returnPercentUp = new BigDecimal(returnPercentUpStr).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN); |
| | | BigDecimal amountActualUp = parentUpAmount.multiply(returnPercentUp).setScale(2, BigDecimal.ROUND_DOWN); |
| | | |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | idParentUp, |
| | | amountActualUp, |
| | | MoneyFlowTypeEnum.DYNAMIC_ACHIEVE.getValue(), |
| | | mallOrderInfo.getOrderNo(), |
| | | "直推奖", |
| | | "直推奖", |
| | | id, |
| | | 1, |
| | | FlowTypeEnum.BALANCE.getValue(), |
| | | 2); |
| | | } |
| | | } |
| | | } |
| | | } |