diff --git a/src/main/java/com/ycwl/basic/controller/pc/RefundController.java b/src/main/java/com/ycwl/basic/controller/pc/RefundController.java
new file mode 100644
index 0000000..ce82aa2
--- /dev/null
+++ b/src/main/java/com/ycwl/basic/controller/pc/RefundController.java
@@ -0,0 +1,65 @@
+package com.ycwl.basic.controller.pc;
+
+import com.github.pagehelper.PageInfo;
+import com.ycwl.basic.model.mobile.order.RefundOrderReq;
+import com.ycwl.basic.model.pc.order.entity.OrderEntity;
+import com.ycwl.basic.model.pc.order.req.OrderReqQuery;
+import com.ycwl.basic.model.pc.order.resp.OrderRespVO;
+import com.ycwl.basic.service.pc.OrderService;
+import com.ycwl.basic.utils.ApiResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @Author:longbinbin
+ * @Date:2024/12/3 13:49
+ */
+@RestController
+@RequestMapping("/api/refund/v1")
+@Api(tags = "退款订单管理")
+public class RefundController {
+
+    @Autowired
+    private OrderService orderService;
+
+    @ApiOperation(value = "审核退款", notes = "审核退款")
+    @PostMapping("/auditRefundOrder")
+    public ApiResponse<?> auditRefundOrder(@RequestBody RefundOrderReq refundOrderReq) {
+        return orderService.auditRefundOrder(refundOrderReq);
+    }
+
+
+    @ApiOperation("分页查询订单")
+    @PostMapping("page")
+    public ApiResponse<PageInfo<OrderRespVO>> pageQuery(@RequestBody OrderReqQuery query) {
+        return orderService.refundPageQuery(query);
+    }
+
+    @ApiOperation("订单列表查询")
+    @PostMapping("list")
+    public ApiResponse<List<OrderRespVO>> list(@RequestBody OrderReqQuery query) {
+        return orderService.list(query);
+    }
+    @ApiOperation("订单详情查询")
+    @GetMapping("detail/{id}")
+    public ApiResponse<OrderRespVO> detail(@PathVariable("id") Long orderId) {
+        return orderService.detail(orderId);
+    }
+
+
+    @ApiOperation("订单备注")
+    @PostMapping("remark/{id}")
+    public ApiResponse<?> updateRemark(@PathVariable("id") Long orderId, @RequestBody OrderEntity query) {
+        orderService.remarkOrder(orderId, query);
+        return ApiResponse.success(null);
+    }
+}
diff --git a/src/main/java/com/ycwl/basic/mapper/OrderMapper.java b/src/main/java/com/ycwl/basic/mapper/OrderMapper.java
index 9a8bbdd..404f725 100644
--- a/src/main/java/com/ycwl/basic/mapper/OrderMapper.java
+++ b/src/main/java/com/ycwl/basic/mapper/OrderMapper.java
@@ -36,4 +36,6 @@ public interface OrderMapper {
     List<OrderAppRespVO> appList(OrderAppPageReq orderReqQuery);
 
     OrderAppRespVO appDetail(Long id);
+
+    List<OrderRespVO> refundList(OrderReqQuery query);
 }
diff --git a/src/main/java/com/ycwl/basic/mapper/TemplateMapper.java b/src/main/java/com/ycwl/basic/mapper/TemplateMapper.java
index 0fec19a..4965971 100644
--- a/src/main/java/com/ycwl/basic/mapper/TemplateMapper.java
+++ b/src/main/java/com/ycwl/basic/mapper/TemplateMapper.java
@@ -1,10 +1,12 @@
 package com.ycwl.basic.mapper;
 
+import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO;
 import com.ycwl.basic.model.pc.template.entity.TemplateConfigEntity;
 import com.ycwl.basic.model.pc.template.entity.TemplateEntity;
 import com.ycwl.basic.model.pc.template.req.TemplateReqQuery;
 import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -30,4 +32,6 @@ public interface TemplateMapper {
     int deleteConfigByTemplateId(Long templateId);
     int deleteConfigById(Long id);
     List<TemplateEntity> listByScenicId(Long scenicId);
+
+    List<ContentPageVO> listFor(@Param("scenicId") Long scenicId, @Param("faceId") Long faceId);
 }
