修改bug

This commit is contained in:
2025-02-28 16:15:03 +08:00
parent d64f5b4bbb
commit 412c017c96
8 changed files with 361 additions and 318 deletions

View File

@@ -29,4 +29,6 @@ public interface OmsOrderItemMapper {
int updateByPrimaryKey(OmsOrderItem record); int updateByPrimaryKey(OmsOrderItem record);
OmsOrderItem selectByOrderId(Long orderId); OmsOrderItem selectByOrderId(Long orderId);
OmsOrderItem getByOrderSn(String orderSn);
} }

View File

@@ -33,4 +33,5 @@ public interface OmsOrderMapper {
int updateByPrimaryKey(OmsOrder record); int updateByPrimaryKey(OmsOrder record);
PmsProduct selectAll(@Param("orderSn") String orderSn);} PmsProduct selectAll(@Param("orderSn") String orderSn);
}

View File

@@ -361,6 +361,11 @@ public class UmsMemberAccountTransactionExample {
return (Criteria) this; return (Criteria) this;
} }
public Criteria andFlowTypeEqualTo(Integer value) {
addCriterion("flow_type =", value, "flowType");
return (Criteria) this;
}
public Criteria andTransactionStateNotEqualTo(Integer value) { public Criteria andTransactionStateNotEqualTo(Integer value) {
addCriterion("transaction_state <>", value, "transactionState"); addCriterion("transaction_state <>", value, "transactionState");
return (Criteria) this; return (Criteria) this;

View File

@@ -513,4 +513,34 @@
select * from mall.oms_order_item where order_id = #{orderId} select * from mall.oms_order_item where order_id = #{orderId}
</select> </select>
<select id="getByOrderSn" resultType="com.buy507.mall.model.OmsOrderItem">
select id,
order_id,
order_sn,
product_id,
product_pic,
product_name,
product_brand,
product_sn,
product_price,
product_quantity,
product_sku_id,
product_sku_code,
product_category_id,
promotion_name,
promotion_amount,
coupon_amount,
integration_amount,
real_amount,
gift_integration,
gift_growth,
product_attr,
sp1,
sp2,
sp3,
intergrationPrice,
intergrationExchange
from oms_order_item
where order_sn = #{orderSn}
</select>
</mapper> </mapper>

View File

@@ -926,4 +926,5 @@
JOIN oms_order o ON oi.order_sn = o.order_sn JOIN oms_order o ON oi.order_sn = o.order_sn
WHERE o.order_sn = #{orderSn} WHERE o.order_sn = #{orderSn}
</select> </select>
<select id="getPnameByOrderSn" resultType="java.lang.String"></select>
</mapper> </mapper>

View File

@@ -329,157 +329,157 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
} }
@Override @Override
public OrderResult getMemberOrderDetailInfo(Long orderId) { public OrderResult getMemberOrderDetailInfo(Long orderId) {
UmsMember loginMember = memberService.getCurrentMember(); UmsMember loginMember = memberService.getCurrentMember();
OrderResult orderResult = new OrderResult(); OrderResult orderResult = new OrderResult();
OmsOrder order = orderMapper.selectByPrimaryKey(orderId); OmsOrder order = orderMapper.selectByPrimaryKey(orderId);
//删除状态0->未删除1->已删除 //删除状态0->未删除1->已删除
if(order != null && order.getMemberId().equals(loginMember.getId()) && order.getDeleteStatus() == 0) { if (order != null && order.getMemberId().equals(loginMember.getId()) && order.getDeleteStatus() == 0) {
orderResult.setOrderId(order.getId()); orderResult.setOrderId(order.getId());
orderResult.setOrderSn(order.getOrderSn()); orderResult.setOrderSn(order.getOrderSn());
orderResult.setCreateTime(order.getCreateTime()); orderResult.setCreateTime(order.getCreateTime());
orderResult.setPayAmount(order.getPayAmount()); orderResult.setPayAmount(order.getPayAmount());
orderResult.setOrderStatus(order.getStatus()); orderResult.setOrderStatus(order.getStatus());
orderResult.setDeliveryType(order.getDeliveryType()); orderResult.setDeliveryType(order.getDeliveryType());
if(order.getStatus() == 0) { if (order.getStatus() == 0) {
orderResult.setOrderStatusName("待付款"); orderResult.setOrderStatusName("待付款");
if(order.getPayType() != null && order.getPayType() == 3) { if (order.getPayType() != null && order.getPayType() == 3) {
orderResult.setOrderStatusName("已付款待审核"); orderResult.setOrderStatusName("已付款待审核");
} }
} }
if(order.getStatus() == 1) { if (order.getStatus() == 1) {
orderResult.setOrderStatusName("待发货"); orderResult.setOrderStatusName("待发货");
} }
if(order.getStatus() == 2) { if (order.getStatus() == 2) {
// 提货方式0->自提1->物流 // 提货方式0->自提1->物流
if(order.getDeliveryType() == 0) { if (order.getDeliveryType() == 0) {
orderResult.setOrderStatusName("待提货"); orderResult.setOrderStatusName("待提货");
} else { } else {
orderResult.setOrderStatusName("待收货"); orderResult.setOrderStatusName("待收货");
} }
} }
if(order.getStatus() == 3) { if (order.getStatus() == 3) {
orderResult.setOrderStatusName("交易完成"); orderResult.setOrderStatusName("交易完成");
if(order.getCommentTime() == null) { if (order.getCommentTime() == null) {
orderResult.setCommentStatus(0); //未评价 orderResult.setCommentStatus(0); //未评价
} else { } else {
orderResult.setCommentStatus(1); //已评价 orderResult.setCommentStatus(1); //已评价
} }
} }
if(order.getStatus() == 4) { if (order.getStatus() == 4) {
orderResult.setOrderStatusName("交易关闭"); orderResult.setOrderStatusName("交易关闭");
orderResult.setOrderStatus(4); orderResult.setOrderStatus(4);
} }
orderResult.setFreightAmount(order.getFreightAmount()); orderResult.setFreightAmount(order.getFreightAmount());
orderResult.setNote(order.getNote()); orderResult.setNote(order.getNote());
orderResult.setDeliveryCompany(order.getDeliveryCompany()); orderResult.setDeliveryCompany(order.getDeliveryCompany());
orderResult.setDeliverySn(order.getDeliverySn()); orderResult.setDeliverySn(order.getDeliverySn());
orderResult.setOrderType(order.getOrderType()); orderResult.setOrderType(order.getOrderType());
orderResult.setPaymentTime(new Date()); orderResult.setPaymentTime(new Date());
// 获取商品信息,判断是否是积分专区商品 // 获取商品信息,判断是否是积分专区商品
PmsProduct product = productMapper.getProductByOrderSn(order.getOrderSn()); PmsProduct product = productMapper.getProductByOrderSn(order.getOrderSn());
System.out.println("hello"); System.out.println("hello");
boolean isPointsExchangeStatus = product != null && product.getPointsExchangeStatus() == 1; boolean isPointsExchangeStatus = product != null && product.getPointsExchangeStatus() == 1;
//支付类型: 0->未支付1->支付宝2->微信; 3->线下支付; 4->积分支付 //支付类型: 0->未支付1->支付宝2->微信; 3->线下支付; 4->积分支付
//判断是否为积分专区商品 //判断是否为积分专区商品
if(isPointsExchangeStatus) { if (isPointsExchangeStatus) {
orderResult.setIntergrationPrice(product.getIntergrationPrice()); orderResult.setIntergrationPrice(product.getIntergrationPrice());
orderResult.setIntergrationExchange(product.getPointsExchangeStatus()); orderResult.setIntergrationExchange(product.getPointsExchangeStatus());
orderResult.setPayType(order.getPayType()); orderResult.setPayType(order.getPayType());
if (order.getPayType() == 0) { if (order.getPayType() == 0) {
orderResult.setPayTypeName("未支付"); orderResult.setPayTypeName("未支付");
} }
}else { } else {
// 如果不是积分兑换专区商品,则继续使用其他支付方式 // 如果不是积分兑换专区商品,则继续使用其他支付方式
if (order.getPayType() != null) { if (order.getPayType() != null) {
orderResult.setPayType(order.getPayType()); orderResult.setPayType(order.getPayType());
if (order.getPayType() == 0) { if (order.getPayType() == 0) {
orderResult.setPayTypeName("未支付"); orderResult.setPayTypeName("未支付");
} else if (order.getPayType() == 1) { } else if (order.getPayType() == 1) {
orderResult.setPayTypeName("支付宝支付"); orderResult.setPayTypeName("支付宝支付");
} else if (order.getPayType() == 2) { } else if (order.getPayType() == 2) {
orderResult.setPayTypeName("微信支付"); orderResult.setPayTypeName("微信支付");
} else if (order.getPayType() == 3) { //mcoo todo } else if (order.getPayType() == 3) { //mcoo todo
orderResult.setPayTypeName("线下支付"); orderResult.setPayTypeName("线下支付");
DmsOfflinePaymentRecord paymentRecord = offlinePaymentRecordMapper.selectOneByOrderId(orderId); DmsOfflinePaymentRecord paymentRecord = offlinePaymentRecordMapper.selectOneByOrderId(orderId);
DmsSellerBankAccount bankAccount = sellerBankAccountMapper.selectOneById(paymentRecord.getSellerBankAccountId()); DmsSellerBankAccount bankAccount = sellerBankAccountMapper.selectOneById(paymentRecord.getSellerBankAccountId());
OfflinePaymentRecordResult recordResult = new OfflinePaymentRecordResult(); OfflinePaymentRecordResult recordResult = new OfflinePaymentRecordResult();
BeanUtils.copyProperties(paymentRecord, recordResult); BeanUtils.copyProperties(paymentRecord, recordResult);
BeanUtils.copyProperties(bankAccount, recordResult); BeanUtils.copyProperties(bankAccount, recordResult);
if (recordResult.getConfirmStatus() == 1) { if (recordResult.getConfirmStatus() == 1) {
recordResult.setConfirmStatusName("已审核"); recordResult.setConfirmStatusName("已审核");
} else { } else {
recordResult.setConfirmStatusName("未审核"); recordResult.setConfirmStatusName("未审核");
} }
orderResult.setPaymentRecord(recordResult); orderResult.setPaymentRecord(recordResult);
} else { } else {
orderResult.setPayTypeName("积分支付"); orderResult.setPayTypeName("积分支付");
} }
} else { } else {
orderResult.setPayType(0); orderResult.setPayType(0);
orderResult.setPayTypeName("未支付"); orderResult.setPayTypeName("未支付");
} }
} }
orderResult.setDeliveryTime(order.getDeliveryTime()); orderResult.setDeliveryTime(order.getDeliveryTime());
orderResult.setReceiveTime(order.getReceiveTime()); orderResult.setReceiveTime(order.getReceiveTime());
orderResult.setCommentTime(order.getCommentTime()); orderResult.setCommentTime(order.getCommentTime());
orderResult.setOrderStatus(0); orderResult.setOrderStatus(0);
//0->不开发票1->电子发票2->纸质发票 //0->不开发票1->电子发票2->纸质发票
if(order.getBillType() != null) { if (order.getBillType() != null) {
orderResult.setBillType(order.getBillType()); orderResult.setBillType(order.getBillType());
if(order.getBillType() == 1) { if (order.getBillType() == 1) {
orderResult.setBillTypeName("电子发票"); orderResult.setBillTypeName("电子发票");
} else if(order.getBillType() == 2) { } else if (order.getBillType() == 2) {
orderResult.setBillTypeName("纸质发票"); orderResult.setBillTypeName("纸质发票");
} else { } else {
orderResult.setBillTypeName("不开发票"); orderResult.setBillTypeName("不开发票");
} }
} else { } else {
orderResult.setBillType(0); orderResult.setBillType(0);
orderResult.setBillTypeName("不开发票"); orderResult.setBillTypeName("不开发票");
} }
orderResult.setBillHeader(order.getBillHeader()); orderResult.setBillHeader(order.getBillHeader());
orderResult.setBillContent(order.getBillContent()); orderResult.setBillContent(order.getBillContent());
orderResult.setReceiverName(order.getReceiverName()); orderResult.setReceiverName(order.getReceiverName());
orderResult.setReceiverPhone(order.getReceiverPhone()); orderResult.setReceiverPhone(order.getReceiverPhone());
orderResult.setReceiverProvince(order.getReceiverProvince()); orderResult.setReceiverProvince(order.getReceiverProvince());
orderResult.setReceiverCity(order.getReceiverCity()); orderResult.setReceiverCity(order.getReceiverCity());
orderResult.setReceiverRegion(order.getReceiverRegion()); orderResult.setReceiverRegion(order.getReceiverRegion());
orderResult.setReceiverDetailAddress(order.getReceiverDetailAddress()); orderResult.setReceiverDetailAddress(order.getReceiverDetailAddress());
OmsOrderItemExample example = new OmsOrderItemExample(); OmsOrderItemExample example = new OmsOrderItemExample();
example.createCriteria().andOrderIdEqualTo(orderId); example.createCriteria().andOrderIdEqualTo(orderId);
List<OmsOrderItem> orderItemList = orderItemMapper.selectByExample(example); List<OmsOrderItem> orderItemList = orderItemMapper.selectByExample(example);
OrderItemResult orderItemResult = null; OrderItemResult orderItemResult = null;
orderResult.setProductsNum(orderItemList.size()); orderResult.setProductsNum(orderItemList.size());
List<OrderItemResult> orderItemResultList = new ArrayList<>(); List<OrderItemResult> orderItemResultList = new ArrayList<>();
for(OmsOrderItem orderItem : orderItemList) { for (OmsOrderItem orderItem : orderItemList) {
orderItemResult = new OrderItemResult(); orderItemResult = new OrderItemResult();
orderItemResult.setOrderId(order.getId()); orderItemResult.setOrderId(order.getId());
orderItemResult.setOrderSn(order.getOrderSn()); orderItemResult.setOrderSn(order.getOrderSn());
orderItemResult.setProductBrand(orderItem.getProductBrand()); orderItemResult.setProductBrand(orderItem.getProductBrand());
orderItemResult.setProductId(orderItem.getProductId()); orderItemResult.setProductId(orderItem.getProductId());
orderItemResult.setProductName(orderItem.getProductName()); orderItemResult.setProductName(orderItem.getProductName());
orderItemResult.setProductPic(orderItem.getProductPic()); orderItemResult.setProductPic(orderItem.getProductPic());
orderItemResult.setProductPrice(orderItem.getProductPrice()); orderItemResult.setProductPrice(orderItem.getProductPrice());
orderItemResult.setProductQuantity(orderItem.getProductQuantity()); orderItemResult.setProductQuantity(orderItem.getProductQuantity());
orderItemResult.setIntergrationPrice(product.getIntergrationPrice()); orderItemResult.setIntergrationPrice(product.getIntergrationPrice());
orderItemResult.setIntergrationExchange(product.getPointsExchangeStatus()); orderItemResult.setIntergrationExchange(product.getPointsExchangeStatus());
orderItemResult.setSp1(orderItem.getSp1()); orderItemResult.setSp1(orderItem.getSp1());
orderItemResult.setSp2(orderItem.getSp2()); orderItemResult.setSp2(orderItem.getSp2());
orderItemResult.setSp3(orderItem.getSp3()); orderItemResult.setSp3(orderItem.getSp3());
orderItemResultList.add(orderItemResult); orderItemResultList.add(orderItemResult);
} }
orderResult.setOrderItem(orderItemResultList); orderResult.setOrderItem(orderItemResultList);
@@ -745,39 +745,39 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
/** /**
* 直接购买,根据提交信息生成订单 * 直接购买,根据提交信息生成订单
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
/** /**
* 创建订单 * 创建订单
*/ */
public CommonResult createOrder(OrderParam orderParam) { public CommonResult createOrder(OrderParam orderParam) {
//orderParam.setSkuId(98L); //orderParam.setSkuId(98L);
if(orderParam.getSkuId() == null) { if (orderParam.getSkuId() == null) {
return CommonResult.validateFailed("商品SKU不能为空"); return CommonResult.validateFailed("商品SKU不能为空");
} }
if(orderParam.getDeliveryType() == null || (orderParam.getDeliveryType() != 0 && orderParam.getDeliveryType() != 1) ) { if (orderParam.getDeliveryType() == null || (orderParam.getDeliveryType() != 0 && orderParam.getDeliveryType() != 1)) {
return CommonResult.validateFailed("提货方式不能为空"); return CommonResult.validateFailed("提货方式不能为空");
} }
if(orderParam.getMemberReceiveAddressId() == null) { if (orderParam.getMemberReceiveAddressId() == null) {
return CommonResult.validateFailed("会员收货地址不能为空"); return CommonResult.validateFailed("会员收货地址不能为空");
} }
UmsMemberReceiveAddress address = memberReceiveAddressMapper.selectOneById(orderParam.getMemberReceiveAddressId()); UmsMemberReceiveAddress address = memberReceiveAddressMapper.selectOneById(orderParam.getMemberReceiveAddressId());
if(address == null) { if (address == null) {
return CommonResult.validateFailed("未查询到会员收货地址"); 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()); PmsProduct product = productMapper.getPrimaryKey(skuStock.getProductId());
@@ -795,190 +795,190 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
totalPointsAmount = pointsPrice.multiply(new BigDecimal(orderParam.getQuantity())); totalPointsAmount = pointsPrice.multiply(new BigDecimal(orderParam.getQuantity()));
} }
//判断商品是否都有库存 (库存 - 锁定库存 = 真实库存) //判断商品是否都有库存 (库存 - 锁定库存 = 真实库存)
if ((skuStock.getStock() - skuStock.getLockStock()) < orderParam.getQuantity()) { if ((skuStock.getStock() - skuStock.getLockStock()) < orderParam.getQuantity()) {
return CommonResult.validateFailed("库存不足,无法下单"); return CommonResult.validateFailed("库存不足,无法下单");
} }
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
if(product != null) { if (product != null) {
UmsMember member = memberMapper.selectByPrimaryKey(memberService.getCurrentMember().getId()); UmsMember member = memberMapper.selectByPrimaryKey(memberService.getCurrentMember().getId());
BigDecimal discount = commonService.getDiscount(member.getId()); BigDecimal discount = commonService.getDiscount(member.getId());
if(discount != null) { if (discount != null) {
price = skuStock.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP); price = skuStock.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP);
} }
BigDecimal totalAmount = new BigDecimal(0); BigDecimal totalAmount = new BigDecimal(0);
BigDecimal zero = new BigDecimal(0); BigDecimal zero = new BigDecimal(0);
totalAmount = price.multiply(new BigDecimal(orderParam.getQuantity())); totalAmount = price.multiply(new BigDecimal(orderParam.getQuantity()));
if(orderParam.getIntegration() == null) { if (orderParam.getIntegration() == null) {
orderParam.setIntegration(zero); orderParam.setIntegration(zero);
} }
//先判断积分是否大于0大于0表示使用了积分支付 //先判断积分是否大于0大于0表示使用了积分支付
//flag 等于1表示使用积分支付 判断用户积分是否充足 //flag 等于1表示使用积分支付 判断用户积分是否充足
//flag = -1,表示integration小于0flag = 0,表示integration等于0flag = 1,表示integration大于0 //flag = -1,表示integration小于0flag = 0,表示integration等于0flag = 1,表示integration大于0
//int integerationFlag = orderParam.getIntegration().compareTo(new BigDecimal(0)); //mcoo //int integerationFlag = orderParam.getIntegration().compareTo(new BigDecimal(0)); //mcoo
int integerationFlag = 0; int integerationFlag = 0;
if(integerationFlag == 1) { if (integerationFlag == 1) {
int flag = member.getBalance().compareTo(orderParam.getIntegration()); int flag = member.getBalance().compareTo(orderParam.getIntegration());
//flag = -1,表示balance小于integrationflag = 0,表示balance等于integrationflag = 1,表示balance大于integration //flag = -1,表示balance小于integrationflag = 0,表示balance等于integrationflag = 1,表示balance大于integration
/*if(flag == -1) { /*if(flag == -1) {
return CommonResult.validateFailed("森态积分不足,无法抵扣"); return CommonResult.validateFailed("森态积分不足,无法抵扣");
}*/ }*/
} }
while(true) { while (true) {
long time = System.currentTimeMillis() + RedisLock.TIMEOUT; long time = System.currentTimeMillis() + RedisLock.TIMEOUT;
if(redisLock.lock(String.valueOf(skuStock.getProductId()), String.valueOf(time))) { 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()) { if ((skuStock.getStock() - skuStock.getLockStock()) < orderParam.getQuantity()) {
return CommonResult.validateFailed("库存不足,无法下单"); return CommonResult.validateFailed("库存不足,无法下单");
} }
skuStock.setLockStock(skuStock.getLockStock() + orderParam.getQuantity()); skuStock.setLockStock(skuStock.getLockStock() + orderParam.getQuantity());
skuStockMapper.updateByPrimaryKey(skuStock); skuStockMapper.updateByPrimaryKey(skuStock);
redisLock.unlock(String.valueOf(skuStock.getProductId()), String.valueOf(time)); redisLock.unlock(String.valueOf(skuStock.getProductId()), String.valueOf(time));
break; break;
} }
} }
//生成订单信息 //生成订单信息
OmsOrder order = new OmsOrder(); OmsOrder order = new OmsOrder();
order.setTotalAmount(totalAmount); // 订单总金额 order.setTotalAmount(totalAmount); // 订单总金额
order.setIntegrationAmount(zero); // 积分部分金额设为零 order.setIntegrationAmount(zero); // 积分部分金额设为零
order.setIntegrationAmount(orderParam.getIntegration() == null ? zero : orderParam.getIntegration()); order.setIntegrationAmount(orderParam.getIntegration() == null ? zero : orderParam.getIntegration());
if(integerationFlag == 1) { if (integerationFlag == 1) {
int flag = orderParam.getIntegration().compareTo(totalAmount); int flag = orderParam.getIntegration().compareTo(totalAmount);
BigDecimal integeration = new BigDecimal(0); BigDecimal integeration = new BigDecimal(0);
//flag = -1,表示integration小于totalAmountflag = 0,表示integration等于totalAmountflag = 1,表示integration大于totalAmount //flag = -1,表示integration小于totalAmountflag = 0,表示integration等于totalAmountflag = 1,表示integration大于totalAmount
//如果传入的积分小于实际支付金额,用实际支付金额减去抵扣积分。 //如果传入的积分小于实际支付金额,用实际支付金额减去抵扣积分。
//如果传入的积分等于或者大于实际支付金额,表示全额抵扣 //如果传入的积分等于或者大于实际支付金额,表示全额抵扣
if(flag == -1) { if (flag == -1) {
order.setPayAmount(totalAmount.subtract(orderParam.getIntegration())); //实际支付金额 order.setPayAmount(totalAmount.subtract(orderParam.getIntegration())); //实际支付金额
order.setIntegrationAmount(orderParam.getIntegration()); order.setIntegrationAmount(orderParam.getIntegration());
integeration = orderParam.getIntegration(); integeration = orderParam.getIntegration();
} else { } else {
order.setPayAmount(zero); order.setPayAmount(zero);
order.setIntegrationAmount(totalAmount); order.setIntegrationAmount(totalAmount);
integeration = totalAmount; integeration = totalAmount;
} }
//冻结用户余额 //冻结用户余额
member = memberMapper.selectByPrimaryKey(member.getId()); member = memberMapper.selectByPrimaryKey(member.getId());
//flag = -1,表示balance小于integerationflag = 0,表示balance等于integerationflag = 1,表示balance大于integeration //flag = -1,表示balance小于integerationflag = 0,表示balance等于integerationflag = 1,表示balance大于integeration
flag = member.getBalance().compareTo(integeration); flag = member.getBalance().compareTo(integeration);
/*if(flag == -1) { /*if(flag == -1) {
throw new RuntimeException("森态积分不足,无法抵扣"); throw new RuntimeException("森态积分不足,无法抵扣");
}*/ }*/
member.setBalance(member.getBalance().subtract(integeration)); //修改余额值 member.setBalance(member.getBalance().subtract(integeration)); //修改余额值
member.setFreeze(member.getFreeze().add(integeration)); //修改冻结值 member.setFreeze(member.getFreeze().add(integeration)); //修改冻结值
memberMapper.updateByPrimaryKey(member); memberMapper.updateByPrimaryKey(member);
} else { } else {
order.setPayAmount(totalAmount); //实际支付金额 order.setPayAmount(totalAmount); //实际支付金额
order.setIntegrationAmount(zero); order.setIntegrationAmount(zero);
} }
Date date = new Date(); Date date = new Date();
order.setMemberId(member.getId()); order.setMemberId(member.getId());
order.setCreateTime(date); order.setCreateTime(date);
order.setModifyTime(date); order.setModifyTime(date);
order.setMemberUsername(member.getUsername()); order.setMemberUsername(member.getUsername());
order.setFreightAmount(zero); //运费 order.setFreightAmount(zero); //运费
order.setPayType(isPointsExchangeStatus ? 4 : 0); // payType为4代表积分支付 order.setPayType(isPointsExchangeStatus ? 4 : 0); // payType为4代表积分支付
order.setPromotionAmount(zero); //促销优化金额(促销价、满减、阶梯价) order.setPromotionAmount(zero); //促销优化金额(促销价、满减、阶梯价)
order.setCouponAmount(zero); order.setCouponAmount(zero);
order.setDiscountAmount(zero); order.setDiscountAmount(zero);
order.setPayType(0); //支付方式0->未支付1->支付宝2->微信 order.setPayType(0); //支付方式0->未支付1->支付宝2->微信
order.setSourceType(1); //订单来源0->PC订单1->app订单 order.setSourceType(1); //订单来源0->PC订单1->app订单
order.setDeliveryType(1); //提货方式0->自提1->物流 默认为1 mcoo order.setDeliveryType(1); //提货方式0->自提1->物流 默认为1 mcoo
//生成订单号 //生成订单号
order.setOrderSn(generateOrderSn(order)); order.setOrderSn(generateOrderSn(order));
//订单状态0->待付款1->待发货2->已发货3->已完成4->已关闭5->无效订单 //订单状态0->待付款1->待发货2->已发货3->已完成4->已关闭5->无效订单
order.setStatus(0); order.setStatus(0);
//订单类型0->正常订单1->秒杀订单 2->5连订单 //订单类型0->正常订单1->秒杀订单 2->5连订单
order.setOrderType(0); order.setOrderType(0);
OmsOrderSetting orderSetting = orderSettingMapper.selectByPrimaryKey(1L); OmsOrderSetting orderSetting = orderSettingMapper.selectByPrimaryKey(1L);
order.setAutoConfirmDay(orderSetting.getConfirmOvertime()); order.setAutoConfirmDay(orderSetting.getConfirmOvertime());
order.setIntegration(0); order.setIntegration(0);
order.setGrowth(0); order.setGrowth(0);
//收货人信息:姓名、电话、邮编、地址 //收货人信息:姓名、电话、邮编、地址
order.setReceiverName(address.getName()); order.setReceiverName(address.getName());
order.setReceiverPhone(address.getPhoneNumber()); order.setReceiverPhone(address.getPhoneNumber());
order.setReceiverPostCode(address.getPostCode()); order.setReceiverPostCode(address.getPostCode());
order.setReceiverProvince(address.getProvince()); order.setReceiverProvince(address.getProvince());
order.setReceiverCity(address.getCity()); order.setReceiverCity(address.getCity());
order.setReceiverRegion(address.getRegion()); order.setReceiverRegion(address.getRegion());
order.setReceiverDetailAddress(address.getDetailAddress()); order.setReceiverDetailAddress(address.getDetailAddress());
order.setNote(orderParam.getNote() == null ? null : orderParam.getNote()); order.setNote(orderParam.getNote() == null ? null : orderParam.getNote());
//确认收货状态0->未确认1->已确认 //确认收货状态0->未确认1->已确认
order.setConfirmStatus(0); order.setConfirmStatus(0);
//删除状态0->未删除1->已删除 //删除状态0->未删除1->已删除
order.setDeleteStatus(0); order.setDeleteStatus(0);
order.setUseIntegration(0); order.setUseIntegration(0);
order.setPromotionInfo("无优惠"); order.setPromotionInfo("无优惠");
order.setSettlementStatus(0); //分销结算状态0->未结算1->已结算2->不结算) order.setSettlementStatus(0); //分销结算状态0->未结算1->已结算2->不结算)
orderMapper.insert(order); orderMapper.insert(order);
//生成订单商品信息 //生成订单商品信息
OmsOrderItem orderItem = new OmsOrderItem(); OmsOrderItem orderItem = new OmsOrderItem();
orderItem.setOrderId(order.getId()); orderItem.setOrderId(order.getId());
orderItem.setOrderSn(order.getOrderSn()); orderItem.setOrderSn(order.getOrderSn());
orderItem.setProductId(product.getId()); orderItem.setProductId(product.getId());
orderItem.setProductPic(skuStock.getPic()); orderItem.setProductPic(skuStock.getPic());
orderItem.setProductName(product.getName()); orderItem.setProductName(product.getName());
//orderItem.setProductAttr(cartPromotionItem.getProductAttr()); //orderItem.setProductAttr(cartPromotionItem.getProductAttr());
orderItem.setProductBrand(product.getBrandName()); orderItem.setProductBrand(product.getBrandName());
orderItem.setProductSn(product.getProductSn()); orderItem.setProductSn(product.getProductSn());
orderItem.setProductPrice(price); orderItem.setProductPrice(price);
orderItem.setProductQuantity(orderParam.getQuantity()); orderItem.setProductQuantity(orderParam.getQuantity());
orderItem.setProductSkuId(skuStock.getId()); orderItem.setProductSkuId(skuStock.getId());
orderItem.setProductSkuCode(skuStock.getSkuCode()); orderItem.setProductSkuCode(skuStock.getSkuCode());
orderItem.setProductCategoryId(product.getProductCategoryId()); orderItem.setProductCategoryId(product.getProductCategoryId());
orderItem.setSp1(skuStock.getSp1()); orderItem.setSp1(skuStock.getSp1());
orderItem.setSp2(skuStock.getSp2()); orderItem.setSp2(skuStock.getSp2());
orderItem.setSp3(skuStock.getSp3()); orderItem.setSp3(skuStock.getSp3());
orderItem.setPromotionName("无优惠"); orderItem.setPromotionName("无优惠");
orderItem.setPromotionAmount(new BigDecimal(0)); orderItem.setPromotionAmount(new BigDecimal(0));
//积分价格 //积分价格
orderItem.setGiftIntegration(totalPointsAmount); orderItem.setGiftIntegration(totalPointsAmount);
orderItem.setGiftGrowth(0); orderItem.setGiftGrowth(0);
orderItem.setCouponAmount(new BigDecimal(0)); orderItem.setCouponAmount(new BigDecimal(0));
orderItem.setIntegrationAmount(new BigDecimal(0)); orderItem.setIntegrationAmount(new BigDecimal(0));
orderItem.setRealAmount(new BigDecimal(0)); orderItem.setRealAmount(new BigDecimal(0));
orderItemMapper.insert(orderItem); orderItemMapper.insert(orderItem);
//超时未支付,自动取消订单 //超时未支付,自动取消订单
//分钟转换成毫秒 //分钟转换成毫秒
long delayTimes = orderSetting.getNormalOrderOvertime() * 60 * 1000; long delayTimes = orderSetting.getNormalOrderOvertime() * 60 * 1000;
cancelOrderSender.sendMessage(order.getId(), delayTimes); cancelOrderSender.sendMessage(order.getId(), delayTimes);
result.put("orderId", order.getId()); result.put("orderId", order.getId());
result.put("totalAmount", order.getPayAmount()); result.put("totalAmount", order.getPayAmount());
if (isPointsExchangeStatus) { if (isPointsExchangeStatus) {
result.put("pointsPrice", totalPointsAmount); result.put("pointsPrice", totalPointsAmount);
} }
} }
return CommonResult.success(result, "下单成功"); return CommonResult.success(result, "下单成功");
} }
/** /**
@@ -1361,7 +1361,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
// 判断是否使用积分支付 // 判断是否使用积分支付
UmsMember member = memberMapper.selectByPrimaryKey(currentMember.getId()); 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.setTransferPaymentTime(order.getPaymentTime());
accountTransaction.setRevenuePoints(-totalPointsAmount.intValue()); accountTransaction.setRevenuePoints(-totalPointsAmount.intValue());
PmsProduct pmsProduct = orderMapper.selectAll(order.getOrderSn()); PmsProduct pmsProduct = orderMapper.selectAll(order.getOrderSn());
accountTransaction.setRemarks( "商品名称" + pmsProduct.getName()); accountTransaction.setRemarks("商品名称" + pmsProduct.getName());
umsMemberAccountTransactionMapper.insert(accountTransaction); umsMemberAccountTransactionMapper.insert(accountTransaction);
// 返还积分金额到前端 // 返还积分金额到前端
@@ -1573,10 +1573,11 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
accountTransaction.setFlowType(1); accountTransaction.setFlowType(1);
accountTransaction.setTransferPaymentTime(orderResult.getPaymentTime()); accountTransaction.setTransferPaymentTime(orderResult.getPaymentTime());
accountTransaction.setRevenueAmount(payAmount.negate()); accountTransaction.setRevenueAmount(payAmount.negate());
PmsProduct pmsProduct = orderMapper.selectAll(orderResult.getOrderSn()); OmsOrderItem orderItem = orderItemMapper.getByOrderSn(orderResult.getOrderSn());
accountTransaction.setRemarks( "商品名称" + pmsProduct.getName()); accountTransaction.setRemarks("商品名称" + orderItem.getProductName());
umsMemberAccountTransactionMapper.insert(accountTransaction); umsMemberAccountTransactionMapper.insert(accountTransaction);
PmsProduct pmsProduct = orderMapper.selectAll(orderResult.getOrderSn());
//如果是积分专区的商品则进行积分专区相对应的逻辑 //如果是积分专区的商品则进行积分专区相对应的逻辑
if (pmsProduct.getPointsAreaStatus() == 1) { if (pmsProduct.getPointsAreaStatus() == 1) {
//奖励积分是购买的价格的100% //奖励积分是购买的价格的100%
@@ -1593,7 +1594,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
// 更新用户积分 // 更新用户积分
memberMapper.updateByPrimaryKey(member); memberMapper.updateByPrimaryKey(member);
//增加基金积分 //增加基金积分
int fundPoints = (int)(rewardPoints * 0.05); int fundPoints = (int) (rewardPoints * 0.05);
umsDevelopmentFundMapper.updatePoints(fundPoints); umsDevelopmentFundMapper.updatePoints(fundPoints);
//插入流水表积分 //插入流水表积分
UmsMemberAccountTransaction transaction = new UmsMemberAccountTransaction(); UmsMemberAccountTransaction transaction = new UmsMemberAccountTransaction();
@@ -1602,7 +1603,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
transaction.setFlowType(2); transaction.setFlowType(2);
transaction.setTransferPaymentTime(orderResult.getPaymentTime()); transaction.setTransferPaymentTime(orderResult.getPaymentTime());
transaction.setRevenuePoints(rewardPoints); transaction.setRevenuePoints(rewardPoints);
transaction.setRemarks( "购买商品返还积分:" + pmsProduct.getName()); transaction.setRemarks("购买商品返还积分:" + pmsProduct.getName());
umsMemberAccountTransactionMapper.insert(transaction); umsMemberAccountTransactionMapper.insert(transaction);
} }
} }
@@ -1615,8 +1616,10 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
order.setStatus(2); order.setStatus(2);
order.setPaymentTime(new Date()); order.setPaymentTime(new Date());
orderMapper.updateByPrimaryKey(order); orderMapper.updateByPrimaryKey(order);
//积分分润逻辑 if (pmsProduct.getPointsAreaStatus() == 1) {
memberPointsSplitProfitService.pointsSplit(order); //积分分润逻辑
memberPointsSplitProfitService.pointsSplit(order);
}
// 处理库存、分销等后续操作 // 处理库存、分销等后续操作
executorService.execute(() -> { executorService.execute(() -> {
@@ -1628,7 +1631,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
} }
/** /**
*处理库存的逻辑 * 处理库存的逻辑
*/ */
private void updateStock(Long orderId) { 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); memberMapper.updateByPrimaryKey(member);
//增加基金积分 //增加基金积分
int fundPoints = (int)(rewardPoints * 0.05); int fundPoints = (int) (rewardPoints * 0.05);
umsDevelopmentFundMapper.updatePoints(fundPoints); umsDevelopmentFundMapper.updatePoints(fundPoints);
//插入流水表积分 //插入流水表积分
@@ -2071,7 +2072,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
accountTransaction.setFlowType(2); accountTransaction.setFlowType(2);
accountTransaction.setTransferPaymentTime(order.getPaymentTime()); accountTransaction.setTransferPaymentTime(order.getPaymentTime());
accountTransaction.setRevenuePoints(rewardPoints); accountTransaction.setRevenuePoints(rewardPoints);
accountTransaction.setRemarks( "购买商品返还积分:" + pmsProduct.getName()); accountTransaction.setRemarks("购买商品返还积分:" + pmsProduct.getName());
umsMemberAccountTransactionMapper.insert(accountTransaction); umsMemberAccountTransactionMapper.insert(accountTransaction);
//积分分润逻辑 //积分分润逻辑

