This commit is contained in:
2025-01-21 14:48:58 +08:00
parent 812a4b6331
commit 29715bda78
16 changed files with 336 additions and 116 deletions

View File

@ -1,11 +1,12 @@
package com.ycwl.basic.biz;
import com.ycwl.basic.mapper.FaceMapper;
import com.ycwl.basic.mapper.VideoMapper;
import com.ycwl.basic.model.mobile.order.IsBuyRespVO;
import com.ycwl.basic.model.mobile.order.PriceObj;
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
import com.ycwl.basic.model.pc.order.entity.OrderEntity;
import com.ycwl.basic.model.pc.order.entity.OrderItemEntity;
import com.ycwl.basic.model.pc.order.req.OrderUpdateReq;
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity;
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
@ -13,11 +14,15 @@ import com.ycwl.basic.model.pc.video.resp.VideoRespVO;
import com.ycwl.basic.repository.FaceRepository;
import com.ycwl.basic.repository.OrderRepository;
import com.ycwl.basic.repository.ScenicRepository;
import com.ycwl.basic.repository.SourceRepository;
import com.ycwl.basic.repository.TemplateRepository;
import com.ycwl.basic.repository.VideoRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Component
public class OrderBiz {
@ -32,6 +37,10 @@ public class OrderBiz {
private OrderRepository orderRepository;
@Autowired
private FaceRepository faceRepository;
@Autowired
private SourceRepository sourceRepository;
@Autowired
private VideoRepository videoRepository;
public PriceObj queryPrice(Long scenicId, int goodsType, Long goodsId) {
PriceObj priceObj = new PriceObj();
@ -99,6 +108,19 @@ public class OrderBiz {
public IsBuyRespVO isBuy(Long userId, Long scenicId, int goodsType, Long goodsId) {
IsBuyRespVO respVO = new IsBuyRespVO();
boolean isBuy = orderRepository.checkUserBuyItem(userId, goodsType, goodsId);
// 免费送逻辑,之前已经赠送了的
if (!isBuy) {
switch (goodsType) {
case 0:
isBuy = videoRepository.getUserIsBuy(userId, goodsId);
break;
case 1:
case 2:
isBuy = sourceRepository.getUserIsBuy(userId, goodsType, goodsId);
break;
}
}
// 还是没买
respVO.setBuy(isBuy);
if (!isBuy) {
PriceObj priceObj = queryPrice(scenicId, goodsType, goodsId);
@ -113,4 +135,65 @@ public class OrderBiz {
}
return respVO;
}
public void paidOrder(Long orderId) {
orderRepository.clearOrderCache(orderId); // 检查支付呢,还缓存
OrderEntity order = orderRepository.getOrder(orderId);
List<OrderItemEntity> orderItems = orderRepository.getOrderItems(orderId);
OrderEntity orderUpdate = new OrderEntity();
orderUpdate.setPayAt(new Date());
orderUpdate.setStatus(1);
orderRepository.updateOrder(orderId, orderUpdate);
orderItems.forEach(item -> {
switch (item.getGoodsType()) {
case 0: // vlog视频
videoRepository.setUserIsBuyItem(order.getMemberId(), item.getGoodsId(), order.getId());
case 1: // 视频原素材
case 2: // 照片原素材
sourceRepository.setUserIsBuyItem(order.getMemberId(), item.getGoodsType(), item.getGoodsId(), order.getId());
}
});
orderRepository.clearOrderCache(orderId); // 更新完了,清理下
}
public void cancelOrder(Long orderId) {
orderRepository.clearOrderCache(orderId); // 检查支付呢,还缓存
OrderEntity order = orderRepository.getOrder(orderId);
List<OrderItemEntity> orderItems = orderRepository.getOrderItems(orderId);
OrderEntity orderUpdate = new OrderEntity();
orderUpdate.setCancelAt(new Date());
orderUpdate.setStatus(9);
orderRepository.updateOrder(orderId, orderUpdate);
orderItems.forEach(item -> {
switch (item.getGoodsType()) {
case 0: // vlog视频
videoRepository.setUserNotBuyItem(order.getMemberId(), item.getGoodsId());
case 1: // 视频原素材
case 2: // 照片原素材
sourceRepository.setUserNotBuyItem(order.getMemberId(), item.getGoodsType(), item.getGoodsId());
}
});
orderRepository.clearOrderCache(orderId); // 更新完了,清理下
}
public void refundOrder(Long orderId) {
orderRepository.clearOrderCache(orderId);
OrderEntity order = orderRepository.getOrder(orderId);
List<OrderItemEntity> orderItems = orderRepository.getOrderItems(orderId);
OrderEntity orderUpdate = new OrderEntity();
orderUpdate.setRefundAt(new Date());
orderUpdate.setStatus(2);
orderUpdate.setRefundStatus(1);
orderRepository.updateOrder(orderId, orderUpdate);
orderItems.forEach(item -> {
switch (item.getGoodsType()) {
case 0: // vlog视频
videoRepository.setUserNotBuyItem(order.getMemberId(), item.getGoodsId());
case 1: // 视频原素材
case 2: // 照片原素材
sourceRepository.setUserNotBuyItem(order.getMemberId(), item.getGoodsType(), item.getGoodsId());
}
});
orderRepository.clearOrderCache(orderId); // 更新完了,清理下
}
}