You've already forked FrameTour-BE
修复送照片,支持送原片
This commit is contained in:
@@ -44,6 +44,7 @@ import com.ycwl.basic.service.task.TaskService;
|
||||
import com.ycwl.basic.storage.StorageFactory;
|
||||
import com.ycwl.basic.storage.adapters.IStorageAdapter;
|
||||
import com.ycwl.basic.storage.utils.StorageUtil;
|
||||
import com.ycwl.basic.task.VideoPieceGetter;
|
||||
import com.ycwl.basic.utils.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -303,33 +304,34 @@ public class FaceServiceImpl implements FaceService {
|
||||
}
|
||||
return memberSourceEntity;
|
||||
}).collect(Collectors.toList());
|
||||
List<Long> freeSourceIds = new ArrayList<>();
|
||||
List<MemberSourceEntity> photoSource = memberSourceEntityList.stream().filter(item -> item.getIsFree() == 0).filter(item -> Integer.valueOf(2).equals(item.getType())).toList();
|
||||
if (isNew) {
|
||||
// 送照片逻辑
|
||||
if (scenicConfig != null && scenicConfig.getPhotoFreeNum() != null && scenicConfig.getPhotoFreeNum() > 0) {
|
||||
List<Integer> randInt = new ArrayList<>();
|
||||
if (scenicConfig.getPhotoFreeNum() > memberSourceEntityList.size()) {
|
||||
for (MemberSourceEntity memberSourceEntity : memberSourceEntityList) {
|
||||
memberSourceEntity.setIsFree(1);
|
||||
}
|
||||
if (scenicConfig.getPhotoFreeNum() > photoSource.size()) {
|
||||
freeSourceIds.addAll(photoSource.stream().map(MemberSourceEntity::getSourceId).toList());
|
||||
} else {
|
||||
for (int i = 0; i < scenicConfig.getPhotoFreeNum(); i++) {
|
||||
// 随机
|
||||
Integer idx;
|
||||
while (true) {
|
||||
idx = new Random().nextInt(memberSourceEntityList.size());
|
||||
if (!randInt.contains(idx)) {
|
||||
randInt.add(idx);
|
||||
break;
|
||||
}
|
||||
}
|
||||
memberSourceEntityList.get(idx).setIsFree(1);
|
||||
}
|
||||
freeSourceIds.addAll(photoSource.stream().limit(scenicConfig.getPhotoFreeNum()).map(MemberSourceEntity::getSourceId).toList());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
List<MemberSourceEntity> sourceEntitiesExist = sourceMapper.listByFaceRelation(face.getMemberId(), faceId, 2);
|
||||
memberSourceEntityList = memberSourceEntityList.stream().filter(memberSourceEntity -> {
|
||||
return sourceEntitiesExist.stream().noneMatch(sourceEntity -> sourceEntity.getSourceId().equals(memberSourceEntity.getSourceId()));
|
||||
}).toList();
|
||||
// 重新切视频逻辑
|
||||
if (scenicConfig != null && !Integer.valueOf(1).equals(scenicConfig.getDisableSourceVideo())) {
|
||||
long videoCount = memberSourceEntityList.stream().filter(item -> item.getType().equals(1)).count();
|
||||
long photoCount = memberSourceEntityList.stream().filter(item -> item.getType().equals(2)).count();
|
||||
if (photoCount > videoCount) {
|
||||
VideoPieceGetter.Task task = new VideoPieceGetter.Task();
|
||||
task.faceId = faceId;
|
||||
task.faceSampleIds = sampleListIds;
|
||||
task.templateId = null;
|
||||
task.memberId = face.getMemberId();
|
||||
task.callback = () -> {
|
||||
log.info("task callback: {}", task);
|
||||
};
|
||||
VideoPieceGetter.addTask(task);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!memberSourceEntityList.isEmpty()) {
|
||||
IsBuyRespVO isBuy = orderBiz.isBuy(face.getMemberId(), face.getScenicId(), memberSourceEntityList.getFirst().getType(), faceEntity.getId());
|
||||
@@ -341,14 +343,12 @@ public class FaceServiceImpl implements FaceService {
|
||||
} else {
|
||||
memberSourceEntity.setIsBuy(0);
|
||||
}
|
||||
if (freeSourceIds.contains(memberSourceEntity.getSourceId())) {
|
||||
memberSourceEntity.setIsFree(1);
|
||||
}
|
||||
}
|
||||
sourceMapper.addRelations(memberSourceEntityList);
|
||||
taskTaskService.autoCreateTaskByFaceId(face.getId());
|
||||
// VideoPieceGetter.Task task = new VideoPieceGetter.Task();
|
||||
// task.faceId = face.getId();
|
||||
// task.faceSampleIds = sampleListIds;
|
||||
// task.memberId = face.getMemberId();
|
||||
// VideoPieceGetter.addTask(task);
|
||||
}
|
||||
}
|
||||
return scenicDbSearchResult;
|
||||
|
Reference in New Issue
Block a user