智能推荐社交分享小程序(websocket即时通讯、协同过滤算法、时间衰减因子模型、热度得分算法)

🎈系统亮点:websocket即时通讯、协同过滤算法、时间衰减因子模型、热度得分算法;

一.系统开发工具与环境搭建

1.系统设计开发工具

后端使用Java编程语言的Spring boot框架

项目架构:B/S架构

运行环境:win10/win11、jdk17

小程序端:

技术:Uniapp;

UI库:colorUI;

开发工具:HBuilderX;

前端:

技术:框架Vue.js;

UI库:ElementUI;

开发工具:Visual Studio Code;

后端:

技术:Java语言、mybatis plus、Spring boot框架;

开发工具:IDEA 2023.3.3版本;

数据库:

数据库:mysql5.7/8.0;

数据库工具:Navicat12版本;

二.系统实现(部分截图)

2.1 用户模块的实现

2.1.1 注册登录功能实现

用户通过小程序的/pages/Front/Register注册界面进行注册账号,通过view标签包裹注册内容,包含四个input输入框组,用户昵称、账号、密码和手机号。当用户点击注册按钮,该按钮绑定了Register()点击事件,验证用户输入的信息是否为空,为空则提示用户输入对应信息,验证通过后,使用this.$http.Post方法向后端发送POST请求,调用/User/OtherRegister接口进行用户注册,用户注册成功后,使用uni.redirectTo方法跳转到登录页面。注册界面图如图4-1所示。

用户进入/pages/Front/Login登录界面,输入已注册的账号、密码进行登录,前端进行验证用户输入的账号和密码是否为空,若为空,则调用this.$comm.ShowToast提示用户输入的信息为空。随后将用户输入的表单数据传递到后端/User/SignIn接口进行验证用户输入的账号密码在用户表是否存在,存在则代表登录成功。登录界面图如图4-2所示。

2.1.2 话题推荐功能实现

