| | |
| | | import cc.mrbird.febs.pay.service.IXcxPayService; |
| | | import cc.mrbird.febs.pay.util.WeixinServiceUtil; |
| | | import cc.mrbird.febs.rabbit.producter.AgentProducer; |
| | | import cc.mrbird.febs.vip.service.IMallVipConfigBenefitsService; |
| | | import cc.mrbird.febs.vip.service.IMallVipConfigService; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.date.DateUnit; |
| | | import cn.hutool.core.date.DateUtil; |
| | |
| | | private final MallElectronicFenceMapper mallElectronicFenceMapper; |
| | | private final MallMemberCouponMapper mallMemberCouponMapper; |
| | | private final MallGoodsCouponMapper mallGoodsCouponMapper; |
| | | private final CouponGoodsMapper couponGoodsMapper; |
| | | |
| | | private final IMallVipConfigService mallVipConfigService; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | orderItem.setSkuImage(mallGoods.getThumb()); |
| | | orderItem.setState(1); |
| | | |
| | | if (addOrderDto.getType() == 1) { |
| | | mallShoppingCartMapper.delBySkuId(mallGoods.getId(), member.getId()); |
| | | } |
| | | total = total.add(amount); |
| | | } else { |
| | | MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(item.getSkuId()); |
| | |
| | | if(1 != state){ |
| | | throw new FebsException(mallMemberCoupon.getCouponName()+"无法使用"); |
| | | } |
| | | Long goodsId = mallMemberCoupon.getGoodsId(); |
| | | if(goodsId != sku.getGoodsId()){ |
| | | throw new FebsException(sku.getGoodsName()+"无法使用"+mallMemberCoupon.getCouponName()); |
| | | } |
| | | //卷是否和商品绑定 |
| | | Long skuGoodsId = sku.getGoodsId(); |
| | | Long couponId = mallMemberCoupon.getCouponId(); |
| | | MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(mallMemberCoupon.getCouponId()); |
| | | if(ObjectUtil.isEmpty(mallGoodsCoupon)){ |
| | | throw new FebsException(mallGoodsCoupon.getName()+"无法使用"); |
| | |
| | | if(2 != stateCoupon){ |
| | | throw new FebsException(mallGoodsCoupon.getName()+"无法使用"); |
| | | } |
| | | List<CouponGoods> couponGoods = couponGoodsMapper.selectByGoodIdAndCouponId(skuGoodsId, couponId); |
| | | if(ObjectUtil.isEmpty(couponGoods)){ |
| | | throw new FebsException(sku.getGoodsName()+"无法使用"+mallMemberCoupon.getCouponName()); |
| | | } |
| | | // Long goodsId = mallMemberCoupon.getGoodsId(); |
| | | // if(goodsId != sku.getGoodsId()){ |
| | | // throw new FebsException(sku.getGoodsName()+"无法使用"+mallMemberCoupon.getCouponName()); |
| | | // } |
| | | BigDecimal costAmount = mallGoodsCoupon.getCostAmount(); |
| | | BigDecimal realAmount = mallGoodsCoupon.getRealAmount(); |
| | | if(amount.compareTo(costAmount) >= 0){ |
| | | amount = (amount.subtract(realAmount).compareTo(BigDecimal.ZERO) > 0 ? amount.subtract(realAmount) : BigDecimal.ZERO); |
| | | Integer type = mallGoodsCoupon.getType(); |
| | | if(MallGoodsCoupon.TYPE_TWO == type){ |
| | | BigDecimal divideTime = amount.divide(costAmount, 0, BigDecimal.ROUND_DOWN);//累计减免次数 |
| | | BigDecimal multiply = divideTime.multiply(realAmount);//实际减免金额 |
| | | amount = (amount.subtract(multiply).compareTo(BigDecimal.ZERO) > 0 ? amount.subtract(multiply) : BigDecimal.ZERO); |
| | | } |
| | | if(MallGoodsCoupon.TYPE_ONE == type){ |
| | | amount = (amount.subtract(realAmount).compareTo(BigDecimal.ZERO) > 0 ? amount.subtract(realAmount) : BigDecimal.ZERO); |
| | | } |
| | | orderItem.setMemberCouponId(memberCouponId); |
| | | mallMemberCoupon.setState(2); |
| | | mallMemberCouponMapper.updateById(mallMemberCoupon); |
| | | } |
| | | } |
| | | orderItem.setAmount(amount); |
| | |
| | | orderItem.setGoodsName(sku.getGoodsName()); |
| | | orderItem.setSkuId(sku.getId()); |
| | | orderItem.setState(1); |
| | | if(ObjectUtil.isNotEmpty(member.getReferrerId())){ |
| | | orderItem.setMemberInviteId(member.getReferrerId()); |
| | | } |
| | | if(ObjectUtil.isNotEmpty(addOrderDto.getMemberInviteId())){ |
| | | orderItem.setMemberInviteId(addOrderDto.getMemberInviteId()); |
| | | } |
| | | |
| | | orderItem.setStyleName(sku.getStyleName()); |
| | | orderItem.setSkuName(sku.getSkuName()); |
| | | orderItem.setSkuImage(sku.getSkuImage()); |
| | |
| | | return orderInfo.getId(); |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | BigDecimal bigDecimal = new BigDecimal(980); |
| | | BigDecimal divide = bigDecimal.divide(new BigDecimal(100), 0, BigDecimal.ROUND_DOWN); |
| | | System.out.println(divide); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | |
| | | orderInfo.setCancelType(MallOrderInfo.CANCEL_BY_SELF); |
| | | this.baseMapper.updateById(orderInfo); |
| | | |
| | | if (orderInfo.getOrderType() == 2) { |
| | | |
| | | mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount(), MoneyFlowTypeEnum.REFUND.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.PRIZE_SCORE.getValue()); |
| | | memberWalletService.add(orderInfo.getAmount(), member.getId(), "prizeScore"); |
| | | return; |
| | | } |
| | | |
| | | List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfo.getId()); |
| | | if(CollUtil.isNotEmpty(mallOrderItemList)){ |
| | |
| | | Integer skuResult = mallGoodsSkuMapper.updateStockAndVolumeBySkuId(sku.getId(),mallOrderItem.getCnt()); |
| | | if(1 != skuResult){ |
| | | throw new FebsException(sku.getSkuName() + "库存不足"); |
| | | } |
| | | Long memberCouponId = mallOrderItem.getMemberCouponId(); |
| | | MallMemberCoupon mallMemberCoupon = mallMemberCouponMapper.selectById(memberCouponId); |
| | | if(ObjectUtil.isNotEmpty(mallMemberCoupon)){ |
| | | mallMemberCoupon.setState(1); |
| | | mallMemberCouponMapper.updateById(mallMemberCoupon); |
| | | } |
| | | } |
| | | } |
| | |
| | | mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue(),"余额支付",2); |
| | | |
| | | agentProducer.sendOrderCoupon(orderInfo.getId()); |
| | | agentProducer.sendGetScoreMsg(orderInfo.getId()); |
| | | break; |
| | | case "4": |
| | | if (orderInfo.getOrderType() != 2) { |
| | |
| | | } |
| | | |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | System.out.print(AgentLevelEnum.ZERO_LEVEL.name()); |
| | | } |
| | | |
| | | } |