【Spring开发】SpringCloud交友项目实战第8篇:1.3 设置陌生人问题,1.4 通知设置【附代码文档】

🏆🏆🏆教程全知识点简介:1、Dubbo的前世今生 1、项目介绍 1.1、项目背景 1.2、市场分析 1.3、目标用户群体 1.4、使用场景 1.5、竞争对手分析 1.7、技术方案 2、前后端分离开发思想 3、开发工具与环境搭建 3.1、开发工具 3.2、环境搭建 4、sms_code验证玛 4.1 阿里云短信 4.2 自动装配 1. 完善用户信息 1.2 百度人脸识别 1.2.1 概述 1.2.2 账号申请 1.2.4 抽取模板工具 2.2 更新用户资料 2.2.1 接口文档 2.2.2 代码实现 3. 统一token处理 3.1.需求分析 3.2 解决方案 拦截器(Interceptor) ThreadLocal MongoDB入门 数据库以及表的操作 新增数据 更新数据 删除数据 查询数据 1.3 设置陌生人问题 1.4 通知设置 1.5 黑名单管理 4. SpringData-Mongo 4.2 完成基本操作 5. 今日佳人 5.1 表结构设计 5.2 服务提供者 5.2.0 导入依赖 5.2.2 RecommendUserApi接口 分片集群 原理介绍 集群搭建 2、圈子功能 2.1、功能说明 3、圈子实现 3.2、发布动态 1. 动态查询 1.1 查询好友动态 2. 圈子互动 2.3 动态点赞 2.4.3 喜欢标识 安装 准备 使用 1. 即时通信 2. 环信 2.1 开发简介 2.2 环信Console 2.3 环信API介绍 初始化 基础API 3. 抽取环信组件 3.1 编写Properties对象 3.2 编写HuanXinTemplate 3.3 编写自动配置类 2. MongoDB地理位置检索 2.1 地理位置索引 Point LineString Polygon 2.2 案例 3. 上报地理位置 4. 搜附近 1. 我的访客 1.2 记录访客数据 tanhua-model tanhua-app-server tanhua-dubbo-interface 1.3 首页谁看过我 需求分析 3. FastDFS 3.2. 工作原理 3.2.1. 文件的上传 分布式文件系统FDFS配置 4. 发布小视频 1、用户冻结解冻 1.1 用户冻结 1.3 查询数据列表 1.4 明日系统修改 2.2 定时任务 3、内容审核 1、了解推荐系统 1.1、什么是推荐系统? 1.3、推荐系统业务流程 1.4、协同过滤推荐算法 1.5、ALS算法 2、好友推荐 2.1、流程 2.2、部署好友推荐服务

