Forráskód Böngészése

处理解压中文字符集编码问题

wuweihao 4 éve
szülő
commit
25d6f290b5

+ 1 - 0
gis_common/src/main/java/com/gis/common/util/RandomUtils.java

@@ -1,5 +1,6 @@
 package com.gis.common.util;
 
+
 import cn.hutool.core.util.RandomUtil;
 
 /**

+ 12 - 7
gis_common/src/main/java/com/gis/common/util/Result.java

@@ -6,6 +6,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
+import java.time.LocalDateTime;
 
 /**
  * 通用返回类
@@ -21,11 +22,12 @@ public class Result<T> implements Serializable {
     public static int CODE_SUCCESS = 0;
     public static int CODE_FAILURE = -1;
     public static String[] NOOP = new String[]{};
+    public static LocalDateTime dataTime = LocalDateTime.now();
 
     /**
      * 处理状态:0: 成功, 1: 失败
      */
-    @ApiModelProperty(value = "处理状态:0: 成功, 1: 失败", name = "code")
+    @ApiModelProperty(value = "处理状态:0: 成功, -1: 失败", name = "code")
     private int code;
     /**
      * 消息
@@ -37,6 +39,9 @@ public class Result<T> implements Serializable {
      */
     @ApiModelProperty(value = "返回数据", name = "data")
     private T data;
