| | |
| | | changeWallet(orderInfo.getId()); |
| | | //发送补贴消息 |
| | | agentProducer.sendPerkMoneyMsg(orderInfo.getId()); |
| | | // agentProducer.sendOrderReturn(orderInfo.getId()); |
| | | //发送代理自动升级消息 |
| | | agentProducer.sendAutoLevelUpMsg(member.getId()); |
| | | break; |
| | | case "4": |
| | | if (orderInfo.getOrderType() != 2) { |
| | |
| | | * 增加贡献值,增加流水 |
| | | */ |
| | | if (starSum.compareTo(BigDecimal.ZERO) > 0) { |
| | | mallMemberWalletMapper.addStarByMemberId(starSum.intValue(), memberId); |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | memberId, |
| | | starSum, |
| | | MoneyFlowTypeEnum.STAR.getValue(), |
| | | orderInfo.getOrderNo(), |
| | | FlowTypeEnum.STAR.getValue()); |
| | | //系统设置的个人贡献点最大值 |
| | | DataDictionaryCustom starGetDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.STAR_GET.getType(), |
| | | DataDictionaryEnum.STAR_GET.getCode()); |
| | | if(ObjectUtil.isNotEmpty(starGetDic)){ |
| | | String starGetStr = StrUtil.isEmpty(starGetDic.getValue()) ? "0" : starGetDic.getValue(); |
| | | BigDecimal starGet = new BigDecimal(starGetStr); |
| | | |
| | | MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); |
| | | BigDecimal star = new BigDecimal(mallMemberWallet.getStar()); |
| | | if(starGet.compareTo(star.add(starSum)) < 0){ |
| | | if(starGet.compareTo(star) > 0){ |
| | | BigDecimal subtract = starGet.subtract(star); |
| | | if(subtract.compareTo(starSum) < 0){ |
| | | starSum = subtract; |
| | | } |
| | | mallMemberWalletMapper.addStarByMemberId(starSum.intValue(), memberId); |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | memberId, |
| | | starSum, |
| | | MoneyFlowTypeEnum.STAR.getValue(), |
| | | orderInfo.getOrderNo(), |
| | | FlowTypeEnum.STAR.getValue()); |
| | | } |
| | | }else{ |
| | | mallMemberWalletMapper.addStarByMemberId(starSum.intValue(), memberId); |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | memberId, |
| | | starSum, |
| | | MoneyFlowTypeEnum.STAR.getValue(), |
| | | orderInfo.getOrderNo(), |
| | | FlowTypeEnum.STAR.getValue()); |
| | | } |
| | | } |
| | | } |
| | | /** |
| | | * 增加补贴额度 |
| | |
| | | } |
| | | |
| | | @Override |
| | | public boolean judgeCreateOrder(AddOrderDto addOrderDto) { |
| | | boolean flag = false; |
| | | |
| | | public FebsResponse judgeCreateOrder(AddOrderDto addOrderDto) { |
| | | Long memberId = LoginUserUtil.getLoginUser().getId(); |
| | | if (CollUtil.isEmpty(addOrderDto.getItems())) { |
| | | return false; |
| | | throw new FebsException("请选择购买商品"); |
| | | } |
| | | |
| | | boolean hasTc = false; |
| | | BigDecimal total = BigDecimal.ZERO; |
| | | for (AddOrderItemDto item : addOrderDto.getItems()) { |
| | | MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(item.getSkuId()); |
| | | MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId()); |
| | | /** |
| | | * 贡献点判断 |
| | | */ |
| | | if (mallGoods.getIsNormal() == 2) { |
| | | hasTc = true; |
| | | } |
| | | BigDecimal amount = sku.getPresentPrice().multiply(BigDecimal.valueOf(item.getCnt())); |
| | | total = total.add(amount); |
| | | } |
| | | if(hasTc){ |
| | | //系统设置的个人贡献点最大值 |
| | | DataDictionaryCustom starGetDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.STAR_GET.getType(), |
| | | DataDictionaryEnum.STAR_GET.getCode()); |
| | | if(ObjectUtil.isNotEmpty(starGetDic)){ |
| | | String starGetStr = StrUtil.isEmpty(starGetDic.getValue()) ? "0" : starGetDic.getValue(); |
| | | BigDecimal starGet = new BigDecimal(starGetStr); |
| | | |
| | | MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); |
| | | BigDecimal star = new BigDecimal(mallMemberWallet.getStar()); |
| | | if(starGet.compareTo(star) <= 0){ |
| | | throw new FebsException("无法购买套餐"); |
| | | } |
| | | } |
| | | } |
| | | /** |
| | | * 使用积分折扣现金 |
| | |
| | | if(ObjectUtil.isNotEmpty(scoreChangeDic)){ |
| | | scoreChange = new BigDecimal(scoreChangeDic.getValue()).abs().setScale(2,BigDecimal.ROUND_DOWN); |
| | | } |
| | | scorePercentMaxAmount = scorePercentMaxAmount.multiply(scoreChange); |
| | | scorePercentMaxAmount = scorePercentMaxAmount.multiply(scoreChange).setScale(2,BigDecimal.ROUND_DOWN); |
| | | if(scorePercentMaxAmount.compareTo(score) < 0){ |
| | | flag = false; |
| | | }else{ |
| | | flag = true; |
| | | throw new FebsException("最多可使用"+scorePercentMaxAmount+"积分"); |
| | | } |
| | | }else{ |
| | | flag = true; |
| | | } |
| | | return flag; |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |