补充全免费逻辑

This commit is contained in:
2025-01-09 14:37:36 +08:00
parent 079f0c4268
commit c27665e513
20 changed files with 148 additions and 89 deletions

View File

@@ -8,6 +8,7 @@ import com.ycwl.basic.constant.NumberConstant;
import com.ycwl.basic.enums.*;
import com.ycwl.basic.exception.AppException;
import com.ycwl.basic.mapper.*;
import com.ycwl.basic.model.mobile.order.IsBuyRespVO;
import com.ycwl.basic.model.mobile.order.OrderAppPageReq;
import com.ycwl.basic.model.mobile.order.PriceObj;
import com.ycwl.basic.model.mobile.order.RefundOrderReq;
@@ -267,6 +268,10 @@ public class OrderServiceImpl implements OrderService {
@Override
@Transactional(rollbackFor = Exception.class)
public ApiResponse<WxPayRespVO> createOrder(Long userId, CreateOrderReqVO createOrderReqVO) throws Exception {
IsBuyRespVO isBuy = orderBiz.isBuy(userId, createOrderReqVO.getScenicId(), createOrderReqVO.getGoodsType(), createOrderReqVO.getGoodsId());
if (isBuy.isBuy()) {
return ApiResponse.fail("您已购买此内容,无需重复购买!");
}
OrderEntity order = new OrderEntity();
Long orderId = SnowFlakeUtil.getLongId();
order.setId(orderId);
@@ -281,11 +286,17 @@ public class OrderServiceImpl implements OrderService {
orderItem.setOrderId(orderId);
orderItems.add(orderItem);
PriceObj priceObj = orderBiz.queryPrice(order.getScenicId(), createOrderReqVO.getGoodsType(), createOrderReqVO.getGoodsId());
order.setSlashPrice(priceObj.getSlashPrice());
order.setPrice(priceObj.getPrice());
// promo code
// coupon
order.setPayPrice(priceObj.getPrice());
order.setStatus(OrderStateEnum.UNPAID.getState());
if (order.getPayPrice().equals(BigDecimal.ZERO)) {
order.setStatus(OrderStateEnum.PAID.getState());
order.setPayAt(new Date());
} else {
order.setStatus(OrderStateEnum.UNPAID.getState());
}
orderMapper.add(order);
int addOrderItems = orderMapper.addOrderItems(orderItems);
if (addOrderItems == NumberConstant.ZERO) {