From df3f042b2c1675b346cb3fa7e26cb261dfb62c1e Mon Sep 17 00:00:00 2001 From: axindata <1851789500@qq.com> Date: Tue, 18 Feb 2025 13:58:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=AF=E5=88=86=E4=B8=93=E5=8C=BA=E7=9A=84?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../buy507/mall/mapper/PmsProductMapper.java | 8 +- .../buy507/mall/mapper/PmsProductMapper.xml | 10 + .../impl/OmsPortalOrderServiceImpl.java | 623 +++++++++--------- 3 files changed, 345 insertions(+), 296 deletions(-) diff --git a/mall-dao/src/main/java/com/buy507/mall/mapper/PmsProductMapper.java b/mall-dao/src/main/java/com/buy507/mall/mapper/PmsProductMapper.java index 180c192..d86dc19 100644 --- a/mall-dao/src/main/java/com/buy507/mall/mapper/PmsProductMapper.java +++ b/mall-dao/src/main/java/com/buy507/mall/mapper/PmsProductMapper.java @@ -37,6 +37,10 @@ public interface PmsProductMapper { int updateByPrimaryKey(PmsProduct record); PmsProduct getProductInfoById(Long id); - - + + PmsProduct getProductByOrderSn(String orderSn); + + + + } \ No newline at end of file diff --git a/mall-dao/src/main/resources/com/buy507/mall/mapper/PmsProductMapper.xml b/mall-dao/src/main/resources/com/buy507/mall/mapper/PmsProductMapper.xml index 5d3559e..1f1b926 100644 --- a/mall-dao/src/main/resources/com/buy507/mall/mapper/PmsProductMapper.xml +++ b/mall-dao/src/main/resources/com/buy507/mall/mapper/PmsProductMapper.xml @@ -921,4 +921,14 @@ where ppfr.product_id=#{id,jdbcType=BIGINT} limit 1 + \ No newline at end of file diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/OmsPortalOrderServiceImpl.java b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/OmsPortalOrderServiceImpl.java index 7b99908..e198271 100644 --- a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/OmsPortalOrderServiceImpl.java +++ b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/OmsPortalOrderServiceImpl.java @@ -308,136 +308,148 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { } - @Override - public OrderResult getMemberOrderDetailInfo(Long orderId) { - UmsMember loginMember = memberService.getCurrentMember(); + @Override + public OrderResult getMemberOrderDetailInfo(Long orderId) { + UmsMember loginMember = memberService.getCurrentMember(); - OrderResult orderResult = new OrderResult(); - OmsOrder order = orderMapper.selectByPrimaryKey(orderId); - //删除状态:0->未删除;1->已删除 - if (order != null && order.getMemberId().equals(loginMember.getId()) && order.getDeleteStatus() == 0) { - orderResult.setOrderId(order.getId()); - orderResult.setOrderSn(order.getOrderSn()); - orderResult.setCreateTime(order.getCreateTime()); - orderResult.setPayAmount(order.getPayAmount()); - orderResult.setOrderStatus(order.getStatus()); - orderResult.setDeliveryType(order.getDeliveryType()); - if (order.getStatus() == 0) { - orderResult.setOrderStatusName("待付款"); - if (order.getPayType() != null && order.getPayType() == 3) { - orderResult.setOrderStatusName("已付款待审核"); - } - } - if (order.getStatus() == 1) { - orderResult.setOrderStatusName("待发货"); - } - if (order.getStatus() == 2) { - // 提货方式:0->自提;1->物流 - if (order.getDeliveryType() == 0) { - orderResult.setOrderStatusName("待提货"); - } else { - orderResult.setOrderStatusName("待收货"); - } - } - if (order.getStatus() == 3) { - orderResult.setOrderStatusName("交易完成"); - if (order.getCommentTime() == null) { - orderResult.setCommentStatus(0); //未评价 - } else { - orderResult.setCommentStatus(1); //已评价 - } - } - if (order.getStatus() == 4) { - orderResult.setOrderStatusName("交易关闭"); - orderResult.setOrderStatus(4); - } + OrderResult orderResult = new OrderResult(); + OmsOrder order = orderMapper.selectByPrimaryKey(orderId); + //删除状态:0->未删除;1->已删除 + if(order != null && order.getMemberId().equals(loginMember.getId()) && order.getDeleteStatus() == 0) { + orderResult.setOrderId(order.getId()); + orderResult.setOrderSn(order.getOrderSn()); + orderResult.setCreateTime(order.getCreateTime()); + orderResult.setPayAmount(order.getPayAmount()); + orderResult.setOrderStatus(order.getStatus()); + orderResult.setDeliveryType(order.getDeliveryType()); + if(order.getStatus() == 0) { + orderResult.setOrderStatusName("待付款"); + if(order.getPayType() != null && order.getPayType() == 3) { + orderResult.setOrderStatusName("已付款待审核"); + } + } + if(order.getStatus() == 1) { + orderResult.setOrderStatusName("待发货"); + } + if(order.getStatus() == 2) { + // 提货方式:0->自提;1->物流 + if(order.getDeliveryType() == 0) { + orderResult.setOrderStatusName("待提货"); + } else { + orderResult.setOrderStatusName("待收货"); + } + } + if(order.getStatus() == 3) { + orderResult.setOrderStatusName("交易完成"); + if(order.getCommentTime() == null) { + orderResult.setCommentStatus(0); //未评价 + } else { + orderResult.setCommentStatus(1); //已评价 + } + } + if(order.getStatus() == 4) { + orderResult.setOrderStatusName("交易关闭"); + orderResult.setOrderStatus(4); + } - orderResult.setFreightAmount(order.getFreightAmount()); - orderResult.setNote(order.getNote()); - orderResult.setDeliveryCompany(order.getDeliveryCompany()); - orderResult.setDeliverySn(order.getDeliverySn()); - orderResult.setPaymentTime(order.getPaymentTime()); - //支付类型: 0->未支付;1->支付宝;2->微信; 3->线下支付; 4->积分支付 - if (order.getPayType() != null) { - orderResult.setPayType(order.getPayType()); - if (order.getPayType() == 0) { - orderResult.setPayTypeName("未支付"); - } else if (order.getPayType() == 1) { - orderResult.setPayTypeName("支付宝支付"); - } else if (order.getPayType() == 2) { - orderResult.setPayTypeName("微信支付"); - } else if (order.getPayType() == 3) { //mcoo todo - orderResult.setPayTypeName("线下支付"); - DmsOfflinePaymentRecord paymentRecord = offlinePaymentRecordMapper.selectOneByOrderId(orderId); - DmsSellerBankAccount bankAccount = sellerBankAccountMapper.selectOneById(paymentRecord.getSellerBankAccountId()); - OfflinePaymentRecordResult recordResult = new OfflinePaymentRecordResult(); - BeanUtils.copyProperties(paymentRecord, recordResult); - BeanUtils.copyProperties(bankAccount, recordResult); + orderResult.setFreightAmount(order.getFreightAmount()); + orderResult.setNote(order.getNote()); + orderResult.setDeliveryCompany(order.getDeliveryCompany()); + orderResult.setDeliverySn(order.getDeliverySn()); + orderResult.setPaymentTime(order.getPaymentTime()); - if (recordResult.getConfirmStatus() == 1) { - recordResult.setConfirmStatusName("已审核"); - } else { - recordResult.setConfirmStatusName("未审核"); - } - orderResult.setPaymentRecord(recordResult); - } else { - orderResult.setPayTypeName("积分支付"); - } - } else { - orderResult.setPayType(0); - orderResult.setPayTypeName("未支付"); - } + // 获取商品信息,判断是否是积分专区商品 + PmsProduct product = productMapper.getProductByOrderSn((order.getOrderSn())); + boolean isPointsExchangeStatus = product != null && product.getPointsExchangeStatus() == 1; - orderResult.setDeliveryTime(order.getDeliveryTime()); - orderResult.setReceiveTime(order.getReceiveTime()); - orderResult.setCommentTime(order.getCommentTime()); + //支付类型: 0->未支付;1->支付宝;2->微信; 3->线下支付; 4->积分支付 + //判断是否为积分专区商品 + if(isPointsExchangeStatus) { + orderResult.setPayType(4); // 设置为积分支付 + orderResult.setPayTypeName("积分支付"); + }else { + // 如果不是积分兑换专区商品,则继续使用其他支付方式 + if (order.getPayType() != null) { + orderResult.setPayType(order.getPayType()); + if (order.getPayType() == 0) { + orderResult.setPayTypeName("未支付"); + } else if (order.getPayType() == 1) { + orderResult.setPayTypeName("支付宝支付"); + } else if (order.getPayType() == 2) { + orderResult.setPayTypeName("微信支付"); + } else if (order.getPayType() == 3) { //mcoo todo + orderResult.setPayTypeName("线下支付"); + DmsOfflinePaymentRecord paymentRecord = offlinePaymentRecordMapper.selectOneByOrderId(orderId); + DmsSellerBankAccount bankAccount = sellerBankAccountMapper.selectOneById(paymentRecord.getSellerBankAccountId()); + OfflinePaymentRecordResult recordResult = new OfflinePaymentRecordResult(); + BeanUtils.copyProperties(paymentRecord, recordResult); + BeanUtils.copyProperties(bankAccount, recordResult); - //0->不开发票;1->电子发票;2->纸质发票 - if (order.getBillType() != null) { - orderResult.setBillType(order.getBillType()); - if (order.getBillType() == 1) { - orderResult.setBillTypeName("电子发票"); - } else if (order.getBillType() == 2) { - orderResult.setBillTypeName("纸质发票"); - } else { - orderResult.setBillTypeName("不开发票"); - } - } else { - orderResult.setBillType(0); - orderResult.setBillTypeName("不开发票"); - } + if (recordResult.getConfirmStatus() == 1) { + recordResult.setConfirmStatusName("已审核"); + } else { + recordResult.setConfirmStatusName("未审核"); + } + orderResult.setPaymentRecord(recordResult); + } else { + orderResult.setPayTypeName("积分支付"); + } + } else { + orderResult.setPayType(0); + orderResult.setPayTypeName("未支付"); + } + } - orderResult.setBillHeader(order.getBillHeader()); - orderResult.setBillContent(order.getBillContent()); - orderResult.setReceiverName(order.getReceiverName()); - orderResult.setReceiverPhone(order.getReceiverPhone()); - orderResult.setReceiverProvince(order.getReceiverProvince()); - orderResult.setReceiverCity(order.getReceiverCity()); - orderResult.setReceiverRegion(order.getReceiverRegion()); - orderResult.setReceiverDetailAddress(order.getReceiverDetailAddress()); + orderResult.setDeliveryTime(order.getDeliveryTime()); + orderResult.setReceiveTime(order.getReceiveTime()); + orderResult.setCommentTime(order.getCommentTime()); - OmsOrderItemExample example = new OmsOrderItemExample(); - example.createCriteria().andOrderIdEqualTo(orderId); - List orderItemList = orderItemMapper.selectByExample(example); + //0->不开发票;1->电子发票;2->纸质发票 + if(order.getBillType() != null) { + orderResult.setBillType(order.getBillType()); + if(order.getBillType() == 1) { + orderResult.setBillTypeName("电子发票"); + } else if(order.getBillType() == 2) { + orderResult.setBillTypeName("纸质发票"); + } else { + orderResult.setBillTypeName("不开发票"); + } + } else { + orderResult.setBillType(0); + orderResult.setBillTypeName("不开发票"); + } - OrderItemResult orderItemResult = null; - orderResult.setProductsNum(orderItemList.size()); - List orderItemResultList = new ArrayList<>(); - for (OmsOrderItem orderItem : orderItemList) { - orderItemResult = new OrderItemResult(); - orderItemResult.setOrderId(order.getId()); - orderItemResult.setOrderSn(order.getOrderSn()); - orderItemResult.setProductBrand(orderItem.getProductBrand()); - orderItemResult.setProductId(orderItem.getProductId()); - orderItemResult.setProductName(orderItem.getProductName()); - orderItemResult.setProductPic(orderItem.getProductPic()); - orderItemResult.setProductPrice(orderItem.getProductPrice()); - orderItemResult.setProductQuantity(orderItem.getProductQuantity()); - orderItemResult.setSp1(orderItem.getSp1()); - orderItemResult.setSp2(orderItem.getSp2()); - orderItemResult.setSp3(orderItem.getSp3()); - orderItemResultList.add(orderItemResult); - } + orderResult.setBillHeader(order.getBillHeader()); + orderResult.setBillContent(order.getBillContent()); + orderResult.setReceiverName(order.getReceiverName()); + orderResult.setReceiverPhone(order.getReceiverPhone()); + orderResult.setReceiverProvince(order.getReceiverProvince()); + orderResult.setReceiverCity(order.getReceiverCity()); + orderResult.setReceiverRegion(order.getReceiverRegion()); + orderResult.setReceiverDetailAddress(order.getReceiverDetailAddress()); + + OmsOrderItemExample example = new OmsOrderItemExample(); + example.createCriteria().andOrderIdEqualTo(orderId); + List orderItemList = orderItemMapper.selectByExample(example); + + OrderItemResult orderItemResult = null; + orderResult.setProductsNum(orderItemList.size()); + List orderItemResultList = new ArrayList<>(); + for(OmsOrderItem orderItem : orderItemList) { + orderItemResult = new OrderItemResult(); + orderItemResult.setOrderId(order.getId()); + orderItemResult.setOrderSn(order.getOrderSn()); + orderItemResult.setProductBrand(orderItem.getProductBrand()); + orderItemResult.setProductId(orderItem.getProductId()); + orderItemResult.setProductName(orderItem.getProductName()); + orderItemResult.setProductPic(orderItem.getProductPic()); + orderItemResult.setProductPrice(orderItem.getProductPrice()); + orderItemResult.setProductQuantity(orderItem.getProductQuantity()); + orderItemResult.setSp1(orderItem.getSp1()); + orderItemResult.setSp2(orderItem.getSp2()); + orderItemResult.setSp3(orderItem.getSp3()); + orderItemResultList.add(orderItemResult); + } orderResult.setOrderItem(orderItemResultList); @@ -702,220 +714,243 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { /** * 直接购买,根据提交信息生成订单 */ - @Transactional - @Override - /** - * 创建订单 - */ - public CommonResult createOrder(OrderParam orderParam) { - //orderParam.setSkuId(98L); - if (orderParam.getSkuId() == null) { - return CommonResult.validateFailed("商品SKU不能为空"); - } + @Transactional(rollbackFor = Exception.class) + @Override + /** + * 创建订单 + */ + public CommonResult createOrder(OrderParam orderParam) { + //orderParam.setSkuId(98L); + if(orderParam.getSkuId() == null) { + return CommonResult.validateFailed("商品SKU不能为空"); + } - if (orderParam.getDeliveryType() == null || (orderParam.getDeliveryType() != 0 && orderParam.getDeliveryType() != 1)) { - return CommonResult.validateFailed("提货方式不能为空"); - } + if(orderParam.getDeliveryType() == null || (orderParam.getDeliveryType() != 0 && orderParam.getDeliveryType() != 1) ) { + return CommonResult.validateFailed("提货方式不能为空"); + } - if (orderParam.getMemberReceiveAddressId() == null) { - return CommonResult.validateFailed("会员收货地址不能为空"); - } + if(orderParam.getMemberReceiveAddressId() == null) { + return CommonResult.validateFailed("会员收货地址不能为空"); + } - UmsMemberReceiveAddress address = memberReceiveAddressMapper.selectOneById(orderParam.getMemberReceiveAddressId()); - if (address == null) { - return CommonResult.validateFailed("未查询到会员收货地址"); - } - if (orderParam.getQuantity() == null) { - return CommonResult.validateFailed("商品数量不能为空"); - } - if (orderParam.getQuantity() <= 0) { - return CommonResult.validateFailed("商品数量错误"); - } - PmsSkuStock skuStock = skuStockMapper.selectByPrimaryKey(orderParam.getSkuId()); - if (skuStock == null) { - return CommonResult.validateFailed("未查询到商品信息"); + UmsMemberReceiveAddress address = memberReceiveAddressMapper.selectOneById(orderParam.getMemberReceiveAddressId()); + if(address == null) { + return CommonResult.validateFailed("未查询到会员收货地址"); } + if(orderParam.getQuantity() == null) { + return CommonResult.validateFailed("商品数量不能为空"); + } + if(orderParam.getQuantity() <= 0) { + return CommonResult.validateFailed("商品数量错误"); + } + PmsSkuStock skuStock = skuStockMapper.selectByPrimaryKey(orderParam.getSkuId()); + if(skuStock == null) { + return CommonResult.validateFailed("未查询到商品信息"); + } - //判断商品是否都有库存 (库存 - 锁定库存 = 真实库存) + PmsProduct product = new PmsProduct(); + + // 判断商品是否属于积分兑换区 + boolean isPointsExchangeStatus = product.getPointsExchangeStatus() == 1; + + //判断商品是否都有库存 (库存 - 锁定库存 = 真实库存) if ((skuStock.getStock() - skuStock.getLockStock()) < orderParam.getQuantity()) { return CommonResult.validateFailed("库存不足,无法下单"); } - //根据商品id查询商品信息 - PmsProduct product = productMapper.selectByPrimaryKey(skuStock.getProductId()); - Map result = new HashMap<>(); - if (product != null) { + Map result = new HashMap<>(); + if(product != null) { - UmsMember member = memberMapper.selectByPrimaryKey(memberService.getCurrentMember().getId()); + UmsMember member = memberMapper.selectByPrimaryKey(memberService.getCurrentMember().getId()); - BigDecimal discount = commonService.getDiscount(member.getId()); - BigDecimal price = new BigDecimal(skuStock.getPrice().doubleValue()); - if (discount != null) { - price = skuStock.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP); - } + BigDecimal discount = commonService.getDiscount(member.getId()); + BigDecimal price = new BigDecimal(skuStock.getPrice().doubleValue()); + if(discount != null) { + price = skuStock.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP); + } - BigDecimal totalAmount = new BigDecimal(0); - BigDecimal zero = new BigDecimal(0); - totalAmount = price.multiply(new BigDecimal(orderParam.getQuantity())); + BigDecimal totalAmount = new BigDecimal(0); + BigDecimal zero = new BigDecimal(0); + totalAmount = price.multiply(new BigDecimal(orderParam.getQuantity())); - if (orderParam.getIntegration() == null) { - orderParam.setIntegration(zero); - } + // 如果是积分兑换区商品 + if (isPointsExchangeStatus) { + // 直接使用积分支付,不进行实际支付金额的处理 + BigDecimal integrationAmount = totalAmount; + // 确保会员有足够的积分 + if (member.getIntegration() < integrationAmount.intValue()) { + return CommonResult.validateFailed("积分不足,无法兑换"); + } - //先判断积分是否大于0,大于0表示使用了积分支付 - //flag 等于1表示使用积分支付 判断用户积分是否充足 - //flag = -1,表示integration小于0;flag = 0,表示integration等于0;flag = 1,表示integration大于0; - //int integerationFlag = orderParam.getIntegration().compareTo(new BigDecimal(0)); //mcoo - int integerationFlag = 0; - if (integerationFlag == 1) { - int flag = member.getBalance().compareTo(orderParam.getIntegration()); - //flag = -1,表示balance小于integration;flag = 0,表示balance等于integration;flag = 1,表示balance大于integration; + // 冻结会员积分 + member.setIntegration(member.getIntegration() - integrationAmount.intValue()); // 扣除积分 + member.setFreeze(member.getFreeze().add(new BigDecimal(integrationAmount.intValue()))); // 冻结积分 + memberMapper.updateByPrimaryKey(member); + + totalAmount = zero; // 设置支付金额为零 + orderParam.setIntegration(integrationAmount); // 设置积分金额 + } + + if(orderParam.getIntegration() == null) { + orderParam.setIntegration(zero); + } + + //先判断积分是否大于0,大于0表示使用了积分支付 + //flag 等于1表示使用积分支付 判断用户积分是否充足 + //flag = -1,表示integration小于0;flag = 0,表示integration等于0;flag = 1,表示integration大于0; + //int integerationFlag = orderParam.getIntegration().compareTo(new BigDecimal(0)); //mcoo + int integerationFlag = 0; + if(integerationFlag == 1) { + int flag = member.getBalance().compareTo(orderParam.getIntegration()); + //flag = -1,表示balance小于integration;flag = 0,表示balance等于integration;flag = 1,表示balance大于integration; /*if(flag == -1) { return CommonResult.validateFailed("森态积分不足,无法抵扣"); }*/ - } + } - while (true) { - long time = System.currentTimeMillis() + RedisLock.TIMEOUT; - if (redisLock.lock(String.valueOf(skuStock.getProductId()), String.valueOf(time))) { + while(true) { + long time = System.currentTimeMillis() + RedisLock.TIMEOUT; + if(redisLock.lock(String.valueOf(skuStock.getProductId()), String.valueOf(time))) { - //重新查询获取最新的数据 - skuStock = skuStockMapper.selectByPrimaryKey(orderParam.getSkuId()); + //重新查询获取最新的数据 + skuStock = skuStockMapper.selectByPrimaryKey(orderParam.getSkuId()); - //判断购物车中商品是否都有库存 (库存 - 锁定库存 = 真实库存) - if ((skuStock.getStock() - skuStock.getLockStock()) < orderParam.getQuantity()) { - return CommonResult.validateFailed("库存不足,无法下单"); - } + //判断购物车中商品是否都有库存 (库存 - 锁定库存 = 真实库存) + if ((skuStock.getStock() - skuStock.getLockStock()) < orderParam.getQuantity()) { + return CommonResult.validateFailed("库存不足,无法下单"); + } - skuStock.setLockStock(skuStock.getLockStock() + orderParam.getQuantity()); - skuStockMapper.updateByPrimaryKey(skuStock); - redisLock.unlock(String.valueOf(skuStock.getProductId()), String.valueOf(time)); - break; - } - } + skuStock.setLockStock(skuStock.getLockStock() + orderParam.getQuantity()); + skuStockMapper.updateByPrimaryKey(skuStock); + redisLock.unlock(String.valueOf(skuStock.getProductId()), String.valueOf(time)); + break; + } + } - //生成订单信息 - OmsOrder order = new OmsOrder(); - order.setTotalAmount(totalAmount); // 订单总金额 - if (integerationFlag == 1) { - int flag = orderParam.getIntegration().compareTo(totalAmount); - BigDecimal integeration = new BigDecimal(0); - //flag = -1,表示integration小于totalAmount;flag = 0,表示integration等于totalAmount;flag = 1,表示integration大于totalAmount; - //如果传入的积分小于实际支付金额,用实际支付金额减去抵扣积分。 - //如果传入的积分等于或者大于实际支付金额,表示全额抵扣 - if (flag == -1) { - order.setPayAmount(totalAmount.subtract(orderParam.getIntegration())); //实际支付金额 - order.setIntegrationAmount(orderParam.getIntegration()); - integeration = orderParam.getIntegration(); - } else { - order.setPayAmount(zero); - order.setIntegrationAmount(totalAmount); - integeration = totalAmount; - } + //生成订单信息 + OmsOrder order = new OmsOrder(); + order.setTotalAmount(totalAmount); // 订单总金额 + order.setIntegrationAmount(orderParam.getIntegration() == null ? zero : orderParam.getIntegration()); + if(integerationFlag == 1) { + int flag = orderParam.getIntegration().compareTo(totalAmount); + BigDecimal integeration = new BigDecimal(0); + //flag = -1,表示integration小于totalAmount;flag = 0,表示integration等于totalAmount;flag = 1,表示integration大于totalAmount; + //如果传入的积分小于实际支付金额,用实际支付金额减去抵扣积分。 + //如果传入的积分等于或者大于实际支付金额,表示全额抵扣 + if(flag == -1) { + order.setPayAmount(totalAmount.subtract(orderParam.getIntegration())); //实际支付金额 + order.setIntegrationAmount(orderParam.getIntegration()); + integeration = orderParam.getIntegration(); + } else { + order.setPayAmount(zero); + order.setIntegrationAmount(totalAmount); + integeration = totalAmount; + } - //冻结用户余额 - member = memberMapper.selectByPrimaryKey(member.getId()); - //flag = -1,表示balance小于integeration;flag = 0,表示balance等于integeration;flag = 1,表示balance大于integeration; - flag = member.getBalance().compareTo(integeration); + //冻结用户余额 + member = memberMapper.selectByPrimaryKey(member.getId()); + //flag = -1,表示balance小于integeration;flag = 0,表示balance等于integeration;flag = 1,表示balance大于integeration; + flag = member.getBalance().compareTo(integeration); /*if(flag == -1) { throw new RuntimeException("森态积分不足,无法抵扣"); }*/ - member.setBalance(member.getBalance().subtract(integeration)); //修改余额值 - member.setFreeze(member.getFreeze().add(integeration)); //修改冻结值 - memberMapper.updateByPrimaryKey(member); + member.setBalance(member.getBalance().subtract(integeration)); //修改余额值 + member.setFreeze(member.getFreeze().add(integeration)); //修改冻结值 + memberMapper.updateByPrimaryKey(member); - } else { - order.setPayAmount(totalAmount); //实际支付金额 - order.setIntegrationAmount(zero); - } + } else { + order.setPayAmount(totalAmount); //实际支付金额 + order.setIntegrationAmount(zero); + } - Date date = new Date(); - order.setMemberId(member.getId()); - order.setCreateTime(date); - order.setModifyTime(date); - order.setMemberUsername(member.getUsername()); - order.setFreightAmount(zero); //运费 - order.setPromotionAmount(zero); //促销优化金额(促销价、满减、阶梯价) - order.setCouponAmount(zero); - order.setDiscountAmount(zero); - order.setPayType(0); //支付方式:0->未支付;1->支付宝;2->微信 - order.setSourceType(1); //订单来源:0->PC订单;1->app订单 - order.setDeliveryType(1); //提货方式:0->自提;1->物流 默认为1 mcoo + Date date = new Date(); + order.setMemberId(member.getId()); + order.setCreateTime(date); + order.setModifyTime(date); + order.setMemberUsername(member.getUsername()); + order.setFreightAmount(zero); //运费 + order.setPayType(isPointsExchangeStatus ? 4 : 0); // payType为4代表积分支付 + order.setPromotionAmount(zero); //促销优化金额(促销价、满减、阶梯价) + order.setCouponAmount(zero); + order.setDiscountAmount(zero); + order.setPayType(0); //支付方式:0->未支付;1->支付宝;2->微信 + order.setSourceType(1); //订单来源:0->PC订单;1->app订单 + order.setDeliveryType(1); //提货方式:0->自提;1->物流 默认为1 mcoo - //生成订单号 - order.setOrderSn(generateOrderSn(order)); - //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 - order.setStatus(0); - //订单类型:0->正常订单;1->秒杀订单 2->5连订单 - order.setOrderType(0); + //生成订单号 + order.setOrderSn(generateOrderSn(order)); + //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 + order.setStatus(0); + //订单类型:0->正常订单;1->秒杀订单 2->5连订单 + order.setOrderType(0); - OmsOrderSetting orderSetting = orderSettingMapper.selectByPrimaryKey(1L); - order.setAutoConfirmDay(orderSetting.getConfirmOvertime()); - order.setIntegration(0); - order.setGrowth(0); + OmsOrderSetting orderSetting = orderSettingMapper.selectByPrimaryKey(1L); + order.setAutoConfirmDay(orderSetting.getConfirmOvertime()); + order.setIntegration(0); + order.setGrowth(0); - //收货人信息:姓名、电话、邮编、地址 - order.setReceiverName(address.getName()); - order.setReceiverPhone(address.getPhoneNumber()); - order.setReceiverPostCode(address.getPostCode()); - order.setReceiverProvince(address.getProvince()); - order.setReceiverCity(address.getCity()); - order.setReceiverRegion(address.getRegion()); - order.setReceiverDetailAddress(address.getDetailAddress()); + //收货人信息:姓名、电话、邮编、地址 + order.setReceiverName(address.getName()); + order.setReceiverPhone(address.getPhoneNumber()); + order.setReceiverPostCode(address.getPostCode()); + order.setReceiverProvince(address.getProvince()); + order.setReceiverCity(address.getCity()); + order.setReceiverRegion(address.getRegion()); + order.setReceiverDetailAddress(address.getDetailAddress()); - order.setNote(orderParam.getNote() == null ? null : orderParam.getNote()); + order.setNote(orderParam.getNote() == null ? null : orderParam.getNote()); - //确认收货状态:0->未确认;1->已确认 - order.setConfirmStatus(0); - //删除状态:0->未删除;1->已删除 - order.setDeleteStatus(0); - order.setUseIntegration(0); - order.setPromotionInfo("无优惠"); - order.setSettlementStatus(0); //分销结算状态(0->未结算;1->已结算;2->不结算) + //确认收货状态:0->未确认;1->已确认 + order.setConfirmStatus(0); + //删除状态:0->未删除;1->已删除 + order.setDeleteStatus(0); + order.setUseIntegration(0); + order.setPromotionInfo("无优惠"); + order.setSettlementStatus(0); //分销结算状态(0->未结算;1->已结算;2->不结算) - orderMapper.insert(order); + orderMapper.insert(order); - //生成订单商品信息 - OmsOrderItem orderItem = new OmsOrderItem(); - orderItem.setOrderId(order.getId()); - orderItem.setOrderSn(order.getOrderSn()); - orderItem.setProductId(product.getId()); - orderItem.setProductPic(skuStock.getPic()); - orderItem.setProductName(product.getName()); - //orderItem.setProductAttr(cartPromotionItem.getProductAttr()); - orderItem.setProductBrand(product.getBrandName()); - orderItem.setProductSn(product.getProductSn()); - orderItem.setProductPrice(price); - orderItem.setProductQuantity(orderParam.getQuantity()); - orderItem.setProductSkuId(skuStock.getId()); - orderItem.setProductSkuCode(skuStock.getSkuCode()); - orderItem.setProductCategoryId(product.getProductCategoryId()); - orderItem.setSp1(skuStock.getSp1()); - orderItem.setSp2(skuStock.getSp2()); - orderItem.setSp3(skuStock.getSp3()); - orderItem.setPromotionName("无优惠"); - orderItem.setPromotionAmount(new BigDecimal(0)); - orderItem.setGiftIntegration(0); - orderItem.setGiftGrowth(0); - orderItem.setCouponAmount(new BigDecimal(0)); - orderItem.setIntegrationAmount(new BigDecimal(0)); - orderItem.setRealAmount(new BigDecimal(0)); + //生成订单商品信息 + OmsOrderItem orderItem = new OmsOrderItem(); + orderItem.setOrderId(order.getId()); + orderItem.setOrderSn(order.getOrderSn()); + orderItem.setProductId(product.getId()); + orderItem.setProductPic(skuStock.getPic()); + orderItem.setProductName(product.getName()); + //orderItem.setProductAttr(cartPromotionItem.getProductAttr()); + orderItem.setProductBrand(product.getBrandName()); + orderItem.setProductSn(product.getProductSn()); + orderItem.setProductPrice(price); + orderItem.setProductQuantity(orderParam.getQuantity()); + orderItem.setProductSkuId(skuStock.getId()); + orderItem.setProductSkuCode(skuStock.getSkuCode()); + orderItem.setProductCategoryId(product.getProductCategoryId()); + orderItem.setSp1(skuStock.getSp1()); + orderItem.setSp2(skuStock.getSp2()); + orderItem.setSp3(skuStock.getSp3()); + orderItem.setPromotionName("无优惠"); + orderItem.setPromotionAmount(new BigDecimal(0)); + orderItem.setGiftIntegration(0); + orderItem.setGiftGrowth(0); + orderItem.setCouponAmount(new BigDecimal(0)); + orderItem.setIntegrationAmount(new BigDecimal(0)); + orderItem.setRealAmount(new BigDecimal(0)); - orderItemMapper.insert(orderItem); + orderItemMapper.insert(orderItem); - //超时未支付,自动取消订单 - //分钟转换成毫秒 - long delayTimes = orderSetting.getNormalOrderOvertime() * 60 * 1000; - cancelOrderSender.sendMessage(order.getId(), delayTimes); + //超时未支付,自动取消订单 + //分钟转换成毫秒 + long delayTimes = orderSetting.getNormalOrderOvertime() * 60 * 1000; + cancelOrderSender.sendMessage(order.getId(), delayTimes); - result.put("orderId", order.getId()); - result.put("totalAmount", order.getPayAmount()); - } + result.put("orderId", order.getId()); + result.put("totalAmount", order.getPayAmount()); + } return CommonResult.success(result, "下单成功"); - } + } /** -- 2.36.6