避免bug报错

This commit is contained in:
Jerry Yan 2025-02-16 14:51:49 +08:00
parent cfb9392068
commit ec4df2eb50
5 changed files with 54 additions and 16 deletions

View File

@ -2,6 +2,7 @@ package com.ycwl.basic.biz;
import com.ycwl.basic.enums.StatisticEnum;
import com.ycwl.basic.mapper.OrderMapper;
import com.ycwl.basic.mapper.SourceMapper;
import com.ycwl.basic.mapper.StatisticsMapper;
import com.ycwl.basic.mapper.VideoMapper;
import com.ycwl.basic.model.mobile.order.IsBuyRespVO;
@ -12,9 +13,11 @@ 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.order.resp.OrderAppRespVO;
import com.ycwl.basic.model.pc.order.resp.OrderItemVO;
import com.ycwl.basic.model.pc.order.resp.OrderRespVO;
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity;
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
import com.ycwl.basic.model.pc.video.entity.VideoEntity;
import com.ycwl.basic.model.pc.video.resp.VideoRespVO;
@ -30,8 +33,10 @@ import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Optional;
@Component
public class OrderBiz {
@ -54,6 +59,8 @@ public class OrderBiz {
private StatisticsMapper statisticsMapper;
@Autowired
private OrderMapper orderMapper;
@Autowired
private SourceMapper sourceMapper;
public PriceObj queryPrice(Long scenicId, int goodsType, Long goodsId) {
PriceObj priceObj = new PriceObj();
@ -161,7 +168,32 @@ public class OrderBiz {
Date payAt = order.getPayAt();
OrderAppRespVO orderDetail = orderMapper.appDetail(orderId);
//商品创建时间
Date goodsCreateTime = orderDetail.getOrderItemList().get(0).getShootingTime();
Date goodsCreateTime = new Date();
if (!orderDetail.getOrderItemList().isEmpty()) {
OrderItemVO orderItemVO = orderDetail.getOrderItemList().get(0);
switch (orderItemVO.getGoodsType()) {
case 0:
VideoEntity video = videoRepository.getVideo(orderItemVO.getGoodsId());
if (video != null) {
goodsCreateTime = video.getCreateTime();
}
break;
case 1:
List<SourceEntity> imageSource = sourceMapper.listImageByFaceRelation(order.getMemberId(), orderItemVO.getGoodsId());
Optional<SourceEntity> min = imageSource.stream().min(Comparator.comparing(SourceEntity::getCreateTime));
if (min.isPresent()) {
goodsCreateTime = min.get().getCreateTime();
}
break;
case 2:
List<SourceEntity> videoSource = sourceMapper.listImageByFaceRelation(order.getMemberId(), orderItemVO.getGoodsId());
Optional<SourceEntity> minTime = videoSource.stream().min(Comparator.comparing(SourceEntity::getCreateTime));
if (minTime.isPresent()) {
goodsCreateTime = minTime.get().getCreateTime();
}
break;
}
}
StatisticsRecordAddReq statisticsRecordAddReq = new StatisticsRecordAddReq();
statisticsRecordAddReq.setMemberId(order.getMemberId());

View File

@ -16,6 +16,7 @@ import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
@ -49,20 +50,25 @@ public class TemplateBiz {
}
FaceEntity face = faceRepository.getFace(faceId);
List<FaceSampleEntity> faceSampleList = faceRepository.getFaceSampleList(faceId);
if (faceSampleList.isEmpty()) {
if (faceSampleList == null || faceSampleList.isEmpty()) {
return false;
}
long count;
if (scanSource) {
List<SourceEntity> sourceEntities = sourceMapper.listVideoByScenicFaceRelation(face.getScenicId(), faceId);
if (sourceEntities == null || sourceEntities.isEmpty()) {
return false;
}
count = sourceEntities.stream()
.map(SourceEntity::getDeviceId)
.filter(Objects::nonNull) // 添加对 null 的检查
.distinct()
.filter(deviceId -> placeholderList.contains(deviceId.toString()))
.count();
} else {
count = faceSampleList.stream()
.map(FaceSampleEntity::getDeviceId)
.filter(Objects::nonNull) // 添加对 null 的检查
.distinct()
.filter(deviceId -> placeholderList.contains(deviceId.toString()))
.count();
@ -101,6 +107,7 @@ public class TemplateBiz {
List<SourceEntity> sourceEntities = sourceMapper.listVideoByScenicFaceRelation(face.getScenicId(), faceId);
count = sourceEntities.stream()
.map(SourceEntity::getDeviceId)
.filter(deviceId -> deviceId != null) // 添加对 null 的检查
.distinct()
.filter(deviceId -> placeholderList.contains(deviceId.toString()))
.count();

View File

@ -397,14 +397,17 @@ public class GoodsServiceImpl implements GoodsService {
@Override
public ApiResponse<GoodsDetailVO> sourceGoodsInfo(Long userId, Long sourceId) {
SourceRespVO sourceRespVO = sourceMapper.listUserOne(userId, sourceId);
// if (sourceRespVO == null) {
// return ApiResponse.fail("该视频不属于你");
// }
if (sourceRespVO == null) {
sourceRespVO = sourceMapper.getById(sourceId);
if (sourceRespVO == null) {
return ApiResponse.fail("该视频不存在");
}
}
GoodsDetailVO goodsDetailVO = new GoodsDetailVO();
goodsDetailVO.setGoodsName("原片");
goodsDetailVO.setScenicId(sourceRespVO.getScenicId());
goodsDetailVO.setScenicName(sourceRespVO.getScenicName());
goodsDetailVO.setGoodsType(0);
goodsDetailVO.setGoodsType(sourceRespVO.getType());
goodsDetailVO.setGoodsId(sourceRespVO.getId());
goodsDetailVO.setVideoUrl(sourceRespVO.getVideoUrl());
goodsDetailVO.setTemplateCoverUrl(sourceRespVO.getUrl());

View File

@ -89,20 +89,12 @@ public class WxPayServiceImpl implements WxPayService {
@Autowired
private WechatConfig wechatConfig;
@Autowired
private HttpService httpService;
@Autowired
private OrderService orderService;
@Autowired
private PaymentMapper paymentMapper;
@Autowired
private StatisticsMapper statisticsMapper;
@Autowired
private OrderMapper orderMapper;
@Autowired
private SourceMapper sourceMapper;
@Autowired
private VideoMapper videoMapper;
@Autowired
private OrderRepository orderRepository;
@Autowired
private OrderBiz orderBiz;

View File

@ -252,6 +252,7 @@ public class TaskTaskServiceImpl implements TaskService {
DeviceEntity device = deviceRepository.getDevice(item.getDeviceId());
return Integer.valueOf(1).equals(device.getStatus());
})
.filter(item -> item.getDeviceId() != null) // 添加对 deviceId null 的检查
.collect(Collectors.groupingBy(item -> item.getDeviceId().toString()));
if (sourcesMap.isEmpty()) {
// 主动禁止没有视频源视频生成
@ -437,14 +438,17 @@ public class TaskTaskServiceImpl implements TaskService {
return;
}
List<SourceEntity> videoSourceList = sourceMapper.listVideoByScenicFaceRelation(face.getScenicId(), faceId);
if (videoSourceList == null || videoSourceList.isEmpty()) {
log.info("task callback: 没有视频源");
return;
}
Map<String, List<SourceEntity>> sourcesMap = videoSourceList.stream()
.filter(Objects::nonNull)
.filter(item -> Objects.nonNull(item.getVideoUrl()))
.peek(item -> item.setUrl(item.getVideoUrl()))
.filter(item -> {
DeviceEntity device = deviceRepository.getDevice(item.getDeviceId());
return Integer.valueOf(1).equals(device.getStatus());
})
.filter(item -> item.getDeviceId() != null) // 添加对 deviceId null 的检查
.collect(Collectors.groupingBy(item -> item.getDeviceId().toString()));
if (sourcesMap.isEmpty()) {
// 主动禁止没有视频源视频生成