View File

@@ -529,6 +529,7 @@ public class UmsMemberServiceImpl implements UmsMemberService {
BigDecimal totalIncome = BigDecimal.ZERO; BigDecimal totalIncome = BigDecimal.ZERO;
accountTransactionExample.createCriteria() accountTransactionExample.createCriteria()
.andTransactionStateEqualTo(UmsMemberAccountTransaction.TRANSACTION_STATE_YES) .andTransactionStateEqualTo(UmsMemberAccountTransaction.TRANSACTION_STATE_YES)
.andFlowTypeEqualTo(1)
.andMemberIdEqualTo(member.getId()); .andMemberIdEqualTo(member.getId());
List<UmsMemberAccountTransaction> totalList = umsMemberAccountTransactionMapper.selectByExample(accountTransactionExample); List<UmsMemberAccountTransaction> 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 = new UmsMemberAccountTransactionExample();
accountTransactionExample.createCriteria() accountTransactionExample.createCriteria()
.andTransferPaymentTimeBetween(DateUtil.beginOfDay(nowTime) ,nowTime) .andTransferPaymentTimeBetween(DateUtil.beginOfDay(nowTime) ,nowTime)
.andTransactionStateEqualTo(UmsMemberAccountTransaction.TRANSACTION_STATE_YES) .andTransactionStateEqualTo(UmsMemberAccountTransaction.TRANSACTION_STATE_YES)
.andFlowTypeEqualTo(1)
.andMemberIdEqualTo(member.getId()); .andMemberIdEqualTo(member.getId());
List<UmsMemberAccountTransaction> todayIncomeList = umsMemberAccountTransactionMapper.selectByExample(accountTransactionExample); List<UmsMemberAccountTransaction> todayIncomeList = umsMemberAccountTransactionMapper.selectByExample(accountTransactionExample);
if(todayIncomeList!= null && !todayIncomeList.isEmpty()){ if(todayIncomeList!= null && !todayIncomeList.isEmpty()){

View File

@@ -83,6 +83,7 @@ public class VipCenterServiceImpl implements VipCenterService {
//返回订单id //返回订单id
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
result.put("orderId", order.getId()); result.put("orderId", order.getId());
result.put("orderType", order.getOrderType());
return CommonResult.success(result, "下单成功"); return CommonResult.success(result, "下单成功");
} }
} }