dengsixing hai 11 meses
pai
achega
7f9dfbd907

+ 5 - 1
src/main/java/com/fdkankan/job/mapper/ISceneProMapper.java

@@ -1,9 +1,11 @@
 package com.fdkankan.job.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.job.dto.SceneBean;
 import com.fdkankan.job.entity.ScenePro;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
 import java.util.List;
@@ -13,7 +15,7 @@ import java.util.List;
  * pro场景表 Mapper 接口
  * </p>
  *
- * @author 
+ * @author
  * @since 2022-12-16
  */
 @Mapper
@@ -23,4 +25,6 @@ public interface ISceneProMapper extends BaseMapper<ScenePro> {
 
     List<SceneBean> listCleanOss4DeletedScene(Date time);
 
+    Page<ScenePro> listSceneProAll(Page page, @Param("numList") List<String> numList);
+
 }

+ 98 - 0
src/main/java/com/fdkankan/job/repair/UploadCacheImagesHandler.java

@@ -0,0 +1,98 @@
+package com.fdkankan.job.repair;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.fyun.face.FYunFileServiceInterface;
+import com.fdkankan.job.entity.ScenePlus;
+import com.fdkankan.job.entity.ScenePlusExt;
+import com.fdkankan.job.entity.ScenePro;
+import com.fdkankan.job.service.IHouseTypeService;
+import com.fdkankan.job.service.IScenePlusExtService;
+import com.fdkankan.job.service.IScenePlusService;
+import com.fdkankan.job.service.ISceneProService;
+import com.fdkankan.model.constants.UploadFilePath;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 修复housetype.json文件数据
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/12/16
+ **/
+@Slf4j
+@Component
+public class UploadCacheImagesHandler {
+
+    @Autowired
+    private IHouseTypeService houseTypeService;
+    @Autowired
+    private IScenePlusService scenePlusService;
+    @Autowired
+    private IScenePlusExtService scenePlusExtService;
+    @Resource
+    private FYunFileServiceInterface fYunFileService;
+    @Autowired
+    private ISceneProService sceneProService;
+
+    @XxlJob("uploadCacheImagesHandler")
+    private void repairModelKind(){
+        XxlJobHelper.log("uploadCacheImagesHandler start.....");
+
+        List<String> numList = null;
+        String nums = XxlJobHelper.getJobParam();
+        if(StrUtil.isNotEmpty(nums)){
+            numList = Arrays.asList(nums.split(","));
+        }
+
+        Long pageSize = 10L;
+        Long pageNum = 1L;
+        boolean hasNext = false;
+        do {
+            Page<ScenePro> sceneProPage = sceneProService.listSceneProAll(pageNum, pageSize, numList);
+            List<ScenePro> records = sceneProPage.getRecords();
+            if(CollUtil.isNotEmpty(records)){
+                records.parallelStream().forEach(v->{
+                    String dataSource = v.getDataSource();
+                    if(FileUtil.exist(dataSource)){
+                        //上传cache/images
+                        String path = dataSource + "/caches/images/";
+
+                        String[] list = new File(path).list();
+                        String ossBasePath = "scene_result_data/" + v.getNum() + "/caches/images/";
+//                        if(list != null && list.length > 0){
+//                            Arrays.stream(list).forEach(k-> fYunFileService.uploadFile(path + v, ossBasePath + v));
+//                        }
+
+                        //重命名dataSource(因为不确定这个目录的文件是否还有其他用处,所以这里暂时重命名,运行一段时间后再进行删除处理)
+//                        FileUtil.move(new File(dataSource), new File(dataSource + "_bak"), true);
+
+                    }
+                });
+            }
+
+            hasNext = sceneProPage.hasNext();
+        }while (hasNext);
+
+
+        XxlJobHelper.log("uploadCacheImagesHandler end.....");
+    }
+
+
+}

+ 4 - 1
src/main/java/com/fdkankan/job/service/ISceneProService.java

@@ -1,5 +1,6 @@
 package com.fdkankan.job.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.job.dto.SceneBean;
 import com.fdkankan.job.entity.ScenePro;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -11,7 +12,7 @@ import java.util.List;
  * pro场景表 服务类
  * </p>
  *
- * @author 
+ * @author
  * @since 2022-12-16
  */
 public interface ISceneProService extends IService<ScenePro> {
@@ -20,4 +21,6 @@ public interface ISceneProService extends IService<ScenePro> {
 
     List<SceneBean> listCleanOss4DeletedScene(int month);
 
+    Page<ScenePro> listSceneProAll(Long pageNum, Long pageSize, List<String> numList);
+
 }

+ 6 - 1
src/main/java/com/fdkankan/job/service/impl/SceneProServiceImpl.java

@@ -2,6 +2,7 @@ package com.fdkankan.job.service.impl;
 
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.job.dto.SceneBean;
 import com.fdkankan.job.entity.ScenePro;
 import com.fdkankan.job.mapper.ISceneProMapper;
@@ -18,7 +19,7 @@ import java.util.List;
  * pro场景表 服务实现类
  * </p>
  *
- * @author 
+ * @author
  * @since 2022-12-16
  */
 @Service
@@ -38,4 +39,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         return this.baseMapper.listCleanOss4DeletedScene(time);
     }
 
+    @Override
+    public Page<ScenePro> listSceneProAll(Long pageNum, Long pageSize, List<String> numList) {
+        return this.baseMapper.listSceneProAll(new Page(pageNum, pageSize), numList);
+    }
 }

+ 13 - 0
src/main/resources/mapper/job/SceneProMapper.xml

@@ -40,4 +40,17 @@
         and NOT EXISTS (select o.num from t_scene_clean_orig o where o.rec_status = 'A' and o.state != -1 and o.num = pro.num and pro.create_time <![CDATA[ < ]]> o.create_time)
     </select>
 
+    <select id="listSceneProAll" resultType="com.fdkankan.job.entity.ScenePro" parameterType="java.util.List">
+        select * from t_scene_pro t
+        where t.data_source is not null AND LENGTH(t.`data_source`) > 20 and t.is_obj != 1
+        <if test="numList != null and numList.size > 0">
+            and t.num in
+            <foreach collection="numList" item="num" open="(" close=")" separator=",">
+                #{num}
+            </foreach>
+        </if>
+        order by t.id desc
+    </select>
+
+
 </mapper>