Sfoglia il codice sorgente

完成平面图相关功能

wuweihao 4 anni fa
parent
commit
611a05c450

+ 8 - 0
laser/src/main/java/com/fdkankan/indoor/base/constant/CmdConstant.java

@@ -46,4 +46,12 @@ public class CmdConstant {
      * bash /home/ubuntu/bin/PotreeConverter.sh /mnt/data/00001002/872819408496492544/74ee2a39e656_202108051135248650/results/laserData/laser.las /mnt/data/00001002/872819408496492544/74ee2a39e656_202108051135248650/results/laserData
      */
     public final static String LAS_TO_BIN = "bash /home/ubuntu/bin/PotreeConverter.sh @inPath @outPath";
+
+
+    /**
+     * ossUtil下载目录
+     * @downloadDir oss需要下载的目录
+     * @target 服务器存放位置(会把当前目录也下载)
+     */
+    public final static String OSSUTIL_DOWNLOAD_DIR = "bash /root/user/java/jar_run/ossdownload.sh @downloadDir @target";
 }

+ 33 - 9
laser/src/main/java/com/fdkankan/indoor/base/convert/GisCoordinateUtil.java

@@ -3,12 +3,14 @@ package com.fdkankan.indoor.base.convert;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.indoor.base.convert.GisCoordinateTransform;
+import com.fdkankan.indoor.base.exception.BaseRuntimeException;
 import com.fdkankan.indoor.core.entity.ControlPointEntity;
+import lombok.extern.slf4j.Slf4j;
 import org.junit.Test;
 
 import java.io.*;
 
