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, "下单成功");
}
}