| | |
| | | orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue()); |
| | | orderInfo.setPayTime(new Date()); |
| | | orderInfo.setPayResult("1"); |
| | | this.baseMapper.updateById(orderInfo); |
| | | |
| | | changeWallet(orderInfo.getId()); |
| | | /** |
| | |
| | | * 所有合伙人补贴至消费礼包的三倍额度需要复购一次。 |
| | | */ |
| | | BigDecimal scoreSum = BigDecimal.ZERO; |
| | | BigDecimal achieveSum = BigDecimal.ZERO; |
| | | List<MallOrderItem> orderItems = this.baseMapper.getMallOrderItemByOrderId(orderInfo.getId()); |
| | | if (CollUtil.isNotEmpty(orderItems)) { |
| | | for (MallOrderItem orderItem : orderItems) { |
| | |
| | | // .multiply(new BigDecimal(orderItem.getCnt())) |
| | | // .abs() |
| | | // .setScale(2,BigDecimal.ROUND_DOWN)); |
| | | String goodsName = mallGoods.getGoodsName(); |
| | | /** |
| | | * 1-2档投资级别,2.5倍 |
| | | * 3-4档投资级别,2.8倍 |
| | | * 5-6档投资级别,3倍 |
| | | * 目前紧急修改成按照商品名称 |
| | | */ |
| | | BigDecimal basePercent = new BigDecimal("3"); |
| | | if(goodsName.equals("礼包一") || goodsName.equals("礼包二")){ |
| | | basePercent = new BigDecimal("2.5"); |
| | | } |
| | | if(goodsName.equals("礼包三") || goodsName.equals("礼包四")){ |
| | | basePercent = new BigDecimal("2.8"); |
| | | } |
| | | if(goodsName.equals("礼包五") || goodsName.equals("礼包六")){ |
| | | basePercent = new BigDecimal("3"); |
| | | } |
| | | scoreSum = scoreSum.add( |
| | | new BigDecimal(mallGoods.getPresentPrice()) |
| | | .multiply(new BigDecimal(orderItem.getCnt())) |
| | | .multiply(basePercent) |
| | | .abs() |
| | | .setScale(2,BigDecimal.ROUND_DOWN)); |
| | | achieveSum = achieveSum.add( |
| | | new BigDecimal(mallGoods.getPresentPrice()) |
| | | .multiply(new BigDecimal(orderItem.getCnt())) |
| | | .abs() |
| | |
| | | * 增加补贴额度 |
| | | */ |
| | | if (scoreSum.compareTo(BigDecimal.ZERO) > 0) { |
| | | MallMember mallMember = memberMapper.selectById(memberId); |
| | | if(MemberLevelEnum.SECOND_LEVEL.getLevelCode(mallMember.getLevel()) >= 5){ |
| | | scoreSum = scoreSum.multiply(new BigDecimal(3)); |
| | | } |
| | | if(MemberLevelEnum.SECOND_LEVEL.getLevelCode(mallMember.getLevel()) >= 3 |
| | | &&MemberLevelEnum.SECOND_LEVEL.getLevelCode(mallMember.getLevel()) < 5){ |
| | | scoreSum = scoreSum.multiply(new BigDecimal(2.8)); |
| | | } |
| | | if(MemberLevelEnum.SECOND_LEVEL.getLevelCode(mallMember.getLevel()) < 3){ |
| | | scoreSum = scoreSum.multiply(new BigDecimal(2.5)); |
| | | } |
| | | // MallMember mallMember = memberMapper.selectById(memberId); |
| | | // if(MemberLevelEnum.SECOND_LEVEL.getLevelCode(mallMember.getLevel()) >= 5){ |
| | | // scoreSum = scoreSum.multiply(new BigDecimal(3)); |
| | | // } |
| | | // if(MemberLevelEnum.SECOND_LEVEL.getLevelCode(mallMember.getLevel()) >= 3 |
| | | // &&MemberLevelEnum.SECOND_LEVEL.getLevelCode(mallMember.getLevel()) < 5){ |
| | | // scoreSum = scoreSum.multiply(new BigDecimal(2.8)); |
| | | // } |
| | | // if(MemberLevelEnum.SECOND_LEVEL.getLevelCode(mallMember.getLevel()) < 3){ |
| | | // scoreSum = scoreSum.multiply(new BigDecimal(2.5)); |
| | | // } |
| | | memberWalletService.add(scoreSum, memberId, "totalScore"); |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | memberId, |
| | |
| | | /** |
| | | * 产生一条业绩记录 |
| | | */ |
| | | MallAchieveRecord mallAchieveRecord = new MallAchieveRecord(); |
| | | mallAchieveRecord.setMemberId(memberId); |
| | | mallAchieveRecord.setAchieveTime(new Date()); |
| | | mallAchieveRecord.setAmount(orderInfo.getAmount().subtract(orderInfo.getScoreAmount())); |
| | | mallAchieveRecord.setOrderId(orderId); |
| | | mallAchieveRecord.setPayTime(orderInfo.getPayTime()); |
| | | mallAchieveRecordMapper.insert(mallAchieveRecord); |
| | | if(achieveSum.compareTo(BigDecimal.ZERO) > 0){ |
| | | MallAchieveRecord mallAchieveRecord = new MallAchieveRecord(); |
| | | mallAchieveRecord.setMemberId(memberId); |
| | | mallAchieveRecord.setAchieveTime(new Date()); |
| | | mallAchieveRecord.setAmount(achieveSum.subtract(orderInfo.getScoreAmount())); |
| | | mallAchieveRecord.setOrderId(orderId); |
| | | mallAchieveRecord.setPayTime(orderInfo.getPayTime()); |
| | | mallAchieveRecordMapper.insert(mallAchieveRecord); |
| | | } |
| | | } |
| | | |
| | | public static void main(String[] args) { |