Sfoglia il codice sorgente

四川日报项目需求,上传空间模型接口支持glb格式

dengsixing 1 anno fa
parent
commit
857c257c24

+ 11 - 11
pom.xml

@@ -84,18 +84,18 @@
             <version>6.8.1</version>
         </dependency>
 
-        <dependency>
-            <groupId>com.oracle.ojdbc</groupId>
-            <artifactId>ojdbc8</artifactId>
-            <version>19.3.0.0</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.oracle.ojdbc</groupId>-->
+<!--            <artifactId>ojdbc8</artifactId>-->
+<!--            <version>19.3.0.0</version>-->
+<!--        </dependency>-->
 
-        <dependency>
-            <groupId>cn.easyproject</groupId>
-            <artifactId>orai18n</artifactId>
-            <version>12.1.0.2.0</version>
-            <scope>provided</scope>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>cn.easyproject</groupId>-->
+<!--            <artifactId>orai18n</artifactId>-->
+<!--            <version>12.1.0.2.0</version>-->
+<!--            <scope>provided</scope>-->
+<!--        </dependency>-->
 
         <!--mybatis-plus整合依赖-->
         <dependency>

+ 28 - 0
src/main/java/com/fdkankan/common/exception/BusinessException.java

@@ -0,0 +1,28 @@
+package com.fdkankan.common.exception;
+
+import com.fdkankan.common.ErrorCode;
+import lombok.Data;
+
+/**
+ * 自定义业务异常类
+ */
+@Data
+public class BusinessException extends RuntimeException {
+    private int code;
+    private String message;
+
+    public BusinessException(ErrorCode errorCode){
+        this.code = errorCode.code();
+        this.message = errorCode.message();
+    }
+
+    public BusinessException(int code, String msg){
+        this.code = code;
+        this.message = msg;
+    }
+
+    public BusinessException(ErrorCode errorCode, Object...args){
+        this.code = errorCode.code();
+        this.message = errorCode.formatMessage(args);
+    }
+}

+ 29 - 0
src/main/java/com/fdkankan/common/exception/GlobalExceptionHandler.java

@@ -0,0 +1,29 @@
+package com.fdkankan.common.exception;
+
+import com.fdkankan.scene.bean.ResultData;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 全局异常处理器
+ */
+@RestControllerAdvice
+@Slf4j
+public class GlobalExceptionHandler {
+
+
+
+    /**
+     * 处理业务异常
+     */
+    @ResponseBody
+    @ExceptionHandler(value = BusinessException.class)
+    public ResultData businessExceptionHandler(HttpServletRequest httpServletRequest, BusinessException e) {
+        log.info("业务异常code:{},message:{}", e.getCode(), e.getMessage());
+        return ResultData.error(e.getCode(), e.getMessage());
+    }
+}

+ 8 - 0
src/main/java/com/fdkankan/feign/WS4AServiceClient.java

@@ -2,8 +2,10 @@ package com.fdkankan.feign;
 
 import com.alibaba.fastjson.JSONObject;
 import com.chinatower.framework.common_service.response.ProcessResult;
