소스 검색

修改检查token 接口出现异常的问题

wuweihao 3 년 전
부모
커밋
457e4c3865

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

@@ -87,7 +87,7 @@ swagger.version=1.0
 #log
 logging.path=/root/log/${project.name}_log
 logging.config=classpath:logback-spring.xml
-logging.level.com.gis=info
+logging.level.com.gis=debug
 
 
 # \uFFFD\u03F4\uFFFD\uFFFD\u013C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00B7\uFFFD\uFFFD

+ 10 - 0
720yun_fd_manage/gis_common/src/main/java/com/gis/common/constant/RedisConstant.java

@@ -0,0 +1,10 @@
+package com.gis.common.constant;
+
+/**
+ * Created by owen on 2022/3/15 0015 16:20
+ */
+public class RedisConstant {
+
+    /**作品id*/
+    public static final String WORK_ID = "workId:";
+}

+ 22 - 0
720yun_fd_manage/gis_common/src/main/java/com/gis/common/util/RedisUtil.java

@@ -45,6 +45,28 @@ public class RedisUtil {
         }
     }
 
+    /**
+     * 普通缓存放入并设置时间
+     *
+     * @param key   键
+     * @param value 值
+     * @param time  时间(秒) time要大于0 如果time小于等于0 将设置无限期
+     * @return true成功 false 失败
+     */
+    public boolean set(String key, Object value, long time, TimeUnit unit) {
+        try {
+            if (time > 0) {
+                redisTemplate.opsForValue().set(key, value, time, unit);
+            } else {
+                set(key, value);
+            }
+            return true;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+    }
+
 
 
     /**

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

@@ -27,4 +27,6 @@ public interface WorkMapper extends IBaseMapper<WorkEntity, Long> {
 
     @Select("select id, name, scene_codes from tb_work where is_delete = 0 and user_id = #{userId} and scene_codes like #{sceneCode}")
     List<WorkEntity> likeSceneCode(String sceneCode, String userId);
+
+
 }

+ 2 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkService.java

@@ -38,4 +38,6 @@ public interface WorkService extends IBaseService<WorkEntity, Long> {
 
 
     List<WorkEntity> likeSceneCode(String sceneCode);
+
+
 }

+ 1 - 1
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/SceneServiceImpl.java

@@ -95,7 +95,7 @@ public class SceneServiceImpl extends IBaseServiceImpl<SceneEntity, Long> implem
         try {
             HttpResponse httpResponse = HttpUtils.doPost(url, headers, reqParam);
             restResult = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
-            log.debug("restResult: " + restResult);
+            log.debug("四维看看返回值: " + restResult);
 
 
             reJson = JSONObject.parseObject(restResult);

+ 11 - 1
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.io.FileUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.gis.common.constant.ConfigConstant;
 import com.gis.common.constant.MsgCode;
+import com.gis.common.constant.RedisConstant;
 import com.gis.common.exception.BaseRuntimeException;
 import com.gis.common.util.*;
 import com.gis.domain.dto.PageDto;
@@ -78,6 +79,9 @@ public class WorkServiceImpl extends IBaseServiceImpl<WorkEntity, Long> implemen
     @Autowired
     FileUtils fileUtils;
 
+    @Autowired
+    RedisUtil redisUtil;
+
 
     @Override
     public IBaseMapper<WorkEntity, Long> getBaseMapper() {
@@ -176,6 +180,10 @@ public class WorkServiceImpl extends IBaseServiceImpl<WorkEntity, Long> implemen
         sceneMapper.setDeleteByWorkId(id);
 
         this.update(entity);
+
+        // 删除redis
+        redisUtil.del(RedisConstant.WORK_ID + id);
+
         return Result.success();
     }
 
@@ -368,7 +376,7 @@ public class WorkServiceImpl extends IBaseServiceImpl<WorkEntity, Long> implemen
 
             HttpResponse httpResponse = HttpUtils.doPost(url, headers, reqParam);
             restResult = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
-            log.debug("restResult: " + restResult);
+            log.debug("四维看看返回值: " + restResult);
 
 
             reJson = JSONObject.parseObject(restResult);
@@ -415,4 +423,6 @@ public class WorkServiceImpl extends IBaseServiceImpl<WorkEntity, Long> implemen
     }
 
 
+
+
 }

+ 4 - 2
720yun_fd_manage/gis_web/src/main/java/com/gis/web/aop/WebLogAspect.java

@@ -39,6 +39,7 @@ public class WebLogAspect {
     static {
         filterUrl = new ArrayList<>();
         filterUrl.add("/manage/work/edit");
+        filterUrl.add("/web/common/checkWork");
     }
 
 
@@ -55,7 +56,7 @@ public class WebLogAspect {
 
         // 记录下请求内容
         String requestURI = request.getRequestURI();
-        log.warn("start : {}, {}, uuid: {}" , request.getMethod(), requestURI, startTime);
+        log.warn("start : {} , {} , uuid: {}" , request.getMethod(), requestURI, startTime);
         log.info("request IP:{}" , request.getRemoteAddr());
         if (!filterUrl.contains(requestURI)){
             log.info("request Args : {}" , Arrays.toString(joinPoint.getArgs()));
@@ -89,7 +90,8 @@ public class WebLogAspect {
     @AfterReturning(returning = "ret", pointcut = "controllerLog()")
     public void doAfterReturning(Object ret) throws Throwable {
         // 处理完请求,返回内容
-        log.warn("end: {}, {}, uuid: {},  响应耗时:{} ms", request.getMethod(), request.getRequestURI(), startTime, (System.currentTimeMillis() - startTime));
+        log.warn("end: {} , {} , uuid: {},  响应耗时:{} ms , \r\n", request.getMethod(), request.getRequestURI(), startTime, (System.currentTimeMillis() - startTime));
+
     }
 
     /**

+ 23 - 13
720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WebController.java

@@ -4,6 +4,8 @@ package com.gis.web.controller;
 import cn.hutool.core.io.FileUtil;
 import com.gis.common.constant.ConfigConstant;
 import com.gis.common.constant.MsgCode;
+import com.gis.common.constant.RedisConstant;
+import com.gis.common.util.RedisUtil;
 import com.gis.common.util.Result;
 import com.gis.domain.entity.SceneEntity;
 import com.gis.domain.entity.WorkEntity;
@@ -14,12 +16,14 @@ import com.gis.service.WorkService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.log4j.Log4j2;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
+import java.util.concurrent.TimeUnit;
 
 
 /**
@@ -49,7 +53,8 @@ public class WebController extends BaseController {
     @Autowired
     ConfigConstant configConstant;
 
-
+    @Autowired
+    RedisUtil redisUtil;
 
 
 
@@ -57,14 +62,29 @@ public class WebController extends BaseController {
     @ApiOperation(value = "检查作品是否可用", notes = "true:可用, false:不可用, visit有值表示要添加浏览量")
     @GetMapping("checkWork/{workId}")
     public Result checkWork(@PathVariable Long workId, String visit) {
+        log.info("作品id: {}", workId);
+        boolean flag = false;
+
+        if (redisUtil.hasKey(RedisConstant.WORK_ID+workId)){
+            if (visit != null) {
+                workService.addVisit(workId);
+            }
+            flag = true;
+            log.info("检查走缓存: {}", workId);
+            return Result.success(flag);
+        }
+
         WorkEntity entity = workService.findById(workId);
-        Boolean flag = false;
+
         if (entity != null) {
-            log.info("作品不存在");
             flag = true;
             if (visit != null) {
                 workService.addVisit(workId);
             }
+            redisUtil.set(RedisConstant.WORK_ID+workId, entity, 30, TimeUnit.SECONDS);
+
+        } else {
+            log.warn("作品不存在");
         }
         return Result.success(flag);
     }
@@ -88,16 +108,6 @@ public class WebController extends BaseController {
     }
 
 
-//    @ApiOperation(value = "初始场景-获取", position = 3)
-//    @GetMapping("getIndex/{workId}")
-//    public Result getIndex(@PathVariable Long workId) {
-//        return sceneService.getVoIndex(workId);
-//    }
-
-
-
-
-
 
     @ApiOperation(value = "检查token是否有效" , position = 3)
     @GetMapping("checkToken")

+ 18 - 3
720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WorkController.java

@@ -2,6 +2,8 @@ package com.gis.web.controller;
 
 
 import com.gis.common.constant.MsgCode;
+import com.gis.common.constant.RedisConstant;
+import com.gis.common.util.RedisUtil;
 import com.gis.common.util.Result;
 import com.gis.domain.dto.*;
 import com.gis.domain.entity.FodderEntity;
@@ -21,6 +23,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.validation.Valid;
 import java.util.Date;
+import java.util.concurrent.TimeUnit;
 
 
 /**
@@ -32,7 +35,6 @@ import java.util.Date;
 @Api(tags = "我的作品")
 @RestController
 @RequestMapping("manage/work")
-//@RequestMapping("c/work")
 public class WorkController extends BaseController {
 
     @Autowired
@@ -44,6 +46,9 @@ public class WorkController extends BaseController {
     @Autowired
     private RedisTemplate<String, String> redisTemplate;
 
+    @Autowired
+    RedisUtil redisUtil;
+
 
 
     @ApiOperation(value = "列表", position = 1)
@@ -123,17 +128,27 @@ public class WorkController extends BaseController {
             return Result.failure(5001, "Token无效");
         }
 
-        String userId = getUserNameForToken();
+        log.info("查找作品id: {}", workId);
+
+        if (redisUtil.hasKey(RedisConstant.WORK_ID + workId)){
+            return Result.success();
+        }
+
+
         WorkEntity entity = workService.findById(workId);
         if (entity == null) {
             return Result.failure("对象不存在: " + workId);
         }
 
+        String userId = getUserNameForToken();
+        log.info("userId: {}", userId);
+
         if (!userId.equals(entity.getUserId())) {
-//            return Result.failure(MsgCode.e3005, "不是该用户作品");
             return Result.failure(MsgCode.e3005, "当前无操作权限");
         }
 
+        redisUtil.set(RedisConstant.WORK_ID + workId, entity, 30, TimeUnit.SECONDS);
+
         return Result.success();
 
     }