Browse Source

更新浏览量 代码改造

by su 3 years ago
parent
commit
f35f36516a

+ 5 - 6
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneServiceImpl.java

@@ -1016,23 +1016,22 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
     @Override
     public ResultData updateViewCount(String sceneNum) {
         String key = String.format(RedisKey.SCENE_VISIT_CNT, sceneNum);
-        Integer count = (Integer) redisUtil.get(key);
-        if(count == null){
+        Object countObject = redisUtil.get(key);
+        int count = 0;
+        if(countObject == null){
             String lockKey = String.format(RedisKey.LOCK_SCENE_VISIT_CNT, sceneNum);
             boolean lock = redisLockUtil.lock(lockKey, RedisKey.EXPIRE_TIME_10_MINUTE);
             try {
                 if(!lock){
                     throw new BusinessException(ErrorCode.SYSTEM_BUSY);
                 }
-                count = (Integer) redisUtil.get(key);
-                if(count == null){
+                countObject = redisUtil.get(key);
+                if(countObject == null){
                     Scene scene = this.getSceneBySceneCode(sceneNum);
                     if(scene == null){
                         ScenePro scenePro = sceneProMapper.findByNum(sceneNum);
                         if(scenePro != null){
                             count = scenePro.getViewCount();
-                        }else {
-                            count = 0;
                         }
                     }else {
                         count = scene.getViewCount();

+ 3 - 3
4dkankan-common-redis/src/main/java/com/fdkankan/redis/util/RedisLockUtil.java

@@ -35,7 +35,7 @@ public class RedisLockUtil {
     public boolean lock(String lockKey, int expireTime) {
         boolean locked = false;
         int tryCount = 3;
-        long threadId = Thread.currentThread().getId();
+        String threadId = String.valueOf(Thread.currentThread().getId());
         while (!locked && tryCount > 0) {
             locked = redisTemplate.opsForValue().setIfAbsent(lockKey, threadId, expireTime, TimeUnit.MILLISECONDS);
             tryCount--;
@@ -55,7 +55,7 @@ public class RedisLockUtil {
      * @return
      */
     public boolean unlock(String lockKey) {
-        Long threadId = Thread.currentThread().getId();
+        String threadId = String.valueOf(Thread.currentThread().getId());
         if (StrUtil.isEmpty(lockKey) || Objects.isNull(threadId))
             return false;
         boolean releaseLock = false;
@@ -73,7 +73,7 @@ public class RedisLockUtil {
      * @return
      */
     public boolean unlockLua(String lockKey) {
-        Long threadId = Thread.currentThread().getId();
+        String threadId = String.valueOf(Thread.currentThread().getId());
         if (StrUtil.isEmpty(lockKey) || Objects.isNull(threadId))
             return false;
         DefaultRedisScript<Long> redisScript = new DefaultRedisScript();