Compare commits

..

10 Commits

Author SHA1 Message Date
mf-xuao f942723a62 first 6 months ago
mayongjian e35567bab1 更新README
更名:中文-来因,英文-LiveIn,寓意因热爱而来
8 months ago
mayongjian f7796cb2d5 更新README 9 months ago
mayongjian 77200ed07c 更新README 9 months ago
mayongjian 3075d46db4 更新README 9 months ago
mayongjian 4ce7cad719 更细README 10 months ago
mayongjian 38ffb5ac07 小蓝书项目更新说明 11 months ago
mayongjian f9d01dbe8e 小蓝书项目更新说明 11 months ago
mayongjian 253b94e4d2 更新项目为小蓝书 11 months ago
mayongjian d2640864d2 更新项目为小蓝书 11 months ago

64
.gitignore vendored

@ -0,0 +1,64 @@
######################################################################
# Build Tools
.gradle
/build/
!gradle/wrapper/gradle-wrapper.jar
target/
!.mvn/wrapper/maven-wrapper.jar
######################################################################
# IDE
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### JRebel ###
rebel.xml
### NetBeans ###
nbproject/private/
build/*
nbbuild/
dist/
nbdist/
.nb-gradle/
######################################################################
# Others
*.log
*.xml.versionsBackup
*.swp
!*/build/*.java
!*/build/*.html
!*/build/*.xml
# macOS
.DS_Store
# Windows
Thumbs.db
desktop.ini
# 通用临时文件
*.tmp
*.bak
*.orig
# Docker / Compose
*.tar
*.gz
docker-compose/*.log
logs/

@ -1,13 +1,13 @@
<p align="center">
<img alt="logo" src="https://image.mayongjian.cn/2024/07/03/1de3ee08e0a34ab6bf9a163d380fb596.png" width="100"/>
<img alt="logo" src="https://image.mayongjian.cn/2026/02/04/988b7ef2e1d243fbb9c5f40d7ac76d8b.png" width="100"/>
</p>
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">HongShu</h1>
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">LiveIn</h1>
<p align="center">
<b>基于 SpringBoot + Vue + Uniapp + AI大模型 的仿小红书全栈项目</b>
</p>
<p align="center">
<i>1:1 高仿小红书,具备内容发布、商品交易、社交互动、算法推荐、即时通讯等核心功能,适合全栈学习与实战。</i>
<i>1:1 高仿小红书,具备内容发布、商品交易、社交互动、算法推荐、即时通讯、AI创作等核心功能,适合全栈学习与项目实战。</i>
</p>
<p align="center">
@ -23,28 +23,26 @@
</p>
> **声明**
> 本项目基于 MIT 协议,免费开源,仅供学习交流,禁止转卖,谨防受骗。如需商用请保留版权信息,确保合法合规使用,运营风险自负,与作者无关。
> **🌟声明**
> 本项目基于 [MIT](https://opensource.org/licenses/MIT) 协议开源,免费用于学习交流,禁止转售,请提高警惕,谨防受骗。
> 项目名称“来因LiveIn”为开发代号与“小红书”无任何商业关联,仅为个人学习研究目的使用。演示环境使用的图片/视频素材均来源于网络,如有侵权请联系删除。
> 如需商用请确保合法合规使用,自行承担运营风险,与项目作者无关。
---
### 🎓 适合人群
| 👨‍💻 **全栈开发者** | 🎯 **求职者** | 🏢 **创业团队** | 📚 **学生党** |
|:---:|:---:|:---:|:---:|
| 学习 SpringBoot + Vue 全栈开发<br>了解微服务架构设计<br>掌握前后端分离开发 | 简历项目经验<br>面试技术亮点<br>实战能力证明 | 快速搭建社交平台<br>二次开发定制<br>商业化落地 | 毕业设计项目<br>技术栈学习<br>实战经验积累 |
## 🚀 项目简介
HongShu - 一款深度融合 AI 大模型能力的现代化社交电商平台,采用 SpringBoot + Vue + Uniapp 前后端分离架构,完整复刻小红书核心功能,并创新性集成多模态 AI 技术,打造智能化的内容创作与社交体验。
### 👨‍💻 适合人群
| **全栈开发者** | **求职者** | **创业团队** | **学生** |
|:------------------------------------------------------------------------:|:--------------------------:|:---------------------------:|:-------------------------:|
| 学习 SpringBoot + Vue + Uniapp 全栈开发<br>了解微服务架构设计<br>了解高并发业务场景<br>掌握前后端分离开发 | 简历项目经验<br>面试技术亮点<br>实战能力证明 | 快速搭建社交平台<br>二次开发定制<br>商业化落地 | 毕业设计项目<br>技术栈学习<br>实战经验积累 |
### 📂 项目组成
| 模块 | 模块说明 | 技术栈 | 项目地址 |
|------|-------|--------|---------------------------------------------------------------------------------------------------------------|
| **[HongShu](https://gitee.com/Maverick_Ma/hongshu)** | 后端服务代码(Java) | SpringBoot + SpringCloud | [gitee](https://gitee.com/Maverick_Ma/hongshu) 、 [github](https://github.com/Ma-YongJian/HongShu) |
| **[HongShu-Web](https://gitee.com/Maverick_Ma/hongshu-web)** | Web端代码(Vue) | Vue3 + Element Plus + TypeScript | [gitee](https://gitee.com/Maverick_Ma/hongshu-web) 、 [github](https://github.com/Ma-YongJian/HongShu-Web) |
| **[HongShu-Admin](https://gitee.com/Maverick_Ma/hongshu-admin)** | 管理端代码(Vue) | Vue3 + Arco Design + Vite | [gitee](https://gitee.com/Maverick_Ma/hongshu-admin) 、 [github](https://github.com/Ma-YongJian/HongShu-Admin) |
| **[HongShu-App](https://gitee.com/Maverick_Ma/hongshu-app)** | 移动端Uniapp代码 | Uniapp + Vue3(支持App/小程序/H5) | [gitee](https://gitee.com/Maverick_Ma/hongshu-app) 、 [github](https://github.com/Ma-YongJian/HongShu-App) |
| 模块 | 模块说明 | 技术栈 | 项目地址 |
|------------------------------------------------------------------|------------------|------------------------------------------------|---------------------------------------------------------------------------------------------------------------|
| **[HongShu](https://gitee.com/Maverick_Ma/hongshu)** | 后端服务代码(Java) | SpringBoot、SpringCloud | [gitee](https://gitee.com/Maverick_Ma/hongshu) 、 [github](https://github.com/Ma-YongJian/HongShu) |
| **[HongShu-Ui](https://gitee.com/Maverick_Ma/hongshu-ui)** | 前端代码(Vue、Uniapp) | Vue3、Element Plus、TypeScript、Uniapp | [gitee](https://gitee.com/Maverick_Ma/hongshu-ui) 、 [github](https://github.com/Ma-YongJian/HongShu-Ui) |
### 🏗️ 技术选型
@ -68,7 +66,7 @@ HongShu - 一款深度融合 AI 大模型能力的现代化社交电商平台,
- **框架**:Vue3 + TypeScript
- **构建工具**:Vite 4.x
- **UI组件**:Element Plus、Arco Design
- **移动端**:Uniapp(支持微信小程序)
- **移动端**:Uniapp(支持H5、APP、微信小程序)
- **状态管理**:Pinia
- **网络请求**:Axios
- **富文本**:WangEditor
@ -77,14 +75,15 @@ HongShu - 一款深度融合 AI 大模型能力的现代化社交电商平台,
</td>
<td width="33%">
#### 基础设施
#### 其他技术
- **容器化**:Docker、Docker Compose
- **反向代理**:Nginx
- **对象存储**:Minio、七牛云、阿里云、腾讯云
- **短信服务**:阿里云、腾讯云、云片
- **支付**:支付宝沙箱
- **支付**:支付宝、微信
- **监控**:SpringBoot Admin
- **文档**:Swagger
- **爬虫**:python
</td>
</table>
@ -93,99 +92,38 @@ HongShu - 一款深度融合 AI 大模型能力的现代化社交电商平台,
## 🌟 项目特色
| 功能模块 | 技术实现 | 创新点 |
|------|-----------------------------------------------------------------|---------------------------------|
| 智能推荐 | 轻量级推荐 + 协同过滤 + ES检索 动态切换 | ✅ 三套算法、新用户优化、性能<100ms |
| 即时通讯 | WebSocket + Netty + RocketMQ | ✅ 离线消息、多端同步、高并发支持 |
| 社交电商 | 笔记种草 + 商品转化 + 在线支付 | ✅ 价格区间推荐、同城优先、闭环转化 |
| 高并发优化 | Redis + RocketMQ 双通道 + 批量落库 | ✅ 性能提升20倍、数据库压力降低90% |
| AI大模型 | ChatGPT + DeepSeek + 多模型适配 | ✅ 8+模型支持、智能创作、对话系统 |
| 安全认证 | 双Token无感刷新 + JWT | ✅ 用户无感知、安全可靠 |
| 多云存储 | 本地 + Minio + 七牛云 + 阿里云 + 腾讯云 | ✅ 动态切换、后台配置 |
| 智能搜索 | ElasticSearch + MySQL 双引擎 | ✅ 多字段权重、模糊匹配 |
| LBS定位 | 高德地图 + IP定位 | ✅ 同城推荐、附近内容 |
| 在线支付 | 支付宝沙箱支付 | ✅ 完整支付流程 |
| 多端适配 | Web + App + 小程序 | ✅ 代码复用、统一API |
| 数据统计 | 用户增长、内容统计、交易分析 | ✅ 可视化图表、实时监控 |
---
## 📅 版本演进
> `💡 点击下方版本号可展开查看版本详情`
> [如需 Pro 版源码,👉 点击获取 👈](https://www.yuque.com/xiaomage-ippj7/kaoqwn/rqslw69egcbgx7v7?singleDoc#)
<details>
<summary><b>v1.0(Lite版)</b></summary>
- ✅ ES 智能查询
- ✅ 笔记随机推荐
- ✅ 图文笔记发布
- ✅ 本地存储、七牛云存储
- ✅ 基础审核机制
</details>
<details>
<summary><b>v2.0(Pro版)</b></summary>
- ✅ Uniapp 移动端(App + H5)
- ✅ 视频笔记支持
- ✅ Live Photo(动态图片)
- ✅ 多云存储方案(动态配置)
- ✅ 协同过滤推荐
</details>
<details>
<summary><b>v3.0(Pro版)</b></summary>
- ✅ SpringCloud 微服务架构
- ✅ Nacos 配置中心
- ✅ Netty 即时通讯系统
- ✅ 闲置商城(社交电商融合)
- ✅ 高德地图 LBS 定位
- ✅ Redis + RocketMQ 高并发优化
- ✅ WebSocket 离线消息推送
</details>
<details>
<summary><b>v4.0(Pro版)</b></summary>
- ✅ 支持扫码登录
- ✅ 8+ 主流AI大模型集成
- ✅ 智能对话系统
- ✅ AI辅助创作
- ✅ 微信小程序上线
- ✅ Arco Design 新版管理后台
- ✅ **轻量级推荐算法**(自研)
- 四维度混合召回
- 性能<100ms
</details>
<details>
<summary><b>v5.0(Pro版)</b>- 微信相关功能开发中</summary>
- ✅ 微信登录
- ✅ 微信支付
- ✅ 微信对话、朋友圈分享
</details>
| 功能模块 | 技术实现 | 创新点 |
|------|------------------------------|---------------------------------|
| 智能推荐 | 轻量级推荐 + 协同过滤 + ES检索 动态切换 | ✅ 三套算法、新用户优化、性能<100ms |
| 即时通讯 | WebSocket + Netty + RocketMQ | ✅ 离线消息、多端同步、高并发支持 |
| 社交电商 | 笔记种草 + 商品转化 + 在线支付 | ✅ 价格区间推荐、同城优先、闭环转化 |
| 高并发优化 | Redis + RocketMQ 双通道 + 批量落库 | ✅ 性能提升20倍、数据库压力降低90% |
| AI大模型 | ChatGPT + DeepSeek + 多模型适配 | ✅ 8+模型支持、智能创作、对话系统 |
| 安全认证 | 双Token无感刷新 + JWT | ✅ 用户无感知、安全可靠 |
| 多云存储 | 本地 + Minio + 七牛云 + 阿里云 + 腾讯云 | ✅ 动态切换、后台配置 |
| 智能搜索 | ElasticSearch + MySQL 双引擎 | ✅ 多字段权重、模糊匹配 |
| LBS定位 | 高德地图 + IP定位 | ✅ 同城推荐、附近内容 |
| 在线支付 | 支付宝支付、微信支付 | ✅ 完整支付流程 |
| 多端适配 | Web + App + 小程序 | ✅ 代码复用、统一API |
| 数据统计 | 用户增长、内容统计、交易分析 | ✅ 可视化图表、实时监控 |
---
## 🌐 演示站(微服务版本 - 演进更新)
> 💡 **温馨提示**: 服务器配置有限,如遇访问缓慢请耐心等待
### [👉 点击获取 Pro 版源码](https://www.yuque.com/xiaomage-ippj7/kaoqwn/rqslw69egcbgx7v7?singleDoc#)
> 💡 **温馨提示**: 因服务器配置有限,如遇访问缓慢请耐心等待
> `小龟速服务器正在奔跑中...`
| 端类型 | 访问方式 | 功能说明 | 推荐指数 |
|--------|------------------------------------------------------------------------------------------|--------|---------|
| **Web端** | [👉 点击访问](https://hongshu.website/) | 完整功能体验,PC最佳 | ⭐⭐⭐⭐⭐ |
| **管理端** | [👉 点击访问](https://hongshu.website/admin/) | 传统后台管理 | ⭐⭐⭐⭐ |
| **Arco管理端** | [👉 点击访问](https://hongshu.website/arco-admin/) | 现代化管理界面 | ⭐⭐⭐⭐⭐ |
| **移动端(H5)** | [👉 点击访问](https://hongshu.website/app/) 或 扫码体验 <img src="doc/images/h5.png" width="80"/> | 移动端最佳体验 | ⭐⭐⭐⭐⭐ |
| **微信小程序** | 体验版 <img src="doc/images/wxamp.png" width="80"/> | 小程序生态 | ⭐⭐⭐⭐⭐ |
| 端类型 | 访问方式 | 功能说明 |
|---------------|------------------------------------------------------------------------------------------|----------------|
| **Web端(响应式)** | [👉 点击查看(电脑)](https://hongshu.website/) | 完整功能,PC体验最佳 |
| **Arco管理端** | [👉 点击查看(电脑)](https://hongshu.website/arco-admin/) | 现代化管理界面,PC体验最佳 |
| **移动端(H5)** | [👉 点击查看](https://hongshu.website/app/) 或 扫码体验:<img src="doc/images/h5.png" width="80"/> | 移动端体验最佳 |
| **微信小程序** | 体验版:<img src="doc/images/wxamp.png" width="80"/> | 小程序生态 |
| **安卓** | 扫码下载:<img src="doc/images/Android.png" width="80"/> | 安卓端测试 |
| **IOS** | 暂无 | IOS端测试 |
---
@ -193,10 +131,10 @@ HongShu - 一款深度融合 AI 大模型能力的现代化社交电商平台,
<table>
<tr>
<td align="center" width="33%">
<td align="center" width="25%">
#### 🤝 项目定制 & 部署
<img src="doc/images/wx.png" width="200"/>
<img src="doc/images/wx.png" width="150"/>
- 项目部署指导
- 功能定制开发
@ -204,23 +142,23 @@ HongShu - 一款深度融合 AI 大模型能力的现代化社交电商平台,
- Bug修复服务
</td>
<td align="center" width="33%">
<td align="center" width="25%">
#### 💬 技术交流群
<img src="doc/images/qq.png" width="200"/>
#### 📂 项目资料
<img src="doc/images/gongzhonghao.jpg" width="150"/>
- 技术问题解答
- 学习资料分享
- 项目更新通知
- 优先内测资格
- 搭建部署文档
- 核心功能详解
- 架构图、时序图
- 开题报告、毕业论文
</td>
<td align="center" width="33%">
<td align="center" width="25%">
#### 💖 打赏支持
<img src="doc/images/pay.png" width="200"/>
**您的支持是我前进的动力!**
( 感谢小伙伴们的打赏~)
- 升级服务器配置
- 持续功能开发
- 提升访问速度
@ -237,13 +175,14 @@ HongShu - 一款深度融合 AI 大模型能力的现代化社交电商平台,
- **Gitee**: [https://gitee.com/Maverick_Ma/hongshu](https://gitee.com/Maverick_Ma/hongshu) (⭐ Star支持)
- **Github**: [https://github.com/Ma-YongJian/HongShu](https://github.com/Ma-YongJian/HongShu) (⭐ Star支持)
> **❤️ 如果这个项目对您有帮助,欢迎 Star & Fork 支持一下!** **您的 Star 是对我最大的鼓励!** 🌟
> **❤️ 如果这个项目对您有帮助,欢迎 Star & Fork 支持一下!** **您的 Star 是对我最大的鼓励!**
## 📚 项目文档
- [部署文档](https://www.yuque.com/xiaomage-ippj7/kaoqwn/zdgtgrco82vftbot?singleDoc#)
- [核心文档](https://www.yuque.com/xiaomage-ippj7/kaoqwn/chm8w6thvrmtnmbk)
> 都放在公众号里了,自取即可<br>
>
<img src="doc/images/gongzhonghao-search.png" width="400"/>
<br><img src="doc/images/doc.png" width="400"/>
## 🎬 视频演示
@ -253,6 +192,32 @@ HongShu - 一款深度融合 AI 大模型能力的现代化社交电商平台,
## 📷 演示图
### App端
<table>
<tr>
<td><img src="doc/images/app/app-login.png" width="300"/></td>
<td><img src="doc/images/app/app-follow.png" width="300"/></td>
<td><img src="doc/images/app/app-index.png" width="300"/></td>
<td><img src="doc/images/app/app-near.png" width="300"/></td>
<td><img src="doc/images/app/app-idle.png" width="300"/></td>
</tr>
<tr>
<td><img src="doc/images/app/app-chat.png" width="300"/></td>
<td><img src="doc/images/app/app-note.png" width="300"/></td>
<td><img src="doc/images/app/app-product.png" width="300"/></td>
<td><img src="doc/images/app/app-collect.png" width="300"/></td>
<td><img src="doc/images/app/app-order.png" width="300"/></td>
</tr>
<tr>
<td><img src="doc/images/app/app-message.png" width="300"/></td>
<td><img src="doc/images/app/app-message-chat.png" width="300"/></td>
<td><img src="doc/images/app/app-message-kefu.png" width="300"/></td>
<td><img src="doc/images/app/app-message-notice.png" width="300"/></td>
<td><img src="doc/images/app/app-mine.png" width="300"/></td>
</tr>
</table>
### Web端
<table>
@ -263,21 +228,24 @@ HongShu - 一款深度融合 AI 大模型能力的现代化社交电商平台,
</tr>
<tr>
<td><img src="doc/images/web/web-trends-note.png" width="500"/></td>
<td><img src="doc/images/web/web-trends-idle.png" width="500"/></td>
<td><img src="doc/images/web/web-publish.png" width="500"/></td>
<td><img src="doc/images/web/web-trends-product.png" width="500"/></td>
<td><img src="doc/images/web/web-ai.png" width="500"/></td>
</tr>
<tr>
<td><img src="doc/images/web/web-message.png" width="500"/></td>
<td><img src="doc/images/web/web-message-idle.png" width="500"/></td>
<td><img src="doc/images/web/web-message-comment.png" width="500"/></td>
</tr>
<tr>
<td><img src="doc/images/web/web-publish-map.png" width="500"/></td>
<td><img src="doc/images/web/web-publish.png" width="500"/></td>
<td><img src="doc/images/web/web-publish-img.png" width="500"/></td>
<td><img src="doc/images/web/web-publish-video.png" width="500"/></td>
</tr>
<tr>
<td><img src="doc/images/web/web-message-comment.png" width="500"/></td>
<td><img src="doc/images/web/web-message-like.png" width="500"/></td>
<td><img src="doc/images/web/web-message-kefu.png" width="500"/></td>
<td><img src="doc/images/web/web-message-notice.png" width="500"/></td>
<td><img src="doc/images/web/web-user.png" width="500"/></td>
</tr>
<tr>
</tr>
</table>
### 管理端
@ -289,51 +257,37 @@ HongShu - 一款深度融合 AI 大模型能力的现代化社交电商平台,
<td><img src="doc/images/admin/admin-data-map.png" width="500"/></td>
</tr>
<tr>
<td><img src="doc/images/admin/admin-navbar.png" width="500"/></td>
<td><img src="doc/images/admin/admin-member.png" width="500"/></td>
<td><img src="doc/images/admin/admin-note.png" width="500"/></td>
<td><img src="doc/images/admin/admin-idle.png" width="500"/></td>
</tr>
<tr>
<td><img src="doc/images/admin/admin-member.png" width="500"/></td>
<td><img src="doc/images/admin/admin-album.png" width="500"/></td>
<td><img src="doc/images/admin/admin-config.png" width="500"/></td>
<td><img src="doc/images/admin/admin-note-navbar.png" width="500"/></td>
<td><img src="doc/images/admin/admin-idle-navbar.png" width="500"/></td>
<td><img src="doc/images/admin/admin-note-comment.png" width="500"/></td>
</tr>
<tr>
<td><img src="doc/images/admin/admin-idle-order.png" width="500"/></td>
<td><img src="doc/images/admin/admin-kefu.png" width="500"/></td>
<td><img src="doc/images/admin/admin-gpt.png" width="500"/></td>
<td><img src="doc/images/admin/admin-gpt-login.png" width="500"/></td>
<td><img src="doc/images/admin/admin-gpt-chat.png" width="500"/></td>
</tr>
</table>
### App端
<table>
<tr>
<td><img src="doc/images/app/app-login.png" width="300"/></td>
<td><img src="doc/images/app/app-index.png" width="300"/></td>
<td><img src="doc/images/app/app-follow.png" width="300"/></td>
<td><img src="doc/images/app/app-near.png" width="300"/></td>
</tr>
<tr>
<td><img src="doc/images/app/app-idle.png" width="300"/></td>
<td><img src="doc/images/app/app-user.png" width="300"/></td>
<td><img src="doc/images/app/app-main.png" width="300"/></td>
<td><img src="doc/images/app/app-user-mine.png" width="300"/></td>
</tr>
<tr>
<td><img src="doc/images/app/app-message.png" width="300"/></td>
<td><img src="doc/images/app/app-message-follow.png" width="300"/></td>
<td><img src="doc/images/app/app-message-comment.png" width="300"/></td>
<td><img src="doc/images/app/app-message-like.png" width="300"/></td>
<td><img src="doc/images/admin/admin-config.png" width="500"/></td>
<td><img src="doc/images/admin/admin-config-api.png" width="500"/></td>
<td><img src="doc/images/admin/admin-config-pachong.png" width="500"/></td>
</tr>
</table>
## 🙏 致谢
- [若依 RuoYi](https://gitee.com/y_project/RuoYi)
- [蘑菇博客](https://gitee.com/moxi159753/mogu_blog_v2)
- [xiaozhao 仿小红书前端](https://gitee.com/xzjsccz/xiaohongshu)
- [Chat MASTER](https://gitee.com/panday94/chat-master)
**来因LiveIn** 项目参考了很多开源项目的解决方案,开源不易,感谢分享
- 感谢 **若依** 提供的RuoYi项目:[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) 、 [RuoYi-Cloud](https://gitee.com/y_project/RuoYi-Cloud)
- 感谢 **dromara** 提供的RuoYi-plus项目:[RuoYi-Vue-Plus](https://gitee.com/dromara/RuoYi-Vue-Plus) 、 [RuoYi-Cloud-Plus](https://gitee.com/dromara/RuoYi-Cloud-Plus)
- 感谢 **陌溪** 提供的博客项目:[蘑菇博客](https://gitee.com/moxi159753/mogu_blog_v2)
- 感谢 **xiaozhao** 提供的:[仿小红书前端](https://gitee.com/xzjsccz/xiaohongshu) 、 [yanhuo后端](https://gitee.com/xzjsccz/yanhuo-springboot-vue)
- 感谢 **panday** 提供的:[Chat MASTER](https://gitee.com/panday94/chat-master)
- 感谢 **belief-team** 提供的:[AJ-Captcha](https://gitee.com/belief-team/captcha)
- <img src="./doc/images/qiniu.jpg" width="80" />感谢 [七牛云](https://portal.qiniu.com/signup?utm_source=kaiyuan&utm_media=mogu) 提供的免费云存储和CDN服务
- <img src="./doc/images/jetbrains.png" width="40" />感谢 [jetbrains](https://www.jetbrains.com/?from=mogu_blog_v2) 提供的开源License
- <img src="./doc/images/jetbrains.png" width="30" />感谢 [jetbrains](https://www.jetbrains.com/?from=mogu_blog_v2) 提供的开源License
- 感谢 [百度千帆大模型](https://ai.baidu.com/ai-doc/ANTIPORN/ek3h6x90n) 提供的图像/视频审核策略

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 460 KiB

After

Width:  |  Height:  |  Size: 465 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 841 KiB

After

Width:  |  Height:  |  Size: 872 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 715 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 977 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 429 KiB

After

Width:  |  Height:  |  Size: 421 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 682 KiB

After

Width:  |  Height:  |  Size: 763 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 711 KiB

After

Width:  |  Height:  |  Size: 687 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 762 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 849 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 750 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

After

Width:  |  Height:  |  Size: 818 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 769 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 670 KiB

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 953 KiB

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 441 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 817 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 313 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 461 KiB

After

Width:  |  Height:  |  Size: 568 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 431 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1003 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 478 KiB

After

Width:  |  Height:  |  Size: 505 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 MiB

After

Width:  |  Height:  |  Size: 5.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 MiB

After

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 MiB

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 524 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 524 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 922 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 MiB

After

Width:  |  Height:  |  Size: 2.4 MiB

@ -134,6 +134,18 @@
<groupId>co.elastic.clients</groupId>
<artifactId>elasticsearch-java</artifactId>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
</dependency>
<dependency>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-api</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.parsson</groupId>
<artifactId>parsson</artifactId>
</dependency>
<!-- gson-->
<dependency>
<groupId>com.google.code.gson</groupId>

@ -8,7 +8,7 @@ spring:
master:
url: jdbc:mysql://localhost:3306/hongshu_springboot?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8
username: root
password: Myj950501
password: 123456
# 从库数据源
slave:
# 从数据源开关/默认关闭

@ -75,7 +75,7 @@ spring:
# 数据库索引
database: 0
# 密码
password: Myj950501
password:
# 连接超时时间
timeout: 10s
lettuce:

@ -300,6 +300,10 @@ public class WebEsNoteServiceImpl extends ServiceImpl<WebNoteMapper, WebNote> im
@Override
public void addNoteBulkData() {
List<WebNote> noteList = noteMapper.selectList(new QueryWrapper<WebNote>().eq("audit_status", 1));
if (CollectionUtil.isEmpty(noteList)) {
log.info("数据库中没有需要同步的笔记数据,跳过批量插入。");
return;
}
List<NoteSearchVO> noteSearchVOList = DozerUtil.convertor(noteList, NoteSearchVO.class);
for (NoteSearchVO noteSearchVo : noteSearchVOList) {
WebUser user = userMapper.selectOne(new QueryWrapper<WebUser>().like("id", noteSearchVo.getUid()));

@ -41,7 +41,7 @@
<jwt.version>0.9.1</jwt.version>
<lombok.version>1.18.24</lombok.version>
<hutool.version>5.7.22</hutool.version>
<elasticsearch-version>8.1.0</elasticsearch-version>
<elasticsearch.version>8.13.4</elasticsearch.version>
<guava.version>20.0</guava.version>
<gson.version>2.9.0</gson.version>
<mybatisplus.version>3.5.2</mybatisplus.version>
@ -156,8 +156,24 @@
<dependency>
<groupId>co.elastic.clients</groupId>
<artifactId>elasticsearch-java</artifactId>
<version>${elasticsearch-version}</version>
<version>${elasticsearch.version}</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
<version>${elasticsearch.version}</version>
</dependency>
<dependency>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-api</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.eclipse.parsson</groupId>
<artifactId>parsson</artifactId>
<version>1.0.5</version>
</dependency>
<!-- guava-->
<dependency>
<groupId>com.google.guava</groupId>

Loading…
Cancel
Save