diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java
index 8fb9050..d0803f9 100644
--- a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java
+++ b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java
@@ -5,6 +5,7 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.ycwl.basic.biz.OrderBiz;
 import com.ycwl.basic.enums.StatisticEnum;
+import com.ycwl.basic.exception.BaseException;
 import com.ycwl.basic.facebody.FaceBodyFactory;
 import com.ycwl.basic.facebody.adapter.AliFaceBodyAdapter;
 import com.ycwl.basic.facebody.adapter.IFaceBodyAdapter;
@@ -229,6 +230,9 @@ public class FaceServiceImpl implements FaceService {
             faceBodyAdapter = FaceBodyFactory.use();
         }
         SearchFaceRespVo scenicDbSearchResult = faceService.searchFace(faceBodyAdapter, String.valueOf(face.getScenicId()), face.getFaceUrl(), "人脸识别");
+        if (scenicDbSearchResult == null) {
+            throw new BaseException("人脸识别失败,请换一张试试把~");
+        }
         if (scenicDbSearchResult.getSampleListIds() != null && scenicDbSearchResult.getFirstMatchRate() != null && !scenicDbSearchResult.getSampleListIds().isEmpty()) {
             if (scenicConfig != null && scenicConfig.getFaceDetectHelperThreshold() != null && scenicConfig.getFaceDetectHelperThreshold() > 0) {
                 if (scenicDbSearchResult.getSampleListIds().size() < scenicConfig.getFaceDetectHelperThreshold()) {
diff --git a/src/main/java/com/ycwl/basic/service/task/impl/TaskFaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/task/impl/TaskFaceServiceImpl.java
index 87bfc74..3487671 100644
--- a/src/main/java/com/ycwl/basic/service/task/impl/TaskFaceServiceImpl.java
+++ b/src/main/java/com/ycwl/basic/service/task/impl/TaskFaceServiceImpl.java
@@ -181,7 +181,7 @@ public class TaskFaceServiceImpl implements TaskFaceService {
         request.setLimit(200);
 //        request.setQualityScoreThreshold(60f);
         FaceDetectLog logEntity = FaceDetectLog.quickCreate(reason, request);
-        float threshold = 0.525F;
+        float threshold = 0;
         int tourMinutes = -1;
         if (StringUtils.isNumeric(dbName)) {
             ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(Long.valueOf(dbName));
@@ -193,9 +193,18 @@ public class TaskFaceServiceImpl implements TaskFaceService {
                     tourMinutes = scenicConfig.getTourTime();
                 }
             }
+        } else if (StringUtils.isNumeric(dbName.replace(USER_FACE_DB_NAME, ""))) {
+            Long scenicId = Long.valueOf(dbName.replace(USER_FACE_DB_NAME, ""));
+            ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId);
+            if (scenicConfig != null) {
+                if (scenicConfig.getFaceScoreThreshold() != null) {
+                    threshold = scenicConfig.getFaceScoreThreshold() / 100F;
+                }
+            }
         }
         final float _threshold = threshold;
         List<Long> acceptFaceSampleIds;
+        List<Long> allFaceSampleIds;
         try {
             SearchFaceResp response = adapter.searchFace(dbName, faceUrl);
             if (response == null) {
@@ -219,45 +228,45 @@ public class TaskFaceServiceImpl implements TaskFaceService {
                     .filter(StringUtils::isNumeric)
                     .map(Long::valueOf)
                     .collect(Collectors.toList());
-            if (acceptFaceSampleIds.isEmpty()) {
-                respVo.setFirstMatchRate(0f);
-                respVo.setSampleListIds(Collections.emptyList());
-                return respVo;
-            }
-            List<FaceSampleEntity> faceSampleList = new ArrayList<>();
+            allFaceSampleIds = records.stream()
+                    .map(SearchFaceResultItem::getExtData)
+                    .filter(StringUtils::isNumeric)
+                    .map(Long::valueOf)
+                    .collect(Collectors.toList());
+            List<FaceSampleEntity> allFaceSampleList = new ArrayList<>();
             if (StringUtils.isNumeric(dbName)) { // 景区
-                faceSampleList = faceSampleMapper.listByIds(acceptFaceSampleIds);
+                allFaceSampleList = faceSampleMapper.listByIds(allFaceSampleIds);
                 Long firstFaceSampleId = acceptFaceSampleIds.get(0);
-                Optional<FaceSampleEntity> firstFaceSample = faceSampleList.stream().filter(faceSample -> faceSample.getId().equals(firstFaceSampleId)).findAny();
+                Optional<FaceSampleEntity> firstFaceSample = allFaceSampleList.stream().filter(faceSample -> faceSample.getId().equals(firstFaceSampleId)).findAny();
                 if (firstFaceSample.isPresent()) {
                     if (tourMinutes > 0) {
+                        List<FaceSampleEntity> acceptFaceSampleList = faceSampleMapper.listByIds(acceptFaceSampleIds);
                         Date startDate = DateUtil.offsetMinute(firstFaceSample.get().getCreateAt(), -tourMinutes/2);
                         Date endDate = DateUtil.offsetMinute(firstFaceSample.get().getCreateAt(), tourMinutes/2);
-                        acceptFaceSampleIds = faceSampleList.stream()
+                        acceptFaceSampleIds = acceptFaceSampleList.stream()
                                 .filter(faceSample -> faceSample.getCreateAt().after(startDate) && faceSample.getCreateAt().before(endDate))
                                 .map(FaceSampleEntity::getId)
                                 .collect(Collectors.toList());
                         log.info("时间范围逻辑:最高匹配:{},时间范围需要在:{}~{}间", firstFaceSample, startDate, endDate);
                     } else {
-                        acceptFaceSampleIds = faceSampleList.stream()
-                                .map(FaceSampleEntity::getId)
-                                .collect(Collectors.toList());
                         log.info("时间范围逻辑:景区未限制");
                     }
                 } else {
-                    acceptFaceSampleIds = faceSampleList.stream()
-                            .map(FaceSampleEntity::getId)
-                            .collect(Collectors.toList());
                     log.info("时间范围逻辑:最高匹配ID:{},未找到", firstFaceSampleId);
                 }
             }
+            if (acceptFaceSampleIds.isEmpty()) {
+                respVo.setFirstMatchRate(0f);
+                respVo.setSampleListIds(Collections.emptyList());
+                return respVo;
+            }
             List<MatchLocalRecord> collect = new ArrayList<>();
             for (SearchFaceResultItem item : records) {
                 MatchLocalRecord record = new MatchLocalRecord();
                 record.setIdStr(item.getExtData());
                 record.setFaceSampleId(Long.parseLong(item.getExtData()));
                 if (StringUtils.isNumeric(item.getDbName())) {
-                    Optional<FaceSampleEntity> optionalFse = faceSampleList.stream().filter(face -> face.getId().equals(Long.parseLong(item.getExtData()))).findAny();
+                    Optional<FaceSampleEntity> optionalFse = allFaceSampleList.stream().filter(face -> face.getId().equals(Long.parseLong(item.getExtData()))).findAny();
                     if (optionalFse.isPresent()) {
                         DeviceEntity device = deviceRepository.getDevice(optionalFse.get().getDeviceId());
                         if (device != null) {