Merge remote-tracking branch 'origin/master'

This commit is contained in:
songmingsong
2024-12-11 14:27:59 +08:00
44 changed files with 654 additions and 178 deletions

View File

@@ -98,15 +98,15 @@ public class AppMemberServiceImpl implements AppMemberService {
List<MemberRespVO> list = memberMapper.list(memberReqQuery);
if (list.isEmpty()) {
MemberEntity memberEntity = new MemberEntity();
BeanCopierUtils.copyProperties(userInfoDTO, memberEntity);
memberEntity.setId(SnowFlakeUtil.getLongId());
memberEntity.setOpenId(openId.toString());
BeanCopierUtils.copyProperties(userInfoDTO, memberEntity);
memberMapper.add(memberEntity);
BeanCopierUtils.copyProperties(memberEntity, memberRespVO);
} else {
BeanCopierUtils.copyProperties(list.get(NumberConstant.ZERO), memberRespVO);
}
jwtInfo.setUserId(memberRespVO.getId().toString());
jwtInfo.setUserId(memberRespVO.getId());
jwtInfo.setName(memberRespVO.getNickname());
jwtInfo.setPhone(memberRespVO.getPhone());

View File

@@ -5,16 +5,26 @@ import com.github.pagehelper.PageInfo;
import com.ycwl.basic.constant.BaseContextHandler;
import com.ycwl.basic.constant.NumberConstant;
import com.ycwl.basic.mapper.pc.*;
import com.ycwl.basic.model.jwt.JwtInfo;
import com.ycwl.basic.model.mobile.goods.GoodsPageVO;
import com.ycwl.basic.model.mobile.index.TopStateResp;
import com.ycwl.basic.model.mobile.scenic.ScenicAppVO;
import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO;
import com.ycwl.basic.model.mobile.scenic.ScenicIndexVO;
import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO;
import com.ycwl.basic.model.pc.face.req.FaceReqQuery;
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
import com.ycwl.basic.model.pc.source.req.SourceReqQuery;
import com.ycwl.basic.model.pc.source.resp.SourceRespVO;
import com.ycwl.basic.model.pc.template.req.TemplateReqQuery;
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
import com.ycwl.basic.model.pc.video.req.VideoReqQuery;
import com.ycwl.basic.model.pc.video.resp.VideoRespVO;
import com.ycwl.basic.service.mobile.AppScenicService;
import com.ycwl.basic.utils.ApiResponse;
import com.ycwl.basic.utils.JwtTokenUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +32,8 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
@@ -42,6 +54,10 @@ public class AppScenicServiceImpl implements AppScenicService {
private SourceMapper sourceMapper;
@Autowired
private TaskMapper taskMapper;
@Autowired
private VideoMapper videoMapper;
@Autowired
private TemplateMapper templateMapper;
@Value("${face.score}")
private BigDecimal faceScore;
@@ -56,8 +72,8 @@ public class AppScenicServiceImpl implements AppScenicService {
@Override
public ApiResponse<ScenicDeviceCountVO> deviceCountByScenicId(Long scenicId) {
String userId = BaseContextHandler.getUserId();
ScenicDeviceCountVO scenicDeviceCountVO = deviceMapper.deviceCountByScenicId(scenicId, userId);
JwtInfo worker = JwtTokenUtil.getWorker();
ScenicDeviceCountVO scenicDeviceCountVO = deviceMapper.deviceCountByScenicId(scenicId, worker.getUserId());
return ApiResponse.success(scenicDeviceCountVO);
}
@@ -103,4 +119,62 @@ public class AppScenicServiceImpl implements AppScenicService {
return ApiResponse.success(topStateResp);
}
@Override
public ApiResponse<List<ContentPageVO>> contentList(Long scenicId) {
JwtInfo worker = JwtTokenUtil.getWorker();
//查询原素材
List<ContentPageVO> contentList = new ArrayList<>();
HashMap<Long, String> videoMap = new HashMap<>();
VideoReqQuery videoReqQuery = new VideoReqQuery();
videoReqQuery.setScenicId(scenicId);
videoReqQuery.setMemberId(worker.getUserId());
//查询成片vlog
List<VideoRespVO> videoList = videoMapper.list(videoReqQuery);
videoList.forEach(videoRespVO -> {
ContentPageVO contentPageVO = new ContentPageVO();
contentPageVO.setName(videoRespVO.getTemplateName());
contentPageVO.setContentType(1);
contentPageVO.setContentId(videoRespVO.getId());
contentPageVO.setTemplateCoverUrl(videoRespVO.getTemplateCoverUrl());
contentList.add(contentPageVO);
videoMap.put(videoRespVO.getTemplateId(),"");
});
TemplateReqQuery templateReqQuery = new TemplateReqQuery();
templateReqQuery.setScenicId(scenicId);
List<TemplateRespVO> list = templateMapper.list(templateReqQuery);
list.forEach(templateRespVO -> {
Long templateId = templateRespVO.getId();
if (!videoMap.containsKey(templateId)) {
ContentPageVO contentPageVO = new ContentPageVO();
contentPageVO.setName(templateRespVO.getName());
contentPageVO.setContentType(0);
contentPageVO.setContentId(templateId);
contentPageVO.setTemplateCoverUrl(templateRespVO.getCoverUrl());
contentList.add(contentPageVO);
}
});
SourceReqQuery sourceReqQuery = new SourceReqQuery();
videoReqQuery.setScenicId(scenicId);
videoReqQuery.setMemberId(worker.getUserId());
//查询源素材
List<SourceRespVO> sourceList = sourceMapper.listGroupByType(sourceReqQuery);
sourceList.forEach(sourceRespVO -> {
ContentPageVO contentPageVO = new ContentPageVO();
Integer type = sourceRespVO.getType();
if(type==1){
contentPageVO.setName("原片集");
}else {
contentPageVO.setName("照片集");
}
contentPageVO.setContentType(2);
contentPageVO.setSourceType(type);
contentList.add(contentPageVO);
});
return ApiResponse.success(contentList);
}
}

View File

@@ -1,20 +1,19 @@
package com.ycwl.basic.service.impl.mobile;
import com.ycwl.basic.mapper.pc.ScenicMapper;
import com.ycwl.basic.mapper.pc.SourceMapper;
import com.ycwl.basic.mapper.pc.VideoMapper;
import com.ycwl.basic.model.mobile.goods.GoodsDetailVO;
import com.ycwl.basic.model.mobile.goods.GoodsPriceQueryReq;
import com.ycwl.basic.model.mobile.goods.GoodsReqQuery;
import com.ycwl.basic.model.mobile.goods.GoodsPageVO;
import com.ycwl.basic.mapper.pc.*;
import com.ycwl.basic.model.jwt.JwtInfo;
import com.ycwl.basic.model.mobile.goods.*;
import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO;
import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
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.req.TaskReqQuery;
import com.ycwl.basic.model.pc.video.req.VideoReqQuery;
import com.ycwl.basic.model.pc.video.resp.VideoRespVO;
import com.ycwl.basic.service.mobile.GoodsService;
import com.ycwl.basic.utils.ApiResponse;
import com.ycwl.basic.utils.DateUtils;
import com.ycwl.basic.utils.JwtTokenUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -33,15 +32,20 @@ public class GoodsServiceImpl implements GoodsService {
private SourceMapper sourceMapper;
@Autowired
private ScenicMapper scenicMapper;
@Autowired
private TaskMapper taskMapper;
@Autowired
private DeviceMapper deviceMapper;
public ApiResponse<List<GoodsPageVO>> goodsList(GoodsReqQuery query) {
JwtInfo worker = JwtTokenUtil.getWorker();
//查询原素材
List<GoodsPageVO> goodsList = new ArrayList<>();
VideoReqQuery videoReqQuery = new VideoReqQuery();
videoReqQuery.setScenicId(query.getScenicId());
videoReqQuery.setIsBuy(query.getIsBuy());
videoReqQuery.setMemberId(query.getMemberId());
videoReqQuery.setMemberId(worker.getUserId());
//查询成片vlog
List<VideoRespVO> videoList = videoMapper.list(videoReqQuery);
videoList.forEach(videoRespVO -> {
@@ -164,9 +168,12 @@ public class GoodsServiceImpl implements GoodsService {
}
@Override
public ApiResponse<GoodsDetailVO> videoGoodsDetail(Long goodsId) {
GoodsDetailVO goodsDetailVO = new GoodsDetailVO();
public ApiResponse<VideoGoodsDetailVO> videoGoodsDetail(Long goodsId) {
VideoGoodsDetailVO goodsDetailVO = new VideoGoodsDetailVO();
VideoRespVO videoRespVO = videoMapper.getById(goodsId);
if(videoRespVO==null){
return ApiResponse.fail("该vlog不存在或已失效");
}
goodsDetailVO.setGoodsName(videoRespVO.getTemplateName());
goodsDetailVO.setScenicId(videoRespVO.getScenicId());
goodsDetailVO.setScenicName(videoRespVO.getScenicName());
@@ -177,6 +184,44 @@ public class GoodsServiceImpl implements GoodsService {
goodsDetailVO.setVideoUrl(videoRespVO.getVideoUrl());
goodsDetailVO.setTemplateCoverUrl(videoRespVO.getTemplateCoverUrl());
goodsDetailVO.setCreateTime(videoRespVO.getCreateTime());
goodsDetailVO.setPrice(videoRespVO.getTemplatePrice());
goodsDetailVO.setIsBuy(videoRespVO.getIsBuy());
ScenicDeviceCountVO scenicDeviceCountVO = deviceMapper.deviceCountByScenicId(videoRespVO.getScenicId(), -1L);
goodsDetailVO.setLensNum(scenicDeviceCountVO.getTotalDeviceCount());
return ApiResponse.success(goodsDetailVO);
}
/**
* 查询用户当前景区的视频合成任务状态
* @param scenicId 景区id
* @return 1 合成中 2 合成成功
*/
@Override
public ApiResponse<Integer> getAllTaskStatus(Long userId, Long scenicId) {
TaskReqQuery taskReqQuery = new TaskReqQuery();
taskReqQuery.setMemberId(userId);
taskReqQuery.setScenicId(scenicId);
taskReqQuery.setStatus(2);
int count=taskMapper.countTask(taskReqQuery);
if(count>0){
return ApiResponse.success(1);
}else {
return ApiResponse.success(2);
}
}
@Override
public ApiResponse<Integer> getTemplateTaskStatus(Long userId, Long templateId) {
TaskReqQuery taskReqQuery = new TaskReqQuery();
taskReqQuery.setMemberId(userId);
taskReqQuery.setScenicId(templateId);
taskReqQuery.setStatus(2);
int count=taskMapper.countTask(taskReqQuery);
if(count>0){
return ApiResponse.success(1);
}else {
return ApiResponse.success(2);
}
}
}