+
+    @ApiModelProperty(value = "时间戳", name = "timestamp")
+    private LocalDateTime timestamp;
     /**
      * 处理成功,并返回数据
      *
@@ -44,7 +49,7 @@ public class Result<T> implements Serializable {
      * @return data
      */
     public static Result success(Object data) {
-        return new Result(CODE_SUCCESS, SUCCESS_MSG, data);
+        return new Result(CODE_SUCCESS, SUCCESS_MSG, data, dataTime);
     }
     /**
      * 处理成功
@@ -52,7 +57,7 @@ public class Result<T> implements Serializable {
      * @return data
      */
     public static Result success() {
-        return new Result(CODE_SUCCESS, SUCCESS_MSG, NOOP);
+        return new Result(CODE_SUCCESS, SUCCESS_MSG, NOOP, dataTime);
     }
     /**
      * 处理成功
@@ -61,7 +66,7 @@ public class Result<T> implements Serializable {
      * @return data
      */
     public static Result success(String msg) {
-        return new Result(CODE_SUCCESS, msg, NOOP);
+        return new Result(CODE_SUCCESS, msg, NOOP, dataTime);
     }
     /**
      * 处理成功
@@ -71,7 +76,7 @@ public class Result<T> implements Serializable {
      * @return data
      */
     public static Result success(String msg, Object data) {
-        return new Result(CODE_SUCCESS, msg, data);
+        return new Result(CODE_SUCCESS, msg, data, dataTime);
     }
     /**
      * 处理失败,并返回数据(一般为错误信息)
@@ -81,7 +86,7 @@ public class Result<T> implements Serializable {
      * @return data
      */
     public static Result failure(int code, String msg) {
-        return new Result(code, msg, NOOP);
+        return new Result(code, msg, NOOP , dataTime);
     }
     /**
      * 处理失败
@@ -96,6 +101,6 @@ public class Result<T> implements Serializable {
     @Override
     public String toString() {
         return "JsonResult [code=" + code + ", msg=" + msg + ", data="
-                + data + "]";
+                + data + ", timestamp="+ dataTime + "]";
     }
 }

+ 6 - 5
gis_mapper/src/main/java/com/gis/mapper/SceneMapper.java

@@ -16,21 +16,19 @@ import java.util.List;
 @Mapper
 public interface SceneMapper extends IBaseMapper<SceneEntity, Long> {
 
-    @Select("select * from tb_scene where scene_code = #{m}")
+    @Select("select * from tb_scene where is_delete=0 and scene_code = #{m}")
     SceneEntity findBySceneCode(String m);
 
-//    @SelectProvider(type = SceneProvider.class, method = "search")
-//    List<SceneEntity> search(ScenePageDto param);
 
     @SelectProvider(type = SceneProvider.class, method = "search")
     List<SceneEntity> search(PageDto param);
 
 
 
-    @Update("update tb_scene set display = 0 , update_time = NOW() where display = 1 ")
+    @Update("update tb_scene set display = 0 , update_time = NOW() where is_delete=0 and display = 1 ")
     void setDisable();
 
-    @Update("update tb_scene set display = 1 , update_time = NOW() where id = #{id} ")
+    @Update("update tb_scene set display = 1 , update_time = NOW() where is_delete=0 and id = #{id} ")
     void setDisplay(Long id);
 
     @Update("update tb_scene set display = 0 where is_delete = '0' and display = 1 and type = #{type}")
@@ -41,4 +39,7 @@ public interface SceneMapper extends IBaseMapper<SceneEntity, Long> {
 
     @Update("update tb_scene set version = version + 1 , update_time = NOW() where is_delete=0 and id=#{id} ")
     void addVersion(Long id);
+
+    @Select("select * from tb_scene where is_delete=0 and parent_id = #{parentId} ")
+    List<SceneEntity> findByParentId(Long parentId);
 }

+ 4 - 0
gis_service/src/main/java/com/gis/service/SceneService.java

@@ -7,6 +7,8 @@ import com.gis.domain.dto.RoamViableDto;
 import com.gis.domain.dto.SceneDataDto;
 import com.gis.domain.po.SceneEntity;
 
+import java.util.List;
+
 
 /**
  * Created by owen on 2020/3/11 0011 16:14
@@ -35,4 +37,6 @@ public interface SceneService extends IBaseService<SceneEntity, Long> {
 
     void addVersion(Long id);
     Result listTree(PageDto param);
+
+    List<SceneEntity> findByParentId(Long parentId);
 }

+ 10 - 4
gis_service/src/main/java/com/gis/service/impl/AgeServiceImpl.java

@@ -22,6 +22,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.charset.Charset;
 
 
 /**
@@ -50,9 +51,9 @@ public class AgeServiceImpl implements AgeService {
             dbEntity = new SceneEntity();
             dbEntity.setSceneTitle(name);
             dbEntity.setSceneCode(sceneCode);
-            dbEntity.setVersion(1);
+//            dbEntity.setVersion(1);
             sceneService.save(dbEntity);
-            newSceneCode = sceneCode + "_" + dbEntity.getVersion();
+            newSceneCode = sceneCode + "_" + 1;
         } else {
             int version = dbEntity.getVersion() + 1;
             newSceneCode = sceneCode + "_" + version;
@@ -112,9 +113,14 @@ public class AgeServiceImpl implements AgeService {
             log.info("zip写入完成,path: {}", zipPath);
 
             existFile(zipPath);
-            // 解压文件
-            ZipUtil.unzip(zipPath);
+            // 解压文件, 需要配置字符集
+            ZipUtil.unzip(zipPath, Charset.forName("GBK"));
+
+
             log.info("zip解压完成, path: {}", basePath);
+
+
+
         } catch (IOException e) {
             e.printStackTrace();
         }

+ 15 - 5
gis_service/src/main/java/com/gis/service/impl/SceneServiceImpl.java

@@ -19,6 +19,7 @@ import com.gis.service.tree.vo.SceneTree;
 import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -60,11 +61,20 @@ public class SceneServiceImpl extends IBaseServiceImpl<SceneEntity, Long> implem
     public Result listTree(PageDto param) {
         startPage(param);
         List<SceneEntity> search = entityMapper.search(param);
-        SceneTreeUtil tree = new SceneTreeUtil(search);
-        // 按照父亲分页
-        List<SceneTree> sceneTrees = tree.buildTree();
-        PageInfo<SceneTree> page = new PageInfo<>(sceneTrees);
-        return Result.success(page);
+        PageInfo<SceneEntity> page = new PageInfo<>(search);
+
+        // 处理父级分页(实质的分页数量还是按照数据库每条数据数据量来处理的)
+        List<SceneEntity> list = page.getList();
+        SceneTreeUtil tree = new SceneTreeUtil(list);
+        PageInfo<SceneTree> pageTree = new PageInfo<>();
+        BeanUtils.copyProperties(page, pageTree);
+        pageTree.setList(tree.buildTree());
+        return Result.success(pageTree);
+    }
+
+    @Override
+    public List<SceneEntity> findByParentId(Long parentId) {
+        return entityMapper.findByParentId(parentId);
     }
 
     /**

+ 3 - 3
gis_service/src/main/java/com/gis/service/tree/SceneTreeUtil.java

@@ -43,8 +43,8 @@ public class SceneTreeUtil {
      */
     public List<SceneTree> buildTree() {
         for (SceneTree node : nodes) {
-            Long id = node.getParentId();
-            if (id == null) {//通过循环一级节点 就可以通过递归获取二级以下节点
+            Long parentId = node.getParentId();
+            if (parentId == null) {//通过循环一级节点 就可以通过递归获取二级以下节点
                 resultNodes.add(node);//添加一级节点
 //                node.setLevel(1);
                 build(node, node.getLevel());//递归获取二级、三级、。。。节点
@@ -64,7 +64,7 @@ public class SceneTreeUtil {
             node.setChildren(children);
 //        	level++;
             for (SceneTree child : children) {//将子节点遍历加入返回值中
-//        		child.setLevel(level);
+        		child.setLevel(level);
                 build(child, child.getLevel());
             }
         }

+ 38 - 8
gis_web/src/main/java/com/gis/web/controller/SceneController.java

@@ -63,20 +63,50 @@ public class SceneController extends BaseController {
     }
 
 
+//    /**
+//     * 场景,真删除
+//     */
+//    @WebControllerLog(description = "大场景-删除")
+//    @ApiOperation("场景删除")
+//    @GetMapping("removes/{ids}")
+//    public Result removes(@PathVariable String ids) {
+//        List<SceneEntity> entities = sceneService.findByIds(ids);
+//        String basePath = configConstant.serverBasePath;
+//
+//        for (SceneEntity entity: entities) {
+//            FileUtil.del(basePath + entity.getPath());
+//            sceneService.delete(entity);
+//        }
+//
+//        return Result.success();
+//    }
+
     /**
      * 场景,真删除
      */
     @WebControllerLog(description = "大场景-删除")
     @ApiOperation("场景删除")
-    @GetMapping("removes/{ids}")
-    public Result removes(@PathVariable String ids) {
-        List<SceneEntity> entities = sceneService.findByIds(ids);
-        String basePath = configConstant.serverBasePath;
-
-        for (SceneEntity entity: entities) {
-            FileUtil.del(basePath + entity.getPath());
-            sceneService.delete(entity);
+    @GetMapping("removes/{id}")
+    public Result remove(@PathVariable String id) {
+        SceneEntity entity = sceneService.findById(Long.valueOf(id));
+        if (entity == null) {
+            return  Result.failure("对象不存在");
+        }
+
+        // 当只有一条子数据时, 把父级数据删除;
+        Long parentId = entity.getParentId();
+        if (parentId != null) {
+            List<SceneEntity> list = sceneService.findByParentId(parentId);
+            if (list.size() == 1) {
+                SceneEntity parentPo = sceneService.findById(parentId);
+                parentPo.setIsDelete(1);
+                parentPo.setUpdateTime(new Date());
+                sceneService.update(parentPo);
+            }
         }
+        entity.setIsDelete(1);
+        entity.setUpdateTime(new Date());
+        sceneService.update(entity);
 
         return Result.success();
     }

+ 3 - 1
pom.xml

@@ -33,7 +33,9 @@
         <spring.boot.version>2.1.0.RELEASE</spring.boot.version>
         <gis.version>1.0.0</gis.version>
         <druid.version>1.1.14</druid.version>
-        <hutool.version>5.3.3</hutool.version>
+        <!--<hutool.version>5.3.3</hutool.version>-->
+        <hutool.version>5.5.7</hutool.version>
+        <!--<hutool.version>5.6.8</hutool.version>-->
         <httpclient.version>4.5.12</httpclient.version>
         <lombok.version>1.18.2</lombok.version>
         <fastjson.version>1.2.51</fastjson.version>