|
@@ -0,0 +1,104 @@
|
|
|
+package com.gis.cms.service.impl;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.gis.cms.entity.dto.FodderDto;
|
|
|
+import com.gis.cms.entity.po.FodderEntity;
|
|
|
+import com.gis.cms.entity.po.WorkEntity;
|
|
|
+import com.gis.cms.mapper.FodderMapper;
|
|
|
+import com.gis.cms.service.FodderService;
|
|
|
+import com.gis.cms.service.OpsService;
|
|
|
+import com.gis.cms.service.WorkService;
|
|
|
+import com.gis.common.base.entity.dto.PageDto;
|
|
|
+import com.gis.common.base.exception.BaseRuntimeException;
|
|
|
+import com.gis.common.base.service.impl.IBaseService;
|
|
|
+import com.gis.common.constant.CmdConstant;
|
|
|
+import com.gis.common.constant.ConfigConstant;
|
|
|
+import com.gis.common.constant.ErrorEnum;
|
|
|
+import com.gis.common.util.*;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.junit.Test;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * Created by owen on 2020/3/11 0011 16:16
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Service
|
|
|
+public class OpsServiceImpl implements OpsService {
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ ConfigConstant configConstant;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ WorkService workService;
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result<WorkEntity> downloadWork(String ids) {
|
|
|
+ BaseRuntimeException.isBlank(ids, null, "输入参数为空");
|
|
|
+ // 替换空格
|
|
|
+ ids = ids.replaceAll(",", " ");
|
|
|
+ log.info("下载作品目录:{}", ids);
|
|
|
+ String zipName = StrUtils.getTime("work_");
|
|
|
+ zipName = "/download/" + zipName + ".zip";
|
|
|
+
|
|
|
+ String outPath = configConstant.serverBasePath + zipName;
|
|
|
+ log.info("zip保存路径:{}", outPath);
|
|
|
+ String cmd = CmdConstant.zip;
|
|
|
+ cmd = cmd.replaceAll("@outPath", outPath);
|
|
|
+ cmd = cmd.replaceAll("@inDir", ids);
|
|
|
+
|
|
|
+ CmdUtils.callShell(cmd);
|
|
|
+
|
|
|
+ return Result.success(zipName);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result<WorkEntity> downloadPano(String ids) {
|
|
|
+ BaseRuntimeException.isBlank(ids, null, "输入参数为空");
|
|
|
+ List<WorkEntity> list = workService.listByIds(Arrays.asList(ids));
|
|
|
+ log.info("作品数量: {}", list.size());
|
|
|
+ StringBuffer dir = new StringBuffer();
|
|
|
+ for (WorkEntity entity : list) {
|
|
|
+ String sceneCodes = entity.getSceneCodes();
|
|
|
+ if (StringUtils.isNotBlank(sceneCodes)){
|
|
|
+ dir.append(dir).append(",");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String dirCode = dir.toString();
|
|
|
+ // 替换空格
|
|
|
+ dirCode = dirCode.replaceAll(",", " ");
|
|
|
+ log.info("下载全景目录:{}", dirCode);
|
|
|
+ String zipName = StrUtils.getTime("pano_");
|
|
|
+ zipName = "/download/" + zipName + ".zip";
|
|
|
+
|
|
|
+ String outPath = configConstant.serverBasePath + zipName;
|
|
|
+ log.info("zip保存路径:{}", outPath);
|
|
|
+ String cmd = CmdConstant.zip;
|
|
|
+ cmd = cmd.replaceAll("@outPath", outPath);
|
|
|
+ cmd = cmd.replaceAll("@inDir", dirCode);
|
|
|
+
|
|
|
+ CmdUtils.callShell(cmd);
|
|
|
+
|
|
|
+
|
|
|
+ return Result.success(zipName);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void test(){
|
|
|
+ String str = "1,2,3,";
|
|
|
+ System.out.println(StringUtils.substringBeforeLast(str, ","));
|
|
|
+
|
|
|
+ }
|
|
|
+}
|