You've already forked FrameTour-BE
额外更新少字段的relation
This commit is contained in:
@@ -8,10 +8,7 @@ import com.ycwl.basic.biz.TemplateBiz;
|
|||||||
import com.ycwl.basic.constant.BaseContextHandler;
|
import com.ycwl.basic.constant.BaseContextHandler;
|
||||||
import com.ycwl.basic.enums.StatisticEnum;
|
import com.ycwl.basic.enums.StatisticEnum;
|
||||||
import com.ycwl.basic.exception.BaseException;
|
import com.ycwl.basic.exception.BaseException;
|
||||||
import com.ycwl.basic.facebody.FaceBodyFactory;
|
|
||||||
import com.ycwl.basic.facebody.adapter.AliFaceBodyAdapter;
|
|
||||||
import com.ycwl.basic.facebody.adapter.IFaceBodyAdapter;
|
import com.ycwl.basic.facebody.adapter.IFaceBodyAdapter;
|
||||||
import com.ycwl.basic.mapper.FaceSampleMapper;
|
|
||||||
import com.ycwl.basic.mapper.SourceMapper;
|
import com.ycwl.basic.mapper.SourceMapper;
|
||||||
import com.ycwl.basic.mapper.StatisticsMapper;
|
import com.ycwl.basic.mapper.StatisticsMapper;
|
||||||
import com.ycwl.basic.mapper.FaceMapper;
|
import com.ycwl.basic.mapper.FaceMapper;
|
||||||
@@ -21,6 +18,7 @@ import com.ycwl.basic.model.mobile.face.FaceRecognizeResp;
|
|||||||
import com.ycwl.basic.model.mobile.order.IsBuyRespVO;
|
import com.ycwl.basic.model.mobile.order.IsBuyRespVO;
|
||||||
import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO;
|
import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO;
|
||||||
import com.ycwl.basic.model.mobile.statistic.req.StatisticsRecordAddReq;
|
import com.ycwl.basic.model.mobile.statistic.req.StatisticsRecordAddReq;
|
||||||
|
import com.ycwl.basic.model.pc.device.entity.DeviceConfigEntity;
|
||||||
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
|
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
|
||||||
import com.ycwl.basic.model.pc.face.req.FaceReqQuery;
|
import com.ycwl.basic.model.pc.face.req.FaceReqQuery;
|
||||||
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
|
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
|
||||||
@@ -34,6 +32,7 @@ import com.ycwl.basic.model.pc.task.entity.TaskEntity;
|
|||||||
import com.ycwl.basic.model.pc.video.entity.MemberVideoEntity;
|
import com.ycwl.basic.model.pc.video.entity.MemberVideoEntity;
|
||||||
import com.ycwl.basic.model.pc.video.entity.VideoEntity;
|
import com.ycwl.basic.model.pc.video.entity.VideoEntity;
|
||||||
import com.ycwl.basic.model.task.resp.SearchFaceRespVo;
|
import com.ycwl.basic.model.task.resp.SearchFaceRespVo;
|
||||||
|
import com.ycwl.basic.repository.DeviceRepository;
|
||||||
import com.ycwl.basic.repository.FaceRepository;
|
import com.ycwl.basic.repository.FaceRepository;
|
||||||
import com.ycwl.basic.repository.ScenicRepository;
|
import com.ycwl.basic.repository.ScenicRepository;
|
||||||
import com.ycwl.basic.repository.VideoRepository;
|
import com.ycwl.basic.repository.VideoRepository;
|
||||||
@@ -56,7 +55,6 @@ import java.util.ArrayList;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@@ -101,6 +99,8 @@ public class FaceServiceImpl implements FaceService {
|
|||||||
private VideoTaskRepository videoTaskRepository;
|
private VideoTaskRepository videoTaskRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private TemplateBiz templateBiz;
|
private TemplateBiz templateBiz;
|
||||||
|
@Autowired
|
||||||
|
private DeviceRepository deviceRepository;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApiResponse<PageInfo<FaceRespVO>> pageQuery(FaceReqQuery faceReqQuery) {
|
public ApiResponse<PageInfo<FaceRespVO>> pageQuery(FaceReqQuery faceReqQuery) {
|
||||||
@@ -282,19 +282,24 @@ public class FaceServiceImpl implements FaceService {
|
|||||||
if (sampleListIds != null && !sampleListIds.isEmpty()) {// 匹配原片:照片
|
if (sampleListIds != null && !sampleListIds.isEmpty()) {// 匹配原片:照片
|
||||||
List<SourceEntity> sourceEntities = sourceMapper.listBySampleIds(sampleListIds);
|
List<SourceEntity> sourceEntities = sourceMapper.listBySampleIds(sampleListIds);
|
||||||
List<MemberSourceEntity> memberSourceEntityList = sourceEntities.stream().map(sourceEntity -> {
|
List<MemberSourceEntity> memberSourceEntityList = sourceEntities.stream().map(sourceEntity -> {
|
||||||
|
DeviceConfigEntity deviceConfig = deviceRepository.getDeviceConfig(sourceEntity.getDeviceId());
|
||||||
MemberSourceEntity memberSourceEntity = new MemberSourceEntity();
|
MemberSourceEntity memberSourceEntity = new MemberSourceEntity();
|
||||||
memberSourceEntity.setScenicId(face.getScenicId());
|
memberSourceEntity.setScenicId(face.getScenicId());
|
||||||
memberSourceEntity.setFaceId(face.getId());
|
memberSourceEntity.setFaceId(face.getId());
|
||||||
memberSourceEntity.setMemberId(face.getMemberId());
|
memberSourceEntity.setMemberId(face.getMemberId());
|
||||||
memberSourceEntity.setSourceId(sourceEntity.getId());
|
memberSourceEntity.setSourceId(sourceEntity.getId());
|
||||||
memberSourceEntity.setType(sourceEntity.getType());
|
memberSourceEntity.setType(sourceEntity.getType());
|
||||||
IsBuyRespVO isBuy = orderBiz.isBuy(face.getMemberId(), face.getScenicId(), sourceEntity.getType(), faceEntity.getId());
|
memberSourceEntity.setIsFree(0);
|
||||||
if (isBuy.isBuy()) { // 如果用户买过
|
if (deviceConfig != null) {
|
||||||
memberSourceEntity.setIsBuy(1);
|
if (sourceEntity.getType() == 1) {
|
||||||
} else if (isBuy.isFree()) { // 全免费逻辑
|
if (Integer.valueOf(1).equals(deviceConfig.getVideoFree())) {
|
||||||
memberSourceEntity.setIsBuy(1);
|
memberSourceEntity.setIsFree(1);
|
||||||
} else {
|
}
|
||||||
memberSourceEntity.setIsBuy(0);
|
} else if (sourceEntity.getType() == 2) {
|
||||||
|
if (Integer.valueOf(1).equals(deviceConfig.getImageFree())) {
|
||||||
|
memberSourceEntity.setIsFree(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return memberSourceEntity;
|
return memberSourceEntity;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
@@ -320,8 +325,23 @@ public class FaceServiceImpl implements FaceService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} 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 (!memberSourceEntityList.isEmpty()) {
|
if (!memberSourceEntityList.isEmpty()) {
|
||||||
|
IsBuyRespVO isBuy = orderBiz.isBuy(face.getMemberId(), face.getScenicId(), memberSourceEntityList.getFirst().getType(), faceEntity.getId());
|
||||||
|
for (MemberSourceEntity memberSourceEntity : memberSourceEntityList) {
|
||||||
|
if (isBuy.isBuy()) { // 如果用户买过
|
||||||
|
memberSourceEntity.setIsBuy(1);
|
||||||
|
} else if (isBuy.isFree()) { // 全免费逻辑
|
||||||
|
memberSourceEntity.setIsBuy(1);
|
||||||
|
} else {
|
||||||
|
memberSourceEntity.setIsBuy(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
sourceMapper.addRelations(memberSourceEntityList);
|
sourceMapper.addRelations(memberSourceEntityList);
|
||||||
taskTaskService.autoCreateTaskByFaceId(face.getId());
|
taskTaskService.autoCreateTaskByFaceId(face.getId());
|
||||||
// VideoPieceGetter.Task task = new VideoPieceGetter.Task();
|
// VideoPieceGetter.Task task = new VideoPieceGetter.Task();
|
||||||
|
@@ -87,13 +87,13 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SearchFaceRespVo searchFace(Long faceId) {
|
public SearchFaceRespVo searchFace(Long faceId) {
|
||||||
FaceRespVO faceRespVO = faceMapper.getById(faceId);
|
FaceRespVO face = faceMapper.getById(faceId);
|
||||||
if (faceRespVO == null) {
|
if (face == null) {
|
||||||
SearchFaceRespVo vo = new SearchFaceRespVo();
|
SearchFaceRespVo vo = new SearchFaceRespVo();
|
||||||
vo.setSampleListIds(new ArrayList<>());
|
vo.setSampleListIds(new ArrayList<>());
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
Long scenicId = faceRespVO.getScenicId();
|
Long scenicId = face.getScenicId();
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId);
|
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId);
|
||||||
IFaceBodyAdapter faceBodyAdapter;
|
IFaceBodyAdapter faceBodyAdapter;
|
||||||
if (scenicConfig != null && scenicConfig.getFaceType() != null) {
|
if (scenicConfig != null && scenicConfig.getFaceType() != null) {
|
||||||
@@ -102,7 +102,7 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
|||||||
} else {
|
} else {
|
||||||
faceBodyAdapter = FaceBodyFactory.use();
|
faceBodyAdapter = FaceBodyFactory.use();
|
||||||
}
|
}
|
||||||
SearchFaceRespVo respVo = searchFace(faceBodyAdapter, scenicId.toString(), faceRespVO.getFaceUrl(), "系统定时任务检索");
|
SearchFaceRespVo respVo = searchFace(faceBodyAdapter, scenicId.toString(), face.getFaceUrl(), "系统定时任务检索");
|
||||||
if (respVo != null) {
|
if (respVo != null) {
|
||||||
FaceEntity faceEntity = new FaceEntity();
|
FaceEntity faceEntity = new FaceEntity();
|
||||||
faceEntity.setId(faceId);
|
faceEntity.setId(faceId);
|
||||||
@@ -120,17 +120,9 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
|||||||
MemberSourceEntity memberSourceEntity = new MemberSourceEntity();
|
MemberSourceEntity memberSourceEntity = new MemberSourceEntity();
|
||||||
memberSourceEntity.setScenicId(scenicId);
|
memberSourceEntity.setScenicId(scenicId);
|
||||||
memberSourceEntity.setFaceId(faceEntity.getId());
|
memberSourceEntity.setFaceId(faceEntity.getId());
|
||||||
memberSourceEntity.setMemberId(faceRespVO.getMemberId());
|
memberSourceEntity.setMemberId(face.getMemberId());
|
||||||
memberSourceEntity.setSourceId(sourceEntity.getId());
|
memberSourceEntity.setSourceId(sourceEntity.getId());
|
||||||
memberSourceEntity.setType(sourceEntity.getType());
|
memberSourceEntity.setType(sourceEntity.getType());
|
||||||
IsBuyRespVO isBuy = orderBiz.isBuy(faceRespVO.getMemberId(), scenicId, sourceEntity.getType(), sourceEntity.getId());
|
|
||||||
if (isBuy.isBuy()) { // 如果用户买过
|
|
||||||
memberSourceEntity.setIsBuy(1);
|
|
||||||
} else if (isBuy.isFree()) { // 全免费逻辑
|
|
||||||
memberSourceEntity.setIsBuy(1);
|
|
||||||
} else {
|
|
||||||
memberSourceEntity.setIsBuy(0);
|
|
||||||
}
|
|
||||||
memberSourceEntity.setIsFree(0);
|
memberSourceEntity.setIsFree(0);
|
||||||
if (deviceConfig != null) {
|
if (deviceConfig != null) {
|
||||||
if (sourceEntity.getType() == 1) {
|
if (sourceEntity.getType() == 1) {
|
||||||
@@ -146,11 +138,21 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
|||||||
return memberSourceEntity;
|
return memberSourceEntity;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
if (!memberSourceEntityList.isEmpty()) {
|
if (!memberSourceEntityList.isEmpty()) {
|
||||||
|
IsBuyRespVO isBuy = orderBiz.isBuy(face.getMemberId(), face.getScenicId(), memberSourceEntityList.getFirst().getType(), faceEntity.getId());
|
||||||
|
for (MemberSourceEntity memberSourceEntity : memberSourceEntityList) {
|
||||||
|
if (isBuy.isBuy()) { // 如果用户买过
|
||||||
|
memberSourceEntity.setIsBuy(1);
|
||||||
|
} else if (isBuy.isFree()) { // 全免费逻辑
|
||||||
|
memberSourceEntity.setIsBuy(1);
|
||||||
|
} else {
|
||||||
|
memberSourceEntity.setIsBuy(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
sourceMapper.addRelations(memberSourceEntityList);
|
sourceMapper.addRelations(memberSourceEntityList);
|
||||||
VideoPieceGetter.Task task = new VideoPieceGetter.Task();
|
VideoPieceGetter.Task task = new VideoPieceGetter.Task();
|
||||||
task.faceId = faceEntity.getId();
|
task.faceId = faceEntity.getId();
|
||||||
task.faceSampleIds = sampleListIds;
|
task.faceSampleIds = sampleListIds;
|
||||||
task.memberId = faceRespVO.getMemberId();
|
task.memberId = face.getMemberId();
|
||||||
VideoPieceGetter.addTask(task);
|
VideoPieceGetter.addTask(task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -131,7 +131,7 @@ public class DynamicTaskGenerator {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return face.getScenicId().equals(faceSample.getScenicId());
|
return face.getScenicId().equals(faceSample.getScenicId());
|
||||||
}).collect(Collectors.toList());
|
}).toList();
|
||||||
if (faceIdList.isEmpty()) {
|
if (faceIdList.isEmpty()) {
|
||||||
log.info("本景区人脸样本ID不在人脸样本库中,忽略任务:{}", task);
|
log.info("本景区人脸样本ID不在人脸样本库中,忽略任务:{}", task);
|
||||||
return;
|
return;
|
||||||
|
@@ -6,11 +6,11 @@
|
|||||||
values (#{id}, #{scenicId}, #{deviceId}, #{url}, #{videoUrl}, #{type}, #{faceSampleId}, #{posJson}, #{createTime})
|
values (#{id}, #{scenicId}, #{deviceId}, #{url}, #{videoUrl}, #{type}, #{faceSampleId}, #{posJson}, #{createTime})
|
||||||
</insert>
|
</insert>
|
||||||
<insert id="addRelation">
|
<insert id="addRelation">
|
||||||
replace member_source(scenic_id, face_id, member_id, source_id, is_buy, type, order_id, is_free)
|
replace member_source(scenic_id, face_id, member_id, source_id, is_buy, type, order_id<if test="isFree">, is_free</if>)
|
||||||
values (#{scenicId}, #{faceId}, #{memberId}, #{sourceId}, #{isBuy}, #{type}, #{orderId}, #{isFree})
|
values (#{scenicId}, #{faceId}, #{memberId}, #{sourceId}, #{isBuy}, #{type}, #{orderId}<if test="isFree">, #{isFree}</if>)
|
||||||
</insert>
|
</insert>
|
||||||
<insert id="addRelations">
|
<insert id="addRelations">
|
||||||
replace member_source(scenic_id, face_id, member_id, source_id, is_buy, type, order_id, is_free)
|
insert member_source(scenic_id, face_id, member_id, source_id, is_buy, type, order_id, is_free)
|
||||||
values
|
values
|
||||||
<foreach collection="list" item="item" separator=",">
|
<foreach collection="list" item="item" separator=",">
|
||||||
(#{item.scenicId}, #{item.faceId}, #{item.memberId}, #{item.sourceId}, #{item.isBuy}, #{item.type}, #{item.orderId}, #{item.isFree})
|
(#{item.scenicId}, #{item.faceId}, #{item.memberId}, #{item.sourceId}, #{item.isBuy}, #{item.type}, #{item.orderId}, #{item.isFree})
|
||||||
|
Reference in New Issue
Block a user