| | |
| | | private final IMallMoneyFlowService mallMoneyFlowService; |
| | | private final MallMemberClassMapper mallMemberClassMapper; |
| | | private final MallMemberHouseMapper mallMemberHouseMapper; |
| | | private final MallMoneyFlowMapper mallMoneyFlowMapper; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | @Override |
| | | public void addMemberScan(String str) { |
| | | |
| | | String[] split = StrUtil.split(str, "-"); |
| | | String[] split = StrUtil.split(str, "@"); |
| | | String referrerId = split[0]; |
| | | String openId = split[1]; |
| | | MallMember mallMember = memberMapper.selectMemberByOpenId(openId); |
| | |
| | | } |
| | | 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(); |
| | | MallMember mallMemberParent = memberMapper.selectInfoByInviteId(referrerId); |
| | | Long id = mallMemberParent.getId(); |
| | | DataDictionaryCustom returnPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.MEMBER_RETURN_PERCENT.getType(), |
| | | DataDictionaryEnum.MEMBER_RETURN_PERCENT.getCode() |
| | | ); |
| | | String returnPercentStr = StrUtil.isNotEmpty(returnPercentDic.getValue()) ? "1" : 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); |
| | | memberWalletService.add(amountActual, id, "balance"); |
| | | mallMoneyFlowService.addMoneyFlow(id, amountActual, MoneyFlowTypeEnum.DYNAMIC_ACHIEVE.getValue(), |
| | | mallOrderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue()); |
| | | |
| | | MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOneByOrderNoAndMemberIdAndRtMemberId(mallOrderInfo.getOrderNo(), memberId, id); |
| | | if(ObjectUtil.isEmpty(mallMoneyFlow)){ |
| | | DataDictionaryCustom returnPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.MEMBER_RETURN_PERCENT.getType(), |
| | | DataDictionaryEnum.MEMBER_RETURN_PERCENT.getCode() |
| | | ); |
| | | 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( |
| | | id, |
| | | amountActual, |
| | | MoneyFlowTypeEnum.DYNAMIC_ACHIEVE.getValue(), |
| | | mallOrderInfo.getOrderNo(), |
| | | "直推奖", |
| | | "直推奖", |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | for(MallOrderItem mallOrderItem : mallOrderItemList){ |
| | |
| | | if(ObjectUtil.isEmpty(mallGoods)){ |
| | | break; |
| | | } |
| | | if(1 == mallGoods.getIsUnreal()){ |
| | | if(ObjectUtil.isNotEmpty(mallGoods.getIsUnreal()) && 1 == mallGoods.getIsUnreal()){ |
| | | mallOrderInfo.setStatus(OrderStatusEnum.FINISH.getValue()); |
| | | mallOrderInfoMapper.updateById(mallOrderInfo); |
| | | } |
| | | //是否送券 1:是 2:否 |
| | | BigDecimal levelTwoPrice = mallGoods.getLevelTwoPrice(); |
| | | if(BigDecimal.ONE.compareTo(levelTwoPrice) == 0){ |
| | | MallRollPerk mallRollPerk = new MallRollPerk(); |
| | | mallRollPerk.setMemberId(memberId); |
| | | mallRollPerk.setState(1); |
| | | mallRollPerk.setRollId(mallGoods.getLevelThreePrice().longValue()); |
| | | mallRollPerkMapper.insert(mallRollPerk); |
| | | } |
| | | //赠送积分 |
| | | BigDecimal levelOnePrice = mallGoods.getLevelOnePrice(); |
| | | if(BigDecimal.ZERO.compareTo(levelOnePrice) <= 0){ |
| | | memberWalletService.add(levelOnePrice, memberId, "score"); |
| | | //是否送券 1:是 2:否 |
| | | BigDecimal levelTwoPrice = mallGoods.getLevelTwoPrice(); |
| | | if(BigDecimal.ONE.compareTo(levelTwoPrice) == 0){ |
| | | MallRollPerk mallRollPerk = new MallRollPerk(); |
| | | mallRollPerk.setMemberId(memberId); |
| | | mallRollPerk.setState(1); |
| | | mallRollPerk.setRollId(mallGoods.getLevelThreePrice().longValue()); |
| | | mallRollPerkMapper.insert(mallRollPerk); |
| | | } |
| | | //赠送积分 |
| | | BigDecimal levelOnePrice = mallGoods.getLevelOnePrice(); |
| | | if(BigDecimal.ZERO.compareTo(levelOnePrice) <= 0){ |
| | | memberWalletService.add(levelOnePrice, memberId, "score"); |
| | | |
| | | mallMoneyFlowService.addMoneyFlow(memberId, levelOnePrice, MoneyFlowTypeEnum.STATIC_BONUS.getValue(), |
| | | mallOrderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue()); |
| | | mallMoneyFlowService.addMoneyFlow(memberId, levelOnePrice, MoneyFlowTypeEnum.STATIC_BONUS.getValue(), |
| | | mallOrderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue(),"赠送积分",2); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | mallMemberClass.setOrderId(orderId); |
| | | mallMemberClass.setClassName(goodsName); |
| | | mallMemberClass.setClassPic(skuImage); |
| | | mallMemberClass.setClassDec(mallGoods.getGoodsIntrodution()); |
| | | mallMemberClass.setClassUrl(mallGoods.getVideoUrl()); |
| | | mallMemberClass.setCreateTime(DateUtil.date()); |
| | | mallMemberClassMapper.insert(mallMemberClass); |
| | | return; |
| | | }else if(5 == isNormal){ |
| | | //民宿卷 |
| | | MallMemberHouse mallMemberHouse = new MallMemberHouse(); |
| | | mallMemberHouse.setOrderId(orderId); |
| | | mallMemberHouse.setOrderNo(mallOrderInfo.getOrderNo()); |
| | | mallMemberHouse.setMemberId(memberId); |
| | | mallMemberHouse.setState(1); |
| | | mallMemberHouse.setCreateTime(DateUtil.date()); |
| | |
| | | mallMemberHouse.setUnuseTime(DateUtil.date().offset(DateField.HOUR_OF_DAY,48)); |
| | | mallMemberHouse.setHouseName(mallGoods.getHouseName()); |
| | | mallMemberHouse.setHouseAddress(mallGoods.getHouseAddress()); |
| | | mallMemberHouse.setHousePic(mallGoods.getThumb()); |
| | | mallMemberHouseMapper.insert(mallMemberHouse); |
| | | return; |
| | | }else{ |