點贊功能模組-獲取使用者詳情與點贊過的歷史文章
內容一:選擇的資料結構同樣也是雜湊!!
內容二:使用者的維度~儲存點贊過的歷史文章(其中為了減少二次加工,對Field做了小技巧的處理..)~儲存的邏輯要適用於"點贊"與“取消點贊"的場景
內容:直接從快取的SortedSet獲取即可,獲取出Field後,需要作分隔符的小處理
以使用者為維度,快取使用者點贊過的歷史文章
key=儲存到redis的標誌符;field=使用者id-文章id,value=文章標題
PraiseService.java
private void cacheUserPraiseArticle(final PraiseDto dto,Boolean isOn){
final String fieldKey=dto.getUserId()+SplitChar+dto.getArticleId();
HashOperations<String,String,String> hash=redisTemplate.opsForHash();
if (isOn){
hash.put(Constant.RedisArticleUserPraiseKey,fieldKey,dto.getTitle());
}else{
hash.put(Constant.RedisArticleUserPraiseKey,fieldKey,"");
}
}
//以使用者為維度~獲取使用者詳情以及點贊過的歷史文章
public Map<String,Object> getUserArticles(final Integer currUserId) throws Exception{
Map<String,Object> resMap=Maps.newHashMap();
//使用者詳情-直接db查詢
resMap.put("userInfo~使用者詳情",userMapper.selectByPrimaryKey(currUserId));
//使用者點贊過的歷史文章-查redis的hash
List<PraiseDto> userArticles=Lists.newLinkedList();
HashOperations<String,String,String> hash=redisTemplate.opsForHash();
//field-value對
Map<String,String> map=hash.entries(Constant.RedisArticleUserPraiseKey);
for (Map.Entry<String, String> entry:map.entrySet()){
String field=entry.getKey();//使用者ID-文章ID
String value=entry.getValue();//文章標題
String[] arr=StringUtils.split(field,SplitChar);
//判斷 “文章標題是否為空” - 如果為空,則代表已經取消點讚了
if (StringUtils.isNotBlank(value)){
//判斷當前 arr[0] 是否為當前使用者id,如果是,則代表 arr[1] 為當前使用者點贊過的文章id
if (currUserId.toString().equals(arr[0])){
userArticles.add(new PraiseDto(currUserId,Integer.valueOf(arr[1]),value));
}
}
}
resMap.put("userPraiseArticles~使用者點贊過的歷史文章",userArticles);
return resMap;
}
相關文章
- Redis實現點贊功能模組Redis
- 微信小程式實現點贊、取消點贊,和多項點選功能微信小程式
- vue實現對文章列表的點贊Vue
- 通過文章獲得的贊同數爬取、過濾“掘金”中的文章(python Web)PythonWeb
- iOS 點贊功能高併發的思考iOS
- redis系列:通過文章點贊排名案例學習sortedset命令Redis
- Redis高效實現點贊、取消點贊只需這四步Redis
- 基於 Laravel 和 Redis 的點贊功能設計LaravelRedis
- 第六十九天 BBS專案之五 js與模板語法 inclusion_tag實操,文章詳情,點贊點踩JS
- Flutter仿掘金點贊效果Flutter
- 通用點贊設計思路
- 仿抖音點贊按鈕
- android短視訊開發,實現動態點贊出現的點贊動畫Android動畫
- 高階UI特效仿直播點贊效果—一個優美炫酷的點贊動畫UI特效動畫
- 全網最全的Java SpringBoot點贊功能實現JavaSpring Boot
- 微擎 微贊 微盟 有贊 點點客微信介面對比哪個好
- 簡化你的關注與點贊 - Laravel Follow & VoteLaravel
- 優點點贊系統開發的分析介紹
- 點贊處理的一些小技巧
- 基於SpringBoot如何實現一個點贊功能?Spring Boot
- 達贊系統技術開發/達贊DAS模式技術開發詳情模式
- 前端模組化開發那點歷史前端
- React Native 仿抖音點贊特效React Native特效
- Android 自定義View 點贊效果AndroidView
- L1-034 點贊 pythonPython
- 「小程式JAVA實戰」小程式的影片點贊功能開發(62)Java
- [應用案例]給網站加了個評論功能,帶點贊網站
- ThinkCMFX 1.1 釋出,加強會員功能,點贊,評論,收藏!
- 微信公眾平臺Bug:文章閱讀、點贊輕鬆100萬
- 來自開發者的點贊!HMS Core榮獲多個行業獎項行業
- 視覺有難,八方點贊。視覺
- JavaScript和css3點贊放大效果JavaScriptCSSS3
- L1-034 點贊 分數 20
- Halo 開源專案學習(五):評論與點贊
- Python多執行緒爬取知乎獲贊過千的答案連結Python執行緒
- 這份深度學習課程筆記獲吳恩達點贊深度學習筆記吳恩達
- 直播軟體原始碼,好看的點贊按鈕原始碼
- 直播點贊View(從我的簡書遷移........)View