消费
This commit is contained in:
wangjinlei
2024-05-13 13:24:11 +08:00
parent 550e95cd47
commit 328f90926f
2 changed files with 33 additions and 4 deletions

View File

@@ -198,7 +198,7 @@ public class BuyOrderController {
@Transactional @Transactional
public R placeOrder(@RequestBody BuyOrder buyOrder) throws IOException { public R placeOrder(@RequestBody BuyOrder buyOrder) throws IOException {
List<BuyOrderProduct> buyOrderProductList = buyOrder.getProductList(); List<BuyOrderProduct> buyOrderProductList = buyOrder.getProductList();
// 订单金额 // 订单实收金额
BigDecimal totalPrice = new BigDecimal(0); BigDecimal totalPrice = new BigDecimal(0);
//是否存在手摸或脚模,修改用户的脉穴权限 //是否存在手摸或脚模,修改用户的脉穴权限
List<Integer> sjc =Arrays.asList(128,129,130,131,136,137); List<Integer> 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.add(price.multiply(BigDecimal.valueOf(quantity)));
} }
//商品价格减去优惠券的优惠金额
totalPrice = totalPrice.subtract(useCouponAmount(buyOrder)); totalPrice = totalPrice.subtract(useCouponAmount(buyOrder));
//加上运费金额
totalPrice = totalPrice.add(getShoppingAmount(buyOrder)); totalPrice = totalPrice.add(getShoppingAmount(buyOrder));
//减去积分抵扣
totalPrice = totalPrice.subtract(buyOrder.getJfDeduction());
String orderSn = IdWorker.getTimeId().substring(0, 32); String orderSn = IdWorker.getTimeId().substring(0, 32);
buyOrder.setOrderSn(orderSn); buyOrder.setOrderSn(orderSn);
if(buyOrder.getAddressId()!=0){ if(buyOrder.getAddressId()!=0){
@@ -272,15 +278,20 @@ public class BuyOrderController {
if (Constants.PAYMENT_METHOD_VIRTUAL.equals(buyOrder.getPaymentMethod())) { if (Constants.PAYMENT_METHOD_VIRTUAL.equals(buyOrder.getPaymentMethod())) {
buyOrder.setOrderStatus(Constants.ORDER_STATUS_TO_BE_SHIPPED); buyOrder.setOrderStatus(Constants.ORDER_STATUS_TO_BE_SHIPPED);
MyUserEntity user = this.myUserService.getById(buyOrder.getUserId()); 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())){ if(buyOrderService.checkWlOrder(buyOrder.getOrderSn())){
buyOrderService.updateOrderStatus(user.getId(), buyOrder.getOrderSn(), "0"); buyOrderService.updateOrderStatus(user.getId(), buyOrder.getOrderSn(), "0");
}else{ }else{
buyOrderService.updateOrderStatus(user.getId(), buyOrder.getOrderSn(), "2"); buyOrderService.updateOrderStatus(user.getId(), buyOrder.getOrderSn(), "2");
} }
//记录用户虚拟币消费
recordTransaction(buyOrder, user, totalPrice); recordTransaction(buyOrder, user, totalPrice);
//记录用户积分消费情况
if(buyOrder.getJfDeduction().compareTo(BigDecimal.ZERO) > 0){
recordJfTransaction(buyOrder, user, buyOrder.getJfDeduction());
}
//消费用户积分并记录用户积分消费记录
addEbookToUser(buyOrderProductList, buyOrder, 0); addEbookToUser(buyOrderProductList, buyOrder, 0);
addCourseToUser(buyOrder); addCourseToUser(buyOrder);
} else { } else {
@@ -853,6 +864,17 @@ public class BuyOrderController {
return false; 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); transactionDetailsService.save(transactionDetailsEntity);
} }
private void recordJfTransaction(BuyOrder buyOrder, MyUserEntity user, BigDecimal jf){
}
/** /**
* 给用户添加电子书 * 给用户添加电子书
* TODO 新版本上线删除此接口 * TODO 新版本上线删除此接口

View File

@@ -93,6 +93,10 @@ public class BuyOrder implements Serializable {
* 物流单号 * 物流单号
*/ */
private String shippingSn; private String shippingSn;
/**
* 积分抵扣
*/
private BigDecimal jfDeduction;
/** /**
* 下单时间 * 下单时间
*/ */