# 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` 角色关联。 --- ## 演示图
暂无
--- ## 求打赏 ![求打赏](pay.png) ## 📄 许可证 本项目基于 [RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) 构建,遵循其 MIT 开源协议。 RuoYi Copyright © 2018-2026 ruoyi