You've already forked FrameTour-BE
feat(order): 添加AI相机照片集商品类型支持
- 在OrderServiceImpl中增加对商品类型13(AI相机照片集)的处理逻辑 - 新增listAiCamImageByFaceRelation方法用于查询AI相机图片数据 - 扩展订单详情展示逻辑,支持AI相机照片集的封面和拍摄时间显示 - 更新OrderMapper.xml,新增member_source_aicam_data查询片段 - 修改SQL映射,增加对goods_type=13情况的字段匹配规则 - 完善商品名称和订单类型的设置逻辑,区分AI相机照片集与其他类型
This commit is contained in:
@@ -82,6 +82,7 @@ public interface SourceMapper {
|
||||
List<SourceEntity> listVideoByFaceRelation(Long faceId);
|
||||
|
||||
List<SourceEntity> listImageByFaceRelation(Long faceId);
|
||||
List<SourceEntity> listAiCamImageByFaceRelation(Long faceId);
|
||||
List<MemberSourceEntity> listByFaceRelation(Long faceId, Integer type);
|
||||
|
||||
SourceEntity getEntity(Long id);
|
||||
|
||||
@@ -177,7 +177,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
} else if (Integer.valueOf(2).equals(orderItemList.getFirst().getGoodsType())) {
|
||||
item.setGoodsName("照片集");
|
||||
item.setOrderType("照片集");
|
||||
} else if (Integer.valueOf(3).equals(orderItemList.getFirst().getGoodsType())) {
|
||||
} else if (Integer.valueOf(13).equals(orderItemList.getFirst().getGoodsType())) {
|
||||
item.setGoodsName("AI微单");
|
||||
item.setOrderType("AI微单");
|
||||
} else if (Integer.valueOf(0).equals(orderItemList.getFirst().getGoodsType())) {
|
||||
@@ -240,7 +240,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
} else if (Integer.valueOf(2).equals(orderItemList.getFirst().getGoodsType())) {
|
||||
item.setGoodsName("照片集");
|
||||
item.setOrderType("照片集");
|
||||
} else if (Integer.valueOf(3).equals(orderItemList.getFirst().getGoodsType())) {
|
||||
} else if (Integer.valueOf(13).equals(orderItemList.getFirst().getGoodsType())) {
|
||||
item.setGoodsName("AI微单");
|
||||
item.setOrderType("AI微单");
|
||||
} else if (Integer.valueOf(0).equals(orderItemList.getFirst().getGoodsType())) {
|
||||
@@ -350,6 +350,26 @@ public class OrderServiceImpl implements OrderService {
|
||||
item.setShootingTime(memberVideoEntityList.getFirst().getCreateTime());
|
||||
}
|
||||
}
|
||||
} else if (Integer.valueOf(13).equals(item.getGoodsType())) { // AI相机照片 goodsId就是人脸ID
|
||||
List<SourceEntity> aiCamImageList = sourceMapper.listAiCamImageByFaceRelation(item.getGoodsId());
|
||||
item.setCoverList(aiCamImageList.stream().map(SourceEntity::getUrl).collect(Collectors.toList()));
|
||||
if (!_f.contains(13)) {
|
||||
_f.add(13);
|
||||
if (!aiCamImageList.isEmpty()) {
|
||||
for (SourceEntity sourceEntity : aiCamImageList) {
|
||||
GoodsDetailVO goods = new GoodsDetailVO();
|
||||
goods.setGoodsId(sourceEntity.getId());
|
||||
goods.setGoodsName("AI相机照片");
|
||||
goods.setUrl(sourceEntity.getUrl());
|
||||
goods.setGoodsType(sourceEntity.getType());
|
||||
goods.setScenicId(sourceEntity.getScenicId());
|
||||
goods.setTemplateCoverUrl(sourceEntity.getUrl());
|
||||
goods.setCreateTime(sourceEntity.getCreateTime());
|
||||
goodsList.add(goods);
|
||||
}
|
||||
item.setShootingTime(aiCamImageList.getFirst().getCreateTime());
|
||||
}
|
||||
}
|
||||
} else if (Integer.valueOf(3).equals(item.getGoodsType())) { // 打印照片 goodsId就是memberPrintId
|
||||
List<MemberPrintResp> list = printerMapper.getUserPhotoByIds(orderItemList.stream().map(OrderItemVO::getGoodsId).collect(Collectors.toList()));
|
||||
item.setCoverList(orderItemList.stream().map(OrderItemVO::getCoverUrl).collect(Collectors.toList()));
|
||||
@@ -552,6 +572,13 @@ public class OrderServiceImpl implements OrderService {
|
||||
item.setShootingTime(memberVideoEntityList.getFirst().getCreateTime());
|
||||
item.setCount(1);
|
||||
}
|
||||
} else if (Integer.valueOf(13).equals(item.getGoodsType())) {
|
||||
List<SourceEntity> aiCamImageList = sourceMapper.listAiCamImageByFaceRelation(item.getFaceId());
|
||||
item.setCoverList(aiCamImageList.stream().map(SourceEntity::getUrl).collect(Collectors.toList()));
|
||||
if (!aiCamImageList.isEmpty()) {
|
||||
item.setShootingTime(aiCamImageList.getFirst().getCreateTime());
|
||||
item.setCount(1);
|
||||
}
|
||||
} else if (Integer.valueOf(0).equals(item.getGoodsType())) {
|
||||
item.setCoverList(Collections.singletonList(item.getCoverUrl()));
|
||||
VideoEntity video = videoRepository.getVideo(item.getGoodsId());
|
||||
@@ -688,6 +715,9 @@ public class OrderServiceImpl implements OrderService {
|
||||
} else if (Integer.valueOf(2).equals(orderItemList.getFirst().getGoodsType())) {
|
||||
item.setGoodsName("照片集");
|
||||
item.setOrderType("照片集");
|
||||
} else if (Integer.valueOf(13).equals(orderItemList.getFirst().getGoodsType())) {
|
||||
item.setGoodsName("AI相机照片集");
|
||||
item.setOrderType("AI相机照片集");
|
||||
} else if (Integer.valueOf(0).equals(orderItemList.getFirst().getGoodsType())) {
|
||||
item.setOrderType("旅行Vlog");
|
||||
item.setGoodsName(orderItemList.getFirst().getGoodsName());
|
||||
|
||||
@@ -95,6 +95,13 @@
|
||||
LEFT JOIN face f ON ms.face_id = f.id
|
||||
LEFT JOIN source s ON ms.source_id = s.id
|
||||
WHERE s.id IS NOT NULL
|
||||
),
|
||||
member_source_aicam_data AS (
|
||||
SELECT ms.member_id, ms.source_id, ms.face_id, f.face_url, s.url
|
||||
FROM member_source ms
|
||||
LEFT JOIN face f ON ms.face_id = f.id
|
||||
LEFT JOIN source s ON ms.source_id = s.id
|
||||
WHERE s.id IS NOT NULL AND ms.type = 3
|
||||
),
|
||||
member_photo_data AS (
|
||||
SELECT mp.member_id, 3 as type, mp.id, mp.crop_url as url, mp.quantity, mp.status, mp.create_time
|
||||
@@ -127,17 +134,20 @@
|
||||
WHEN '3' THEN '照片打印'
|
||||
WHEN '4' THEN '一体机照片打印'
|
||||
WHEN '5' THEN 'pLog'
|
||||
WHEN '13' THEN 'AI相机照片集'
|
||||
ELSE '其他'
|
||||
END AS goods_name,
|
||||
CASE oi.goods_type
|
||||
WHEN '0' THEN mvd.face_id
|
||||
WHEN '1' THEN oi.goods_id
|
||||
WHEN '2' THEN oi.goods_id
|
||||
WHEN '13' THEN oi.goods_id
|
||||
END AS face_id,
|
||||
CASE oi.goods_type
|
||||
WHEN '0' THEN mvd.face_url
|
||||
WHEN '1' THEN msd.face_url
|
||||
WHEN '2' THEN msd.face_url
|
||||
WHEN '13' THEN msac.face_url
|
||||
END AS face_url,
|
||||
CASE oi.goods_type
|
||||
WHEN '0' THEN mvd.video_url
|
||||
@@ -149,11 +159,13 @@
|
||||
WHEN '3' THEN mpd.url
|
||||
WHEN '4' THEN mpa.url
|
||||
WHEN '5' THEN mpl.url
|
||||
WHEN '13' THEN msac.url
|
||||
END AS imgUrl
|
||||
FROM order_item oi
|
||||
LEFT JOIN `order` o ON oi.order_id = o.id
|
||||
LEFT JOIN member_video_data mvd ON o.face_id = mvd.face_id AND oi.goods_id = mvd.video_id
|
||||
LEFT JOIN member_source_data msd ON o.face_id = msd.face_id AND oi.goods_id = msd.face_id AND msd.type = oi.goods_type
|
||||
LEFT JOIN member_source_aicam_data msac ON o.face_id = msac.face_id AND oi.goods_id = msac.face_id AND oi.goods_type = 13
|
||||
LEFT JOIN member_photo_data mpd ON oi.goods_id = mpd.id AND mpd.type = oi.goods_type
|
||||
LEFT JOIN member_aio_photo_data mpa ON oi.goods_id = mpa.id AND mpa.type = oi.goods_type
|
||||
LEFT JOIN member_plog_data mpl ON oi.goods_id = mpl.id AND mpl.type = oi.goods_type AND o.face_id = mpl.face_id
|
||||
|
||||
@@ -348,6 +348,12 @@
|
||||
left join source s on ms.source_id = s.id
|
||||
where ms.face_id = #{faceId} and ms.type = 2
|
||||
</select>
|
||||
<select id="listAiCamImageByFaceRelation" resultType="com.ycwl.basic.model.pc.source.entity.SourceEntity">
|
||||
select s.*, ms.is_buy
|
||||
from member_source ms
|
||||
left join source s on ms.source_id = s.id
|
||||
where ms.face_id = #{faceId} and ms.type = 3
|
||||
</select>
|
||||
<select id="getEntity" resultType="com.ycwl.basic.model.pc.source.entity.SourceEntity">
|
||||
select *
|
||||
from source
|
||||
|
||||
Reference in New Issue
Block a user