diff --git a/src/main/java/com/ycwl/basic/model/mobile/goods/VideoGoodsDetailVO.java b/src/main/java/com/ycwl/basic/model/mobile/goods/VideoGoodsDetailVO.java
index c5b591e..3a0e31c 100644
--- a/src/main/java/com/ycwl/basic/model/mobile/goods/VideoGoodsDetailVO.java
+++ b/src/main/java/com/ycwl/basic/model/mobile/goods/VideoGoodsDetailVO.java
@@ -45,4 +45,5 @@ public class VideoGoodsDetailVO {
     private Integer isBuy;
     @ApiModelProperty("镜头数")
     private Integer lensNum;
+    private Long faceId;
 }
diff --git a/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ContentPageVO.java b/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ContentPageVO.java
index fdc877c..f75a201 100644
--- a/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ContentPageVO.java
+++ b/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ContentPageVO.java
@@ -15,20 +15,18 @@ import java.math.BigDecimal;
 public class ContentPageVO {
     @ApiModelProperty("内容名称")
     private String name;
-//    @ApiModelProperty("景区id")
-//    private Long scenicId;
-//    @ApiModelProperty("景区名称")
-//    private String scenicName;
-//    @ApiModelProperty("经度")
-//    private BigDecimal longitude;
-//    @ApiModelProperty("纬度")
-//    private BigDecimal latitude;
+    @ApiModelProperty("景区id")
+    private Long scenicId;
+    @ApiModelProperty("景区名称")
+    private String scenicName;
     @ApiModelProperty("内容类型 0模版 1:成片视频 2:源素材 ")
     private Integer contentType;
     @ApiModelProperty("源素材类型 1:视频 2:图片")
     private Integer sourceType;
     @ApiModelProperty("内容id contentType为0或1时才有值")
     private Long contentId;
+    @ApiModelProperty("模版id")
+    private Long templateId;
     @ApiModelProperty("模版封面图片 contentType为0或1时才有值")
     private String templateCoverUrl;
     @ApiModelProperty("是否购买:0未购买,1已购买")
diff --git a/src/main/java/com/ycwl/basic/model/pc/task/resp/TaskRespVO.java b/src/main/java/com/ycwl/basic/model/pc/task/resp/TaskRespVO.java
index dedd282..6ffe1ad 100644
--- a/src/main/java/com/ycwl/basic/model/pc/task/resp/TaskRespVO.java
+++ b/src/main/java/com/ycwl/basic/model/pc/task/resp/TaskRespVO.java
@@ -22,6 +22,7 @@ public class TaskRespVO {
      */
     @ApiModelProperty("执行任务的机器ID")
     private Long workerId;
+    private Long faceId;
     /**
      * 用户ID,可以不和用户关联
      */
diff --git a/src/main/java/com/ycwl/basic/model/pc/template/resp/TemplateRespVO.java b/src/main/java/com/ycwl/basic/model/pc/template/resp/TemplateRespVO.java
index 2482def..d6deab6 100644
--- a/src/main/java/com/ycwl/basic/model/pc/template/resp/TemplateRespVO.java
+++ b/src/main/java/com/ycwl/basic/model/pc/template/resp/TemplateRespVO.java
@@ -84,4 +84,6 @@ public class TemplateRespVO {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
     private List<TemplateRespVO> children;
+    private BigDecimal price;
+    private Integer sort;
 }
diff --git a/src/main/java/com/ycwl/basic/service/impl/mobile/AppScenicServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/mobile/AppScenicServiceImpl.java
index 090b6c0..f47d30e 100644
--- a/src/main/java/com/ycwl/basic/service/impl/mobile/AppScenicServiceImpl.java
+++ b/src/main/java/com/ycwl/basic/service/impl/mobile/AppScenicServiceImpl.java
@@ -133,46 +133,29 @@ public class AppScenicServiceImpl implements AppScenicService {
     @Override
     public ApiResponse<List<ContentPageVO>> contentList(Long faceId) {
         JwtInfo worker = JwtTokenUtil.getWorker();
-        //查询原素材
-        List<ContentPageVO> contentList = new ArrayList<>();
 
         FaceRespVO faceRespVO = faceMapper.getById(faceId);
+        if (StringUtils.isBlank(faceRespVO.getMatchSampleIds())) {
+            return ApiResponse.success(new ArrayList<>());
+        }
 
-        HashMap<Long, String> videoMap = new HashMap<>();
-        VideoReqQuery videoReqQuery = new VideoReqQuery();
-        videoReqQuery.setFaceId(faceId);
-        videoReqQuery.setMemberId(worker.getUserId());
-        //查询成片vlog
-        List<VideoRespVO> videoList = videoMapper.list(videoReqQuery);
-        videoList.forEach(videoRespVO -> {
-            ContentPageVO contentPageVO = new ContentPageVO();
-            contentPageVO.setName(videoRespVO.getTemplateName());
-            contentPageVO.setContentType(1);
-            contentPageVO.setContentId(videoRespVO.getId());
-            contentPageVO.setTemplateCoverUrl(videoRespVO.getTemplateCoverUrl());
-            contentPageVO.setIsBuy(videoRespVO.getIsBuy());
-            contentList.add(contentPageVO);
-            videoMap.put(videoRespVO.getTemplateId(),"");
-        });
-
-        TemplateReqQuery templateReqQuery = new TemplateReqQuery();
-        templateReqQuery.setScenicId(faceRespVO.getScenicId());
-        List<TemplateRespVO> list = templateMapper.list(templateReqQuery);
-        list.forEach(templateRespVO -> {
-            Long templateId = templateRespVO.getId();
-            if (!videoMap.containsKey(templateId)) {
-                ContentPageVO contentPageVO = new ContentPageVO();
-                contentPageVO.setName(templateRespVO.getName());
-                contentPageVO.setContentType(0);
-                contentPageVO.setContentId(templateId);
-                contentPageVO.setTemplateCoverUrl(templateRespVO.getCoverUrl());
-                contentList.add(contentPageVO);
+        List<ContentPageVO> contentList = templateMapper.listFor(faceRespVO.getScenicId(), faceId);
+        contentList.forEach(contentPageVO -> {
+            if (contentPageVO.getContentType() == 1) {
+                VideoReqQuery videoReqQuery = new VideoReqQuery();
+                videoReqQuery.setScenicId(contentPageVO.getScenicId());
+                videoReqQuery.setTemplateId(contentPageVO.getTemplateId());
+                videoReqQuery.setMemberId(worker.getUserId());
+                List<VideoRespVO> videoList = videoMapper.list(videoReqQuery);
+                if (!videoList.isEmpty()) {
+                    contentPageVO.setContentId(videoList.get(0).getId());
+                }
             }
         });
 
         SourceReqQuery sourceReqQuery = new SourceReqQuery();
-        videoReqQuery.setScenicId(faceRespVO.getScenicId());
-        videoReqQuery.setMemberId(worker.getUserId());
+        sourceReqQuery.setScenicId(faceRespVO.getScenicId());
+        sourceReqQuery.setMemberId(worker.getUserId());
         //查询源素材
         List<SourceRespVO> sourceList = sourceMapper.listGroupByType(sourceReqQuery);
         sourceList.forEach(sourceRespVO -> {
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 48f2643..c83e74c 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
@@ -1,5 +1,7 @@
 package com.ycwl.basic.service.impl.mobile;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.ycwl.basic.constant.BaseContextHandler;
 import com.ycwl.basic.mapper.*;
 import com.ycwl.basic.model.jwt.JwtInfo;
@@ -10,12 +12,14 @@ 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.resp.TaskRespVO;
 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 com.ycwl.basic.utils.JwtTokenUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -23,6 +27,7 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -197,8 +202,16 @@ public class GoodsServiceImpl implements GoodsService {
         DecimalFormat df = new DecimalFormat("0.00");
         goodsDetailVO.setPrice(templatePrice==null?"":df.format(templatePrice.setScale(2, RoundingMode.HALF_UP)));
         goodsDetailVO.setIsBuy(videoRespVO.getIsBuy());
-        ScenicDeviceCountVO scenicDeviceCountVO = deviceMapper.deviceCountByScenicId(videoRespVO.getScenicId(), -1L);
-        goodsDetailVO.setLensNum(scenicDeviceCountVO.getTotalDeviceCount());
+        TaskRespVO taskRespVO = taskMapper.getById(videoRespVO.getTaskId());
+        JSONObject paramJson = JSON.parseObject(taskRespVO.getTaskParams());
+        long deviceCount;
+        if (paramJson == null) {
+            deviceCount = 1;
+        } else {
+            deviceCount = paramJson.keySet().stream().filter(StringUtils::isNumeric).count();
+        }
+        goodsDetailVO.setLensNum((int) deviceCount);
+        goodsDetailVO.setFaceId(taskRespVO.getFaceId());
         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 91c4174..bbb6ba4 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
@@ -342,4 +342,12 @@ public class OrderServiceImpl implements OrderService {
         orderOperationMapper.add(orderOperationEntity);
     }
 
+    @Override
+    public ApiResponse<PageInfo<OrderRespVO>> refundPageQuery(OrderReqQuery query) {
+        PageHelper.startPage(query.getPageNum(), query.getPageSize());
+        List<OrderRespVO> list = orderMapper.refundList(query);
+        PageInfo<OrderRespVO> pageInfo = new PageInfo<>(list);
+        return ApiResponse.success(pageInfo);
+    }
+
 }
diff --git a/src/main/java/com/ycwl/basic/service/pc/OrderService.java b/src/main/java/com/ycwl/basic/service/pc/OrderService.java
index d6136b2..dbc4a79 100644
--- a/src/main/java/com/ycwl/basic/service/pc/OrderService.java
+++ b/src/main/java/com/ycwl/basic/service/pc/OrderService.java
@@ -57,4 +57,6 @@ public interface OrderService {
     ApiResponse<?> auditRefundOrder(RefundOrderReq refundOrderReq);
 
     void remarkOrder(Long orderId, OrderEntity query);
+
+    ApiResponse<PageInfo<OrderRespVO>> refundPageQuery(OrderReqQuery query);
 }
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 80ab562..469925e 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -14,7 +14,7 @@ spring:
   datasource: # 数据源的相关配置
     type: com.zaxxer.hikari.HikariDataSource          # 数据源类型:HikariCP
     driver-class-name: com.mysql.cj.jdbc.Driver          # mysql驱动
-    url: jdbc:mysql://106.14.162.214:3306/zt?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
+    url: jdbc:mysql://127.0.0.1:3306/zt?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
     username: zt
     password: ZhEnTuAi2024zHeNtUaI
     hikari:
diff --git a/src/main/resources/logback-spring-prod.xml b/src/main/resources/logback-spring-prod.xml
index 5566fda..824c44c 100644
--- a/src/main/resources/logback-spring-prod.xml
+++ b/src/main/resources/logback-spring-prod.xml
@@ -1,22 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration debug="false">
 
-    <!-- appender是configuration的子节点,是负责写日志的组件。 -->
-    <!-- ConsoleAppender:把日志输出到控制台 -->
     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <!-- 默认情况下,每个日志事件都会立即刷新到基础输出流。 这种默认方法更安全,因为如果应用程序在没有正确关闭appender的情况下退出,则日志事件不会丢失。
-         但是,为了显着增加日志记录吞吐量,您可能希望将immediateFlush属性设置为false -->
-        <!--<immediateFlush>true</immediateFlush>-->
         <encoder>
-            <!-- %37():如果字符没有37个字符长度,则左侧用空格补齐 -->
-            <!-- %-37():如果字符没有37个字符长度,则右侧用空格补齐 -->
-            <!-- %15.15():如果记录的线程字符长度小于15(第一个)则用空格在左侧补齐,如果字符长度大于15(第二个),则从开头开始截断多余的字符 -->
-            <!-- %-40.40():如果记录的logger字符长度小于40(第一个)则用空格在右侧补齐,如果字符长度大于40(第二个),则从开头开始截断多余的字符 -->
-            <!-- %msg:日志打印详情 -->
-            <!-- %n:换行符 -->
-            <!-- %highlight():转换说明符以粗体红色显示其级别为ERROR的事件,红色为WARN,BLUE为INFO,以及其他级别的默认颜色。 -->
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) --- [%15.15(%thread)] %cyan(%-40.40(%logger{40})) : %msg%n</pattern>
-            <!-- 控制台也要使用UTF-8,不要使用GBK,否则会中文乱码 -->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} (%-5level) (%-40.40(%logger{40})) : %msg%n</pattern>
             <charset>UTF-8</charset>
         </encoder>
     </appender>
@@ -116,13 +103,7 @@
         </encoder>
     </appender>
 
-    <!--给定记录器的每个启用的日志记录请求都将转发到该记录器中的所有appender以及层次结构中较高的appender(不用在意level值)。
-    换句话说,appender是从记录器层次结构中附加地继承的。
-    例如,如果将控制台appender添加到根记录器,则所有启用的日志记录请求将至少在控制台上打印。
-    如果另外将文件追加器添加到记录器(例如L),则对L和L'子项启用的记录请求将打印在文件和控制台上。
-    通过将记录器的additivity标志设置为false,可以覆盖此默认行为,以便不再添加appender累积-->
-    <!-- configuration中最多允许一个root,别的logger如果没有设置级别则从父级别root继承 -->
-    <root level="INFO">
+    <root level="WARN">
         <appender-ref ref="STDOUT" />
     </root>
 
diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml
index a3f2ce6..e5865ff 100644
--- a/src/main/resources/mapper/OrderMapper.xml
+++ b/src/main/resources/mapper/OrderMapper.xml
@@ -131,7 +131,7 @@
     </delete>
     <select id="list" resultMap="PCBaseResultMap">
         select distinct o.id, o.scenic_id, s.name as scenic_name, o.member_id,m.nickname ,m.real_name , o.openid, o.price, pay_price, remark, o.broker_id, o.promo_code,
-               refund_reason, refund_status, o.`status`, refund_at, pay_at, cancel_at,oi.id oiId, o.goods_type, oi.goods_id
+               refund_reason, refund_status, o.`status`, refund_at, pay_at, cancel_at,oi.id oiId, o.goods_type, oi.goods_id, o.create_at
         from `order`  AS o
         left join member m on o.member_id = m.id
         left join scenic s on o.scenic_id = s.id
@@ -324,4 +324,75 @@
                  left join scenic sc on (o.goods_type='1' and vd.scenic_id=sc.id) or (o.goods_type='2' and sr.scenic_id=sc.id)
         where o.id = #{id}
     </select>
+    <select id="refundList" resultType="com.ycwl.basic.model.pc.order.resp.OrderRespVO">
+        select distinct o.id, o.scenic_id, s.name as scenic_name, o.member_id,m.nickname ,m.real_name , o.openid, o.price, pay_price, remark, o.broker_id, o.promo_code,
+        refund_reason, refund_status, o.`status`, refund_at, pay_at, cancel_at,oi.id oiId, o.goods_type, oi.goods_id, o.create_at
+        from `order`  AS o
+        left join member m on o.member_id = m.id
+        left join scenic s on o.scenic_id = s.id
+        left join order_item oi on o.id = oi.order_id
+        left join source sr on o.goods_type='2' and oi.goods_id = sr.id
+        left join video vd on o.goods_type='1' and oi.goods_id = vd.id
+        <where>
+            o.refund_status != 0
+            <if test="id!= null ">
+                and o.id = #{id}
+            </if>
+            <if test="scenicId != null">
+                and o.scenic_id = #{scenicId}
+            </if>
+            <if test="memberNickname!= null and memberNickname!=''">
+                and m.nickname like concat('%',#{memberNickname},'%')
+            </if>
+            <if test="memberRealName!= null and memberRealName!=''">
+                and m.real_name like concat('%',#{memberRealName},'%')
+            </if>
+            <if test="price!= null ">
+                and o.price = #{price}
+            </if>
+            <if test="payPrice!= null ">
+                and pay_price = #{payPrice}
+            </if>
+            <if test="remark!= null and remark!= ''">
+                and remark like concat('%',#{remark},'%')
+            </if>
+            <if test="brokerId!= null ">
+                and o.broker_id = #{brokerId}
+            </if>
+            <if test="promoCode!= null and promoCode!= ''">
+                and o.promo_code like concat('%',#{promoCode},'%')
+            </if>
+            <if test="refundReason!= null and refundReason!= ''">
+                and refund_reason like concat('%',#{refundReason},'%')
+            </if>
+            <if test="status!= null ">
+                and o.`status` = #{status}
+            </if>
+            <if test="startCreateTime!= null ">
+                and o.create_at >= #{startCreateTime}
+            </if>
+            <if test="endCreateTime!= null ">
+                and o.create_at &lt;= #{endCreateTime}
+            </if>
+            <if test="startPayTime!= null ">
+                and pay_at &gt;= #{startPayTime}
+            </if>
+            <if test="endPayTime!= null ">
+                and pay_at &lt;= #{endPayTime}
+            </if>
+            <if test="startRefundTime!= null ">
+                and refund_at &gt;= #{startRefundTime}
+            </if>
+            <if test="endRefundTime!= null ">
+                and refund_at &lt;= #{endRefundTime}
+            </if>
+            <if test="startCancelTime!= null ">
+                and cancel_at &gt;= #{startCancelTime}
+            </if>
+            <if test="endCancelTime!= null ">
+                and cancel_at &lt;= #{endCancelTime}
+            </if>
+        </where>
+        order by o.create_at desc
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/TaskMapper.xml b/src/main/resources/mapper/TaskMapper.xml
index 64c0068..31a9929 100644
--- a/src/main/resources/mapper/TaskMapper.xml
+++ b/src/main/resources/mapper/TaskMapper.xml
@@ -54,7 +54,7 @@
         delete from task where id = #{id}
     </delete>
     <select id="list" resultType="com.ycwl.basic.model.pc.task.resp.TaskRespVO">
-        select id, worker_id, member_id, template_id, scenic_id, task_params, video_url, `status`, result, create_time, update_time, start_time, end_time
+        select id, worker_id, face_id, member_id, template_id, scenic_id, task_params, video_url, `status`, result, create_time, update_time, start_time, end_time
 from task
         <where>
             <if test="workerId!= null">and worker_id = #{workerId} </if>
@@ -67,7 +67,7 @@ from task
         </where>
     </select>
     <select id="getById" resultType="com.ycwl.basic.model.pc.task.resp.TaskRespVO">
-        select id, worker_id, member_id, template_id, scenic_id, task_params, video_url, `status`, result, create_time, update_time
+        select id, worker_id, face_id, member_id, template_id, scenic_id, task_params, video_url, `status`, result, create_time, update_time
         from task
         where id = #{id}
     </select>
diff --git a/src/main/resources/mapper/TemplateMapper.xml b/src/main/resources/mapper/TemplateMapper.xml
index 184dd0a..db003b1 100644
--- a/src/main/resources/mapper/TemplateMapper.xml
+++ b/src/main/resources/mapper/TemplateMapper.xml
@@ -63,7 +63,7 @@
         delete from template_config where id = #{id}
     </delete>
     <select id="list" resultType="com.ycwl.basic.model.pc.template.resp.TemplateRespVO">
-        select t.id, t.scenic_id, s.name as scenic_name, t.`name`, t.cover_url, t.status, t.create_time, t.update_time
+        select t.id, t.scenic_id, s.name as scenic_name, t.`name`, t.cover_url, t.status, t.create_time, t.update_time, t.price, t.sort
         from template t left join scenic s on s.id = t.scenic_id
         <where>
             pid = 0
@@ -79,7 +79,7 @@
         </where>
     </select>
     <select id="getById" resultType="com.ycwl.basic.model.pc.template.resp.TemplateRespVO">
-        select t.id, t.scenic_id, s.name as scenic_name, t.`name`, pid, is_placeholder, source_url, luts, overlays, audios, frame_rate, speed, t.cover_url, t.status, t.create_time, t.update_time
+        select t.id, t.scenic_id, s.name as scenic_name, t.`name`, pid, is_placeholder, source_url, luts, overlays, audios, frame_rate, speed, t.cover_url, t.status, t.create_time, t.update_time, t.price, t.sort
         from template t left join scenic s on s.id = t.scenic_id
         where t.id = #{id}
     </select>
@@ -96,4 +96,14 @@
         from template
         where scenic_id = #{scenicId} and pid = 0
     </select>
+    <select id="listFor" resultType="com.ycwl.basic.model.mobile.scenic.content.ContentPageVO">
+        select t.id templateId, t.scenic_id, s.name as scenic_name, t.`name`, pid, t.cover_url templateCoverUrl,
+               1 as sourceType,
+               (select IF(count(1) > 0,1,0) from video left join task on video.task_id = task.id where video.template_id=t.id and task.face_id = #{faceId}) contentType,
+               (select count(1) from video left join task on video.task_id = task.id where video.template_id=t.id and task.face_id = #{faceId} and video.is_buy = 1) isBuy,
+               t.create_time, t.price
+        from template t left join scenic s on s.id = t.scenic_id
+        where t.scenic_id = #{scenicId} and pid = 0 and t.status = 1
+        order by sort
+    </select>
 </mapper>