| | |
| | | private MallOrderInfoMapper mallOrderInfoMapper; |
| | | |
| | | @Autowired |
| | | private MallOrderItemMapper mallOrderItemMapper; |
| | | |
| | | @Autowired |
| | | private IApiMallMemberWalletService memberWalletService; |
| | | |
| | | @Autowired |
| | |
| | | if(CollUtil.isNotEmpty(orderInfos)){ |
| | | for(MallOrderInfo orderInfo : orderInfos){ |
| | | //生成一条团长提成记录 |
| | | MallLeaderAchieve mallLeaderAchieve = new MallLeaderAchieve(); |
| | | mallLeaderAchieve.setMemberId(orderInfo.getMemberId()); |
| | | mallLeaderAchieve.setOrderNo(orderInfo.getOrderNo()); |
| | | mallLeaderAchieve.setAmount(orderInfo.getAmount()); |
| | | mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode()); |
| | | mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE); |
| | | mallLeaderAchieveMapper.insert(mallLeaderAchieve); |
| | | Long id = orderInfo.getId(); |
| | | List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id); |
| | | if(CollUtil.isNotEmpty(mallOrderItemList)){ |
| | | for(MallOrderItem mallOrderItem : mallOrderItemList){ |
| | | Integer state = mallOrderItem.getState() == null ? 1 : mallOrderItem.getState(); |
| | | if(1 == state){ |
| | | MallLeaderAchieve mallLeaderAchieve = new MallLeaderAchieve(); |
| | | mallLeaderAchieve.setMemberId(orderInfo.getMemberId()); |
| | | mallLeaderAchieve.setOrderNo(orderInfo.getOrderNo()); |
| | | BigDecimal itemAmount = mallOrderItem.getAmount(); |
| | | // BigDecimal subtract = orderInfo.getAmount().subtract(orderInfo.getCarriage() == null ? BigDecimal.ZERO : orderInfo.getCarriage()); |
| | | mallLeaderAchieve.setAmount(itemAmount); |
| | | mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode()); |
| | | mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE); |
| | | mallLeaderAchieveMapper.insert(mallLeaderAchieve); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | mallOrderInfoMapper.updateOrderConfirmStatus(DateUtil.offsetDay(new Date(), -value)); |
| | | mallOrderInfoMapper.updateOrderConfirmStatus(DateUtil.date(),DateUtil.offsetDay(new Date(), -value)); |
| | | } |
| | | } |
| | | /** |
| | | * 自动确认收货 |
| | | * 团长第二天才会结算前一天的所有提成 |
| | | * 从团长业绩表中查询出前一天的所有已完成订单金额*提成系数,得到今日提成 |
| | | * 修改业绩的状态 |
| | | * 并生成一条提成流水 |
| | | */ |
| | | // @Scheduled(cron = "0 0 1 * * ?") |
| | | @Scheduled(cron = "1 * * * * ?") |
| | |
| | | * a.unique_code uniqueCode 团长特征码 |
| | | * , IFNULL(sum(a.amount),0) amount 每日提成总金额 |
| | | */ |
| | | DateTime dateTime = DateUtil.offsetDay(new Date(), -1); |
| | | // DateTime dateTime = DateUtil.offsetDay(new Date(), -1); |
| | | DateTime dateTime = DateUtil.offsetDay(new Date(), 0); |
| | | List<Map<String, String>> allLeaderAchieve = mallLeaderAchieveMapper.selectListByStateAndCreateTimeAndUniqueCode(MallLeaderAchieve.STATE_ONE,dateTime); |
| | | if (CollUtil.isNotEmpty(allLeaderAchieve)) { |
| | | for (Map<String, String> map : allLeaderAchieve) { |
| | | String uniqueCode = map.get("uniqueCode"); |
| | | Object amountOrder = map.get("amount"); |
| | | //直接舍弃小数点的第三位 |
| | | BigDecimal amount = new BigDecimal(map.get("amount")).setScale(2,BigDecimal.ROUND_DOWN); |
| | | BigDecimal amount = new BigDecimal(String.valueOf(amountOrder)).setScale(2,BigDecimal.ROUND_DOWN); |
| | | BigDecimal achieveMoney = amount.multiply(bonusPercent).setScale(2,BigDecimal.ROUND_DOWN); |
| | | MallMember mallMember = mallMemberMapper.selectInfoByInviteId(uniqueCode); |
| | | memberWalletService.addBalance(achieveMoney,mallMember.getId()); |
| | |
| | | achieveNo, |
| | | FlowTypeEnum.BALANCE.getValue()); |
| | | |
| | | |
| | | //更新到已提成状态 |
| | | mallLeaderAchieveMapper.updateByUniqueCodeStateAndTime(uniqueCode,MallLeaderAchieve.STATE_ONE,dateTime); |
| | | mallLeaderAchieveMapper.updateByUniqueCodeStateAndTime(DateUtil.date(),uniqueCode,MallLeaderAchieve.STATE_ONE,dateTime); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | BigDecimal bigDecimal = new BigDecimal(0.1256).setScale(2,BigDecimal.ROUND_DOWN); |
| | | System.out.println(bigDecimal); |
| | | } |
| | | // public static void main(String[] args) { |
| | | // BigDecimal bigDecimal = new BigDecimal(0.1256).setScale(2,BigDecimal.ROUND_DOWN); |
| | | // System.out.println(bigDecimal); |
| | | // } |
| | | } |