交友项目【通用设置】三个功能实现
目录
1:交友项目【通用设置】
1.1:查询通用设置
1.1.1:接口地址
1.1.2:流程分析
1.1.3:代码实现
1.2:设置陌生人问题
1.2.1:接口地址
1.2.2:流程分析
1.2.3:代码实现
1.3:通知设置
1.3.1:接口地址
1.3.2:流程分析
1.3.3:代码实现
1:交友项目【通用设置】
1.1:查询通用设置



1.1.1:接口地址
接口地址:http://192.168.136.160:3000/project/19/interface/api/268

1.1.2:流程分析
根据定义的文档接口,请求头需要接收,token信息,响应ResponseEntity<SettingVo>,创建SettingVo进行封装数据,
根据需求需要查询tb_question和tb_settings表中的信息,进行汇总到Vo中。
1.1.3:代码实现
与前端交互的app-server模块

controller层实现
/*** @Author 爱吃豆的土豆、* @Date 2023/4/4 11:29*/
@RequestMapping("/users")
@RestController
public class UserController {@Resourceprivate UserService userService;@GetMapping("/settings")public ResponseEntity findUsersettings(){SettingsVo usersettings = userService.findUsersettings(UserHolder.getUserId());usersettings.setPhone(UserHolder.getMobile());return ResponseEntity.ok(usersettings);}
}
service层实现
public SettingsVo findUsersettings(Long userId) {return userApi.findUsersettings(userId);}
统一封装接口的模块
SettingsVo findUsersettings(Long userId);
提供者模块(提供相关接口的实现)
@Overridepublic SettingsVo findUsersettings(Long userId) {Settings setting = setMapper.findSetting(userId);SettingsVo settingsVo = new SettingsVo();Long numberLong = new Long(userId);Integer id = numberLong.intValue();settingsVo.setId(id);if (setting.getGonggaoNotification() == 1){settingsVo.setGonggaoNotification(true);}else {settingsVo.setGonggaoNotification(false);}if (setting.getLikeNotification() == 1){settingsVo.setLikeNotification(true);}else {settingsVo.setLikeNotification(false);}if (setting.getPinglunNotification() == 1){settingsVo.setPinglunNotification(true);}else {settingsVo.setPinglunNotification(false);}Question question = questionMapper.findQuestion(userId);settingsVo.setStrangerQuestion(question.getTxt());return settingsVo;}
1.2:设置陌生人问题
1.2.1:接口地址
接口地址:http://192.168.136.160:3000/project/19/interf
1.2.3:代码实现
与前端交互的app-server模块
controller层实现
@PostMapping("/questions")public ResponseEntity editquestion(@RequestBody Map content){userService.editquestion(String.valueOf(content.get("content")), UserHolder.getUserId());return ResponseEntity.ok(null);}
service层实现
public void editquestion(String content, Long id) {userApi.editquestion(content,id);}
统一封装接口的模块

void editquestion(String content, Long id);
提供者模块(提供相关接口的实现)

