Browse Source

insertWork

wuweihao 3 years ago
parent
commit
fba5a16222

+ 6 - 0
720yun_fd_manage/gis_application/src/main/resources/application-loc.properties

@@ -6,11 +6,17 @@ spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 #spring.datasource.druid.username=root
 #spring.datasource.druid.password=root
 
+#sit
 spring.datasource.druid.url=jdbc:mysql://120.25.146.52:3306/${project.name}?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
 spring.datasource.druid.username=root
 spring.datasource.druid.password=4dkk2020test%
 
 
+#pro
+#spring.datasource.druid.url=jdbc:mysql://8.129.209.131:3306/${project.name}?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
+#spring.datasource.druid.username=root
+#spring.datasource.druid.password=4dkk2020cuikuan%
+
 # \u521D\u59CB\u8FDE\u63A5\u6570
 spring.datasource.druid.initial-size=5
 # \u6700\u5C0F\u8FDE\u63A5\u6C60\u6570\u91CF

+ 1 - 0
720yun_fd_manage/gis_application/src/main/resources/application.properties

@@ -23,6 +23,7 @@ spring.servlet.multipart.max-request-size=256MB
 mybatis.configuration.mapUnderscoreToCamelCase=true
 mapper.identity=MYSQL
 mapper.mappers=tk.mybatis.mapper.common.Mapper
+mybatis.mapper-locations=classpath*:/mapper/*.xml
 #pager
 pagehelper.helper-dialect=mysql
 pagehelper.params=count=countSql

+ 1 - 1
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/entity/WorkEntity.java

@@ -16,7 +16,7 @@ import java.io.Serializable;
 @Table(name = "tb_work")
 public class WorkEntity extends BaseEntity implements Serializable {
 
-    private static final long serialVersionUID = 5547099647255957890L;
+    private static final long serialVersionUID = 6827754544317282072L;
     @ApiModelProperty(value = "名称")
     private String name;
 

+ 2 - 1
720yun_fd_manage/gis_mapper/src/main/java/com/gis/mapper/WorkMapper.java

@@ -2,7 +2,6 @@ package com.gis.mapper;
 
 
 import com.gis.domain.dto.PageDto;
-import com.gis.domain.entity.SceneEntity;
 import com.gis.domain.entity.WorkEntity;
 import com.gis.mapper.provider.WorkProvider;
 import org.apache.ibatis.annotations.*;
@@ -44,4 +43,6 @@ public interface WorkMapper extends IBaseMapper<WorkEntity, Long> {
      */
     @Delete("delete from tb_work where is_delete=0 and status=0 and DATE_FORMAT( create_time, '%Y%m' ) <= DATE_FORMAT(#{now} , '%Y%m' )")
     void delByTime(String now);
+
+    void insertWork(@Param("work") WorkEntity param);
 }