📚📚仓库code.zip 👉直接-->: https://gitee.com/xiaoshuai112/Backend/blob/master/Spring/SpringCloud交友项目实战/note.md 🍅🍅
✨ 本教程项目亮点
🧠 知识体系完整:覆盖从基础原理、核心方法到高阶应用的全流程内容
💻 全技术链覆盖:完整前后端技术栈,涵盖开发必备技能
🚀 从零到实战:适合 0 基础入门到提升,循序渐进掌握核心能力
📚 丰富文档与代码示例:涵盖多种场景,可运行、可复用
🛠 工作与学习双参考:不仅适合系统化学习,更可作为日常开发中的查阅手册
🧩 模块化知识结构:按知识点分章节,便于快速定位和复习
📈 长期可用的技术积累:不止一次学习,而是能伴随工作与项目长期参考
🎯🎯🎯全教程总章节
🚀🚀🚀本篇主要内容
1.3 设置陌生人问题
对数据库表进行操作:如果存在数据,更新数据库。如果不存在数据,保存数据库表数据
1.3.1 接口文档
接口地址:
1.3.2 代码实现
tanhua-app-server
在tanhua-app-server
中SettingsController
和settingsService
添加方法
SettingsController
在SettingsController
中定义保存用户陌生人问题的方法
/**
* 设置陌生人问题
*/
@PostMapping("/questions")
public ResponseEntity questions(@RequestBody Map map) {
//获取参数
String content = (String) map.get("content");
settingsService.saveQuestion(content);
return ResponseEntity.ok(null);
}
SettingsService
在SettingsService
中编写保存用户陌生人问题的业务逻辑
//设置陌生人问题
public void saveQuestion(String content) {
//1、获取当前用户id
Long userId = UserHolder.getUserId();
//2、调用api查询当前用户的陌生人问题
Question question = questionApi.findByUserId(userId);
//3、判断问题是否存在
if(question == null) {
//3.1 如果不存在,保存
question = new Question();
question.setUserId(userId);
question.setTxt(content);
questionApi.save(question);
}else {
//3.2 如果存在,更新
question.setTxt(content);
questionApi.update(question);
}
}
tanhua-dubbo-interface
在tanhua-dubbo-interface
模块的QuestionApi
中定义保存和更新陌生人问题的方法
//保存
void save(Question question);
//更新
void update(Question question);
tanhua-dubbo-db
在tanhua-dubbo-db
模块的QuestionApiImpl
实现保存和更新陌生人问题的方法
//保存问题
public void save(Question question) {
questionMapper.insert(question);
}
//更新问题
public void update(Question question) {
questionMapper.updateById(question);
}
1.4 通知设置
1.4.1 接口文档
通知管理:对通知进行保存或者更新的操作
1.4.2 代码实现
tanhua-app-server
在tanhua-app-server
中SettingsController
和settingsService
添加方法
SettingsController
在SettingsController
中定义保存用户通知设置的方法
/**
* 通知设置
*/
@PostMapping("/notifications/setting")
public ResponseEntity notifications(@RequestBody Map map) {
//获取参数
settingsService.saveSettings(map);
return ResponseEntity.ok(null);
}
settingsService
在SettingsService
中编写保存用户通知的业务逻辑
[Spring WebFlux 文档]
//通知设置
public void saveSettings(Map map) {
boolean likeNotification = (Boolean) map.get("likeNotification");
boolean pinglunNotification = (Boolean) map.get("pinglunNotification");
boolean gonggaoNotification = (Boolean) map.get("gonggaoNotification");
//1、获取当前用户id
Long userId = UserHolder.getUserId();
//2、根据用户id,查询用户的通知设置
Settings settings = settingsApi.findByUserId(userId);
//3、判断
if(settings == null) {
//保存
settings = new Settings();
settings.setUserId(userId);
settings.setPinglunNotification(pinglunNotification);
settings.setLikeNotification(likeNotification);
settings.setGonggaoNotification(gonggaoNotification);
settingsApi.save(settings);
}else {
settings.setPinglunNotification(pinglunNotification);
settings.setLikeNotification(likeNotification);
settings.setGonggaoNotification(gonggaoNotification);
settingsApi.update(settings);
}
}
tanhua-dubbo-interface
在tanhua-dubbo-interface
模块的SettingsApi
中定义保存和更新通知设置的API接口方法
//保存
void save(Settings settings);
//更新
void update(Settings settings);
tanhua-dubbo-db
在tanhua-dubbo-db
模块的SettingsApiImpl
中实现保存和更新通知设置的API接口方法
//保存通知设置
public void save(Settings settings) {
settingsMapper.insert(settings);
}
//更新通知设置
public void update(Settings settings) {
settingsMapper.updateById(settings);
}
1.5 黑名单管理
1.5.1 查询黑名单列表
接口文档
接口地址:
vo对象
在tanhua-model
工程中配置分页vo对象
package com.tanhua.domain.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageResult implements Serializable {
private Integer counts = 0;//总记录数
private Integer pagesize;//页大小
private Integer pages = 0;//总页数
private Integer page;//当前页码
private List<?> items = Collections.emptyList(); //列表
public PageResult(Integer page,Integer pagesize,int counts,List list) {
this.page = page;
this.pagesize = pagesize;
this.items = list;
this.counts = counts;
this.pages = counts % pagesize == 0 ? counts / pagesize : counts / pagesize + 1;
}
}
[Leiningen 文档]
tanhua-app-server
在tanhua-app-server
中SettingsController
和settingsService
添加方法
SettingsController
在SettingsController
中定义查询用户黑名单列表的方法
/**
* 分页查询黑名单列表
*/
@GetMapping("/blacklist")
public ResponseEntity blacklist(
@RequestParam(defaultValue = "1") int page,
@RequestParam(defaultValue = "10") int size) {
//1、调用service查询
PageResult pr = settingsService.blacklist(page,size);
//2、构造返回
return ResponseEntity.ok(pr);
}
settingsService
在SettingsService
中定义查询用户黑名单列表的方法 , 编写查询用户黑名单列表的业务逻辑
//分页查询黑名单列表
public PageResult blacklist(int page, int size) {
//1、获取当前用户的id
Long userId = UserHolder.getUserId();
//2、调用API查询用户的黑名单分页列表 Ipage对象
IPage<UserInfo> iPage = blackListApi.findByUserId(userId,page,size);
//3、对象转化,将查询的Ipage对象的内容封装到PageResult中
PageResult pr = new PageResult(page,size,iPage.getTotal(),iPage.getRecords());
//4、返回
return pr;
}
tanhua-dubbo-interface
在tanhua-dubbo-interface
模块的创建BlackListApi
定义查询用户黑名单列表的方法
```java
package com.tanhua.dubbo.api;
import com.baomidou.
- 点赞
- 收藏
- 关注作者
评论(0)