From 412c017c96e83647e2ffb9611b41787b94351614 Mon Sep 17 00:00:00 2001 From: zhanghb <740323835@qq.com> Date: Fri, 28 Feb 2025 16:15:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/mapper/OmsOrderItemMapper.java | 2 + .../buy507/mall/mapper/OmsOrderMapper.java | 3 +- .../UmsMemberAccountTransactionExample.java | 5 + .../buy507/mall/mapper/OmsOrderItemMapper.xml | 30 + .../com/buy507/mall/mapper/OmsOrderMapper.xml | 1 + .../impl/OmsPortalOrderServiceImpl.java | 633 +++++++++--------- .../service/impl/UmsMemberServiceImpl.java | 4 +- .../service/impl/VipCenterServiceImpl.java | 1 + 8 files changed, 361 insertions(+), 318 deletions(-) diff --git a/mall-dao/src/main/java/com/buy507/mall/mapper/OmsOrderItemMapper.java b/mall-dao/src/main/java/com/buy507/mall/mapper/OmsOrderItemMapper.java index a16402a..e58438b 100644 --- a/mall-dao/src/main/java/com/buy507/mall/mapper/OmsOrderItemMapper.java +++ b/mall-dao/src/main/java/com/buy507/mall/mapper/OmsOrderItemMapper.java @@ -29,4 +29,6 @@ public interface OmsOrderItemMapper { int updateByPrimaryKey(OmsOrderItem record); OmsOrderItem selectByOrderId(Long orderId); + + OmsOrderItem getByOrderSn(String orderSn); } \ No newline at end of file diff --git a/mall-dao/src/main/java/com/buy507/mall/mapper/OmsOrderMapper.java b/mall-dao/src/main/java/com/buy507/mall/mapper/OmsOrderMapper.java index f0c378d..8504f6b 100644 --- a/mall-dao/src/main/java/com/buy507/mall/mapper/OmsOrderMapper.java +++ b/mall-dao/src/main/java/com/buy507/mall/mapper/OmsOrderMapper.java @@ -33,4 +33,5 @@ public interface OmsOrderMapper { int updateByPrimaryKey(OmsOrder record); - PmsProduct selectAll(@Param("orderSn") String orderSn);} \ No newline at end of file + PmsProduct selectAll(@Param("orderSn") String orderSn); +} diff --git a/mall-dao/src/main/java/com/buy507/mall/model/UmsMemberAccountTransactionExample.java b/mall-dao/src/main/java/com/buy507/mall/model/UmsMemberAccountTransactionExample.java index 5f965b0..0f58992 100644 --- a/mall-dao/src/main/java/com/buy507/mall/model/UmsMemberAccountTransactionExample.java +++ b/mall-dao/src/main/java/com/buy507/mall/model/UmsMemberAccountTransactionExample.java @@ -361,6 +361,11 @@ public class UmsMemberAccountTransactionExample { return (Criteria) this; } + public Criteria andFlowTypeEqualTo(Integer value) { + addCriterion("flow_type =", value, "flowType"); + return (Criteria) this; + } + public Criteria andTransactionStateNotEqualTo(Integer value) { addCriterion("transaction_state <>", value, "transactionState"); return (Criteria) this; diff --git a/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderItemMapper.xml b/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderItemMapper.xml index 8aa35e4..9375b73 100644 --- a/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderItemMapper.xml +++ b/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderItemMapper.xml @@ -513,4 +513,34 @@ select * from mall.oms_order_item where order_id = #{orderId} + \ No newline at end of file diff --git a/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderMapper.xml b/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderMapper.xml index fd456d0..898783f 100644 --- a/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderMapper.xml +++ b/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderMapper.xml @@ -926,4 +926,5 @@ JOIN oms_order o ON oi.order_sn = o.order_sn WHERE o.order_sn = #{orderSn} + \ 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 2eee7d4..2facb51 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 @@ -329,157 +329,157 @@ 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.setFreightAmount(order.getFreightAmount()); + orderResult.setNote(order.getNote()); + orderResult.setDeliveryCompany(order.getDeliveryCompany()); + orderResult.setDeliverySn(order.getDeliverySn()); orderResult.setOrderType(order.getOrderType()); orderResult.setPaymentTime(new Date()); - // 获取商品信息,判断是否是积分专区商品 - PmsProduct product = productMapper.getProductByOrderSn(order.getOrderSn()); + // 获取商品信息,判断是否是积分专区商品 + PmsProduct product = productMapper.getProductByOrderSn(order.getOrderSn()); System.out.println("hello"); - boolean isPointsExchangeStatus = product != null && product.getPointsExchangeStatus() == 1; + boolean isPointsExchangeStatus = product != null && product.getPointsExchangeStatus() == 1; - //支付类型: 0->未支付;1->支付宝;2->微信; 3->线下支付; 4->积分支付 - //判断是否为积分专区商品 - if(isPointsExchangeStatus) { + //支付类型: 0->未支付;1->支付宝;2->微信; 3->线下支付; 4->积分支付 + //判断是否为积分专区商品 + if (isPointsExchangeStatus) { orderResult.setIntergrationPrice(product.getIntergrationPrice()); orderResult.setIntergrationExchange(product.getPointsExchangeStatus()); orderResult.setPayType(order.getPayType()); if (order.getPayType() == 0) { 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); + } 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); - if (recordResult.getConfirmStatus() == 1) { - recordResult.setConfirmStatusName("已审核"); - } else { - recordResult.setConfirmStatusName("未审核"); - } - orderResult.setPaymentRecord(recordResult); - } else { - orderResult.setPayTypeName("积分支付"); - } - } else { - orderResult.setPayType(0); - orderResult.setPayTypeName("未支付"); - } - } + if (recordResult.getConfirmStatus() == 1) { + recordResult.setConfirmStatusName("已审核"); + } else { + recordResult.setConfirmStatusName("未审核"); + } + orderResult.setPaymentRecord(recordResult); + } else { + orderResult.setPayTypeName("积分支付"); + } + } else { + orderResult.setPayType(0); + orderResult.setPayTypeName("未支付"); + } + } - orderResult.setDeliveryTime(order.getDeliveryTime()); - orderResult.setReceiveTime(order.getReceiveTime()); - orderResult.setCommentTime(order.getCommentTime()); + orderResult.setDeliveryTime(order.getDeliveryTime()); + orderResult.setReceiveTime(order.getReceiveTime()); + orderResult.setCommentTime(order.getCommentTime()); orderResult.setOrderStatus(0); - //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("不开发票"); - } + //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("不开发票"); + } - 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.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); + 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 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.setIntergrationPrice(product.getIntergrationPrice()); orderItemResult.setIntergrationExchange(product.getPointsExchangeStatus()); - orderItemResult.setSp1(orderItem.getSp1()); - orderItemResult.setSp2(orderItem.getSp2()); - orderItemResult.setSp3(orderItem.getSp3()); - orderItemResultList.add(orderItemResult); - } + orderItemResult.setSp1(orderItem.getSp1()); + orderItemResult.setSp2(orderItem.getSp2()); + orderItemResult.setSp3(orderItem.getSp3()); + orderItemResultList.add(orderItemResult); + } orderResult.setOrderItem(orderItemResultList); @@ -745,39 +745,39 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { /** * 直接购买,根据提交信息生成订单 */ - @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.getMemberReceiveAddressId() == null) { - return CommonResult.validateFailed("会员收货地址不能为空"); - } - - UmsMemberReceiveAddress address = memberReceiveAddressMapper.selectOneById(orderParam.getMemberReceiveAddressId()); - if(address == null) { - return CommonResult.validateFailed("未查询到会员收货地址"); + @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.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("未查询到商品信息"); } - 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 = productMapper.getPrimaryKey(skuStock.getProductId()); @@ -795,190 +795,190 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { totalPointsAmount = pointsPrice.multiply(new BigDecimal(orderParam.getQuantity())); } - //判断商品是否都有库存 (库存 - 锁定库存 = 真实库存) + //判断商品是否都有库存 (库存 - 锁定库存 = 真实库存) if ((skuStock.getStock() - skuStock.getLockStock()) < orderParam.getQuantity()) { return CommonResult.validateFailed("库存不足,无法下单"); } - Map result = new HashMap<>(); - if(product != null) { + Map result = new HashMap<>(); + if (product != null) { - UmsMember member = memberMapper.selectByPrimaryKey(memberService.getCurrentMember().getId()); - BigDecimal discount = commonService.getDiscount(member.getId()); + UmsMember member = memberMapper.selectByPrimaryKey(memberService.getCurrentMember().getId()); + BigDecimal discount = commonService.getDiscount(member.getId()); - if(discount != null) { - price = skuStock.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP); - } + 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 (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; + //先判断积分是否大于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); // 订单总金额 + //生成订单信息 + OmsOrder order = new OmsOrder(); + order.setTotalAmount(totalAmount); // 订单总金额 order.setIntegrationAmount(zero); // 积分部分金额设为零 - 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; - } + 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.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 + 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)); + //生成订单商品信息 + 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(totalPointsAmount); - orderItem.setGiftGrowth(0); - orderItem.setCouponAmount(new BigDecimal(0)); - orderItem.setIntegrationAmount(new BigDecimal(0)); - orderItem.setRealAmount(new BigDecimal(0)); + orderItem.setGiftIntegration(totalPointsAmount); + 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()); if (isPointsExchangeStatus) { result.put("pointsPrice", totalPointsAmount); } - } + } return CommonResult.success(result, "下单成功"); - } + } /** @@ -1361,7 +1361,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { // 判断是否使用积分支付 UmsMember member = memberMapper.selectByPrimaryKey(currentMember.getId()); - if(product1.getPointsExchangeStatus() == 1) { + if (product1.getPointsExchangeStatus() == 1) { // 获取积分兑换价格 // 使用订单中的积分字段 @@ -1411,7 +1411,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { accountTransaction.setTransferPaymentTime(order.getPaymentTime()); accountTransaction.setRevenuePoints(-totalPointsAmount.intValue()); PmsProduct pmsProduct = orderMapper.selectAll(order.getOrderSn()); - accountTransaction.setRemarks( "商品名称" + pmsProduct.getName()); + accountTransaction.setRemarks("商品名称" + pmsProduct.getName()); umsMemberAccountTransactionMapper.insert(accountTransaction); // 返还积分金额到前端 @@ -1573,10 +1573,11 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { accountTransaction.setFlowType(1); accountTransaction.setTransferPaymentTime(orderResult.getPaymentTime()); accountTransaction.setRevenueAmount(payAmount.negate()); - PmsProduct pmsProduct = orderMapper.selectAll(orderResult.getOrderSn()); - accountTransaction.setRemarks( "商品名称" + pmsProduct.getName()); + OmsOrderItem orderItem = orderItemMapper.getByOrderSn(orderResult.getOrderSn()); + accountTransaction.setRemarks("商品名称" + orderItem.getProductName()); umsMemberAccountTransactionMapper.insert(accountTransaction); + PmsProduct pmsProduct = orderMapper.selectAll(orderResult.getOrderSn()); //如果是积分专区的商品则进行积分专区相对应的逻辑 if (pmsProduct.getPointsAreaStatus() == 1) { //奖励积分是购买的价格的100% @@ -1593,7 +1594,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { // 更新用户积分 memberMapper.updateByPrimaryKey(member); //增加基金积分 - int fundPoints = (int)(rewardPoints * 0.05); + int fundPoints = (int) (rewardPoints * 0.05); umsDevelopmentFundMapper.updatePoints(fundPoints); //插入流水表积分 UmsMemberAccountTransaction transaction = new UmsMemberAccountTransaction(); @@ -1602,7 +1603,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { transaction.setFlowType(2); transaction.setTransferPaymentTime(orderResult.getPaymentTime()); transaction.setRevenuePoints(rewardPoints); - transaction.setRemarks( "购买商品返还积分:" + pmsProduct.getName()); + transaction.setRemarks("购买商品返还积分:" + pmsProduct.getName()); umsMemberAccountTransactionMapper.insert(transaction); } } @@ -1615,8 +1616,10 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { order.setStatus(2); order.setPaymentTime(new Date()); orderMapper.updateByPrimaryKey(order); - //积分分润逻辑 - memberPointsSplitProfitService.pointsSplit(order); + if (pmsProduct.getPointsAreaStatus() == 1) { + //积分分润逻辑 + memberPointsSplitProfitService.pointsSplit(order); + } // 处理库存、分销等后续操作 executorService.execute(() -> { @@ -1628,7 +1631,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { } /** - *处理库存的逻辑 + * 处理库存的逻辑 */ private void updateStock(Long orderId) { // 查询订单商品信息,进行库存更新等操作 @@ -1646,8 +1649,6 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { } - - /** * 微信预支付 * @@ -2061,7 +2062,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { // 更新用户积分 memberMapper.updateByPrimaryKey(member); //增加基金积分 - int fundPoints = (int)(rewardPoints * 0.05); + int fundPoints = (int) (rewardPoints * 0.05); umsDevelopmentFundMapper.updatePoints(fundPoints); //插入流水表积分 @@ -2071,7 +2072,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { accountTransaction.setFlowType(2); accountTransaction.setTransferPaymentTime(order.getPaymentTime()); accountTransaction.setRevenuePoints(rewardPoints); - accountTransaction.setRemarks( "购买商品返还积分:" + pmsProduct.getName()); + accountTransaction.setRemarks("购买商品返还积分:" + pmsProduct.getName()); umsMemberAccountTransactionMapper.insert(accountTransaction); //积分分润逻辑 diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/UmsMemberServiceImpl.java b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/UmsMemberServiceImpl.java index ff6936f..64540b4 100644 --- a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/UmsMemberServiceImpl.java +++ b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/UmsMemberServiceImpl.java @@ -529,6 +529,7 @@ public class UmsMemberServiceImpl implements UmsMemberService { BigDecimal totalIncome = BigDecimal.ZERO; accountTransactionExample.createCriteria() .andTransactionStateEqualTo(UmsMemberAccountTransaction.TRANSACTION_STATE_YES) + .andFlowTypeEqualTo(1) .andMemberIdEqualTo(member.getId()); List totalList = umsMemberAccountTransactionMapper.selectByExample(accountTransactionExample); @@ -541,11 +542,12 @@ public class UmsMemberServiceImpl implements UmsMemberService { } //查询今天收入 - BigDecimal todayIncome = BigDecimal.ZERO; + BigDecimal todayIncome = BigDecimal.ZERO; accountTransactionExample = new UmsMemberAccountTransactionExample(); accountTransactionExample.createCriteria() .andTransferPaymentTimeBetween(DateUtil.beginOfDay(nowTime) ,nowTime) .andTransactionStateEqualTo(UmsMemberAccountTransaction.TRANSACTION_STATE_YES) + .andFlowTypeEqualTo(1) .andMemberIdEqualTo(member.getId()); List todayIncomeList = umsMemberAccountTransactionMapper.selectByExample(accountTransactionExample); if(todayIncomeList!= null && !todayIncomeList.isEmpty()){ diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/VipCenterServiceImpl.java b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/VipCenterServiceImpl.java index d9ecb88..228854d 100644 --- a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/VipCenterServiceImpl.java +++ b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/VipCenterServiceImpl.java @@ -83,6 +83,7 @@ public class VipCenterServiceImpl implements VipCenterService { //返回订单id Map result = new HashMap<>(); result.put("orderId", order.getId()); + result.put("orderType", order.getOrderType()); return CommonResult.success(result, "下单成功"); } }