@Overridepublic void editquestion(String content, Long id) {//查询对应的数据Question question = questionMapper.findQuestion(id);//重新设置question.setTxt(content);questionMapper.updateById(question);}
1.3:通知设置
1.3.1:接口地址
通知管理:对通知进行保存或者更新的操作
http://192.168.136.160:3000/project/19/interface/api/280
1.3.2:流程分析

1.3.3:代码实现
与前端交互的app-server模块

controller层实现
@PostMapping("/notifications/setting")public ResponseEntity editsetting(@RequestBody SettingsVo settingsVo){userService.editsetting(settingsVo,UserHolder.getUserId());return ResponseEntity.ok(null);}
service层实现
public void editsetting(SettingsVo settingsVo, Long userId) {userApi.editsetting(settingsVo,userId);}
统一封装接口的模块
void editsetting(SettingsVo settingsVo, Long userId);
提供者模块(提供相关接口的实现)
@Overridepublic void editsetting(SettingsVo settingsVo, Long userId) {Settings settings = setMapper.findSetting(userId);if (settingsVo.getGonggaoNotification()){settings.setGonggaoNotification(1);}else {settings.setGonggaoNotification(0);}if (settingsVo.getLikeNotification()){settings.setLikeNotification(1);}else {settings.setLikeNotification(0);}if (settingsVo.getPinglunNotification()){settings.setPinglunNotification(1);}else {settings.setPinglunNotification(0);}setMapper.updateById(settings);}
相关文章:
交友项目【通用设置】三个功能实现
目录 1:交友项目【通用设置】 1.1:查询通用设置 1.1.1:接口地址 1.1.2:流程分析 1.1.3:代码实现 1.2:设置陌生人问题 1.2.1:接口地址 1.2.2:流程分析 1.2.3:代码…...
MongoDB 更新文档(更新多条文档)
上一篇我们介绍了如何更新一条文档,本篇我们介绍一下,如果更新多条文档,我们来回顾一下更新多条文档的语法: db.collection.updateMany(filter, update, options) 上一篇我们对语法中的参数及参数的语法进行了详细的介绍…...
ubuntu20 qt6.4.3 ustc镜像安装 xdma
文件下载地质 命令 ./qt-unified-linux-x64-4.5.2-online.run --mirror https://mirrors.ustc.edu.cn/qtproject没有镜像就下砸错误hash verification while downloading,this is temporary error,please retry 部分安装器不支持 --mirror cd ~/workspace/dma_ip_drivers/X…...
15_I.MX6ULL_LCD显示原理
目录 LCD简介 分辨率 像素格式 LCD屏幕接口 LCD时间参数 RGB LCD屏幕时序 像素时钟 显存 LCD简介 LCD全称是Liquid Crystal Display,也就是液晶显示器,是现在最常用到的显示器,手机、电脑、各种人机交互设备等基本都用到了LCD,最常见就是手机和电脑显示器了。LCD的构造…...
Vue.js 2.0 实例
构造器 每个 Vue.js 应用都是通过构造函数 Vue 创建一个 Vue 的根实例 启动的: var vm new Vue({// 选项 }) 虽然没有完全遵循 MVVM 模式, Vue 的设计无疑受到了它的启发。因此在文档中经常会使用 vm 这个变量名表示 Vue 实例。 在实例化 Vue 时&…...
安全技术和iptables防火墙
目录安全技术Netfilter防火墙工具介绍iptablesfirewalldnftablesiptables的组成概述netfilter与iptables关系iptables的四表五链结构介绍iptables安装iptables的命令格式数据包的常见控制类型iptables 命令常用管理选项添加规则删除规则修改规则 (不推荐使用&#x…...
StringBuilder和StringBuffer的区别
StringBuilder和StringBuffer的用法是一致的,平常我们最多用到的方法就是append()拼接字符串和reverse()翻转字符串等等。二者看起来方法是一样的,确实也是这样,其实它俩唯一的不同在于StringBuilder不是线程安全的,而StringBuffe…...
美团大数据开发转正实习面经(已OC)
一面面试体验整体很不错,面试官很温柔,也不会故意为难你。 一面(2023.3.21) 自我介绍简单介绍项目(研一在国电做的)你认为学习到的技术和实际使用的差距在哪项目中的数据都是哪里来的(集团中各种设备运行的数据)你说你用到了Spark那你介绍一下Spark的组件…...
leedcode刷题(2)
各位朋友们,又是新的一天,不知道大家过得怎样?今天是我leedcode刷题系列的第二篇,那么废话不多说,直接进入我们今天的主题。 文章目录有效的括号题目要求用例输入做题思路代码实现环形链表题目要求用例输入做题思路代码…...
0119 磁盘分区、挂载
1.Linux分区 1.Linux无论有几个分区,分给哪个目录使用,归根结底只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分 2.Linux采用了一种叫“载入”的处理方法,它的整个文件系…...
【独家】华为OD机试 - 打折买水果(C 语言解题)
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本期题目:打折买水果 题目 有 m m m…...
python使用args,kwargs
使用*args, **kwargs 在Python中,*args和**kwargs分别用于在函数定义中处理可变数量的位置参数和关键字参数。这使得您可以在调用函数时传入任意数量的参数,而不需要在函数定义中为每个参数单独声明一个形参。 这里是它们的使用方法: *arg…...
20230408英语学习
Planting This Could Feed Millions and Lock Away Tons of Carbon 食用菌:新型蛋白质来源,还能固碳 The world hungers for more food while wildlife yearns for untouched habitats.So goes the conflict between our seemingly insatiable need for…...
ReplacingMergeTree
在 MergeTree 的基础上,添加了“处理重复数据”的功能,该引擎和MergeTree的不同之处在于它会删除具有相同(区内)排序⼀样的重复项。数据的去重只会在合并的过程中出现。合并会在未知的时间在后台进⾏(⼿动合并),所以你⽆法预先作出计划。有⼀…...
Java核心技术知识点笔记—集合(二)
1、树集(TreeSet):是一个有序集合(sorted collection),与散列集类似,但比散列集有所改进。 (1)可以以任意顺序将元素插入到集合中; (2ÿ…...
Sharepoint Online手工迁移方案 | 分享二
目录 前言 1.创建新的目标网站集合 2.备份旧网站集合的内容数据库 3.卸载旧网站集合...
MVC获取当前区域、控制器、Action
控制器中获取: 获取区域名称:RouteData.DataTokens["area"].ToString() 获取控制器名称:RouteData.Values["controller"].ToString() 获取Action名称:RouteData.Values["action"].ToString() 视…...
第十六章 脚手架文件介绍
react项目脚手架文件目录 public ---- 静态资源文件夹 |-------favicon.icon ------ 网站页签图标 |-------index.html -------- 主页面 |-------logo192.png ------- logo图 |-------logo512.png ------- logo图 |-------manifest.json ----- 应用加壳的配置文件 |-------rob…...
基于Clion开发(stm32移植FreeRTOS+LVGL)
嵌入式单片机开发中,通常使用 Keil IAR 或 芯片厂商提供的IDE,这类IDE界面风格还停留在十几年前XP风,代码编辑实在让人难受,所以很多时候笔者都是采用VSCode编辑,然后再用这类IDE下载调试使用,另外像keil 和…...
Python | 蓝桥杯进阶第三卷——动态规划
欢迎交流学习~~ 专栏: 蓝桥杯Python组刷题日寄 蓝桥杯进阶系列: 🏆 Python | 蓝桥杯进阶第一卷——字符串 🔎 Python | 蓝桥杯进阶第二卷——贪心 💝 Python | 蓝桥杯进阶第三卷——动态规划 ✈️ Python | 蓝桥杯进阶…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...
spring Security对RBAC及其ABAC的支持使用
RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...
智能职业发展系统:AI驱动的职业规划平台技术解析
智能职业发展系统:AI驱动的职业规划平台技术解析 引言:数字时代的职业革命 在当今瞬息万变的就业市场中,传统的职业规划方法已无法满足个人和企业的需求。据统计,全球每年有超过2亿人面临职业转型困境,而企业也因此遭…...
UE5 音效系统
一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类,将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix,将上述三个类翻入其中,通过它管理每个音乐…...
表单设计器拖拽对象时添加属性
背景:因为项目需要。自写设计器。遇到的坑在此记录 使用的拖拽组件时vuedraggable。下面放上局部示例截图。 坑1。draggable标签在拖拽时可以获取到被拖拽的对象属性定义 要使用 :clone, 而不是clone。我想应该是因为draggable标签比较特。另外在使用**:clone时要将…...
RLHF vs RLVR:对齐学习中的两种强化方式详解
在语言模型对齐(alignment)中,强化学习(RL)是一种重要的策略。而其中两种典型形式——RLHF(Reinforcement Learning with Human Feedback) 与 RLVR(Reinforcement Learning with Ver…...
5. TypeScript 类型缩小
在 TypeScript 中,类型缩小(Narrowing)是指根据特定条件将变量的类型细化为更具体的过程。它帮助开发者编写更精确、更准确的代码,确保变量在运行时只以符合其类型的方式进行处理。 一、instanceof 缩小类型 TypeScript 中的 in…...
