| | |
| | | import cc.mrbird.febs.mall.entity.*; |
| | | import cc.mrbird.febs.mall.mapper.*; |
| | | import cc.mrbird.febs.mall.service.*; |
| | | import cc.mrbird.febs.mall.vo.ApiLeaderListVo; |
| | | import cc.mrbird.febs.mall.vo.OrderDetailVo; |
| | | import cc.mrbird.febs.mall.vo.OrderListVo; |
| | | import cc.mrbird.febs.mall.vo.OrderRefundVo; |
| | | import cc.mrbird.febs.mall.vo.*; |
| | | import cc.mrbird.febs.pay.model.BrandWCPayRequestData; |
| | | import cc.mrbird.febs.pay.model.OrderStateDto; |
| | | import cc.mrbird.febs.pay.service.IPayService; |
| | |
| | | private final MallElectronicFenceMapper mallElectronicFenceMapper; |
| | | private final MallMemberWalletMapper mallMemberWalletMapper; |
| | | private final MallRollPerkMapper mallRollPerkMapper; |
| | | private final MallMoneyFlowMapper mallMoneyFlowMapper; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | String payResultStr = ""; |
| | | String wxResultStr = ""; |
| | | String amountActualMsg = "0"; |
| | | StringBuffer stringBuffer = new StringBuffer(); |
| | | switch (payOrderDto.getType()) { |
| | | case "1": |
| | | BrandWCPayRequestData brandWCPayRequestData = null; |
| | |
| | | orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue(),"余额支付",2); |
| | | |
| | | amountActualMsg = orderInfo.getAmount().toString(); |
| | | |
| | | stringBuffer.append(orderInfo.getId().toString()); |
| | | stringBuffer.append("@"); |
| | | stringBuffer.append(amountActualMsg); |
| | | agentProducer.sendOrderGetMsg(stringBuffer.toString()); |
| | | break; |
| | | case "3": |
| | | /** |
| | |
| | | mallMoneyFlowService.addMoneyFlow(member.getId(), scoreActual.negate(), |
| | | MoneyFlowTypeEnum.SCORE_PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue(),"积分支付",2); |
| | | } |
| | | |
| | | stringBuffer.append(orderInfo.getId().toString()); |
| | | stringBuffer.append("@"); |
| | | stringBuffer.append(amountActualMsg); |
| | | agentProducer.sendOrderGetMsg(stringBuffer.toString()); |
| | | break; |
| | | case "4": |
| | | MallRollPerk mallRollPerk = mallRollPerkMapper.selectById(payOrderDto.getRollId()); |
| | |
| | | throw new FebsException("兑换券已使用"); |
| | | } |
| | | mallRollPerk.setState(2); |
| | | mallRollPerk.setUpdateTime(DateUtil.date()); |
| | | mallRollPerkMapper.updateById(mallRollPerk); |
| | | payResultStr = orderInfo.getOrderNo(); |
| | | |
| | |
| | | orderInfo.setPayMethod("兑换券支付"); |
| | | orderInfo.setPayTime(new Date()); |
| | | orderInfo.setPayResult("1"); |
| | | |
| | | stringBuffer.append(orderInfo.getId().toString()); |
| | | stringBuffer.append("@"); |
| | | stringBuffer.append(amountActualMsg); |
| | | agentProducer.sendOrderGetMsg(stringBuffer.toString()); |
| | | |
| | | mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.ROLL_PAY.getValue(), |
| | | orderInfo.getOrderNo(), FlowTypeEnum.PRIZE_SCORE.getValue()); |
| | |
| | | BigDecimal balanceThree = mallMemberWalletThree.getBalance(); |
| | | BigDecimal amountThree = orderInfo.getAmount(); |
| | | |
| | | int reduceThree = memberWalletService.reduce(balanceThree, member.getId(), "balance"); |
| | | if (reduceThree == 2) { |
| | | throw new FebsException("余额不足"); |
| | | } |
| | | mallMoneyFlowService.addMoneyFlow(member.getId(), balanceThree.negate(), MoneyFlowTypeEnum.PAY.getValue(), |
| | | orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue(),"余额支付",2); |
| | | // int reduceThree = memberWalletService.reduce(balanceThree, member.getId(), "balance"); |
| | | // if (reduceThree == 2) { |
| | | // throw new FebsException("余额不足"); |
| | | // } |
| | | // mallMoneyFlowService.addMoneyFlow(member.getId(), balanceThree.negate(), MoneyFlowTypeEnum.PAY.getValue(), |
| | | // orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue(),"余额支付",2); |
| | | |
| | | //实际支付余额 |
| | | BigDecimal amountActualThree = amountThree.subtract(balanceThree).setScale(2, BigDecimal.ROUND_DOWN); |
| | |
| | | wxResultStr = JSONUtil.toJsonStr(brandWCPayRequestDataThree); |
| | | payResultStr = brandWCPayRequestDataThree.getPrepay_id(); |
| | | orderInfo.setPayMethod("余额加微信"); |
| | | orderInfo.setAmount(amountThree); |
| | | amountActualMsg = amountThree.toString(); |
| | | |
| | | stringBuffer.append(orderInfo.getId().toString()); |
| | | stringBuffer.append("@"); |
| | | stringBuffer.append(amountActualMsg); |
| | | agentProducer.sendOrderGetMsg(stringBuffer.toString()); |
| | | break; |
| | | /** |
| | | * 积分加余额 |
| | |
| | | mallMoneyFlowService.addMoneyFlow(member.getId(), amountActualOne.negate(), MoneyFlowTypeEnum.PAY.getValue(), |
| | | orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue(),"余额支付",2); |
| | | amountActualMsg = amountActualOne.toString(); |
| | | |
| | | stringBuffer.append(orderInfo.getId().toString()); |
| | | stringBuffer.append("@"); |
| | | stringBuffer.append(amountActualMsg); |
| | | agentProducer.sendOrderGetMsg(stringBuffer.toString()); |
| | | |
| | | orderInfo.setPayMethod("积分加余额"); |
| | | mallMoneyFlowService.addMoneyFlow(member.getId(), scoreOne.negate(), |
| | |
| | | payResultStr = brandWCPayRequestDataTwo.getPrepay_id(); |
| | | orderInfo.setPayMethod("积分加微信"); |
| | | amountActualMsg = amountActualTwo.toString(); |
| | | |
| | | |
| | | stringBuffer.append(orderInfo.getId().toString()); |
| | | stringBuffer.append("@"); |
| | | stringBuffer.append(amountActualMsg); |
| | | agentProducer.sendOrderGetMsg(stringBuffer.toString()); |
| | | break; |
| | | default: |
| | | throw new FebsException("请选择正确的支付方式"); |
| | |
| | | String takeCode = ShareCodeUtil.toSerialCode(orderInfo.getId()); |
| | | orderInfo.setTakeCode(takeCode); |
| | | this.baseMapper.updateById(orderInfo); |
| | | StringBuffer stringBuffer = new StringBuffer(); |
| | | stringBuffer.append(orderInfo.getId().toString()); |
| | | stringBuffer.append("@"); |
| | | stringBuffer.append(amountActualMsg); |
| | | agentProducer.sendOrderGetMsg(stringBuffer.toString()); |
| | | // StringBuffer stringBuffer = new StringBuffer(); |
| | | // stringBuffer.append(orderInfo.getId().toString()); |
| | | // stringBuffer.append("@"); |
| | | // stringBuffer.append(amountActualMsg); |
| | | // agentProducer.sendOrderGetMsg(stringBuffer.toString()); |
| | | agentProducer.sendRollSendMsg(orderInfo.getId()); |
| | | |
| | | // OrderStateDto orderStateDto = new OrderStateDto(); |
| | |
| | | long remainTime = DateUtil.between(new Date(), endTime, DateUnit.SECOND, false); |
| | | orderDetailVo.setRemainTime(remainTime); |
| | | } |
| | | String orderNo = orderInfo.getOrderNo(); |
| | | List<MoneyFlowVo> moneyFlowVos = mallMoneyFlowMapper.selectMoneyFlowByOrderNo(orderNo,orderInfo.getMemberId()); |
| | | orderDetailVo.setMoneyFlowVos(moneyFlowVos); |
| | | return orderDetailVo; |
| | | } |
| | | |
| | |
| | | orderInfo.setReceivingTime(new Date()); |
| | | this.baseMapper.updateById(orderInfo); |
| | | |
| | | //生成一条团长提成记录 |
| | | // Long orderInfoId = orderInfo.getId(); |
| | | // List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfoId); |
| | | // if(CollUtil.isNotEmpty(mallOrderItemList)){ |
| | | // |
| | | // MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(orderInfo.getTakeUniqueCode()); |
| | | // Integer profitSwitch = mallTeamLeader.getProfitSwitch()==null?2:mallTeamLeader.getProfitSwitch(); |
| | | // BigDecimal bonusPercent =new BigDecimal(mallTeamLeader.getBonusPercent()==null?"0":mallTeamLeader.getBonusPercent()); |
| | | // |
| | | // if(1 == profitSwitch){ |
| | | // 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); |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | //是否返利 |
| | | if(ObjectUtil.isNotEmpty(member.getReferrerId())){ |
| | | String referrerId = member.getReferrerId(); |
| | | MallMember mallMemberParent = memberMapper.selectInfoByInviteId(referrerId); |
| | | Long parentId = mallMemberParent.getId(); |
| | | String orderNo = orderInfo.getOrderNo(); |
| | | MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOneByOrderNoAndMemberIdAndRtMemberId(orderNo, member.getId(), parentId); |
| | | mallMoneyFlow.setStatus(2); |
| | | mallMoneyFlow.setIsReturn(1); |
| | | mallMoneyFlowMapper.updateById(mallMoneyFlow); |
| | | memberWalletService.add(mallMoneyFlow.getAmount(), parentId, "balance"); |
| | | } |
| | | List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfo.getId()); |
| | | if(CollUtil.isNotEmpty(mallOrderItemList)){ |
| | | 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(member.getId()); |
| | | mallRollPerk.setState(1); |
| | | mallRollPerk.setRollId(mallGoods.getLevelThreePrice().longValue()); |
| | | mallRollPerkMapper.insert(mallRollPerk); |
| | | } |
| | | //赠送积分 |
| | | BigDecimal levelOnePrice = mallGoods.getLevelOnePrice(); |
| | | if(BigDecimal.ZERO.compareTo(levelOnePrice) <= 0){ |
| | | memberWalletService.add(levelOnePrice, member.getId(), "score"); |
| | | |
| | | mallMoneyFlowService.addMoneyFlow(member.getId(), levelOnePrice, MoneyFlowTypeEnum.STATIC_BONUS.getValue(), |
| | | orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue(),"赠送积分",2); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |