You've already forked FrameTour-BE
bug
This commit is contained in:
@@ -142,7 +142,7 @@ public class AppScenicServiceImpl implements AppScenicService {
|
||||
List<MemberVideoEntity> memberVideoEntityList = videoMapper.userFaceTemplateVideo(worker.getUserId(), faceId, contentPageVO.getTemplateId());
|
||||
if (!memberVideoEntityList.isEmpty()) {
|
||||
contentPageVO.setIsBuy(memberVideoEntityList.get(0).getIsBuy());
|
||||
contentPageVO.setContentId(memberVideoEntityList.get(0).getId());
|
||||
contentPageVO.setContentId(memberVideoEntityList.get(0).getVideoId());
|
||||
}
|
||||
});
|
||||
|
||||
@@ -181,7 +181,10 @@ public class AppScenicServiceImpl implements AppScenicService {
|
||||
List<MemberVideoEntity> memberVideoEntityList = videoMapper.userFaceTemplateVideo(userId, faceId, contentPageVO.getTemplateId());
|
||||
if (!memberVideoEntityList.isEmpty()) {
|
||||
contentPageVO.setIsBuy(memberVideoEntityList.get(0).getIsBuy());
|
||||
contentPageVO.setContentId(memberVideoEntityList.get(0).getId());
|
||||
contentPageVO.setContentId(memberVideoEntityList.get(0).getVideoId());
|
||||
contentPageVO.setContentType(1);
|
||||
} else {
|
||||
contentPageVO.setContentType(0);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -9,8 +9,10 @@ import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
|
||||
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.task.entity.TaskEntity;
|
||||
import com.ycwl.basic.model.pc.task.resp.TaskRespVO;
|
||||
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.req.VideoReqQuery;
|
||||
import com.ycwl.basic.model.pc.video.resp.VideoRespVO;
|
||||
import com.ycwl.basic.service.mobile.GoodsService;
|
||||
@@ -25,6 +27,7 @@ import java.math.RoundingMode;
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -61,7 +64,7 @@ public class GoodsServiceImpl implements GoodsService {
|
||||
goodsPageVO.setGoodsName(videoRespVO.getTemplateName());
|
||||
goodsPageVO.setScenicId(videoRespVO.getScenicId());
|
||||
goodsPageVO.setScenicName(videoRespVO.getScenicName());
|
||||
goodsPageVO.setGoodsType(1);
|
||||
goodsPageVO.setGoodsType(0);
|
||||
goodsPageVO.setGoodsId(videoRespVO.getId());
|
||||
goodsPageVO.setTemplateName(videoRespVO.getTemplateName());
|
||||
goodsPageVO.setTemplateCoverUrl(videoRespVO.getTemplateCoverUrl());
|
||||
@@ -79,10 +82,10 @@ public class GoodsServiceImpl implements GoodsService {
|
||||
GoodsPageVO goodsPageVO = new GoodsPageVO();
|
||||
if (type == 1) {
|
||||
goodsPageVO.setGoodsName("原片集");
|
||||
goodsPageVO.setGoodsType(2);
|
||||
goodsPageVO.setGoodsType(1);
|
||||
} else {
|
||||
goodsPageVO.setGoodsName("照片集");
|
||||
goodsPageVO.setGoodsType(3);
|
||||
goodsPageVO.setGoodsType(2);
|
||||
}
|
||||
goodsPageVO.setScenicId(query.getScenicId());
|
||||
goodsList.add(goodsPageVO);
|
||||
@@ -126,7 +129,7 @@ public class GoodsServiceImpl implements GoodsService {
|
||||
goodsDetailVO.setScenicName(sourceRespVO.getScenicName());
|
||||
goodsDetailVO.setLongitude(sourceRespVO.getLongitude());
|
||||
goodsDetailVO.setLatitude(sourceRespVO.getLatitude());
|
||||
goodsDetailVO.setGoodsType(2);
|
||||
goodsDetailVO.setGoodsType(sourceType);
|
||||
goodsDetailVO.setSourceType(sourceType);
|
||||
goodsDetailVO.setGoodsId(sourceRespVO.getId());
|
||||
goodsDetailVO.setVideoUrl(sourceRespVO.getVideoUrl());
|
||||
@@ -144,20 +147,20 @@ public class GoodsServiceImpl implements GoodsService {
|
||||
public ApiResponse<BigDecimal> queryPrice(GoodsPriceQueryReq queryPriceData) {
|
||||
Integer goodsType = queryPriceData.getGoodsType();
|
||||
|
||||
if(goodsType==1){//成片vlog
|
||||
if(goodsType==0){//成片vlog
|
||||
//成片的价格就是成片所用template的价格
|
||||
Long videoId = queryPriceData.getGoodsId();
|
||||
VideoRespVO videoRespVO = videoMapper.getById(videoId);
|
||||
if(videoRespVO==null){
|
||||
return ApiResponse.fail("该vlog不存在或已失效");
|
||||
}
|
||||
BigDecimal tmplatePrice = videoRespVO.getTemplatePrice();
|
||||
if(tmplatePrice==null){
|
||||
BigDecimal templatePrice = videoRespVO.getTemplatePrice();
|
||||
if(templatePrice==null){
|
||||
return ApiResponse.fail("该vlog使用的模板价格或状态异常,请联系管理员");
|
||||
}
|
||||
return ApiResponse.success(tmplatePrice);
|
||||
return ApiResponse.success(templatePrice);
|
||||
|
||||
}else if(goodsType==2){//原素材
|
||||
}else if(goodsType==1 || goodsType == 2){//原素材
|
||||
//原素材的价格就是原素材对应景区定的价格
|
||||
Long scenicId = queryPriceData.getScenicId();
|
||||
ScenicRespVO scenicRespVO = scenicMapper.getById(scenicId);
|
||||
@@ -174,27 +177,35 @@ public class GoodsServiceImpl implements GoodsService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResponse<VideoGoodsDetailVO> videoGoodsDetail(Long goodsId) {
|
||||
public ApiResponse<VideoGoodsDetailVO> videoGoodsDetail(Long userId, Long videoId) {
|
||||
MemberVideoEntity entity = videoMapper.queryUserVideo(userId, videoId);
|
||||
if (entity == null) {
|
||||
return ApiResponse.fail("该视频不属于您");
|
||||
}
|
||||
VideoGoodsDetailVO goodsDetailVO = new VideoGoodsDetailVO();
|
||||
VideoRespVO videoRespVO = videoMapper.getById(goodsId);
|
||||
VideoRespVO videoRespVO = videoMapper.getById(videoId);
|
||||
if(videoRespVO==null){
|
||||
return ApiResponse.fail("该vlog不存在或已失效");
|
||||
}
|
||||
goodsDetailVO.setGoodsName(videoRespVO.getTemplateName());
|
||||
goodsDetailVO.setScenicId(videoRespVO.getScenicId());
|
||||
goodsDetailVO.setScenicName(videoRespVO.getScenicName());
|
||||
goodsDetailVO.setGoodsType(1);
|
||||
goodsDetailVO.setGoodsType(0);
|
||||
goodsDetailVO.setGoodsId(videoRespVO.getId());
|
||||
goodsDetailVO.setVideoUrl(videoRespVO.getVideoUrl());
|
||||
goodsDetailVO.setTemplateCoverUrl(videoRespVO.getTemplateCoverUrl());
|
||||
goodsDetailVO.setCreateTime(videoRespVO.getCreateTime());
|
||||
BigDecimal templatePrice = videoRespVO.getTemplatePrice();
|
||||
BigDecimal slashPrice = videoRespVO.getSlashPrice();
|
||||
// 使用DecimalFormat格式化输出
|
||||
DecimalFormat df = new DecimalFormat("0.00");
|
||||
goodsDetailVO.setPrice(templatePrice==null?"":df.format(templatePrice.setScale(2, RoundingMode.HALF_UP)));
|
||||
goodsDetailVO.setSlashPrice(slashPrice==null?null:df.format(slashPrice.setScale(2, RoundingMode.HALF_UP)));
|
||||
goodsDetailVO.setIsBuy(videoRespVO.getIsBuy());
|
||||
if (entity.getIsBuy() == 1) {
|
||||
goodsDetailVO.setIsBuy(1);
|
||||
} else {
|
||||
goodsDetailVO.setIsBuy(0);
|
||||
BigDecimal templatePrice = videoRespVO.getTemplatePrice();
|
||||
BigDecimal slashPrice = videoRespVO.getSlashPrice();
|
||||
// 使用DecimalFormat格式化输出
|
||||
DecimalFormat df = new DecimalFormat("0.00");
|
||||
goodsDetailVO.setPrice(templatePrice==null?"":df.format(templatePrice.setScale(2, RoundingMode.HALF_UP)));
|
||||
goodsDetailVO.setSlashPrice(slashPrice==null?null:df.format(slashPrice.setScale(2, RoundingMode.HALF_UP)));
|
||||
}
|
||||
TaskRespVO taskRespVO = taskMapper.getById(videoRespVO.getTaskId());
|
||||
JSONObject paramJson = JSON.parseObject(taskRespVO.getTaskParams());
|
||||
long deviceCount;
|
||||
@@ -204,7 +215,7 @@ public class GoodsServiceImpl implements GoodsService {
|
||||
deviceCount = paramJson.keySet().stream().filter(StringUtils::isNumeric).count();
|
||||
}
|
||||
goodsDetailVO.setLensNum((int) deviceCount);
|
||||
goodsDetailVO.setFaceId(taskRespVO.getFaceId());
|
||||
goodsDetailVO.setFaceId(entity.getFaceId());
|
||||
return ApiResponse.success(goodsDetailVO);
|
||||
}
|
||||
|
||||
@@ -216,27 +227,28 @@ public class GoodsServiceImpl implements GoodsService {
|
||||
*/
|
||||
@Override
|
||||
public ApiResponse<VideoTaskStatusVO> getTaskStatusByFaceId(Long userId, Long faceId) {
|
||||
TaskReqQuery taskReqQuery = new TaskReqQuery();
|
||||
taskReqQuery.setMemberId(userId);
|
||||
taskReqQuery.setFaceId(faceId);
|
||||
List<TaskEntity> taskList = videoMapper.listTaskByFaceRelation(userId, faceId);
|
||||
VideoTaskStatusVO response = new VideoTaskStatusVO();
|
||||
List<TaskRespVO> list=taskMapper.list(taskReqQuery);
|
||||
if(list.isEmpty()){//没有任务
|
||||
response.setFaceId(faceId);
|
||||
if (taskList.isEmpty()) {
|
||||
response.setStatus(0);
|
||||
return ApiResponse.success(response);
|
||||
}
|
||||
Optional<TaskRespVO> first = list.stream().filter(item -> item.getStatus() == 0 || item.getStatus() == 2).findFirst();
|
||||
if (first.isPresent()) {
|
||||
response.setStatus(1);
|
||||
response.setScenicId(first.get().getScenicId());
|
||||
response.setFaceId(first.get().getFaceId());
|
||||
return ApiResponse.success(response);
|
||||
} else {
|
||||
response.setStatus(2);
|
||||
response.setScenicId(list.get(0).getScenicId());
|
||||
response.setFaceId(list.get(0).getFaceId());
|
||||
long nullTask = taskList.stream().filter(Objects::isNull).count();
|
||||
if (nullTask > 0) {
|
||||
response.setStatus(0);
|
||||
return ApiResponse.success(response);
|
||||
}
|
||||
Optional<TaskEntity> taskEntity = taskList.stream().filter(task -> 1 == task.getStatus()).findFirst();
|
||||
if (taskEntity.isPresent()) {
|
||||
response.setTemplateId(taskEntity.get().getTemplateId());
|
||||
VideoEntity video = videoMapper.findByTaskId(taskEntity.get().getId());
|
||||
response.setVideoId(video.getId());
|
||||
response.setStatus(1);
|
||||
} else {
|
||||
response.setStatus(2);
|
||||
}
|
||||
return ApiResponse.success(response);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -246,48 +258,52 @@ public class GoodsServiceImpl implements GoodsService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResponse<Integer> getTemplateTaskStatus(Long userId, Long templateId) {
|
||||
TaskReqQuery taskReqQuery = new TaskReqQuery();
|
||||
taskReqQuery.setMemberId(userId);
|
||||
taskReqQuery.setTemplateId(templateId);
|
||||
int allCount=taskMapper.countTask(taskReqQuery);
|
||||
if(allCount==0){//没有任务
|
||||
return ApiResponse.success(0);
|
||||
public ApiResponse<VideoTaskStatusVO> getTemplateTaskStatus(Long userId, Long faceId, Long templateId) {
|
||||
List<TaskEntity> taskList = videoMapper.listTaskByFaceTemplateRelation(userId, faceId, templateId);
|
||||
VideoTaskStatusVO response = new VideoTaskStatusVO();
|
||||
response.setFaceId(faceId);
|
||||
if (taskList.isEmpty()) {
|
||||
response.setStatus(0);
|
||||
return ApiResponse.success(response);
|
||||
}
|
||||
taskReqQuery.setStatus(2);
|
||||
int count=taskMapper.countTask(taskReqQuery);
|
||||
if(count>0){
|
||||
return ApiResponse.success(1);
|
||||
}else {
|
||||
return ApiResponse.success(2);
|
||||
Optional<TaskEntity> taskEntity = taskList.stream().filter(task -> task.getStatus() == 1).findFirst();
|
||||
if (taskEntity.isPresent()) {
|
||||
response.setTemplateId(taskEntity.get().getTemplateId());
|
||||
VideoEntity video = videoMapper.findByTaskId(taskEntity.get().getId());
|
||||
response.setVideoId(video.getId());
|
||||
response.setStatus(1);
|
||||
} else {
|
||||
response.setStatus(2);
|
||||
}
|
||||
return ApiResponse.success(response);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResponse<VideoTaskStatusVO> getTaskStatusByScenicId(Long userId, Long scenicId) {
|
||||
TaskReqQuery taskReqQuery = new TaskReqQuery();
|
||||
taskReqQuery.setMemberId(userId);
|
||||
taskReqQuery.setScenicId(scenicId);
|
||||
int allCount=taskMapper.countTask(taskReqQuery);
|
||||
FaceRespVO faceVO = faceMapper.getByMemberId(userId, scenicId);
|
||||
VideoTaskStatusVO response = new VideoTaskStatusVO();
|
||||
if(allCount==0){//没有任务
|
||||
response.setScenicId(scenicId);
|
||||
if (faceVO == null) {
|
||||
// 从来没露脸
|
||||
response.setStatus(-2);
|
||||
return ApiResponse.success(response);
|
||||
}
|
||||
response.setFaceId(faceVO.getId());
|
||||
List<TaskEntity> taskList = videoMapper.listTaskByScenicRelation(userId, scenicId);
|
||||
if (taskList.isEmpty()) {
|
||||
response.setStatus(0);
|
||||
return ApiResponse.success(response);
|
||||
}
|
||||
List<TaskRespVO> list=taskMapper.list(taskReqQuery);
|
||||
// 未完成是等于0或2
|
||||
Optional<TaskRespVO> first = list.stream().filter(item -> item.getStatus() == 0 || item.getStatus() == 2).findFirst();
|
||||
if (first.isPresent()) {
|
||||
Optional<TaskEntity> taskEntity = taskList.stream().filter(task -> task.getStatus() == 1).findFirst();
|
||||
if (taskEntity.isPresent()) {
|
||||
response.setTemplateId(taskEntity.get().getTemplateId());
|
||||
VideoEntity video = videoMapper.findByTaskId(taskEntity.get().getId());
|
||||
response.setVideoId(video.getId());
|
||||
response.setStatus(1);
|
||||
response.setScenicId(first.get().getScenicId());
|
||||
response.setFaceId(first.get().getFaceId());
|
||||
return ApiResponse.success(response);
|
||||
} else {
|
||||
response.setStatus(2);
|
||||
response.setScenicId(list.get(0).getScenicId());
|
||||
response.setFaceId(list.get(0).getFaceId());
|
||||
return ApiResponse.success(response);
|
||||
}
|
||||
return ApiResponse.success(response);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -212,7 +212,7 @@ public class WxPayServiceImpl implements WxPayService {
|
||||
List<OrderItemEntity> orderItemList = orderMapper.listOrderItemByOrderId(orderId);
|
||||
orderItemList.forEach(orderItemVO -> {
|
||||
switch (orderItemVO.getGoodsType()) {
|
||||
case 1: // 成片
|
||||
case 0: // 成片
|
||||
MemberVideoEntity memberVideoEntity = new MemberVideoEntity();
|
||||
memberVideoEntity.setMemberId(byId.getMemberId());
|
||||
memberVideoEntity.setVideoId(orderItemVO.getGoodsId());
|
||||
@@ -220,6 +220,7 @@ public class WxPayServiceImpl implements WxPayService {
|
||||
memberVideoEntity.setOrderId(orderId);
|
||||
videoMapper.updateRelation(memberVideoEntity);
|
||||
break;
|
||||
case 1: // 源视频
|
||||
case 2: // 源素材
|
||||
MemberSourceEntity memberSourceEntity = new MemberSourceEntity();
|
||||
memberSourceEntity.setMemberId(byId.getMemberId());
|
||||
@@ -252,12 +253,13 @@ public class WxPayServiceImpl implements WxPayService {
|
||||
|
||||
StatisticsRecordAddReq statisticsRecordAddReq = new StatisticsRecordAddReq();
|
||||
statisticsRecordAddReq.setMemberId(orderData.getMemberId());
|
||||
// TODO
|
||||
//如果订单在商品创建后30分钟内支付,则为现场支付,否则为事后支付
|
||||
if(DateUtils.addDateMinute(createTime,30).compareTo(payAt)>0){//
|
||||
// if(DateUtils.addDateMinute(createTime,30).compareTo(payAt)>0){//
|
||||
statisticsRecordAddReq.setType(StatisticEnum.ON_SITE_PAYMENT.code);
|
||||
}else {
|
||||
statisticsRecordAddReq.setType(StatisticEnum.POST_PAYMENT.code);
|
||||
}
|
||||
// }else {
|
||||
// statisticsRecordAddReq.setType(StatisticEnum.POST_PAYMENT.code);
|
||||
// }
|
||||
statisticsRecordAddReq.setScenicId(orderData.getScenicId());
|
||||
statisticsRecordAddReq.setMorphId(orderId);
|
||||
statisticsMapper.addStatisticsRecord(statisticsRecordAddReq);
|
||||
|
||||
Reference in New Issue
Block a user