diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java
index 015488c..81531fc 100644
--- a/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java
+++ b/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java
@@ -1,5 +1,6 @@
 package com.ycwl.basic.controller.mobile;
 
+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;
@@ -35,16 +36,15 @@ public class AppGoodsController {
 
     @ApiOperation("源素材(原片/照片)商品列表")
     @PostMapping("/sourceGoodsList")
-    public ApiResponse<List<SourceRespVO>> sourceGoodsList(@RequestBody GoodsReqQuery query) {
+    public ApiResponse<List<GoodsDetailVO>> sourceGoodsList(@RequestBody GoodsReqQuery query) {
         return goodsService.sourceGoodsList(query);
     }
 
-//    @ApiOperation("成片vlog商品详情")
-//    @GetMapping("/getVideoGoodsDetail/{goodId}")
-//    public ApiResponse<GoodsVO> videoGoodsDetail(@RequestBody GoodsReqQuery query) {
-//
-//        return ApiResponse.success("");
-//    }
+    @ApiOperation("成片vlog商品详情")
+    @GetMapping("/getVideoGoodsDetail/{goodId}")
+    public ApiResponse<GoodsDetailVO> videoGoodsDetail(@PathVariable("goodId") Long goodsId) {
+        return goodsService.videoGoodsDetail(goodsId);
+    }
 
     @ApiOperation("查询价格")
     @PostMapping("/queryPrice")
diff --git a/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsDetailVO.java b/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsDetailVO.java
new file mode 100644
index 0000000..60d24d0
--- /dev/null
+++ b/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsDetailVO.java
@@ -0,0 +1,42 @@
+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.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @Author:longbinbin
+ * @Date:2024/12/5 15:10
+ */
+@Data
+@ApiModel("商品详情")
+public class GoodsDetailVO {
+    @ApiModelProperty("商品名称")
+    private String goodsName;
+    @ApiModelProperty("景区id")
+    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时为videoId,goodsType=2时为sourceId")
+    private Long goodsId;
+    @ApiModelProperty("模版封面图片")
+    private String templateCoverUrl;
+    @ApiModelProperty("图片文件存储地址")
+    private String url;
+    @ApiModelProperty("视频文件存储地址")
+    private String videoUrl;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+}
diff --git a/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsPageVO.java b/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsPageVO.java
index ade6d5c..b011bd3 100644
--- a/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsPageVO.java
+++ b/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsPageVO.java
@@ -11,7 +11,7 @@ import java.math.BigDecimal;
  * @Date:2024/12/5 15:10
  */
 @Data
-@ApiModel("商品")
+@ApiModel("移动端商品列表响应信息")
 public class GoodsPageVO {
     @ApiModelProperty("商品名称")
     private String goodsName;
@@ -27,7 +27,7 @@ public class GoodsPageVO {
     private Integer goodsType;
     @ApiModelProperty("源素材类型 1:视频 2:图片")
     private Integer sourceType;
-    @ApiModelProperty("商品id goodsType为1时才有值")
+    @ApiModelProperty("商品(vlog)id goodsType为1时才有值")
     private Long goodsId;
     @ApiModelProperty("模版封面图片")
     private String templateCoverUrl;
diff --git a/src/main/java/com/ycwl/basic/model/pc/order/req/OrderAddOrUpdateReq.java b/src/main/java/com/ycwl/basic/model/pc/order/req/OrderAddOrUpdateReq.java
index 1f846c0..02f5120 100644
--- a/src/main/java/com/ycwl/basic/model/pc/order/req/OrderAddOrUpdateReq.java
+++ b/src/main/java/com/ycwl/basic/model/pc/order/req/OrderAddOrUpdateReq.java
@@ -1,6 +1,7 @@
 package com.ycwl.basic.model.pc.order.req;
 
 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.resp.OrderItemVO;
 import io.swagger.annotations.ApiModel;
@@ -96,6 +97,6 @@ public class OrderAddOrUpdateReq {
     @ApiModelProperty("订单退款时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date refundAt;
-    @ApiModelProperty("订单明细")
-    private List<OrderItemDTO> orderItemList;
+    @ApiModelProperty("订单商品明细")
+    private List<GoodsDetailVO> goodsItemList;
 }
diff --git a/src/main/java/com/ycwl/basic/model/pc/source/resp/SourceRespVO.java b/src/main/java/com/ycwl/basic/model/pc/source/resp/SourceRespVO.java
index 00ff142..d575279 100644
--- a/src/main/java/com/ycwl/basic/model/pc/source/resp/SourceRespVO.java
+++ b/src/main/java/com/ycwl/basic/model/pc/source/resp/SourceRespVO.java
@@ -51,6 +51,4 @@ public class SourceRespVO {
     private String videoUrl;
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date updateTime;
 }
diff --git a/src/main/java/com/ycwl/basic/service/impl/mobile/GoodsServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/mobile/GoodsServiceImpl.java
index 52d2cc4..09a8467 100644
--- a/src/main/java/com/ycwl/basic/service/impl/mobile/GoodsServiceImpl.java
+++ b/src/main/java/com/ycwl/basic/service/impl/mobile/GoodsServiceImpl.java
@@ -3,6 +3,7 @@ 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;
@@ -13,6 +14,7 @@ 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 org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -83,14 +85,49 @@ public class GoodsServiceImpl implements GoodsService {
      }
 
     @Override
-    public ApiResponse<List<SourceRespVO>> sourceGoodsList(GoodsReqQuery query) {
-         SourceReqQuery sourceReqQuery = new SourceReqQuery();
+    public ApiResponse<List<GoodsDetailVO>> sourceGoodsList(GoodsReqQuery query) {
+        Integer sourceType = query.getSourceType();
+        SourceReqQuery sourceReqQuery = new SourceReqQuery();
          sourceReqQuery.setScenicId(query.getScenicId());
          sourceReqQuery.setIsBuy(query.getIsBuy());
          sourceReqQuery.setMemberId(query.getMemberId());
-         sourceReqQuery.setType(query.getSourceType());
+         sourceReqQuery.setType(sourceType);
         List<SourceRespVO> list = sourceMapper.list(sourceReqQuery);
-        return ApiResponse.success(list);
+        List<GoodsDetailVO> goodsDetailVOList = new ArrayList<>();
+
+        String goodsNamePrefix = "";
+        if(sourceType==1){
+            goodsNamePrefix="视频";
+        }else if (sourceType==2){
+            goodsNamePrefix="图片";
+        }else {
+            goodsNamePrefix="其他类型";
+        }
+        //图片编号
+        int i=1;
+        for (SourceRespVO sourceRespVO : list) {
+            GoodsDetailVO goodsDetailVO = new GoodsDetailVO();
+            String shootingTime = DateUtils.format(sourceRespVO.getCreateTime(), "yyyy.MM.dd HH:mm:ss");
+            if(i<10){
+                goodsDetailVO.setGoodsName(goodsNamePrefix +"0"+i+" "+shootingTime);
+            }else {
+                goodsDetailVO.setGoodsName(goodsNamePrefix +i+" "+shootingTime);
+            }
+            goodsDetailVO.setScenicId(sourceRespVO.getScenicId());
+            goodsDetailVO.setScenicName(sourceRespVO.getScenicName());
+            goodsDetailVO.setLongitude(sourceRespVO.getLongitude());
+            goodsDetailVO.setLatitude(sourceRespVO.getLatitude());
+            goodsDetailVO.setGoodsType(2);
+            goodsDetailVO.setSourceType(sourceType);
+            goodsDetailVO.setGoodsId(sourceRespVO.getId());
+            goodsDetailVO.setVideoUrl(sourceRespVO.getVideoUrl());
+            goodsDetailVO.setUrl(sourceRespVO.getUrl());
+            goodsDetailVO.setCreateTime(sourceRespVO.getCreateTime());
+            goodsDetailVOList.add(goodsDetailVO);
+            i++;
+        }
+
+        return ApiResponse.success(goodsDetailVOList);
     }
 
     @Override
@@ -125,4 +162,21 @@ public class GoodsServiceImpl implements GoodsService {
         }
         return ApiResponse.fail("不合法的商品,请联系管理员");
     }
+
+    @Override
+    public ApiResponse<GoodsDetailVO> videoGoodsDetail(Long goodsId) {
+        GoodsDetailVO goodsDetailVO = new GoodsDetailVO();
+        VideoRespVO videoRespVO = videoMapper.getById(goodsId);
+        goodsDetailVO.setGoodsName(videoRespVO.getTemplateName());
+        goodsDetailVO.setScenicId(videoRespVO.getScenicId());
+        goodsDetailVO.setScenicName(videoRespVO.getScenicName());
+        goodsDetailVO.setLongitude(videoRespVO.getLongitude());
+        goodsDetailVO.setLatitude(videoRespVO.getLatitude());
+        goodsDetailVO.setGoodsType(1);
+        goodsDetailVO.setGoodsId(videoRespVO.getId());
+        goodsDetailVO.setVideoUrl(videoRespVO.getVideoUrl());
+        goodsDetailVO.setTemplateCoverUrl(videoRespVO.getTemplateCoverUrl());
+        goodsDetailVO.setCreateTime(videoRespVO.getCreateTime());
+        return ApiResponse.success(goodsDetailVO);
+    }
 }
diff --git a/src/main/java/com/ycwl/basic/service/impl/pc/OrderServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/pc/OrderServiceImpl.java
index 0873764..fc6a1c3 100644
--- a/src/main/java/com/ycwl/basic/service/impl/pc/OrderServiceImpl.java
+++ b/src/main/java/com/ycwl/basic/service/impl/pc/OrderServiceImpl.java
@@ -11,6 +11,7 @@ import com.ycwl.basic.exception.AppException;
 import com.ycwl.basic.mapper.pc.OrderMapper;
 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.order.RefundOrderReq;
 import com.ycwl.basic.model.pc.member.resp.MemberRespVO;
@@ -92,12 +93,14 @@ public class OrderServiceImpl implements OrderService {
         if (add == NumberConstant.ZERO) {
             return ApiResponse.fail("订单添加失败");
         } else {
-            List<OrderItemDTO> orderItemList = order.getOrderItemList();
+            List<GoodsDetailVO> goodsItemList = order.getGoodsItemList();
             List<OrderItemEntity> orderItems = new ArrayList<>();
-            orderItemList.forEach(orderItemDTO -> {
+            goodsItemList.forEach(goodsDto -> {
                 OrderItemEntity orderItemEntity = new OrderItemEntity();
-                BeanUtil.copyProperties(orderItemDTO, orderItemEntity);
+                orderItemEntity.setId(SnowFlakeUtil.getLongId());
                 orderItemEntity.setOrderId(orderId);
+                orderItemEntity.setGoodsType(goodsDto.getGoodsType());
+                orderItemEntity.setGoodsId(goodsDto.getGoodsId());
                 orderItems.add(orderItemEntity);
             });
             int addOrderItems = orderMapper.addOrderItems(orderItems);
@@ -106,24 +109,23 @@ public class OrderServiceImpl implements OrderService {
                 return ApiResponse.fail("订单添加失败");
             }
 
-
-            Integer goodsType = order.getOrderItemList().get(NumberConstant.ZERO).getGoodsType();
-            Long goodsId = order.getOrderItemList().get(NumberConstant.ZERO).getGoodsId();
+            GoodsDetailVO goodsDetailVO = goodsItemList.get(NumberConstant.ZERO);
+            Integer goodsType = goodsDetailVO.getGoodsType();
+            Long goodsId = goodsDetailVO.getGoodsId();
 
             String goodsName = null;
             if (goodsType == NumberConstant.ONE) {
-                VideoRespVO videoRespVO = videoMapper.getById(goodsId);
-                goodsName = videoRespVO.getTemplateName();
+                goodsName = goodsDetailVO.getGoodsName();
             } else if (goodsType == NumberConstant.TWO) {
-                SourceRespVO sourceRespVO = sourceMapper.getById(goodsId);
-                goodsName = SourceTypeNameEnum.getRemark(sourceRespVO.getType());
+                Integer sourceType = goodsDetailVO.getSourceType();
+                goodsName = SourceTypeNameEnum.getRemark(sourceType);
             }
 
             /* 成片的时候子订单只会有一个,素材的时候 子订单多个且价格与子订单数量无关,只与子订单商品对应景区定义的价格相同*/
             GoodsPriceQueryReq goodsPriceQueryReq = new GoodsPriceQueryReq();
             goodsPriceQueryReq.setGoodsId(goodsId);
             goodsPriceQueryReq.setGoodsType(goodsType);
-//            goodsPriceQueryReq.setScenicId(order.get)
+            goodsPriceQueryReq.setScenicId(goodsDetailVO.getScenicId());
             BigDecimal price = goodsService.queryPrice(goodsPriceQueryReq).getData();
 
             MemberRespVO memberRespVO = memberService.getUserInfo().getData();
diff --git a/src/main/java/com/ycwl/basic/service/mobile/GoodsService.java b/src/main/java/com/ycwl/basic/service/mobile/GoodsService.java
index f7840d8..65866cf 100644
--- a/src/main/java/com/ycwl/basic/service/mobile/GoodsService.java
+++ b/src/main/java/com/ycwl/basic/service/mobile/GoodsService.java
@@ -1,5 +1,6 @@
 package com.ycwl.basic.service.mobile;
 
+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;
@@ -27,7 +28,7 @@ public interface GoodsService {
      * @param query
      * @return
      */
-    ApiResponse<List<SourceRespVO>> sourceGoodsList(GoodsReqQuery query);
+    ApiResponse<List<GoodsDetailVO>> sourceGoodsList(GoodsReqQuery query);
 
     /**
      * 查询订单应付价格
@@ -35,4 +36,11 @@ public interface GoodsService {
      * @return
      */
     ApiResponse<BigDecimal> queryPrice(GoodsPriceQueryReq queryPriceData);
+
+    /**
+     *
+     * @param goodsId 商品(vlog)id
+     * @return
+     */
+    ApiResponse<GoodsDetailVO> videoGoodsDetail(Long goodsId);
 }
diff --git a/src/main/resources/mapper/pc/SourceMapper.xml b/src/main/resources/mapper/pc/SourceMapper.xml
index afbbe92..10034cb 100644
--- a/src/main/resources/mapper/pc/SourceMapper.xml
+++ b/src/main/resources/mapper/pc/SourceMapper.xml
@@ -34,6 +34,7 @@
             <if test="startTime!= null">and so.create_time &gt;= #{startTime} </if>
             <if test="endTime!= null">and so.create_time &lt;= #{endTime} </if>
         </where>
+        order by so.create_time desc
     </select>
     <select id="getById" resultType="com.ycwl.basic.model.pc.source.resp.SourceRespVO">
         select so.id, scenic_id, device_id, member_id, url, so.create_time, so.update_time,sc.`name` as scenicName