+ 15 - 0
720yun_fd_manage/gis_mapper/src/main/resources/mapper/WorkMapper.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gis.mapper.WorkMapper">
+
+
+    <insert id="insertWork" parameterType="com.gis.domain.entity.WorkEntity">
+        <selectKey resultType="java.lang.Long"   order="AFTER"  keyProperty="work.id">
+            SELECT LAST_INSERT_ID()
+        </selectKey>
+      insert into tb_work (id, create_time, update_time, user_id, status)
+        values
+        (#{work.id}, #{work.createTime}, #{work.updateTime}, #{work.userId}, #{work.status})
+
+    </insert>
+</mapper>

+ 4 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/TestService.java

@@ -5,6 +5,8 @@ import com.gis.common.util.Result;
 import com.gis.domain.entity.IconEntity;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.util.List;
+
 
 /**
  * Created by owen on 2020/3/11 0011 16:14
@@ -13,4 +15,6 @@ public interface TestService  {
 
 
     Result batchReplaceSomeData(String isBatch);
+
+    Result getSceneCode(String ids);
 }

+ 76 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/TestServiceImpl.java

@@ -2,17 +2,23 @@ package com.gis.service.impl;
 
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.gis.common.constant.ConfigConstant;
 import com.gis.common.util.AliyunOssUtil;
 import com.gis.common.util.FileUtils;
 import com.gis.common.util.Result;
 import com.gis.domain.entity.IconEntity;
+import com.gis.domain.entity.WorkEntity;
 import com.gis.mapper.IBaseMapper;
 import com.gis.mapper.IconMapper;
 import com.gis.service.IconService;
 import com.gis.service.TestService;
+import com.gis.service.WorkService;
 import com.gis.util.ReplaceVo;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -42,6 +48,9 @@ public class TestServiceImpl implements TestService {
     @Autowired
     AliyunOssUtil aliyunOssUtil;
 
+    @Autowired
+    WorkService workService;
+
 
 
 
@@ -89,6 +98,73 @@ public class TestServiceImpl implements TestService {
 
 
     /**
+     * 2022-3-22 根据作品id获取场景码
+     * @param ids
+     * @return
+     */
+    @Override
+    public Result getSceneCode(String ids) {
+        List<WorkEntity> list = workService.findByIds(ids);
+        HashMap<String, String> iconMap = new HashMap<>();
+        HashSet<Object> sceneCodes = new HashSet<>();
+        for (WorkEntity entity : list) {
+            Long id = entity.getId();
+            log.info("处理该作品开始: {}", id);
+            getHandleSceneCode(entity.getSceneCodes(), iconMap, sceneCodes);
+            log.info("处理该作品结束: {}", id);
+        }
+
+
+        // 转json 方便使用
+        JSONArray array = JSONArray.parseArray(JSON.toJSONString(sceneCodes));
+        log.info("场景码数量:{}", sceneCodes.size() );
+        log.info("场景码:{}", sceneCodes );
+        log.info("场景码JSON:{}", array );
+        log.info("书略图:{}", iconMap );
+
+        downloadThumb(iconMap);
+
+
+        return Result.success();
+    }
+
+    // 下载初始场景图片
+    private void downloadThumb(Map<String, String> iconMap){
+        String basePath = "F:\\work\\项目-科学城(广州)信科集团-3D合作\\thumb";
+        for (Map.Entry<String, String> m : iconMap.entrySet()) {
+            String sceneCode = m.getKey();
+            String ossUrl = m.getValue();
+            String fileName = StringUtils.substringAfterLast(ossUrl, "/");
+            fileName = StringUtils.substringBeforeLast(fileName, "?");
+//            String savePath = basePath + "/" + sceneCode;
+            FileUtils.downLoadFromUrl(ossUrl, fileName, basePath);
+            log.info("场景:{} 保存路径: {} 完成", sceneCode, basePath);
+        }
+    }
+
+    private void getHandleSceneCode(String str, Map iconMap, Set sceneCodes){
+        JSONArray array = JSONArray.parseArray(str);
+        JSONArray jsonArray = new JSONArray();
+
+        for (Object o : array) {
+            JSONObject parse = JSON.parseObject(o.toString());
+            String type = parse.getString("type");
+            if ("pano".equals(type)){
+                String sceneCode = parse.getString("sceneCode");
+                String icon = parse.getString("icon");
+                jsonArray.add(sceneCode);
+                iconMap.put(sceneCode, icon);
+                sceneCodes.add(sceneCode);
+
+            }
+
+        }
+        log.warn("场景数量:{}", jsonArray.size());
+        log.warn("场景: {}", jsonArray);
+    }
+
+
+    /**
      * 读取replace.csv
      *
      * https://www.4dkankan.com/panorama/show.html?id=606&vr=fd720_7B6nNaWQO

+ 46 - 39
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkServiceImpl.java

@@ -129,49 +129,56 @@ public class WorkServiceImpl extends IBaseServiceImpl<WorkEntity, Long> implemen
 
         WorkEntity entity = new WorkEntity();
         entity.setUserId(getUserNameForToken());
-        this.save(entity);
-        Long id = entity.getId();
-        log.info("创建对象完成: {}", id);
-
-
-        // 创建someData
-        // 如基someData作出修改,记得把代码里的someData 跟服务器里的someData都修改
-        String baseSomeDataPath = configConstant.serverBasePath + "baseData/someData.json";
-        log.info("服务器base someData.json path: {}", baseSomeDataPath);
-        // someData.json 内容
-        String content = null;
-        if (FileUtil.isFile(baseSomeDataPath)) {
-            log.info("使用服务器someData.json");
-            content = FileUtil.readUtf8String(baseSomeDataPath);
-        } else {
-            // 获取文件内容
-            log.info("创建someData.json");
-            content = FileUtils.getResourceContent("data/someData.json");
-            FileUtil.writeUtf8String(content, baseSomeDataPath);
-        }
-
-
-
+        entity.setStatus(0);
+        Date date = new Date();
+        entity.setCreateTime(date);
+        entity.setUpdateTime(date);
 
-        JSONObject jsonObject = JSONObject.parseObject(content);
-        jsonObject.put("id", id + "");
+        entityMapper.insertWork(entity);
+//        this.save(entity);
 
+        Long id = entity.getId();
+        log.info("创建对象完成: {}", id);
 
-        // 创建二维码、二维码url
-        String shareUrl = configConstant.domain4dKK + "/panorama/showMobile.html?id=" + id;
-        String qrCode = qrCodeUtils.generateLogoQrCode(shareUrl, configConstant.serverBasePath, configConstant.ossBasePath, configConstant.ossDomain, id);
-        jsonObject.put("share", shareUrl);
-        jsonObject.put("qrCode", qrCode);
-
-        String ossKeyPath = configConstant.ossBasePath + id + "/someData.json";
 
-        try {
-            aliyunOssUtil.upload(jsonObject.toJSONString().getBytes(), ossKeyPath);
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-        String ossUrl = configConstant.ossDomain + ossKeyPath;
-        log.info("ossSomeData:{}", ossUrl);
+//        // 创建someData
+//        // 如基someData作出修改,记得把代码里的someData 跟服务器里的someData都修改
+//        String baseSomeDataPath = configConstant.serverBasePath + "baseData/someData.json";
+//        log.info("服务器base someData.json path: {}", baseSomeDataPath);
+//        // someData.json 内容
+//        String content = null;
+//        if (FileUtil.isFile(baseSomeDataPath)) {
+//            log.info("使用服务器someData.json");
+//            content = FileUtil.readUtf8String(baseSomeDataPath);
+//        } else {
+//            // 获取文件内容
+//            log.info("创建someData.json");
+//            content = FileUtils.getResourceContent("data/someData.json");
+//            FileUtil.writeUtf8String(content, baseSomeDataPath);
+//        }
+//
+//
+//
+//
+//        JSONObject jsonObject = JSONObject.parseObject(content);
+//        jsonObject.put("id", id + "");
+//
+//
+//        // 创建二维码、二维码url
+//        String shareUrl = configConstant.domain4dKK + "/panorama/showMobile.html?id=" + id;
+//        String qrCode = qrCodeUtils.generateLogoQrCode(shareUrl, configConstant.serverBasePath, configConstant.ossBasePath, configConstant.ossDomain, id);
+//        jsonObject.put("share", shareUrl);
+//        jsonObject.put("qrCode", qrCode);
+//
+//        String ossKeyPath = configConstant.ossBasePath + id + "/someData.json";
+//
+//        try {
+//            aliyunOssUtil.upload(jsonObject.toJSONString().getBytes(), ossKeyPath);
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//        }
+//        String ossUrl = configConstant.ossDomain + ossKeyPath;
+//        log.info("ossSomeData:{}", ossUrl);
 
         return Result.success(entity);
     }

+ 7 - 5
720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/TestController.java

@@ -225,12 +225,14 @@ public class TestController extends BaseController {
         System.out.println(trim);
     }
 
+    @GetMapping("getSceneCode")
+    @ApiOperation(value = "通过作品id获取场景码", notes = "会去重, 支持批量")
+    public Result getSceneCode(String ids){
+        return testService.getSceneCode(ids);
+    }
+
+
 
-//    @GetMapping("batchReplaceSomeData")
-//    @ApiOperation(value = "2021-12-23_批量替换someData", notes = "isBatch,0:批量替换, 其他单个替换")
-//    public Result batchReplaceSomeData(String isBatch){
-//        return testService.batchReplaceSomeData(isBatch);
-//    }