全免费逻辑

This commit is contained in:
2025-01-07 17:49:13 +08:00
parent 92b8283443
commit 7b0930afc4
7 changed files with 55 additions and 8 deletions

View File

@ -2,6 +2,7 @@ package com.ycwl.basic.service.impl.pc;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ycwl.basic.biz.OrderBiz;
import com.ycwl.basic.enums.StatisticEnum;
import com.ycwl.basic.exception.BaseException;
import com.ycwl.basic.mapper.FaceSampleMapper;
@ -10,6 +11,7 @@ import com.ycwl.basic.mapper.StatisticsMapper;
import com.ycwl.basic.mapper.FaceMapper;
import com.ycwl.basic.model.jwt.JwtInfo;
import com.ycwl.basic.model.mobile.face.FaceRecognizeResp;
import com.ycwl.basic.model.mobile.order.IsBuyRespVO;
import com.ycwl.basic.model.mobile.statistic.req.StatisticsRecordAddReq;
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
import com.ycwl.basic.model.pc.face.req.FaceReqQuery;
@ -62,6 +64,8 @@ public class FaceServiceImpl implements FaceService {
private SourceMapper sourceMapper;
@Autowired
private FaceSampleMapper faceSampleMapper;
@Autowired
private OrderBiz orderBiz;
@Override
public ApiResponse<PageInfo<FaceRespVO>> pageQuery(FaceReqQuery faceReqQuery) {
@ -200,7 +204,14 @@ public class FaceServiceImpl implements FaceService {
memberSourceEntity.setMemberId(userId);
memberSourceEntity.setSourceId(sourceEntity.getId());
memberSourceEntity.setType(sourceEntity.getType());
memberSourceEntity.setIsBuy(0);
IsBuyRespVO isBuy = orderBiz.isBuy(userId, scenicId, sourceEntity.getType(), sourceEntity.getId());
if (isBuy.isBuy()) { // 如果用户买过
memberSourceEntity.setIsBuy(1);
} else if (isBuy.isFree()) { // 全免费逻辑
memberSourceEntity.setIsBuy(1);
} else {
memberSourceEntity.setIsBuy(0);
}
return memberSourceEntity;
}).collect(Collectors.toList());
sourceMapper.addRelations(memberSourceEntityList);

View File

@ -20,6 +20,7 @@ import com.ycwl.basic.model.pc.faceSample.resp.FaceSampleRespVO;
import com.ycwl.basic.model.pc.member.resp.MemberRespVO;
import com.ycwl.basic.model.pc.mp.MpConfigEntity;
import com.ycwl.basic.model.pc.renderWorker.entity.RenderWorkerEntity;
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.source.resp.SourceRespVO;
@ -223,11 +224,18 @@ public class TaskTaskServiceImpl implements TaskService {
if (faceSampleList.isEmpty()) {
return;
}
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(faceRespVO.getScenicId());
List<TemplateRespVO> templateList = templateRepository.getTemplateListByScenicId(faceRespVO.getScenicId());
if (templateList == null || templateList.isEmpty()) {
return;
}
createTaskByFaceIdAndTempalteId(faceId, templateList.get(0).getId(), 1);
if (Integer.valueOf(3).equals(scenicConfig.getBookRoutine())) {
templateList.forEach(template -> {
createTaskByFaceIdAndTempalteId(faceId, template.getId(), 1);
});
} else {
createTaskByFaceIdAndTempalteId(faceId, templateList.get(0).getId(), 1);
}
}
@Override
public void createTaskByFaceIdAndTempalteId(Long faceId, Long templateId) {
@ -237,6 +245,7 @@ public class TaskTaskServiceImpl implements TaskService {
@Override
public void createTaskByFaceIdAndTempalteId(Long faceId, Long templateId, int automatic) {
FaceRespVO faceRespVO = faceMapper.getById(faceId);
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(faceRespVO.getScenicId());
List<FaceSampleRespVO> faceSampleList = faceSampleMapper.listByIds(Arrays.stream(faceRespVO.getMatchSampleIds().split(",")).map(Long::valueOf).collect(Collectors.toList()));
if (faceSampleList.isEmpty()) {
return;
@ -260,7 +269,11 @@ public class TaskTaskServiceImpl implements TaskService {
memberVideo.setScenicId(task.getScenicId());
memberVideo.setFaceId(faceId);
memberVideo.setTemplateId(task.getTemplateId());
memberVideo.setIsBuy(0);
if (Integer.valueOf(1).equals(scenicConfig.getAllFree())) {
memberVideo.setIsBuy(1);
} else {
memberVideo.setIsBuy(0);
}
memberVideo.setTaskId(task.getId());
VideoEntity video = videoMapper.findByTaskId(task.getId());
if (video != null) {