+import feign.Param;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
@@ -22,4 +24,10 @@ public interface WS4AServiceClient {
     @PostMapping(path = "/WS4A/token/createProwadaToken", produces = MediaType.APPLICATION_JSON_VALUE)
     JSONObject createProwadaToken(@RequestBody JSONObject args);
 
+    @GetMapping(path = "/QUERY4A/query/queryOrgs", produces = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
+    JSONObject queryOrgs(@Param("args") String args);
+
+    @GetMapping(path = "/QUERY4A/user/queryLoginUserInfo", produces = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
+    JSONObject queryLoginUserInfo(@Param("args") String args);
+
 }

+ 0 - 57
src/main/java/com/fdkankan/scene/Interceptor/CheckPermitAspect.java

@@ -1,57 +0,0 @@
-package com.fdkankan.scene.Interceptor;
-
-import com.fdkankan.common.UserAgentUtils;
-import com.fdkankan.common.WebUtil;
-import lombok.extern.log4j.Log4j2;
-import org.aspectj.lang.JoinPoint;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Before;
-import org.aspectj.lang.annotation.Pointcut;
-import org.springframework.cloud.context.config.annotation.RefreshScope;
-import org.springframework.core.annotation.Order;
-import org.springframework.stereotype.Component;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-
-import javax.servlet.http.HttpServletRequest;
-import java.io.IOException;
-import java.util.Map;
-
-@Log4j2
-@Aspect
-@Component
-@Order(101)
-public class CheckPermitAspect {
-
-	@Pointcut("@annotation(com.fdkankan.scene.annotation.VrLog)")
-	public void checkCooperationPermit() {
-	}
-
-	/**
-	 * 前置通知 用于判断用户协作场景是否有协作权限
-	 *
-	 * @param joinPoint
-	 *            切点
-	 * @throws IOException
-	 */
-	@Before("checkCooperationPermit()")
-	public void doBefore(JoinPoint joinPoint) throws Exception {
-		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
-		boolean mobileDevice = UserAgentUtils.isMobileDevice(request);
-		String userAgent = "pc";
-		if(mobileDevice){
-			userAgent = "mobile";
-		}
-
-		//请求4a接口获取用户信息
-		Map<String, Object> parameter = WebUtil.getParameter(joinPoint, request);
-		String syscode = (String) parameter.get("syscode");
-		String acctId = (String) parameter.get("acctId");
-		String token = (String) parameter.get("token");
-
-		log.info("123");
-
-		//写入表
-	}
-
-}

+ 162 - 0
src/main/java/com/fdkankan/scene/Interceptor/ViewLogAspect.java

@@ -0,0 +1,162 @@
+package com.fdkankan.scene.Interceptor;
+
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.common.ThreeDESUtil;
+import com.fdkankan.common.UserAgentUtils;
+import com.fdkankan.common.WebUtil;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.feign.TietaFeignClient;
+import com.fdkankan.feign.WS4AServiceClient;
+import com.fdkankan.scene.bean.ResultData;
+import com.fdkankan.scene.entity.SceneViewLog;
+import com.fdkankan.scene.service.SceneViewLogService;
+import lombok.extern.log4j.Log4j2;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.annotation.Pointcut;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+@Log4j2
+@Aspect
+@Component
+@Order(101)
+public class ViewLogAspect {
+
+	@Value("${spring.cloud.nacos.discovery.access-key}")
+	private String accessKey;
+
+	@Value("${tieta.checkToken.syscode}")
+	private String syscode;
+	@Value("${gateway.key:6#dPz>3F}")
+	private String gatewayKey;
+	@Value("${gateway.url}")
+	private String gatewayUrl;
+	@Resource
+	private TietaFeignClient tietaFeignClient;
+	@Autowired
+	private WS4AServiceClient ws4AServiceClient;
+	@Autowired
+	private SceneViewLogService sceneViewLogService;
+
+	@Pointcut("@annotation(com.fdkankan.scene.annotation.VrLog)")
+	public void checkCooperationPermit() {
+	}
+
+	/**
+	 * 前置通知 用于判断用户协作场景是否有协作权限
+	 *
+	 * @param joinPoint
+	 *            切点
+	 * @throws IOException
+	 */
+	@Before("checkCooperationPermit()")
+	public void doBefore(JoinPoint joinPoint) throws Exception {
+		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+		boolean mobileDevice = UserAgentUtils.isMobileDevice(request);
+		String userAgent = "pc";
+		if(mobileDevice){
+			userAgent = "mobile";
+		}
+
+		//请求4a接口获取用户信息
+		Map<String, Object> parameter = WebUtil.getParameter(joinPoint, request);
+		String acctId = (String) parameter.get("acctId");
+		String token = (String) parameter.get("token");
+		String num = (String) parameter.get("num");
+
+		//token校验
+		JSONObject checkProwadaTokenParam = new JSONObject();
+		JSONObject params = new JSONObject();
+		params.put("SYSCODE", syscode);
+		params.put("ACCTID", acctId);
+		params.put("TOKEN", token);
+		String encode = ThreeDESUtil.encode(JSON.toJSONString(params), gatewayKey);
+		checkProwadaTokenParam.put("args", encode);
+		JSONObject result = ws4AServiceClient.checkProwadaToken(checkProwadaTokenParam);
+		log.info("场景:{},4A校验token结果:{}", num, result);
+		if(!"SUCCESS".equals(result.getString("resultStat"))){
+			throw new BusinessException(4000, "4A鉴权失败");
+		}
+		String data = result.getString("data");
+		JSONObject dataObj = JSONObject.parseObject(data);
+		if(!"0".equals(dataObj.getString("RSP"))){
+			throw new BusinessException(4000, "4A鉴权失败:" + dataObj.getString("ERRDESC"));
+		}
+		String USERCODE = dataObj.getString("USERCODE");
+		String SERVICEID = dataObj.getString("SERVICEID");
+		String ORGCODE = dataObj.getString("ORGCODE");
+
+		//查询用户信息
+		JSONObject param2 = new JSONObject();
+		param2.put("SERVICEID", SERVICEID);
+		param2.put("LOGINACCOUNT", USERCODE);
+		param2.put("TOKEN", token);
+		encode = ThreeDESUtil.encode(JSON.toJSONString(param2), gatewayKey);
+		Map<String, Object> param = new HashMap<>();
+		param.put("args", encode);
+		String queryLoginUserInfoResp = HttpUtil.get(gatewayUrl + "/QUERY4A/user/queryLoginUserInfo?args=" + encode);
+		result = JSON.parseObject(queryLoginUserInfoResp);
+//		result = ws4AServiceClient.queryLoginUserInfo(encode);
+		log.info("场景:{},4A查询用户信息结果:{}", num, result);
+		if(!"SUCCESS".equals(result.getString("resultStat"))){
+			throw new BusinessException(4000, "4A查询用户信息失败");
+		}
+		data = result.getString("data");
+		dataObj = JSONObject.parseObject(data);
+		if(!"0".equals(dataObj.getString("RSP"))){
+			throw new BusinessException(4000, "4A查询用户信息失败:" + dataObj.getString("ERRDESC"));
+		}
+		String nickName = dataObj.getString("LOGINNAME");
+
+		JSONObject param3 = new JSONObject();
+		param3.put("SERVICEID", SERVICEID);
+		param3.put("QUERYMODE", "3");
+		param3.put("ORGCODE", ORGCODE);
+		param3.put("TOKEN", token);
+		encode = ThreeDESUtil.encode(JSON.toJSONString(param3), gatewayKey);
+//		result = ws4AServiceClient.queryOrgs(encode);
+		String queryOrgsResp = HttpUtil.get(gatewayUrl + "/QUERY4A/query/queryOrgs?args=" + encode);
+		result = JSON.parseObject(queryOrgsResp);
+		log.info("场景:{},4A查询用户组织结果:{}", num, result);
+		if(!"SUCCESS".equals(result.getString("resultStat"))){
+			throw new BusinessException(4000, "查询用户组织失败");
+		}
+		data = result.getString("data");
+		dataObj = JSONObject.parseObject(data);
+		if(!"0".equals(dataObj.getString("RSP"))){
+			throw new BusinessException(4000, "4A查询用户组织失败:" + dataObj.getString("ERRDESC"));
+		}
+		JSONObject ORGS = dataObj.getJSONObject("ORGS");
+		JSONArray ORG = ORGS.getJSONArray("ORG");
+		JSONObject ORG1 = ORG.getJSONObject(0);
+		String ORGNAMEPATH = ORG1.getString("ORGNAMEPATH");
+
+		//写入表
+		SceneViewLog sceneViewLog = new SceneViewLog();
+		sceneViewLog.setOrgNamePath(ORGNAMEPATH);
+		sceneViewLog.setFuncName("VR全景");
+		sceneViewLog.setFuncDesc("VR全景试图");
+		sceneViewLog.setUserName(USERCODE);
+		sceneViewLog.setNickName(nickName);
+		sceneViewLog.setCreateTime(new Date());
+		sceneViewLog.setTerminalType(userAgent);
+		sceneViewLogService.save(sceneViewLog);
+	}
+
+}

+ 77 - 0
src/main/java/com/fdkankan/scene/entity/SceneViewLog.java

@@ -0,0 +1,77 @@
+package com.fdkankan.scene.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 浏览记录
+ * </p>
+ *
+ * @author
+ * @since 2024-09-27
+ */
+@Getter
+@Setter
+@TableName("t_scene_view_log")
+public class SceneViewLog implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 组织链路
+     */
+    @TableField("org_name_path")
+    private String orgNamePath;
+
+    /**
+     * 登录名
+     */
+    @TableField("user_name")
+    private String userName;
+
+    /**
+     * 姓名
+     */
+    @TableField("nick_name")
+    private String nickName;
+
+    /**
+     * 功能名称
+     */
+    @TableField(value = "func_name")
+    private String funcName;
+
+    /**
+     * 功能描述
+     */
+    @TableField("func_desc")
+    private String funcDesc;
+
+    /**
+     * 终端类型
+     */
+    @TableField("terminal_type")
+    private String terminalType;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+
+}

+ 9 - 5
src/main/java/com/fdkankan/scene/generator/AutoGenerate.java

@@ -3,8 +3,10 @@ package com.fdkankan.scene.generator;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.generator.FastAutoGenerator;
+import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
 import com.baomidou.mybatisplus.generator.config.OutputFile;
 import com.baomidou.mybatisplus.generator.config.rules.DateType;
+import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -18,8 +20,8 @@ public class AutoGenerate {
 
         String path =System.getProperty("user.dir");
 
-        generate(path,"project.tieta.generator", getTables(new String[]{
-                "T_FULLPHOTO_UPRECORD"
+        generate(path,"scene.generator", getTables(new String[]{
+                "t_scene_view_log"
         }));
 
 //        generate(path,"goods", getTables(new String[]{
@@ -47,8 +49,10 @@ public class AutoGenerate {
 
 
     public static void  generate(String path,String moduleName,  List<String> tables){
-        FastAutoGenerator.create("jdbc:oracle:thin:@//10.180.41.37:1521/resdb",
-            "RES_FILE","qNQVkH3YbA")
+        DataSourceConfig.Builder datasourceConfig = new DataSourceConfig.Builder("jdbc:postgresql://10.180.145.98:5432/chinatower_vr",
+                "res_vr", "qawsed@123.");
+        datasourceConfig.schema("res_vr");
+        FastAutoGenerator.create(datasourceConfig)
                 .globalConfig(builder -> {
                     builder.author("")               //作者
                             .outputDir(path+"\\src\\main\\java")    //输出路径(写到java目录)
@@ -94,7 +98,7 @@ public class AutoGenerate {
                             .enableMapperAnnotation()
                             .formatXmlFileName("%sMapper");
                 })
-//                 .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
+                 .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                 .execute();
     }
 }

+ 18 - 0
src/main/java/com/fdkankan/scene/mapper/SceneViewLogMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.scene.entity.SceneViewLog;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 浏览记录 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2024-09-27
+ */
+@Mapper
+public interface SceneViewLogMapper extends BaseMapper<SceneViewLog> {
+
+}

+ 16 - 0
src/main/java/com/fdkankan/scene/service/SceneViewLogService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.scene.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.scene.entity.SceneViewLog;
+
+/**
+ * <p>
+ * 浏览记录 服务类
+ * </p>
+ *
+ * @author
+ * @since 2024-09-27
+ */
+public interface SceneViewLogService extends IService<SceneViewLog> {
+
+}

+ 16 - 45
src/main/java/com/fdkankan/scene/service/impl/SceneServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fdkankan.scene.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.io.IoUtil;
 import cn.hutool.core.util.StrUtil;
@@ -42,6 +43,7 @@ import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLConnection;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -59,56 +61,20 @@ import java.util.stream.Collectors;
 @Service
 public class SceneServiceImpl extends ServiceImpl<SceneMapper, Scene> implements SceneService {
 
-    @Value("${spring.cloud.nacos.discovery.access-key}")
-    private String accessKey;
-
-    @Value("${tieta.checkToken.syscode}")
-    private String syscode;
-    @Value("${gateway.key:6#dPz>3F}")
-    private String gatewayKey;
-
     @Autowired
     private SceneFileMappingService sceneFileMappingService;
     @Autowired
     private RedisClient redisClient;
     @Resource
-    private TietaFeignClient tietaFeignClient;
-    @Autowired
-    private WS4AServiceClient ws4AServiceClient;
-    @Resource
     private CustomHttpClient customHttpClient;
 
 
     @Override
     public ResultData getSceneInfo(SceneInfoParamVO param) throws Exception {
-
-        String token = param.getToken();
-        String acctId = param.getAcctId();
-
-        JSONObject checkProwadaTokenParam = new JSONObject();
-        JSONObject params = new JSONObject();
-        params.put("SYSCODE", syscode);
-        params.put("ACCTID", acctId);
-        params.put("TOKEN", token);
-
-        String encode = ThreeDESUtil.encode(JSON.toJSONString(params), gatewayKey);
-        checkProwadaTokenParam.put("args", encode);
-
-//        JSONObject result = ws4AServiceClient.checkProwadaToken(checkProwadaTokenParam);
-//        log.info("场景:{},4A校验token结果:{}", param.getNum(), result);
-//        if("success".equals(result.getString("SUCCESS"))){
-//            return ResultData.error(4000, "4A鉴权失败");
-//        }
-//        String data = result.getString("data");
-//        JSONObject dataObj = JSONObject.parseObject(data);
-//        if(!"0".equals(dataObj.getString("RSP"))){
-//            return ResultData.error(4000, dataObj.getString("ERRDESC"));
-//        }
-
         String num = param.getNum();
         SceneInfoVO sceneInfoVO = null;
         String key = String.format(RedisKey.SCENE_JSON, num);
-        String sceneJson = redisClient.get(key);
+        String sceneJson = null;//redisClient.get(key);
         if(StrUtil.isNotEmpty(sceneJson)){
             sceneInfoVO = JSON.parseObject(sceneJson, SceneInfoVO.class);
             sceneInfoVO.getControls().setShowRule(1);
@@ -116,10 +82,11 @@ public class SceneServiceImpl extends ServiceImpl<SceneMapper, Scene> implements
             sceneInfoVO.getControls().setShowDollhouse(0);
             sceneInfoVO.setFloorLogo("2");
         }else{
-            Scene scene = this.getOne(new LambdaQueryWrapper<Scene>().eq(Scene::getNum, num));
-            if(Objects.isNull(scene)){
+            List<Scene> list = this.list(new LambdaQueryWrapper<Scene>().eq(Scene::getNum, num).orderByDesc(Scene::getId));
+            if(CollUtil.isEmpty(list)){
                 return ResultData.error(ErrorCode.FAILURE_CODE_5005.code(), ErrorCode.FAILURE_CODE_5005.message());
             }
+            Scene scene = list.get(0);
             sceneInfoVO = new SceneInfoVO();
             sceneInfoVO.setTitle(scene.getTitle());
             sceneInfoVO.setNum(scene.getNum());
@@ -136,10 +103,14 @@ public class SceneServiceImpl extends ServiceImpl<SceneMapper, Scene> implements
             redisClient.add(key, JSON.toJSONString(sceneInfoVO));
         }
 
-        List<SceneFileMapping> mappingList = sceneFileMappingService.list(new LambdaQueryWrapper<SceneFileMapping>().eq(SceneFileMapping::getNum, num));
-        Map<String, String> keyMap = mappingList.stream().collect(Collectors.toMap(SceneFileMapping::getKey, v->{
-            return "service/scene/file?key=" + v.getKey();
-        }));
+        List<SceneFileMapping> mappingList = sceneFileMappingService.list(new LambdaQueryWrapper<SceneFileMapping>().eq(SceneFileMapping::getNum, num).orderByAsc(SceneFileMapping::getId));
+        Map<String, String> keyMap = new HashMap<>();
+        for (SceneFileMapping sceneFileMapping : mappingList) {
+            keyMap.put(sceneFileMapping.getKey(), "service/scene/file?key=" + sceneFileMapping.getKey());
+        }
+//        Map<String, String> keyMap = mappingList.stream().collect(Collectors.toMap(SceneFileMapping::getKey, v->{
+//            return "service/scene/file?key=" + v.getKey();
+//        }));
         sceneInfoVO.setMapping(keyMap);
 
         return ResultData.ok(sceneInfoVO);
@@ -190,8 +161,8 @@ public class SceneServiceImpl extends ServiceImpl<SceneMapper, Scene> implements
 
         JSONObject params2 = new JSONObject();
         params2.put("SERVICEID", "CHNTZCGL_ZCSZHGL");
-        params2.put("LOGINACCOUNT", "wx-sunql3");
-        params2.put("TOKEN", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJSRVMiLCJpc3MiOiJXUzRBIiwiZXhwIjoxNzI3MTQ3NzYyLCJOQU5PU0VDT05EIjozNTg1Mjg3ODI1NDgzNzY1NH0.vY_MWgkiPazz6KPRlSVb2-WGiwhLnxTVhsCtNzxiTlY");
+        params2.put("LOGINACCOUNT", "yangqc");
+        params2.put("TOKEN", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJSRVMiLCJpc3MiOiJXUzRBIiwiZXhwIjoxNzI3NTc3Mzc2LCJOQU5PU0VDT05EIjozNjI4MjQ5MTc2NjM4MDAzMX0.fbTCdbjMTOD6NywkuKGtsOnQdmFI7PiU4g8mEiLQ5wQ");
         encode = ThreeDESUtil.encode(params2.toString(), "6#dPz>3F");
         System.out.println(encode);
 

+ 20 - 0
src/main/java/com/fdkankan/scene/service/impl/SceneViewLogServiceImpl.java

@@ -0,0 +1,20 @@
+package com.fdkankan.scene.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.scene.entity.SceneViewLog;
+import com.fdkankan.scene.mapper.SceneViewLogMapper;
+import com.fdkankan.scene.service.SceneViewLogService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 浏览记录 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2024-09-27
+ */
+@Service
+public class SceneViewLogServiceImpl extends ServiceImpl<SceneViewLogMapper, SceneViewLog> implements SceneViewLogService {
+
+}

+ 1 - 1
src/main/resources/application-dev.yml

@@ -9,7 +9,7 @@ spring:
         access-key: 856fc5859800857975ecb986b2d61363
   datasource:
     url: jdbc:postgresql://10.180.145.98:5432/chinatower_vr
-    username: RES_VR
+    username: res_vr
     password: qawsed@123.
     driver-class-name: org.postgresql.Driver
     hikari:

+ 5 - 0
src/main/resources/mapper/scene/SceneViewLogMapper.xml

@@ -0,0 +1,5 @@
+<?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.fdkankan.scene.mapper.SceneViewLogMapper">
+
+</mapper>