You've already forked FrameTour-BE
删除无用字段,后台添加更多商品信息
This commit is contained in:
@ -3,7 +3,9 @@ package com.ycwl.basic.model.mobile.goods;
|
|||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@ -21,14 +23,8 @@ public class GoodsDetailVO {
|
|||||||
private Long scenicId;
|
private Long scenicId;
|
||||||
@ApiModelProperty("景区名称")
|
@ApiModelProperty("景区名称")
|
||||||
private String scenicName;
|
private String scenicName;
|
||||||
@ApiModelProperty("经度")
|
|
||||||
private BigDecimal longitude;
|
|
||||||
@ApiModelProperty("纬度")
|
|
||||||
private BigDecimal latitude;
|
|
||||||
@ApiModelProperty("商品类型 1:成片视频 2:源素材")
|
@ApiModelProperty("商品类型 1:成片视频 2:源素材")
|
||||||
private Integer goodsType;
|
private Integer goodsType;
|
||||||
@ApiModelProperty("源素材类型 1:视频 2:图片")
|
|
||||||
private Integer sourceType;
|
|
||||||
@ApiModelProperty("商品id goodsType=1时为videoId,goodsType=2时为sourceId")
|
@ApiModelProperty("商品id goodsType=1时为videoId,goodsType=2时为sourceId")
|
||||||
private Long goodsId;
|
private Long goodsId;
|
||||||
@ApiModelProperty("模版封面图片")
|
@ApiModelProperty("模版封面图片")
|
||||||
@ -44,4 +40,8 @@ public class GoodsDetailVO {
|
|||||||
@ApiModelProperty("是否已购买 0否 1是")
|
@ApiModelProperty("是否已购买 0否 1是")
|
||||||
private Integer isBuy;
|
private Integer isBuy;
|
||||||
private Integer isFree;
|
private Integer isFree;
|
||||||
|
private Integer parts;
|
||||||
|
public Integer getSourceType() {
|
||||||
|
return goodsType;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.ycwl.basic.model.pc.order.resp;
|
package com.ycwl.basic.model.pc.order.resp;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.ycwl.basic.model.mobile.goods.GoodsDetailVO;
|
||||||
import com.ycwl.basic.model.pc.order.entity.OrderItemEntity;
|
import com.ycwl.basic.model.pc.order.entity.OrderItemEntity;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@ -111,6 +112,7 @@ public class OrderRespVO {
|
|||||||
private List<OrderItemVO> orderItemList;
|
private List<OrderItemVO> orderItemList;
|
||||||
private Long scenicId;
|
private Long scenicId;
|
||||||
private String scenicName;
|
private String scenicName;
|
||||||
|
private List<GoodsDetailVO> goodsList;
|
||||||
|
|
||||||
public BigDecimal getDiscountPrice() {
|
public BigDecimal getDiscountPrice() {
|
||||||
if (slashPrice == null) {
|
if (slashPrice == null) {
|
||||||
|
@ -26,10 +26,6 @@ public class SourceRespVO {
|
|||||||
private Long scenicId;
|
private Long scenicId;
|
||||||
@ApiModelProperty("景区名称")
|
@ApiModelProperty("景区名称")
|
||||||
private String scenicName;
|
private String scenicName;
|
||||||
@ApiModelProperty("经度")
|
|
||||||
private BigDecimal longitude;
|
|
||||||
@ApiModelProperty("纬度")
|
|
||||||
private BigDecimal latitude;
|
|
||||||
/**
|
/**
|
||||||
* 来源设备id
|
* 来源设备id
|
||||||
*/
|
*/
|
||||||
|
@ -198,10 +198,7 @@ public class GoodsServiceImpl implements GoodsService {
|
|||||||
}
|
}
|
||||||
goodsDetailVO.setScenicId(sourceRespVO.getScenicId());
|
goodsDetailVO.setScenicId(sourceRespVO.getScenicId());
|
||||||
goodsDetailVO.setScenicName(sourceRespVO.getScenicName());
|
goodsDetailVO.setScenicName(sourceRespVO.getScenicName());
|
||||||
goodsDetailVO.setLongitude(sourceRespVO.getLongitude());
|
|
||||||
goodsDetailVO.setLatitude(sourceRespVO.getLatitude());
|
|
||||||
goodsDetailVO.setGoodsType(sourceType);
|
goodsDetailVO.setGoodsType(sourceType);
|
||||||
goodsDetailVO.setSourceType(sourceType);
|
|
||||||
goodsDetailVO.setGoodsId(sourceRespVO.getId());
|
goodsDetailVO.setGoodsId(sourceRespVO.getId());
|
||||||
if (sourceRespVO.getVideoUrl() != null) {
|
if (sourceRespVO.getVideoUrl() != null) {
|
||||||
try {
|
try {
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package com.ycwl.basic.service.pc.impl;
|
package com.ycwl.basic.service.pc.impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
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.CouponBiz;
|
import com.ycwl.basic.biz.CouponBiz;
|
||||||
@ -10,6 +12,7 @@ import com.ycwl.basic.constant.NumberConstant;
|
|||||||
import com.ycwl.basic.enums.*;
|
import com.ycwl.basic.enums.*;
|
||||||
import com.ycwl.basic.exception.AppException;
|
import com.ycwl.basic.exception.AppException;
|
||||||
import com.ycwl.basic.mapper.*;
|
import com.ycwl.basic.mapper.*;
|
||||||
|
import com.ycwl.basic.model.mobile.goods.GoodsDetailVO;
|
||||||
import com.ycwl.basic.model.mobile.order.IsBuyRespVO;
|
import com.ycwl.basic.model.mobile.order.IsBuyRespVO;
|
||||||
import com.ycwl.basic.model.mobile.order.OrderAppPageReq;
|
import com.ycwl.basic.model.mobile.order.OrderAppPageReq;
|
||||||
import com.ycwl.basic.model.mobile.order.PriceObj;
|
import com.ycwl.basic.model.mobile.order.PriceObj;
|
||||||
@ -31,18 +34,22 @@ import com.ycwl.basic.model.pc.price.entity.PriceConfigEntity;
|
|||||||
import com.ycwl.basic.model.pc.price.resp.GoodsListRespVO;
|
import com.ycwl.basic.model.pc.price.resp.GoodsListRespVO;
|
||||||
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
|
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
|
||||||
import com.ycwl.basic.model.pc.task.entity.TaskEntity;
|
import com.ycwl.basic.model.pc.task.entity.TaskEntity;
|
||||||
|
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
|
||||||
import com.ycwl.basic.model.pc.video.entity.VideoEntity;
|
import com.ycwl.basic.model.pc.video.entity.VideoEntity;
|
||||||
import com.ycwl.basic.model.wx.WXPayOrderReqVO;
|
import com.ycwl.basic.model.wx.WXPayOrderReqVO;
|
||||||
import com.ycwl.basic.repository.FaceRepository;
|
import com.ycwl.basic.repository.FaceRepository;
|
||||||
import com.ycwl.basic.repository.PriceRepository;
|
import com.ycwl.basic.repository.PriceRepository;
|
||||||
|
import com.ycwl.basic.repository.TemplateRepository;
|
||||||
import com.ycwl.basic.repository.VideoRepository;
|
import com.ycwl.basic.repository.VideoRepository;
|
||||||
import com.ycwl.basic.repository.VideoTaskRepository;
|
import com.ycwl.basic.repository.VideoTaskRepository;
|
||||||
import com.ycwl.basic.service.mobile.WxPayService;
|
import com.ycwl.basic.service.mobile.WxPayService;
|
||||||
import com.ycwl.basic.service.pc.OrderService;
|
import com.ycwl.basic.service.pc.OrderService;
|
||||||
|
import com.ycwl.basic.service.task.impl.TaskTaskServiceImpl;
|
||||||
import com.ycwl.basic.utils.ApiResponse;
|
import com.ycwl.basic.utils.ApiResponse;
|
||||||
import com.ycwl.basic.utils.BigDecimalUtil;
|
import com.ycwl.basic.utils.BigDecimalUtil;
|
||||||
import com.ycwl.basic.utils.SnowFlakeUtil;
|
import com.ycwl.basic.utils.SnowFlakeUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
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 org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@ -90,6 +97,10 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
private FaceRepository faceRepository;
|
private FaceRepository faceRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private CouponBiz couponBiz;
|
private CouponBiz couponBiz;
|
||||||
|
@Autowired
|
||||||
|
private TemplateRepository templateRepository;
|
||||||
|
@Autowired
|
||||||
|
private TaskTaskServiceImpl taskTaskService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApiResponse<PageInfo<OrderRespVO>> pageQuery(OrderReqQuery query) {
|
public ApiResponse<PageInfo<OrderRespVO>> pageQuery(OrderReqQuery query) {
|
||||||
@ -141,28 +152,84 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
public ApiResponse<OrderRespVO> detail(Long orderId) {
|
public ApiResponse<OrderRespVO> detail(Long orderId) {
|
||||||
OrderRespVO byId = orderMapper.getById(orderId);
|
OrderRespVO byId = orderMapper.getById(orderId);
|
||||||
List<OrderItemVO> orderItemList = byId.getOrderItemList();
|
List<OrderItemVO> orderItemList = byId.getOrderItemList();
|
||||||
|
List<GoodsDetailVO> goodsList = new ArrayList<>();
|
||||||
|
List<Integer> _f = new ArrayList<>();
|
||||||
orderItemList.forEach(item -> {
|
orderItemList.forEach(item -> {
|
||||||
if (Integer.valueOf(1).equals(item.getGoodsType())) { // 原片 goodsId就是人脸ID
|
if (Integer.valueOf(1).equals(item.getGoodsType())) { // 原片 goodsId就是人脸ID
|
||||||
List<SourceEntity> memberVideoEntityList = sourceMapper.listVideoByFaceRelation(byId.getMemberId(), item.getGoodsId());
|
List<SourceEntity> memberVideoEntityList = sourceMapper.listVideoByFaceRelation(byId.getMemberId(), item.getGoodsId());
|
||||||
item.setCoverList(memberVideoEntityList.stream().map(SourceEntity::getUrl).collect(Collectors.toList()));
|
item.setCoverList(memberVideoEntityList.stream().map(SourceEntity::getUrl).collect(Collectors.toList()));
|
||||||
if (!memberVideoEntityList.isEmpty()) {
|
if (!_f.contains(1)) {
|
||||||
|
_f.add(1);
|
||||||
|
if (!memberVideoEntityList.isEmpty()) {
|
||||||
|
for (SourceEntity sourceEntity : memberVideoEntityList) {
|
||||||
|
GoodsDetailVO goods = new GoodsDetailVO();
|
||||||
|
goods.setGoodsId(sourceEntity.getId());
|
||||||
|
goods.setGoodsName("录像集录像");
|
||||||
|
goods.setUrl(sourceEntity.getUrl());
|
||||||
|
goods.setGoodsType(sourceEntity.getType());
|
||||||
|
goods.setScenicId(sourceEntity.getScenicId());
|
||||||
|
goods.setUrl(sourceEntity.getVideoUrl());
|
||||||
|
goods.setTemplateCoverUrl(sourceEntity.getUrl());
|
||||||
|
goods.setCreateTime(sourceEntity.getCreateTime());
|
||||||
|
goodsList.add(goods);
|
||||||
|
}
|
||||||
|
}
|
||||||
item.setShootingTime(memberVideoEntityList.get(0).getCreateTime());
|
item.setShootingTime(memberVideoEntityList.get(0).getCreateTime());
|
||||||
}
|
}
|
||||||
} else if (Integer.valueOf(2).equals(item.getGoodsType())) { // 照片 goodsId就是人脸ID
|
} else if (Integer.valueOf(2).equals(item.getGoodsType())) { // 照片 goodsId就是人脸ID
|
||||||
List<SourceEntity> memberVideoEntityList = sourceMapper.listImageByFaceRelation(byId.getMemberId(), item.getGoodsId());
|
List<SourceEntity> memberVideoEntityList = sourceMapper.listImageByFaceRelation(byId.getMemberId(), item.getGoodsId());
|
||||||
item.setCoverList(memberVideoEntityList.stream().map(SourceEntity::getUrl).collect(Collectors.toList()));
|
item.setCoverList(memberVideoEntityList.stream().map(SourceEntity::getUrl).collect(Collectors.toList()));
|
||||||
if (!memberVideoEntityList.isEmpty()) {
|
if (!_f.contains(2)) {
|
||||||
|
_f.add(2);
|
||||||
|
if (!memberVideoEntityList.isEmpty()) {
|
||||||
|
for (SourceEntity sourceEntity : memberVideoEntityList) {
|
||||||
|
GoodsDetailVO goods = new GoodsDetailVO();
|
||||||
|
goods.setGoodsId(sourceEntity.getId());
|
||||||
|
goods.setGoodsName("照片集照片");
|
||||||
|
goods.setUrl(sourceEntity.getUrl());
|
||||||
|
goods.setGoodsType(sourceEntity.getType());
|
||||||
|
goods.setScenicId(sourceEntity.getScenicId());
|
||||||
|
goods.setUrl(sourceEntity.getUrl());
|
||||||
|
goods.setTemplateCoverUrl(sourceEntity.getUrl());
|
||||||
|
goods.setScenicId(sourceEntity.getScenicId());
|
||||||
|
goods.setCreateTime(sourceEntity.getCreateTime());
|
||||||
|
goodsList.add(goods);
|
||||||
|
}
|
||||||
|
}
|
||||||
item.setShootingTime(memberVideoEntityList.get(0).getCreateTime());
|
item.setShootingTime(memberVideoEntityList.get(0).getCreateTime());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
item.setCoverList(Collections.singletonList(item.getCoverUrl()));
|
item.setCoverList(Collections.singletonList(item.getCoverUrl()));
|
||||||
VideoEntity videoMapperById = videoRepository.getVideoByTaskId(item.getGoodsId());
|
VideoEntity videoMapperById = videoRepository.getVideo(item.getGoodsId());
|
||||||
if (videoMapperById != null) {
|
if (videoMapperById != null) {
|
||||||
|
TaskEntity task = videoTaskRepository.getTaskById(videoMapperById.getTaskId());
|
||||||
|
TemplateRespVO template = templateRepository.getTemplate(videoMapperById.getTemplateId());
|
||||||
|
GoodsDetailVO goods = new GoodsDetailVO();
|
||||||
|
goods.setGoodsId(videoMapperById.getId());
|
||||||
|
goods.setGoodsName(template.getName());
|
||||||
|
goods.setUrl(videoMapperById.getVideoUrl());
|
||||||
|
goods.setGoodsType(0);
|
||||||
|
goods.setTemplateCoverUrl(template.getCoverUrl());
|
||||||
|
long deviceCount;
|
||||||
|
if (task.getTaskParams() == null) {
|
||||||
|
deviceCount = 1;
|
||||||
|
} else {
|
||||||
|
JSONObject paramJson = JSON.parseObject(task.getTaskParams());
|
||||||
|
List<String> templatePlaceholder = templateRepository.getTemplatePlaceholder(task.getTemplateId());
|
||||||
|
deviceCount = paramJson.keySet().stream()
|
||||||
|
.filter(StringUtils::isNumeric)
|
||||||
|
.filter(templatePlaceholder::contains)
|
||||||
|
.count();
|
||||||
|
}
|
||||||
|
goods.setCreateTime(videoTaskRepository.getTaskShotDate(task.getId()));
|
||||||
|
goods.setParts(Math.toIntExact(deviceCount));
|
||||||
|
goodsList.add(goods);
|
||||||
item.setShootingTime(videoTaskRepository.getTaskShotDate(videoMapperById.getTaskId()));
|
item.setShootingTime(videoTaskRepository.getTaskShotDate(videoMapperById.getTaskId()));
|
||||||
item.setVideoUrl(videoMapperById.getVideoUrl());
|
item.setVideoUrl(videoMapperById.getVideoUrl());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
byId.setGoodsList(goodsList);
|
||||||
return ApiResponse.success(byId);
|
return ApiResponse.success(byId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user