删除无用字段,后台添加更多商品信息

This commit is contained in:
2025-04-17 17:59:13 +08:00
parent da20a44049
commit b36da6ff35
5 changed files with 78 additions and 16 deletions

View File

@ -3,7 +3,9 @@ package com.ycwl.basic.model.mobile.goods;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
@ -21,14 +23,8 @@ public class GoodsDetailVO {
private Long scenicId;
@ApiModelProperty("景区名称")
private String scenicName;
@ApiModelProperty("经度")
private BigDecimal longitude;
@ApiModelProperty("纬度")
private BigDecimal latitude;
@ApiModelProperty("商品类型 1:成片视频 2:源素材")
private Integer goodsType;
@ApiModelProperty("源素材类型 1:视频 2:图片")
private Integer sourceType;
@ApiModelProperty("商品id goodsType=1时为videoIdgoodsType=2时为sourceId")
private Long goodsId;
@ApiModelProperty("模版封面图片")
@ -44,4 +40,8 @@ public class GoodsDetailVO {
@ApiModelProperty("是否已购买 0否 1是")
private Integer isBuy;
private Integer isFree;
private Integer parts;
public Integer getSourceType() {
return goodsType;
}
}

View File

@ -1,6 +1,7 @@
package com.ycwl.basic.model.pc.order.resp;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycwl.basic.model.mobile.goods.GoodsDetailVO;
import com.ycwl.basic.model.pc.order.entity.OrderItemEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -111,6 +112,7 @@ public class OrderRespVO {
private List<OrderItemVO> orderItemList;
private Long scenicId;
private String scenicName;
private List<GoodsDetailVO> goodsList;
public BigDecimal getDiscountPrice() {
if (slashPrice == null) {

View File

@ -26,10 +26,6 @@ public class SourceRespVO {
private Long scenicId;
@ApiModelProperty("景区名称")
private String scenicName;
@ApiModelProperty("经度")
private BigDecimal longitude;
@ApiModelProperty("纬度")
private BigDecimal latitude;
/**
* 来源设备id
*/

View File

@ -198,10 +198,7 @@ public class GoodsServiceImpl implements GoodsService {
}
goodsDetailVO.setScenicId(sourceRespVO.getScenicId());
goodsDetailVO.setScenicName(sourceRespVO.getScenicName());
goodsDetailVO.setLongitude(sourceRespVO.getLongitude());
goodsDetailVO.setLatitude(sourceRespVO.getLatitude());
goodsDetailVO.setGoodsType(sourceType);
goodsDetailVO.setSourceType(sourceType);
goodsDetailVO.setGoodsId(sourceRespVO.getId());
if (sourceRespVO.getVideoUrl() != null) {
try {

View File

@ -1,5 +1,7 @@
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.PageInfo;
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.exception.AppException;
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.OrderAppPageReq;
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.source.entity.SourceEntity;
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.wx.WXPayOrderReqVO;
import com.ycwl.basic.repository.FaceRepository;
import com.ycwl.basic.repository.PriceRepository;
import com.ycwl.basic.repository.TemplateRepository;
import com.ycwl.basic.repository.VideoRepository;
import com.ycwl.basic.repository.VideoTaskRepository;
import com.ycwl.basic.service.mobile.WxPayService;
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.BigDecimalUtil;
import com.ycwl.basic.utils.SnowFlakeUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -90,6 +97,10 @@ public class OrderServiceImpl implements OrderService {
private FaceRepository faceRepository;
@Autowired
private CouponBiz couponBiz;
@Autowired
private TemplateRepository templateRepository;
@Autowired
private TaskTaskServiceImpl taskTaskService;
@Override
public ApiResponse<PageInfo<OrderRespVO>> pageQuery(OrderReqQuery query) {
@ -141,28 +152,84 @@ public class OrderServiceImpl implements OrderService {
public ApiResponse<OrderRespVO> detail(Long orderId) {
OrderRespVO byId = orderMapper.getById(orderId);
List<OrderItemVO> orderItemList = byId.getOrderItemList();
List<GoodsDetailVO> goodsList = new ArrayList<>();
List<Integer> _f = new ArrayList<>();
orderItemList.forEach(item -> {
if (Integer.valueOf(1).equals(item.getGoodsType())) { // 原片 goodsId就是人脸ID
List<SourceEntity> memberVideoEntityList = sourceMapper.listVideoByFaceRelation(byId.getMemberId(), item.getGoodsId());
item.setCoverList(memberVideoEntityList.stream().map(SourceEntity::getUrl).collect(Collectors.toList()));
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());
}
} else if (Integer.valueOf(2).equals(item.getGoodsType())) { // 照片 goodsId就是人脸ID
List<SourceEntity> memberVideoEntityList = sourceMapper.listImageByFaceRelation(byId.getMemberId(), item.getGoodsId());
item.setCoverList(memberVideoEntityList.stream().map(SourceEntity::getUrl).collect(Collectors.toList()));
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());
}
} else {
item.setCoverList(Collections.singletonList(item.getCoverUrl()));
VideoEntity videoMapperById = videoRepository.getVideoByTaskId(item.getGoodsId());
VideoEntity videoMapperById = videoRepository.getVideo(item.getGoodsId());
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.setVideoUrl(videoMapperById.getVideoUrl());
}
}
});
byId.setGoodsList(goodsList);
return ApiResponse.success(byId);
}