-
+@Slf4j
 public class GisCoordinateUtil {
     private static double dx;//x方向增量
     private static double dy;//y方向增量
@@ -85,7 +87,7 @@ public class GisCoordinateUtil {
      * @param bX
      * @param bY
      */
-    public static void calculateVariable(double alon, double alat, double aX, double aY, double blon, double blat, double bX, double bY) {
+    public static void calculateVariable(double alon, double alat, double aX, double aY, double blon, double blat, double bX, double bY)  {
 
         double[] a = GisCoordinateTransform.convert2000BLToGauss(alon, alat);
         double[] b = GisCoordinateTransform.convert2000BLToGauss(blon, blat);
@@ -180,9 +182,15 @@ public class GisCoordinateUtil {
 
         double[] controlCoordinate1 = dto.getGpsControlCoordinate1();
         double[] controlCoordinate2 = dto.getGpsControlCoordinate2();
-        GisCoordinateUtil.calculateVariable(controlCoordinate1[0], controlCoordinate1[1], controlLocation1[0], controlLocation1[1], controlCoordinate2[0], controlCoordinate2[1], controlLocation2[0], controlLocation2[1]);
-        double[] d = GisCoordinateUtil.transformBLToLocation(position[0], position[1]);
-        return d;
+        try {
+            GisCoordinateUtil.calculateVariable(controlCoordinate1[0], controlCoordinate1[1], controlLocation1[0], controlLocation1[1], controlCoordinate2[0], controlCoordinate2[1], controlLocation2[0], controlLocation2[1]);
+            double[] d = GisCoordinateUtil.transformBLToLocation(position[0], position[1]);
+            return d;
+        } catch (RuntimeException e) {
+            log.error("坐标转换输入参数有误,请检查");
+            e.printStackTrace();
+        }
+       return null;
     }
 
 //    /**
@@ -323,13 +331,24 @@ public class GisCoordinateUtil {
 
 
        // 将算法部提供控制点赋值,用于计算
-        dto.setGpsControlCoordinate1(dto.getDefaultGisP1());
-        dto.setGpsControlCoordinate2(dto.getDefaultGisP2());
-        dto.setAgeControlLocation1(dto.getDefaultLocation1());
-        dto.setAgeControlLocation2(dto.getDefaultLocation2());
+        double[] defaultGisP1 = dto.getDefaultGisP1();
+        double[] defaultGisP2 = dto.getDefaultGisP2();
+        double[] defaultLocation1 = dto.getDefaultLocation1();
+        double[] defaultLocation2 = dto.getDefaultLocation2();
+        if (defaultGisP1 == null || defaultGisP2 == null || defaultLocation1 == null || defaultLocation2 == null) {
+            log.error("默认控制点数据有空值, 请检查默认控制点。尝试重算解决");
+            throw new BaseRuntimeException("默认控制点数据有空值, 请检查默认控制点。尝试重算解决");
+        }
+
+        dto.setGpsControlCoordinate1(defaultGisP1);
+        dto.setGpsControlCoordinate2(defaultGisP2);
+        dto.setAgeControlLocation1(defaultLocation1);
+        dto.setAgeControlLocation2(defaultLocation2);
+        log.info("准备转换坐标");
         // defaultP1,defaultP2使用的是算法部提供的控制点得出结果, 人工输入gis坐标转 本地坐标
         double[] defaultP1 = convertGpsToLocation(webGisP1, dto);
         double[] defaultP2 = convertGpsToLocation(webGisP2, dto);
+        log.info("转换本地坐标完成");
 
 
 
@@ -342,6 +361,11 @@ public class GisCoordinateUtil {
     }
 
 
+    @Test
+    public void test11(){
+        getDataSetOrientation(new ControlPointEntity());
+    }
+
 
 
     /**

+ 10 - 11
laser/src/main/java/com/fdkankan/indoor/base/util/AliYunOssUtil.java

@@ -244,18 +244,17 @@ public class AliYunOssUtil {
     }
 
 
-
     /**
-     * 生成图片
-     * @param inputFilePath
-     * @param savePath
+     * 判断oss文件是否存在
+     * @param fileKey oss文件路径
+     * @return
      */
-//	public static void writeFile(String inputFilePath, String savePath){
-//		try {
-//			FileUtils.bigFileWrite(getInputStreamByFileUrl(inputFilePath), savePath);
-//		} catch (IOException e) {
-//			e.printStackTrace();
-//		}
-//	}
+    public Boolean exist(String fileKey){
+        OSSClient ossClient = init();
+
+        return ossClient.doesObjectExist(configConstant.ossBucket, fileKey);
+    }
+
+
 
 }

+ 2 - 3
laser/src/main/java/com/fdkankan/indoor/core/controller/ControlPointController.java

@@ -61,8 +61,7 @@ public class ControlPointController {
     @WebControllerLog(description = "本地调试控制点")
     @ApiOperation(value = "本地调试控制点")
     @PostMapping("indoor/{sceneCode}/api/controlPoint/test")
-    public Result test(@PathVariable String sceneCode,  @RequestBody ControlPointEntity param) {
-        param.setId(sceneCode);
-        return entityService.testControlPoint(param);
+    public Result test(@PathVariable String sceneCode,  @RequestBody ControlPointDto param) {
+        return entityService.testControlPoint(param, sceneCode);
     }
 }

+ 16 - 0
laser/src/main/java/com/fdkankan/indoor/core/controller/TestController.java

@@ -52,6 +52,8 @@ public class TestController {
     @Autowired
     TiledMapService tiledMapService;
 
+
+
     @ApiOperation("测试成员变量")
     @GetMapping("testVariate/{param}")
     public Result testVariate(@PathVariable Integer param){
@@ -234,4 +236,18 @@ public class TestController {
         tiledMapService.init(sceneCode);
         return Result.success();
     }
+
+
+    @ApiOperation("specialPoint-查询特殊点")
+    @GetMapping("specialPoint/{sceneCode}")
+    public Result specialPoint(@PathVariable String sceneCode){
+        return Result.success(specialPointService.findBySceneCode(sceneCode));
+    }
+
+
+    @ApiOperation("oss-判断文件是否存在")
+    @GetMapping("oss/exist")
+    public Result ossExist(){
+        return owenService.ossExist();
+    }
 }

+ 45 - 8
laser/src/main/java/com/fdkankan/indoor/core/controller/TiledMapController.java

@@ -7,13 +7,14 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 
 /**
  * Created by owen on 2021/8/20 0002 20:39
  *
  */
-@Api(tags = "地图-tiledMap")
+@Api(tags = "tiledMap-平面图")
 @RestController
 public class TiledMapController {
 
@@ -27,6 +28,12 @@ public class TiledMapController {
         return result.getData();
     }
 
+    /**
+     * 好像废弃
+     * @param sceneCode
+     * @param param
+     * @return
+     */
 //    @WebControllerLog(description = "小地图初始")
     @ApiOperation(value = "更新")
     @PutMapping("indoor/{sceneCode}/api/tiled_maps")
@@ -34,11 +41,41 @@ public class TiledMapController {
         return entityMap.updateData(sceneCode, param);
     }
 
-//
-//    @ApiOperation(value = "获取小地图信息")
-//    @GetMapping("indoor/{sceneCode}/api/tiled_maps")
-//    public Object getTiledMap(@PathVariable String sceneCode){
-//        Result result = entityMap.getTiledMap(sceneCode);
-//        return result.getData();
-//    }
+
+    /**
+     * 2021-09-07
+     * @param sceneCode
+     * @return
+     */
+    @ApiOperation(value = "详情")
+    @GetMapping("indoor/{sceneCode}/api/tiled_maps/detail")
+    public Result getDetail(@PathVariable String sceneCode){
+        return entityMap.getDetail(sceneCode);
+    }
+
+    @ApiOperation(value = "是否显示", notes = "是否显示:1:显示, 0:不显示")
+    @GetMapping("indoor/{sceneCode}/api/tiled_maps/updateDisplay/{display}")
+    public Result updateDisplay(@PathVariable String sceneCode, @PathVariable Integer display){
+        return entityMap.updateDisplay(sceneCode, display);
+    }
+
+    @ApiOperation(value = "重置", notes = "重置,使用默认cover目录上传oss")
+    @GetMapping("indoor/{sceneCode}/api/tiled_maps/init")
+    public Result init(@PathVariable String sceneCode){
+        entityMap.init(sceneCode);
+        return Result.success();
+    }
+
+
+    @ApiOperation(value = "上传平面图", notes = "只支持zip, 压缩文件不能包含目录")
+    @PostMapping("indoor/{sceneCode}/api/tiled_maps/upload")
+    public Result upload(@PathVariable String sceneCode, MultipartFile file){
+        return entityMap.upload(sceneCode, file);
+    }
+
+    @ApiOperation(value = "下载平面图", notes = "下载zip包, 前端自己拼接oss域名")
+    @GetMapping("indoor/{sceneCode}/api/tiled_maps/download")
+    public Result download(@PathVariable String sceneCode){
+        return entityMap.download(sceneCode);
+    }
 }

+ 7 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/TiledMapEntity.java

@@ -1,6 +1,7 @@
 package com.fdkankan.indoor.core.entity;
 
 import com.fdkankan.indoor.core.entity.dto.TiledMapDto;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springframework.data.mongodb.core.mapping.Document;
 
@@ -17,5 +18,11 @@ public class TiledMapEntity extends BaseEntity {
 
     private List<TiledMapDto> data;
 
+    @ApiModelProperty(value = "是否显示:1:显示, 0:不显示")
+    private Integer display;
+
+    @ApiModelProperty(value = "状态:0:默认, 1:自定义")
+    private Integer status;
+
 
 }

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/service/ControlPointService.java

@@ -18,7 +18,7 @@ public interface ControlPointService {
 
     void remove(String sceneCode);
 
-    Result testControlPoint(ControlPointEntity param);
+    Result testControlPoint(ControlPointDto param, String sceneCode);
 
     void saveEntity(ControlPointEntity param);
 }

+ 2 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/OwenService.java

@@ -33,4 +33,6 @@ public interface OwenService {
     Result mergeInfoSave(MergeInfoEntity param);
 
     Result mergeInfoRemove(String sceneCode, Integer dataSetId);
+
+    Result ossExist();
 }

+ 8 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/TiledMapService.java

@@ -29,4 +29,12 @@ public interface TiledMapService {
      TiledMapEntity findById(String sceneCode);
 
     void save(TiledMapEntity entity);
+
+    Result getDetail(String sceneCode);
+
+    Result updateDisplay(String sceneCode, Integer display);
+
+    Result upload(String sceneCode, MultipartFile file);
+
+    Result download(String sceneCode);
 }

+ 14 - 5
laser/src/main/java/com/fdkankan/indoor/core/service/impl/ControlPointServiceImpl.java

@@ -83,15 +83,24 @@ public class ControlPointServiceImpl implements ControlPointService {
     }
 
     @Override
-    public Result testControlPoint(ControlPointEntity param) {
-        param.setUpdateTime(LocalDateTime.now());
-        entityMapper.save(param);
+    public Result testControlPoint(ControlPointDto param, String sceneCode) {
+        ControlPointEntity pointEntity = this.findById(sceneCode);
+        if (pointEntity == null) {
+            pointEntity = new ControlPointEntity();
+        }
+
+        BeanUtils.copyProperties(param, pointEntity);
+
+        pointEntity.setUpdateTime(LocalDateTime.now());
+        // 用户手动输入控制点
+        pointEntity.setStatus(1);
+        entityMapper.save(pointEntity);
         log.info("控制点保存完成");
 
         // 初始化step2 数据
         // 场景码
-        String id = param.getId();
-        initService.testInitDataStep2(id);
+
+        initService.testInitDataStep2(sceneCode);
         log.info("初始化step2 完成");
         return Result.success();
     }

+ 2 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/impl/InitServiceImpl.java

@@ -798,11 +798,13 @@ public class InitServiceImpl implements InitService {
      * @param sceneCode
      */
     private void createDataSet(String sceneCode, String laserDataPath, ControlPointEntity controlPoint){
+        log.info("run createDataSet");
         DataSetEntity entity = new DataSetEntity();
         entity.setId(sceneCode);
         entity.setUpdateTime(LocalDateTime.now());
         // 设置原点坐标,通过场景码查询特殊点表的原点
         List<SpecialPointEntity> spList =  specialPointService.findBySceneCode(sceneCode);
+        log.info("特殊点数量:{}", spList.size());
         // 正常是5条记录: db.getCollection('t_special_point').find({"sceneCode":"t97"})
         if (spList.size() != 5) {
             throw new BaseRuntimeException(MsgCode.e3001, "特殊点表坐标异常");

+ 11 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/impl/OwenServiceImpl.java

@@ -7,6 +7,7 @@ import com.fdkankan.indoor.base.constant.CmdConstant;
 import com.fdkankan.indoor.base.constant.ConfigConstant;
 import com.fdkankan.indoor.base.constant.TypeConstant;
 import com.fdkankan.indoor.base.exception.BaseRuntimeException;
+import com.fdkankan.indoor.base.util.AliYunOssUtil;
 import com.fdkankan.indoor.base.util.CmdUtils;
 import com.fdkankan.indoor.base.util.RedisUtil;
 import com.fdkankan.indoor.base.util.Result;
@@ -51,6 +52,9 @@ public class OwenServiceImpl implements OwenService {
     @Autowired
     MergeInfoService mergeInfoService;
 
+    @Autowired
+    AliYunOssUtil aliYunOssUtil;
+
 
 
 //    @Autowired
@@ -218,6 +222,13 @@ public class OwenServiceImpl implements OwenService {
         return Result.success();
     }
 
+    @Override
+    public Result ossExist() {
+        String ossPath = "data/t-30/data/t-30/webcloud/cloud.js";
+        Boolean exist = aliYunOssUtil.exist(ossPath);
+        return Result.success(exist);
+    }
+
 
     private String redisPath(String sceneCode) {
         String initKey = TypeConstant.REDIS_INIT_PATH + sceneCode;

+ 159 - 7
laser/src/main/java/com/fdkankan/indoor/core/service/impl/TiledMapServiceImpl.java

@@ -1,12 +1,14 @@
 package com.fdkankan.indoor.core.service.impl;
 
 import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.ZipUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.indoor.base.constant.CmdConstant;
 import com.fdkankan.indoor.base.convert.PlanGraph;
 import com.fdkankan.indoor.base.convert.quadTree.Solution;
 import com.fdkankan.indoor.base.exception.BaseRuntimeException;
+import com.fdkankan.indoor.base.util.AliYunOssUtil;
 import com.fdkankan.indoor.base.util.CmdUtils;
 import com.fdkankan.indoor.base.util.Result;
 import com.fdkankan.indoor.core.entity.DataSetEntity;
@@ -16,12 +18,15 @@ import com.fdkankan.indoor.core.entity.dto.TiledMapDto;
 import com.fdkankan.indoor.core.entity.po.DataSetPo;
 import com.fdkankan.indoor.core.mapper.TiledMapMapper;
 import com.fdkankan.indoor.core.service.TiledMapService;
+import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
+import java.io.IOException;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
@@ -40,6 +45,9 @@ public class TiledMapServiceImpl extends IBaseServiceImpl implements TiledMapSer
     @Autowired
     DataSetServiceImpl dataSetService;
 
+    @Autowired
+    AliYunOssUtil aliYunOssUtil;
+
     @Override
     public TiledMapEntity findById(String sceneCode){
         Optional<TiledMapEntity> optional = entityMapper.findById(sceneCode);
@@ -57,23 +65,114 @@ public class TiledMapServiceImpl extends IBaseServiceImpl implements TiledMapSer
 
     @Override
     public void init(String sceneCode) {
-        TiledMapEntity entity = new TiledMapEntity();
-        entity.setId(sceneCode);
-        entity.setCreateTime(LocalDateTime.now());
-        // 2021.09.03
-        entity.setData(initData(sceneCode));
-        entityMapper.save(entity);
+        TiledMapEntity entity = findById(sceneCode);
+        if (entity == null) {
+            entity = new TiledMapEntity();
+            entity.setCreateTime(LocalDateTime.now());
+            entity.setId(sceneCode);
+            // 2021.09.03
+            entity.setData(initData(sceneCode));
+        } else {
+            // web端重算, 把cover重新上传oss就行
+            uploadCover(sceneCode);
+        }
+
+        entity.setStatus(0);
+        entity.setDisplay(0);
+        this.save(entity);
 
         log.info("TiledMap数据初始化完成");
     }
 
     @Override
     public void save(TiledMapEntity entity) {
-        entity.setCreateTime(LocalDateTime.now());
+        entity.setUpdateTime(LocalDateTime.now());
         entityMapper.save(entity);
     }
 
     @Override
+    public Result getDetail(String sceneCode) {
+        return Result.success(findById(sceneCode));
+    }
+
+    @Override
+    public Result updateDisplay(String sceneCode, Integer display) {
+        TiledMapEntity entity = findById(sceneCode);
+        entity.setDisplay(display);
+        this.save(entity);
+        return Result.success();
+    }
+
+    @Override
+    public Result upload(String sceneCode, MultipartFile file) {
+        String originalFilename = file.getOriginalFilename();
+        if (originalFilename == null || !originalFilename.toLowerCase().endsWith(".zip")) {
+            log.error("文件名: {}", originalFilename);
+            return Result.failure("文件不能为空, 或者不是zip文件");
+        }
+        String basePath = redisPath(sceneCode) + "/laserData/upload_cover";
+        String savePath = basePath + "/cover.zip";
+        if ("dev".equals(configConstant.active)) {
+            savePath = configConstant.serverBasePath + "/" + sceneCode + "/results/laserData/upload_cover/cover.zip";
+        }
+        log.info("上传平面图保存路径:{}", savePath);
+        try {
+            FileUtil.writeFromStream(file.getInputStream(), savePath);
+            log.info("平面图写入服务器完成");
+
+            if (!FileUtil.isFile(savePath)) {
+                log.error("cover.zip不存:{}" + savePath);
+                return Result.failure("服务器cover.zip不存");
+            }
+
+            // 解压cover.zip
+            ZipUtil.unzip(savePath);
+            log.info("cover.zip解压完成");
+
+
+
+            // 目录上传oss
+            String uploadDir = basePath + "/cover";
+
+            // 判断上传的cover.zip 是否包含目录,如有,抛异常
+            if (!FileUtil.exist(uploadDir + "/0")){
+                String msg = "上传的zip包目录结构有误, 不能包含目录,请检查";
+                log.error(msg);
+                return Result.failure(msg);
+            }
+
+            uploadDiyCover(sceneCode, uploadDir );
+
+            // 将cover.zip 更新到oss. data/sceneCode/upload_cover/cover.zip
+            String ossCoverZip = "data/" + sceneCode + "upload_cover/cover.zip";
+            aliYunOssUtil.upload(savePath, ossCoverZip);
+            log.info("ossCoverZip更新oss完成:{}", ossCoverZip);
+
+            TiledMapEntity entity = findById(sceneCode);
+            entity.setStatus(1);
+            this.save(entity);
+
+            return Result.success();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+
+        return null;
+    }
+
+    /**
+     * oss目录下载平面图
+     * @param sceneCode
+     * @return 前端自己拼接oss域名
+     */
+    @Override
+    public Result download(String sceneCode) {
+        String basePath =  "data/" + sceneCode + "/upload_cover/cover.zip";
+        return Result.success(basePath);
+    }
+
+    @Override
     public void remove(String sceneCode) {
         entityMapper.deleteById(sceneCode);
     }
@@ -246,10 +345,54 @@ public class TiledMapServiceImpl extends IBaseServiceImpl implements TiledMapSer
         String ossTarget = "data/" + sceneCode + "/" + dto.getFile_path();
         String uploadDir = path + "/cover";
         ossUploadDir(ossTarget, uploadDir);
+        // 压缩并上传oss
+        zipAndUploadOss(path, uploadDir, sceneCode);
+
         return list;
 
     }
 
+    /**
+     * 压缩并上传oss
+     * @param path 服务器基础路径
+     * @param uploadDir 需要压缩的目录
+     * @param sceneCode 场景码
+     */
+    private void zipAndUploadOss(String path, String uploadDir, String sceneCode){
+        // cover压缩上传oss, 提供平面图下载, 存放在data/sceneCode/upload_cover
+        String outPath = path + "/upload_cover/cover.zip";
+        log.info("cover.zip path: {}", outPath);
+        ZipUtil.zip(new File(outPath), false, new File(uploadDir));
+        log.info("文件压缩成功: {}", outPath);
+
+        String ossZipPath = "data/" + sceneCode + "/upload_cover/cover.zip";
+        aliYunOssUtil.upload(outPath, ossZipPath);
+        log.info("cover.zip上传oss完成:{}", ossZipPath);
+    }
+
+    // 将cover上传oss
+    private void uploadCover(String sceneCode){
+        String path = redisPath(sceneCode) + "/laserData";
+        // 11=floor_id值:site_model.type:floor的id
+        String bundlePath = "data/bundle_" + sceneCode +"/building_1/map_tiles/11";
+        String ossTarget = "data/" + sceneCode + "/" + bundlePath;
+        String uploadDir = path + "/cover";
+        ossUploadDir(ossTarget, uploadDir);
+
+        // 压缩并上传oss
+        zipAndUploadOss(path, uploadDir, sceneCode);
+
+    }
+
+
+    // 自定义cover上传oss
+    private void uploadDiyCover(String sceneCode, String uploadDir){
+        // 11=floor_id值:site_model.type:floor的id
+        String bundlePath = "data/bundle_" + sceneCode +"/building_1/map_tiles/11";
+        String ossTarget = "data/" + sceneCode + "/" + bundlePath;
+        ossUploadDir(ossTarget, uploadDir);
+    }
+
     private void ossUploadDir(String ossTarget, String uploadDir){
         String cmd = CmdConstant.OSSUTIL_UPLOAD_DIR;
         cmd = cmd.replaceAll("@uploadDir", uploadDir);
@@ -286,4 +429,13 @@ public class TiledMapServiceImpl extends IBaseServiceImpl implements TiledMapSer
 
     }
 
+    @Test
+    public void testZip(){
+        String filePath = "F:\\test\\ngin\\age_laser_data\\w-60\\results\\laserData\\cover";
+//        String out = "F:\\test\\ngin\\age_laser_data\\w-60\\results\\laserData\\1\\cover.zip";
+        // 有个bug, 如果路径中是以压缩包前缀命名包含在路径斜杠后面中会出错
+        String out = "F:\\test\\ngin\\age_laser_data\\w-60\\results\\laserData\\upload_cover\\cover.zip";
+        ZipUtil.zip(new File(out), false, new File(filePath));
+    }
+
 }

+ 1 - 1
laser/src/main/resources/application-dev.properties

@@ -42,7 +42,7 @@ my.template.path=F:/test/project/age_laser/laserData/baseData
 my.back.file.path=${server.file.path}
 
 
-oss.point=http://oss-cn-shenzhen-internal.aliyuncs.com
+oss.point=http://oss-cn-shenzhen.aliyuncs.com
 oss.key=LTAIUrvuHqj8pvry
 oss.secrecy=JLOVl0k8Ke0aaM8nLMMiUAZ3EiiqI4
 oss.bucket=laser-data