| | |
| | | |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.enumerates.AgentLevelEnum; |
| | | import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; |
| | | import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; |
| | | import cc.mrbird.febs.common.exception.FebsException; |
| | | import cc.mrbird.febs.common.utils.AppContants; |
| | |
| | | private final MallMemberMapper memberMapper; |
| | | private final MallMemberWalletMapper mallMemberWalletMapper; |
| | | private final RestTemplate restTemplate; |
| | | private final MallOrderInfoMapper mallOrderInfoMapper; |
| | | private final MallOrderItemMapper mallOrderItemMapper; |
| | | private final MallGoodsMapper mallGoodsMapper; |
| | | private final IApiMallMemberWalletService memberWalletService; |
| | | private final MallRollPerkMapper mallRollPerkMapper; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | return; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void orderGetMsg(String str) { |
| | | /** |
| | | * String str : orderId@amount |
| | | */ |
| | | String[] split = StrUtil.split(str, "@"); |
| | | String orderId = split[0]; |
| | | String amount = split[1]; |
| | | MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId); |
| | | if(ObjectUtil.isEmpty(mallOrderInfo)){ |
| | | return; |
| | | } |
| | | Long memberId = mallOrderInfo.getMemberId(); |
| | | MallMember mallMember = memberMapper.selectById(memberId); |
| | | |
| | | |
| | | List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(mallOrderInfo.getId()); |
| | | if(CollUtil.isEmpty(mallOrderItemList)){ |
| | | return; |
| | | } |
| | | |
| | | /** |
| | | * 支付后同意验证 |
| | | * 1:是否送券 |
| | | * 2:是否送积分 |
| | | * 3:是否返利 |
| | | */ |
| | | //是否返利 |
| | | BigDecimal amountBigDecimal = new BigDecimal(StrUtil.isEmpty(amount) ? "0" : amount); |
| | | 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"); |
| | | } |
| | | } |
| | | for(MallOrderItem mallOrderItem : mallOrderItemList){ |
| | | Long goodsId = mallOrderItem.getGoodsId(); |
| | | MallGoods mallGoods = mallGoodsMapper.selectById(goodsId); |
| | | if(ObjectUtil.isEmpty(mallGoods)){ |
| | | break; |
| | | } |
| | | //是否送券 1:是 2:否 |
| | | BigDecimal levelTwoPrice = mallGoods.getLevelTwoPrice(); |
| | | if(BigDecimal.ONE.compareTo(levelTwoPrice) == 0){ |
| | | MallRollPerk mallRollPerk = new MallRollPerk(); |
| | | mallRollPerk.setMemberId(memberId); |
| | | mallRollPerk.setState(1); |
| | | mallRollPerk.setRollId(Long.parseLong(mallGoods.getLevelThreePrice().toString())); |
| | | mallRollPerkMapper.insert(mallRollPerk); |
| | | } |
| | | //赠送积分 |
| | | BigDecimal levelOnePrice = mallGoods.getLevelOnePrice(); |
| | | if(BigDecimal.ZERO.compareTo(levelOnePrice) <= 0){ |
| | | memberWalletService.add(levelOnePrice, memberId, "score"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | |
| | | RestTemplate restTemplate = new RestTemplate(); |