You've already forked FrameTour-BE
调整
This commit is contained in:
@ -55,8 +55,6 @@ public class LyCompatibleController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private FaceMapper faceMapper;
|
private FaceMapper faceMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private AppScenicService appScenicService;
|
|
||||||
@Autowired
|
|
||||||
private VideoRepository videoRepository;
|
private VideoRepository videoRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private VideoMapper videoMapper;
|
private VideoMapper videoMapper;
|
||||||
@ -193,7 +191,7 @@ public class LyCompatibleController {
|
|||||||
return R.error("用户没有上传过照片!");
|
return R.error("用户没有上传过照片!");
|
||||||
}
|
}
|
||||||
VideoTaskStatusVO taskStatusVO = goodsService.getTaskStatusByScenicId(member.getId(), member.getScenicId());
|
VideoTaskStatusVO taskStatusVO = goodsService.getTaskStatusByScenicId(member.getId(), member.getScenicId());
|
||||||
List<ContentPageVO> listApiResponse = appScenicService.faceContentList(faceVO.getId());
|
List<ContentPageVO> listApiResponse = faceService.faceContentList(faceVO.getId());
|
||||||
Map<Integer, List<ContentPageVO>> collect = listApiResponse.stream()
|
Map<Integer, List<ContentPageVO>> collect = listApiResponse.stream()
|
||||||
.filter(contentPageVO -> contentPageVO.getLockType() < 0)
|
.filter(contentPageVO -> contentPageVO.getLockType() < 0)
|
||||||
.collect(Collectors.groupingBy(ContentPageVO::getGoodsType));
|
.collect(Collectors.groupingBy(ContentPageVO::getGoodsType));
|
||||||
|
@ -2,6 +2,7 @@ package com.ycwl.basic.controller.mobile;
|
|||||||
|
|
||||||
import com.ycwl.basic.model.jwt.JwtInfo;
|
import com.ycwl.basic.model.jwt.JwtInfo;
|
||||||
import com.ycwl.basic.model.mobile.face.FaceRecognizeResp;
|
import com.ycwl.basic.model.mobile.face.FaceRecognizeResp;
|
||||||
|
import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO;
|
||||||
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
|
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
|
||||||
import com.ycwl.basic.service.pc.FaceService;
|
import com.ycwl.basic.service.pc.FaceService;
|
||||||
import com.ycwl.basic.utils.ApiResponse;
|
import com.ycwl.basic.utils.ApiResponse;
|
||||||
@ -69,4 +70,12 @@ AppFaceController {
|
|||||||
faceService.matchFaceId(faceId);
|
faceService.matchFaceId(faceId);
|
||||||
return ApiResponse.success("");
|
return ApiResponse.success("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation("景区视频源素材列表")
|
||||||
|
@GetMapping("/{faceId}/contentList")
|
||||||
|
public ApiResponse<List<ContentPageVO>> contentList(@PathVariable Long faceId) {
|
||||||
|
List<ContentPageVO> contentPageVOS = faceService.faceContentList(faceId);
|
||||||
|
return ApiResponse.success(contentPageVOS);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ import com.ycwl.basic.model.pc.scenic.resp.ScenicConfigResp;
|
|||||||
import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
|
import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
|
||||||
import com.ycwl.basic.repository.ScenicRepository;
|
import com.ycwl.basic.repository.ScenicRepository;
|
||||||
import com.ycwl.basic.service.mobile.AppScenicService;
|
import com.ycwl.basic.service.mobile.AppScenicService;
|
||||||
|
import com.ycwl.basic.service.pc.FaceService;
|
||||||
import com.ycwl.basic.utils.ApiResponse;
|
import com.ycwl.basic.utils.ApiResponse;
|
||||||
import com.ycwl.basic.utils.JwtTokenUtil;
|
import com.ycwl.basic.utils.JwtTokenUtil;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
@ -33,6 +34,8 @@ import java.util.List;
|
|||||||
@Api(tags = "景区相关接口")
|
@Api(tags = "景区相关接口")
|
||||||
public class AppScenicController {
|
public class AppScenicController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private FaceService faceService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private AppScenicService appScenicService;
|
private AppScenicService appScenicService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -83,13 +86,13 @@ public class AppScenicController {
|
|||||||
@ApiOperation("景区视频源素材列表")
|
@ApiOperation("景区视频源素材列表")
|
||||||
@GetMapping("/contentList/")
|
@GetMapping("/contentList/")
|
||||||
public ApiResponse<List<ContentPageVO>> contentList() {
|
public ApiResponse<List<ContentPageVO>> contentList() {
|
||||||
return appScenicService.contentListUseDefaultFace();
|
return faceService.contentListUseDefaultFace();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation("景区视频源素材列表")
|
@ApiOperation("景区视频源素材列表")
|
||||||
@GetMapping("/face/{faceId}/contentList")
|
@GetMapping("/face/{faceId}/contentList")
|
||||||
public ApiResponse<List<ContentPageVO>> contentList(@PathVariable Long faceId) {
|
public ApiResponse<List<ContentPageVO>> contentList(@PathVariable Long faceId) {
|
||||||
List<ContentPageVO> contentPageVOS = appScenicService.faceContentList(faceId);
|
List<ContentPageVO> contentPageVOS = faceService.faceContentList(faceId);
|
||||||
return ApiResponse.success(contentPageVOS);
|
return ApiResponse.success(contentPageVOS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@ import com.ycwl.basic.model.mobile.scenic.ScenicAppVO;
|
|||||||
import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO;
|
import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO;
|
||||||
import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginReq;
|
import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginReq;
|
||||||
import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginRespVO;
|
import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginRespVO;
|
||||||
import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO;
|
|
||||||
import com.ycwl.basic.model.pc.device.resp.DeviceRespVO;
|
import com.ycwl.basic.model.pc.device.resp.DeviceRespVO;
|
||||||
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
|
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
|
||||||
import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
|
import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
|
||||||
@ -24,12 +23,8 @@ public interface AppScenicService {
|
|||||||
|
|
||||||
ApiResponse<ScenicRespVO> getDetails(Long id);
|
ApiResponse<ScenicRespVO> getDetails(Long id);
|
||||||
|
|
||||||
List<ContentPageVO> faceContentList(Long faceId);
|
|
||||||
|
|
||||||
ApiResponse<ScenicLoginRespVO> login(ScenicLoginReq scenicLoginReq) throws Exception;
|
ApiResponse<ScenicLoginRespVO> login(ScenicLoginReq scenicLoginReq) throws Exception;
|
||||||
|
|
||||||
ApiResponse<List<ContentPageVO>> contentListUseDefaultFace();
|
|
||||||
|
|
||||||
ApiResponse<ScenicRespVO> getMyScenic();
|
ApiResponse<ScenicRespVO> getMyScenic();
|
||||||
|
|
||||||
ApiResponse<List<DeviceRespVO>> getMyDevices();
|
ApiResponse<List<DeviceRespVO>> getMyDevices();
|
||||||
|
@ -3,43 +3,25 @@ package com.ycwl.basic.service.mobile.impl;
|
|||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import com.ycwl.basic.biz.OrderBiz;
|
|
||||||
import com.ycwl.basic.biz.TemplateBiz;
|
|
||||||
import com.ycwl.basic.constant.BaseContextHandler;
|
import com.ycwl.basic.constant.BaseContextHandler;
|
||||||
import com.ycwl.basic.mapper.*;
|
import com.ycwl.basic.mapper.*;
|
||||||
import com.ycwl.basic.model.jwt.JwtInfo;
|
import com.ycwl.basic.model.jwt.JwtInfo;
|
||||||
import com.ycwl.basic.model.mobile.order.IsBuyRespVO;
|
|
||||||
import com.ycwl.basic.model.mobile.scenic.ScenicAppVO;
|
import com.ycwl.basic.model.mobile.scenic.ScenicAppVO;
|
||||||
import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO;
|
import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO;
|
||||||
import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginReq;
|
import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginReq;
|
||||||
import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginRespVO;
|
import com.ycwl.basic.model.mobile.scenic.account.ScenicLoginRespVO;
|
||||||
import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO;
|
|
||||||
import com.ycwl.basic.model.pc.device.resp.DeviceRespVO;
|
import com.ycwl.basic.model.pc.device.resp.DeviceRespVO;
|
||||||
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
|
|
||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicAccountEntity;
|
import com.ycwl.basic.model.pc.scenic.entity.ScenicAccountEntity;
|
||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
|
||||||
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
|
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
|
||||||
import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
|
import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
|
||||||
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
|
|
||||||
import com.ycwl.basic.model.pc.source.req.SourceReqQuery;
|
|
||||||
import com.ycwl.basic.model.pc.source.resp.SourceRespVO;
|
|
||||||
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.VideoEntity;
|
|
||||||
import com.ycwl.basic.repository.ScenicRepository;
|
|
||||||
import com.ycwl.basic.repository.VideoRepository;
|
|
||||||
import com.ycwl.basic.repository.VideoTaskRepository;
|
|
||||||
import com.ycwl.basic.service.mobile.AppScenicService;
|
import com.ycwl.basic.service.mobile.AppScenicService;
|
||||||
import com.ycwl.basic.service.pc.SourceService;
|
|
||||||
import com.ycwl.basic.utils.ApiResponse;
|
import com.ycwl.basic.utils.ApiResponse;
|
||||||
import com.ycwl.basic.utils.JwtTokenUtil;
|
import com.ycwl.basic.utils.JwtTokenUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author:longbinbin
|
* @Author:longbinbin
|
||||||
@ -54,29 +36,9 @@ public class AppScenicServiceImpl implements AppScenicService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private DeviceMapper deviceMapper;
|
private DeviceMapper deviceMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private FaceMapper faceMapper;
|
|
||||||
@Autowired
|
|
||||||
private SourceMapper sourceMapper;
|
|
||||||
@Autowired
|
|
||||||
private VideoMapper videoMapper;
|
|
||||||
@Autowired
|
|
||||||
private TemplateMapper templateMapper;
|
|
||||||
@Autowired
|
|
||||||
private ScenicAccountMapper scenicAccountMapper;
|
private ScenicAccountMapper scenicAccountMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private JwtTokenUtil jwtTokenUtil;
|
private JwtTokenUtil jwtTokenUtil;
|
||||||
@Autowired
|
|
||||||
private OrderBiz orderBiz;
|
|
||||||
@Autowired
|
|
||||||
private ScenicRepository scenicRepository;
|
|
||||||
@Autowired
|
|
||||||
private TemplateBiz templateBiz;
|
|
||||||
@Autowired
|
|
||||||
private VideoTaskRepository videoTaskRepository;
|
|
||||||
@Autowired
|
|
||||||
private VideoRepository videoRepository;
|
|
||||||
@Autowired
|
|
||||||
private SourceService sourceService;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApiResponse<PageInfo<ScenicAppVO>> pageQuery(ScenicReqQuery scenicReqQuery) {
|
public ApiResponse<PageInfo<ScenicAppVO>> pageQuery(ScenicReqQuery scenicReqQuery) {
|
||||||
@ -101,115 +63,6 @@ public class AppScenicServiceImpl implements AppScenicService {
|
|||||||
return ApiResponse.success(scenicRespVO);
|
return ApiResponse.success(scenicRespVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<ContentPageVO> faceContentList(Long faceId) {
|
|
||||||
FaceRespVO faceRespVO = faceMapper.getById(faceId);
|
|
||||||
Long userId = faceRespVO.getMemberId();
|
|
||||||
if (faceRespVO == null) {
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
List<ContentPageVO> contentList = templateMapper.listFor(faceRespVO.getScenicId());
|
|
||||||
contentList.forEach(contentPageVO -> {
|
|
||||||
List<MemberVideoEntity> memberVideoEntityList = videoMapper.userFaceTemplateVideo(userId, faceId, contentPageVO.getTemplateId());
|
|
||||||
contentPageVO.setGoodsType(0);
|
|
||||||
contentPageVO.setContentType(1);
|
|
||||||
if (!memberVideoEntityList.isEmpty()) {
|
|
||||||
contentPageVO.setIsBuy(memberVideoEntityList.get(0).getIsBuy());
|
|
||||||
contentPageVO.setContentId(memberVideoEntityList.get(0).getVideoId());
|
|
||||||
VideoEntity video = videoRepository.getVideo(contentPageVO.getContentId());
|
|
||||||
if (video != null) {
|
|
||||||
contentPageVO.setDuration(video.getDuration());
|
|
||||||
contentPageVO.setLockType(-1);
|
|
||||||
} else {
|
|
||||||
TaskEntity taskById = videoTaskRepository.getTaskById(memberVideoEntityList.get(0).getTaskId());
|
|
||||||
if (taskById == null) {
|
|
||||||
contentPageVO.setLockType(0);
|
|
||||||
} else if (taskById.getStatus() == 3) {
|
|
||||||
contentPageVO.setLockType(2);
|
|
||||||
} else {
|
|
||||||
contentPageVO.setLockType(0);
|
|
||||||
}
|
|
||||||
contentPageVO.setContentType(0);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
contentPageVO.setContentType(0);
|
|
||||||
boolean canGenerate = templateBiz.determineTemplateCanGenerate(contentPageVO.getTemplateId(), faceId);
|
|
||||||
if (canGenerate) {
|
|
||||||
contentPageVO.setLockType(0);
|
|
||||||
} else {
|
|
||||||
contentPageVO.setLockType(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
SourceReqQuery sourceReqQuery = new SourceReqQuery();
|
|
||||||
sourceReqQuery.setScenicId(faceRespVO.getScenicId());
|
|
||||||
sourceReqQuery.setFaceId(faceId);
|
|
||||||
sourceReqQuery.setMemberId(userId);
|
|
||||||
//查询源素材
|
|
||||||
List<SourceRespVO> sourceList = sourceMapper.queryByRelation(sourceReqQuery);
|
|
||||||
ContentPageVO sourceVideoContent = new ContentPageVO();
|
|
||||||
ContentPageVO sourceImageContent = new ContentPageVO();
|
|
||||||
sourceVideoContent.setName("录像集");
|
|
||||||
sourceImageContent.setName("照片集");
|
|
||||||
sourceVideoContent.setScenicId(faceRespVO.getScenicId());
|
|
||||||
sourceImageContent.setScenicId(faceRespVO.getScenicId());
|
|
||||||
sourceVideoContent.setGoodsType(1);
|
|
||||||
sourceImageContent.setGoodsType(2);
|
|
||||||
sourceVideoContent.setContentType(2);
|
|
||||||
sourceImageContent.setContentType(2);
|
|
||||||
sourceVideoContent.setLockType(-1);
|
|
||||||
sourceImageContent.setLockType(-1);
|
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(faceRespVO.getScenicId());
|
|
||||||
if (!Integer.valueOf(1).equals(scenicConfig.getDisableSourceImage())) {
|
|
||||||
IsBuyRespVO isBuyRespVO = orderBiz.isBuy(userId, faceRespVO.getScenicId(), 2, faceId);
|
|
||||||
sourceImageContent.setSourceType(isBuyRespVO.getGoodsType());
|
|
||||||
sourceImageContent.setContentId(isBuyRespVO.getGoodsId());
|
|
||||||
if (isBuyRespVO.isBuy()) {
|
|
||||||
sourceImageContent.setIsBuy(1);
|
|
||||||
} else {
|
|
||||||
sourceImageContent.setIsBuy(0);
|
|
||||||
}
|
|
||||||
List<SourceEntity> sourceEntities = sourceMapper.listImageByFaceRelation(faceRespVO.getMemberId(), faceId);
|
|
||||||
if (!sourceEntities.isEmpty()) {
|
|
||||||
sourceImageContent.setLockType(-1);
|
|
||||||
} else {
|
|
||||||
sourceImageContent.setLockType(1);
|
|
||||||
}
|
|
||||||
contentList.add(sourceImageContent);
|
|
||||||
}
|
|
||||||
if (!Integer.valueOf(1).equals(scenicConfig.getDisableSourceVideo())) {
|
|
||||||
IsBuyRespVO isBuyRespVO = orderBiz.isBuy(userId, faceRespVO.getScenicId(), 1, faceId);
|
|
||||||
sourceVideoContent.setSourceType(isBuyRespVO.getGoodsType());
|
|
||||||
sourceVideoContent.setContentId(isBuyRespVO.getGoodsId());
|
|
||||||
if (isBuyRespVO.isBuy()) {
|
|
||||||
sourceVideoContent.setIsBuy(1);
|
|
||||||
} else {
|
|
||||||
sourceVideoContent.setIsBuy(0);
|
|
||||||
}
|
|
||||||
List<SourceEntity> sourceEntities = sourceMapper.listVideoByFaceRelation(faceRespVO.getMemberId(), faceId);
|
|
||||||
if (!sourceEntities.isEmpty()) {
|
|
||||||
sourceVideoContent.setLockType(-1);
|
|
||||||
} else {
|
|
||||||
sourceVideoContent.setLockType(1);
|
|
||||||
}
|
|
||||||
contentList.add(sourceVideoContent);
|
|
||||||
}
|
|
||||||
sourceList.stream().collect(Collectors.groupingBy(SourceRespVO::getType)).forEach((type, list) -> {
|
|
||||||
if (type == 1) {
|
|
||||||
sourceVideoContent.setSourceType(1);
|
|
||||||
sourceVideoContent.setLockType(-1);
|
|
||||||
sourceVideoContent.setTemplateCoverUrl(list.get(0).getUrl());
|
|
||||||
} else {
|
|
||||||
sourceImageContent.setSourceType(2);
|
|
||||||
sourceImageContent.setLockType(-1);
|
|
||||||
sourceImageContent.setTemplateCoverUrl(list.get(0).getUrl());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return contentList;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApiResponse<ScenicLoginRespVO> login(ScenicLoginReq scenicLoginReq) throws Exception {
|
public ApiResponse<ScenicLoginRespVO> login(ScenicLoginReq scenicLoginReq) throws Exception {
|
||||||
|
|
||||||
@ -237,13 +90,6 @@ public class AppScenicServiceImpl implements AppScenicService {
|
|||||||
return ApiResponse.success(scenicLoginRespVO);
|
return ApiResponse.success(scenicLoginRespVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public ApiResponse<List<ContentPageVO>> contentListUseDefaultFace() {
|
|
||||||
FaceRespVO lastFaceByUserId = faceMapper.findLastFaceByUserId(BaseContextHandler.getUserId());
|
|
||||||
List<ContentPageVO> contentPageVOS = faceContentList(lastFaceByUserId.getId());
|
|
||||||
return ApiResponse.success(contentPageVOS);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApiResponse<ScenicRespVO> getMyScenic() {
|
public ApiResponse<ScenicRespVO> getMyScenic() {
|
||||||
String userId = BaseContextHandler.getUserId();
|
String userId = BaseContextHandler.getUserId();
|
||||||
|
@ -2,6 +2,7 @@ package com.ycwl.basic.service.pc;
|
|||||||
|
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import com.ycwl.basic.model.mobile.face.FaceRecognizeResp;
|
import com.ycwl.basic.model.mobile.face.FaceRecognizeResp;
|
||||||
|
import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO;
|
||||||
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;
|
||||||
@ -31,4 +32,8 @@ public interface FaceService {
|
|||||||
SearchFaceRespVo matchFaceId(Long faceId, boolean isNew);
|
SearchFaceRespVo matchFaceId(Long faceId, boolean isNew);
|
||||||
|
|
||||||
ApiResponse deleteFace(Long faceId);
|
ApiResponse deleteFace(Long faceId);
|
||||||
|
|
||||||
|
List<ContentPageVO> faceContentList(Long faceId);
|
||||||
|
|
||||||
|
ApiResponse<List<ContentPageVO>> contentListUseDefaultFace();
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,8 @@ import cn.hutool.core.date.DateUtil;
|
|||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import com.ycwl.basic.biz.OrderBiz;
|
import com.ycwl.basic.biz.OrderBiz;
|
||||||
|
import com.ycwl.basic.biz.TemplateBiz;
|
||||||
|
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.FaceBodyFactory;
|
||||||
@ -13,9 +15,11 @@ 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;
|
||||||
|
import com.ycwl.basic.mapper.TemplateMapper;
|
||||||
import com.ycwl.basic.mapper.VideoMapper;
|
import com.ycwl.basic.mapper.VideoMapper;
|
||||||
import com.ycwl.basic.model.mobile.face.FaceRecognizeResp;
|
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.statistic.req.StatisticsRecordAddReq;
|
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.entity.FaceEntity;
|
||||||
import com.ycwl.basic.model.pc.face.req.FaceReqQuery;
|
import com.ycwl.basic.model.pc.face.req.FaceReqQuery;
|
||||||
@ -24,9 +28,16 @@ import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity;
|
|||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
||||||
import com.ycwl.basic.model.pc.source.entity.MemberSourceEntity;
|
import com.ycwl.basic.model.pc.source.entity.MemberSourceEntity;
|
||||||
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
|
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
|
||||||
|
import com.ycwl.basic.model.pc.source.req.SourceReqQuery;
|
||||||
|
import com.ycwl.basic.model.pc.source.resp.SourceRespVO;
|
||||||
|
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.VideoEntity;
|
||||||
import com.ycwl.basic.model.task.resp.SearchFaceRespVo;
|
import com.ycwl.basic.model.task.resp.SearchFaceRespVo;
|
||||||
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.VideoTaskRepository;
|
||||||
import com.ycwl.basic.service.pc.FaceService;
|
import com.ycwl.basic.service.pc.FaceService;
|
||||||
import com.ycwl.basic.service.pc.ScenicService;
|
import com.ycwl.basic.service.pc.ScenicService;
|
||||||
import com.ycwl.basic.service.task.TaskFaceService;
|
import com.ycwl.basic.service.task.TaskFaceService;
|
||||||
@ -41,6 +52,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
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.Map;
|
||||||
@ -79,6 +91,14 @@ public class FaceServiceImpl implements FaceService {
|
|||||||
private ScenicRepository scenicRepository;
|
private ScenicRepository scenicRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ScenicService scenicService;
|
private ScenicService scenicService;
|
||||||
|
@Autowired
|
||||||
|
private TemplateMapper templateMapper;
|
||||||
|
@Autowired
|
||||||
|
private VideoRepository videoRepository;
|
||||||
|
@Autowired
|
||||||
|
private VideoTaskRepository videoTaskRepository;
|
||||||
|
@Autowired
|
||||||
|
private TemplateBiz templateBiz;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApiResponse<PageInfo<FaceRespVO>> pageQuery(FaceReqQuery faceReqQuery) {
|
public ApiResponse<PageInfo<FaceRespVO>> pageQuery(FaceReqQuery faceReqQuery) {
|
||||||
@ -303,4 +323,122 @@ public class FaceServiceImpl implements FaceService {
|
|||||||
return ApiResponse.success("删除成功");
|
return ApiResponse.success("删除成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ContentPageVO> faceContentList(Long faceId) {
|
||||||
|
FaceRespVO faceRespVO = faceMapper.getById(faceId);
|
||||||
|
Long userId = faceRespVO.getMemberId();
|
||||||
|
if (faceRespVO == null) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
List<ContentPageVO> contentList = templateMapper.listFor(faceRespVO.getScenicId());
|
||||||
|
contentList.forEach(contentPageVO -> {
|
||||||
|
List<MemberVideoEntity> memberVideoEntityList = videoMapper.userFaceTemplateVideo(userId, faceId, contentPageVO.getTemplateId());
|
||||||
|
contentPageVO.setGoodsType(0);
|
||||||
|
contentPageVO.setContentType(1);
|
||||||
|
if (!memberVideoEntityList.isEmpty()) {
|
||||||
|
contentPageVO.setIsBuy(memberVideoEntityList.get(0).getIsBuy());
|
||||||
|
contentPageVO.setContentId(memberVideoEntityList.get(0).getVideoId());
|
||||||
|
VideoEntity video = videoRepository.getVideo(contentPageVO.getContentId());
|
||||||
|
if (video != null) {
|
||||||
|
contentPageVO.setDuration(video.getDuration());
|
||||||
|
contentPageVO.setLockType(-1);
|
||||||
|
} else {
|
||||||
|
TaskEntity taskById = videoTaskRepository.getTaskById(memberVideoEntityList.get(0).getTaskId());
|
||||||
|
if (taskById == null) {
|
||||||
|
contentPageVO.setLockType(0);
|
||||||
|
} else if (taskById.getStatus() == 3) {
|
||||||
|
contentPageVO.setLockType(2);
|
||||||
|
} else {
|
||||||
|
contentPageVO.setLockType(0);
|
||||||
|
}
|
||||||
|
contentPageVO.setContentType(0);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
contentPageVO.setContentType(0);
|
||||||
|
boolean canGenerate = templateBiz.determineTemplateCanGenerate(contentPageVO.getTemplateId(), faceId);
|
||||||
|
if (canGenerate) {
|
||||||
|
contentPageVO.setLockType(0);
|
||||||
|
} else {
|
||||||
|
contentPageVO.setLockType(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
SourceReqQuery sourceReqQuery = new SourceReqQuery();
|
||||||
|
sourceReqQuery.setScenicId(faceRespVO.getScenicId());
|
||||||
|
sourceReqQuery.setFaceId(faceId);
|
||||||
|
sourceReqQuery.setMemberId(userId);
|
||||||
|
//查询源素材
|
||||||
|
List<SourceRespVO> sourceList = sourceMapper.queryByRelation(sourceReqQuery);
|
||||||
|
ContentPageVO sourceVideoContent = new ContentPageVO();
|
||||||
|
ContentPageVO sourceImageContent = new ContentPageVO();
|
||||||
|
sourceVideoContent.setName("录像集");
|
||||||
|
sourceImageContent.setName("照片集");
|
||||||
|
sourceVideoContent.setScenicId(faceRespVO.getScenicId());
|
||||||
|
sourceImageContent.setScenicId(faceRespVO.getScenicId());
|
||||||
|
sourceVideoContent.setGoodsType(1);
|
||||||
|
sourceImageContent.setGoodsType(2);
|
||||||
|
sourceVideoContent.setContentType(2);
|
||||||
|
sourceImageContent.setContentType(2);
|
||||||
|
sourceVideoContent.setLockType(-1);
|
||||||
|
sourceImageContent.setLockType(-1);
|
||||||
|
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(faceRespVO.getScenicId());
|
||||||
|
if (!Integer.valueOf(1).equals(scenicConfig.getDisableSourceImage())) {
|
||||||
|
IsBuyRespVO isBuyRespVO = orderBiz.isBuy(userId, faceRespVO.getScenicId(), 2, faceId);
|
||||||
|
sourceImageContent.setSourceType(isBuyRespVO.getGoodsType());
|
||||||
|
sourceImageContent.setContentId(isBuyRespVO.getGoodsId());
|
||||||
|
if (isBuyRespVO.isBuy()) {
|
||||||
|
sourceImageContent.setIsBuy(1);
|
||||||
|
} else {
|
||||||
|
sourceImageContent.setIsBuy(0);
|
||||||
|
}
|
||||||
|
List<SourceEntity> sourceEntities = sourceMapper.listImageByFaceRelation(faceRespVO.getMemberId(), faceId);
|
||||||
|
if (!sourceEntities.isEmpty()) {
|
||||||
|
sourceImageContent.setLockType(-1);
|
||||||
|
} else {
|
||||||
|
sourceImageContent.setLockType(1);
|
||||||
|
}
|
||||||
|
contentList.add(sourceImageContent);
|
||||||
|
}
|
||||||
|
if (!Integer.valueOf(1).equals(scenicConfig.getDisableSourceVideo())) {
|
||||||
|
IsBuyRespVO isBuyRespVO = orderBiz.isBuy(userId, faceRespVO.getScenicId(), 1, faceId);
|
||||||
|
sourceVideoContent.setSourceType(isBuyRespVO.getGoodsType());
|
||||||
|
sourceVideoContent.setContentId(isBuyRespVO.getGoodsId());
|
||||||
|
if (isBuyRespVO.isBuy()) {
|
||||||
|
sourceVideoContent.setIsBuy(1);
|
||||||
|
} else {
|
||||||
|
sourceVideoContent.setIsBuy(0);
|
||||||
|
}
|
||||||
|
List<SourceEntity> sourceEntities = sourceMapper.listVideoByFaceRelation(faceRespVO.getMemberId(), faceId);
|
||||||
|
if (!sourceEntities.isEmpty()) {
|
||||||
|
sourceVideoContent.setLockType(-1);
|
||||||
|
} else {
|
||||||
|
sourceVideoContent.setLockType(1);
|
||||||
|
}
|
||||||
|
contentList.add(sourceVideoContent);
|
||||||
|
}
|
||||||
|
sourceList.stream().collect(Collectors.groupingBy(SourceRespVO::getType)).forEach((type, list) -> {
|
||||||
|
if (type == 1) {
|
||||||
|
sourceVideoContent.setSourceType(1);
|
||||||
|
sourceVideoContent.setLockType(-1);
|
||||||
|
sourceVideoContent.setTemplateCoverUrl(list.get(0).getUrl());
|
||||||
|
} else {
|
||||||
|
sourceImageContent.setSourceType(2);
|
||||||
|
sourceImageContent.setLockType(-1);
|
||||||
|
sourceImageContent.setTemplateCoverUrl(list.get(0).getUrl());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return contentList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ApiResponse<List<ContentPageVO>> contentListUseDefaultFace() {
|
||||||
|
FaceRespVO lastFaceByUserId = faceMapper.findLastFaceByUserId(BaseContextHandler.getUserId());
|
||||||
|
List<ContentPageVO> contentPageVOS = faceContentList(lastFaceByUserId.getId());
|
||||||
|
return ApiResponse.success(contentPageVOS);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user