# anzheng-cloud
**Repository Path**: magic2060/anzheng-cloud
## Basic Information
- **Project Name**: anzheng-cloud
- **Description**: 若依 master 默认分支 Spring Boot 4.x (JDK 17+) https://gitee.com/y_project/RuoYi-Vue 使用最新版实现
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-08-06
- **Last Updated**: 2026-08-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
安政云宣平台
AnZheng Cloud Platform — 基于若依框架的公安门户发布与管理解决方案
---
## 📖 平台是做什么的
**安政云宣平台** 是面向公安机关的综合门户发布与管理解决方案,基于 [RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) v3.9.2 构建,采用 Spring Boot + Vue 前后端分离架构。平台由三个部分组成:
| 端 | 说明 |
| :--- | :--- |
| **管理后台** (`anzheng-ui-v3ts`) | 内容创作者使用。提供富文本文章创作、栏目/轮播图/友链管理,首页为统计看板,展示发布次数及一年/一月/一周趋势 |
| **门户前台** (`anzheng-portal-ui`) | 公众访问的公安门户网站。公安蓝 + 警红 + 金色配色,年轻化设计,包含轮播、数据看板、警务要闻、便民服务等 |
| **后端服务** (`anzheng-admin`) | 统一后端,集成若依基础模块 + 门户业务模块 + 统计分析模块 |
### 核心能力一览
- **内容创作(富文本)**:管理后台集成富文本编辑器,支持图文混排、发布/撤回、置顶/推荐、浏览统计
- **管理首页统计看板**:KPI 总览卡片 + 文章发布趋势图(近一周/本月/本年切换)+ 栏目分布饼图 + 浏览排行 + 发布人统计
- **公安门户前台**:现代化 UI,渐变玻璃拟态效果,响应式自适应
- **若依全栈基础**:用户/角色/菜单/部门/字典/日志/定时任务/代码生成等开箱即用
---
## 🏗️ 项目来源
本项目基于 **[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue)** v3.9.2 构建,在此之上扩展了公安门户业务与统计分析模块。
| 模板来源 | 说明 |
| :--- | :--- |
| **后端框架** | [RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) — Spring Boot 4.x (JDK 22+) |
| **管理后台前端** | [RuoYi-Vue3-TypeScript](https://gitcode.com/yangzongzhuan/RuoYi-Vue3/tree/typescript) — Vue 3 + TypeScript + Element Plus + Vite |
| **门户前端** | 本项目自建 — Vue 3 + TypeScript + SCSS + Vite,公安风格独立设计 |
> 若依是一套**全部开源**的 Java EE 快速开发平台,基于 Spring Boot + Vue 前后端分离架构,提供用户管理、权限控制、代码生成等基础能力。
---
## 📋 内置功能
### 🏛️ 若依基础功能
用户管理、部门管理、岗位管理、菜单管理、角色管理、字典管理、参数管理、通知公告、操作日志、登录日志、在线用户、定时任务、代码生成、系统接口、服务监控、缓存监控、连接池监视。
### 🌐 门户扩展功能(anzheng-portal 模块)
| 功能 | 说明 |
| :--- | :--- |
| **栏目管理** | 树形结构栏目分类,支持文章列表/单页面/外部链接三种类型 |
| **文章管理** | 富文本编辑,支持发布/撤回,置顶/推荐,浏览次数统计 |
| **轮播图管理** | 首页大图轮播,支持标题、副标题和链接 |
| **友情链接** | 政府网站和友情链接分类管理 |
| **页面配置** | 站点名称、LOGO、备案号、版权信息等全局配置 |
| **门户公开API** | `@Anonymous` 公开接口,供门户前端调用,无需登录认证 |
### 📊 统计分析功能(anzheng-statistics 模块)
管理后台首页统计看板,提供以下数据展示:
| 功能 | 说明 |
| :--- | :--- |
| **KPI 总览卡片** | 文章总数、已发布/草稿/撤回数、栏目/轮播/链接数、总浏览量、今日/本周/本月/本年发布数 |
| **发布趋势图** | 折线面积图,支持「近一周 / 本月 / 本年」三种时间维度切换 |
| **栏目分布** | 饼图展示各栏目文章数量占比 |
| **浏览排行** | 柱状图/列表展示文章浏览次数 Top N |
| **发布人统计** | 统计各创作者发布文章数量排行 |
> 统计看板权限标识:`statistics:dashboard:view`,通过菜单 `portal_menu_20260809.sql` 配置。
---
## 🛠️ 技术栈
| 层级 | 技术 | 版本 |
| :--- | :--- | :--- |
| **后端框架** | Spring Boot | 4.0.6 |
| **JDK** | Java | 22 |
| **ORM** | MyBatis + PageHelper | 4.0.1 / 4.1.0 |
| **数据库** | MySQL | 8.0+ |
| **缓存** | Redis | — |
| **连接池** | Druid | 1.2.28 |
| **权限** | Spring Security + JWT | — |
| **API文档** | SpringDoc (Swagger 3) | 3.0.3 |
| **管理后台前端** | Vue 3 + TypeScript + Element Plus + ECharts + Vite | — |
| **门户前端** | Vue 3 + TypeScript + SCSS + Vite | — |
---
## 📁 项目结构
```
anzheng-cloud/
├── anzheng-admin/ 管理后台主应用(后端启动入口)
├── anzheng-framework/ 核心框架模块(Security/Redis/MyBatis 配置)
├── anzheng-system/ 系统管理业务模块
├── anzheng-common/ 通用工具模块
├── anzheng-quartz/ 定时任务模块
├── anzheng-generator/ 代码生成器模块
│
├── anzheng-portal/ 【新增】门户后端模块
│ └── src/main/java/com/anzheng/portal/
│ ├── domain/ 实体类(PortalArticle / PortalCategory / PortalCarousel / PortalLink / PortalPageConfig)
│ ├── mapper/ MyBatis 接口 + XML 映射
│ ├── service/ 业务逻辑层
│ └── controller/ 控制器(管理端 + 公开 API)
│
├── anzheng-statistics/ 【新增】统计分析模块
│ └── src/main/java/com/anzheng/statistics/
│ ├── domain/ 统计数据对象(StatisticsOverview / TrendItem / CategoryStat / ArticleRankItem / AuthorStat)
│ ├── mapper/ 统计查询 Mapper
│ ├── service/ 统计业务逻辑
│ └── controller/ 统计 API(/statistics/dashboard 等接口)
│
├── anzheng-ui-v3ts/ 管理后台前端(Vue3 + TS + Element Plus)
│ └── src/
│ ├── views/statistics/ 【新增】统计看板首页(ECharts 可视化)
│ ├── views/portal/ 【新增】门户内容管理(文章/栏目/轮播/友链/配置)
│ ├── api/statistics/ 统计接口封装
│ └── api/portal/ 门户管理接口封装
│
├── anzheng-portal-ui/ 【新增】门户网站前台(Vue3 + TS)
│ └── src/
│ ├── components/ 公共组件(AppHeader / AppFooter / HeroCarousel)
│ ├── views/ 页面(HomePage / ArticleList / ArticleDetail / SearchPage / SinglePage / AboutPage / NotFound)
│ ├── api/ 接口封装(axios)
│ ├── types/ TypeScript 类型定义
│ ├── router/ 路由配置
│ └── assets/styles/ 全局样式(公安蓝配色系统 + 年轻化美化)
│
└── sql/
├── ry_20260417.sql 若依基础建表脚本
├── quartz.sql 定时任务建表脚本
├── portal_20260806.sql 【新增】门户业务表(5张表 + 演示数据)
└── portal_menu_20260809.sql【新增】门户管理与统计看板菜单 + 角色权限
```
---
## 🚀 部署启动
### 环境要求
| 软件 | 版本要求 | 说明 |
| :--- | :--- | :--- |
| JDK | 22+ | 后端运行环境 |
| Maven | 3.6+ | 后端依赖管理与构建 |
| MySQL | 8.0+ | 数据库 |
| Redis | 任意稳定版 | 缓存(登录态、字典、限流等) |
| Node.js | 18+ | 前端构建环境 |
### 一、数据库初始化
依次执行以下 SQL 文件(按顺序,后者的菜单依赖前者):
```bash
# 1. 若依基础表(用户/角色/菜单/字典等)
mysql -u root -p < sql/ry_20260417.sql
# 2. 定时任务表
mysql -u root -p < sql/quartz.sql
# 3. 门户业务表(含演示数据)
mysql -u root -p < sql/portal_20260806.sql
# 4. 门户管理与统计看板菜单 + 角色权限
mysql -u root -p < sql/portal_menu_20260809.sql
```
### 二、后端配置与启动
**1. 配置数据库连接**
编辑 `anzheng-admin/src/main/resources/application-druid.yml`,修改数据库连接信息:
```yaml
spring:
datasource:
druid:
master:
url: jdbc:mysql://localhost:3306/anzheng_cloud_vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 123456 # 改为你的数据库密码
```
**2. 配置 Redis**
编辑 `anzheng-admin/src/main/resources/application.yml`,修改 Redis 配置:
```yaml
spring:
data:
redis:
host: localhost
port: 6379
password: root # 改为你的 Redis 密码(无密码则删除此行)
```
**3. 配置文件上传路径**(同 `application.yml`)
```yaml
ruoyi:
profile: D:/ruoyi/uploadPath # Windows 路径;Linux 改为 /home/ruoyi/uploadPath
```
**4. 编译启动后端**
```bash
# 在项目根目录执行(首次需全量编译)
mvn clean install -DskipTests
# 启动后端服务
mvn spring-boot:run -pl anzheng-admin
```
> 也可以用 IDE(IDEA / VS Code)直接运行 `anzheng-admin` 模块的 `com.anzheng.RuoYiApplication.java`。
启动成功后:
- 管理后台接口:http://localhost:8080
- Swagger 文档:http://localhost:8080/swagger-ui.html
- Druid 监控:http://localhost:8080/druid (账号 `ruoyi` / 密码 `123456`)
> 默认管理员账号:**admin** / **admin123**
### 三、管理后台前端启动
```bash
cd anzheng-ui-v3ts
# 安装依赖(推荐使用国内镜像加速)
npm install --registry=https://registry.npmmirror.com
# 启动开发服务器(默认端口 80,代理 /dev-api 到 localhost:8080)
npm run dev
```
访问:http://localhost (具体端口见终端输出)
登录后,首页即为**统计看板**,左侧菜单包含「门户管理」(文章/栏目/轮播图/友链/配置)。
### 四、门户前台启动
```bash
cd anzheng-portal-ui
# 安装依赖
npm install --registry=https://registry.npmmirror.com
# 启动开发服务器(端口 81,代理 /portal/api 到 localhost:8080)
npm run dev
```
访问:http://localhost:81/portal/
> 门户前端通过 Vite 代理将 `/portal/api` 请求转发到后端 `http://localhost:8080`,开发时无需额外配置跨域。
---
## 💻 本地启动(快速流程)
假设环境已就绪(JDK22 / Maven / MySQL / Redis / Node18+),本地开发完整启动顺序:
```bash
# ===== 1. 数据库(仅首次) =====
mysql -u root -p < sql/ry_20260417.sql
mysql -u root -p < sql/quartz.sql
mysql -u root -p < sql/portal_20260806.sql
mysql -u root -p < sql/portal_menu_20260809.sql
# ===== 2. 启动 Redis =====
redis-server
# ===== 3. 启动后端(终端1) =====
mvn clean install -DskipTests
mvn spring-boot:run -pl anzheng-admin
# ===== 4. 启动管理后台前端(终端2) =====
cd anzheng-ui-v3ts
npm install --registry=https://registry.npmmirror.com
npm run dev # → http://localhost (admin / admin123)
# ===== 5. 启动门户前台(终端3) =====
cd anzheng-portal-ui
npm install --registry=https://registry.npmmirror.com
npm run dev # → http://localhost:81/portal/
```
---
## 📦 生产打包部署
### 后端打包
```bash
mvn clean package -DskipTests
# 产物:anzheng-admin/target/anzheng-admin.jar
java -jar anzheng-admin/target/anzheng-admin.jar
```
### 管理后台前端打包
```bash
cd anzheng-ui-v3ts
npm install --registry=https://registry.npmmirror.com
npm run build:prod
# 产物:anzheng-ui-v3ts/dist/ → 部署到 Nginx
```
### 门户前台打包
```bash
cd anzheng-portal-ui
npm install --registry=https://registry.npmmirror.com
npm run build
# 产物:anzheng-portal-ui/dist/ → 部署到 Nginx(注意 base 路径 /portal/)
```
### Nginx 参考配置
```nginx
server {
listen 80;
server_name your-domain.com;
# 管理后台
location / {
root /opt/anzheng/admin-ui;
try_files $uri $uri/ /index.html;
}
# 门户前台
location /portal/ {
alias /opt/anzheng/portal-ui/;
try_files $uri $uri/ /portal/index.html;
}
# 后端 API 代理
location /prod-api/ {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
---
## 🎨 门户网站设计说明
门户网站采用**公安政务风格** + **年轻化美化**设计:
| 设计要素 | 说明 |
| :--- | :--- |
| **主色调** | 公安蓝 `#0D3B6F`,沉稳庄重 |
| **辅色** | 警红 `#C41230`(标题装饰、标签),金色 `#C9A96E`(点缀、徽章) |
| **渐变体系** | 蓝金双色渐变按钮、卡片悬浮渐变填充、标题金色装饰条 |
| **玻璃拟态** | 轮播指示器、导航按钮采用 backdrop-filter 毛玻璃效果 |
| **布局** | 通栏轮播 → 数据看板 → 快速入口 → 三栏内容 → 图说警营 |
| **交互** | 卡片悬浮渐变、列表圆点指示、图片缩放、平滑过渡动画 |
| **响应式** | 自适应桌面端 / 平板 / 手机 |
门户 API 使用 `@Anonymous` 注解,所有接口无需登录即可访问,不经过 Spring Security 权限拦截。
---
## 🔧 开发约定
1. **模块化**:新业务功能必须创建独立模块(如 `anzheng-portal`、`anzheng-statistics`),通过 `anzheng-admin` 的 `pom.xml` 引入依赖,禁止直接修改现有模块代码。
2. **代码风格**:Java 代码严格遵循若依平台规范(继承 `BaseEntity` / `BaseController`),前端组件适度封装复用。
3. **数据库**:新建业务表统一遵循若依字段命名风格(`create_by`、`create_time`、`update_by`、`update_time`、`remark`、`del_flag`)。
4. **菜单权限**:新增菜单统一通过 SQL 脚本写入 `sys_menu`,并配置 `sys_role_menu` 角色关联。
---
## 演示图
---
## 求打赏

## 📄 许可证
本项目基于 [RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) 构建,遵循其 MIT 开源协议。
RuoYi Copyright © 2018-2026 ruoyi