话题推荐功能采用多维度智能算法组合模式,为不同用户筛选感兴趣的话题列表。当小程序端传递用户身份标识至/Topic/TopicRecommend后端接口时,若系统无法识别有效用户信息,则直接返回空白列表。后端从持久层获取所有用户的互动轨迹数据,通过群体行为分析模块建立用户与话题的关联模型。系统通过计算兴趣匹配度,识别出与当前用户行为模式相近的群体集合。在话题内容筛选阶段,查询已经审核通过的有效话题数据,并将结果转换为数据传输对象TopicDto。推荐权重由三部分组成:通过相似用户行为推荐的关联度占比30%,话题阅读量(40%权重)、互动点赞(30%权重)、话题收藏(30%权重)构成的热度指标占40%,以及随时间推移自动衰减的时效因子占30%。当目标话题存在于相似用户关注列表时,取最高匹配度值作为基础参数。时间因子通过1/(1+log(间隔天数+1)的数学公式动态调整内容权重,使近期产生的话题获得更合理的曝光机会。最终系统对所有待推荐内容进行综合评分排序,形成个性化推荐话题列表返回小程序端进行展示。推荐话题界面图如图4-3所示。

2.1.3 实时聊天功能实现

系统提供了实时聊天的功能,用户点击“消息”Tabbar,进入/pages/Front/WechatCollection聊天列表,当页面显示的时候,调用this.GetWechatCollectionListApi()方法,查看聊天集合信息,该方法调用后端/WechatCollection/List接口,并传递当前用户ID,获取该用户的聊天集合列表,当用户点击聊天集合中的某条记录,跳转到对应的/pages/Front/WeChat用户聊天界面,并将当前用户ID和聊天对方的用户ID传递到该聊天界面,进来界面就调用/WechatMessage/List接口获取聊天信息。用户发送聊天内容,调用SendMessage进行发送消息,调用后端接口 /WechatMessage/CheckCanSendMessage,传入当前用户ID、对方用户ID和消息内容,调用websocket.SendMessage方法,发送消息,并在发送后清空消息内容。实时聊天界面图如图4-4所示。

2.1.4 附近话题功能实现

附近话题模块,采用瀑布流布局展示话题,将话题数据分为左右两列leftItems和rightItems分别渲染,通过NearByListApi方法从后端接口/Topic/NearBy获取附近话题数据,通过用户Id查询用户表,获取用户信息,得到用户的经纬度,从数据库获取所有审核通过且合法的话题,将实体对象转换为传输模型,处理每个话题的距离位置,需要过滤掉超过300公里的话题信息,并按照距离进行排序。用户可点击话题卡片,触发goToDetail方法跳转到话题详情页,查看话题详情信息。附近话题界面图如图4-5所示。

2.1.5 发布话题功能实现

小程序端,用户可进行发布话题,进入/pages/Front/TopicEdit界面,前端使用uni-forms组件构建表单,包含标题、话题类型、可见范围、封面、详细图、分享内容等必填项。点击“提交”按钮触发CreateOrEditAsync方法,进行表单校验、用户确认后,将表单数据通过/Topic/CreateOrEdit接口,查询用户是否登录,通过用户Id查询用户表数据,检查用户是否处于发帖限制时间内,若在限制时间内则抛出异常,声明一个话题Topic实体,将话题内容赋值给Topic实体,调用数据库的新增方法。发布话题界面图如图4-6所示。

2.1.6 话题评论功能实现

用户进入小程序,可进行浏览话题,通过/Comment/List获取评论列表,查询数据库Comment表的列表数据,进行展示在话题评论区。用户可发表评论,调用/Comment/CreateOrEdit进行添加评论,判断用户账号是否正常,若正常,声明一个Comment评论实体,把前端传入的input参数拷贝到评论实体,调用数据库的增加方法进行新增。话题评论界面图如图4-7所示。

2.1.7 数据分析功能实现

使用qiun-data-charts组件渲染两个图表,折线图展示展示话题最近15天的浏览量趋势,柱状图展示最近互动活跃排行。通过onShow生命周期钩子调用后端接口获取图表数据,调用/Topic/MyLast15DaysViewCount接口,通过用户Id查询Topic话题比表,获取当前用户发布的所有话题,并查询这些话题的浏览记录,遍历最近的15天,按天统计浏览数量,将统计结果封装为Map,包含日期和浏览量,添加到结果列表中。调用后端接口/Topic/InteractionActiveCount,通过用户Id查询该用户的所有话题,查询评论过这些话题的用户,查询关注的当前用户的用户,查询给当前用户帖子点赞的用户,查询收藏当前用户帖子的用户。每条评论计1分,每个关注计5分,每个点赞计1分,每个收藏计1分,将用户Id和对应的活跃值整理成结果列表返回。数据分析界面图如图4-8所示。

2.2 管理员模块实现

2.2.1 用户管理实现

管理员可以进行管理系统的所有用户信息,可进行增删改查、导出操作。点击新增按钮,弹出新增对话框,输入账号、密码、角色等信息进行新增,调用/User/CreateOrEdit接口进行新增;点击导出,调用/User/Export接口执行导出操作,创建Excel工作簿和工作表,设置导出的表头内容包含账号,密码,姓名,邮箱,手机号码,用户角色,出生年月。遍历用户数据列表,将对应的数据填充到对应的单元格,设置响应类型为二进制流,通过时间戳设置文件名,并将Excel内容写入响应输出流。用户管理界面图如图4-9所示。

2.2.2 话题管理实现

话题管理界面,支持管理员通过标题、话题类型input框查询话题信息,调用/Topic/List接口,从数据库进行查询获取话题表的数据,将话题列表以JSON格式返回给前端,展示话题信息,包含标题、话题类型、封面等信息。管理员可以进行审核用户发布的话题,管理员可以通过话题的信息决定是否审核通过,当点击审核通过,调用/Topic/CreateOrEdit接口,修改话题的审核状态为审核通过,用户将可以在小程序端查看审核通过的话题;当点击审核不通过,修改话题的审核状态为审核失败,用户将无法查看审核不通过的话题。话题管理界面图如图4-10所示。

2.2.3 热门话题柱状图实现

系统通过Echarts技术绘制柱状图表,用来展现近一周各个话题的浏览人次。图表的横轴表示星期,从六天前到今天。纵轴则表示浏览人次的数量。不同颜色的柱体分别对应着运动健身、旅行探险、美食烹饪等诸多话题。管理员只要看看柱体的高低和颜色,就能直观地了解到近一周哪些话题更受关注。热门话题柱状图界面图如图4-11所示。

2.2.4 客服功能实现

管理员可通过客服导航栏,进入客服/Admin/WeChat界面,实现了一个基于Vue的即时通讯聊天界面,通过Vuex获取用户Id和信息,展示管理员的头像,通过HTTP请求/WechatCollection/List接口,通过管理员Id进行查询数据库会话集合WechatCollection表数据,将按照创建时间降序排序,把WechatCollection实体转换成WechatCollection传输模型,返回给前端,进行展示管理员的好友列表,当管理员点击其中一个会话集合,触发SelectOtherUserChatBtn()方法,通过/WechatMessage/List请求获取与该好友的聊天记录,将获取的聊天记录赋值给MessageList,使用滚动的方式将聊天窗口滚动到底部。客户功能界面图如图4-12所示。

4.2.5 词云图功能实现

通过Echarts实现的词云图,在组件挂载后,通过mounted生命周期钩子调用CommentWordCloundEchartApi方法,调用后端/Topic/GetTopicWordCloud接口获取词云图数据,从数据库查询话题表已被审核的话题标题,使用HanLP分词器对每个标题进行分词处理,统计每个词语的出现次数,将统计结果转换为特定格式返回到前端,使用$nextTick确保DOM完全渲染后再初始化ECharts,渲染词云图。词云图界面图如图4-13所示。

2.2.6 违规举报功能实现

管理员可进行管理用户提交的违规举报内容,进入/Admin/ViolationReportList违规举报界面,使用el-row和el-col进行栅格布局,支持举报类型、举报人等条件筛选,违规举报列表通过自定义组件PaginationTable展示违规举报列表,where参数在搜索表单提交,通过url调用/ViolationReport/List接口,从数据库进行分页查询获取ViolationReport表违规举报数据,返回给前端进行展示在列表。管理员进行处理违规举报内容,核对用户是否违规,选择处罚类型和处理结果进行处理,调用/ViolationReport/Audit接口,通过违规的用户Id获取用户信息,根据管理员设置的处罚类型进行修改用户账号,比如禁言、永久封号等处理,修改用户的信息。修改ViolationReport违规举报实体的处理方式,将触发类型和处理结果保存在该违规举报表中。违规举报管理界面图如图4-14所示。

图4-14 违规举报管理界面图

2.2.7 违规词功能实现

管理员可进行设置违规词,维护违规词,通过新增违规词对话框,选择违规严重程度,填写违规词,调用/ViolationWord/CreateOrEdit,声明一个ViolationReport违规词实体,调用数据库saveOrUpdate的新增方法,为违规词表新增一条数据。管理员可修改违规词信息,通过修改违规词对话框,修改违规词内容,调用/ViolationWord/CreateOrEdit接口,传入违规词Id信息,调用数据库的违规词修改方法,进行修改违规词。可删除违规词,调用/ViolationWord/Deleted删除违规词,通过ViolationWordMapper.selectById()方法获取该违规词信息,调用deleteById()进行删除。用户在发布话题、评论时,系统将会检测违规词,当输入的内容有违规词,将会提示用户。违规词管理界面图如图4-15所示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/88075.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/88075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

部署NextCloud AIO + Frp + nginx-proxy-manager内网穿透私有云服务

网络拓扑 假设已有域名为nextcloud.yourhost.com 用户通过域名https访问 -> Nginx -> frps -> frpc -> NextCloud 其中Nginx和frps安装在具有公网IP的服务器上,frpc和NextCloud安装在内网服务器中。 Nginx配置 通过docker安装nginx-proxy-manager 外…

【源力觉醒 创作者计划】文心开源大模型ERNIE-4.5-0.3B-Paddle私有化部署保姆级教程及技术架构探索

一起来轻松玩转文心大模型吧👉一文心大模型免费下载地址: https://ai.gitcode.com/theme/1939325484087291906 前言 2025年6月30日,百度正式开源文心大模型4.5系列(ERNIE 4.5),涵盖10款不同参数规模的模型&#xff0…

大模型面试:如何解决幻觉问题

在大模型面试中回答“如何解决幻觉”问题时,需要展现你对问题本质的理解、技术方案的掌握以及工程实践的洞察。以下是一个结构化的回答框架和关键点,供你参考:回答框架:问题理解 -> 解决方案 -> 总结 1. 明确问题&#xff0…

matlab实现五自由度机械臂阻抗控制下的力跟踪

五自由度机械臂阻抗控制下的力跟踪,可以实现对力的跟踪反馈,基于MATLAB的机器人工具箱 eyebot.m , 767 zuakang_wailiraodong.m , 2568 colormp.mat , 682

excel日志表介绍

在Excel中制作“日志表事物”(可理解为记录事务的日志表格),通常用于系统性追踪事件、任务、操作或数据变化。以下从表格设计、核心要素、制作步骤、函数应用及场景案例等方面详细说明,帮助你高效创建和使用事务日志表。 一、日志…

汽车信息安全 -- SHE密钥更新小细节

之前我们把SHE密钥更新流程做了梳理,汽车信息安全 -- SHE 密钥更新流程 但在实际做SHE Emulation的时候还是发现了问题,例如如果想更新SHE Key ID等于30,会如何影响M1-M5的值呢?。 今天就聊聊关于几家对于SHE Key的管理。 1. N…

Spring Boot配置优先级完全指南:实战解析覆盖规则

一、结论Spring Boot 中,位置越靠后优先级越高,外部配置压倒内部配置,命令行参数拥有最高优先权。案例: 在一次生产事故中,某团队通过 application-prod.properties 将服务端口设为 9000,但某运维人员在启动…

嵌入式数据库sqlite测试程序

继上篇对嵌入式数据库sqlite的移植和注意项,以及使用命令行测试之后,本篇对其进行了更进一步的程序测试,以备近期在项目中使用。测试程序及说明如下:/**************** 相关函数说明 ******************/ /* (1)sqlite3_open的函…

【学习篇】SQL复杂查询学习

要求:能对千万行级别的大表优化读写效率。 难点:如何创建千万行级别的大表 MySQL数据库的高效查询不仅依赖于合理的表结构和索引设计,还需要掌握高级查询技巧和性能优化方法。 数据表与数据表之间关系三种:实体之间关系 多对多…

Sequential Predictive Modeling of Clinical Trial Outcome with Meta-Learning解读

SPOT(Sequential Predictive Modeling of Clinical Trial Outcome with Meta-Learning)模型是用于临床试验结果预测的模型, 借鉴了模型无关元学习(MAML,Model-Agnostic Meta-Learning)的框架,将模型参数分为全局共享参数和任务特定参数,以平衡跨任务泛化与任务内适配:…

优先选择列表而非数组及泛型类型的使用

数组与泛型的核心差异 协变性与不变性 数组采用协变(covariant)类型规则:若Sub是Super的子类型,则数组类型Sub[]也是Super[]的子类型。这种设计允许以下代码通过编译: Object[] objectArray = new Long[1]; // 编译通过 objectArray[0

自动化Prompt生成平台的研发体系设计

一份轻松不啰嗦的自动化Prompt平台研发攻略 📑 目录 一、项目背景二、平台整体架构设计三、核心功能模块解析四、自动化流程设计五、样式与跨平台规范六、总结与展望 一、项目背景 在大模型应用爆发的今天,不写Prompt的工程师,正在变成“写…

[Swarm] 上下文变量 | 接入function功能调用 | Mcp

第3章:上下文变量 欢迎回到swarm! 在前两章中,我们学习了作为对话指挥者的Swarm框架和具备指令与技能的专用AI角色智能体。(智能体就相当于是给用户问题 已经写好了的提示词,在用户提问时自动加入,以此来给用户更好的…

【Unity开发】Unity实现第一人称视角与第三人称视角切换功能

一、效果展示 第三人称视角:固定摄像机,无任何操作 第一人称视角:用户可以通过wsad进行前后左右移动,qe进行上升下降操作 不同视角之间切换会有一个过渡动画,切换第一视角的初始位置始终为原点(0,0,0&am…

2025全球数字经济大会—云智算安全论坛暨第三届“SecGo论坛”成功召开!共筑安全新生态

2025年7月3日,由全球数字经济大会组委会主办,中国信息通信研究院、中国通信标准化协会承办的全球数字经济大会—云智算安全论坛暨第三届“SecGo论坛”在京召开。北京市经济和信息化局副局长顾瑾栩、中国通信标准化协会副理事长兼秘书长代晓慧、中国信通院…

KingbaseES聚焦产品上线:金仓数据库在线体验平台上线,开启数据库实践新征程

KingbaseES聚焦产品上线:金仓数据库在线体验平台上线,开启数据库实践新征程KingbaseES 在线体验平台是为数据库使用者、开发者、架构师及 DBA 打造的轻量化实践平台,无需本地安装数据库环境,通过浏览器即可快速上手,降…

LLMs之DeepSeek:AI模型市场深度分析:DeepSeek的挑战与机遇,模型市场份额、Token经济学与未来发展

LLMs之DeepSeek:AI模型市场深度分析:DeepSeek的挑战与机遇,模型市场份额、Token经济学与未来发展 导读:该文章主要分析了中国大语言模型DeepSeek R1发布150天后的市场表现、Token经济学的影响以及AI模型市场的竞争格局。文章指出&…

服装零售企业跨区域运营难题破解方案

在服装零售行业,本地化业务系统因承载库存、销售等核心数据,成为众多企业的选择。然而对于门店分布广、规模较大的服装销售商而言,总部系统与各地门店的远程连接却面临挑战:员工远程办公效率低、POS机数据同步滞后、跨区域监管难度…

- 思考小记

对于 分布式系统,我还是抱有敬畏之心的,因为其内容过于庞大;我在学习基础编程的时候走过一个最大的弯路就是过度追求技术而忽视了基础编码能力,当时在学习springboot的时候,觉得那些新内容都是那么新奇高大上&#xff…

装备制造数字孪生底座平台

在《中国制造2025》和《“十四五”智能制造发展规划》的推动下,数字孪生技术被7次重点提及,成为装备制造业智能化升级的核心战略。从航空航天到重型机械,从设计验证到运维优化,数字孪生底座平台正通过“虚实映射”与“实时交互”&…