tianyunperfect 3 роки тому
батько
коміт
6e47bc4a89

+ 6 - 2
book-server/src/main/java/com/book/server/controller/UserController.java

@@ -3,6 +3,7 @@ package com.book.server.controller;
 import com.book.dao.cps.entity.UserReadConfig;
 import com.book.dao.cps.pojo.User;
 import com.book.server.common.entity.Result;
+import com.book.server.service.CacheService;
 import com.book.server.service.UserService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,6 +19,9 @@ public class UserController extends BaseController {
     @Autowired
     private UserService userService;
 
+    @Autowired
+    private CacheService cacheService;
+
     /**
      * 获取用户基本信息
      *
@@ -37,7 +41,7 @@ public class UserController extends BaseController {
      */
     @GetMapping("/getUserByUserId")
     public Result<User> getUserByUserId(Long userId) {
-        User user = userService.getUserByUserId(userId);
+        User user = cacheService.getUserByIdCache(userId);
         return Result.byObject(user);
     }
 
@@ -47,7 +51,7 @@ public class UserController extends BaseController {
      */
     @GetMapping("/getReadConfig")
     public Result<UserReadConfig> getUserReadConfigByUserId(Long userId) {
-        return Result.success(userService.getUserReadConfigByUserId(userId));
+        return Result.success(cacheService.getUserReadConfigCache(userId));
     }
 
     /**

+ 12 - 0
book-server/src/main/java/com/book/server/service/CacheService.java

@@ -2,6 +2,7 @@ package com.book.server.service;
 
 import com.book.dao.VO.*;
 import com.book.dao.cps.entity.UploadBook;
+import com.book.dao.cps.entity.UserReadConfig;
 import com.book.dao.cps.mapper.*;
 import com.book.dao.cps.pojo.*;
 import com.book.dao.cps.pojo.example.BookCategoryExample;
@@ -222,6 +223,17 @@ public class CacheService {
         return bookRes;
     }
 
+    @Autowired
+    private UserService userService;
+
+    @CacheFind(key = "userReadConfig")
+    public UserReadConfig getUserReadConfigCache(Long userId) {
+        return userService.getUserReadConfigByUserId(userId);
+    }
+
+    @CacheFind(key = "userReadConfig", delete = true)
+    public void delUserReadConfigCache(Long userId) {
+    }
 
 
 }

+ 13 - 1
book-server/src/main/java/com/book/server/service/impl/BookServiceImpl.java

@@ -722,7 +722,19 @@ public class BookServiceImpl implements BookService {
     }
 
     public User getUserById(Long id) {
-        return userMapper.selectByPrimaryKey(id);
+        User user = userMapper.selectByPrimaryKey(id);
+        int freeCount = getFreeCountFromCharges(getFreeCharges(id));
+        if (user.getFreeKandian() != freeCount) {
+            user.setFreeKandian(freeCount);
+
+            // 更新免费看点
+            User user1 = new User();
+            user1.setId(user.getId());
+            user1.setFreeKandian(freeCount);
+
+            userMapper.updateByPrimaryKeySelective(user1);
+        }
+        return user;
     }
 
     private String getUserKey(Long id) {

+ 6 - 1
book-server/src/main/java/com/book/server/service/impl/UserServiceImpl.java

@@ -6,6 +6,7 @@ import com.book.dao.cps.mapper.UserReadConfigMapper;
 import com.book.dao.cps.pojo.User;
 import com.book.dao.cps.pojo.example.UserReadConfigExample;
 import com.book.dao.utils.DateUtils;
+import com.book.server.service.CacheService;
 import com.book.server.service.UserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -39,10 +40,13 @@ public class UserServiceImpl implements UserService {
         return userReadConfig;
     }
 
+    @Autowired
+    private CacheService cacheService;
+
     @Override
     public Boolean setUserReadConfigByUserId(UserReadConfig readConfig) {
         readConfig.setUpdateTime(DateUtils.getNow());
-        int i = userReadConfigMapper.updateByExample(
+        int i = userReadConfigMapper.updateByExampleSelective(
                 readConfig,
                 UserReadConfigExample.newAndCreateCriteria()
                         .andUserIdEqualTo(readConfig.getUserId())
@@ -52,6 +56,7 @@ public class UserServiceImpl implements UserService {
             readConfig.setCreateTime(DateUtils.getNow());
             i = userReadConfigMapper.insert(readConfig);
         }
+        cacheService.delUserReadConfigCache(readConfig.getUserId());
         return i > 0;
     }
 }