| | |
| | | /** |
| | | * 普通商品结算 |
| | | */ |
| | | @Scheduled(cron = "0 0 0 * * ?") |
| | | public void normalGoodsSettlementJob() { |
| | | log.info("普通商品结算"); |
| | | List<MallOrderInfo> orderInfos = mallOrderInfoMapper.selectOrderInfoWithNormalGoods(DateUtil.offsetDay(new Date(), -10)); |
| | | if (CollUtil.isEmpty(orderInfos)) { |
| | | return; |
| | | } |
| | | |
| | | for (MallOrderInfo orderInfo : orderInfos) { |
| | | MallMember member = mallMemberMapper.selectById(orderInfo.getMemberId()); |
| | | if (AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())) { |
| | | continue; |
| | | } |
| | | |
| | | for (MallOrderItem item : orderInfo.getItems()) { |
| | | MallGoodsSku sku = mallGoodsSkuMapper.selectById(item.getSkuId()); |
| | | BigDecimal score = sku.getPresentPrice(); |
| | | |
| | | memberWalletService.add(score, member.getId(), "score"); |
| | | mallMoneyFlowService.addMoneyFlow(member.getId(), score, MoneyFlowTypeEnum.STATIC_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue()); |
| | | |
| | | mallAchieveService.add(item.getId()); |
| | | } |
| | | |
| | | // 普通商品动态分红结算 |
| | | memberProfitService.dynamicProfit(orderInfo.getId(), 1); |
| | | } |
| | | } |
| | | // @Scheduled(cron = "0 0 0 * * ?") |
| | | // public void normalGoodsSettlementJob() { |
| | | // log.info("普通商品结算"); |
| | | // List<MallOrderInfo> orderInfos = mallOrderInfoMapper.selectOrderInfoWithNormalGoods(DateUtil.offsetDay(new Date(), -10)); |
| | | // if (CollUtil.isEmpty(orderInfos)) { |
| | | // return; |
| | | // } |
| | | // |
| | | // for (MallOrderInfo orderInfo : orderInfos) { |
| | | // MallMember member = mallMemberMapper.selectById(orderInfo.getMemberId()); |
| | | // if (AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())) { |
| | | // continue; |
| | | // } |
| | | // |
| | | // for (MallOrderItem item : orderInfo.getItems()) { |
| | | // MallGoodsSku sku = mallGoodsSkuMapper.selectById(item.getSkuId()); |
| | | // BigDecimal score = sku.getPresentPrice(); |
| | | // |
| | | // memberWalletService.add(score, member.getId(), "score"); |
| | | // mallMoneyFlowService.addMoneyFlow(member.getId(), score, MoneyFlowTypeEnum.STATIC_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue()); |
| | | // |
| | | // mallAchieveService.add(item.getId()); |
| | | // } |
| | | // |
| | | // // 普通商品动态分红结算 |
| | | // memberProfitService.dynamicProfit(orderInfo.getId(), 1); |
| | | // } |
| | | // } |
| | | |
| | | /** |
| | | * 自动确认收货 |
| | |
| | | Integer value = Integer.parseInt(dic.getValue()); |
| | | List<MallOrderInfo> orderInfos = mallOrderInfoMapper.selectOrderByStatusAndPayTime(3,DateUtil.offsetDay(new Date(), -value)); |
| | | if(CollUtil.isNotEmpty(orderInfos)){ |
| | | for(MallOrderInfo orderInfo : orderInfos){ |
| | | MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(orderInfo.getTakeUniqueCode()); |
| | | Integer profitSwitch = mallTeamLeader.getProfitSwitch()==null?2:mallTeamLeader.getProfitSwitch(); |
| | | if(1 == profitSwitch){ |
| | | BigDecimal bonusPercent =new BigDecimal(mallTeamLeader.getBonusPercent()==null?"0":mallTeamLeader.getBonusPercent()); |
| | | // DataDictionaryCustom dicBonusPercent = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.BONUS_PERCENT.getType(), DataDictionaryEnum.BONUS_PERCENT.getCode()); |
| | | // BigDecimal bonusPercent = new BigDecimal(dicBonusPercent.getValue()).setScale(2,BigDecimal.ROUND_DOWN); |
| | | //生成一条团长提成记录 |
| | | 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()); |
| | | mallLeaderAchieve.setOrderItemId(mallOrderItem.getId()); |
| | | BigDecimal itemAmount = mallOrderItem.getAmount(); |
| | | mallLeaderAchieve.setAmount(itemAmount); |
| | | BigDecimal bigDecimal = bonusPercent.multiply(itemAmount).setScale(2, BigDecimal.ROUND_DOWN); |
| | | mallLeaderAchieve.setProfitAmount(bigDecimal); |
| | | mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode()); |
| | | mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE); |
| | | mallLeaderAchieveMapper.insert(mallLeaderAchieve); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // for(MallOrderInfo orderInfo : orderInfos){ |
| | | // MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(orderInfo.getTakeUniqueCode()); |
| | | // Integer profitSwitch = mallTeamLeader.getProfitSwitch()==null?2:mallTeamLeader.getProfitSwitch(); |
| | | // if(1 == profitSwitch){ |
| | | // BigDecimal bonusPercent =new BigDecimal(mallTeamLeader.getBonusPercent()==null?"0":mallTeamLeader.getBonusPercent()); |
| | | //// DataDictionaryCustom dicBonusPercent = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.BONUS_PERCENT.getType(), DataDictionaryEnum.BONUS_PERCENT.getCode()); |
| | | //// BigDecimal bonusPercent = new BigDecimal(dicBonusPercent.getValue()).setScale(2,BigDecimal.ROUND_DOWN); |
| | | // //生成一条团长提成记录 |
| | | // 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()); |
| | | // mallLeaderAchieve.setOrderItemId(mallOrderItem.getId()); |
| | | // BigDecimal itemAmount = mallOrderItem.getAmount(); |
| | | // mallLeaderAchieve.setAmount(itemAmount); |
| | | // BigDecimal bigDecimal = bonusPercent.multiply(itemAmount).setScale(2, BigDecimal.ROUND_DOWN); |
| | | // mallLeaderAchieve.setProfitAmount(bigDecimal); |
| | | // mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode()); |
| | | // mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE); |
| | | // mallLeaderAchieveMapper.insert(mallLeaderAchieve); |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | mallOrderInfoMapper.updateOrderConfirmStatus(DateUtil.date(),DateUtil.offsetDay(new Date(), -value)); |
| | | } |
| | | } |
| | |
| | | * 修改业绩的状态 |
| | | * 并生成一条提成流水 |
| | | */ |
| | | @Scheduled(cron = "0 0 1 * * ?") |
| | | // @Scheduled(cron = "1 * * * * ?") |
| | | public void leaderAchieveAuto() { |
| | | log.info("团长每日提成"); |
| | | //获取每日提成总数 |
| | | /** |
| | | * a.unique_code uniqueCode 团长特征码 |
| | | * , IFNULL(sum(a.amount),0) amount 每日提成总金额 |
| | | */ |
| | | 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 profitAmount = map.get("profitAmount"); |
| | | |
| | | MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(uniqueCode); |
| | | Integer profitSwitch = mallTeamLeader.getProfitSwitch(); |
| | | if(1 == profitSwitch){ |
| | | //直接舍弃小数点的第三位 |
| | | BigDecimal achieveMoney = new BigDecimal(String.valueOf(profitAmount)).setScale(2,BigDecimal.ROUND_DOWN); |
| | | MallMember mallMember = mallMemberMapper.selectInfoByInviteId(uniqueCode); |
| | | memberWalletService.addBalance(achieveMoney,mallMember.getId()); |
| | | String achieveNo = "TC."+ MallUtils.getOrderNum(); |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | mallMember.getId(), |
| | | achieveMoney, |
| | | MoneyFlowTypeEnum.LEADERACHIEVE.getValue(), |
| | | achieveNo, |
| | | FlowTypeEnum.BALANCE.getValue()); |
| | | |
| | | //更新到已提成状态 |
| | | mallLeaderAchieveMapper.updateByUniqueCodeStateAndTime(DateUtil.date(),uniqueCode,MallLeaderAchieve.STATE_ONE,dateTime); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // @Scheduled(cron = "0 0 1 * * ?") |
| | | //// @Scheduled(cron = "1 * * * * ?") |
| | | // public void leaderAchieveAuto() { |
| | | // log.info("团长每日提成"); |
| | | // //获取每日提成总数 |
| | | // /** |
| | | // * a.unique_code uniqueCode 团长特征码 |
| | | // * , IFNULL(sum(a.amount),0) amount 每日提成总金额 |
| | | // */ |
| | | // 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 profitAmount = map.get("profitAmount"); |
| | | // |
| | | // MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(uniqueCode); |
| | | // Integer profitSwitch = mallTeamLeader.getProfitSwitch(); |
| | | // if(1 == profitSwitch){ |
| | | // //直接舍弃小数点的第三位 |
| | | // BigDecimal achieveMoney = new BigDecimal(String.valueOf(profitAmount)).setScale(2,BigDecimal.ROUND_DOWN); |
| | | // MallMember mallMember = mallMemberMapper.selectInfoByInviteId(uniqueCode); |
| | | // memberWalletService.addBalance(achieveMoney,mallMember.getId()); |
| | | // String achieveNo = "TC."+ MallUtils.getOrderNum(); |
| | | // mallMoneyFlowService.addMoneyFlow( |
| | | // mallMember.getId(), |
| | | // achieveMoney, |
| | | // MoneyFlowTypeEnum.LEADERACHIEVE.getValue(), |
| | | // achieveNo, |
| | | // FlowTypeEnum.BALANCE.getValue()); |
| | | // |
| | | // //更新到已提成状态 |
| | | // 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); |