From 328f90926f1e844bb0390709c831b9c327d906b8 Mon Sep 17 00:00:00 2001 From: wangjinlei <751475802@qq.com> Date: Mon, 13 May 2024 13:24:11 +0800 Subject: [PATCH] =?UTF-8?q?jf=20=E6=B6=88=E8=B4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../book/controller/BuyOrderController.java | 33 ++++++++++++++++--- .../modules/common/entity/BuyOrder.java | 4 +++ 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java index 747e829b..62f00575 100644 --- a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java +++ b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java @@ -198,7 +198,7 @@ public class BuyOrderController { @Transactional public R placeOrder(@RequestBody BuyOrder buyOrder) throws IOException { List buyOrderProductList = buyOrder.getProductList(); - // 订单总金额 + // 订单实收金额 BigDecimal totalPrice = new BigDecimal(0); //是否存在手摸或脚模,修改用户的脉穴权限 List sjc =Arrays.asList(128,129,130,131,136,137); @@ -237,9 +237,15 @@ public class BuyOrderController { } totalPrice = totalPrice.add(price.multiply(BigDecimal.valueOf(quantity))); } - + //商品价格减去优惠券的优惠金额 totalPrice = totalPrice.subtract(useCouponAmount(buyOrder)); + + //加上运费金额 totalPrice = totalPrice.add(getShoppingAmount(buyOrder)); + + //减去积分抵扣 + totalPrice = totalPrice.subtract(buyOrder.getJfDeduction()); + String orderSn = IdWorker.getTimeId().substring(0, 32); buyOrder.setOrderSn(orderSn); if(buyOrder.getAddressId()!=0){ @@ -272,15 +278,20 @@ public class BuyOrderController { if (Constants.PAYMENT_METHOD_VIRTUAL.equals(buyOrder.getPaymentMethod())) { buyOrder.setOrderStatus(Constants.ORDER_STATUS_TO_BE_SHIPPED); MyUserEntity user = this.myUserService.getById(buyOrder.getUserId()); - if (usePeanutCoin(user, totalPrice,sj_check,scqq_check,wylq_check,prescriot_b_check)) { + if (usePeanutCoin(user, totalPrice,sj_check,scqq_check,wylq_check,prescriot_b_check)&&useJfCoin(user,buyOrder.getJfDeduction())) { // 更新订单状态 if(buyOrderService.checkWlOrder(buyOrder.getOrderSn())){ buyOrderService.updateOrderStatus(user.getId(), buyOrder.getOrderSn(), "0"); }else{ buyOrderService.updateOrderStatus(user.getId(), buyOrder.getOrderSn(), "2"); } - + //记录用户虚拟币消费 recordTransaction(buyOrder, user, totalPrice); + //记录用户积分消费情况 + if(buyOrder.getJfDeduction().compareTo(BigDecimal.ZERO) > 0){ + recordJfTransaction(buyOrder, user, buyOrder.getJfDeduction()); + } + //消费用户积分并记录用户积分消费记录 addEbookToUser(buyOrderProductList, buyOrder, 0); addCourseToUser(buyOrder); } else { @@ -853,6 +864,17 @@ public class BuyOrderController { return false; } + + private boolean useJfCoin(MyUserEntity user,BigDecimal jf){ + if(user.getJf().compareTo(jf)>=0){ + user.setJf(user.getJf().subtract(jf)); + this.myUserService.updateById(user); + return true; + }else{ + return false; + } + } + /** * 交易记录 * @@ -872,6 +894,9 @@ public class BuyOrderController { transactionDetailsService.save(transactionDetailsEntity); } + private void recordJfTransaction(BuyOrder buyOrder, MyUserEntity user, BigDecimal jf){ + } + /** * 给用户添加电子书 * TODO 新版本上线删除此接口 diff --git a/src/main/java/com/peanut/modules/common/entity/BuyOrder.java b/src/main/java/com/peanut/modules/common/entity/BuyOrder.java index 993256b6..3e58b42a 100644 --- a/src/main/java/com/peanut/modules/common/entity/BuyOrder.java +++ b/src/main/java/com/peanut/modules/common/entity/BuyOrder.java @@ -93,6 +93,10 @@ public class BuyOrder implements Serializable { * 物流单号 */ private String shippingSn; + /** + * 积分抵扣 + */ + private BigDecimal jfDeduction; /** * 下单时间 */