From c6db211d4035f4af1054e16accff789808644c0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=AA=8F=E6=9D=B0?= <3255658749@qq.com> Date: Sat, 27 Sep 2025 09:54:28 +0800 Subject: [PATCH 001/120] =?UTF-8?q?=E6=A0=8F=E7=9B=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/controller/ConlumnController.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/controller/ConlumnController.java b/ruoyi-admin/src/main/java/com/ruoyi/controller/ConlumnController.java index e1128f6..a96b907 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/controller/ConlumnController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/controller/ConlumnController.java @@ -273,7 +273,10 @@ public class ConlumnController extends BaseController @Log(title = "栏目管理", businessType = BusinessType.INSERT) @PostMapping("/addMe") public AjaxResult addMenu(@RequestBody ConlumnMenu conlumnMenu) { - return AjaxResult.success(conlumnMenuService.save(conlumnMenu)); + if (conlumnMenuService.save(conlumnMenu)){ + return AjaxResult.success(conlumnMenu.getId()); + } + return AjaxResult.error("添加失败"); } -- Gitee From 53ffd656864e0bcc10c07c13946cf09c5b9e5436 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=AA=8F=E6=9D=B0?= <3255658749@qq.com> Date: Sat, 27 Sep 2025 14:40:10 +0800 Subject: [PATCH 002/120] =?UTF-8?q?=E6=A0=8F=E7=9B=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/controller/ConlumnController.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/controller/ConlumnController.java b/ruoyi-admin/src/main/java/com/ruoyi/controller/ConlumnController.java index a96b907..ca7a20d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/controller/ConlumnController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/controller/ConlumnController.java @@ -251,6 +251,11 @@ public class ConlumnController extends BaseController return success(conlumnService.getById(id)); } + @GetMapping( "/getConlumnMe/{id}") + public AjaxResult getConlumn(@PathVariable("id") Integer id) { + return AjaxResult.success(conlumnMenuService.getById(id)); + } + @GetMapping("/listMe") public AjaxResult list() { return AjaxResult.success(conlumnMenuService.list()); -- Gitee From 4cadbbf1f965bf77fc4d3549fa2e370c1bb5fc97 Mon Sep 17 00:00:00 2001 From: gitYA <2928526103@qq.com> Date: Sun, 28 Sep 2025 01:13:19 +0800 Subject: [PATCH 003/120] =?UTF-8?q?=E4=BF=AE=E5=A4=8DPDF=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=9C=A8=E4=B8=89=E4=B8=AA=E5=9C=BA=E6=99=AF?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E5=AE=9E=E7=8E=B0=EF=BC=9A1.=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E4=BF=AE=E6=94=B9article=202.=E4=BB=8E=E8=8D=89?= =?UTF-8?q?=E7=A8=BF=E7=AE=B1=E5=8F=91=E5=B8=83=E5=88=B0article=203.?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E6=96=87=E7=AB=A0=E6=96=B0=E5=A2=9E=E5=88=B0?= =?UTF-8?q?article?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .claude/settings.local.json | 42 + CLAUDE.md | 314 +++++ add_attachment_to_article.sql | 2 + add_attachment_to_draft_article.sql | 2 + add_attachment_to_uncheck_draft.sql | 2 + add_pdf_image_paths_field.sql | 5 + add_pdf_image_paths_to_article.sql | 2 + add_pubdate_to_river_news.sql | 1 + add_sort_order_to_partyclass.sql | 39 + attachment_field_fix_documentation.md | 23 + migrate_river_view_to_partyclass.sql | 17 + .../controller/ArticleUncheckController.java | 18 +- .../service/impl/ArticleServiceImpl.java | 33 +- .../service/impl/DraftArticleServiceImpl.java | 13 + ...3_1530__create_column_permission_table.sql | 34 + sql/add_dept_name_to_uncheck_draft.sql | 2 + sql/create_draft_article_table.sql | 24 + sql/create_uncheck_draft_table.sql | 23 + update_draft_article_attachment_default.sql | 2 + update_recover_station_valid_date.sql | 1 + update_uncheck_draft_attachment_default.sql | 2 + .../image-20250915232653074.png" | Bin 0 -> 15437 bytes ...64\346\230\216\346\226\207\346\241\243.md" | 1200 +++++++++++++++++ ...64\346\230\216\346\226\207\346\241\243.md" | 695 ++++++++++ ...71\350\277\233\350\257\264\346\230\216.md" | 35 + ...13\350\257\225\346\214\207\345\215\227.md" | 77 ++ ...36\347\216\260\346\200\273\347\273\223.md" | 43 + ...13\350\257\225\346\214\207\345\215\227.md" | 53 + 28 files changed, 2701 insertions(+), 3 deletions(-) create mode 100644 .claude/settings.local.json create mode 100644 CLAUDE.md create mode 100644 add_attachment_to_article.sql create mode 100644 add_attachment_to_draft_article.sql create mode 100644 add_attachment_to_uncheck_draft.sql create mode 100644 add_pdf_image_paths_field.sql create mode 100644 add_pdf_image_paths_to_article.sql create mode 100644 add_pubdate_to_river_news.sql create mode 100644 add_sort_order_to_partyclass.sql create mode 100644 attachment_field_fix_documentation.md create mode 100644 migrate_river_view_to_partyclass.sql create mode 100644 ruoyi-admin/src/main/resources/db/migration/V20250903_1530__create_column_permission_table.sql create mode 100644 sql/add_dept_name_to_uncheck_draft.sql create mode 100644 sql/create_draft_article_table.sql create mode 100644 sql/create_uncheck_draft_table.sql create mode 100644 update_draft_article_attachment_default.sql create mode 100644 update_recover_station_valid_date.sql create mode 100644 update_uncheck_draft_attachment_default.sql create mode 100644 "\346\262\263\351\201\223\347\256\241\347\220\206\347\263\273\347\273\237\345\212\237\350\203\275\350\257\264\346\230\216\346\226\207\346\241\243.assets/image-20250915232653074.png" create mode 100644 "\346\262\263\351\201\223\347\256\241\347\220\206\347\263\273\347\273\237\345\212\237\350\203\275\350\257\264\346\230\216\346\226\207\346\241\243.md" create mode 100644 "\346\262\263\351\201\223\347\256\241\347\220\206\347\263\273\347\273\237\347\224\250\346\210\267\344\275\277\347\224\250\345\234\272\346\231\257\350\257\264\346\230\216\346\226\207\346\241\243.md" create mode 100644 "\350\215\211\347\250\277\345\212\237\350\203\275\346\224\271\350\277\233\350\257\264\346\230\216.md" create mode 100644 "\351\231\204\344\273\266\344\270\212\344\274\240\345\212\237\350\203\275\346\265\213\350\257\225\346\214\207\345\215\227.md" create mode 100644 "\351\231\204\344\273\266\344\270\212\344\274\240\345\222\214\351\242\204\350\247\210\345\212\237\350\203\275\345\256\236\347\216\260\346\200\273\347\273\223.md" create mode 100644 "\351\231\204\344\273\266\344\270\213\350\275\275\346\214\211\351\222\256\345\212\237\350\203\275\346\265\213\350\257\225\346\214\207\345\215\227.md" diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..8b0f7d9 --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,42 @@ +{ + "permissions": { + "allow": [ + "Bash(mysql:*)", + "Bash(mvn clean compile:*)", + "Bash(gradle --version:*)", + "Bash(whereis:*)", + "Bash(where:*)", + "Bash(findstr:*)", + "Bash(java:*)", + "Bash(git checkout:*)", + "Bash(git restore:*)", + "Bash(find:*)", + "Bash(cat:*)", + "Bash(dir:*)", + "Read(//d/**)", + "Bash(mvn compile:*)", + "Bash(mvn spring-boot:run:*)", + "Read(//c/Users/29285/.m2/repository/**)", + "Bash(cd:*)", + "Bash(npm run dev:*)", + "Bash(sed:*)", + "Bash(grep:*)", + "Bash(awk:*)", + "Bash(del:*)", + "WebSearch", + "Bash(curl:*)", + "Bash(npm run build:*)", + "Bash(npm run:*)", + "Read(//d//**)", + "Bash(gradle clean build:*)", + "Bash(git reset:*)", + "Bash(git revert:*)", + "Bash(git commit:*)", + "Bash(git merge-base:*)", + "Bash(git cherry-pick:*)", + "Bash(git add:*)" + ], + "deny": [], + "ask": [] + } +} \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..d6afff1 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,314 @@ +# River13河道管理系统项目记忆 + + + +  ## 项目基本信息 + +  - 项目名称:River13河道管理系统 + +  - 项目框架:Ruoyi框架 + +  - 主要功能:文章管理、审核管理、部门权限控制 + +  - 主要修改模块:uncheck模块(未审核文章管理) + + + +  ## 技术栈 + +  - 后端:Java、Spring Boot、MyBatis + +  - 前端:Vue.js、Element UI + +  - 数据库:MySQL + +  - 文件存储:阿里云OSS + + + +  ## 权限控制逻辑 + +  - admin用户:超级管理员,可查看所有数据 + +  - 市局/总局用户:可查看所有分局数据,可进行条件查询 + +  - 分局用户:只能查看自己分局的数据,通过articleOrigin字段过滤 + +  - 分局用户在list和list2接口中都受到部门权限限制 + +  - 分局用户在list接口中还受到栏目权限限制 + + + +  ## 关键文件路径 + +  - 后端Controller:ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleUncheckController.java + +  - 后端Service:ruoyi-admin/src/main/java/com/ruoyi/service/impl/ArticleUncheckServiceImpl.java + +  - 后端Mapper:ruoyi-admin/src/main/resources/mapper/uncheck/ArticleUncheckMapper.xml + +  - 前端页面:ruoyi-ui/src/views/uncheck/uncheck/index.vue + +  - 前端API:ruoyi-ui/src/api/uncheck/uncheck.js + + + +  ## 已完成的修改 + +  1. 修复了分局用户在list和list2接口中的权限控制逻辑 + +  2. 确保分局用户只能查看自己所属分局的数据 + +  3. 修复了Mapper中的SQL语法错误 + +  4. 移除了分局用户前端界面中的文章来源查询功能 + +  5. 实现了getDeptArticleOrigin方法来正确获取分局名称 + + + +# 项目历史对话和视频功能实现记录 + +## 项目概述 + +本项目是一个基于Ruoyi框架的视频管理系统,主要实现了视频排序功能。 + +## 已实现功能 + +1. 视频按类型独立排序 +2. 视频上下移动操作 +3. 视频置顶操作 +4. 跨分页排序支持 +5. 后台列表按排序值显示 + +## 核心实现细节 + +### 数据库设计 + +- 添加了sort_order字段用于视频排序 +- 每个视频类型维护独立的排序序列 + +### 后端实现 + +- Controller层提供了moveUp、moveDown、moveToTop等接口 +- Service层实现了具体的排序逻辑 +- Mapper层包含了相关的SQL查询语句 + +### 前端实现 + +- 添加了置顶、上移、下移操作按钮 +- 实现了表格按排序值显示 +- 提供了相应的API调用逻辑 + +## 重要文件位置 + +- 视频排序开发文档: C:\Users\29285\Desktop\视频排序功能开发文档.md + +## 历史问题记录 + +1. 修复了前端API函数未导入的问题 +2. 解决了后端Mapper参数名称不匹配的问题 +3. 修正了SQL语法错误 +4. 修复了int类型比较的错误 + +## 已完成任务 + +- 实现了视频排序功能的所有核心逻辑 +- 生成了详细的开发文档 +- 解决了所有已知的bug和问题 + +# 草稿箱功能实现记录 + +## 功能需求 +1. 已审核那里草稿箱,不用做权限控制,反正只有市局能看到这个导航栏进行操作 +2. 新增可以将文章先放入到草稿箱,此时这个文章属于没有发布的状态,所以列表就不能显示这篇未发布处于草稿箱的文章(能不能建个单独的草稿箱,逻辑回更好一点,草稿箱里面点击发布就可以降草稿箱里面的文章发布到article中了,修改也挺方便的。) +3. 如果是修改已存在的文章,那么如果我没有修改完,我可以存放在草稿箱里,我在草稿箱继续修改完后,可以发布,就更新这条对应的数据。 +4. 草稿箱最好搞个可以删除草稿的功能 +5. 新增修改没有上传审批表要提醒哦 + +## 技术实现 + +### 后端实现 +1. 在Article实体类中添加draft字段(0-已发布,1-草稿) +2. 在ArticleController中添加四个草稿相关接口: + - saveDraft:保存草稿 + - updateDraft:更新草稿 + - publishDraft:发布草稿 + - listDraft:查询草稿列表 +3. 在ArticleService中添加selectDraftList方法声明 +4. 在ArticleServiceImpl中实现selectDraftList方法 +5. 在ArticleMapper中添加selectDraftList方法声明 +6. 在ArticleMapper.xml中添加selectDraftList的SQL查询语句 + +### 前端实现 +1. 在index.vue中添加草稿箱图标按钮 +2. 添加草稿箱弹窗对话框 +3. 添加草稿相关数据变量和方法: + - draftBoxVisible:控制草稿箱对话框显示 + - draftList:草稿列表数据 + - draftLoading:草稿列表加载状态 + - handleOpenDraftBox:打开草稿箱方法 + - loadDraftList:加载草稿列表方法 + - handleEditDraft:编辑草稿方法 + - handlePublishDraft:发布草稿方法 + - handleDeleteDraft:删除草稿方法 +4. 修改submitForm方法,添加审批表验证逻辑,确保在新增和修改时未上传审批表会提醒用户 + +### 核心代码变更 + +#### Article.java(实体类) +```java +/** 草稿状态(0-已发布 1-草稿) */ +@Excel(name = "草稿状态", readConverterExp = "0=已发布,1=草稿") +@TableField(value = "draft") +private Integer draft; +``` + +#### ArticleController.java(控制器) +```java +/** + * 保存草稿 + */ +@PreAuthorize("@ss.hasPermi('article:article:add')") +@Log(title = "article", businessType = BusinessType.INSERT) +@PostMapping("/draft") +public AjaxResult saveDraft(@RequestBody Article article) { + if (Objects.isNull(article)) { + return error("请将数据填充完整"); + } + + // 设置为草稿状态 + article.setDraft(1); + + LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); + SysUser sysUser = loginUser.getUser(); + String userName = sysUser.getUserName(); + + // 获取当前日期并格式化为字符串 + LocalDate now = LocalDate.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String currentDate = now.format(formatter); + article.setPubdate(currentDate); + + // 获取用户ip地址 + String ip = sysUser.getLoginIp(); + article.setIp(ip); + + // 使用MyBatis-Plus直接保存 + return toAjax(articleService.save(article) ? 1 : 0); +} + +/** + * 更新草稿 + */ +@PreAuthorize("@ss.hasPermi('article:article:edit')") +@Log(title = "article", businessType = BusinessType.UPDATE) +@PutMapping("/draft") +public AjaxResult updateDraft(@RequestBody Article article) { + // 设置为草稿状态 + article.setDraft(1); + + LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); + SysUser sysUser = loginUser.getUser(); + String ip = sysUser.getLoginIp(); + article.setIp(ip); + + // 使用MyBatis-Plus直接更新 + return toAjax(articleService.updateById(article) ? 1 : 0); +} + +/** + * 发布草稿 + */ +@PreAuthorize("@ss.hasPermi('article:article:edit')") +@Log(title = "article", businessType = BusinessType.UPDATE) +@PutMapping("/publish/{articleId}") +public AjaxResult publishDraft(@PathVariable Long articleId) { + Article article = articleService.selectArticleByArticleId(articleId); + if (article == null) { + return error("文章不存在"); + } + + // 设置为已发布状态 + article.setDraft(0); + + // 使用MyBatis-Plus直接更新 + return toAjax(articleService.updateById(article) ? 1 : 0); +} + +/** + * 查询草稿列表 + * 草稿箱不用做权限控制,只有市局能看到 + */ +@GetMapping("/draft/list") +public TableDataInfo listDraft(Article article) { + // 设置查询条件为草稿状态 + article.setDraft(1); + + LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); + SysUser sysUser = loginUser.getUser(); + String userName = sysUser.getUserName(); + String deptName = sysUser.getDept() != null ? sysUser.getDept().getDeptName() : null; + + // 只有admin用户或市局/总局用户才能访问草稿箱 + boolean canAccessDraft = "admin".equals(userName) || (deptName != null && "市局/总局".equals(deptName)); + + if (!canAccessDraft) { + // 如果不是市局用户,返回空列表 + return getDataTable(new ArrayList<>()); + } + + startPage(); + // 草稿箱不需要权限控制,直接查询所有草稿 + List
list = articleService.selectArticleList(article); + return getDataTable(list); +} +``` + +#### ArticleMapper.xml(Mapper XML文件) +```xml + +``` + +#### index.vue(前端页面) +```javascript +// 在提交表单方法中添加审批表验证 +async submitForm() { + this.$refs["form"].validate(async valid => { + if (!valid) return; + + // 检查是否上传了审批表 + if (!this.form.appval || this.form.appval === '') { + this.$modal.msgError("请上传审批表"); + return; + } + + // ... 其余代码保持不变 + }); +} +``` + +### 功能测试要点 +1. 确保草稿箱不进行权限控制,仅市局可见 +2. 完善草稿箱功能,支持新增和修改文章的草稿保存 +3. 实现草稿箱中的文章发布功能,发布后更新到主文章列表 +4. 添加草稿箱中的草稿删除功能 +5. 确保新增修改时未上传审批表会提醒用户 + +所有功能均已实现并测试通过。 \ No newline at end of file diff --git a/add_attachment_to_article.sql b/add_attachment_to_article.sql new file mode 100644 index 0000000..4706baf --- /dev/null +++ b/add_attachment_to_article.sql @@ -0,0 +1,2 @@ +-- 为article表添加附件字段 +ALTER TABLE article ADD COLUMN attachment VARCHAR(255) COMMENT '附件路径'; \ No newline at end of file diff --git a/add_attachment_to_draft_article.sql b/add_attachment_to_draft_article.sql new file mode 100644 index 0000000..05427a5 --- /dev/null +++ b/add_attachment_to_draft_article.sql @@ -0,0 +1,2 @@ +-- 为draft_article表添加附件字段 +ALTER TABLE draft_article ADD COLUMN attachment VARCHAR(255) COMMENT '附件路径'; \ No newline at end of file diff --git a/add_attachment_to_uncheck_draft.sql b/add_attachment_to_uncheck_draft.sql new file mode 100644 index 0000000..772b606 --- /dev/null +++ b/add_attachment_to_uncheck_draft.sql @@ -0,0 +1,2 @@ +-- 为uncheck_draft表添加附件字段 +ALTER TABLE uncheck_draft ADD COLUMN attachment VARCHAR(255) COMMENT '附件路径'; \ No newline at end of file diff --git a/add_pdf_image_paths_field.sql b/add_pdf_image_paths_field.sql new file mode 100644 index 0000000..19b983a --- /dev/null +++ b/add_pdf_image_paths_field.sql @@ -0,0 +1,5 @@ +-- 检查并添加pdf_image_paths字段到article表 +ALTER TABLE article ADD COLUMN IF NOT EXISTS pdf_image_paths TEXT COMMENT 'PDF图片路径列表(逗号分隔)'; + +-- 如果上面的语句不支持,可以使用以下语句: +-- ALTER TABLE article ADD COLUMN pdf_image_paths TEXT COMMENT 'PDF图片路径列表(逗号分隔)'; \ No newline at end of file diff --git a/add_pdf_image_paths_to_article.sql b/add_pdf_image_paths_to_article.sql new file mode 100644 index 0000000..5c2b8ee --- /dev/null +++ b/add_pdf_image_paths_to_article.sql @@ -0,0 +1,2 @@ +-- 添加pdf_image_paths字段到article表 +ALTER TABLE article ADD COLUMN pdf_image_paths TEXT COMMENT 'PDF图片路径列表(逗号分隔)'; \ No newline at end of file diff --git a/add_pubdate_to_river_news.sql b/add_pubdate_to_river_news.sql new file mode 100644 index 0000000..66343fe --- /dev/null +++ b/add_pubdate_to_river_news.sql @@ -0,0 +1 @@ +ALTER TABLE river_news ADD COLUMN pubdate VARCHAR(255) NULL COMMENT '发布日期'; diff --git a/add_sort_order_to_partyclass.sql b/add_sort_order_to_partyclass.sql new file mode 100644 index 0000000..2c8ea79 --- /dev/null +++ b/add_sort_order_to_partyclass.sql @@ -0,0 +1,39 @@ +-- 为partyclass表添加排序字段 +ALTER TABLE partyclass ADD COLUMN sort_order INT DEFAULT 0 COMMENT '排序字段'; + +-- 为现有数据按类型分别设置排序值 +-- 使用存储过程为每个类型动态设置排序值 +DROP PROCEDURE IF EXISTS set_sort_order_by_type; + +DELIMITER $$ +CREATE PROCEDURE set_sort_order_by_type() +BEGIN + DECLARE done INT DEFAULT FALSE; + DECLARE current_type INT; + DECLARE type_cursor CURSOR FOR SELECT DISTINCT type FROM partyclass WHERE type IS NOT NULL; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + + OPEN type_cursor; + + type_loop: LOOP + FETCH type_cursor INTO current_type; + IF done THEN + LEAVE type_loop; + END IF; + + SET @row_number = 0; + UPDATE partyclass + SET sort_order = (@row_number := @row_number + 1) + WHERE type = current_type + ORDER BY id; + END LOOP; + + CLOSE type_cursor; +END$$ +DELIMITER ; + +-- 执行存储过程 +CALL set_sort_order_by_type(); + +-- 删除存储过程 +DROP PROCEDURE set_sort_order_by_type; \ No newline at end of file diff --git a/attachment_field_fix_documentation.md b/attachment_field_fix_documentation.md new file mode 100644 index 0000000..1293029 --- /dev/null +++ b/attachment_field_fix_documentation.md @@ -0,0 +1,23 @@ +# 附件字段默认值问题修复说明 + +## 问题描述 +在操作草稿文章时,出现"Field 'attachment' doesn't have a default value"错误。 + +## 问题原因 +1. `draft_article`表和`uncheck_draft`表在创建时没有定义`attachment`字段 +2. 后续通过ALTER TABLE语句添加了`attachment`字段,但没有设置默认值 +3. MyBatis的Mapper文件中,当attachment字段为null时不会将其包含在INSERT语句中 +4. 当数据库字段没有默认值且不在INSERT语句中时,就会出现该错误 + +## 解决方案 +1. 创建SQL脚本为`attachment`字段添加默认值: + - `update_draft_article_attachment_default.sql` + - `update_uncheck_draft_attachment_default.sql` + +2. 修改MyBatis的Mapper XML文件,确保在INSERT语句中始终包含`attachment`字段: + - `DraftArticleMapper.xml` + - `UncheckDraftMapper.xml` + +## 实施步骤 +1. 执行SQL脚本更新数据库表结构 +2. 部署更新后的Mapper XML文件 \ No newline at end of file diff --git a/migrate_river_view_to_partyclass.sql b/migrate_river_view_to_partyclass.sql new file mode 100644 index 0000000..3ab43bb --- /dev/null +++ b/migrate_river_view_to_partyclass.sql @@ -0,0 +1,17 @@ +-- 将river_view数据迁移到partyclass表 +INSERT INTO partyclass (name, file, cover_img, x, y, pubdate, type) +SELECT + name, + video as file, + cover_img, + x, + y, + CURDATE() as pubdate, -- 设置默认日期为当前日期 + 2 as type -- 设置视频类型为2 +FROM river_view; + +-- 验证迁移结果 +SELECT COUNT(*) as migrated_count FROM partyclass WHERE file IS NOT NULL AND file != ''; + +-- 如果迁移成功,可以选择删除river_view表(可选) +-- DROP TABLE river_view; \ No newline at end of file diff --git a/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleUncheckController.java b/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleUncheckController.java index b183116..877ba9d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleUncheckController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleUncheckController.java @@ -62,6 +62,9 @@ public class ArticleUncheckController extends BaseController @Autowired private SysDeptMapper sysDeptMapper; + @Autowired + private PdfParseTaskServiceImpl pdfParseTaskService; + /** * 封面路径 */ @@ -227,7 +230,20 @@ public class ArticleUncheckController extends BaseController @PostMapping("/audit") public AjaxResult audit(@RequestBody Article article){ article.setAuditId(article.getArticleId()); - return toAjax(articleMapper.insertArticle(article)); + + // 先插入文章 + int result = articleMapper.insertArticle(article); + + // 如果文章有PDF附件,异步解析PDF为图片 + if (result > 0 && article.getAttachment() != null && !article.getAttachment().isEmpty()) { + // 检查附件是否为PDF文件 + if (article.getAttachment().toLowerCase().endsWith(".pdf")) { + // 异步处理PDF解析任务 + pdfParseTaskService.processPdfParseTask(article.getArticleId()); + } + } + + return toAjax(result); } //修改已审核数据,更新article diff --git a/ruoyi-admin/src/main/java/com/ruoyi/service/impl/ArticleServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/service/impl/ArticleServiceImpl.java index c90f1fe..b224c4f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/service/impl/ArticleServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/service/impl/ArticleServiceImpl.java @@ -37,6 +37,9 @@ public class ArticleServiceImpl extends ServiceImpl impl @Autowired private RecoverStationMapper recoverStationMapper; + @Autowired + private PdfParseTaskServiceImpl pdfParseTaskService; + /** * 判断部门是否直接隶属于荆州市长江河道管理局(一级子部门) @@ -662,7 +665,20 @@ public class ArticleServiceImpl extends ServiceImpl impl if(null!=conlumn|| StringUtils.isNull(conlumn)){ article.setColumnId(conlumn.getId()); } - return articleMapper.insertArticle(article); + + // 先插入文章 + int result = articleMapper.insertArticle(article); + + // 如果文章有PDF附件,异步解析PDF为图片 + if (result > 0 && article.getAttachment() != null && !article.getAttachment().isEmpty()) { + // 检查附件是否为PDF文件 + if (article.getAttachment().toLowerCase().endsWith(".pdf")) { + // 异步处理PDF解析任务 + pdfParseTaskService.processPdfParseTask(article.getArticleId()); + } + } + + return result; } /** @@ -679,7 +695,20 @@ public class ArticleServiceImpl extends ServiceImpl impl if(null!=conlumn|| StringUtils.isNull(conlumn)){ article.setColumnId(conlumn.getId()); } - return articleMapper.updateArticle(article); + + // 更新文章 + int result = articleMapper.updateArticle(article); + + // 如果文章有PDF附件,异步解析PDF为图片 + if (result > 0 && article.getAttachment() != null && !article.getAttachment().isEmpty()) { + // 检查附件是否为PDF文件 + if (article.getAttachment().toLowerCase().endsWith(".pdf")) { + // 异步处理PDF解析任务 + pdfParseTaskService.processPdfParseTask(article.getArticleId()); + } + } + + return result; } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/service/impl/DraftArticleServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/service/impl/DraftArticleServiceImpl.java index 02901a4..270fa4a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/service/impl/DraftArticleServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/service/impl/DraftArticleServiceImpl.java @@ -33,6 +33,9 @@ public class DraftArticleServiceImpl extends ServiceImpl 0 && draftArticle.getAttachment() != null && !draftArticle.getAttachment().isEmpty()) { + // 检查附件是否为PDF文件 + if (draftArticle.getAttachment().toLowerCase().endsWith(".pdf")) { + // 异步处理PDF解析任务 + pdfParseTaskService.processPdfParseTask(article.getArticleId()); + } + } + if (result > 0) { // 删除草稿文章 draftArticleMapper.deleteDraftArticleByArticleId(articleId); diff --git a/ruoyi-admin/src/main/resources/db/migration/V20250903_1530__create_column_permission_table.sql b/ruoyi-admin/src/main/resources/db/migration/V20250903_1530__create_column_permission_table.sql new file mode 100644 index 0000000..1b4e68b --- /dev/null +++ b/ruoyi-admin/src/main/resources/db/migration/V20250903_1530__create_column_permission_table.sql @@ -0,0 +1,34 @@ +/* + Navicat Premium Data Transfer + + Source Server : localhost + Source Server Type : MySQL + Source Server Version : 80024 + Source Host : localhost:3306 + Source Schema : river + + Target Server Type : MySQL + Target Server Version : 80024 + File Encoding : 65001 + + Date: 03/09/2025 15:30:00 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for column_permission +-- ---------------------------- +DROP TABLE IF EXISTS `column_permission`; +CREATE TABLE `column_permission` ( + `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `column_id` bigint(0) NOT NULL COMMENT '栏目ID', + `dept_id` bigint(0) NOT NULL COMMENT '部门ID', + `dept_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '部门名称', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '创建者', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '栏目临时权限' ROW_FORMAT = Dynamic; + +SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file diff --git a/sql/add_dept_name_to_uncheck_draft.sql b/sql/add_dept_name_to_uncheck_draft.sql new file mode 100644 index 0000000..9d7da75 --- /dev/null +++ b/sql/add_dept_name_to_uncheck_draft.sql @@ -0,0 +1,2 @@ +-- 添加dept_name字段到uncheck_draft表 +ALTER TABLE uncheck_draft ADD COLUMN dept_name VARCHAR(255) COMMENT '部门名称'; \ No newline at end of file diff --git a/sql/create_draft_article_table.sql b/sql/create_draft_article_table.sql new file mode 100644 index 0000000..3293d22 --- /dev/null +++ b/sql/create_draft_article_table.sql @@ -0,0 +1,24 @@ +-- 创建草稿文章表 +CREATE TABLE draft_article ( + article_id BIGINT NOT NULL AUTO_INCREMENT COMMENT '文章ID', + title VARCHAR(255) NOT NULL COMMENT '标题', + article_origin VARCHAR(255) COMMENT '文章来源', + column_id BIGINT COMMENT '栏目ID', + content LONGTEXT COMMENT '内容', + author VARCHAR(255) COMMENT '责任编辑', + cover_path VARCHAR(255) COMMENT '封面路径', + ip VARCHAR(255) COMMENT 'IP地址', + pubdate DATE COMMENT '审核日期', + appval VARCHAR(255) COMMENT '审核通过表', + auditId BIGINT COMMENT '审核ID', + little_title1 VARCHAR(255) COMMENT '副标题1', + little_title2 VARCHAR(255) COMMENT '副标题2', + status INT DEFAULT 0 COMMENT '状态(0-显示 1-隐藏)', + valid_date DATE COMMENT '有效期', + remark VARCHAR(500) COMMENT '备注', + create_by VARCHAR(64) COMMENT '创建者', + create_time DATETIME COMMENT '创建时间', + update_by VARCHAR(64) COMMENT '更新者', + update_time DATETIME COMMENT '更新时间', + PRIMARY KEY (article_id) +) COMMENT = '草稿文章表'; \ No newline at end of file diff --git a/sql/create_uncheck_draft_table.sql b/sql/create_uncheck_draft_table.sql new file mode 100644 index 0000000..3d502fa --- /dev/null +++ b/sql/create_uncheck_draft_table.sql @@ -0,0 +1,23 @@ +-- 创建未审核文章草稿箱表 +CREATE TABLE uncheck_draft ( + article_id BIGINT NOT NULL AUTO_INCREMENT COMMENT '文章ID', + title VARCHAR(255) NOT NULL COMMENT '标题', + article_origin VARCHAR(255) COMMENT '文章来源', + column_id BIGINT COMMENT '栏目ID', + content LONGTEXT COMMENT '内容', + author VARCHAR(255) COMMENT '责任编辑', + cover_path VARCHAR(255) COMMENT '封面路径', + ip VARCHAR(255) COMMENT 'IP地址', + pubdate DATE COMMENT '审核日期', + appval VARCHAR(255) COMMENT '审核通过表', + little_title1 VARCHAR(255) COMMENT '副标题1', + little_title2 VARCHAR(255) COMMENT '副标题2', + status INT DEFAULT 0 COMMENT '状态(0-草稿 1-已发布)', + valid_date DATE COMMENT '有效期', + remark VARCHAR(500) COMMENT '备注', + create_by VARCHAR(64) COMMENT '创建者', + create_time DATETIME COMMENT '创建时间', + update_by VARCHAR(64) COMMENT '更新者', + update_time DATETIME COMMENT '更新时间', + PRIMARY KEY (article_id) +) COMMENT = '未审核文章草稿箱表'; \ No newline at end of file diff --git a/update_draft_article_attachment_default.sql b/update_draft_article_attachment_default.sql new file mode 100644 index 0000000..83669e3 --- /dev/null +++ b/update_draft_article_attachment_default.sql @@ -0,0 +1,2 @@ +-- 为draft_article表的attachment字段设置默认值 +ALTER TABLE draft_article MODIFY COLUMN attachment VARCHAR(255) DEFAULT NULL COMMENT '附件路径'; \ No newline at end of file diff --git a/update_recover_station_valid_date.sql b/update_recover_station_valid_date.sql new file mode 100644 index 0000000..ad25bd4 --- /dev/null +++ b/update_recover_station_valid_date.sql @@ -0,0 +1 @@ +UPDATE recover_station SET valid_date = 30 WHERE valid_date IS NULL; diff --git a/update_uncheck_draft_attachment_default.sql b/update_uncheck_draft_attachment_default.sql new file mode 100644 index 0000000..8694c63 --- /dev/null +++ b/update_uncheck_draft_attachment_default.sql @@ -0,0 +1,2 @@ +-- 为uncheck_draft表的attachment字段设置默认值 +ALTER TABLE uncheck_draft MODIFY COLUMN attachment VARCHAR(255) DEFAULT NULL COMMENT '附件路径'; \ No newline at end of file diff --git "a/\346\262\263\351\201\223\347\256\241\347\220\206\347\263\273\347\273\237\345\212\237\350\203\275\350\257\264\346\230\216\346\226\207\346\241\243.assets/image-20250915232653074.png" "b/\346\262\263\351\201\223\347\256\241\347\220\206\347\263\273\347\273\237\345\212\237\350\203\275\350\257\264\346\230\216\346\226\207\346\241\243.assets/image-20250915232653074.png" new file mode 100644 index 0000000000000000000000000000000000000000..cd0418d836059b72c24a5879146a6f792bd7d159 GIT binary patch literal 15437 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 0) { + SysDept parentDept = sysDeptMapper.selectDeptById(dept.getParentId()); + if (parentDept != null && "荆州市长江河道管理局".equals(parentDept.getDeptName())) { + return true; + } + } + + return false; +} + +/** + * 判断部门是否为市局/总局或其子部门 + * @param dept 部门信息 + * @param sysDeptMapper 部门Mapper + * @return 是否为市局/总局或其子部门 + */ +private static boolean isCityBureauOrSubordinate(SysDept dept, SysDeptMapper sysDeptMapper) { + if (dept == null) { + return false; + } + + // 如果当前部门就是市局/总局,直接返回true + if ("市局/总局".equals(dept.getDeptName())) { + return true; + } + + // 通过祖先部门查找是否属于市局/总局 + String ancestors = dept.getAncestors(); + if (ancestors != null && !ancestors.isEmpty()) { + // 从 ancestors 中提取所有祖先部门ID + String[] ancestorIds = ancestors.split(","); + + // 查询祖先部门中是否有市局/总局 + for (String ancestorId : ancestorIds) { + if (!ancestorId.trim().isEmpty()) { + try { + Long deptId = Long.parseLong(ancestorId.trim()); + SysDept ancestorDept = sysDeptMapper.selectDeptById(deptId); + if (ancestorDept != null && "市局/总局".equals(ancestorDept.getDeptName())) { + return true; + } + } catch (NumberFormatException e) { + // 忽略无效ID + } + } + } + } + + return false; +} +``` + + + +#### 2.5.3 文章查询权限控制代码 +```java +// ArticleMapper.xml中的权限控制查询 + + +// ArticleUncheckMapper.xml中的权限控制查询 + +``` + +### 2.6 权限控制流程详解 + +#### 2.6.1 用户登录权限初始化 +1. 用户登录系统时,系统会根据用户名获取用户信息 +2. 获取用户所属部门信息及部门层级关系 +3. 初始化用户权限信息,包括角色权限和数据权限 + +#### 2.6.2 文章访问权限控制流程 +1. **超级管理员访问**: + - 无需任何权限过滤 + - 可查看所有文章数据 + - 拥有所有操作权限 + +2. **市局/总局用户访问**: + - 在查询文章列表时,不进行部门数据过滤 + - 可查看所有分局的文章数据 + - 拥有文章审核等管理权限 + +3. **分局用户访问**: + - 在查询文章列表时,自动添加部门数据过滤条件 + - 只能查看本分局的文章数据 + - 仅拥有基本的文章操作权限 + +#### 2.6.3 栏目访问权限控制流程 +1. **栏目可见性判断**: + - 根据用户权限级别判断可访问的栏目范围 + - 管理员可访问所有栏目 + - 普通用户只能访问授权的栏目 + +2. **栏目权限查询**: + - 通过LEFT JOIN连接column_permission表查询栏目权限 + - 根据部门ID和权限类型过滤栏目数据 + - 支持允许访问和禁止访问两种权限类型 + +#### 2.6.4 权限控制关键点 +1. **数据隔离**:通过articleOrigin字段实现分局间数据隔离 +2. **权限继承**:通过ancestors字段实现部门权限继承 +3. **动态过滤**:在查询时动态添加权限过滤条件 +4. **细粒度控制**:支持到栏目级别的权限控制 + +### 2.7 权限控制流程图 + +```mermaid +graph TD + A[用户登录系统] --> B[获取用户信息和部门信息] + B --> C[判断用户类型] + C --> D{是否为超级管理员?} + D -- 是 --> E[拥有所有权限,无数据过滤] + D -- 否 --> F{是否为市局/总局用户?} + F -- 是 --> G[拥有管理权限,可查看所有分局数据] + F -- 否 --> H[判断是否为分局用户] + H --> I{是否直接隶属于荆州市长江河道管理局?} + I -- 是 --> J[分局用户:只能查看本分局数据] + I -- 否 --> K{是否属于市局/总局下级部门?} + K -- 是 --> L[可查看所有数据] + K -- 否 --> M[默认权限限制] + + J --> N[数据过滤:通过articleOrigin字段] + N --> O[栏目权限控制:role字段+column_permission表] + + G --> P[可查看所有文章数据] + P --> Q[拥有审核等管理权限] + + E --> R[可查看所有数据] + R --> S[拥有所有操作权限] +``` + +### 2.8 权限控制测试用例 + +#### 2.8.1 超级管理员权限测试 +1. 使用admin账户登录系统 +2. 验证可以查看所有部门的文章数据 +3. 验证可以进行所有操作(新增、修改、删除、审核等) +4. 验证不受任何数据过滤限制 + +#### 2.8.2 市局/总局用户权限测试 +1. 使用市局/总局账户登录系统 +2. 验证可以查看所有分局的文章数据 +3. 验证可以进行审核操作 +4. 验证可以进行基本的文章操作 + +#### 2.8.3 分局用户权限测试 +1. 使用分局账户登录系统 +2. 验证只能查看本分局的文章数据 +3. 验证无法进行审核操作 +4. 验证只能进行基本的文章操作(新增、修改、删除) +5. 验证通过articleOrigin字段进行数据过滤 + +#### 2.8.4 栏目权限测试 +1. 验证管理员可以查看所有栏目(role为1、2、3) +2. 验证分局用户只能查看role='1'的栏目 +3. 验证临时权限设置是否生效(permission_type=1允许访问,permission_type=2禁止访问) +4. 验证column_permission表中的权限设置是否正确应用 + +## 3. 文章发布-审核管理模块 + +### 3.1 文章生命周期 + +文章在系统中具有完整的生命周期: + +``` +草稿箱(draft=1) → 待审核(uncheck_status=0) → 已发布(draft=0) → 回收站(deleted=1) +``` + +### 3.2 草稿箱功能 + +草稿箱功能允许用户保存未完成的文章,支持文章的临时保存、编辑和发布: + +1. **保存草稿**:用户可以将未完成的文章保存到草稿箱,避免数据丢失 +2. **编辑草稿**:用户可以从草稿箱继续编辑未完成的文章 +3. **发布草稿**:用户可以将草稿箱中的文章发布到正式列表 +4. **删除草稿**:用户可以从草稿箱删除不需要的草稿 + +草稿箱访问权限: +- 仅市局/总局用户可以访问草稿箱功能 +- 分局用户无法访问article草稿箱 + +#### 3.2.1 Article草稿箱详细功能说明 + +Article草稿箱是用于管理已审核文章草稿的功能模块,主要用于保存已完成审核但尚未正式发布的文章。 + +##### 功能特点: +1. **草稿保存**:用户可以将编辑完成的文章保存为草稿,系统会将文章数据存储在`draft_article`表中 +2. **草稿编辑**:用户可以随时从草稿箱中打开草稿进行继续编辑 +3. **草稿发布**:用户可以将草稿直接发布到正式文章列表中,发布后草稿会被删除 +4. **草稿删除**:用户可以从草稿箱中删除不需要的草稿 + +##### 数据结构: +- 草稿文章存储在`draft_article`表中,字段与正式文章表基本一致 +- 包含标题、内容、栏目、来源、作者、审批表等完整文章信息 +- 包含创建时间和更新时间用于跟踪草稿的修改历史 + +##### 权限控制: +- 仅市局/总局用户可以访问Article草稿箱 +- 分局用户无法查看或操作Article草稿箱 + +##### 操作流程: +1. **保存草稿**: + - 用户在文章编辑页面点击"保存草稿"按钮 + - 系统验证必填字段(标题、内容、栏目、来源、作者、审批表) + - 系统将文章数据保存到`draft_article`表中 + - 返回保存成功的提示信息 + +2. **编辑草稿**: + - 用户进入草稿箱界面,查看草稿列表 + - 点击"编辑"按钮打开草稿进行修改 + - 修改完成后可以再次保存或直接发布 + +3. **发布草稿**: + - 用户在草稿箱界面点击"发布"按钮 + - 系统检查是否已上传审批表 + - 系统将草稿数据复制到正式文章表`article`中 + - 删除草稿箱中的对应记录 + - 返回发布成功的提示信息 + +4. **删除草稿**: + - 用户在草稿箱界面选择要删除的草稿 + - 点击"删除"按钮确认删除操作 + - 系统从`draft_article`表中删除对应记录 + +##### 技术实现: +- 前端:使用Vue.js + Element UI实现草稿箱界面 +- 后端:DraftArticleController处理草稿相关请求 +- 数据库:draft_article表存储草稿数据 +- API接口: + - 查询草稿列表:GET /article/draft/list + - 获取草稿详情:GET /article/draft/{articleId} + - 新增草稿:POST /article/draft + - 修改草稿:PUT /article/draft + - 删除草稿:DELETE /article/draft/{articleIds} + - 发布草稿:POST /article/draft/publish/{articleId} + +### 3.3 Uncheck草稿箱详细功能说明 + +Uncheck草稿箱是用于管理未审核文章草稿的功能模块,主要用于保存尚未提交审核的文章。 + +#### 功能特点: +1. **草稿保存**:用户可以将编辑中的文章保存为草稿,系统会将文章数据存储在`uncheck_draft`表中 +2. **草稿编辑**:用户可以随时从草稿箱中打开草稿进行继续编辑 +3. **草稿发布**:用户可以将草稿直接发布到未审核文章列表中,发布后草稿会被删除 +4. **草稿删除**:用户可以从草稿箱中删除不需要的草稿 +5. **权限控制**:不同用户只能查看和操作自己权限范围内的草稿 + +#### 数据结构: +- 草稿文章存储在`uncheck_draft`表中,字段与未审核文章表基本一致 +- 包含标题、内容、栏目、来源、作者、审批表等完整文章信息 +- 包含部门名称字段用于权限控制 +- 包含创建时间和更新时间用于跟踪草稿的修改历史 + +#### 权限控制: +- 超级管理员可以查看所有部门的草稿 + +- 市局/总局用户只能查看本部门(市局/总局)的草稿 + +- 分局用户只能查看本分局的草稿 + + 通过草稿箱中dept_name字段判断 + +#### 操作流程: +1. **保存草稿**: + - 用户在未审核文章编辑页面点击"保存草稿"按钮 + - 系统验证必填字段(标题、内容、栏目、来源、作者) + - 系统根据用户权限设置部门名称字段 + - 系统将文章数据保存到`uncheck_draft`表中 + - 返回保存成功的提示信息 + +2. **编辑草稿**: + - 用户点击界面中的"草稿箱"按钮打开草稿箱界面 + - 查看草稿列表,列表显示标题、来源、栏目、创建时间、更新时间等信息 + - 点击"编辑"按钮打开草稿进行修改 + - 修改完成后可以再次保存或直接发布 + +3. **发布草稿**: + - 用户在草稿箱界面点击"发布"按钮 + - 系统检查是否已上传审批表 + - 系统将草稿数据复制到未审核文章表`article_uncheck`中 + - 删除草稿箱中的对应记录 + - 返回发布成功的提示信息 + +4. **删除草稿**: + - 用户在草稿箱界面选择要删除的草稿 + - 点击"删除"按钮确认删除操作 + - 系统从`uncheck_draft`表中删除对应记录 + +#### 技术实现: +- 前端:使用Vue.js + Element UI实现草稿箱界面,集成在未审核文章管理页面中 +- 后端:UncheckDraftController处理草稿相关请求 +- 数据库:uncheck_draft表存储草稿数据 +- API接口: + - 查询草稿列表:GET /uncheck/draft/list + - 获取草稿详情:GET /uncheck/draft/{articleId} + - 新增草稿:POST /uncheck/draft + - 修改草稿:PUT /uncheck/draft + - 删除草稿:DELETE /uncheck/draft/{articleIds} + - 发布草稿:POST /uncheck/draft/publish/{articleId} + +### 3.4 文章状态管理 + +文章在系统中有多种状态标识: + +1. **draft**:草稿状态(0-已发布, 1-草稿) +2. **uncheck_status**:审核状态(0-待审核, 1-审核通过, 2-审核驳回) +3. **deleted**:删除状态(0-正常, 1-已删除) +4. **status**:隐藏状态(0-显示, 1-隐藏) + +### 3.5 审批表管理 + +系统要求所有文章必须上传审批表: + +1. 在新增和修改文章时会检查是否上传了审批表 +2. 未上传审批表会提示用户上传 +3. 审批表信息存储在appval字段中 + +## 4. 文章隐藏显示功能 + +### 4.1 功能概述 + +文章隐藏显示功能允许管理员或具有相应权限的用户控制文章在前端的显示状态。通过设置文章的status字段,可以实现文章的隐藏和显示控制,隐藏的文章在文章列表中不会显示给普通用户,但仍可在后台管理界面查看和操作。 + +### 4.2 状态定义 + +系统通过status字段控制文章的显示状态: +- **status=0**:文章处于显示状态,在前端可以正常查看 +- **status=1**:文章处于隐藏状态,在前端不会显示 + +### 4.3 功能特点 + +1. **单篇文章控制**:支持对单篇文章进行隐藏或显示操作 +2. **批量操作**:支持批量隐藏或显示多篇文章 +3. **条件批量操作**:支持根据查询条件批量隐藏或显示文章 +4. **权限控制**:只有具有编辑权限的用户才能执行隐藏显示操作 +5. **状态可视化**:在文章列表界面通过不同按钮显示当前文章状态 + +### 4.4 操作流程 + +#### 4.4.1 单篇文章隐藏/显示 +1. 用户在文章列表界面找到目标文章 +2. 根据文章当前状态显示相应操作按钮: + - 状态为显示(status=0)时显示"隐藏"按钮 + - 状态为隐藏(status=1)时显示"显示"按钮 +3. 点击对应按钮执行操作 +4. 系统更新文章status字段并刷新列表 + +#### 4.4.2 批量隐藏/显示 +1. 用户在文章列表界面选择多篇文章 +2. 点击批量隐藏或批量显示按钮 +3. 系统确认操作后更新所有选中文章的status字段 +4. 列表刷新显示最新状态 + +#### 4.4.3 条件批量操作 +1. 用户设置查询条件(如标题、来源、栏目、时间范围等) +2. 点击"按条件批量操作"按钮 +3. 选择操作类型(隐藏或显示) +4. 系统根据查询条件批量更新文章状态 +5. 列表刷新显示最新状态 + +### 4.5 技术实现 + +#### 4.5.1 前端实现 +```javascript +// 隐藏文章 +handleHide(row) { + const articleId = row.articleId; + this.$modal.confirm('是否确认隐藏该文章?').then(() => { + return hideArticle(articleId); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("隐藏成功"); + }).catch(() => {}); +} + +// 显示文章 +handleShow(row) { + const articleId = row.articleId; + this.$modal.confirm('是否确认显示该文章?').then(() => { + return showArticle(articleId); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("显示成功"); + }).catch(() => {}); +} + +// 批量隐藏 +handleBatchHide() { + this.$modal.confirm('是否确认隐藏选中的文章?').then(() => { + return batchHideArticle(this.ids); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("批量隐藏成功"); + }).catch(() => {}); +} + +// 批量显示 +handleBatchShow() { + this.$modal.confirm('是否确认显示选中的文章?').then(() => { + return batchShowArticle(this.ids); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("批量显示成功"); + }).catch(() => {}); +} +``` + +#### 4.5.2 后端实现 +```java +// Controller层 +/** + * 隐藏文章 + */ +@PreAuthorize("@ss.hasPermi('article:article:edit')") +@Log(title = "article", businessType = BusinessType.UPDATE) +@PutMapping("/hide/{articleId}") +public AjaxResult hide(@PathVariable Long articleId) { + return toAjax(articleService.hideArticle(articleId)); +} + +/** + * 显示文章 + */ +@PreAuthorize("@ss.hasPermi('article:article:edit')") +@Log(title = "article", businessType = BusinessType.UPDATE) +@PutMapping("/show/{articleId}") +public AjaxResult show(@PathVariable Long articleId) { + return toAjax(articleService.showArticle(articleId)); +} + +// Service层 +@Override +public int hideArticle(Long articleId) { + return articleMapper.hideArticle(articleId); +} + +@Override +public int showArticle(Long articleId) { + return articleMapper.showArticle(articleId); +} + +// Mapper层 +public int hideArticle(Long articleId); +public int showArticle(Long articleId); + +// Mapper XML + + update article set status = 1 where article_id = #{articleId} + + + + update article set status = 0 where article_id = #{articleId} + +``` + +### 4.6 权限控制 + +1. 只有具有`article:article:edit`权限的用户才能执行隐藏显示操作 +2. 通过`@PreAuthorize`注解进行权限验证 +3. 操作记录通过`@Log`注解记录到系统日志 + +### 4.7 界面设计 + +1. 在文章列表操作列中根据文章状态显示相应按钮 +2. 使用不同图标区分隐藏和显示操作 +3. 批量操作按钮放置在工具栏中 +4. 提供按条件批量操作功能 + +## 5. 其他功能模块 + +### 5.1 回收站管理模块 + +系统实现了完善的回收站管理功能,采用软删除机制保护重要数据: + +1. **软删除机制**:删除文章时不会物理删除,而是将deleted字段设置为1 +2. **回收站列表**:提供专门的回收站界面,展示所有已删除的文章 +3. **文章恢复**:支持从回收站恢复误删除的文章,恢复后文章状态恢复正常 +4. **彻底删除**:支持从回收站彻底删除文章,执行物理删除操作 + +### 5.2 栏目管理模块 + +系统支持网站栏目的灵活管理: + +1. **栏目信息维护**:支持栏目的新增、修改、删除操作 +2. **栏目权限控制**:基于部门的栏目访问权限控制 +3. **栏目显隐控制**:支持控制栏目在前端的显示和隐藏状态 + +### 5.3 数据字典管理 + +系统使用数据字典统一管理系统中的各种状态和配置信息: + +1. **审核状态字典**:管理文章的审核状态(待审核、审核通过、审核驳回) +2. **文章状态字典**:管理文章的发布状态(草稿、已发布) +3. **系统配置字典**:管理系统中的其他配置信息 + +## 6. 前端功能界面 + +### 6.1 文章管理界面 + +提供完整的文章管理操作界面: + +1. 文章列表展示:支持分页、排序、条件查询 +2. 文章新增/编辑:富文本编辑器支持,审批表上传功能 +3. 文章审核操作:审核通过、审核驳回功能 +4. 文章删除/恢复:软删除和回收站恢复功能 +5. 文章隐藏/显示:控制文章在前端的显示状态 + +### 6.2 草稿箱界面 + +提供草稿箱管理界面: + +1. 草稿列表展示:展示所有保存的草稿文章 +2. 草稿编辑:继续编辑未完成的文章 +3. 草稿发布:将草稿文章发布到正式列表 +4. 草稿删除:删除不需要的草稿文章 + +### 6.3 审核管理界面 + +提供文章审核操作界面: + +1. 待审核文章列表:展示所有待审核的文章 +2. 审核通过操作:将文章状态更新为审核通过 +3. 审核驳回操作:将文章状态更新为审核驳回,可添加驳回原因 + +## 7. 系统特色功能 + +### 7.1 数据权限控制 + +系统实现了细粒度的数据权限控制,确保不同级别用户只能访问授权范围内的数据: + +1. 基于部门的数据隔离 +2. 基于角色的访问控制 +3. 动态SQL数据过滤 + +### 7.2 完整的文档生命周期 + +从草稿、审核到发布的完整文档生命周期管理,确保文档管理的规范性: + +1. 草稿箱功能支持文章的临时保存 +2. 审核流程确保文章发布的质量 +3. 回收站机制保护重要数据 + +### 7.3 软删除机制 + +采用软删除机制保护重要数据,避免误删除造成的数据丢失: + +1. 删除操作仅更新状态字段 +2. 提供数据恢复功能 +3. 支持彻底删除操作 + +### 7.4 审批流程 + +强制要求审批表上传,确保文章发布的合规性: + +1. 新增/修改文章时检查审批表 +2. 未上传审批表阻止提交 +3. 审批表与文章关联存储 + +## 8. 首页数据图表统计功能 + +### 8.1 功能概述 + +首页数据图表统计功能为用户提供直观的数据可视化展示,帮助用户快速了解系统中的文章发布情况和分布趋势。该功能主要包括两个维度的统计图表: + +1. **分局文章数量统计**:展示各分局文章发布数量对比 +2. **栏目文章数量统计**:展示各栏目文章发布数量对比 + +每种统计都提供柱状图和饼图两种展示形式,支持时间范围筛选和分局筛选功能。 + +### 8.2 技术架构 + +#### 8.2.1 前端技术栈 +- **框架**:Vue.js + Element UI +- **图表库**:ECharts 5.x +- **UI组件**:Element UI日期选择器、下拉选择器等 + +#### 8.2.2 后端技术栈 +- **框架**:Spring Boot + MyBatis Plus +- **数据库**:MySQL +- **查询优化**:字段选择、索引优化、分组统计 + +#### 8.2.3 数据流向 +``` +前端页面(index.vue) + ↓ (API调用) +控制层(ArticleController.java) + ↓ (服务调用) +服务层(ArticleServiceImpl.java) + ↓ (数据查询) +数据访问层(ArticleMapper.java) + ↓ (数据库查询) +MySQL数据库 +``` + +### 8.3 核心实现逻辑 + +#### 8.3.1 分局文章数量统计 + +**数据查询逻辑**: +```sql +SELECT article_origin AS articleOrigin, COUNT(*) AS count +FROM article +WHERE pubdate >= #{startTime} + AND pubdate <= #{endTime} + AND article_origin IS NOT NULL + AND article_origin != '' +GROUP BY article_origin +ORDER BY count DESC +``` + +**实现方法**: +```java +@Override +public List selectArticleOriginDateList(String startTime, String endTime) { + // 如果没有指定时间范围,默认查询本年1月1日到当前日期 + if (StringUtils.isEmpty(startTime) && StringUtils.isEmpty(endTime)) { + String yearStart = DateUtils.dateTimeNow("yyyy") + "-01-01"; + String today = DateUtils.dateTimeNow("yyyy-MM-dd"); + startTime = yearStart; + endTime = today; + } + + // 构建查询条件 + LambdaQueryWrapper
wrapper = new LambdaQueryWrapper<>(); + wrapper.ge(StringUtils.isNotEmpty(startTime), Article::getPubdate, startTime); + wrapper.le(StringUtils.isNotEmpty(endTime), Article::getPubdate, endTime); + wrapper.isNotNull(Article::getArticleOrigin); + wrapper.ne(Article::getArticleOrigin, ""); + + return articleMapper.selectArticleOriginDateList(wrapper); +} +``` + +#### 8.3.2 栏目文章数量统计 + +**实现逻辑**: +1. 支持按指定分局筛选数据 +2. 支持时间范围筛选 +3. 统计各栏目文章数量并返回结果 + +**关键方法**: +```java +@Override +public List selectArticleColumnListByDeptAndSubDepts(String deptName, String startTime, String endTime) { + // 构建查询条件,查询指定部门及其子部门的文章 + LambdaQueryWrapper
wrapper = new LambdaQueryWrapper<>(); + wrapper.select(Article::getColumnId, Article::getArticleOrigin); + + if (StringUtils.isNotEmpty(deptName)) { + // 根据部门名称查询该部门及其所有子部门的文章 + SysDept dept = sysDeptMapper.selectDeptByName(deptName); + if (dept != null) { + // 获取该部门及其所有子部门的名称列表 + List deptNames = new ArrayList<>(); + deptNames.add(deptName); // 添加自身 + + // 递归获取所有子部门 + List childDeptNames = getAllChildDeptNames(dept.getDeptId()); + deptNames.addAll(childDeptNames); + + // 使用IN条件查询所有相关部门的文章 + wrapper.in(Article::getArticleOrigin, deptNames); + } else { + // 如果没找到部门,使用原来的LIKE查询 + wrapper.likeRight(Article::getArticleOrigin, deptName); + } + } + + wrapper.ge(Article::getPubdate, startTime); + wrapper.le(Article::getPubdate, endTime); + wrapper.isNotNull(Article::getArticleOrigin); + wrapper.ne(Article::getArticleOrigin, ""); + + List
articles = articleMapper.selectList(wrapper); + + // 获取所有栏目信息并统计各栏目文章数量 + List allColumns = conlumnMapper.selectList(null); + Map columnMap = new HashMap<>(); + for (Conlumn column : allColumns) { + columnMap.put(column.getId(), column); + } + + // 统计各栏目文章数量 + Map columnCountMap = new HashMap<>(); + for (Article article : articles) { + Long columnId = article.getColumnId(); + if (columnId != null) { + Conlumn column = columnMap.get(columnId); + if (column != null) { + String columnName = column.getName(); + columnCountMap.put(columnName, columnCountMap.getOrDefault(columnName, 0) + 1); + } + } + } + + // 转换为返回格式并按文章数量排序 + List result = new ArrayList<>(); + for (Map.Entry entry : columnCountMap.entrySet()) { + ArticleColumnVo vo = new ArticleColumnVo(); + vo.setColumnName(entry.getKey()); + vo.setCount(entry.getValue()); + result.add(vo); + } + + result.sort((a, b) -> b.getCount()); + return result; +} +``` + +### 8.4 权限控制实现 + +#### 8.4.1 部门层级判断 + +系统通过以下方式判断用户部门层级: + +```java +/** + * 判断部门是否直接隶属于荆州市长江河道管理局(一级子部门) + */ +private static boolean isDirectSubDeptOfJingZhou(SysDept dept, SysDeptMapper sysDeptMapper) { + // 如果部门本身就是"荆州市长江河道管理局",则不认为是其下级部门 + if ("荆州市长江河道管理局".equals(dept.getDeptName())) { + return false; + } + + // 直接检查父部门是否为"荆州市长江河道管理局" + if (dept.getParentId() != null && dept.getParentId() > 0) { + SysDept parentDept = sysDeptMapper.selectDeptById(dept.getParentId()); + if (parentDept != null && "荆州市长江河道管理局".equals(parentDept.getDeptName())) { + return true; + } + } + + return false; +} + +/** + * 判断部门是否为市局/总局或其子部门 + */ +private boolean isCityBureauOrSubordinate(SysUser sysUser) { + if (sysUser.getDept() == null) { + return false; + } + + // 如果当前部门就是市局/总局,直接返回true + String currentDeptName = sysUser.getDept().getDeptName(); + if (currentDeptName != null && "市局/总局".equals(currentDeptName)) { + return true; + } + + // 通过祖先部门查找是否属于市局/总局 + String ancestors = sysUser.getDept().getAncestors(); + if (ancestors != null && !ancestors.isEmpty()) { + String[] ancestorIds = ancestors.split(","); + + // 查询祖先部门中是否有市局/总局 + for (String ancestorId : ancestorIds) { + if (!ancestorId.trim().isEmpty()) { + try { + Long deptId = Long.parseLong(ancestorId.trim()); + SysDept ancestorDept = sysDeptMapper.selectDeptById(deptId); + if (ancestorDept != null && "市局/总局".equals(ancestorDept.getDeptName())) { + return true; + } + } catch (NumberFormatException e) { + // 忽略无效ID + } + } + } + } + + return false; +} +``` + +#### 8.4.2 用户权限判定逻辑 + +```java +/** + * 获取用户权限信息 + */ +@GetMapping("/userPermission") +public AjaxResult getUserPermission() { + LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); + SysUser sysUser = loginUser.getUser(); + String userName = sysUser.getUserName(); + + // 获取用户所属部门 + String userDeptName = null; + if (sysUser.getDept() != null) { + userDeptName = sysUser.getDept().getDeptName(); + } + + // 获取用户所属的分局名称 + String userDeptOrigin = null; + if (sysUser.getDept() != null) { + userDeptOrigin = getDeptArticleOrigin(sysUser); + } + + // 判断用户是否可以选分局 + boolean canSelectDept = false; + + // admin用户可以选分局 + if ("admin".equals(userName)) { + canSelectDept = true; + } + // 市局/总局用户可以选分局 + else if (userDeptName != null && "市局/总局".equals(userDeptName)) { + canSelectDept = true; + } + // 市局/总局的子部门用户也可以选分局 + else if (sysUser.getDept() != null && isCityBureauOrSubordinate(sysUser)) { + canSelectDept = true; + } + // 直接隶属于荆州市长江河道管理局的部门(包括分局及其子部门)用户不能选分局 + else if (sysUser.getDept() != null && isDirectSubDeptOfJingZhou(sysUser.getDept(), sysDeptMapper)) { + canSelectDept = false; + } + + Map result = new HashMap<>(); + result.put("canSelectDept", canSelectDept); + result.put("userDept", userDeptName); + result.put("userDeptOrigin", userDeptOrigin); + result.put("userName", userName); + + return AjaxResult.success(result); +} +``` + +### 8.5 前端实现逻辑 + +#### 8.5.1 图表初始化 + +```javascript +// 初始化图表 +initCharts() { + this.initPieChart(); + this.initBarChart(); + this.initPieChart2(); + this.initBarChart2(); +}, + +// 初始化饼图 +initPieChart() { + const pieChartElement = document.getElementById('pieChart'); + if (pieChartElement) { + this.pieChart = echarts.init(pieChartElement); + this.pieChart.setOption({ + title: { + text: this.chartData.pie.title, + left: 'center' + }, + tooltip: { + trigger: 'item' + }, + legend: { + orient: 'vertical', + left: 'left' + }, + series: [ + { + name: this.chartData.pie.seriesName, + type: 'pie', + radius: '50%', + data: this.chartData.pie.data, + emphasis: { + itemStyle: { + shadowBlur: 10, + shadowOffsetX: 0, + shadowColor: 'rgba(0, 0, 0, 0.5)' + } + } + } + ] + }); + } +}, + +// 初始化柱状图 +initBarChart() { + const barChartElement = document.getElementById('barChart'); + if (barChartElement) { + this.barChart = echarts.init(barChartElement); + this.barChart.setOption({ + title: { + text: this.chartData.bar.title, + left: 'center' + }, + tooltip: { + trigger: 'axis' + }, + xAxis: { + type: 'category', + data: this.chartData.bar.xAxisData, + name: this.chartData.bar.xAxisName + }, + yAxis: { + type: 'value', + name: this.chartData.bar.yAxisName + }, + series: [ + { + data: this.chartData.bar.seriesData, + type: 'bar', + label: { + show: true, + position: 'top', + formatter: '{c}', + color: '#666', + fontSize: 12, + fontWeight: 'bold' + } + } + ] + }); + } +} +``` + +#### 8.5.2 数据格式化 + +```javascript +// 格式化分局文章数据 +formatData(data) { + const pieData = [] + const barXAxisData = [] + const barSeriesData = [] + + data.forEach(item => { + pieData.push({ + name: item.articleOrigin, + value: item.count + }) + barXAxisData.push(item.articleOrigin) + barSeriesData.push(item.count) + }) + + this.chartData.pie.data = pieData + this.chartData.bar.xAxisData = barXAxisData + this.chartData.bar.seriesData = barSeriesData +}, + +// 格式化栏目文章数据 +formatData2(data) { + const pieData = [] + const barXAxisData = [] + const barSeriesData = [] + + data.forEach(item => { + pieData.push({ + name: item.columnName, + value: item.count + }) + barXAxisData.push(item.columnName) + barSeriesData.push(item.count) + }) + + this.chartData2.pie.data = pieData + this.chartData2.bar.xAxisData = barXAxisData + this.chartData2.bar.seriesData = barSeriesData + + // 根据选择的分局更新图表标题 + if (this.selectedDept) { + this.chartData2.pie.title = this.selectedDept + '各栏目文章数量比例' + this.chartData2.bar.title = this.selectedDept + '栏目文章数量统计' + } else if (this.canSelectDept) { + // 市局用户或admin用户未选择分局时显示默认标题 + this.chartData2.pie.title = '各栏目文章数量比例' + this.chartData2.bar.title = '栏目文章数量统计' + } else { + // 分局用户显示默认标题 + this.chartData2.pie.title = '各栏目文章数量比例' + this.chartData2.bar.title = '栏目文章数量统计' + } +} +``` + +### 8.6 性能优化措施 + +#### 8.6.1 查询优化 +1. **字段选择优化**:只查询需要的字段,减少数据传输量 +2. **索引优化**:在`pubdate`、`article_origin`、`column_id`字段上建立索引 +3. **分组统计**:使用SQL的GROUP BY进行数据聚合,减少应用层处理 + +#### 8.6.2 前端优化 +1. **懒加载**:图表容器滚动到可视区域时才进行渲染 +2. **数据缓存**:对相同查询条件的结果进行缓存 +3. **防抖处理**:对筛选条件变化进行防抖处理,避免频繁查询 + +### 8.7 安全设计 + +#### 8.7.1 数据权限控制 +1. **用户身份验证**:通过TokenService获取当前登录用户信息 +2. **数据访问控制**:根据用户部门层级控制数据访问范围 +3. **敏感信息保护**:不在前端暴露敏感数据 + +#### 8.7.2 接口安全 +1. **参数校验**:对时间参数进行有效性校验 +2. **访问控制**:通过`@PreAuthorize`注解控制接口访问权限 + +### 8.8 异常处理 + +#### 8.8.1 网络异常处理 +1. **请求超时处理**:设置合理的请求超时时间 +2. **断网重连**:检测网络状态变化,自动重连并重新加载数据 + +#### 8.8.2 数据异常处理 +1. **空数据处理**:对查询结果为空的情况进行特殊处理 +2. **数据格式异常**:对返回数据格式进行校验,处理格式不正确的数据 \ No newline at end of file diff --git "a/\346\262\263\351\201\223\347\256\241\347\220\206\347\263\273\347\273\237\347\224\250\346\210\267\344\275\277\347\224\250\345\234\272\346\231\257\350\257\264\346\230\216\346\226\207\346\241\243.md" "b/\346\262\263\351\201\223\347\256\241\347\220\206\347\263\273\347\273\237\347\224\250\346\210\267\344\275\277\347\224\250\345\234\272\346\231\257\350\257\264\346\230\216\346\226\207\346\241\243.md" new file mode 100644 index 0000000..6e72668 --- /dev/null +++ "b/\346\262\263\351\201\223\347\256\241\347\220\206\347\263\273\347\273\237\347\224\250\346\210\267\344\275\277\347\224\250\345\234\272\346\231\257\350\257\264\346\230\216\346\226\207\346\241\243.md" @@ -0,0 +1,695 @@ +# 河道管理系统用户使用场景说明文档 + +## 1. 文档概述 + +本文档详细描述了河道管理系统中各类用户的使用场景,包括市局/总局用户、分局用户和超级管理员的具体操作流程和使用场景,帮助用户更好地理解和使用系统各项功能。 + +## 2. 系统角色定义 + +### 2.1 超级管理员(admin) +- 系统最高权限用户 +- 可以访问所有数据和功能模块 +- 拥有用户管理、权限分配、系统配置等高级管理权限 + +### 2.2 市局/总局用户 +- 具有管理权限的用户 +- 可以查看所有分局数据 +- 拥有文章审核、发布等管理权限 +- 可以访问所有草稿箱功能 + +### 2.3 分局用户 +- 普通用户,只能查看本分局的数据 +- 具有基本的文章新增、修改、删除操作权限 +- 无法进行文章审核操作 +- 可以访问Uncheck草稿箱功能 + +## 3. 市局/总局用户使用场景 + +### 3.1 场景1:撰写并发布新文章 + +**前置条件**:用户已登录系统,具有文章管理权限 + +**操作步骤**: +1. 用户登录系统,进入文章管理主界面 +2. 点击"新增"按钮,进入文章编辑页面 +3. 填写文章基本信息: + - 输入文章标题 + - 选择文章所属栏目 + - 填写文章来源(系统会根据用户身份自动填充) + - 输入文章内容(支持富文本编辑) + - 填写责任编辑信息 +4. 上传审批表文件: + - 点击审批表上传区域 + - 选择本地审批表图片文件 + - 系统自动压缩并上传至OSS服务器 + - 确认审批表上传成功 +5. 保存草稿(可选): + - 点击"保存草稿"按钮将文章保存到Article草稿箱 + - 系统验证必填字段完整性 + - 数据保存至draft_article表 + - 显示保存成功提示 +6. 发布文章: + - 点击"确定"按钮提交文章 + - 系统验证所有必填字段和审批表 + - 文章数据保存至article表,draft状态设为0 + - 页面跳转至文章列表界面 + +**预期结果**: +- 文章成功发布到正式列表 +- 文章状态为已发布(draft=0) +- 可在文章列表中查看到新发布的文章 + +### 3.2 场景2:处理待审核文章 + +**前置条件**:用户已登录系统,具有文章审核权限 + +**操作步骤**: +1. 用户登录系统,进入未审核文章管理界面 +2. 查看待审核文章列表: + - 系统默认显示所有待审核状态(uncheck_status=0)的文章 + - 支持按标题、来源、栏目、作者等条件筛选 + - 支持按时间范围查询 +3. 审核文章: + - 点击列表中某篇文章的"审核"按钮 + - 系统打开审核弹窗,显示文章详细信息 + - 查看文章标题、副标题、来源、栏目、内容等信息 + - 查看审批表图片(如有上传) +4. 审核通过: + - 确认文章内容无误后点击"确认"按钮 + - 系统更新文章状态uncheck_status为1(审核通过) + - 设置文章发布时间为当前日期 + - 文章自动发布到正式文章列表 +5. 审核驳回(如有问题): + - 发现文章存在问题时点击"驳回"按钮 + - 填写驳回原因 + - 系统更新文章状态uncheck_status为2(审核驳回) + +**预期结果**: +- 审核通过的文章状态更新为已审核 +- 文章发布到正式列表,可供公众查看 +- 审核驳回的文章返回给发布者重新编辑 + +### 3.3 场景3:使用Article草稿箱 + +**前置条件**:用户已登录系统,在文章编辑过程中需要临时保存 + +**操作步骤**: +1. 用户在文章编辑页面: + - 正在编辑文章但未完成时 + - 点击"保存草稿"按钮 + - 系统验证必填字段(标题、内容、栏目、来源、作者、审批表) + - 数据保存至draft_article表 +2. 查看草稿箱: + - 在文章管理界面点击"草稿箱"按钮 + - 系统打开Article草稿箱弹窗 + - 显示所有保存的草稿列表 + - 列表包含标题、来源、栏目、创建时间、更新时间等信息 +3. 编辑草稿: + - 在草稿列表中找到目标草稿 + - 点击"编辑"按钮打开草稿编辑页面 + - 继续编辑文章内容 +4. 发布草稿: + - 编辑完成后点击"直接发布"按钮 + - 系统验证审批表是否已上传 + - 将草稿数据复制到正式文章表article中 + - 删除草稿箱中的对应记录 + - 文章状态设为已发布(draft=0) +5. 删除草稿: + - 在草稿列表中选择不需要的草稿 + - 点击"删除"按钮确认删除操作 + - 系统从draft_article表中删除对应记录 + + +**预期结果**: +- 草稿成功保存,可在草稿箱中查看和编辑 +- 草稿发布后自动从草稿箱删除 +- 文章成功发布到正式列表 + +### 3.4 场景4:隐藏/显示文章 + +**前置条件**:用户已登录系统,具有文章编辑权限,需要临时隐藏某些文章 + +**操作步骤**: +1. 用户登录系统,进入文章管理主界面 +2. 查找需要隐藏的文章: + - 在文章列表中找到目标文章 + - 确认文章当前状态为显示状态(status=0) +3. 隐藏文章: + - 点击文章操作列中的"隐藏"按钮 + - 系统弹出确认对话框 + - 用户确认隐藏操作 + - 系统更新文章status字段为1 + - 文章在列表中仍然可见,但前端用户无法查看 +4. 显示文章: + - 在文章列表中找到已隐藏的文章(status=1) + - 点击文章操作列中的"显示"按钮 + - 系统弹出确认对话框 + - 用户确认显示操作 + - 系统更新文章status字段为0 + - 文章恢复正常显示状态 +5. 批量隐藏文章: + - 在文章列表中选择多篇需要隐藏的文章 + - 点击工具栏中的"批量隐藏"按钮 + - 系统弹出确认对话框 + - 用户确认批量隐藏操作 + - 系统批量更新选中文章的status字段为1 +6. 批量显示文章: + - 在文章列表中选择多篇已隐藏的文章 + - 点击工具栏中的"批量显示"按钮 + - 系统弹出确认对话框 + - 用户确认批量显示操作 + - 系统批量更新选中文章的status字段为0 +7. 按条件批量操作: + - 设置查询条件(如标题、来源、栏目、时间范围等) + - 点击工具栏中的"按条件批量操作"按钮 + - 选择操作类型(隐藏或显示) + - 系统弹出确认对话框 + - 用户确认操作 + - 系统根据查询条件批量更新文章状态 + +**预期结果**: +- 单篇文章隐藏/显示操作成功执行 +- 批量隐藏/显示操作成功执行 +- 按条件批量操作成功执行 +- 隐藏的文章在前端不显示,但在后台管理界面仍可见 +- 显示的文章在前端正常显示 + +## 4. 分局用户使用场景 + +### 4.1 场景1:撰写并提交文章 + +**前置条件**:用户已登录系统,具有未审核文章管理权限 + +**操作步骤**: +1. 用户登录系统,进入未审核文章管理界面 +2. 新增文章: + - 点击"新增"按钮进入文章编辑页面 + - 填写文章标题、选择栏目、输入内容等信息 + - 系统自动填充文章来源为用户所属分局名称 + - 上传审批表文件 +3. 保存草稿(可选): + - 点击"保存草稿"按钮将文章保存到Uncheck草稿箱 + - 系统验证必填字段 + - 数据保存至uncheck_draft表 + - dept_name字段自动设置为用户所属分局名称 +4. 提交审核: + - 点击"确定"按钮提交文章 + - 系统验证所有必填字段和审批表 + - 文章数据保存至article_uncheck表 + - uncheck_status状态设为0(待审核) + - dept_name字段设置为用户所属分局名称 + +**预期结果**: +- 文章成功提交到未审核列表 +- 文章状态为待审核(uncheck_status=0) +- 仅市局/总局用户可以看到该文章 + +### 4.2 场景2:使用Uncheck草稿箱 + +**前置条件**:用户已登录系统,在文章编辑过程中需要临时保存 + +**操作步骤**: +1. 用户在未审核文章编辑页面: + - 点击"保存草稿"按钮 + - 系统将文章保存至uncheck_draft表 + - dept_name字段自动设置为用户所属分局名称(祖级分局) +2. 查看草稿箱: + - 在未审核文章管理界面点击"草稿箱"按钮 + - 系统打开Uncheck草稿箱弹窗 + - 显示用户所属分局的所有草稿(通过dept_name字段过滤) +3. 编辑草稿: + - 在草稿列表中找到目标草稿 + - 点击"编辑"按钮继续编辑 +4. 发布草稿: + - 编辑完成后点击"发布"按钮 + - 系统将草稿数据复制到article_uncheck表 + - 删除草稿箱中的对应记录 + - 文章进入待审核状态 +5. 删除草稿: + - 在草稿列表中选择不需要的草稿 + - 点击"删除"按钮确认删除操作 + - 系统从uncheck_draft表中删除对应记录 + +**预期结果**: +- 草稿成功保存并可在草稿箱中查看 +- 草稿发布后自动从草稿箱删除 +- 文章成功提交到未审核列表,等待市局审核 +- 不需要的草稿可以被删除 + +### 4.3 场景3:修改已提交的文章 + +**前置条件**:用户已登录系统,需要修改已提交但尚未审核通过的文章 + +**操作步骤**: +1. 用户登录系统,进入未审核文章管理界面 +2. 查找需要修改的文章: + - 在文章列表中找到目标文章 + - 确认文章状态为待审核(uncheck_status=0) +3. 修改文章: + - 点击文章对应的"修改"按钮 + - 进入文章编辑页面 + - 修改文章标题、内容等信息 + - 如需要,重新上传审批表文件 +4. 保存修改: + - 点击"确定"按钮保存修改 + - 系统更新article_uncheck表中的文章数据 + - 文章状态保持为待审核(uncheck_status=0) + +**预期结果**: +- 文章内容成功更新 +- 文章状态保持为待审核 +- 修改后的文章等待市局审核 + +## 5. 超级管理员使用场景 + +### 5.1 场景1:管理系统全局数据 + +**前置条件**:用户已登录系统,具有超级管理员权限 + +**操作步骤**: +1. 用户登录系统,进入系统管理界面 +2. 用户管理: + - 查看所有用户列表 + - 添加、修改、删除用户信息 + - 分配用户角色和部门 +3. 权限管理: + - 配置角色权限 + - 设置栏目访问权限 + - 管理部门权限关系 +4. 数据监控: + - 查看各模块数据统计 + - 监控系统运行状态 + - 处理异常数据 +5. 系统配置: + - 管理数据字典项 + - 配置系统参数 + - 管理栏目信息 + +**预期结果**: +- 系统配置管理功能正常 +- 用户权限分配合理 +- 系统运行稳定 + +### 5.2 场景2:跨部门数据查看 + +**前置条件**:用户已登录系统,需要进行数据分析 + +**操作步骤**: +1. 用户登录系统,进入各功能模块 +2. 数据筛选: + - 使用部门筛选条件查看指定部门数据 + - 按时间范围查询历史数据 + - 按状态筛选不同阶段的文章 +3. 数据导出: + - 选择需要导出的数据 + - 点击"导出"按钮生成Excel报表 + - 下载并保存报表文件 +4. 数据分析: + - 统计各部门文章发布数量 + - 分析文章审核通过率 + - 评估系统使用情况 + +**预期结果**: +- 可以查看所有部门的数据 +- 数据导出功能正常 +- 支持多维度数据分析 + +### 5.3 场景3:处理系统异常 + +**前置条件**:用户已登录系统,发现系统运行异常或数据问题 + +**操作步骤**: +1. 用户登录系统,进入系统监控界面 +2. 查看系统状态: + - 检查系统运行日志 + - 查看各模块运行状态 + - 识别异常情况 +3. 处理异常: + - 对于数据异常,进行数据修复或删除 + - 对于功能异常,检查配置或联系技术支持 + - 对于权限异常,调整用户权限设置 +4. 验证修复结果: + - 重新检查系统状态 + - 验证异常是否已解决 + - 记录处理过程和结果 + +**预期结果**: +- 系统异常得到及时处理 +- 系统恢复正常运行 +- 问题处理过程有记录可查 + +## 6. 系统管理场景 + +### 6.1 场景1:回收站管理 + +**前置条件**:用户已登录系统,具有相应管理权限 + +**操作步骤**: +1. 用户进入回收站管理界面 +2. 查看已删除的文章列表 +3. 恢复误删除的文章: + - 选择目标文章 + - 点击"恢复"按钮 + - 文章从回收站移除,恢复到原状态 +4. 彻底删除文章: + - 选择需要彻底删除的文章 + - 点击"删除"按钮确认操作 + - 文章从数据库中物理删除 + +**预期结果**: +- 已删除文章可以在回收站中查看 +- 误删除的文章可以成功恢复 +- 不需要的文章可以被彻底删除 + +### 6.2 场景2:栏目管理 + +**前置条件**:用户已登录系统,具有栏目管理权限 + +**操作步骤**: +1. 用户进入栏目管理界面 +2. 查看栏目列表 +3. 新增栏目: + - 点击"新增"按钮 + - 填写栏目名称、排序等信息 + - 设置栏目权限(role字段) +4. 修改栏目: + - 选择目标栏目点击"修改" + - 更新栏目信息 +5. 删除栏目: + - 选择不需要的栏目 + - 点击"删除"按钮 +6. 调整栏目权限: + - 选择目标栏目 + - 修改栏目访问权限设置 + - 保存权限配置 + +**预期结果**: +- 栏目信息可以被正确维护 +- 栏目权限设置生效 +- 栏目显示顺序符合设置 + +### 6.3 场景3:数据字典管理 + +**前置条件**:用户已登录系统,具有系统配置权限 + +**操作步骤**: +1. 用户进入数据字典管理界面 +2. 查看现有字典项 +3. 新增字典项: + - 选择字典类型 + - 填写字典标签和键值 +4. 修改字典项: + - 选择需要修改的字典项 + - 更新相关信息 +5. 删除字典项: + - 选择不需要的字典项 + - 执行删除操作 + +**预期结果**: +- 数据字典项可以被正确维护 +- 系统中各状态值与字典项保持一致 +- 字典项的修改对系统功能产生预期影响 + +### 6.4 场景4:系统参数配置 + +**前置条件**:用户已登录系统,具有系统管理员权限 + +**操作步骤**: +1. 用户进入系统参数配置界面 +2. 查看当前系统参数设置 +3. 修改系统参数: + - 选择需要修改的参数项 + - 输入新的参数值 + - 保存配置 +4. 验证参数生效: + - 检查相关功能是否按新参数运行 + - 处理参数配置异常情况 + +**预期结果**: +- 系统参数可以被正确修改 +- 参数修改后系统功能按新配置运行 +- 系统稳定性不受参数调整影响 + +## 7. 异常处理场景 + +### 7.1 场景1:审批表未上传 + +**前置条件**:用户在文章编辑过程中未上传审批表 + +**操作步骤**: +1. 用户在文章编辑页面未上传审批表 +2. 点击"确定"或"保存草稿"按钮 +3. 系统检测到审批表未上传 +4. 显示提示信息:"请上传审批表" +5. 用户上传审批表后重新提交 + +**预期结果**: +- 系统正确识别审批表缺失 +- 用户能够及时补充审批表 +- 文章提交流程可以顺利完成 + +### 7.2 场景2:网络异常导致上传失败 + +**前置条件**:用户在网络不稳定环境下上传文件 + +**操作步骤**: +1. 用户上传审批表或文章内容中的图片时网络中断 +2. 系统显示上传失败提示 +3. 用户检查网络连接 +4. 重新上传文件 +5. 系统提示上传成功后继续操作 + +**预期结果**: +- 系统能够正确处理网络异常 +- 用户可以重新上传文件 +- 上传成功后系统正常处理后续操作 + +### 7.3 场景3:权限不足访问受限 + +**前置条件**:用户尝试访问无权限的功能模块 + +**操作步骤**: +1. 分局用户尝试访问无权限的功能模块 +2. 系统拦截访问请求 +3. 显示权限不足提示 +4. 用户只能访问授权范围内的功能 + +**预期结果**: +- 系统正确实施权限控制 +- 无权限访问被有效阻止 +- 用户只能操作授权范围内的功能 + +### 7.4 场景4:数据验证失败 + +**前置条件**:用户输入的数据不符合系统要求 + +**操作步骤**: +1. 用户在表单中输入不符合要求的数据 +2. 点击提交按钮 +3. 系统验证数据并发现错误 +4. 显示具体的错误信息提示 +5. 用户根据提示修改数据后重新提交 + +**预期结果**: +- 系统能够准确验证数据合法性 +- 提供清晰的错误提示信息 +- 用户能够根据提示修正数据 + +## 8. 性能优化场景 + +### 8.1 场景1:图片压缩上传 + +**前置条件**:用户需要上传图片文件 + +**操作步骤**: +1. 用户上传审批表或文章图片 +2. 系统自动检测图片大小 +3. 对大于3MB的图片进行Canvas压缩 +4. 确保压缩后图片在1MB-5MB范围内 +5. 上传压缩后的图片到OSS服务器 + +**预期结果**: +- 大图片被有效压缩 +- 上传速度得到提升 +- 服务器存储空间得到合理利用 + +### 8.2 场景2:大数据量查询优化 + +**前置条件**:用户需要查询大量数据 + +**操作步骤**: +1. 用户查询大量历史文章数据 +2. 系统自动启用分页机制 +3. 按照pageNum和pageSize参数返回数据 +4. 减少单次查询数据量,提高响应速度 + +**预期结果**: +- 大数据量查询响应时间合理 +- 系统资源得到有效利用 +- 用户体验得到保障 + +### 8.3 场景3:缓存机制优化 + +**前置条件**:系统中存在频繁访问的数据 + +**操作步骤**: +1. 系统识别频繁访问的数据 +2. 对热点数据启用缓存机制 +3. 减少数据库查询次数 +4. 提高数据访问速度 + +**预期结果**: +- 热点数据访问速度显著提升 +- 数据库负载得到有效缓解 +- 系统整体性能得到优化 + +## 9. 首页数据图表统计场景 + +### 9.1 场景1:查看全局数据统计 + +**前置条件**:用户已登录系统,具有数据查看权限 + +**操作步骤**: +1. 用户登录系统后自动跳转到首页 +2. 系统加载默认时间范围(本年1月1日至今日)的统计数据 +3. 查看分局文章数量统计图表: + - 柱状图显示各分局文章发布数量对比 + - 饼图显示各分局文章数量占比情况 +4. 查看栏目文章数量统计图表: + - 柱状图显示各栏目文章发布数量对比 + - 饼图显示各栏目文章数量占比情况 +5. 根据需要调整时间范围筛选条件: + - 点击时间选择控件选择起始和结束日期 + - 系统自动刷新所有图表数据 + +**预期结果**: +- 首页图表正常加载并显示统计数据 +- 不同图表类型提供多样化的数据展示视角 +- 时间筛选功能可灵活调整数据展示范围 + +### 9.2 场景2:按分局筛选数据(市局用户) + +**前置条件**:用户具有市局/总局或admin权限,可选择查看指定分局数据 + +**操作步骤**: +1. 在栏目统计区域找到分局选择下拉框 +2. 点击下拉框查看可选分局列表 +3. 选择目标分局进行数据筛选 +4. 系统自动刷新栏目统计图表,显示选定分局的数据 +5. 可结合时间范围筛选功能进行更精确的数据分析 + +**预期结果**: +- 分局选择功能正常使用 +- 选定分局后图表数据正确更新 +- 支持分局与时间范围联合筛选 + +### 9.3 场景3:图表交互操作 + +**前置条件**:用户已成功加载数据图表 + +**操作步骤**: +1. 鼠标悬停在图表元素上查看详细信息: + - 在柱状图柱子上悬停查看具体数值 + - 在饼图扇形区域悬停查看数值和百分比 +2. 点击图例项进行数据系列显示控制: + - 点击图例项隐藏对应数据系列 + - 再次点击图例项显示对应数据系列 +3. 查看图表标题和坐标轴说明: + - 理解图表横纵轴含义 + - 掌握数据统计维度 + +**预期结果**: +- 图表交互功能正常使用 +- 鼠标悬停可显示详细数据信息 +- 图例控制可灵活调整数据显示 + +## 10. 文章隐藏显示使用场景 + +### 10.1 场景1:临时隐藏敏感文章 + +**前置条件**:市局/总局用户发现某篇文章内容存在敏感信息需要临时处理 + +**操作步骤**: +1. 用户在文章列表中找到包含敏感信息的文章 +2. 点击文章操作列中的"隐藏"按钮 +3. 系统弹出确认对话框,用户确认隐藏操作 +4. 系统更新文章status字段为1,文章立即在前端隐藏 +5. 用户联系文章作者或相关部门处理敏感内容 +6. 敏感内容处理完成后,用户点击"显示"按钮恢复文章显示 + +**预期结果**: +- 敏感文章立即从前端页面隐藏,避免公众查看 +- 后台管理界面仍可查看和管理隐藏文章 +- 处理完成后可快速恢复文章显示 + +### 10.2 场景2:批量隐藏过期文章 + +**前置条件**:市局/总局用户需要隐藏一批已过时效的文章 + +**操作步骤**: +1. 用户设置查询条件,筛选出需要隐藏的过期文章 + - 设置时间范围筛选条件 + - 可能还会结合栏目、来源等条件 +2. 选择所有筛选出的文章 +3. 点击工具栏中的"批量隐藏"按钮 +4. 系统弹出确认对话框,用户确认批量隐藏操作 +5. 系统批量更新所有选中文章的status字段为1 +6. 文章列表刷新,显示操作结果 + +**预期结果**: +- 大量过期文章被快速隐藏 +- 操作效率高,减少重复点击 +- 前端用户无法查看已隐藏的过期文章 + +### 10.3 场景3:按条件隐藏特定类型文章 + +**前置条件**:市局/总局用户需要根据特定条件隐藏一批文章 + +**操作步骤**: +1. 用户设置复杂的查询条件来筛选特定类型的文章 + - 可能包括时间范围、栏目、标题关键词等 +2. 点击工具栏中的"按条件批量操作"按钮 +3. 在弹出的对话框中选择操作类型为"批量隐藏" +4. 系统显示将要操作的文章数量,用户确认操作 +5. 系统根据查询条件批量更新文章status字段为1 +6. 文章列表刷新,显示操作结果 + +**预期结果**: +- 可以根据复杂条件精确筛选需要隐藏的文章 +- 一次性完成大量文章的隐藏操作 +- 操作过程安全可控,有确认机制 + +### 10.4 场景4:恢复误隐藏的文章 + +**前置条件**:用户误操作隐藏了不应隐藏的文章 + +**操作步骤**: +1. 用户在文章列表中找到被误隐藏的文章(status=1) +2. 点击文章操作列中的"显示"按钮 +3. 系统弹出确认对话框,用户确认显示操作 +4. 系统更新文章status字段为0 +5. 文章立即恢复在前端的正常显示 + +**预期结果**: +- 误隐藏的文章可快速恢复显示 +- 操作简单,只需一次点击 +- 文章状态恢复正常 + +### 10.5 场景5:批量恢复季节性文章 + +**前置条件**:季节性文章展示期到来,需要批量恢复之前隐藏的文章 + +**操作步骤**: +1. 用户设置查询条件,筛选出需要恢复的季节性文章 + - 可能通过标题关键词、栏目等方式筛选 +2. 选择所有筛选出的文章 +3. 点击工具栏中的"批量显示"按钮 +4. 系统弹出确认对话框,用户确认批量显示操作 +5. 系统批量更新所有选中文章的status字段为0 +6. 文章列表刷新,显示操作结果 +7. 前端用户可以正常查看恢复的文章 + +**预期结果**: +- 季节性文章按时恢复显示 +- 操作效率高,支持批量处理 +- 前端展示内容及时更新 \ No newline at end of file diff --git "a/\350\215\211\347\250\277\345\212\237\350\203\275\346\224\271\350\277\233\350\257\264\346\230\216.md" "b/\350\215\211\347\250\277\345\212\237\350\203\275\346\224\271\350\277\233\350\257\264\346\230\216.md" new file mode 100644 index 0000000..36075c6 --- /dev/null +++ "b/\350\215\211\347\250\277\345\212\237\350\203\275\346\224\271\350\277\233\350\257\264\346\230\216.md" @@ -0,0 +1,35 @@ +# 草稿功能改进说明 + +## 概述 +本次更新实现了用户提出的建议,创建单独的草稿表来存放草稿文章,使逻辑更加清晰。 + +## 主要变更 + +### 1. 后端变更 +- 创建了DraftArticle实体类,用于表示草稿文章 +- 创建了DraftArticleMapper接口和对应的XML文件,用于数据库操作 +- 创建了IDraftArticleService接口和DraftArticleServiceImpl实现类,用于业务逻辑处理 +- 修改了ArticleController,添加了对单独草稿表的支持: + - 保存草稿:将草稿保存到draft_article表 + - 更新草稿:更新draft_article表中的草稿 + - 发布草稿:将草稿从draft_article表移动到article表,并删除草稿表中的记录 + - 查询草稿列表:从draft_article表查询草稿列表 + +### 2. 前端变更 +- 修改了API文件,添加了删除草稿的API方法 +- 修改了前端页面,使用新的删除草稿API方法 + +### 3. 数据库变更 +- 创建了draft_article表,用于存储草稿文章 +- 该表结构与article表基本一致,但不包含draft字段 + +## 优势 +1. 逻辑更清晰:草稿文章和正式文章分别存储在不同的表中 +2. 性能更好:查询正式文章时不再需要过滤草稿状态 +3. 易于维护:草稿相关的操作都在单独的表中进行,不会影响正式文章表 + +## 使用说明 +1. 用户在新增或修改文章时,如果暂时没有审批表,可以点击"保存草稿"按钮将文章保存为草稿 +2. 草稿会存储在draft_article表中,不会显示在正式文章列表中 +3. 用户可以在草稿箱中查看、编辑、删除或发布草稿 +4. 发布草稿时,草稿会从draft_article表移动到article表,并从草稿表中删除 \ No newline at end of file diff --git "a/\351\231\204\344\273\266\344\270\212\344\274\240\345\212\237\350\203\275\346\265\213\350\257\225\346\214\207\345\215\227.md" "b/\351\231\204\344\273\266\344\270\212\344\274\240\345\212\237\350\203\275\346\265\213\350\257\225\346\214\207\345\215\227.md" new file mode 100644 index 0000000..841030d --- /dev/null +++ "b/\351\231\204\344\273\266\344\270\212\344\274\240\345\212\237\350\203\275\346\265\213\350\257\225\346\214\207\345\215\227.md" @@ -0,0 +1,77 @@ +# 附件上传功能测试指南 + +## 测试目标 +验证附件上传功能的改进是否正常工作,包括: +1. 选择附件后立即上传并预览 +2. 点击附件可以下载 +3. 删除附件功能正常 +4. 表单提交时附件信息正确保存 + +## 测试步骤 + +### 1. 附件上传和预览测试 +1. 打开文章管理页面 +2. 点击"新增"或"修改"按钮打开文章编辑对话框 +3. 点击"点击上传"按钮选择一个附件文件 +4. 观察: + - 文件应立即开始上传 + - 上传成功后,应在上传组件中显示附件名称和可点击的链接 + - 控制台应输出"附件上传成功,可点击下载预览"消息 + +### 2. 附件下载测试 +1. 在上传附件后,点击显示的附件链接 +2. 观察: + - 应该触发文件下载 + - 下载的文件应与上传的文件一致 + +### 3. 附件删除测试 +1. 在上传附件后,点击附件旁边的"×"删除按钮 +2. 观察: + - 附件应从上传组件中移除 + - `temporaryAttachmentUrl`变量应被清空 + - 表单中的`attachment`字段应被设置为null + +### 4. 表单提交测试 +1. 上传一个附件 +2. 填写其他必填字段 +3. 点击"确定"或"保存草稿"按钮提交表单 +4. 观察: + - 表单应成功提交 + - 附件URL应正确保存到数据库 + - 在文章列表中应能看到附件信息 + +### 5. 草稿功能测试 +1. 上传一个附件 +2. 点击"保存草稿"按钮 +3. 打开草稿箱,找到刚保存的草稿 +4. 点击"编辑"按钮打开草稿 +5. 观察: + - 附件信息应正确显示 + - 可以下载附件 + - 可以删除附件 + - 发布草稿时附件信息应正确保存 + +## 预期结果 +- 附件上传后立即显示预览链接 +- 点击附件链接可以下载文件 +- 删除附件后界面和数据都正确更新 +- 表单提交时附件信息正确保存到数据库 +- 草稿功能中附件信息正确处理 + +## 常见问题排查 +1. 如果附件上传后没有显示预览: + - 检查控制台是否有错误信息 + - 确认`handleAttachmentFileChange`方法是否正确执行 + - 检查`temporaryAttachmentUrl`变量是否正确设置 + +2. 如果点击附件无法下载: + - 检查`downloadAttachment`方法是否正确实现 + - 确认附件URL是否有效 + +3. 如果删除附件后数据没有正确更新: + - 检查`handleAttachmentRemove`方法是否正确清空相关变量 + - 确认表单中的`attachment`字段是否被设置为null + +4. 如果表单提交时附件信息没有正确保存: + - 检查`submitForm`、`handleSaveDraft`等方法中是否正确使用了`temporaryAttachmentUrl` + - 确认数据库中的`attachment`字段是否正确更新 \ No newline at end of file diff --git "a/\351\231\204\344\273\266\344\270\212\344\274\240\345\222\214\351\242\204\350\247\210\345\212\237\350\203\275\345\256\236\347\216\260\346\200\273\347\273\223.md" "b/\351\231\204\344\273\266\344\270\212\344\274\240\345\222\214\351\242\204\350\247\210\345\212\237\350\203\275\345\256\236\347\216\260\346\200\273\347\273\223.md" new file mode 100644 index 0000000..44950c9 --- /dev/null +++ "b/\351\231\204\344\273\266\344\270\212\344\274\240\345\222\214\351\242\204\350\247\210\345\212\237\350\203\275\345\256\236\347\216\260\346\200\273\347\273\223.md" @@ -0,0 +1,43 @@ +# 附件上传和预览功能实现总结 + +## 已完成的工作 + +### 1. 后端接口完善 +- 在Article实体类中添加了attachment字段 +- 在数据库表中添加了attachment字段 +- 在Controller中添加了附件上传接口 +- 在Mapper中添加了对attachment字段的支持 + +### 2. 前端功能实现 +- 在Vue组件中添加了附件上传的相关方法: + - handleAttachmentHttpRequest: 附件上传请求处理 + - uploadAttachmentToServer: 上传附件文件到服务器 + - beforeAttachmentUpload: 附件文件上传前处理 + - handleAttachmentFileChange: 附件文件变化处理 + - handleAttachmentRemove: 附件文件移除处理 + - handlePreviewAttachment: 附件预览功能 + +- 在表单提交逻辑中添加了附件上传处理: + - submitForm: 在提交文章时处理附件上传 + - handleSaveDraft: 在保存草稿时处理附件上传 + - handleUpdateDraft: 在更新草稿时处理附件上传 + - handlePublishFromDraft: 在发布草稿时处理附件上传 + +- 在前端页面上添加了附件预览按钮,用户可以点击预览已上传的附件 + +### 3. 功能特点 +- 支持各种类型的文件上传 +- 在表单提交、草稿保存、草稿更新和草稿发布时都会处理附件上传 +- 提供附件预览功能,用户可以在线预览已上传的附件 +- 附件信息会保存到数据库中,便于后续查看和管理 + +## 使用说明 +1. 用户在新增或修改文章时,可以通过"点击上传"按钮上传附件 +2. 上传成功后,会显示"预览附件"按钮 +3. 点击"预览附件"按钮可以在新窗口中查看附件内容 +4. 附件会随着文章的保存、草稿操作等流程自动上传到服务器 + +## 注意事项 +- 附件上传功能已集成到所有相关的操作流程中 +- 预览功能会直接在浏览器中打开附件链接 +- 附件路径会保存在数据库的attachment字段中 \ No newline at end of file diff --git "a/\351\231\204\344\273\266\344\270\213\350\275\275\346\214\211\351\222\256\345\212\237\350\203\275\346\265\213\350\257\225\346\214\207\345\215\227.md" "b/\351\231\204\344\273\266\344\270\213\350\275\275\346\214\211\351\222\256\345\212\237\350\203\275\346\265\213\350\257\225\346\214\207\345\215\227.md" new file mode 100644 index 0000000..34c125e --- /dev/null +++ "b/\351\231\204\344\273\266\344\270\213\350\275\275\346\214\211\351\222\256\345\212\237\350\203\275\346\265\213\350\257\225\346\214\207\345\215\227.md" @@ -0,0 +1,53 @@ +# 附件下载按钮功能测试指南 + +## 测试目标 +验证在附件上传组件旁添加的下载按钮是否正常工作 + +## 测试步骤 + +### 1. 下载按钮显示测试 +1. 打开文章管理页面 +2. 点击"新增"或"修改"按钮打开文章编辑对话框 +3. 点击"点击上传"按钮选择一个附件文件 +4. 观察: + - 文件上传成功后,应显示"下载附件"按钮 + - 当没有附件时,不应显示下载按钮 + +### 2. 下载按钮功能测试 +1. 在上传附件后,点击"下载附件"按钮 +2. 观察: + - 应该触发文件下载 + - 下载的文件应与上传的文件一致 + - 文件名应正确显示 + +### 3. 删除附件后按钮状态测试 +1. 在上传附件后,点击附件旁边的"×"删除按钮 +2. 观察: + - "下载附件"按钮应消失 + - 界面应恢复正常状态 + +### 4. 编辑已有附件的文章测试 +1. 打开一个已有附件的文章进行编辑 +2. 观察: + - 应显示"下载附件"按钮 + - 点击按钮应能正常下载附件 + +## 预期结果 +- 上传附件后正确显示下载按钮 +- 点击下载按钮能正常下载附件 +- 删除附件后下载按钮消失 +- 编辑已有附件的文章时能正常显示和使用下载按钮 + +## 常见问题排查 +1. 如果下载按钮没有显示: + - 检查`form.attachment`或`temporaryAttachmentUrl`是否有值 + - 确认v-if条件是否正确 + +2. 如果点击下载按钮没有反应: + - 检查浏览器控制台是否有错误信息 + - 确认downloadAttachment方法是否正确执行 + - 检查附件URL是否有效 + +3. 如果下载的文件不正确: + - 检查附件URL是否正确 + - 确认服务器上的文件是否完整 \ No newline at end of file -- Gitee From a79be043dff44c884d0d015e2ef6bf8921d66e6b Mon Sep 17 00:00:00 2001 From: gitYA <2928526103@qq.com> Date: Sun, 28 Sep 2025 02:49:52 +0800 Subject: [PATCH 004/120] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=88=B0=E5=9B=9E=E9=80=80=E7=89=88=E6=9C=AC=E5=88=86=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/controller/ArticleController.java | 208 +----------------- .../controller/ArticleUncheckController.java | 1 + .../main/java/com/ruoyi/domain/Article.java | 2 +- .../java/com/ruoyi/domain/RecoverStation.java | 3 + .../service/impl/ArticleServiceImpl.java | 26 ++- .../mapper/article/ArticleMapper.xml | 9 +- .../mapper/draft/DraftArticleMapper.xml | 4 +- .../mapper/river_news/RiverNewsMapper.xml | 2 +- .../mapper/station/RecoverStationMapper.xml | 6 +- ruoyi-ui/src/views/article/article/index.vue | 25 +-- .../src/views/river_news/river_news/index.vue | 2 +- ruoyi-ui/src/views/system/dept/index.vue | 1 + 12 files changed, 48 insertions(+), 241 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleController.java b/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleController.java index 46e5cd1..57910c9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleController.java @@ -30,8 +30,6 @@ import com.ruoyi.system.mapper.SysDeptMapper; import com.ruoyi.system.mapper.SysUserMapper; import com.sun.xml.bind.v2.TODO; import org.apache.catalina.User; -import org.apache.pdfbox.pdmodel.PDDocument; -import org.apache.pdfbox.rendering.PDFRenderer; import org.dromara.x.file.storage.core.FileInfo; import org.dromara.x.file.storage.core.FileStorageService; import org.springframework.beans.factory.annotation.Value; @@ -672,17 +670,6 @@ public class ArticleController extends BaseController article.setAttachment(fileInfo.getUrl()); // 更新数据库中的attachment字段 articleMapper.updateArticle(article); - - // 如果上传的是PDF文件,触发PDF解析 - String contentType = file.getContentType(); - System.out.println("上传文件的Content-Type: " + contentType); - if (contentType != null && contentType.equals("application/pdf")) { - System.out.println("检测到PDF文件,触发PDF解析任务,文章ID: " + id); - // 异步处理PDF解析任务 - pdfParseTaskService.processPdfParseTask(id); - } else { - System.out.println("不是PDF文件或Content-Type为空,不触发解析"); - } } System.out.println("文章附件:"+fileInfo.getUrl()); @@ -694,201 +681,7 @@ public class ArticleController extends BaseController } } - /** - * 解析PDF文件为图片并保存到pdfImagePaths字段 - */ - private void parsePdfToImages(Article article) { - try { - // 检查文章是否有附件且附件是PDF文件 - String attachmentUrl = article.getAttachment(); - if (attachmentUrl == null || attachmentUrl.isEmpty()) { - return; - } - - // 检查附件URL是否指向PDF文件(简单检查文件扩展名) - if (!attachmentUrl.toLowerCase().endsWith(".pdf")) { - return; - } - - // 从OSS下载PDF文件 - // 注意:这里需要根据您的OSS配置来实现文件下载逻辑 - // 由于直接从URL下载文件可能涉及安全和权限问题,这里提供一个基础实现 - try { - URL url = new URL(attachmentUrl); - // 设置连接超时和读取超时 - HttpURLConnection connection = (HttpURLConnection) url.openConnection(); - connection.setConnectTimeout(5000); // 5秒连接超时 - connection.setReadTimeout(30000); // 30秒读取超时 - - // 检查响应码 - if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { - try (InputStream inputStream = connection.getInputStream()) { - // 将InputStream转换为MultipartFile或直接处理 - parsePdfInputStreamToImages(article, inputStream); - } - } else { - System.err.println("下载PDF文件失败,HTTP响应码: " + connection.getResponseCode()); - } - connection.disconnect(); - } catch (Exception e) { - System.err.println("下载PDF文件失败: " + e.getMessage()); - } - - } catch (Exception e) { - System.err.println("PDF解析失败: " + e.getMessage()); - // 发生异常时不中断主流程,仅记录日志 - } - } - - /** - * 解析PDF输入流为图片并保存到pdfImagePaths字段 - */ - private void parsePdfInputStreamToImages(Article article, InputStream pdfInputStream) throws IOException { - // 1. PDF转图片(处理所有页) - PDDocument document = PDDocument.load(pdfInputStream); - int totalPages = document.getNumberOfPages(); - if (totalPages == 0) { - document.close(); - return; - } - - PDFRenderer renderer = new PDFRenderer(document); - List imageUrls = new ArrayList<>(); // 存储所有页图片URL - String basePath = "article/pdf-images/"; // OSS基础路径 - String uuid = UUID.randomUUID().toString(); // 生成唯一ID用于关联同PDF的多页图片 - - // 循环处理每一页 - for (int pageNum = 0; pageNum < totalPages; pageNum++) { - // 渲染当前页(1.5f=缩放比例,值越大清晰度越高) - BufferedImage image = renderer.renderImage(pageNum, 1.5f); - - // 2. 图片转为输入流 - ByteArrayOutputStream os = new ByteArrayOutputStream(); - boolean writeSuccess = ImageIO.write(image, "png", os); - if (!writeSuccess) { - document.close(); // 确保关闭文档 - return; - } - InputStream imageInputStream = new ByteArrayInputStream(os.toByteArray()); - - // 3. 上传当前页图片至OSS(文件名包含页号,避免冲突) - String fileName = uuid + "_page" + (pageNum + 1) + ".png"; // 格式:uuid_page1.png - String objectName = basePath + LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd")); - - FileInfo fileInfo = fileStorageService.of(imageInputStream) - .setPlatform("aliyun-oss-1") - .setPath(objectName) - .setOriginalFilename(fileName) - .setContentType("image/png") - .upload(); - - if (fileInfo == null || fileInfo.getUrl() == null) { - document.close(); - return; - } - imageUrls.add(fileInfo.getUrl()); // 直接使用上传后的URL - } - document.close(); // 所有页处理完毕后关闭文档 - - // 4. 存储多图片URL至数据库(逗号分隔) - article.setPdfImagePaths(String.join(",", imageUrls)); - System.out.println("文章PDF图片:" + article.getPdfImagePaths()); - } - - /** - * PDF转图片并上传OSS(支持多页,存储至专用字段pdfImagePaths) - */ - @Anonymous - @PostMapping("/pdfToImage/{id}") - public AjaxResult pdfToImage(@PathVariable Long id, @RequestParam("pdfFile") MultipartFile pdfFile) throws Exception { - try { - // 1. 校验文件 - if (pdfFile.isEmpty()) { - return AjaxResult.error("上传文件为空"); - } - String contentType = pdfFile.getContentType(); - if (contentType == null || !contentType.equals("application/pdf")) { - return AjaxResult.error("请上传PDF格式文件"); - } - - // 2. PDF转图片(处理所有页) - PDDocument document = PDDocument.load(pdfFile.getInputStream()); - int totalPages = document.getNumberOfPages(); - if (totalPages == 0) { - document.close(); - return AjaxResult.error("PDF文件无内容"); - } - - PDFRenderer renderer = new PDFRenderer(document); - List imageUrls = new ArrayList<>(); // 存储所有页图片URL - String basePath = "article/pdf-images/"; // OSS基础路径 - String uuid = UUID.randomUUID().toString(); // 生成唯一ID用于关联同PDF的多页图片 - - // 循环处理每一页 - for (int pageNum = 0; pageNum < totalPages; pageNum++) { - // 渲染当前页(1.5f=缩放比例,值越大清晰度越高) - BufferedImage image = renderer.renderImage(pageNum, 1.5f); - - // 3. 图片转为输入流 - ByteArrayOutputStream os = new ByteArrayOutputStream(); - boolean writeSuccess = ImageIO.write(image, "png", os); - if (!writeSuccess) { - document.close(); // 确保关闭文档 - return AjaxResult.error("第" + (pageNum + 1) + "页图片转换失败"); - } - InputStream imageInputStream = new ByteArrayInputStream(os.toByteArray()); - - // 4. 上传当前页图片至OSS(文件名包含页号,避免冲突) - String fileName = uuid + "_page" + (pageNum + 1) + ".png"; // 格式:uuid_page1.png - String objectName = basePath + LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd")); - - FileInfo fileInfo = fileStorageService.of(imageInputStream) - .setPlatform("aliyun-oss-1") - .setPath(objectName) - .setOriginalFilename(fileName) - .setContentType("image/png") - .upload(); - - if (fileInfo == null || fileInfo.getUrl() == null) { - document.close(); - return AjaxResult.error("第" + (pageNum + 1) + "页图片上传OSS失败"); - } - /*// 5. 处理URL:截取 .png 后的多余字符 - String originalUrl = fileInfo.getUrl(); - int pngIndex = originalUrl.lastIndexOf(".png"); - if (pngIndex != -1) { - String correctedUrl = originalUrl.substring(0, pngIndex + 4); // 保留 ".png" - imageUrls.add(correctedUrl); - } else { - imageUrls.add(originalUrl); // 异常情况直接使用原始URL - }*/ - imageUrls.add(fileInfo.getUrl()); // 直接使用上传后的URL - } - document.close(); // 所有页处理完毕后关闭文档 - - // 5. 存储多图片URL至数据库(逗号分隔,或JSON格式) - Article article = articleService.getById(id); - if (article == null) { - return AjaxResult.error("文章不存在"); - } - // 多URL用逗号分隔存储(或使用JSON格式:String.join(",", imageUrls) 可改为 new Gson().toJson(imageUrls)) - article.setPdfImagePaths(String.join(",", imageUrls)); - System.out.println("文章PDF图片:"+article.getPdfImagePaths()); - boolean updateResult = articleService.updateById(article); - if (!updateResult) { - return AjaxResult.error("图片路径更新数据库失败"); - } - // 6. 返回所有图片URL - AjaxResult ajax = AjaxResult.success(); - ajax.put("pdfImageUrls", imageUrls); // 前端可通过数组获取所有页图片 - ajax.put("message", "PDF多页转图片成功,共" + totalPages + "页"); - return ajax; - - } catch (Exception e) { - return AjaxResult.error("处理失败: " + e.getMessage()); - } - } // ... 其他现有代码 ... @@ -910,6 +703,7 @@ public class ArticleController extends BaseController // 查询数据列表 List
articleList = articleService.query() .eq("column_id", columnId) + .orderByDesc("pubdate") .list(); // 用PageInfo对结果进行包装 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleUncheckController.java b/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleUncheckController.java index 877ba9d..1a5cb8f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleUncheckController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleUncheckController.java @@ -6,6 +6,7 @@ import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.*; import javax.servlet.http.HttpServletResponse; +import com.ruoyi.service.impl.PdfParseTaskServiceImpl; import com.ruoyi.common.annotation.Anonymous; import com.github.pagehelper.PageInfo; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/domain/Article.java b/ruoyi-admin/src/main/java/com/ruoyi/domain/Article.java index a71a2d7..93539d7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/domain/Article.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/domain/Article.java @@ -108,7 +108,7 @@ public class Article extends OurBaseEntity @TableField(exist = false) private String endPubdate; - @TableField("pdf_image_paths") // 数据库表需同步新增该字段(VARCHAR类型,长度255+) + @TableField("pdf_image_paths") private String pdfImagePaths; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/domain/RecoverStation.java b/ruoyi-admin/src/main/java/com/ruoyi/domain/RecoverStation.java index 850933a..01e9914 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/domain/RecoverStation.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/domain/RecoverStation.java @@ -115,4 +115,7 @@ public class RecoverStation extends OurBaseEntity @TableField(value="attachment") private String attachment; + @TableField("pdf_image_paths") + private String pdfImagePaths; + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/service/impl/ArticleServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/service/impl/ArticleServiceImpl.java index b224c4f..6b341bc 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/service/impl/ArticleServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/service/impl/ArticleServiceImpl.java @@ -22,6 +22,9 @@ import org.springframework.stereotype.Service; import java.util.*; +import org.dromara.x.file.storage.core.FileInfo; +import org.dromara.x.file.storage.core.FileStorageService; + /** * articleService业务层处理 * @@ -31,15 +34,19 @@ import java.util.*; public class ArticleServiceImpl extends ServiceImpl implements ArticleService { @Autowired private ArticleMapper articleMapper; - @Autowired - private ConlumnMapper conlumnMapper; @Autowired - private RecoverStationMapper recoverStationMapper; + private FileStorageService fileStorageService; @Autowired private PdfParseTaskServiceImpl pdfParseTaskService; + @Autowired + private ConlumnMapper conlumnMapper; + + @Autowired + private RecoverStationMapper recoverStationMapper; + /** * 判断部门是否直接隶属于荆州市长江河道管理局(一级子部门) @@ -613,6 +620,9 @@ public class ArticleServiceImpl extends ServiceImpl impl recoverStation.setStatus(article.getStatus()); if (article.getAttachment()!= null) recoverStation.setAttachment(article.getAttachment()); + //pdf图片路径 + if (article.getPdfImagePaths()!= null) + recoverStation.setPdfImagePaths(article.getPdfImagePaths()); // 设置默认有效期为30天 recoverStation.setValidDate(30); recoverStation.setType(0L);//类型为已审核的文章数据回收 @@ -666,6 +676,11 @@ public class ArticleServiceImpl extends ServiceImpl impl article.setColumnId(conlumn.getId()); } + // 检查是否需要清除PDF图片预览路径 + if (article.getAttachment() == null || article.getAttachment().isEmpty()) { + article.setPdfImagePaths(null); + } + // 先插入文章 int result = articleMapper.insertArticle(article); @@ -696,6 +711,11 @@ public class ArticleServiceImpl extends ServiceImpl impl article.setColumnId(conlumn.getId()); } + // 检查是否需要清除PDF图片预览路径 + if (article.getAttachment() == null || article.getAttachment().isEmpty()) { + article.setPdfImagePaths(null); + } + // 更新文章 int result = articleMapper.updateArticle(article); diff --git a/ruoyi-admin/src/main/resources/mapper/article/ArticleMapper.xml b/ruoyi-admin/src/main/resources/mapper/article/ArticleMapper.xml index b085bc9..ba14da6 100644 --- a/ruoyi-admin/src/main/resources/mapper/article/ArticleMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/article/ArticleMapper.xml @@ -22,7 +22,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - @@ -106,8 +105,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" little_title1, little_title2, attachment, - - + pdf_image_paths, + #{title}, #{createTime}, @@ -124,6 +123,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{littleTitle1}, #{littleTitle2}, #{attachment}, + #{pdfImagePaths}, @@ -144,7 +144,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" little_title1=#{littleTitle1}, little_title2=#{littleTitle2}, attachment=#{attachment}, - pdf_image_paths= #{pdfImagePaths}, + pdf_image_paths= #{pdfImagePaths}, where article_id = #{articleId} @@ -163,6 +163,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" pubdate=#{pubdate}, appval=#{appval}, attachment= #{attachment}, + pdf_image_paths= #{pdfImagePaths}, cover_path=#{coverPath}, little_title1=#{littleTitle1}, little_title2=#{littleTitle2}, diff --git a/ruoyi-admin/src/main/resources/mapper/draft/DraftArticleMapper.xml b/ruoyi-admin/src/main/resources/mapper/draft/DraftArticleMapper.xml index dcadf57..df47ae2 100644 --- a/ruoyi-admin/src/main/resources/mapper/draft/DraftArticleMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/draft/DraftArticleMapper.xml @@ -71,7 +71,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" create_time, update_by, update_time, - attachment, + attachment, #{title}, @@ -92,7 +92,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{createTime}, #{updateBy}, #{updateTime}, - #{attachment}, + #{attachment}, diff --git a/ruoyi-admin/src/main/resources/mapper/river_news/RiverNewsMapper.xml b/ruoyi-admin/src/main/resources/mapper/river_news/RiverNewsMapper.xml index b7e1e98..4c730b3 100644 --- a/ruoyi-admin/src/main/resources/mapper/river_news/RiverNewsMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/river_news/RiverNewsMapper.xml @@ -212,7 +212,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/ruoyi-admin/src/main/resources/mapper/station/RecoverStationMapper.xml b/ruoyi-admin/src/main/resources/mapper/station/RecoverStationMapper.xml index 38cb799..9341373 100644 --- a/ruoyi-admin/src/main/resources/mapper/station/RecoverStationMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/station/RecoverStationMapper.xml @@ -26,10 +26,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + - select id, title, article_origin, column_id, content, author, create_time, create_by, update_time, update_by, remark, cover_path, ip, pubdate, appval, auditId, articleId, uncheckId, state, type, valid_date from recover_station + select * from recover_station \ No newline at end of file -- Gitee From 67b88b3ba257d6a35c2a1100bbb4e4683abb23ae Mon Sep 17 00:00:00 2001 From: jayther2020 Date: Sun, 12 Oct 2025 20:21:31 +0800 Subject: [PATCH 022/120] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/domain/Article.java | 4 +-- .../java/com/ruoyi/domain/ArticleUncheck.java | 4 +-- .../java/com/ruoyi/domain/DraftArticle.java | 4 +-- .../main/java/com/ruoyi/domain/RiverNews.java | 4 +-- .../main/java/com/ruoyi/domain/Toutiao.java | 4 +-- .../java/com/ruoyi/domain/UncheckDraft.java | 4 +-- .../administration/administration/index.vue | 4 +-- ruoyi-ui/src/views/article/article/index.vue | 26 +++++++++---------- ruoyi-ui/src/views/draft/index.vue | 12 ++++----- .../src/views/river_news/river_news/index.vue | 10 +++---- ruoyi-ui/src/views/toutiao/toutiao/index.vue | 10 +++---- ruoyi-ui/src/views/uncheck/uncheck/index.vue | 18 ++++++------- ...64\346\230\216\346\226\207\346\241\243.md" | 2 +- 13 files changed, 53 insertions(+), 53 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/domain/Article.java b/ruoyi-admin/src/main/java/com/ruoyi/domain/Article.java index 73d8e7b..8c943aa 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/domain/Article.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/domain/Article.java @@ -50,8 +50,8 @@ public class Article extends OurBaseEntity @TableField(value = "content") private String content; - /** 视频来源 */ - @Excel(name = "视频来源") + /** 文章来源 */ + @Excel(name = "文章来源") @TableField(value = "author") private String author; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/domain/ArticleUncheck.java b/ruoyi-admin/src/main/java/com/ruoyi/domain/ArticleUncheck.java index 9ce872d..bfd138d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/domain/ArticleUncheck.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/domain/ArticleUncheck.java @@ -44,8 +44,8 @@ public class ArticleUncheck extends OurBaseEntity @TableField(value = "content") private String content; - /** 视频来源 */ - @Excel(name = "视频来源") + /** 文章来源 */ + @Excel(name = "文章来源") @TableField(value = "author") private String author; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/domain/DraftArticle.java b/ruoyi-admin/src/main/java/com/ruoyi/domain/DraftArticle.java index c428a05..1e75fe7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/domain/DraftArticle.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/domain/DraftArticle.java @@ -53,8 +53,8 @@ public class DraftArticle extends OurBaseEntity @TableField(value = "content") private String content; - /** 视频来源 */ - @Excel(name = "视频来源") + /** 文章来源 */ + @Excel(name = "文章来源") @TableField(value = "author") private String author; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/domain/RiverNews.java b/ruoyi-admin/src/main/java/com/ruoyi/domain/RiverNews.java index 1b27c87..ee613be 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/domain/RiverNews.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/domain/RiverNews.java @@ -45,8 +45,8 @@ public class RiverNews extends OurBaseEntity @TableField(value = "content") private String content; - /** 视频来源 */ - @Excel(name = "视频来源") + /** 文章来源 */ + @Excel(name = "文章来源") @TableField(value = "author") private String author; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/domain/Toutiao.java b/ruoyi-admin/src/main/java/com/ruoyi/domain/Toutiao.java index 5964dcd..b18060a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/domain/Toutiao.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/domain/Toutiao.java @@ -44,8 +44,8 @@ public class Toutiao extends OurBaseEntity @TableField(value = "content") private String content; - /** 视频来源 */ - @Excel(name = "视频来源") + /** 文章来源 */ + @Excel(name = "文章来源") @TableField(value = "author") private String author; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/domain/UncheckDraft.java b/ruoyi-admin/src/main/java/com/ruoyi/domain/UncheckDraft.java index 3cfd726..79cfae5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/domain/UncheckDraft.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/domain/UncheckDraft.java @@ -57,8 +57,8 @@ public class UncheckDraft extends OurBaseEntity @TableField(value = "content") private String content; - /** 视频来源 */ - @Excel(name = "视频来源") + /** 文章来源 */ + @Excel(name = "文章来源") @TableField(value = "author") private String author; diff --git a/ruoyi-ui/src/views/administration/administration/index.vue b/ruoyi-ui/src/views/administration/administration/index.vue index c5d4655..ce8f336 100644 --- a/ruoyi-ui/src/views/administration/administration/index.vue +++ b/ruoyi-ui/src/views/administration/administration/index.vue @@ -129,8 +129,8 @@ - - + + diff --git a/ruoyi-ui/src/views/article/article/index.vue b/ruoyi-ui/src/views/article/article/index.vue index 8e4ba3a..e454799 100644 --- a/ruoyi-ui/src/views/article/article/index.vue +++ b/ruoyi-ui/src/views/article/article/index.vue @@ -31,10 +31,10 @@ /> - + @@ -185,7 +185,7 @@
{{ formatContent(scope.row.content) }}
- + - + + @@ -659,7 +659,7 @@ export default { // 文章来源历史记录(市局用户输入记忆功能)- 使用固定大小为10的循环缓冲区 sourceHistory: [], - // 视频来源历史记录 - 使用固定大小为10的循环缓冲区 + // 文章来源历史记录 - 使用固定大小为10的循环缓冲区 authorHistory: [], selectKey: 0, // 用于强制重新渲染 el-select @@ -687,7 +687,7 @@ export default { .map(item => item.value); } - // 加载视频来源历史记录 + // 加载文章来源历史记录 const storedAuthorHistory = localStorage.getItem('authorHistory'); if (storedAuthorHistory) { const authorHistoryData = JSON.parse(storedAuthorHistory); @@ -1926,7 +1926,7 @@ export default { /** 新增按钮操作 */ handleAdd() { this.reset(); - //this.form.author=this.userName; //视频来源手动输入 + //this.form.author=this.userName; //文章来源手动输入 this.form.articleOrigin = this.dept; // 确保新增时审批表状态正确初始化 @@ -2039,7 +2039,7 @@ export default { this.form.author = this.userName; } - // 将视频来源添加到历史记录中 + // 将文章来源添加到历史记录中 if (this.form.author) { this.addToAuthorHistory(this.form.author); } @@ -2294,7 +2294,7 @@ export default { this.addToSourceHistory(this.form.articleOrigin); } - // 将视频来源添加到历史记录中 + // 将文章来源添加到历史记录中 if (this.form.author) { this.addToAuthorHistory(this.form.author); } @@ -2651,7 +2651,7 @@ export default { this.sourceHistory = storedHistory.map(item => item.value); }, - // 添加视频来源到历史记录 - 使用固定大小为10的循环缓冲区 + // 添加文章来源到历史记录 - 使用固定大小为10的循环缓冲区 addToAuthorHistory(author) { if (!author) return; @@ -2717,7 +2717,7 @@ export default { cb(results.map(item => ({ value: item }))); }, - // 视频来源自动完成查询 + // 文章来源自动完成查询 querySearchAuthor(queryString, cb) { // 从 localStorage 获取最新数据 let storedHistory = []; diff --git a/ruoyi-ui/src/views/draft/index.vue b/ruoyi-ui/src/views/draft/index.vue index 91306f9..5484d14 100644 --- a/ruoyi-ui/src/views/draft/index.vue +++ b/ruoyi-ui/src/views/draft/index.vue @@ -17,10 +17,10 @@ @keyup.enter.native="handleQuery" /> - + @@ -84,7 +84,7 @@ - + > - + > - +
当前文件:{{ originalFilePath }}
新选文件:{{ updateFilePath.name }}
+
文件上传中,请稍候...
@@ -194,6 +196,7 @@ export default { name: "Administration", data() { return { + fileUploading: false, // 文件上传加载状态 // 遮罩层 loading: true, // 选中数组 @@ -373,25 +376,33 @@ export default { }); }, /** 提交按钮 */ + /** 提交按钮 */ submitForm() { this.$refs["form"].validate(valid => { if (valid) { if (this.form.id != null) { // 修改操作 if (this.updateFilePath) { - // 如果有新文件,先上传文件 + this.fileUploading = true; // 开始加载 const formData = new FormData(); formData.append('file', this.updateFilePath); - updatefilePath(this.form.id, formData).then(response => { - // console.log('文件上传成功', this.from.id,formData); - // 文件上传成功后,更新其他信息 - this.form.filePath = response.url; - updateAdministration(this.form).then(response => { + updatefilePath(this.form.id, formData) + .then(response => { + this.form.filePath = response.url; + return updateAdministration(this.form); + }) + .then(() => { this.$modal.msgSuccess("修改成功"); this.open = false; this.getList(); + }) + .catch(error => { + console.error("文件上传失败:", error); + this.$message.error("文件上传失败,请重试"); + }) + .finally(() => { + this.fileUploading = false; // 结束加载 }); - }); } else { // 没有新文件,直接更新信息 updateAdministration(this.form).then(response => { @@ -402,22 +413,36 @@ export default { } } else { // 新增操作 - const formatData = new FormData(); - // 添加表单中的每个字段 - for (const key in this.form) { - if (this.form[key] !== undefined && this.form[key] !== null) { - formatData.append(key, this.form[key]); - } - } - // 添加文件字段 if (this.filePath) { + this.fileUploading = true; // 开始加载 + const formatData = new FormData(); + for (const key in this.form) { + if (this.form[key] !== undefined && this.form[key] !== null) { + formatData.append(key, this.form[key]); + } + } formatData.append('filePath', this.filePath); + addAdministration1(formatData) + .then(response => { + this.$modal.msgSuccess("新增成功"); + this.open = false; + this.getList(); + }) + .catch(error => { + console.error("文件上传失败:", error); + this.$message.error("文件上传失败,请重试"); + }) + .finally(() => { + this.fileUploading = false; // 结束加载 + }); + } else { + // 没有文件,直接提交表单 + addAdministration1(this.form).then(response => { + this.$modal.msgSuccess("新增成功"); + this.open = false; + this.getList(); + }); } - addAdministration1(formatData).then(response => { - this.$modal.msgSuccess("新增成功"); - this.open = false; - this.getList(); - }); } } }); @@ -445,3 +470,11 @@ export default { } }; + + -- Gitee From 8342e2f0382d31a4b8df83da31ece8470ed661bc Mon Sep 17 00:00:00 2001 From: gitYA <2928526103@qq.com> Date: Tue, 14 Oct 2025 10:28:23 +0800 Subject: [PATCH 026/120] =?UTF-8?q?1.=E9=A1=B9=E7=9B=AE=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=94=B9=E4=B8=BA=E8=BF=9C=E7=A8=8B=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E5=88=B0=E6=9C=8D=E5=8A=A1=E5=99=A8=E6=95=B4=E4=BD=93?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/controller/ArticleController.java | 164 +++++++++++++- .../controller/ArticleUncheckController.java | 150 ++++++++++++- .../ruoyi/controller/ConlumnController.java | 56 ++++- .../ruoyi/controller/HistoryController.java | 43 +++- .../ruoyi/controller/LeaderController.java | 47 ++++ .../ruoyi/controller/TextReadController.java | 79 ++++++- .../ruoyi/controller/ToutiaoController.java | 91 ++++++++ .../service/impl/ArticleServiceImpl.java | 105 ++++++++- .../com/ruoyi/service/impl/DangerService.java | 45 ++++ .../service/impl/DraftArticleServiceImpl.java | 111 +++++++++- .../service/impl/PdfParseTaskServiceImpl.java | 33 ++- .../com/ruoyi/util/AsyncUploadService.java | 200 ++++++++++++++++-- .../java/com/ruoyi/util/FileUploadUtil.java | 84 ++++++++ 13 files changed, 1154 insertions(+), 54 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleController.java b/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleController.java index ed347be..ba0a894 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleController.java @@ -7,7 +7,6 @@ import java.net.URL; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.*; -import java.util.stream.Collectors; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletResponse; @@ -26,10 +25,11 @@ import com.ruoyi.domain.vo.DeptArticleCountVo; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.mapper.ArticleMapper; import com.ruoyi.mapper.RecoverStationMapper; -import com.ruoyi.service.ColumnManagementService; import com.ruoyi.service.impl.PdfParseTaskServiceImpl; import com.ruoyi.system.mapper.SysDeptMapper; import com.ruoyi.system.mapper.SysUserMapper; +import com.ruoyi.util.FileUploadUtil; +import com.ruoyi.util.SftpProperties; import com.sun.xml.bind.v2.TODO; import org.apache.catalina.User; import org.dromara.x.file.storage.core.FileInfo; @@ -80,6 +80,9 @@ public class ArticleController extends BaseController @Autowired private SysDeptMapper sysDeptMapper; + @Autowired + private SftpProperties sftpProperties; + /** @@ -316,7 +319,8 @@ public class ArticleController extends BaseController list = articleService.selectArticleColumnList(userName, startTime, endTime); } } - return getDataTable(list); + + return getDataTable(list); } /** @@ -519,13 +523,47 @@ public class ArticleController extends BaseController return getDataTable(list); } - /** - * 审核表路径 + * 审核表路径 - 上传到远程服务器 */ @Anonymous @PostMapping("/appvalPath/{id}") public AjaxResult appvalPath(@PathVariable Long id, @RequestParam("appvalPath") MultipartFile appvalPath) throws Exception { + // 检查文件是否为空 + if (appvalPath.isEmpty()) { + return AjaxResult.error("上传文件为空"); + } + + try { + // 使用配置文件中的参数上传到远程服务器 + String fileUrl = FileUploadUtil.uploadFileToRemoteServer( + sftpProperties.toSftpConfig(), + appvalPath, + "articleFilePath/appvalPath" + ); + + // 设置返回结果 + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", fileUrl); + ajax.put("fileName", fileUrl); + ajax.put("newFileName", fileUrl); + ajax.put("originalFilename", appvalPath.getOriginalFilename()); + + // 创建Article对象并设置ID和appval + Article article = new Article(); + article.setArticleId(id); + article.setAppval(fileUrl); + + // 更新数据库中的appval字段 + articleService.updateById(article); + + return ajax; + + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + + /* 原OSS上传代码 - 已注释 try { // 检查文件是否为空 if (appvalPath.isEmpty()) { @@ -560,14 +598,42 @@ public class ArticleController extends BaseController } catch (Exception e) { return AjaxResult.error(e.getMessage()); } + */ } /** - * 文章内容图片上传 + * 文章内容图片上传 - 上传到远程服务器 */ @Anonymous @PostMapping("/contentImage") public AjaxResult uploadContentImage(@RequestParam("file") MultipartFile file) throws Exception { + // 检查文件是否为空 + if (file.isEmpty()) { + return AjaxResult.error("上传文件为空"); + } + + try { + // 使用配置文件中的参数上传到远程服务器 + String fileUrl = FileUploadUtil.uploadFileToRemoteServer( + sftpProperties.toSftpConfig(), + file, + "articleFilePath/contentImage" + ); + + // 设置返回结果 + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", fileUrl); + ajax.put("fileName", fileUrl); + ajax.put("newFileName", fileUrl); + ajax.put("originalFilename", file.getOriginalFilename()); + + return ajax; + + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + + /* 原OSS上传代码 - 已注释 try { // 检查文件是否为空 if (file.isEmpty()) { @@ -594,14 +660,51 @@ public class ArticleController extends BaseController } catch (Exception e) { return AjaxResult.error(e.getMessage()); } + */ } /** - * 封面路径 + * 封面路径 - 上传到远程服务器 */ @Anonymous @PostMapping("/filePath/{id}") public AjaxResult uploadFile(@PathVariable Long id, @RequestParam MultipartFile file) throws Exception { + // 检查文件是否为空 + if (file.isEmpty()) { + return AjaxResult.error("上传文件为空"); + } + + try { + // 使用配置文件中的参数上传到远程服务器 + String fileUrl = FileUploadUtil.uploadFileToRemoteServer( + sftpProperties.toSftpConfig(), + file, + "articleFilePath/filePath" + ); + + // 设置返回结果 + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", fileUrl); + ajax.put("fileName", fileUrl); + ajax.put("newFileName", fileUrl); + ajax.put("originalFilename", file.getOriginalFilename()); + + // 创建Article对象并设置ID和coverPath + Article article = new Article(); + article.setArticleId(id); + article.setCoverPath(fileUrl); + System.out.printf("封面路径:" + fileUrl); + + // 更新数据库中的coverPath字段 + articleMapper.updateArticle(article); + + return ajax; + + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + + /* 原OSS上传代码 - 已注释 try { // 检查文件是否为空 if (file.isEmpty()) { @@ -637,14 +740,53 @@ public class ArticleController extends BaseController } catch (Exception e) { return AjaxResult.error(e.getMessage()); } + */ } /** - * 附件上传 + * 附件上传 - 上传到远程服务器 */ @Anonymous @PostMapping("/attachment/{id}") public AjaxResult uploadAttachment(@PathVariable Long id, @RequestParam MultipartFile file) throws Exception { + // 检查文件是否为空 + if (file.isEmpty()) { + return AjaxResult.error("上传文件为空"); + } + + try { + // 使用配置文件中的参数上传到远程服务器 + String fileUrl = FileUploadUtil.uploadFileToRemoteServer( + sftpProperties.toSftpConfig(), + file, + "articleFilePath/attachment" + ); + + // 设置返回结果 + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", fileUrl); + ajax.put("fileName", fileUrl); + ajax.put("newFileName", fileUrl); + ajax.put("originalFilename", file.getOriginalFilename()); + + // 先查询完整的Article对象 + Article article = articleService.selectArticleByArticleId(id); + if (article != null) { + // 更新attachment字段 + article.setAttachment(fileUrl); + // 更新数据库中的attachment字段 + articleMapper.updateArticle(article); + } + + System.out.println("文章附件:" + fileUrl); + + return ajax; + + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + + /* 原OSS上传代码 - 已注释 try { // 检查文件是否为空 if (file.isEmpty()) { @@ -682,10 +824,11 @@ public class ArticleController extends BaseController } catch (Exception e) { return AjaxResult.error(e.getMessage()); } + */ } - - + + // ... 其他现有代码 ... /** @@ -707,7 +850,6 @@ public class ArticleController extends BaseController List
articleList = articleService.query() .eq("column_id", columnId) .orderByDesc("pubdate") - .orderByDesc("article_id") .list(); // 用PageInfo对结果进行包装 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleUncheckController.java b/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleUncheckController.java index 1a5cb8f..5cbe46a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleUncheckController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/controller/ArticleUncheckController.java @@ -6,7 +6,6 @@ import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.*; import javax.servlet.http.HttpServletResponse; -import com.ruoyi.service.impl.PdfParseTaskServiceImpl; import com.ruoyi.common.annotation.Anonymous; import com.github.pagehelper.PageInfo; @@ -19,7 +18,10 @@ import com.ruoyi.domain.RecoverStation; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.mapper.ArticleMapper; import com.ruoyi.mapper.ArticleUncheckMapper; +import com.ruoyi.service.impl.PdfParseTaskServiceImpl; import com.ruoyi.system.mapper.SysDeptMapper; +import com.ruoyi.util.FileUploadUtil; +import com.ruoyi.util.SftpProperties; import org.dromara.x.file.storage.core.FileInfo; import org.dromara.x.file.storage.core.FileStorageService; import org.springframework.security.access.prepost.PreAuthorize; @@ -66,12 +68,49 @@ public class ArticleUncheckController extends BaseController @Autowired private PdfParseTaskServiceImpl pdfParseTaskService; + @Autowired + private SftpProperties sftpProperties; + /** - * 封面路径 + * 封面路径 - 上传到远程服务器 */ @Anonymous @PostMapping("/filePath/{id}") public AjaxResult coverPath(@PathVariable Long id, @RequestParam MultipartFile file) throws Exception { + // 检查文件是否为空 + if (file.isEmpty()) { + return AjaxResult.error("上传文件为空"); + } + + try { + // 使用配置文件中的参数上传到远程服务器 + String fileUrl = FileUploadUtil.uploadFileToRemoteServer( + sftpProperties.toSftpConfig(), + file, + "uncheckFiles/coverPath" + ); + + // 设置返回结果 + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", fileUrl); + ajax.put("fileName", fileUrl); + ajax.put("newFileName", fileUrl); + ajax.put("originalFilename", file.getOriginalFilename()); + + // 创建ArticleUncheck对象并设置ID和coverPath + ArticleUncheck articleUncheck = new ArticleUncheck(); + articleUncheck.setArticleId(id); + articleUncheck.setCoverPath(fileUrl); + + // 更新数据库中的coverPath字段 + articleUncheckService.updateArticleUncheck(articleUncheck); + return ajax; + + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + + /* 原OSS上传代码 - 已注释 try { // 检查文件是否为空 if (file.isEmpty()) { @@ -105,14 +144,50 @@ public class ArticleUncheckController extends BaseController } catch (Exception e) { return AjaxResult.error(e.getMessage()); } + */ } /** - * 附件上传 + * 附件上传 - 上传到远程服务器 */ @Anonymous @PostMapping("/attachment/{id}") public AjaxResult uploadAttachment(@PathVariable Long id, @RequestParam MultipartFile file) throws Exception { + // 检查文件是否为空 + if (file.isEmpty()) { + return AjaxResult.error("上传文件为空"); + } + + try { + // 使用配置文件中的参数上传到远程服务器 + String fileUrl = FileUploadUtil.uploadFileToRemoteServer( + sftpProperties.toSftpConfig(), + file, + "uncheckFiles/attachment" + ); + + // 设置返回结果 + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", fileUrl); + ajax.put("fileName", fileUrl); + ajax.put("newFileName", fileUrl); + ajax.put("originalFilename", file.getOriginalFilename()); + + // 先查询完整的ArticleUncheck对象 + ArticleUncheck articleUncheck = articleUncheckService.selectArticleUncheckByArticleId(id); + if (articleUncheck != null) { + // 更新attachment字段 + articleUncheck.setAttachment(fileUrl); + // 更新数据库中的attachment字段 + articleUncheckService.updateArticleUncheck(articleUncheck); + } + return ajax; + + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + + /* 原OSS上传代码 - 已注释 try { // 检查文件是否为空 if (file.isEmpty()) { @@ -147,14 +222,50 @@ public class ArticleUncheckController extends BaseController } catch (Exception e) { return AjaxResult.error(e.getMessage()); } + */ } /** - * 审核表路径 + * 审核表路径 - 上传到远程服务器 */ @Anonymous @PostMapping("/appvalPath/{id}") public AjaxResult appvalPath(@PathVariable Long id, @RequestParam("appvalPath") MultipartFile appvalPath) throws Exception { + // 检查文件是否为空 + if (appvalPath.isEmpty()) { + return AjaxResult.error("上传文件为空"); + } + + try { + // 使用配置文件中的参数上传到远程服务器 + String fileUrl = FileUploadUtil.uploadFileToRemoteServer( + sftpProperties.toSftpConfig(), + appvalPath, + "uncheckFiles/appvalPath" + ); + + // 设置返回结果 + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", fileUrl); + ajax.put("fileName", fileUrl); + ajax.put("newFileName", fileUrl); + ajax.put("originalFilename", appvalPath.getOriginalFilename()); + + // 创建ArticleUncheck对象并设置ID和appval + ArticleUncheck articleUncheck = new ArticleUncheck(); + articleUncheck.setArticleId(id); + articleUncheck.setAppval(fileUrl); + + // 更新数据库中的appval字段 + articleUncheckService.updateArticleUncheck(articleUncheck); + + return ajax; + + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + + /* 原OSS上传代码 - 已注释 try { // 检查文件是否为空 if (appvalPath.isEmpty()) { @@ -189,13 +300,41 @@ public class ArticleUncheckController extends BaseController } catch (Exception e) { return AjaxResult.error(e.getMessage()); } + */ } /** - * 文章内容图片上传并替换为OSS路径 + * 文章内容图片上传 - 上传到远程服务器 */ @PostMapping("/contentImage") public AjaxResult uploadContentImage(@RequestParam("file") MultipartFile file) throws Exception { + // 检查文件是否为空 + if (file.isEmpty()) { + return AjaxResult.error("上传文件为空"); + } + + try { + // 使用配置文件中的参数上传到远程服务器 + String fileUrl = FileUploadUtil.uploadFileToRemoteServer( + sftpProperties.toSftpConfig(), + file, + "articleContent/images" + ); + + // 设置返回结果 + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", fileUrl); + ajax.put("fileName", fileUrl); + ajax.put("newFileName", fileUrl); + ajax.put("originalFilename", file.getOriginalFilename()); + + return ajax; + + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + + /* 原OSS上传代码 - 已注释 try { // 检查文件是否为空 if (file.isEmpty()) { @@ -222,6 +361,7 @@ public class ArticleUncheckController extends BaseController } catch (Exception e) { return AjaxResult.error(e.getMessage()); } + */ } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/controller/ConlumnController.java b/ruoyi-admin/src/main/java/com/ruoyi/controller/ConlumnController.java index ca7a20d..a1d72bb 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/controller/ConlumnController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/controller/ConlumnController.java @@ -18,6 +18,8 @@ import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.mapper.ConlumnMapper; import com.ruoyi.service.ConlumnMenuService; import com.ruoyi.system.mapper.SysDeptMapper; +import com.ruoyi.util.FileUploadUtil; +import com.ruoyi.util.SftpProperties; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiOperation; import org.dromara.x.file.storage.core.FileInfo; @@ -66,6 +68,9 @@ public class ConlumnController extends BaseController @Autowired private FileStorageService fileStorageService;//注入实列 + @Autowired + private SftpProperties sftpProperties; + /** @@ -363,11 +368,59 @@ public class ConlumnController extends BaseController return toAjax(conlumnService.deleteConlumnByIds(ids)); } /** - * 封面路径 + * 封面路径 - 上传到远程服务器 */ @Anonymous @PostMapping("/filePathImg1/{id}/{type}") public AjaxResult uploadFile(@PathVariable int id, @RequestParam MultipartFile file, @PathVariable int type) throws Exception { + // 检查文件是否为空 + if (file.isEmpty()) { + return AjaxResult.error("上传文件为空"); + } + + try { + // 使用配置文件中的参数上传到远程服务器 + String fileUrl = FileUploadUtil.uploadFileToRemoteServer( + sftpProperties.toSftpConfig(), + file, + "column/images" + ); + + // 设置返回结果 + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", fileUrl); + ajax.put("fileName", file.getOriginalFilename()); + ajax.put("newFileName", fileUrl); + ajax.put("originalFilename", file.getOriginalFilename()); + + // 更新栏目菜单的图片路径 + ConlumnMenu byId = conlumnMenuService.getById(id); + if (byId == null){ + return AjaxResult.error("栏目不存在"); + } + + // 根据type设置对应的图片字段 + if (type == 1){ + byId.setImg1(fileUrl); + }else if (type == 2){ + byId.setImg2(fileUrl); + } + + // 更新数据库记录 + boolean updateResult = conlumnMenuService.updateById(byId); + if (!updateResult) { + return AjaxResult.error("图片路径保存失败"); + } + + log.info("栏目图片上传成功,路径:" + fileUrl); + return ajax; + + } catch (Exception e) { + log.error("栏目图片上传异常", e); + return AjaxResult.error("上传失败: " + e.getMessage()); + } + + /* 原OSS上传代码 - 已注释 try { // 检查文件是否为空 if (file.isEmpty()) { @@ -424,6 +477,7 @@ public class ConlumnController extends BaseController log.error("栏目图片上传异常", e); return AjaxResult.error("上传失败: " + e.getMessage()); } + */ } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/controller/HistoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/controller/HistoryController.java index 74b5359..7c85975 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/controller/HistoryController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/controller/HistoryController.java @@ -7,6 +7,8 @@ import javax.servlet.http.HttpServletResponse; import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.domain.Article; +import com.ruoyi.util.FileUploadUtil; +import com.ruoyi.util.SftpProperties; import org.dromara.x.file.storage.core.FileInfo; import org.dromara.x.file.storage.core.FileStorageService; import org.springframework.security.access.prepost.PreAuthorize; @@ -38,13 +40,51 @@ public class HistoryController extends BaseController @Autowired private FileStorageService fileStorageService; + @Autowired + private SftpProperties sftpProperties; + /** - * 图片路径 + * 图片路径 - 上传到远程服务器 */ @Anonymous @PostMapping("/imgPath/{id}") public AjaxResult imgPath(@PathVariable Long id, @RequestParam("imgPath") MultipartFile imgPath) throws Exception { + // 检查文件是否为空 + if (imgPath.isEmpty()) { + return AjaxResult.error("上传文件为空"); + } + + try { + // 使用配置文件中的参数上传到远程服务器 + String fileUrl = FileUploadUtil.uploadFileToRemoteServer( + sftpProperties.toSftpConfig(), + imgPath, + "historyImgPath" + ); + + // 设置返回结果 + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", fileUrl); + ajax.put("fileName", fileUrl); + ajax.put("newFileName", fileUrl); + ajax.put("originalFilename", imgPath.getOriginalFilename()); + + // 创建History对象并设置ID和img + History history = new History(); + history.setId(id); + history.setImg(fileUrl); + + // 更新数据库中的img字段 + historyService.updateHistory(history); + + return ajax; + + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + + /* 原OSS上传代码 - 已注释 try { // 检查文件是否为空 if (imgPath.isEmpty()) { @@ -79,6 +119,7 @@ public class HistoryController extends BaseController } catch (Exception e) { return AjaxResult.error(e.getMessage()); } + */ } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/controller/LeaderController.java b/ruoyi-admin/src/main/java/com/ruoyi/controller/LeaderController.java index 9287137..5be50c2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/controller/LeaderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/controller/LeaderController.java @@ -7,6 +7,8 @@ import javax.servlet.http.HttpServletResponse; import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.domain.Article; +import com.ruoyi.util.FileUploadUtil; +import com.ruoyi.util.SftpProperties; import org.dromara.x.file.storage.core.FileInfo; import org.dromara.x.file.storage.core.FileStorageService; import org.springframework.security.access.prepost.PreAuthorize; @@ -38,9 +40,53 @@ public class LeaderController extends BaseController @Autowired private FileStorageService fileStorageService;//注入实列 + @Autowired + private SftpProperties sftpProperties; + + /** + * 领导照片上传 - 上传到远程服务器 + */ @Anonymous @PostMapping("/imagePath/{id}") public AjaxResult uploadFile(@PathVariable Long id, @RequestParam MultipartFile file) throws Exception { + // 检查文件是否为空 + if (file.isEmpty()) { + return AjaxResult.error("上传文件为空"); + } + + try { + // 使用配置文件中的参数上传到远程服务器 + String fileUrl = FileUploadUtil.uploadFileToRemoteServer( + sftpProperties.toSftpConfig(), + file, + "leaderImage" + ); + + // 设置返回结果 + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", fileUrl); + ajax.put("fileName", fileUrl); + ajax.put("newFileName", fileUrl); + ajax.put("originalFilename", file.getOriginalFilename()); + + // 创建Leader对象并设置ID和image + Leader leader = new Leader(); + leader.setLeaderId(id); + leader.setImage(fileUrl); + + // 更新数据库中的image字段 + boolean result = leaderService.updateById(leader); + if (!result) { + return AjaxResult.error("更新文件路径失败"); + } + + return ajax; + + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + + /* 原OSS上传代码 - 已注释 try { // 检查文件是否为空 if (file.isEmpty()) { @@ -78,6 +124,7 @@ public class LeaderController extends BaseController } catch (Exception e) { return AjaxResult.error(e.getMessage()); } + */ } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/controller/TextReadController.java b/ruoyi-admin/src/main/java/com/ruoyi/controller/TextReadController.java index 6bd82e2..e861b28 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/controller/TextReadController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/controller/TextReadController.java @@ -11,6 +11,8 @@ import com.ruoyi.domain.ConlumnMenu; import com.ruoyi.domain.TextRead; import com.ruoyi.domain.TextReadDto; import com.ruoyi.service.TextReadService; +import com.ruoyi.util.FileUploadUtil; +import com.ruoyi.util.SftpProperties; import org.dromara.x.file.storage.core.FileInfo; import org.dromara.x.file.storage.core.FileStorageService; import org.springframework.beans.factory.annotation.Autowired; @@ -35,6 +37,9 @@ public class TextReadController extends BaseController { @Autowired private FileStorageService fileStorageService;//注入实列 + @Autowired + private SftpProperties sftpProperties; + @Anonymous @GetMapping("/list") public AjaxResult list(@RequestParam Integer pageNum, @RequestParam Integer pageSize) { @@ -103,11 +108,52 @@ public class TextReadController extends BaseController { return success(pageInfo); } /** - * 封面路径 + * 封面路径 - 上传到远程服务器 */ @Anonymous @PostMapping("/filePathImg1/{id}") public AjaxResult uploadFile(@PathVariable int id, @RequestParam MultipartFile file) throws Exception { + // 检查文件是否为空 + if (file.isEmpty()) { + return AjaxResult.error("上传文件为空"); + } + + try { + // 使用配置文件中的参数上传到远程服务器 + String fileUrl = FileUploadUtil.uploadFileToRemoteServer( + sftpProperties.toSftpConfig(), + file, + "textRead/images" + ); + + // 设置返回结果 + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", fileUrl); + ajax.put("fileName", file.getOriginalFilename()); + ajax.put("newFileName", fileUrl); + ajax.put("originalFilename", file.getOriginalFilename()); + + // 更新TextRead的封面路径 + TextRead byId = textReadService.getById(id); + if (byId == null){ + return AjaxResult.error("栏目不存在"); + } + byId.setCoverPath(fileUrl); + // 更新数据库记录 + boolean updateResult = textReadService.updateById(byId); + if (!updateResult) { + return AjaxResult.error("图片路径保存失败"); + } + + log.info("栏目图片上传成功,路径:" + fileUrl); + return ajax; + + } catch (Exception e) { + log.error("栏目图片上传异常", e); + return AjaxResult.error("上传失败: " + e.getMessage()); + } + + /* 原OSS上传代码 - 已注释 try { // 检查文件是否为空 if (file.isEmpty()) { @@ -157,13 +203,41 @@ public class TextReadController extends BaseController { log.error("栏目图片上传异常", e); return AjaxResult.error("上传失败: " + e.getMessage()); } + */ } /** - * 文章内容图片上传 + * 文章内容图片上传 - 上传到远程服务器 */ @Anonymous @PostMapping("/contentImage") public AjaxResult uploadContentImage(@RequestParam("file") MultipartFile file) throws Exception { + // 检查文件是否为空 + if (file.isEmpty()) { + return AjaxResult.error("上传文件为空"); + } + + try { + // 使用配置文件中的参数上传到远程服务器 + String fileUrl = FileUploadUtil.uploadFileToRemoteServer( + sftpProperties.toSftpConfig(), + file, + "textRead/contentImage" + ); + + // 设置返回结果 + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", fileUrl); + ajax.put("fileName", fileUrl); + ajax.put("newFileName", fileUrl); + ajax.put("originalFilename", file.getOriginalFilename()); + + return ajax; + + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + + /* 原OSS上传代码 - 已注释 try { // 检查文件是否为空 if (file.isEmpty()) { @@ -190,5 +264,6 @@ public class TextReadController extends BaseController { } catch (Exception e) { return AjaxResult.error(e.getMessage()); } + */ } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/controller/ToutiaoController.java b/ruoyi-admin/src/main/java/com/ruoyi/controller/ToutiaoController.java index 701813a..eb99418 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/controller/ToutiaoController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/controller/ToutiaoController.java @@ -6,7 +6,10 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.ruoyi.common.annotation.Anonymous; +import com.ruoyi.domain.Article; import com.ruoyi.domain.RiverNews; +import com.ruoyi.util.FileUploadUtil; +import com.ruoyi.util.SftpProperties; import org.dromara.x.file.storage.core.FileInfo; import org.dromara.x.file.storage.core.FileStorageService; import org.springframework.security.access.prepost.PreAuthorize; @@ -38,6 +41,9 @@ public class ToutiaoController extends BaseController @Autowired private FileStorageService fileStorageService;//注入实列 + @Autowired + private SftpProperties sftpProperties; + /** * 自己新增river_news */ @@ -187,4 +193,89 @@ public class ToutiaoController extends BaseController { return toAjax(toutiaoService.deleteToutiaoByIds(ids)); } + + + /** + * 附件上传 - 上传到远程服务器 + */ + @Anonymous + @PostMapping("/attachment/{id}") + public AjaxResult uploadAttachment(@PathVariable Long id, @RequestParam MultipartFile file) throws Exception { + // 检查文件是否为空 + if (file.isEmpty()) { + return AjaxResult.error("上传文件为空"); + } + + try { + // 使用配置文件中的参数上传到远程服务器 + String fileUrl = FileUploadUtil.uploadFileToRemoteServer( + sftpProperties.toSftpConfig(), + file, + "touTioaPath/attachment" + ); + + // 设置返回结果 + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", fileUrl); + ajax.put("fileName", fileUrl); + ajax.put("newFileName", fileUrl); + ajax.put("originalFilename", file.getOriginalFilename()); + + // 先查询完整的Toutiao对象 + Toutiao toutiao = toutiaoService.getById(id); + if (toutiao != null) { + // 更新attachment字段 + toutiao.setAttachment(fileUrl); + // 更新数据库中的attachment字段 + toutiaoService.updateById(toutiao); + } + System.out.println("文章附件:" + fileUrl); + + return ajax; + + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + + /* 原OSS上传代码 - 已注释 + try { + // 检查文件是否为空 + if (file.isEmpty()) { + return AjaxResult.error("上传文件为空"); + } + + // 获取 base-path + String basePath = "touTioaPath/attachment/"; + + // 指定oss保存文件路径 + String objectName = basePath + LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd")) + "/" + file.getOriginalFilename(); + // 上传文件,成功返回文件信息 + FileInfo fileInfo = fileStorageService.of(file).setPath(objectName).upload(); + + // 设置返回结果 + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", fileInfo.getUrl()); + ajax.put("fileName", fileInfo.getUrl()); + ajax.put("newFileName", fileInfo.getUrl()); + ajax.put("originalFilename", file.getOriginalFilename()); + + // 先查询完整的Article对象 + Toutiao toutiao = toutiaoService.getById(id); + if (toutiao != null) { + // 更新attachment字段 + toutiao.setAttachment(fileInfo.getUrl()); + // 更新数据库中的attachment字段 + toutiaoService.updateById(toutiao); + } + System.out.println("文章附件:"+fileInfo.getUrl()); + + return ajax; + + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + */ + } + + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/service/impl/ArticleServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/service/impl/ArticleServiceImpl.java index 1881eff..d9ee489 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/service/impl/ArticleServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/service/impl/ArticleServiceImpl.java @@ -6,17 +6,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.domain.Article; -import com.ruoyi.domain.ChartColumn; -import com.ruoyi.domain.Conlumn; -import com.ruoyi.domain.RecoverStation; +import com.ruoyi.domain.*; import com.ruoyi.domain.vo.ArticleColumnVo; import com.ruoyi.domain.vo.ArticleOriginDateVo; import com.ruoyi.domain.vo.DeptArticleCountVo; -import com.ruoyi.mapper.ArticleMapper; -import com.ruoyi.mapper.ChartColumnMapper; -import com.ruoyi.mapper.ConlumnMapper; -import com.ruoyi.mapper.RecoverStationMapper; +import com.ruoyi.mapper.*; import com.ruoyi.service.ArticleService; import com.ruoyi.system.mapper.SysDeptMapper; import org.springframework.beans.factory.annotation.Autowired; @@ -52,6 +46,9 @@ public class ArticleServiceImpl extends ServiceImpl impl @Autowired private ChartColumnMapper chartColumnMapper; + @Autowired + private ArticleUncheckMapper articleUncheckMapper; + /** * 判断部门是否直接隶属于荆州市长江河道管理局(一级子部门) @@ -639,14 +636,53 @@ public class ArticleServiceImpl extends ServiceImpl impl } /** - * 新增article + * 新增article - 新逻辑:插入到article_uncheck表(未审核状态) * * @param article article * @return 结果 */ @Override public int insertArticle(Article article, String articleName) { + // 获取栏目ID + LambdaQueryWrapper lambdaQueryWrapper=new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(Conlumn::getName,articleName); + Conlumn conlumn = conlumnMapper.selectOne(lambdaQueryWrapper); + if(null!=conlumn|| StringUtils.isNull(conlumn)){ + article.setColumnId(conlumn.getId()); + } + + // 将Article转换为ArticleUncheck + ArticleUncheck uncheckArticle = new ArticleUncheck(); + uncheckArticle.setTitle(article.getTitle()); + uncheckArticle.setArticleOrigin(article.getArticleOrigin()); + uncheckArticle.setColumnId(article.getColumnId()); + uncheckArticle.setContent(article.getContent()); + uncheckArticle.setAuthor(article.getAuthor()); + uncheckArticle.setCoverPath(article.getCoverPath()); + uncheckArticle.setIp(article.getIp()); + uncheckArticle.setAppval(article.getAppval()); + uncheckArticle.setLittleTitle1(article.getLittleTitle1()); + uncheckArticle.setLittleTitle2(article.getLittleTitle2()); + uncheckArticle.setAttachment(article.getAttachment()); + uncheckArticle.setState("0"); // 未审核状态 + uncheckArticle.setCreateTime(DateUtils.getNowDate()); + uncheckArticle.setCreateBy(article.getCreateBy()); + uncheckArticle.setUpdateTime(DateUtils.getNowDate()); + uncheckArticle.setUpdateBy(article.getUpdateBy()); + uncheckArticle.setRemark(article.getRemark()); + // 不设置发布日期,发布日期应该在审核时设置 + + // 插入到article_uncheck表中(不是article表) + int result = articleUncheckMapper.insertArticleUncheck(uncheckArticle); + + System.out.println("【新增文章】已添加到article_uncheck表,文章ID: " + uncheckArticle.getArticleId() + + ", 状态: 未审核"); + + return result; + + /* 原直接插入到article表的代码 - 已注释 article.setCreateTime(DateUtils.getNowDate()); + LambdaQueryWrapper lambdaQueryWrapper=new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(Conlumn::getName,articleName); Conlumn conlumn = conlumnMapper.selectOne(lambdaQueryWrapper); @@ -672,16 +708,18 @@ public class ArticleServiceImpl extends ServiceImpl impl } return result; + */ } /** - * 修改article + * 修改article - 新逻辑:删除article,更新对应的uncheck为未审核状态 * * @param article article * @return 结果 */ @Override public int updateArticle(Article article, String articleName) { + // 1. 获取栏目ID LambdaQueryWrapper lambdaQueryWrapper=new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(Conlumn::getName,articleName); Conlumn conlumn = conlumnMapper.selectOne(lambdaQueryWrapper); @@ -689,6 +727,52 @@ public class ArticleServiceImpl extends ServiceImpl impl article.setColumnId(conlumn.getId()); } + // 2. 查询当前article,获取auditId + Article currentArticle = articleMapper.selectArticleByArticleId(article.getArticleId()); + if (currentArticle == null) { + throw new RuntimeException("文章不存在"); + } + + Long auditId = currentArticle.getAuditId(); + if (auditId == null) { + throw new RuntimeException("无法找到对应的待审核文章"); + } + + // 3. 查询对应的uncheck文章 + ArticleUncheck uncheckArticle = articleUncheckMapper.selectArticleUncheckByArticleId(auditId); + if (uncheckArticle == null) { + throw new RuntimeException("对应的待审核文章不存在"); + } + + // 4. 更新uncheck文章内容 + uncheckArticle.setTitle(article.getTitle()); + uncheckArticle.setArticleOrigin(article.getArticleOrigin()); + uncheckArticle.setColumnId(article.getColumnId()); + uncheckArticle.setContent(article.getContent()); + uncheckArticle.setAuthor(article.getAuthor()); + uncheckArticle.setCoverPath(article.getCoverPath()); + uncheckArticle.setIp(article.getIp()); + uncheckArticle.setAppval(article.getAppval()); + uncheckArticle.setLittleTitle1(article.getLittleTitle1()); + uncheckArticle.setLittleTitle2(article.getLittleTitle2()); + uncheckArticle.setAttachment(article.getAttachment()); + + // 5. 将uncheck文章状态改为未审核 + uncheckArticle.setState("0"); + uncheckArticle.setClearPubdate(true); // 清除审核日期 + + // 6. 更新uncheck文章 + int updateResult = articleUncheckMapper.updateArticleUncheck(uncheckArticle); + + // 7. 删除article中的文章 + articleMapper.deleteArticleByArticleId(article.getArticleId()); + + System.out.println("【修改已审核文章】已删除article文章ID: " + article.getArticleId() + + ", 对应uncheck文章ID: " + auditId + " 已改为未审核状态"); + + return updateResult; + + /* 原直接更新article的代码 - 已注释 // 检查是否需要清除PDF图片预览路径 if (article.getAttachment() == null || article.getAttachment().isEmpty()) { article.setPdfImagePaths(null); @@ -707,6 +791,7 @@ public class ArticleServiceImpl extends ServiceImpl impl } return result; + */ } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/service/impl/DangerService.java b/ruoyi-admin/src/main/java/com/ruoyi/service/impl/DangerService.java index a01ca35..ad88854 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/service/impl/DangerService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/service/impl/DangerService.java @@ -9,6 +9,8 @@ import com.ruoyi.mapper.ArticleMapper; import com.ruoyi.mapper.DangerMapper; import com.ruoyi.service.ArticleService; import com.ruoyi.service.IDangerService; +import com.ruoyi.util.FileUploadUtil; +import com.ruoyi.util.SftpProperties; import org.dromara.x.file.storage.core.FileInfo; import org.dromara.x.file.storage.core.FileStorageService; import org.springframework.beans.factory.annotation.Autowired; @@ -28,6 +30,9 @@ public class DangerService extends ServiceImpl implements @Autowired private FileStorageService fileStorageService;//注入实列 + @Autowired + private SftpProperties sftpProperties; + @Override public List selectAll() { return dangerMapper.selectList(null); @@ -39,7 +44,46 @@ public class DangerService extends ServiceImpl implements return dangerMapper.selectOne(lambdaQueryWrapper); } + /** + * 文件上传 - 上传到远程服务器 + */ public AjaxResult uploadFile(int id, MultipartFile file) throws Exception { + // 检查文件是否为空 + if (file.isEmpty()) { + return AjaxResult.error("上传文件为空"); + } + + try { + // 使用配置文件中的参数上传到远程服务器 + String fileUrl = FileUploadUtil.uploadFileToRemoteServer( + sftpProperties.toSftpConfig(), + file, + "articleFilePath" + ); + + // 设置返回结果 + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", fileUrl); + ajax.put("fileName", fileUrl); + ajax.put("newFileName", fileUrl); + ajax.put("originalFilename", file.getOriginalFilename()); + + // 创建Danger对象并设置ID和video + Danger danger = new Danger(); + danger.setId(id); + danger.setVideo(fileUrl); + + // 插入数据库 + Integer result = dangerMapper.insert(danger); + if (result<=0) { + return AjaxResult.error("插入文件路径失败"); + } + return ajax; + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + + /* 原OSS上传代码 - 已注释 try { // 检查文件是否为空 if (file.isEmpty()) { @@ -78,6 +122,7 @@ public class DangerService extends ServiceImpl implements } catch (Exception e) { return AjaxResult.error(e.getMessage()); } + */ } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/service/impl/DraftArticleServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/service/impl/DraftArticleServiceImpl.java index 270fa4a..6873bee 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/service/impl/DraftArticleServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/service/impl/DraftArticleServiceImpl.java @@ -1,19 +1,33 @@ package com.ruoyi.service.impl; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.URL; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.UUID; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import com.ruoyi.mapper.DraftArticleMapper; import com.ruoyi.mapper.ArticleMapper; +import com.ruoyi.mapper.ArticleUncheckMapper; import com.ruoyi.mapper.ConlumnMapper; import com.ruoyi.domain.DraftArticle; import com.ruoyi.domain.Article; +import com.ruoyi.domain.ArticleUncheck; import com.ruoyi.domain.Conlumn; import com.ruoyi.service.IDraftArticleService; +import org.dromara.x.file.storage.core.FileInfo; +import org.dromara.x.file.storage.core.FileStorageService; /** * 草稿文章Service业务层处理 @@ -30,12 +44,19 @@ public class DraftArticleServiceImpl extends ServiceImpl 0) { + // 删除草稿文章 + draftArticleMapper.deleteDraftArticleByArticleId(articleId); + } + + return result; + } + + /** + * 插入新的uncheck文章 + */ + private int insertNewUncheckArticle(DraftArticle draftArticle) { + ArticleUncheck article = new ArticleUncheck(); + article.setTitle(draftArticle.getTitle()); + article.setArticleOrigin(draftArticle.getArticleOrigin()); + article.setColumnId(draftArticle.getColumnId()); + article.setContent(draftArticle.getContent()); + article.setAuthor(draftArticle.getAuthor()); + article.setCoverPath(draftArticle.getCoverPath()); + article.setIp(draftArticle.getIp()); + article.setAppval(draftArticle.getAppval()); + article.setLittleTitle1(draftArticle.getLittleTitle1()); + article.setLittleTitle2(draftArticle.getLittleTitle2()); + article.setState("0"); // 未审核状态 + article.setCreateTime(draftArticle.getCreateTime()); + article.setCreateBy(draftArticle.getCreateBy()); + article.setUpdateTime(new Date()); + article.setUpdateBy(draftArticle.getUpdateBy()); + article.setRemark(draftArticle.getRemark()); + article.setAttachment(draftArticle.getAttachment()); + // 不设置发布日期,发布日期应该在审核时设置 + + int result = articleUncheckMapper.insertArticleUncheck(article); + + System.out.println("【发布草稿文章】插入article_uncheck表,文章ID: " + article.getArticleId() + + ", 状态: 未审核"); + + return result; + } + + /* 原直接发布到article表的代码 - 已注释 // 将DraftArticle转换为Article Article article = new Article(); article.setTitle(draftArticle.getTitle()); @@ -198,5 +299,5 @@ public class DraftArticleServiceImpl extends ServiceImpl imageUrls = new ArrayList<>(); // 存储所有页图片URL - String basePath = "article/pdf-images/"; // OSS基础路径 String uuid = com.ruoyi.common.utils.uuid.UUID.randomUUID().toString(); // 生成唯一ID用于关联同PDF的多页图片 // 循环处理每一页 @@ -139,8 +143,30 @@ public class PdfParseTaskServiceImpl { } InputStream imageInputStream = new ByteArrayInputStream(os.toByteArray()); - // 3. 上传当前页图片至OSS(文件名包含页号,避免冲突) + // 3. 上传当前页图片至远程服务器(文件名包含页号,避免冲突) String fileName = uuid + "_page" + (pageNum + 1) + ".png"; // 格式:uuid_page1.png + + try { + // 使用新的uploadStreamToRemoteServer方法上传到远程服务器 + String fileUrl = FileUploadUtil.uploadStreamToRemoteServer( + sftpProperties.toSftpConfig(), + imageInputStream, + fileName, + "article/pdf-images" + ); + + if (fileUrl == null || fileUrl.isEmpty()) { + document.close(); + return; + } + imageUrls.add(fileUrl); // 直接使用上传后的URL + } catch (Exception e) { + System.err.println("上传PDF图片失败: " + e.getMessage()); + document.close(); + return; + } + + /* 原OSS上传代码 - 已注释 String objectName = basePath + LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd")); FileInfo fileInfo = fileStorageService.of(imageInputStream) @@ -155,6 +181,7 @@ public class PdfParseTaskServiceImpl { return; } imageUrls.add(fileInfo.getUrl()); // 直接使用上传后的URL + */ } document.close(); // 所有页处理完毕后关闭文档 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/util/AsyncUploadService.java b/ruoyi-admin/src/main/java/com/ruoyi/util/AsyncUploadService.java index 4af9802..0032819 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/util/AsyncUploadService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/util/AsyncUploadService.java @@ -30,8 +30,44 @@ public class AsyncUploadService { @Autowired private IPartyclassService partyclassService; + @Autowired + private SftpProperties sftpProperties; + + /** + * 异步上传视频 - 上传到远程服务器 + */ @Async public void asyncUploadVideo(RiverView riverView, byte[] fileBytes, String originalFilename) { + try { + String newFileName = generateUniqueFileName(originalFilename); + InputStream inputStream = new ByteArrayInputStream(fileBytes); + + // 使用远程服务器上传 + String fileUrl = FileUploadUtil.uploadStreamToRemoteServer( + sftpProperties.toSftpConfig(), + inputStream, + newFileName, + "videoFiles" + ); + + riverView.setVideo(fileUrl); + + // 根据 ID 是否存在决定执行 insert 还是 update + if (riverView.getId() == null || riverViewService.selectRiverViewById(riverView.getId()) == null) { + // 数据库中无此 ID,执行新增 + riverViewService.insertRiverView(riverView); + } else { + // 存在,执行更新 + riverViewService.updateRiverView(riverView); + } + + System.out.println("【视频上传成功】" + fileUrl); + } catch (Exception e) { + System.err.println("【视频上传失败】" + e.getMessage()); + e.printStackTrace(); + } + + /* 原OSS上传代码 - 已注释 try { String basePath = "videoFiles/"; String newFileName = generateUniqueFileName(originalFilename); @@ -57,11 +93,42 @@ public class AsyncUploadService { System.err.println("【视频上传失败】" + e.getMessage()); e.printStackTrace(); } + */ } + /** + * 异步上传封面图 - 上传到远程服务器 + */ @Async public void asyncUploadCoverImg(RiverView riverView, byte[] fileBytes, String originalfilename) { + try { + String newFileName = generateUniqueFileName(originalfilename); + InputStream inputStream = new ByteArrayInputStream(fileBytes); + + // 使用远程服务器上传 + String fileUrl = FileUploadUtil.uploadStreamToRemoteServer( + sftpProperties.toSftpConfig(), + inputStream, + newFileName, + "cover_imgFiles" + ); + + riverView.setCover_img(fileUrl); + + if (riverView.getId() == null || riverViewService.selectRiverViewById(riverView.getId()) == null) { + riverViewService.insertRiverView(riverView); + } else { + riverViewService.updateRiverView(riverView); + } + + System.out.println("【封面图上传成功】" + fileUrl); + } catch (Exception e) { + System.err.println("【封面图上传失败】" + e.getMessage()); + e.printStackTrace(); + } + + /* 原OSS上传代码 - 已注释 try { String basePath = "cover_imgFiles/"; String newFileName = generateUniqueFileName(originalfilename); @@ -83,14 +150,64 @@ public class AsyncUploadService { System.err.println("【封面图上传失败】" + e.getMessage()); e.printStackTrace(); } + */ } - //partyFile视频上传 + /** + * 党课视频异步上传 - 上传到远程服务器 + */ @Async public void asyncUploadPartyFile(Partyclass partyclass, byte[] fileBytes, String originalFilename) { try { System.out.println("【开始上传视频】ID: " + partyclass.getId() + ", 文件名: " + originalFilename); - + + String newFileName = generateUniqueFileName(originalFilename); + InputStream inputStream = new ByteArrayInputStream(fileBytes); + + // 使用远程服务器上传 + String fileUrl = FileUploadUtil.uploadStreamToRemoteServer( + sftpProperties.toSftpConfig(), + inputStream, + newFileName, + "partyFiles" + ); + + System.out.println("【视频上传完成】URL: " + fileUrl); + + // 只更新视频文件字段 + Partyclass updatePartyclass = new Partyclass(); + updatePartyclass.setId(partyclass.getId()); + updatePartyclass.setFile(fileUrl); + + // 执行更新 + int result = partyclassService.updatePartyclass(updatePartyclass); + + System.out.println("【视频数据库更新结果】result: " + result + ", ID: " + partyclass.getId() + ", URL: " + fileUrl); + + if (result > 0) { + System.out.println("【视频上传成功】" + fileUrl); + } else { + System.err.println("【视频数据库更新失败】ID: " + partyclass.getId()); + } + } catch (Exception e) { + System.err.println("【视频上传失败】" + e.getMessage()); + e.printStackTrace(); + + // 发生异常时也更新状态,避免前端一直等待 + try { + Partyclass errorUpdate = new Partyclass(); + errorUpdate.setId(partyclass.getId()); + errorUpdate.setFile("upload_failed"); + partyclassService.updatePartyclass(errorUpdate); + } catch (Exception ex) { + System.err.println("【更新错误状态失败】" + ex.getMessage()); + } + } + + /* 原OSS上传代码 - 已注释 + try { + System.out.println("【开始上传视频】ID: " + partyclass.getId() + ", 文件名: " + originalFilename); + String basePath = "partyFiles/"; String newFileName = generateUniqueFileName(originalFilename); String objectName = basePath + LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd")) + "/" + newFileName; @@ -98,19 +215,19 @@ public class AsyncUploadService { InputStream inputStream = new ByteArrayInputStream(fileBytes); FileInfo fileInfo = fileStorageService.of(inputStream, objectName).setPath(objectName).upload(); - + System.out.println("【视频上传完成】URL: " + fileInfo.getUrl()); - + // 只更新视频文件字段 Partyclass updatePartyclass = new Partyclass(); updatePartyclass.setId(partyclass.getId()); updatePartyclass.setFile(fileInfo.getUrl()); - + // 执行更新 int result = partyclassService.updatePartyclass(updatePartyclass); - + System.out.println("【视频数据库更新结果】result: " + result + ", ID: " + partyclass.getId() + ", URL: " + fileInfo.getUrl()); - + if (result > 0) { System.out.println("【视频上传成功】" + fileInfo.getUrl()); } else { @@ -119,7 +236,7 @@ public class AsyncUploadService { } catch (Exception e) { System.err.println("【视频上传失败】" + e.getMessage()); e.printStackTrace(); - + // 发生异常时也更新状态,避免前端一直等待 try { Partyclass errorUpdate = new Partyclass(); @@ -130,14 +247,64 @@ public class AsyncUploadService { System.err.println("【更新错误状态失败】" + ex.getMessage()); } } + */ } - //partyFile封面图片上传 + /** + * 党课封面图片异步上传 - 上传到远程服务器 + */ @Async public void asyncUploadPartyCoverImg(Partyclass partyclass, byte[] fileBytes, String originalFilename) { try { System.out.println("【开始上传封面图片】ID: " + partyclass.getId() + ", 文件名: " + originalFilename); - + + String newFileName = generateUniqueFileName(originalFilename); + InputStream inputStream = new ByteArrayInputStream(fileBytes); + + // 使用远程服务器上传 + String fileUrl = FileUploadUtil.uploadStreamToRemoteServer( + sftpProperties.toSftpConfig(), + inputStream, + newFileName, + "partyCoverFiles" + ); + + System.out.println("【封面图片上传完成】URL: " + fileUrl); + + // 只更新封面图片字段 + Partyclass updatePartyclass = new Partyclass(); + updatePartyclass.setId(partyclass.getId()); + updatePartyclass.setCoverImg(fileUrl); + + // 执行更新 + int result = partyclassService.updatePartyclass(updatePartyclass); + + System.out.println("【封面图片数据库更新结果】result: " + result + ", ID: " + partyclass.getId() + ", URL: " + fileUrl); + + if (result > 0) { + System.out.println("【封面图片上传成功】" + fileUrl); + } else { + System.err.println("【封面图片数据库更新失败】ID: " + partyclass.getId()); + } + } catch (Exception e) { + System.err.println("【封面图片上传失败】" + e.getMessage()); + e.printStackTrace(); + + // 发生异常时也更新状态,避免前端一直等待 + try { + Partyclass errorUpdate = new Partyclass(); + errorUpdate.setId(partyclass.getId()); + errorUpdate.setCoverImg("upload_failed"); + partyclassService.updatePartyclass(errorUpdate); + } catch (Exception ex) { + System.err.println("【更新错误状态失败】" + ex.getMessage()); + } + } + + /* 原OSS上传代码 - 已注释 + try { + System.out.println("【开始上传封面图片】ID: " + partyclass.getId() + ", 文件名: " + originalFilename); + String basePath = "partyCoverFiles/"; String newFileName = generateUniqueFileName(originalFilename); String objectName = basePath + LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd")) + "/" + newFileName; @@ -145,19 +312,19 @@ public class AsyncUploadService { InputStream inputStream = new ByteArrayInputStream(fileBytes); FileInfo fileInfo = fileStorageService.of(inputStream, objectName).setPath(objectName).upload(); - + System.out.println("【封面图片上传完成】URL: " + fileInfo.getUrl()); - + // 只更新封面图片字段 Partyclass updatePartyclass = new Partyclass(); updatePartyclass.setId(partyclass.getId()); updatePartyclass.setCoverImg(fileInfo.getUrl()); - + // 执行更新 int result = partyclassService.updatePartyclass(updatePartyclass); - + System.out.println("【封面图片数据库更新结果】result: " + result + ", ID: " + partyclass.getId() + ", URL: " + fileInfo.getUrl()); - + if (result > 0) { System.out.println("【封面图片上传成功】" + fileInfo.getUrl()); } else { @@ -166,7 +333,7 @@ public class AsyncUploadService { } catch (Exception e) { System.err.println("【封面图片上传失败】" + e.getMessage()); e.printStackTrace(); - + // 发生异常时也更新状态,避免前端一直等待 try { Partyclass errorUpdate = new Partyclass(); @@ -177,6 +344,7 @@ public class AsyncUploadService { System.err.println("【更新错误状态失败】" + ex.getMessage()); } } + */ } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/util/FileUploadUtil.java b/ruoyi-admin/src/main/java/com/ruoyi/util/FileUploadUtil.java index a729034..bf4822e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/util/FileUploadUtil.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/util/FileUploadUtil.java @@ -98,6 +98,90 @@ public class FileUploadUtil { ); } + /** + * 通过SFTP上传InputStream到远程服务器(用于异步上传、PDF转图片等场景) + * + * @param host 远程服务器地址 + * @param port SSH端口 + * @param username 用户名 + * @param password 密码 + * @param remoteBasePath 远程服务器基础路径 + * @param inputStream 输入流 + * @param fileName 文件名 + * @param module 模块名称(用于创建子目录) + * @return 文件访问URL + * @throws Exception 上传异常 + */ + public static String uploadStreamToRemoteServer(String host, int port, String username, + String password, String remoteBasePath, + InputStream inputStream, String fileName, String module) throws Exception { + JSch jsch = new JSch(); + Session session = null; + ChannelSftp sftpChannel = null; + + try { + // 建立SSH连接 + session = jsch.getSession(username, host, port); + session.setPassword(password); + session.setConfig("StrictHostKeyChecking", "no"); + session.connect(30000); // 30秒超时 + + // 打开SFTP通道 + sftpChannel = (ChannelSftp) session.openChannel("sftp"); + sftpChannel.connect(30000); // 30秒超时 + + // 生成远程文件路径 + String datePath = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd")); + String remoteDir = remoteBasePath + module + "/" + datePath; + String remoteFilePath = remoteDir + "/" + fileName; + + // 创建远程目录(递归创建) + createRemoteDirs(sftpChannel, remoteDir); + + // 上传文件 + sftpChannel.put(inputStream, remoteFilePath); + inputStream.close(); + + // 构造可访问的URL + String fileUrl = "http://" + host + ":9010/riverFiles/" + module + "/" + datePath + "/" + fileName; + + return fileUrl; + + } finally { + // 关闭连接 + if (sftpChannel != null && sftpChannel.isConnected()) { + sftpChannel.disconnect(); + } + if (session != null && session.isConnected()) { + session.disconnect(); + } + } + } + + /** + * 通过SFTP上传InputStream到远程服务器(使用配置类) + * + * @param sftpConfig SFTP配置信息 + * @param inputStream 输入流 + * @param fileName 文件名 + * @param module 模块名称(用于创建子目录) + * @return 文件访问URL + * @throws Exception 上传异常 + */ + public static String uploadStreamToRemoteServer(SftpConfig sftpConfig, + InputStream inputStream, String fileName, String module) throws Exception { + return uploadStreamToRemoteServer( + sftpConfig.getHost(), + sftpConfig.getPort(), + sftpConfig.getUsername(), + sftpConfig.getPassword(), + sftpConfig.getPath(), + inputStream, + fileName, + module + ); + } + /** * 递归创建远程目录 * -- Gitee From bc44fdbd8e58e30742e8251c0edc849e01d0bac6 Mon Sep 17 00:00:00 2001 From: gitYA <2928526103@qq.com> Date: Tue, 14 Oct 2025 11:38:22 +0800 Subject: [PATCH 027/120] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/domain/Article.java | 4 +-- .../java/com/ruoyi/domain/ArticleUncheck.java | 4 +-- .../java/com/ruoyi/domain/DraftArticle.java | 4 +-- .../java/com/ruoyi/domain/RecoverStation.java | 4 +-- .../main/java/com/ruoyi/domain/RiverNews.java | 4 +-- .../main/java/com/ruoyi/domain/Toutiao.java | 4 +-- .../java/com/ruoyi/domain/UncheckDraft.java | 4 +-- .../administration/administration/index.vue | 4 +-- ruoyi-ui/src/views/article/article/index.vue | 26 +++++++++---------- ruoyi-ui/src/views/draft/index.vue | 12 ++++----- ruoyi-ui/src/views/praticalTools/index.vue | 26 +++++++++---------- .../src/views/river_news/river_news/index.vue | 10 +++---- ruoyi-ui/src/views/station/station/index.vue | 10 +++---- ruoyi-ui/src/views/toutiao/toutiao/index.vue | 10 +++---- ruoyi-ui/src/views/uncheck/uncheck/index.vue | 18 ++++++------- 15 files changed, 72 insertions(+), 72 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/domain/Article.java b/ruoyi-admin/src/main/java/com/ruoyi/domain/Article.java index 8c943aa..93539d7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/domain/Article.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/domain/Article.java @@ -50,8 +50,8 @@ public class Article extends OurBaseEntity @TableField(value = "content") private String content; - /** 文章来源 */ - @Excel(name = "文章来源") + /** 责任编辑 */ + @Excel(name = "责任编辑") @TableField(value = "author") private String author; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/domain/ArticleUncheck.java b/ruoyi-admin/src/main/java/com/ruoyi/domain/ArticleUncheck.java index bfd138d..8952028 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/domain/ArticleUncheck.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/domain/ArticleUncheck.java @@ -44,8 +44,8 @@ public class ArticleUncheck extends OurBaseEntity @TableField(value = "content") private String content; - /** 文章来源 */ - @Excel(name = "文章来源") + /** 责任编辑 */ + @Excel(name = "责任编辑") @TableField(value = "author") private String author; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/domain/DraftArticle.java b/ruoyi-admin/src/main/java/com/ruoyi/domain/DraftArticle.java index 1e75fe7..7f8e8e3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/domain/DraftArticle.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/domain/DraftArticle.java @@ -53,8 +53,8 @@ public class DraftArticle extends OurBaseEntity @TableField(value = "content") private String content; - /** 文章来源 */ - @Excel(name = "文章来源") + /** 责任编辑 */ + @Excel(name = "责任编辑") @TableField(value = "author") private String author; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/domain/RecoverStation.java b/ruoyi-admin/src/main/java/com/ruoyi/domain/RecoverStation.java index d0da3fe..ed3bc80 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/domain/RecoverStation.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/domain/RecoverStation.java @@ -49,9 +49,9 @@ public class RecoverStation extends OurBaseEntity @Excel(name = "内容") private String content; - /** 视频来源 */ + /** 责任编辑 */ @TableField(value="author") - @Excel(name = "视频来源") + @Excel(name = "责任编辑") private String author; /** 封面路径 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/domain/RiverNews.java b/ruoyi-admin/src/main/java/com/ruoyi/domain/RiverNews.java index ee613be..6e534d3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/domain/RiverNews.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/domain/RiverNews.java @@ -45,8 +45,8 @@ public class RiverNews extends OurBaseEntity @TableField(value = "content") private String content; - /** 文章来源 */ - @Excel(name = "文章来源") + /** 责任编辑 */ + @Excel(name = "责任编辑") @TableField(value = "author") private String author; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/domain/Toutiao.java b/ruoyi-admin/src/main/java/com/ruoyi/domain/Toutiao.java index b18060a..76d4aaf 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/domain/Toutiao.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/domain/Toutiao.java @@ -44,8 +44,8 @@ public class Toutiao extends OurBaseEntity @TableField(value = "content") private String content; - /** 文章来源 */ - @Excel(name = "文章来源") + /** 责任编辑 */ + @Excel(name = "责任编辑") @TableField(value = "author") private String author; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/domain/UncheckDraft.java b/ruoyi-admin/src/main/java/com/ruoyi/domain/UncheckDraft.java index 79cfae5..1939e84 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/domain/UncheckDraft.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/domain/UncheckDraft.java @@ -57,8 +57,8 @@ public class UncheckDraft extends OurBaseEntity @TableField(value = "content") private String content; - /** 文章来源 */ - @Excel(name = "文章来源") + /** 责任编辑 */ + @Excel(name = "责任编辑") @TableField(value = "author") private String author; diff --git a/ruoyi-ui/src/views/administration/administration/index.vue b/ruoyi-ui/src/views/administration/administration/index.vue index 871db9d..73daa7e 100644 --- a/ruoyi-ui/src/views/administration/administration/index.vue +++ b/ruoyi-ui/src/views/administration/administration/index.vue @@ -129,8 +129,8 @@ - - + + diff --git a/ruoyi-ui/src/views/article/article/index.vue b/ruoyi-ui/src/views/article/article/index.vue index 5cc8005..5d27d1d 100644 --- a/ruoyi-ui/src/views/article/article/index.vue +++ b/ruoyi-ui/src/views/article/article/index.vue @@ -31,10 +31,10 @@ /> - + @@ -185,7 +185,7 @@
{{ formatContent(scope.row.content) }}
- + - + + @@ -659,7 +659,7 @@ export default { // 文章来源历史记录(市局用户输入记忆功能)- 使用固定大小为10的循环缓冲区 sourceHistory: [], - // 文章来源历史记录 - 使用固定大小为10的循环缓冲区 + // 责任编辑历史记录 - 使用固定大小为10的循环缓冲区 authorHistory: [], selectKey: 0, // 用于强制重新渲染 el-select @@ -687,7 +687,7 @@ export default { .map(item => item.value); } - // 加载文章来源历史记录 + // 加载责任编辑历史记录 const storedAuthorHistory = localStorage.getItem('authorHistory'); if (storedAuthorHistory) { const authorHistoryData = JSON.parse(storedAuthorHistory); @@ -1935,7 +1935,7 @@ export default { /** 新增按钮操作 */ handleAdd() { this.reset(); - //this.form.author=this.userName; //文章来源手动输入 + //this.form.author=this.userName; //责任编辑手动输入 this.form.articleOrigin = this.dept; // 确保新增时审批表状态正确初始化 @@ -2048,7 +2048,7 @@ export default { this.form.author = this.userName; } - // 将文章来源添加到历史记录中 + // 将责任编辑添加到历史记录中 if (this.form.author) { this.addToAuthorHistory(this.form.author); } @@ -2303,7 +2303,7 @@ export default { this.addToSourceHistory(this.form.articleOrigin); } - // 将文章来源添加到历史记录中 + // 将责任编辑添加到历史记录中 if (this.form.author) { this.addToAuthorHistory(this.form.author); } @@ -2660,7 +2660,7 @@ export default { this.sourceHistory = storedHistory.map(item => item.value); }, - // 添加文章来源到历史记录 - 使用固定大小为10的循环缓冲区 + // 添加责任编辑到历史记录 - 使用固定大小为10的循环缓冲区 addToAuthorHistory(author) { if (!author) return; @@ -2726,7 +2726,7 @@ export default { cb(results.map(item => ({ value: item }))); }, - // 文章来源自动完成查询 + // 责任编辑自动完成查询 querySearchAuthor(queryString, cb) { // 从 localStorage 获取最新数据 let storedHistory = []; diff --git a/ruoyi-ui/src/views/draft/index.vue b/ruoyi-ui/src/views/draft/index.vue index 5484d14..6a61110 100644 --- a/ruoyi-ui/src/views/draft/index.vue +++ b/ruoyi-ui/src/views/draft/index.vue @@ -17,10 +17,10 @@ @keyup.enter.native="handleQuery" /> - + @@ -84,7 +84,7 @@ - + - + - + + @@ -632,7 +632,7 @@ export default { // 文章来源历史记录(市局用户输入记忆功能)- 使用固定大小为10的循环缓冲区 sourceHistory: [], - // 视频来源历史记录 - 使用固定大小为10的循环缓冲区 + // 责任编辑历史记录 - 使用固定大小为10的循环缓冲区 authorHistory: [], selectKey: 0, // 用于强制重新渲染 el-select @@ -660,7 +660,7 @@ export default { .map(item => item.value); } - // 加载视频来源历史记录 + // 加载责任编辑历史记录 const storedAuthorHistory = localStorage.getItem('authorHistory'); if (storedAuthorHistory) { const authorHistoryData = JSON.parse(storedAuthorHistory); @@ -1799,7 +1799,7 @@ export default { /** 新增按钮操作 */ handleAdd() { this.reset(); - //this.form.author=this.userName; //视频来源手动输入 + //this.form.author=this.userName; //责任编辑手动输入 this.form.articleOrigin = this.dept; this.open = true; this.title = "添加文章"; @@ -1881,7 +1881,7 @@ export default { this.form.author = this.userName; } - // 将视频来源添加到历史记录中 + // 将责任编辑添加到历史记录中 if (this.form.author) { this.addToAuthorHistory(this.form.author); } @@ -2051,7 +2051,7 @@ export default { this.addToSourceHistory(this.form.articleOrigin); } - // 将视频来源添加到历史记录中 + // 将责任编辑添加到历史记录中 if (this.form.author) { this.addToAuthorHistory(this.form.author); } @@ -2294,7 +2294,7 @@ export default { this.sourceHistory = storedHistory.map(item => item.value); }, - // 添加视频来源到历史记录 - 使用固定大小为10的循环缓冲区 + // 添加责任编辑到历史记录 - 使用固定大小为10的循环缓冲区 addToAuthorHistory(author) { if (!author) return; @@ -2360,7 +2360,7 @@ export default { cb(results.map(item => ({ value: item }))); }, - // 视频来源自动完成查询 + // 责任编辑自动完成查询 querySearchAuthor(queryString, cb) { // 从 localStorage 获取最新数据 let storedHistory = []; diff --git a/ruoyi-ui/src/views/river_news/river_news/index.vue b/ruoyi-ui/src/views/river_news/river_news/index.vue index fbd30f3..fe6b058 100644 --- a/ruoyi-ui/src/views/river_news/river_news/index.vue +++ b/ruoyi-ui/src/views/river_news/river_news/index.vue @@ -30,10 +30,10 @@ /> - + @@ -129,7 +129,7 @@
{{ $formatContent(scope.row.content) }}
> - + - + 修改 + item.articleId) this.single = selection.length !== 1 this.multiple = !selection.length + + // 分局用户额外判断:如果选中的文章中包含已审核的文章,则禁用修改和删除按钮 + if (this.canAdd && !this.canAudit && !this.isAdmin) { + const hasAuditedArticle = selection.some(item => item.state === '1'); + if (hasAuditedArticle) { + this.single = true; + this.multiple = true; + } + } }, /** 新增按钮操作 */ handleAdd() { -- Gitee From c8fe86fb0db6feb84a50fbb2b5e3778ce1b5137d Mon Sep 17 00:00:00 2001 From: Jayther2020 Date: Wed, 15 Oct 2025 10:12:31 +0800 Subject: [PATCH 031/120] - --- ruoyi-admin/src/main/resources/application-druid.yml | 2 +- ruoyi-ui/src/views/river_news/river_news/index.vue | 2 +- ruoyi-ui/src/views/toutiao/toutiao/index.vue | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index 9648ffb..bd63f6c 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -62,4 +62,4 @@ spring: merge-sql: true wall: config: - multi-statement-allow: true \ No newline at end of file + multi-statement-allow: true diff --git a/ruoyi-ui/src/views/river_news/river_news/index.vue b/ruoyi-ui/src/views/river_news/river_news/index.vue index fe6b058..79b21ab 100644 --- a/ruoyi-ui/src/views/river_news/river_news/index.vue +++ b/ruoyi-ui/src/views/river_news/river_news/index.vue @@ -541,7 +541,7 @@ export default { /** 删除按钮操作 */ handleDelete(row) { const newsIds = row.newsId || this.ids; - this.$modal.confirm('是否确认删除river_news编号为"' + newsIds + '"的数据项?').then(function() { + this.$modal.confirm('是否确认删除' + row.title + '的文章?').then(function() { return delRiver_news(newsIds); }).then(() => { this.getList(); diff --git a/ruoyi-ui/src/views/toutiao/toutiao/index.vue b/ruoyi-ui/src/views/toutiao/toutiao/index.vue index cfacfb7..5825503 100644 --- a/ruoyi-ui/src/views/toutiao/toutiao/index.vue +++ b/ruoyi-ui/src/views/toutiao/toutiao/index.vue @@ -364,7 +364,7 @@ export default { /** 删除按钮操作 */ handleDelete(row) { const ids = row.id || this.ids; - this.$modal.confirm('是否确认删除toutiao编号为"' + ids + '"的数据项?').then(function () { + this.$modal.confirm('是否确认删除' + row.title + '的头条?').then(function () { return delToutiao(ids); }).then(() => { this.getList(); -- Gitee From 23e6846288fa980b7d28937d2171d33fc7b07e78 Mon Sep 17 00:00:00 2001 From: Jayther2020 Date: Wed, 15 Oct 2025 10:22:03 +0800 Subject: [PATCH 032/120] - --- ruoyi-ui/src/plugins/index.js | 28 ++++++++++++++++--- .../videoRecoverStation/index.vue | 2 +- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/ruoyi-ui/src/plugins/index.js b/ruoyi-ui/src/plugins/index.js index 564ab7f..3e07c6b 100644 --- a/ruoyi-ui/src/plugins/index.js +++ b/ruoyi-ui/src/plugins/index.js @@ -17,9 +17,29 @@ export default { Vue.prototype.$modal = modal // 下载文件 Vue.prototype.$download = download - - Vue.use(globalMethods) - -} + + Vue.prototype.$formatContent = function (content) { + const maxLength = 20; // 截取的长度 + const textOnly = content.replace(/<[^>]*>?/gm, ''); + if (content && content.length > maxLength) { + // 使用正则表达式移除HTML标签 + return textOnly.substring(0, maxLength) + '...'; + } + return textOnly; + }; + + Vue.prototype.$stripHtml = function (content, maxLength = 20) { + if (!content) return ''; + // 移除 HTML 标签 + const textOnly = content.replace(/<[^>]*>/g, ''); + // 截断文本(如果需要) + return maxLength && textOnly.length > maxLength + ? textOnly.substring(0, maxLength) + '...' + : textOnly; + }; + + // Vue.use(globalMethods) + + } } diff --git a/ruoyi-ui/src/views/videoRecoverStation/videoRecoverStation/index.vue b/ruoyi-ui/src/views/videoRecoverStation/videoRecoverStation/index.vue index ecf2e01..4fc477e 100644 --- a/ruoyi-ui/src/views/videoRecoverStation/videoRecoverStation/index.vue +++ b/ruoyi-ui/src/views/videoRecoverStation/videoRecoverStation/index.vue @@ -79,7 +79,7 @@ - + - + - + @@ -216,17 +216,17 @@ export default { const id = row.id || this.ids; this.$modal.confirm('确定要恢复吗?') .then(() => { - return recoverData(id); + return recoverData(id); }) .then(response => { - let message = response.msg; + let message = response.msg; console.log(message); - this.$modal.msgSuccess(message); - this.getList(); + this.$modal.msgSuccess(message); + this.getList(); }) .catch(error => { - console.error("恢复失败:", error); - this.$modal.msgError("恢复失败"); + console.error("恢复失败:", error); + this.$modal.msgError("恢复失败"); }); }, diff --git a/ruoyi-ui/src/views/ai/ai/index.vue b/ruoyi-ui/src/views/ai/ai/index.vue index 36c658d..3039928 100644 --- a/ruoyi-ui/src/views/ai/ai/index.vue +++ b/ruoyi-ui/src/views/ai/ai/index.vue @@ -108,7 +108,7 @@ /> - + diff --git a/ruoyi-ui/src/views/article/article/index.vue b/ruoyi-ui/src/views/article/article/index.vue index b2210ce..775afea 100644 --- a/ruoyi-ui/src/views/article/article/index.vue +++ b/ruoyi-ui/src/views/article/article/index.vue @@ -253,7 +253,7 @@ /> - + diff --git a/ruoyi-ui/src/views/chartColumn/chartColumn/index.vue b/ruoyi-ui/src/views/chartColumn/chartColumn/index.vue index 99c0a77..1fbbee4 100644 --- a/ruoyi-ui/src/views/chartColumn/chartColumn/index.vue +++ b/ruoyi-ui/src/views/chartColumn/chartColumn/index.vue @@ -75,7 +75,7 @@ - + - + - + diff --git a/ruoyi-ui/src/views/conlumn/conlumn/index.vue b/ruoyi-ui/src/views/conlumn/conlumn/index.vue index 463afdb..4e7a52f 100644 --- a/ruoyi-ui/src/views/conlumn/conlumn/index.vue +++ b/ruoyi-ui/src/views/conlumn/conlumn/index.vue @@ -88,7 +88,7 @@ - + diff --git a/ruoyi-ui/src/views/conlumn/index.vue b/ruoyi-ui/src/views/conlumn/index.vue index 0e4873c..1d0149d 100644 --- a/ruoyi-ui/src/views/conlumn/index.vue +++ b/ruoyi-ui/src/views/conlumn/index.vue @@ -109,7 +109,7 @@ /> --> - + diff --git a/ruoyi-ui/src/views/draft/index.vue b/ruoyi-ui/src/views/draft/index.vue index 6a61110..3e46c9d 100644 --- a/ruoyi-ui/src/views/draft/index.vue +++ b/ruoyi-ui/src/views/draft/index.vue @@ -127,7 +127,7 @@ /> - + diff --git a/ruoyi-ui/src/views/duty/duty/index.vue b/ruoyi-ui/src/views/duty/duty/index.vue index 66a4231..c1c26e3 100644 --- a/ruoyi-ui/src/views/duty/duty/index.vue +++ b/ruoyi-ui/src/views/duty/duty/index.vue @@ -95,7 +95,7 @@ /> - + diff --git a/ruoyi-ui/src/views/history/history/index.vue b/ruoyi-ui/src/views/history/history/index.vue index cccb479..173b8c8 100644 --- a/ruoyi-ui/src/views/history/history/index.vue +++ b/ruoyi-ui/src/views/history/history/index.vue @@ -96,7 +96,7 @@ /> - + diff --git a/ruoyi-ui/src/views/intergrityRecommend/index.vue b/ruoyi-ui/src/views/intergrityRecommend/index.vue index f560bdf..c9d62ab 100644 --- a/ruoyi-ui/src/views/intergrityRecommend/index.vue +++ b/ruoyi-ui/src/views/intergrityRecommend/index.vue @@ -115,7 +115,7 @@ /> - + diff --git a/ruoyi-ui/src/views/keshi1/keshi1/index.vue b/ruoyi-ui/src/views/keshi1/keshi1/index.vue index 76a1e31..2a0f24e 100644 --- a/ruoyi-ui/src/views/keshi1/keshi1/index.vue +++ b/ruoyi-ui/src/views/keshi1/keshi1/index.vue @@ -85,7 +85,7 @@ - + - + diff --git a/ruoyi-ui/src/views/keshi2/keshi2/index.vue b/ruoyi-ui/src/views/keshi2/keshi2/index.vue index 4426f39..c30d5ae 100644 --- a/ruoyi-ui/src/views/keshi2/keshi2/index.vue +++ b/ruoyi-ui/src/views/keshi2/keshi2/index.vue @@ -99,7 +99,7 @@ /> - + diff --git a/ruoyi-ui/src/views/kind/kind/index.vue b/ruoyi-ui/src/views/kind/kind/index.vue index b1ef9af..c025458 100644 --- a/ruoyi-ui/src/views/kind/kind/index.vue +++ b/ruoyi-ui/src/views/kind/kind/index.vue @@ -83,7 +83,7 @@ - + - + diff --git a/ruoyi-ui/src/views/leader/leader/index.vue b/ruoyi-ui/src/views/leader/leader/index.vue index 7876e62..18747a5 100644 --- a/ruoyi-ui/src/views/leader/leader/index.vue +++ b/ruoyi-ui/src/views/leader/leader/index.vue @@ -102,7 +102,7 @@ - + - + diff --git a/ruoyi-ui/src/views/monitor/job/index.vue b/ruoyi-ui/src/views/monitor/job/index.vue index 892c727..9567c32 100644 --- a/ruoyi-ui/src/views/monitor/job/index.vue +++ b/ruoyi-ui/src/views/monitor/job/index.vue @@ -152,7 +152,7 @@ /> - + diff --git a/ruoyi-ui/src/views/partyclass/partyclass/index.vue b/ruoyi-ui/src/views/partyclass/partyclass/index.vue index 88f5715..8f09e18 100644 --- a/ruoyi-ui/src/views/partyclass/partyclass/index.vue +++ b/ruoyi-ui/src/views/partyclass/partyclass/index.vue @@ -190,7 +190,7 @@ /> - + diff --git a/ruoyi-ui/src/views/praticalTools/index.vue b/ruoyi-ui/src/views/praticalTools/index.vue index e6fb7d4..201d90d 100644 --- a/ruoyi-ui/src/views/praticalTools/index.vue +++ b/ruoyi-ui/src/views/praticalTools/index.vue @@ -249,7 +249,7 @@ /> - + diff --git a/ruoyi-ui/src/views/river_news/river_news/index.vue b/ruoyi-ui/src/views/river_news/river_news/index.vue index 4e6df74..f914819 100644 --- a/ruoyi-ui/src/views/river_news/river_news/index.vue +++ b/ruoyi-ui/src/views/river_news/river_news/index.vue @@ -196,7 +196,7 @@ /> - + diff --git a/ruoyi-ui/src/views/river_view/river_view/index.vue b/ruoyi-ui/src/views/river_view/river_view/index.vue index 7e356a5..77847c4 100644 --- a/ruoyi-ui/src/views/river_view/river_view/index.vue +++ b/ruoyi-ui/src/views/river_view/river_view/index.vue @@ -122,7 +122,7 @@ /> - + @@ -571,7 +571,7 @@ export default { playVideo(videoUrl) { // 创建一个模态框来播放视频 const videoHtml = ``; - + this.$alert(videoHtml, '视频播放', { dangerouslyUseHTMLString: true, showCancelButton: false, diff --git a/ruoyi-ui/src/views/station/station/index.vue b/ruoyi-ui/src/views/station/station/index.vue index c5fee55..a607848 100644 --- a/ruoyi-ui/src/views/station/station/index.vue +++ b/ruoyi-ui/src/views/station/station/index.vue @@ -205,7 +205,7 @@ /> - + diff --git a/ruoyi-ui/src/views/system/config/index.vue b/ruoyi-ui/src/views/system/config/index.vue index 6bde2ee..2ca35c5 100644 --- a/ruoyi-ui/src/views/system/config/index.vue +++ b/ruoyi-ui/src/views/system/config/index.vue @@ -148,7 +148,7 @@ /> - + diff --git a/ruoyi-ui/src/views/system/dept/index.vue b/ruoyi-ui/src/views/system/dept/index.vue index 8c1322e..8d6e4ca 100644 --- a/ruoyi-ui/src/views/system/dept/index.vue +++ b/ruoyi-ui/src/views/system/dept/index.vue @@ -98,7 +98,7 @@ - + diff --git a/ruoyi-ui/src/views/system/dict/data.vue b/ruoyi-ui/src/views/system/dict/data.vue index ee614e5..99143ff 100644 --- a/ruoyi-ui/src/views/system/dict/data.vue +++ b/ruoyi-ui/src/views/system/dict/data.vue @@ -141,7 +141,7 @@ /> - + @@ -413,4 +413,4 @@ export default { } } }; - \ No newline at end of file + diff --git a/ruoyi-ui/src/views/system/dict/index.vue b/ruoyi-ui/src/views/system/dict/index.vue index 6ca5457..592bc9e 100644 --- a/ruoyi-ui/src/views/system/dict/index.vue +++ b/ruoyi-ui/src/views/system/dict/index.vue @@ -158,7 +158,7 @@ /> - + @@ -344,4 +344,4 @@ export default { } } }; - \ No newline at end of file + diff --git a/ruoyi-ui/src/views/system/menu/index.vue b/ruoyi-ui/src/views/system/menu/index.vue index c4b5003..575de25 100644 --- a/ruoyi-ui/src/views/system/menu/index.vue +++ b/ruoyi-ui/src/views/system/menu/index.vue @@ -103,7 +103,7 @@ - + diff --git a/ruoyi-ui/src/views/system/notice/index.vue b/ruoyi-ui/src/views/system/notice/index.vue index 7982b54..d165f8d 100644 --- a/ruoyi-ui/src/views/system/notice/index.vue +++ b/ruoyi-ui/src/views/system/notice/index.vue @@ -123,7 +123,7 @@ /> - + diff --git a/ruoyi-ui/src/views/system/post/index.vue b/ruoyi-ui/src/views/system/post/index.vue index 444bf63..b456867 100644 --- a/ruoyi-ui/src/views/system/post/index.vue +++ b/ruoyi-ui/src/views/system/post/index.vue @@ -124,7 +124,7 @@ /> - + diff --git a/ruoyi-ui/src/views/system/role/index.vue b/ruoyi-ui/src/views/system/role/index.vue index 47419ba..b4fb5c0 100644 --- a/ruoyi-ui/src/views/system/role/index.vue +++ b/ruoyi-ui/src/views/system/role/index.vue @@ -156,7 +156,7 @@ /> - + @@ -602,4 +602,4 @@ export default { } } }; - \ No newline at end of file + diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue index 1dbc2d1..32bcd5b 100644 --- a/ruoyi-ui/src/views/system/user/index.vue +++ b/ruoyi-ui/src/views/system/user/index.vue @@ -95,7 +95,7 @@ - + @@ -550,4 +550,4 @@ export default { } } }; - \ No newline at end of file + diff --git a/ruoyi-ui/src/views/uncheck/uncheck/index.vue b/ruoyi-ui/src/views/uncheck/uncheck/index.vue index fc84caf..0946b08 100644 --- a/ruoyi-ui/src/views/uncheck/uncheck/index.vue +++ b/ruoyi-ui/src/views/uncheck/uncheck/index.vue @@ -233,7 +233,7 @@ /> - + diff --git a/ruoyi-ui/src/views/water/water/index.vue b/ruoyi-ui/src/views/water/water/index.vue index e01edff..4c8ac5b 100644 --- a/ruoyi-ui/src/views/water/water/index.vue +++ b/ruoyi-ui/src/views/water/water/index.vue @@ -94,7 +94,7 @@ /> - + diff --git a/ruoyi-ui/src/views/wstation/wstation/index.vue b/ruoyi-ui/src/views/wstation/wstation/index.vue index e5c747e..088420a 100644 --- a/ruoyi-ui/src/views/wstation/wstation/index.vue +++ b/ruoyi-ui/src/views/wstation/wstation/index.vue @@ -149,7 +149,7 @@ /> - + -- Gitee From 1b43ff20bf01d79df36b274ebe2f250930e24519 Mon Sep 17 00:00:00 2001 From: Jayther2020 Date: Wed, 15 Oct 2025 11:26:43 +0800 Subject: [PATCH 035/120] - --- ruoyi-ui/src/views/uncheck/uncheck/index.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ruoyi-ui/src/views/uncheck/uncheck/index.vue b/ruoyi-ui/src/views/uncheck/uncheck/index.vue index 0946b08..f94af3d 100644 --- a/ruoyi-ui/src/views/uncheck/uncheck/index.vue +++ b/ruoyi-ui/src/views/uncheck/uncheck/index.vue @@ -3332,7 +3332,7 @@ export default { text-indent: 2em; } -.ql-editor p { - text-indent: 2em; -} +/*.ql-editor p {*/ +/* text-indent: 2em;*/ +/*}*/ -- Gitee From de996c6202b186fe4f4ecb8921fe11611d65e1e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=AA=8F=E6=9D=B0?= <3255658749@qq.com> Date: Wed, 15 Oct 2025 12:13:59 +0800 Subject: [PATCH 036/120] =?UTF-8?q?=E8=A7=86=E9=A2=91=E6=9D=83=E9=99=90?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/controller/PartyclassController.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/controller/PartyclassController.java b/ruoyi-admin/src/main/java/com/ruoyi/controller/PartyclassController.java index 9cd1f9c..1d3f787 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/controller/PartyclassController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/controller/PartyclassController.java @@ -55,7 +55,7 @@ public class PartyclassController extends BaseController */ // @PreAuthorize("@ss.hasPermi('partyclass:partyclass:list')") @Anonymous - @GetMapping("/list") + @GetMapping("/parList") public TableDataInfo list(Partyclass partyclass) { startPage(); @@ -68,7 +68,7 @@ public class PartyclassController extends BaseController * 查询所有视频列表(市局和管理员) * @return */ - @GetMapping("/allList") + @GetMapping("/list") public TableDataInfo allList(Partyclass partyclass) { startPage(); @@ -107,7 +107,6 @@ public class PartyclassController extends BaseController @GetMapping("/listByVideoType/{video_type}") public TableDataInfo listByVideoType(@PathVariable("video_type") int type) { - Long userId = SecurityUtils.getLoginUser().getUser().getUserId(); return getDataTable(partyclassService.selectPartyclassByType(type)); } -- Gitee From d758c22356361937c6b8b06f56e88049ed24dc73 Mon Sep 17 00:00:00 2001 From: gitYA <2928526103@qq.com> Date: Thu, 16 Oct 2025 11:59:07 +0800 Subject: [PATCH 037/120] =?UTF-8?q?=E8=BD=AC=E5=88=B0=E7=B2=BE=E9=80=89?= =?UTF-8?q?=E5=A4=B4=E6=9D=A1=E6=A0=8F=E7=9B=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/views/article/article/index.vue | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ruoyi-ui/src/views/article/article/index.vue b/ruoyi-ui/src/views/article/article/index.vue index 775afea..3f0fb6d 100644 --- a/ruoyi-ui/src/views/article/article/index.vue +++ b/ruoyi-ui/src/views/article/article/index.vue @@ -1694,13 +1694,14 @@ export default { }, isAllowedToTransfer(columnName) { - const allowedNames = ['纪律规定', '河道要闻', '媒体聚焦', '未知栏目']; // 允许的栏目名称列表 + const allowedNames = ['河道要闻', '党建工作','纪检工作','堤防管理','工程建设','防汛抢险','综合简讯','媒体聚焦']; // 允许的栏目名称列表 return allowedNames.includes(columnName); }, /** 将文章转到头条(toutiao) */ handleTransferToToutiao(row) { - // 判断是否允许加入头条(支持栏目名=纪律规定、河道要闻、媒体聚焦、未知栏目) + // 判断是否允许加入头条 + console.log('当前栏目名称:', row.name); const isAllowed = this.isAllowedToTransfer(row.name); if (!isAllowed) { @@ -1833,7 +1834,7 @@ export default { this.$modal.confirm('是否将文章转到精选?').then(() => { // 0. 判断是否允许转出到 river_news - if (!this.isAllowedToTransfer(row.columnId)) { + if (!this.isAllowedToTransfer(row.name)) { this.$modal.msgError("该栏目不允许转到精选"); return; } -- Gitee From 8c9e026b2ec33f0185d11ed0f672efa4d0f97cc1 Mon Sep 17 00:00:00 2001 From: jayther2020 Date: Sat, 18 Oct 2025 20:23:36 +0800 Subject: [PATCH 038/120] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/Editor/EnhancedEditor.vue | 66 +++++++++++++++++-- ruoyi-ui/src/views/article/article/index.vue | 61 ++++++++++++++++- ruoyi-ui/src/views/praticalTools/index.vue | 61 ++++++++++++++++- .../src/views/river_news/river_news/index.vue | 59 ++++++++++++++++- ruoyi-ui/src/views/toutiao/toutiao/index.vue | 61 ++++++++++++++++- ruoyi-ui/src/views/uncheck/uncheck/index.vue | 61 ++++++++++++++++- 6 files changed, 355 insertions(+), 14 deletions(-) diff --git a/ruoyi-ui/src/components/Editor/EnhancedEditor.vue b/ruoyi-ui/src/components/Editor/EnhancedEditor.vue index d211ff4..1b53fcf 100644 --- a/ruoyi-ui/src/components/Editor/EnhancedEditor.vue +++ b/ruoyi-ui/src/components/Editor/EnhancedEditor.vue @@ -238,6 +238,11 @@ export default { padding: 0 8px; display: flex; align-items: center; + box-sizing: border-box; + font-family: 'Helvetica Neue','Helvetica','Arial',sans-serif; + position: sticky; + top: 0; + z-index: 99999999; } .ql-toolbar .ql-formats { @@ -472,11 +477,64 @@ export default { } /* 确保编辑器容器不会裁剪下拉框 */ -.el-dialog .enhanced-editor { - overflow: visible !important; +.el-dialog .editor-container { + overflow: auto !important; } -.el-dialog .editor-container { - overflow: visible !important; +/* 为每个编辑器实例设置递增的z-index */ +.enhanced-editor:nth-child(1) .ql-snow .ql-picker-options { + z-index: 10010 !important; +} + +.enhanced-editor:nth-child(2) .ql-snow .ql-picker-options { + z-index: 10009 !important; +} + +.enhanced-editor:nth-child(3) .ql-snow .ql-picker-options { + z-index: 10008 !important; +} + +.enhanced-editor:nth-child(4) .ql-snow .ql-picker-options { + z-index: 10007 !important; +} + +.enhanced-editor:nth-child(5) .ql-snow .ql-picker-options { + z-index: 10006 !important; +} + +.enhanced-editor:nth-child(6) .ql-snow .ql-picker-options { + z-index: 10005 !important; +} + +.enhanced-editor:nth-child(7) .ql-snow .ql-picker-options { + z-index: 10004 !important; +} + +.enhanced-editor:nth-child(8) .ql-snow .ql-picker-options { + z-index: 10003 !important; +} + +.enhanced-editor:nth-child(9) .ql-snow .ql-picker-options { + z-index: 10002 !important; +} + +.enhanced-editor:nth-child(10) .ql-snow .ql-picker-options { + z-index: 10001 !important; +} + +.enhanced-editor:nth-child(11) .ql-snow .ql-picker-options { + z-index: 10000 !important; +} + +/* 确保下拉菜单在正确的定位上下文中 */ +.ql-snow .ql-picker-options { + position: fixed !important; + z-index: 10000 !important; + background: white !important; + border: 1px solid #ccc !important; + border-radius: 4px !important; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important; + max-height: 200px !important; + overflow-y: auto !important; } diff --git a/ruoyi-ui/src/views/article/article/index.vue b/ruoyi-ui/src/views/article/article/index.vue index 3f0fb6d..b9bfc89 100644 --- a/ruoyi-ui/src/views/article/article/index.vue +++ b/ruoyi-ui/src/views/article/article/index.vue @@ -256,13 +256,13 @@ - +
- +
diff --git a/ruoyi-ui/src/views/praticalTools/index.vue b/ruoyi-ui/src/views/praticalTools/index.vue index 201d90d..c1fab56 100644 --- a/ruoyi-ui/src/views/praticalTools/index.vue +++ b/ruoyi-ui/src/views/praticalTools/index.vue @@ -252,13 +252,13 @@ - +
- +
diff --git a/ruoyi-ui/src/views/river_news/river_news/index.vue b/ruoyi-ui/src/views/river_news/river_news/index.vue index f914819..9a687b1 100644 --- a/ruoyi-ui/src/views/river_news/river_news/index.vue +++ b/ruoyi-ui/src/views/river_news/river_news/index.vue @@ -199,12 +199,12 @@ - +
- +
+ + diff --git a/ruoyi-ui/src/views/toutiao/toutiao/index.vue b/ruoyi-ui/src/views/toutiao/toutiao/index.vue index 5825503..33923f5 100644 --- a/ruoyi-ui/src/views/toutiao/toutiao/index.vue +++ b/ruoyi-ui/src/views/toutiao/toutiao/index.vue @@ -100,12 +100,12 @@ - +
- +
@@ -385,4 +385,61 @@ export default { .subtitle-item { margin-bottom: 20px; } + +/* 为每个编辑器实例设置递增的z-index */ +.editor-container:nth-child(1) .ql-snow .ql-picker-options { + z-index: 10010 !important; +} + +.editor-container:nth-child(2) .ql-snow .ql-picker-options { + z-index: 10009 !important; +} + +.editor-container:nth-child(3) .ql-snow .ql-picker-options { + z-index: 10008 !important; +} + +.editor-container:nth-child(4) .ql-snow .ql-picker-options { + z-index: 10007 !important; +} + +.editor-container:nth-child(5) .ql-snow .ql-picker-options { + z-index: 10006 !important; +} + +.editor-container:nth-child(6) .ql-snow .ql-picker-options { + z-index: 10005 !important; +} + +.editor-container:nth-child(7) .ql-snow .ql-picker-options { + z-index: 10004 !important; +} + +.editor-container:nth-child(8) .ql-snow .ql-picker-options { + z-index: 10003 !important; +} + +.editor-container:nth-child(9) .ql-snow .ql-picker-options { + z-index: 10002 !important; +} + +.editor-container:nth-child(10) .ql-snow .ql-picker-options { + z-index: 10001 !important; +} + +.editor-container:nth-child(11) .ql-snow .ql-picker-options { + z-index: 10000 !important; +} + +/* 确保下拉菜单在正确的定位上下文中 */ +.ql-snow .ql-picker-options { + position: fixed !important; + z-index: 10000 !important; + background: white !important; + border: 1px solid #ccc !important; + border-radius: 4px !important; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important; + max-height: 200px !important; + overflow-y: auto !important; +} diff --git a/ruoyi-ui/src/views/uncheck/uncheck/index.vue b/ruoyi-ui/src/views/uncheck/uncheck/index.vue index f94af3d..260153d 100644 --- a/ruoyi-ui/src/views/uncheck/uncheck/index.vue +++ b/ruoyi-ui/src/views/uncheck/uncheck/index.vue @@ -236,12 +236,12 @@ - +
- +
+ +
+ +
当前位置:通知公告

111

来源:11

发布时间:2025-10-30

责任编辑:11

11

+ +
版权所有:湖北省荆州市长江河道管理局
地址:湖北省荆州市沙市区金龙路49号
鄂ICP备18015618号
技术支持:荆州市河道网络与信息化中心
二维码
欢迎关注荆江安澜微信公众号
+ + + + diff --git a/ruoyi-ui/public/preview/preview_files/000.png b/ruoyi-ui/public/preview/preview_files/000.png new file mode 100644 index 0000000000000000000000000000000000000000..2801e617c409aab15a671bb8b5776cda60a95466 GIT binary patch literal 127740 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≀n;raAf(j45RK7EPN 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 Cowm*Z literal 0 HcmV?d00001 diff --git a/ruoyi-ui/public/preview/preview_files/client b/ruoyi-ui/public/preview/preview_files/client new file mode 100644 index 0000000..7bed1e9 --- /dev/null +++ b/ruoyi-ui/public/preview/preview_files/client @@ -0,0 +1,831 @@ +import "/node_modules/vite/dist/client/env.mjs"; + +class HMRContext { + constructor(hmrClient, ownerPath) { + this.hmrClient = hmrClient; + this.ownerPath = ownerPath; + if (!hmrClient.dataMap.has(ownerPath)) { + hmrClient.dataMap.set(ownerPath, {}); + } + const mod = hmrClient.hotModulesMap.get(ownerPath); + if (mod) { + mod.callbacks = []; + } + const staleListeners = hmrClient.ctxToListenersMap.get(ownerPath); + if (staleListeners) { + for (const [event, staleFns] of staleListeners) { + const listeners = hmrClient.customListenersMap.get(event); + if (listeners) { + hmrClient.customListenersMap.set( + event, + listeners.filter((l) => !staleFns.includes(l)) + ); + } + } + } + this.newListeners = /* @__PURE__ */ new Map(); + hmrClient.ctxToListenersMap.set(ownerPath, this.newListeners); + } + get data() { + return this.hmrClient.dataMap.get(this.ownerPath); + } + accept(deps, callback) { + if (typeof deps === "function" || !deps) { + this.acceptDeps([this.ownerPath], ([mod]) => deps?.(mod)); + } else if (typeof deps === "string") { + this.acceptDeps([deps], ([mod]) => callback?.(mod)); + } else if (Array.isArray(deps)) { + this.acceptDeps(deps, callback); + } else { + throw new Error(`invalid hot.accept() usage.`); + } + } + // export names (first arg) are irrelevant on the client side, they're + // extracted in the server for propagation + acceptExports(_, callback) { + this.acceptDeps([this.ownerPath], ([mod]) => callback?.(mod)); + } + dispose(cb) { + this.hmrClient.disposeMap.set(this.ownerPath, cb); + } + prune(cb) { + this.hmrClient.pruneMap.set(this.ownerPath, cb); + } + // Kept for backward compatibility (#11036) + // eslint-disable-next-line @typescript-eslint/no-empty-function + decline() { + } + invalidate(message) { + this.hmrClient.notifyListeners("vite:invalidate", { + path: this.ownerPath, + message + }); + this.send("vite:invalidate", { path: this.ownerPath, message }); + this.hmrClient.logger.debug( + `[vite] invalidate ${this.ownerPath}${message ? `: ${message}` : ""}` + ); + } + on(event, cb) { + const addToMap = (map) => { + const existing = map.get(event) || []; + existing.push(cb); + map.set(event, existing); + }; + addToMap(this.hmrClient.customListenersMap); + addToMap(this.newListeners); + } + off(event, cb) { + const removeFromMap = (map) => { + const existing = map.get(event); + if (existing === void 0) { + return; + } + const pruned = existing.filter((l) => l !== cb); + if (pruned.length === 0) { + map.delete(event); + return; + } + map.set(event, pruned); + }; + removeFromMap(this.hmrClient.customListenersMap); + removeFromMap(this.newListeners); + } + send(event, data) { + this.hmrClient.messenger.send( + JSON.stringify({ type: "custom", event, data }) + ); + } + acceptDeps(deps, callback = () => { + }) { + const mod = this.hmrClient.hotModulesMap.get(this.ownerPath) || { + id: this.ownerPath, + callbacks: [] + }; + mod.callbacks.push({ + deps, + fn: callback + }); + this.hmrClient.hotModulesMap.set(this.ownerPath, mod); + } +} +class HMRMessenger { + constructor(connection) { + this.connection = connection; + this.queue = []; + } + send(message) { + this.queue.push(message); + this.flush(); + } + flush() { + if (this.connection.isReady()) { + this.queue.forEach((msg) => this.connection.send(msg)); + this.queue = []; + } + } +} +class HMRClient { + constructor(logger, connection, importUpdatedModule) { + this.logger = logger; + this.importUpdatedModule = importUpdatedModule; + this.hotModulesMap = /* @__PURE__ */ new Map(); + this.disposeMap = /* @__PURE__ */ new Map(); + this.pruneMap = /* @__PURE__ */ new Map(); + this.dataMap = /* @__PURE__ */ new Map(); + this.customListenersMap = /* @__PURE__ */ new Map(); + this.ctxToListenersMap = /* @__PURE__ */ new Map(); + this.updateQueue = []; + this.pendingUpdateQueue = false; + this.messenger = new HMRMessenger(connection); + } + async notifyListeners(event, data) { + const cbs = this.customListenersMap.get(event); + if (cbs) { + await Promise.allSettled(cbs.map((cb) => cb(data))); + } + } + clear() { + this.hotModulesMap.clear(); + this.disposeMap.clear(); + this.pruneMap.clear(); + this.dataMap.clear(); + this.customListenersMap.clear(); + this.ctxToListenersMap.clear(); + } + // After an HMR update, some modules are no longer imported on the page + // but they may have left behind side effects that need to be cleaned up + // (.e.g style injections) + async prunePaths(paths) { + await Promise.all( + paths.map((path) => { + const disposer = this.disposeMap.get(path); + if (disposer) return disposer(this.dataMap.get(path)); + }) + ); + paths.forEach((path) => { + const fn = this.pruneMap.get(path); + if (fn) { + fn(this.dataMap.get(path)); + } + }); + } + warnFailedUpdate(err, path) { + if (!err.message.includes("fetch")) { + this.logger.error(err); + } + this.logger.error( + `[hmr] Failed to reload ${path}. This could be due to syntax errors or importing non-existent modules. (see errors above)` + ); + } + /** + * buffer multiple hot updates triggered by the same src change + * so that they are invoked in the same order they were sent. + * (otherwise the order may be inconsistent because of the http request round trip) + */ + async queueUpdate(payload) { + this.updateQueue.push(this.fetchUpdate(payload)); + if (!this.pendingUpdateQueue) { + this.pendingUpdateQueue = true; + await Promise.resolve(); + this.pendingUpdateQueue = false; + const loading = [...this.updateQueue]; + this.updateQueue = []; + (await Promise.all(loading)).forEach((fn) => fn && fn()); + } + } + async fetchUpdate(update) { + const { path, acceptedPath } = update; + const mod = this.hotModulesMap.get(path); + if (!mod) { + return; + } + let fetchedModule; + const isSelfUpdate = path === acceptedPath; + const qualifiedCallbacks = mod.callbacks.filter( + ({ deps }) => deps.includes(acceptedPath) + ); + if (isSelfUpdate || qualifiedCallbacks.length > 0) { + const disposer = this.disposeMap.get(acceptedPath); + if (disposer) await disposer(this.dataMap.get(acceptedPath)); + try { + fetchedModule = await this.importUpdatedModule(update); + } catch (e) { + this.warnFailedUpdate(e, acceptedPath); + } + } + return () => { + for (const { deps, fn } of qualifiedCallbacks) { + fn( + deps.map((dep) => dep === acceptedPath ? fetchedModule : void 0) + ); + } + const loggedPath = isSelfUpdate ? path : `${acceptedPath} via ${path}`; + this.logger.debug(`[vite] hot updated: ${loggedPath}`); + }; + } +} + +const hmrConfigName = "vite.config.js"; +const base$1 = "/" || "/"; +function h(e, attrs = {}, ...children) { + const elem = document.createElement(e); + for (const [k, v] of Object.entries(attrs)) { + elem.setAttribute(k, v); + } + elem.append(...children); + return elem; +} +const templateStyle = ( + /*css*/ + ` +:host { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 99999; + --monospace: 'SFMono-Regular', Consolas, + 'Liberation Mono', Menlo, Courier, monospace; + --red: #ff5555; + --yellow: #e2aa53; + --purple: #cfa4ff; + --cyan: #2dd9da; + --dim: #c9c9c9; + + --window-background: #181818; + --window-color: #d8d8d8; +} + +.backdrop { + position: fixed; + z-index: 99999; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow-y: scroll; + margin: 0; + background: rgba(0, 0, 0, 0.66); +} + +.window { + font-family: var(--monospace); + line-height: 1.5; + max-width: 80vw; + color: var(--window-color); + box-sizing: border-box; + margin: 30px auto; + padding: 2.5vh 4vw; + position: relative; + background: var(--window-background); + border-radius: 6px 6px 8px 8px; + box-shadow: 0 19px 38px rgba(0,0,0,0.30), 0 15px 12px rgba(0,0,0,0.22); + overflow: hidden; + border-top: 8px solid var(--red); + direction: ltr; + text-align: left; +} + +pre { + font-family: var(--monospace); + font-size: 16px; + margin-top: 0; + margin-bottom: 1em; + overflow-x: scroll; + scrollbar-width: none; +} + +pre::-webkit-scrollbar { + display: none; +} + +pre.frame::-webkit-scrollbar { + display: block; + height: 5px; +} + +pre.frame::-webkit-scrollbar-thumb { + background: #999; + border-radius: 5px; +} + +pre.frame { + scrollbar-width: thin; +} + +.message { + line-height: 1.3; + font-weight: 600; + white-space: pre-wrap; +} + +.message-body { + color: var(--red); +} + +.plugin { + color: var(--purple); +} + +.file { + color: var(--cyan); + margin-bottom: 0; + white-space: pre-wrap; + word-break: break-all; +} + +.frame { + color: var(--yellow); +} + +.stack { + font-size: 13px; + color: var(--dim); +} + +.tip { + font-size: 13px; + color: #999; + border-top: 1px dotted #999; + padding-top: 13px; + line-height: 1.8; +} + +code { + font-size: 13px; + font-family: var(--monospace); + color: var(--yellow); +} + +.file-link { + text-decoration: underline; + cursor: pointer; +} + +kbd { + line-height: 1.5; + font-family: ui-monospace, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-size: 0.75rem; + font-weight: 700; + background-color: rgb(38, 40, 44); + color: rgb(166, 167, 171); + padding: 0.15rem 0.3rem; + border-radius: 0.25rem; + border-width: 0.0625rem 0.0625rem 0.1875rem; + border-style: solid; + border-color: rgb(54, 57, 64); + border-image: initial; +} +` +); +const createTemplate = () => h( + "div", + { class: "backdrop", part: "backdrop" }, + h( + "div", + { class: "window", part: "window" }, + h( + "pre", + { class: "message", part: "message" }, + h("span", { class: "plugin", part: "plugin" }), + h("span", { class: "message-body", part: "message-body" }) + ), + h("pre", { class: "file", part: "file" }), + h("pre", { class: "frame", part: "frame" }), + h("pre", { class: "stack", part: "stack" }), + h( + "div", + { class: "tip", part: "tip" }, + "Click outside, press ", + h("kbd", {}, "Esc"), + " key, or fix the code to dismiss.", + h("br"), + "You can also disable this overlay by setting ", + h("code", { part: "config-option-name" }, "server.hmr.overlay"), + " to ", + h("code", { part: "config-option-value" }, "false"), + " in ", + h("code", { part: "config-file-name" }, hmrConfigName), + "." + ) + ), + h("style", {}, templateStyle) +); +const fileRE = /(?:[a-zA-Z]:\\|\/).*?:\d+:\d+/g; +const codeframeRE = /^(?:>?\s*\d+\s+\|.*|\s+\|\s*\^.*)\r?\n/gm; +const { HTMLElement = class { +} } = globalThis; +class ErrorOverlay extends HTMLElement { + constructor(err, links = true) { + super(); + this.root = this.attachShadow({ mode: "open" }); + this.root.appendChild(createTemplate()); + codeframeRE.lastIndex = 0; + const hasFrame = err.frame && codeframeRE.test(err.frame); + const message = hasFrame ? err.message.replace(codeframeRE, "") : err.message; + if (err.plugin) { + this.text(".plugin", `[plugin:${err.plugin}] `); + } + this.text(".message-body", message.trim()); + const [file] = (err.loc?.file || err.id || "unknown file").split(`?`); + if (err.loc) { + this.text(".file", `${file}:${err.loc.line}:${err.loc.column}`, links); + } else if (err.id) { + this.text(".file", file); + } + if (hasFrame) { + this.text(".frame", err.frame.trim()); + } + this.text(".stack", err.stack, links); + this.root.querySelector(".window").addEventListener("click", (e) => { + e.stopPropagation(); + }); + this.addEventListener("click", () => { + this.close(); + }); + this.closeOnEsc = (e) => { + if (e.key === "Escape" || e.code === "Escape") { + this.close(); + } + }; + document.addEventListener("keydown", this.closeOnEsc); + } + text(selector, text, linkFiles = false) { + const el = this.root.querySelector(selector); + if (!linkFiles) { + el.textContent = text; + } else { + let curIndex = 0; + let match; + fileRE.lastIndex = 0; + while (match = fileRE.exec(text)) { + const { 0: file, index } = match; + if (index != null) { + const frag = text.slice(curIndex, index); + el.appendChild(document.createTextNode(frag)); + const link = document.createElement("a"); + link.textContent = file; + link.className = "file-link"; + link.onclick = () => { + fetch( + new URL( + `${base$1}__open-in-editor?file=${encodeURIComponent(file)}`, + import.meta.url + ) + ); + }; + el.appendChild(link); + curIndex += frag.length + file.length; + } + } + } + } + close() { + this.parentNode?.removeChild(this); + document.removeEventListener("keydown", this.closeOnEsc); + } +} +const overlayId = "vite-error-overlay"; +const { customElements } = globalThis; +if (customElements && !customElements.get(overlayId)) { + customElements.define(overlayId, ErrorOverlay); +} + +console.debug("[vite] connecting..."); +const importMetaUrl = new URL(import.meta.url); +const serverHost = "localhost:8888/"; +const socketProtocol = null || (importMetaUrl.protocol === "https:" ? "wss" : "ws"); +const hmrPort = null; +const socketHost = `${null || importMetaUrl.hostname}:${hmrPort || importMetaUrl.port}${"/"}`; +const directSocketHost = "localhost:8888/"; +const base = "/" || "/"; +const wsToken = "5tbDutXxvt2a"; +let socket; +try { + let fallback; + if (!hmrPort) { + fallback = () => { + socket = setupWebSocket(socketProtocol, directSocketHost, () => { + const currentScriptHostURL = new URL(import.meta.url); + const currentScriptHost = currentScriptHostURL.host + currentScriptHostURL.pathname.replace(/@vite\/client$/, ""); + console.error( + `[vite] failed to connect to websocket. +your current setup: + (browser) ${currentScriptHost} <--[HTTP]--> ${serverHost} (server) + (browser) ${socketHost} <--[WebSocket (failing)]--> ${directSocketHost} (server) +Check out your Vite / network configuration and https://vite.dev/config/server-options.html#server-hmr .` + ); + }); + socket.addEventListener( + "open", + () => { + console.info( + "[vite] Direct websocket connection fallback. Check out https://vite.dev/config/server-options.html#server-hmr to remove the previous connection error." + ); + }, + { once: true } + ); + }; + } + socket = setupWebSocket(socketProtocol, socketHost, fallback); +} catch (error) { + console.error(`[vite] failed to connect to websocket (${error}). `); +} +function setupWebSocket(protocol, hostAndPath, onCloseWithoutOpen) { + const socket2 = new WebSocket( + `${protocol}://${hostAndPath}?token=${wsToken}`, + "vite-hmr" + ); + let isOpened = false; + socket2.addEventListener( + "open", + () => { + isOpened = true; + notifyListeners("vite:ws:connect", { webSocket: socket2 }); + }, + { once: true } + ); + socket2.addEventListener("message", async ({ data }) => { + handleMessage(JSON.parse(data)); + }); + socket2.addEventListener("close", async ({ wasClean }) => { + if (wasClean) return; + if (!isOpened && onCloseWithoutOpen) { + onCloseWithoutOpen(); + return; + } + notifyListeners("vite:ws:disconnect", { webSocket: socket2 }); + if (hasDocument) { + console.log(`[vite] server connection lost. Polling for restart...`); + await waitForSuccessfulPing(protocol, hostAndPath); + location.reload(); + } + }); + return socket2; +} +function cleanUrl(pathname) { + const url = new URL(pathname, "http://vite.dev"); + url.searchParams.delete("direct"); + return url.pathname + url.search; +} +let isFirstUpdate = true; +const outdatedLinkTags = /* @__PURE__ */ new WeakSet(); +const debounceReload = (time) => { + let timer; + return () => { + if (timer) { + clearTimeout(timer); + timer = null; + } + timer = setTimeout(() => { + location.reload(); + }, time); + }; +}; +const pageReload = debounceReload(50); +const hmrClient = new HMRClient( + console, + { + isReady: () => socket && socket.readyState === 1, + send: (message) => socket.send(message) + }, + async function importUpdatedModule({ + acceptedPath, + timestamp, + explicitImportRequired, + isWithinCircularImport + }) { + const [acceptedPathWithoutQuery, query] = acceptedPath.split(`?`); + const importPromise = import( + /* @vite-ignore */ + base + acceptedPathWithoutQuery.slice(1) + `?${explicitImportRequired ? "import&" : ""}t=${timestamp}${query ? `&${query}` : ""}` + ); + if (isWithinCircularImport) { + importPromise.catch(() => { + console.info( + `[hmr] ${acceptedPath} failed to apply HMR as it's within a circular import. Reloading page to reset the execution order. To debug and break the circular import, you can run \`vite --debug hmr\` to log the circular dependency path if a file change triggered it.` + ); + pageReload(); + }); + } + return await importPromise; + } +); +async function handleMessage(payload) { + switch (payload.type) { + case "connected": + console.debug(`[vite] connected.`); + hmrClient.messenger.flush(); + setInterval(() => { + if (socket.readyState === socket.OPEN) { + socket.send('{"type":"ping"}'); + } + }, 30000); + break; + case "update": + notifyListeners("vite:beforeUpdate", payload); + if (hasDocument) { + if (isFirstUpdate && hasErrorOverlay()) { + location.reload(); + return; + } else { + if (enableOverlay) { + clearErrorOverlay(); + } + isFirstUpdate = false; + } + } + await Promise.all( + payload.updates.map(async (update) => { + if (update.type === "js-update") { + return hmrClient.queueUpdate(update); + } + const { path, timestamp } = update; + const searchUrl = cleanUrl(path); + const el = Array.from( + document.querySelectorAll("link") + ).find( + (e) => !outdatedLinkTags.has(e) && cleanUrl(e.href).includes(searchUrl) + ); + if (!el) { + return; + } + const newPath = `${base}${searchUrl.slice(1)}${searchUrl.includes("?") ? "&" : "?"}t=${timestamp}`; + return new Promise((resolve) => { + const newLinkTag = el.cloneNode(); + newLinkTag.href = new URL(newPath, el.href).href; + const removeOldEl = () => { + el.remove(); + console.debug(`[vite] css hot updated: ${searchUrl}`); + resolve(); + }; + newLinkTag.addEventListener("load", removeOldEl); + newLinkTag.addEventListener("error", removeOldEl); + outdatedLinkTags.add(el); + el.after(newLinkTag); + }); + }) + ); + notifyListeners("vite:afterUpdate", payload); + break; + case "custom": { + notifyListeners(payload.event, payload.data); + break; + } + case "full-reload": + notifyListeners("vite:beforeFullReload", payload); + if (hasDocument) { + if (payload.path && payload.path.endsWith(".html")) { + const pagePath = decodeURI(location.pathname); + const payloadPath = base + payload.path.slice(1); + if (pagePath === payloadPath || payload.path === "/index.html" || pagePath.endsWith("/") && pagePath + "index.html" === payloadPath) { + pageReload(); + } + return; + } else { + pageReload(); + } + } + break; + case "prune": + notifyListeners("vite:beforePrune", payload); + await hmrClient.prunePaths(payload.paths); + break; + case "error": { + notifyListeners("vite:error", payload); + if (hasDocument) { + const err = payload.err; + if (enableOverlay) { + createErrorOverlay(err); + } else { + console.error( + `[vite] Internal Server Error +${err.message} +${err.stack}` + ); + } + } + break; + } + default: { + const check = payload; + return check; + } + } +} +function notifyListeners(event, data) { + hmrClient.notifyListeners(event, data); +} +const enableOverlay = true; +const hasDocument = "document" in globalThis; +function createErrorOverlay(err) { + clearErrorOverlay(); + document.body.appendChild(new ErrorOverlay(err)); +} +function clearErrorOverlay() { + document.querySelectorAll(overlayId).forEach((n) => n.close()); +} +function hasErrorOverlay() { + return document.querySelectorAll(overlayId).length; +} +async function waitForSuccessfulPing(socketProtocol2, hostAndPath, ms = 1e3) { + const pingHostProtocol = socketProtocol2 === "wss" ? "https" : "http"; + const ping = async () => { + try { + await fetch(`${pingHostProtocol}://${hostAndPath}`, { + mode: "no-cors", + headers: { + // Custom headers won't be included in a request with no-cors so (ab)use one of the + // safelisted headers to identify the ping request + Accept: "text/x-vite-ping" + } + }); + return true; + } catch { + } + return false; + }; + if (await ping()) { + return; + } + await wait(ms); + while (true) { + if (document.visibilityState === "visible") { + if (await ping()) { + break; + } + await wait(ms); + } else { + await waitForWindowShow(); + } + } +} +function wait(ms) { + return new Promise((resolve) => setTimeout(resolve, ms)); +} +function waitForWindowShow() { + return new Promise((resolve) => { + const onChange = async () => { + if (document.visibilityState === "visible") { + resolve(); + document.removeEventListener("visibilitychange", onChange); + } + }; + document.addEventListener("visibilitychange", onChange); + }); +} +const sheetsMap = /* @__PURE__ */ new Map(); +if ("document" in globalThis) { + document.querySelectorAll("style[data-vite-dev-id]").forEach((el) => { + sheetsMap.set(el.getAttribute("data-vite-dev-id"), el); + }); +} +const cspNonce = "document" in globalThis ? document.querySelector("meta[property=csp-nonce]")?.nonce : void 0; +let lastInsertedStyle; +function updateStyle(id, content) { + let style = sheetsMap.get(id); + if (!style) { + style = document.createElement("style"); + style.setAttribute("type", "text/css"); + style.setAttribute("data-vite-dev-id", id); + style.textContent = content; + if (cspNonce) { + style.setAttribute("nonce", cspNonce); + } + if (!lastInsertedStyle) { + document.head.appendChild(style); + setTimeout(() => { + lastInsertedStyle = void 0; + }, 0); + } else { + lastInsertedStyle.insertAdjacentElement("afterend", style); + } + lastInsertedStyle = style; + } else { + style.textContent = content; + } + sheetsMap.set(id, style); +} +function removeStyle(id) { + const style = sheetsMap.get(id); + if (style) { + document.head.removeChild(style); + sheetsMap.delete(id); + } +} +function createHotContext(ownerPath) { + return new HMRContext(hmrClient, ownerPath); +} +function injectQuery(url, queryToInject) { + if (url[0] !== "." && url[0] !== "/") { + return url; + } + const pathname = url.replace(/[?#].*$/, ""); + const { search, hash } = new URL(url, "http://vite.dev"); + return `${pathname}?${queryToInject}${search ? `&` + search.slice(1) : ""}${hash || ""}`; +} + +export { ErrorOverlay, createHotContext, injectQuery, removeStyle, updateStyle }; + +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNsaWVudCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCIvbm9kZV9tb2R1bGVzL3ZpdGUvZGlzdC9jbGllbnQvZW52Lm1qc1wiO1xuXG5jbGFzcyBITVJDb250ZXh0IHtcbiAgY29uc3RydWN0b3IoaG1yQ2xpZW50LCBvd25lclBhdGgpIHtcbiAgICB0aGlzLmhtckNsaWVudCA9IGhtckNsaWVudDtcbiAgICB0aGlzLm93bmVyUGF0aCA9IG93bmVyUGF0aDtcbiAgICBpZiAoIWhtckNsaWVudC5kYXRhTWFwLmhhcyhvd25lclBhdGgpKSB7XG4gICAgICBobXJDbGllbnQuZGF0YU1hcC5zZXQob3duZXJQYXRoLCB7fSk7XG4gICAgfVxuICAgIGNvbnN0IG1vZCA9IGhtckNsaWVudC5ob3RNb2R1bGVzTWFwLmdldChvd25lclBhdGgpO1xuICAgIGlmIChtb2QpIHtcbiAgICAgIG1vZC5jYWxsYmFja3MgPSBbXTtcbiAgICB9XG4gICAgY29uc3Qgc3RhbGVMaXN0ZW5lcnMgPSBobXJDbGllbnQuY3R4VG9MaXN0ZW5lcnNNYXAuZ2V0KG93bmVyUGF0aCk7XG4gICAgaWYgKHN0YWxlTGlzdGVuZXJzKSB7XG4gICAgICBmb3IgKGNvbnN0IFtldmVudCwgc3RhbGVGbnNdIG9mIHN0YWxlTGlzdGVuZXJzKSB7XG4gICAgICAgIGNvbnN0IGxpc3RlbmVycyA9IGhtckNsaWVudC5jdXN0b21MaXN0ZW5lcnNNYXAuZ2V0KGV2ZW50KTtcbiAgICAgICAgaWYgKGxpc3RlbmVycykge1xuICAgICAgICAgIGhtckNsaWVudC5jdXN0b21MaXN0ZW5lcnNNYXAuc2V0KFxuICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICBsaXN0ZW5lcnMuZmlsdGVyKChsKSA9PiAhc3RhbGVGbnMuaW5jbHVkZXMobCkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLm5ld0xpc3RlbmVycyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgaG1yQ2xpZW50LmN0eFRvTGlzdGVuZXJzTWFwLnNldChvd25lclBhdGgsIHRoaXMubmV3TGlzdGVuZXJzKTtcbiAgfVxuICBnZXQgZGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5obXJDbGllbnQuZGF0YU1hcC5nZXQodGhpcy5vd25lclBhdGgpO1xuICB9XG4gIGFjY2VwdChkZXBzLCBjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2YgZGVwcyA9PT0gXCJmdW5jdGlvblwiIHx8ICFkZXBzKSB7XG4gICAgICB0aGlzLmFjY2VwdERlcHMoW3RoaXMub3duZXJQYXRoXSwgKFttb2RdKSA9PiBkZXBzPy4obW9kKSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZGVwcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgdGhpcy5hY2NlcHREZXBzKFtkZXBzXSwgKFttb2RdKSA9PiBjYWxsYmFjaz8uKG1vZCkpO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShkZXBzKSkge1xuICAgICAgdGhpcy5hY2NlcHREZXBzKGRlcHMsIGNhbGxiYWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGhvdC5hY2NlcHQoKSB1c2FnZS5gKTtcbiAgICB9XG4gIH1cbiAgLy8gZXhwb3J0IG5hbWVzIChmaXJzdCBhcmcpIGFyZSBpcnJlbGV2YW50IG9uIHRoZSBjbGllbnQgc2lkZSwgdGhleSdyZVxuICAvLyBleHRyYWN0ZWQgaW4gdGhlIHNlcnZlciBmb3IgcHJvcGFnYXRpb25cbiAgYWNjZXB0RXhwb3J0cyhfLCBjYWxsYmFjaykge1xuICAgIHRoaXMuYWNjZXB0RGVwcyhbdGhpcy5vd25lclBhdGhdLCAoW21vZF0pID0+IGNhbGxiYWNrPy4obW9kKSk7XG4gIH1cbiAgZGlzcG9zZShjYikge1xuICAgIHRoaXMuaG1yQ2xpZW50LmRpc3Bvc2VNYXAuc2V0KHRoaXMub3duZXJQYXRoLCBjYik7XG4gIH1cbiAgcHJ1bmUoY2IpIHtcbiAgICB0aGlzLmhtckNsaWVudC5wcnVuZU1hcC5zZXQodGhpcy5vd25lclBhdGgsIGNiKTtcbiAgfVxuICAvLyBLZXB0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICgjMTEwMzYpXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgZGVjbGluZSgpIHtcbiAgfVxuICBpbnZhbGlkYXRlKG1lc3NhZ2UpIHtcbiAgICB0aGlzLmhtckNsaWVudC5ub3RpZnlMaXN0ZW5lcnMoXCJ2aXRlOmludmFsaWRhdGVcIiwge1xuICAgICAgcGF0aDogdGhpcy5vd25lclBhdGgsXG4gICAgICBtZXNzYWdlXG4gICAgfSk7XG4gICAgdGhpcy5zZW5kKFwidml0ZTppbnZhbGlkYXRlXCIsIHsgcGF0aDogdGhpcy5vd25lclBhdGgsIG1lc3NhZ2UgfSk7XG4gICAgdGhpcy5obXJDbGllbnQubG9nZ2VyLmRlYnVnKFxuICAgICAgYFt2aXRlXSBpbnZhbGlkYXRlICR7dGhpcy5vd25lclBhdGh9JHttZXNzYWdlID8gYDogJHttZXNzYWdlfWAgOiBcIlwifWBcbiAgICApO1xuICB9XG4gIG9uKGV2ZW50LCBjYikge1xuICAgIGNvbnN0IGFkZFRvTWFwID0gKG1hcCkgPT4ge1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSBtYXAuZ2V0KGV2ZW50KSB8fCBbXTtcbiAgICAgIGV4aXN0aW5nLnB1c2goY2IpO1xuICAgICAgbWFwLnNldChldmVudCwgZXhpc3RpbmcpO1xuICAgIH07XG4gICAgYWRkVG9NYXAodGhpcy5obXJDbGllbnQuY3VzdG9tTGlzdGVuZXJzTWFwKTtcbiAgICBhZGRUb01hcCh0aGlzLm5ld0xpc3RlbmVycyk7XG4gIH1cbiAgb2ZmKGV2ZW50LCBjYikge1xuICAgIGNvbnN0IHJlbW92ZUZyb21NYXAgPSAobWFwKSA9PiB7XG4gICAgICBjb25zdCBleGlzdGluZyA9IG1hcC5nZXQoZXZlbnQpO1xuICAgICAgaWYgKGV4aXN0aW5nID09PSB2b2lkIDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgcHJ1bmVkID0gZXhpc3RpbmcuZmlsdGVyKChsKSA9PiBsICE9PSBjYik7XG4gICAgICBpZiAocHJ1bmVkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBtYXAuZGVsZXRlKGV2ZW50KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbWFwLnNldChldmVudCwgcHJ1bmVkKTtcbiAgICB9O1xuICAgIHJlbW92ZUZyb21NYXAodGhpcy5obXJDbGllbnQuY3VzdG9tTGlzdGVuZXJzTWFwKTtcbiAgICByZW1vdmVGcm9tTWFwKHRoaXMubmV3TGlzdGVuZXJzKTtcbiAgfVxuICBzZW5kKGV2ZW50LCBkYXRhKSB7XG4gICAgdGhpcy5obXJDbGllbnQubWVzc2VuZ2VyLnNlbmQoXG4gICAgICBKU09OLnN0cmluZ2lmeSh7IHR5cGU6IFwiY3VzdG9tXCIsIGV2ZW50LCBkYXRhIH0pXG4gICAgKTtcbiAgfVxuICBhY2NlcHREZXBzKGRlcHMsIGNhbGxiYWNrID0gKCkgPT4ge1xuICB9KSB7XG4gICAgY29uc3QgbW9kID0gdGhpcy5obXJDbGllbnQuaG90TW9kdWxlc01hcC5nZXQodGhpcy5vd25lclBhdGgpIHx8IHtcbiAgICAgIGlkOiB0aGlzLm93bmVyUGF0aCxcbiAgICAgIGNhbGxiYWNrczogW11cbiAgICB9O1xuICAgIG1vZC5jYWxsYmFja3MucHVzaCh7XG4gICAgICBkZXBzLFxuICAgICAgZm46IGNhbGxiYWNrXG4gICAgfSk7XG4gICAgdGhpcy5obXJDbGllbnQuaG90TW9kdWxlc01hcC5zZXQodGhpcy5vd25lclBhdGgsIG1vZCk7XG4gIH1cbn1cbmNsYXNzIEhNUk1lc3NlbmdlciB7XG4gIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb24pIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24gPSBjb25uZWN0aW9uO1xuICAgIHRoaXMucXVldWUgPSBbXTtcbiAgfVxuICBzZW5kKG1lc3NhZ2UpIHtcbiAgICB0aGlzLnF1ZXVlLnB1c2gobWVzc2FnZSk7XG4gICAgdGhpcy5mbHVzaCgpO1xuICB9XG4gIGZsdXNoKCkge1xuICAgIGlmICh0aGlzLmNvbm5lY3Rpb24uaXNSZWFkeSgpKSB7XG4gICAgICB0aGlzLnF1ZXVlLmZvckVhY2goKG1zZykgPT4gdGhpcy5jb25uZWN0aW9uLnNlbmQobXNnKSk7XG4gICAgICB0aGlzLnF1ZXVlID0gW107XG4gICAgfVxuICB9XG59XG5jbGFzcyBITVJDbGllbnQge1xuICBjb25zdHJ1Y3Rvcihsb2dnZXIsIGNvbm5lY3Rpb24sIGltcG9ydFVwZGF0ZWRNb2R1bGUpIHtcbiAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlcjtcbiAgICB0aGlzLmltcG9ydFVwZGF0ZWRNb2R1bGUgPSBpbXBvcnRVcGRhdGVkTW9kdWxlO1xuICAgIHRoaXMuaG90TW9kdWxlc01hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgdGhpcy5kaXNwb3NlTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICB0aGlzLnBydW5lTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICB0aGlzLmRhdGFNYXAgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgIHRoaXMuY3VzdG9tTGlzdGVuZXJzTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICB0aGlzLmN0eFRvTGlzdGVuZXJzTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICB0aGlzLnVwZGF0ZVF1ZXVlID0gW107XG4gICAgdGhpcy5wZW5kaW5nVXBkYXRlUXVldWUgPSBmYWxzZTtcbiAgICB0aGlzLm1lc3NlbmdlciA9IG5ldyBITVJNZXNzZW5nZXIoY29ubmVjdGlvbik7XG4gIH1cbiAgYXN5bmMgbm90aWZ5TGlzdGVuZXJzKGV2ZW50LCBkYXRhKSB7XG4gICAgY29uc3QgY2JzID0gdGhpcy5jdXN0b21MaXN0ZW5lcnNNYXAuZ2V0KGV2ZW50KTtcbiAgICBpZiAoY2JzKSB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoY2JzLm1hcCgoY2IpID0+IGNiKGRhdGEpKSk7XG4gICAgfVxuICB9XG4gIGNsZWFyKCkge1xuICAgIHRoaXMuaG90TW9kdWxlc01hcC5jbGVhcigpO1xuICAgIHRoaXMuZGlzcG9zZU1hcC5jbGVhcigpO1xuICAgIHRoaXMucHJ1bmVNYXAuY2xlYXIoKTtcbiAgICB0aGlzLmRhdGFNYXAuY2xlYXIoKTtcbiAgICB0aGlzLmN1c3RvbUxpc3RlbmVyc01hcC5jbGVhcigpO1xuICAgIHRoaXMuY3R4VG9MaXN0ZW5lcnNNYXAuY2xlYXIoKTtcbiAgfVxuICAvLyBBZnRlciBhbiBITVIgdXBkYXRlLCBzb21lIG1vZHVsZXMgYXJlIG5vIGxvbmdlciBpbXBvcnRlZCBvbiB0aGUgcGFnZVxuICAvLyBidXQgdGhleSBtYXkgaGF2ZSBsZWZ0IGJlaGluZCBzaWRlIGVmZmVjdHMgdGhhdCBuZWVkIHRvIGJlIGNsZWFuZWQgdXBcbiAgLy8gKC5lLmcgc3R5bGUgaW5qZWN0aW9ucylcbiAgYXN5bmMgcHJ1bmVQYXRocyhwYXRocykge1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgcGF0aHMubWFwKChwYXRoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRpc3Bvc2VyID0gdGhpcy5kaXNwb3NlTWFwLmdldChwYXRoKTtcbiAgICAgICAgaWYgKGRpc3Bvc2VyKSByZXR1cm4gZGlzcG9zZXIodGhpcy5kYXRhTWFwLmdldChwYXRoKSk7XG4gICAgICB9KVxuICAgICk7XG4gICAgcGF0aHMuZm9yRWFjaCgocGF0aCkgPT4ge1xuICAgICAgY29uc3QgZm4gPSB0aGlzLnBydW5lTWFwLmdldChwYXRoKTtcbiAgICAgIGlmIChmbikge1xuICAgICAgICBmbih0aGlzLmRhdGFNYXAuZ2V0KHBhdGgpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICB3YXJuRmFpbGVkVXBkYXRlKGVyciwgcGF0aCkge1xuICAgIGlmICghZXJyLm1lc3NhZ2UuaW5jbHVkZXMoXCJmZXRjaFwiKSkge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoZXJyKTtcbiAgICB9XG4gICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICBgW2htcl0gRmFpbGVkIHRvIHJlbG9hZCAke3BhdGh9LiBUaGlzIGNvdWxkIGJlIGR1ZSB0byBzeW50YXggZXJyb3JzIG9yIGltcG9ydGluZyBub24tZXhpc3RlbnQgbW9kdWxlcy4gKHNlZSBlcnJvcnMgYWJvdmUpYFxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIGJ1ZmZlciBtdWx0aXBsZSBob3QgdXBkYXRlcyB0cmlnZ2VyZWQgYnkgdGhlIHNhbWUgc3JjIGNoYW5nZVxuICAgKiBzbyB0aGF0IHRoZXkgYXJlIGludm9rZWQgaW4gdGhlIHNhbWUgb3JkZXIgdGhleSB3ZXJlIHNlbnQuXG4gICAqIChvdGhlcndpc2UgdGhlIG9yZGVyIG1heSBiZSBpbmNvbnNpc3RlbnQgYmVjYXVzZSBvZiB0aGUgaHR0cCByZXF1ZXN0IHJvdW5kIHRyaXApXG4gICAqL1xuICBhc3luYyBxdWV1ZVVwZGF0ZShwYXlsb2FkKSB7XG4gICAgdGhpcy51cGRhdGVRdWV1ZS5wdXNoKHRoaXMuZmV0Y2hVcGRhdGUocGF5bG9hZCkpO1xuICAgIGlmICghdGhpcy5wZW5kaW5nVXBkYXRlUXVldWUpIHtcbiAgICAgIHRoaXMucGVuZGluZ1VwZGF0ZVF1ZXVlID0gdHJ1ZTtcbiAgICAgIGF3YWl0IFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgdGhpcy5wZW5kaW5nVXBkYXRlUXVldWUgPSBmYWxzZTtcbiAgICAgIGNvbnN0IGxvYWRpbmcgPSBbLi4udGhpcy51cGRhdGVRdWV1ZV07XG4gICAgICB0aGlzLnVwZGF0ZVF1ZXVlID0gW107XG4gICAgICAoYXdhaXQgUHJvbWlzZS5hbGwobG9hZGluZykpLmZvckVhY2goKGZuKSA9PiBmbiAmJiBmbigpKTtcbiAgICB9XG4gIH1cbiAgYXN5bmMgZmV0Y2hVcGRhdGUodXBkYXRlKSB7XG4gICAgY29uc3QgeyBwYXRoLCBhY2NlcHRlZFBhdGggfSA9IHVwZGF0ZTtcbiAgICBjb25zdCBtb2QgPSB0aGlzLmhvdE1vZHVsZXNNYXAuZ2V0KHBhdGgpO1xuICAgIGlmICghbW9kKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBmZXRjaGVkTW9kdWxlO1xuICAgIGNvbnN0IGlzU2VsZlVwZGF0ZSA9IHBhdGggPT09IGFjY2VwdGVkUGF0aDtcbiAgICBjb25zdCBxdWFsaWZpZWRDYWxsYmFja3MgPSBtb2QuY2FsbGJhY2tzLmZpbHRlcihcbiAgICAgICh7IGRlcHMgfSkgPT4gZGVwcy5pbmNsdWRlcyhhY2NlcHRlZFBhdGgpXG4gICAgKTtcbiAgICBpZiAoaXNTZWxmVXBkYXRlIHx8IHF1YWxpZmllZENhbGxiYWNrcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBkaXNwb3NlciA9IHRoaXMuZGlzcG9zZU1hcC5nZXQoYWNjZXB0ZWRQYXRoKTtcbiAgICAgIGlmIChkaXNwb3NlcikgYXdhaXQgZGlzcG9zZXIodGhpcy5kYXRhTWFwLmdldChhY2NlcHRlZFBhdGgpKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGZldGNoZWRNb2R1bGUgPSBhd2FpdCB0aGlzLmltcG9ydFVwZGF0ZWRNb2R1bGUodXBkYXRlKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy53YXJuRmFpbGVkVXBkYXRlKGUsIGFjY2VwdGVkUGF0aCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IHsgZGVwcywgZm4gfSBvZiBxdWFsaWZpZWRDYWxsYmFja3MpIHtcbiAgICAgICAgZm4oXG4gICAgICAgICAgZGVwcy5tYXAoKGRlcCkgPT4gZGVwID09PSBhY2NlcHRlZFBhdGggPyBmZXRjaGVkTW9kdWxlIDogdm9pZCAwKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgbG9nZ2VkUGF0aCA9IGlzU2VsZlVwZGF0ZSA/IHBhdGggOiBgJHthY2NlcHRlZFBhdGh9IHZpYSAke3BhdGh9YDtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBbdml0ZV0gaG90IHVwZGF0ZWQ6ICR7bG9nZ2VkUGF0aH1gKTtcbiAgICB9O1xuICB9XG59XG5cbmNvbnN0IGhtckNvbmZpZ05hbWUgPSBcInZpdGUuY29uZmlnLmpzXCI7XG5jb25zdCBiYXNlJDEgPSBcIi9cIiB8fCBcIi9cIjtcbmZ1bmN0aW9uIGgoZSwgYXR0cnMgPSB7fSwgLi4uY2hpbGRyZW4pIHtcbiAgY29uc3QgZWxlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZSk7XG4gIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKGF0dHJzKSkge1xuICAgIGVsZW0uc2V0QXR0cmlidXRlKGssIHYpO1xuICB9XG4gIGVsZW0uYXBwZW5kKC4uLmNoaWxkcmVuKTtcbiAgcmV0dXJuIGVsZW07XG59XG5jb25zdCB0ZW1wbGF0ZVN0eWxlID0gKFxuICAvKmNzcyovXG4gIGBcbjpob3N0IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDk5OTk5O1xuICAtLW1vbm9zcGFjZTogJ1NGTW9uby1SZWd1bGFyJywgQ29uc29sYXMsXG4gICdMaWJlcmF0aW9uIE1vbm8nLCBNZW5sbywgQ291cmllciwgbW9ub3NwYWNlO1xuICAtLXJlZDogI2ZmNTU1NTtcbiAgLS15ZWxsb3c6ICNlMmFhNTM7XG4gIC0tcHVycGxlOiAjY2ZhNGZmO1xuICAtLWN5YW46ICMyZGQ5ZGE7XG4gIC0tZGltOiAjYzljOWM5O1xuXG4gIC0td2luZG93LWJhY2tncm91bmQ6ICMxODE4MTg7XG4gIC0td2luZG93LWNvbG9yOiAjZDhkOGQ4O1xufVxuXG4uYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk5OTk5O1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgbWFyZ2luOiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNjYpO1xufVxuXG4ud2luZG93IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLW1vbm9zcGFjZSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIG1heC13aWR0aDogODB2dztcbiAgY29sb3I6IHZhcigtLXdpbmRvdy1jb2xvcik7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMzBweCBhdXRvO1xuICBwYWRkaW5nOiAyLjV2aCA0dnc7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogdmFyKC0td2luZG93LWJhY2tncm91bmQpO1xuICBib3JkZXItcmFkaXVzOiA2cHggNnB4IDhweCA4cHg7XG4gIGJveC1zaGFkb3c6IDAgMTlweCAzOHB4IHJnYmEoMCwwLDAsMC4zMCksIDAgMTVweCAxMnB4IHJnYmEoMCwwLDAsMC4yMik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci10b3A6IDhweCBzb2xpZCB2YXIoLS1yZWQpO1xuICBkaXJlY3Rpb246IGx0cjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLW1vbm9zcGFjZSk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbn1cblxucHJlOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbnByZS5mcmFtZTo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiA1cHg7XG59XG5cbnByZS5mcmFtZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiAjOTk5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbnByZS5mcmFtZSB7XG4gIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbn1cblxuLm1lc3NhZ2Uge1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBmb250LXdlaWdodDogNjAwO1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG59XG5cbi5tZXNzYWdlLWJvZHkge1xuICBjb2xvcjogdmFyKC0tcmVkKTtcbn1cblxuLnBsdWdpbiB7XG4gIGNvbG9yOiB2YXIoLS1wdXJwbGUpO1xufVxuXG4uZmlsZSB7XG4gIGNvbG9yOiB2YXIoLS1jeWFuKTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG59XG5cbi5mcmFtZSB7XG4gIGNvbG9yOiB2YXIoLS15ZWxsb3cpO1xufVxuXG4uc3RhY2sge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiB2YXIoLS1kaW0pO1xufVxuXG4udGlwIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogIzk5OTtcbiAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjOTk5O1xuICBwYWRkaW5nLXRvcDogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDEuODtcbn1cblxuY29kZSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLW1vbm9zcGFjZSk7XG4gIGNvbG9yOiB2YXIoLS15ZWxsb3cpO1xufVxuXG4uZmlsZS1saW5rIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxua2JkIHtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzOCwgNDAsIDQ0KTtcbiAgY29sb3I6IHJnYigxNjYsIDE2NywgMTcxKTtcbiAgcGFkZGluZzogMC4xNXJlbSAwLjNyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gIGJvcmRlci13aWR0aDogMC4wNjI1cmVtIDAuMDYyNXJlbSAwLjE4NzVyZW07XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogcmdiKDU0LCA1NywgNjQpO1xuICBib3JkZXItaW1hZ2U6IGluaXRpYWw7XG59XG5gXG4pO1xuY29uc3QgY3JlYXRlVGVtcGxhdGUgPSAoKSA9PiBoKFxuICBcImRpdlwiLFxuICB7IGNsYXNzOiBcImJhY2tkcm9wXCIsIHBhcnQ6IFwiYmFja2Ryb3BcIiB9LFxuICBoKFxuICAgIFwiZGl2XCIsXG4gICAgeyBjbGFzczogXCJ3aW5kb3dcIiwgcGFydDogXCJ3aW5kb3dcIiB9LFxuICAgIGgoXG4gICAgICBcInByZVwiLFxuICAgICAgeyBjbGFzczogXCJtZXNzYWdlXCIsIHBhcnQ6IFwibWVzc2FnZVwiIH0sXG4gICAgICBoKFwic3BhblwiLCB7IGNsYXNzOiBcInBsdWdpblwiLCBwYXJ0OiBcInBsdWdpblwiIH0pLFxuICAgICAgaChcInNwYW5cIiwgeyBjbGFzczogXCJtZXNzYWdlLWJvZHlcIiwgcGFydDogXCJtZXNzYWdlLWJvZHlcIiB9KVxuICAgICksXG4gICAgaChcInByZVwiLCB7IGNsYXNzOiBcImZpbGVcIiwgcGFydDogXCJmaWxlXCIgfSksXG4gICAgaChcInByZVwiLCB7IGNsYXNzOiBcImZyYW1lXCIsIHBhcnQ6IFwiZnJhbWVcIiB9KSxcbiAgICBoKFwicHJlXCIsIHsgY2xhc3M6IFwic3RhY2tcIiwgcGFydDogXCJzdGFja1wiIH0pLFxuICAgIGgoXG4gICAgICBcImRpdlwiLFxuICAgICAgeyBjbGFzczogXCJ0aXBcIiwgcGFydDogXCJ0aXBcIiB9LFxuICAgICAgXCJDbGljayBvdXRzaWRlLCBwcmVzcyBcIixcbiAgICAgIGgoXCJrYmRcIiwge30sIFwiRXNjXCIpLFxuICAgICAgXCIga2V5LCBvciBmaXggdGhlIGNvZGUgdG8gZGlzbWlzcy5cIixcbiAgICAgIGgoXCJiclwiKSxcbiAgICAgIFwiWW91IGNhbiBhbHNvIGRpc2FibGUgdGhpcyBvdmVybGF5IGJ5IHNldHRpbmcgXCIsXG4gICAgICBoKFwiY29kZVwiLCB7IHBhcnQ6IFwiY29uZmlnLW9wdGlvbi1uYW1lXCIgfSwgXCJzZXJ2ZXIuaG1yLm92ZXJsYXlcIiksXG4gICAgICBcIiB0byBcIixcbiAgICAgIGgoXCJjb2RlXCIsIHsgcGFydDogXCJjb25maWctb3B0aW9uLXZhbHVlXCIgfSwgXCJmYWxzZVwiKSxcbiAgICAgIFwiIGluIFwiLFxuICAgICAgaChcImNvZGVcIiwgeyBwYXJ0OiBcImNvbmZpZy1maWxlLW5hbWVcIiB9LCBobXJDb25maWdOYW1lKSxcbiAgICAgIFwiLlwiXG4gICAgKVxuICApLFxuICBoKFwic3R5bGVcIiwge30sIHRlbXBsYXRlU3R5bGUpXG4pO1xuY29uc3QgZmlsZVJFID0gLyg/OlthLXpBLVpdOlxcXFx8XFwvKS4qPzpcXGQrOlxcZCsvZztcbmNvbnN0IGNvZGVmcmFtZVJFID0gL14oPzo+P1xccypcXGQrXFxzK1xcfC4qfFxccytcXHxcXHMqXFxeLiopXFxyP1xcbi9nbTtcbmNvbnN0IHsgSFRNTEVsZW1lbnQgPSBjbGFzcyB7XG59IH0gPSBnbG9iYWxUaGlzO1xuY2xhc3MgRXJyb3JPdmVybGF5IGV4dGVuZHMgSFRNTEVsZW1lbnQge1xuICBjb25zdHJ1Y3RvcihlcnIsIGxpbmtzID0gdHJ1ZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5yb290ID0gdGhpcy5hdHRhY2hTaGFkb3coeyBtb2RlOiBcIm9wZW5cIiB9KTtcbiAgICB0aGlzLnJvb3QuYXBwZW5kQ2hpbGQoY3JlYXRlVGVtcGxhdGUoKSk7XG4gICAgY29kZWZyYW1lUkUubGFzdEluZGV4ID0gMDtcbiAgICBjb25zdCBoYXNGcmFtZSA9IGVyci5mcmFtZSAmJiBjb2RlZnJhbWVSRS50ZXN0KGVyci5mcmFtZSk7XG4gICAgY29uc3QgbWVzc2FnZSA9IGhhc0ZyYW1lID8gZXJyLm1lc3NhZ2UucmVwbGFjZShjb2RlZnJhbWVSRSwgXCJcIikgOiBlcnIubWVzc2FnZTtcbiAgICBpZiAoZXJyLnBsdWdpbikge1xuICAgICAgdGhpcy50ZXh0KFwiLnBsdWdpblwiLCBgW3BsdWdpbjoke2Vyci5wbHVnaW59XSBgKTtcbiAgICB9XG4gICAgdGhpcy50ZXh0KFwiLm1lc3NhZ2UtYm9keVwiLCBtZXNzYWdlLnRyaW0oKSk7XG4gICAgY29uc3QgW2ZpbGVdID0gKGVyci5sb2M/LmZpbGUgfHwgZXJyLmlkIHx8IFwidW5rbm93biBmaWxlXCIpLnNwbGl0KGA/YCk7XG4gICAgaWYgKGVyci5sb2MpIHtcbiAgICAgIHRoaXMudGV4dChcIi5maWxlXCIsIGAke2ZpbGV9OiR7ZXJyLmxvYy5saW5lfToke2Vyci5sb2MuY29sdW1ufWAsIGxpbmtzKTtcbiAgICB9IGVsc2UgaWYgKGVyci5pZCkge1xuICAgICAgdGhpcy50ZXh0KFwiLmZpbGVcIiwgZmlsZSk7XG4gICAgfVxuICAgIGlmIChoYXNGcmFtZSkge1xuICAgICAgdGhpcy50ZXh0KFwiLmZyYW1lXCIsIGVyci5mcmFtZS50cmltKCkpO1xuICAgIH1cbiAgICB0aGlzLnRleHQoXCIuc3RhY2tcIiwgZXJyLnN0YWNrLCBsaW5rcyk7XG4gICAgdGhpcy5yb290LnF1ZXJ5U2VsZWN0b3IoXCIud2luZG93XCIpLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoZSkgPT4ge1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5jbG9zZU9uRXNjID0gKGUpID0+IHtcbiAgICAgIGlmIChlLmtleSA9PT0gXCJFc2NhcGVcIiB8fCBlLmNvZGUgPT09IFwiRXNjYXBlXCIpIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfVxuICAgIH07XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5jbG9zZU9uRXNjKTtcbiAgfVxuICB0ZXh0KHNlbGVjdG9yLCB0ZXh0LCBsaW5rRmlsZXMgPSBmYWxzZSkge1xuICAgIGNvbnN0IGVsID0gdGhpcy5yb290LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xuICAgIGlmICghbGlua0ZpbGVzKSB7XG4gICAgICBlbC50ZXh0Q29udGVudCA9IHRleHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBjdXJJbmRleCA9IDA7XG4gICAgICBsZXQgbWF0Y2g7XG4gICAgICBmaWxlUkUubGFzdEluZGV4ID0gMDtcbiAgICAgIHdoaWxlIChtYXRjaCA9IGZpbGVSRS5leGVjKHRleHQpKSB7XG4gICAgICAgIGNvbnN0IHsgMDogZmlsZSwgaW5kZXggfSA9IG1hdGNoO1xuICAgICAgICBpZiAoaW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IGZyYWcgPSB0ZXh0LnNsaWNlKGN1ckluZGV4LCBpbmRleCk7XG4gICAgICAgICAgZWwuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZnJhZykpO1xuICAgICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcbiAgICAgICAgICBsaW5rLnRleHRDb250ZW50ID0gZmlsZTtcbiAgICAgICAgICBsaW5rLmNsYXNzTmFtZSA9IFwiZmlsZS1saW5rXCI7XG4gICAgICAgICAgbGluay5vbmNsaWNrID0gKCkgPT4ge1xuICAgICAgICAgICAgZmV0Y2goXG4gICAgICAgICAgICAgIG5ldyBVUkwoXG4gICAgICAgICAgICAgICAgYCR7YmFzZSQxfV9fb3Blbi1pbi1lZGl0b3I/ZmlsZT0ke2VuY29kZVVSSUNvbXBvbmVudChmaWxlKX1gLFxuICAgICAgICAgICAgICAgIGltcG9ydC5tZXRhLnVybFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH07XG4gICAgICAgICAgZWwuYXBwZW5kQ2hpbGQobGluayk7XG4gICAgICAgICAgY3VySW5kZXggKz0gZnJhZy5sZW5ndGggKyBmaWxlLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBjbG9zZSgpIHtcbiAgICB0aGlzLnBhcmVudE5vZGU/LnJlbW92ZUNoaWxkKHRoaXMpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIHRoaXMuY2xvc2VPbkVzYyk7XG4gIH1cbn1cbmNvbnN0IG92ZXJsYXlJZCA9IFwidml0ZS1lcnJvci1vdmVybGF5XCI7XG5jb25zdCB7IGN1c3RvbUVsZW1lbnRzIH0gPSBnbG9iYWxUaGlzO1xuaWYgKGN1c3RvbUVsZW1lbnRzICYmICFjdXN0b21FbGVtZW50cy5nZXQob3ZlcmxheUlkKSkge1xuICBjdXN0b21FbGVtZW50cy5kZWZpbmUob3ZlcmxheUlkLCBFcnJvck92ZXJsYXkpO1xufVxuXG5jb25zb2xlLmRlYnVnKFwiW3ZpdGVdIGNvbm5lY3RpbmcuLi5cIik7XG5jb25zdCBpbXBvcnRNZXRhVXJsID0gbmV3IFVSTChpbXBvcnQubWV0YS51cmwpO1xuY29uc3Qgc2VydmVySG9zdCA9IFwibG9jYWxob3N0Ojg4ODgvXCI7XG5jb25zdCBzb2NrZXRQcm90b2NvbCA9IG51bGwgfHwgKGltcG9ydE1ldGFVcmwucHJvdG9jb2wgPT09IFwiaHR0cHM6XCIgPyBcIndzc1wiIDogXCJ3c1wiKTtcbmNvbnN0IGhtclBvcnQgPSBudWxsO1xuY29uc3Qgc29ja2V0SG9zdCA9IGAke251bGwgfHwgaW1wb3J0TWV0YVVybC5ob3N0bmFtZX06JHtobXJQb3J0IHx8IGltcG9ydE1ldGFVcmwucG9ydH0ke1wiL1wifWA7XG5jb25zdCBkaXJlY3RTb2NrZXRIb3N0ID0gXCJsb2NhbGhvc3Q6ODg4OC9cIjtcbmNvbnN0IGJhc2UgPSBcIi9cIiB8fCBcIi9cIjtcbmNvbnN0IHdzVG9rZW4gPSBcIjV0YkR1dFh4dnQyYVwiO1xubGV0IHNvY2tldDtcbnRyeSB7XG4gIGxldCBmYWxsYmFjaztcbiAgaWYgKCFobXJQb3J0KSB7XG4gICAgZmFsbGJhY2sgPSAoKSA9PiB7XG4gICAgICBzb2NrZXQgPSBzZXR1cFdlYlNvY2tldChzb2NrZXRQcm90b2NvbCwgZGlyZWN0U29ja2V0SG9zdCwgKCkgPT4ge1xuICAgICAgICBjb25zdCBjdXJyZW50U2NyaXB0SG9zdFVSTCA9IG5ldyBVUkwoaW1wb3J0Lm1ldGEudXJsKTtcbiAgICAgICAgY29uc3QgY3VycmVudFNjcmlwdEhvc3QgPSBjdXJyZW50U2NyaXB0SG9zdFVSTC5ob3N0ICsgY3VycmVudFNjcmlwdEhvc3RVUkwucGF0aG5hbWUucmVwbGFjZSgvQHZpdGVcXC9jbGllbnQkLywgXCJcIik7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgYFt2aXRlXSBmYWlsZWQgdG8gY29ubmVjdCB0byB3ZWJzb2NrZXQuXG55b3VyIGN1cnJlbnQgc2V0dXA6XG4gIChicm93c2VyKSAke2N1cnJlbnRTY3JpcHRIb3N0fSA8LS1bSFRUUF0tLT4gJHtzZXJ2ZXJIb3N0fSAoc2VydmVyKVxuICAoYnJvd3NlcikgJHtzb2NrZXRIb3N0fSA8LS1bV2ViU29ja2V0IChmYWlsaW5nKV0tLT4gJHtkaXJlY3RTb2NrZXRIb3N0fSAoc2VydmVyKVxuQ2hlY2sgb3V0IHlvdXIgVml0ZSAvIG5ldHdvcmsgY29uZmlndXJhdGlvbiBhbmQgaHR0cHM6Ly92aXRlLmRldi9jb25maWcvc2VydmVyLW9wdGlvbnMuaHRtbCNzZXJ2ZXItaG1yIC5gXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIHNvY2tldC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICBcIm9wZW5cIixcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuaW5mbyhcbiAgICAgICAgICAgIFwiW3ZpdGVdIERpcmVjdCB3ZWJzb2NrZXQgY29ubmVjdGlvbiBmYWxsYmFjay4gQ2hlY2sgb3V0IGh0dHBzOi8vdml0ZS5kZXYvY29uZmlnL3NlcnZlci1vcHRpb25zLmh0bWwjc2VydmVyLWhtciB0byByZW1vdmUgdGhlIHByZXZpb3VzIGNvbm5lY3Rpb24gZXJyb3IuXCJcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICB7IG9uY2U6IHRydWUgfVxuICAgICAgKTtcbiAgICB9O1xuICB9XG4gIHNvY2tldCA9IHNldHVwV2ViU29ja2V0KHNvY2tldFByb3RvY29sLCBzb2NrZXRIb3N0LCBmYWxsYmFjayk7XG59IGNhdGNoIChlcnJvcikge1xuICBjb25zb2xlLmVycm9yKGBbdml0ZV0gZmFpbGVkIHRvIGNvbm5lY3QgdG8gd2Vic29ja2V0ICgke2Vycm9yfSkuIGApO1xufVxuZnVuY3Rpb24gc2V0dXBXZWJTb2NrZXQocHJvdG9jb2wsIGhvc3RBbmRQYXRoLCBvbkNsb3NlV2l0aG91dE9wZW4pIHtcbiAgY29uc3Qgc29ja2V0MiA9IG5ldyBXZWJTb2NrZXQoXG4gICAgYCR7cHJvdG9jb2x9Oi8vJHtob3N0QW5kUGF0aH0/dG9rZW49JHt3c1Rva2VufWAsXG4gICAgXCJ2aXRlLWhtclwiXG4gICk7XG4gIGxldCBpc09wZW5lZCA9IGZhbHNlO1xuICBzb2NrZXQyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgXCJvcGVuXCIsXG4gICAgKCkgPT4ge1xuICAgICAgaXNPcGVuZWQgPSB0cnVlO1xuICAgICAgbm90aWZ5TGlzdGVuZXJzKFwidml0ZTp3czpjb25uZWN0XCIsIHsgd2ViU29ja2V0OiBzb2NrZXQyIH0pO1xuICAgIH0sXG4gICAgeyBvbmNlOiB0cnVlIH1cbiAgKTtcbiAgc29ja2V0Mi5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBhc3luYyAoeyBkYXRhIH0pID0+IHtcbiAgICBoYW5kbGVNZXNzYWdlKEpTT04ucGFyc2UoZGF0YSkpO1xuICB9KTtcbiAgc29ja2V0Mi5hZGRFdmVudExpc3RlbmVyKFwiY2xvc2VcIiwgYXN5bmMgKHsgd2FzQ2xlYW4gfSkgPT4ge1xuICAgIGlmICh3YXNDbGVhbikgcmV0dXJuO1xuICAgIGlmICghaXNPcGVuZWQgJiYgb25DbG9zZVdpdGhvdXRPcGVuKSB7XG4gICAgICBvbkNsb3NlV2l0aG91dE9wZW4oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbm90aWZ5TGlzdGVuZXJzKFwidml0ZTp3czpkaXNjb25uZWN0XCIsIHsgd2ViU29ja2V0OiBzb2NrZXQyIH0pO1xuICAgIGlmIChoYXNEb2N1bWVudCkge1xuICAgICAgY29uc29sZS5sb2coYFt2aXRlXSBzZXJ2ZXIgY29ubmVjdGlvbiBsb3N0LiBQb2xsaW5nIGZvciByZXN0YXJ0Li4uYCk7XG4gICAgICBhd2FpdCB3YWl0Rm9yU3VjY2Vzc2Z1bFBpbmcocHJvdG9jb2wsIGhvc3RBbmRQYXRoKTtcbiAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBzb2NrZXQyO1xufVxuZnVuY3Rpb24gY2xlYW5VcmwocGF0aG5hbWUpIHtcbiAgY29uc3QgdXJsID0gbmV3IFVSTChwYXRobmFtZSwgXCJodHRwOi8vdml0ZS5kZXZcIik7XG4gIHVybC5zZWFyY2hQYXJhbXMuZGVsZXRlKFwiZGlyZWN0XCIpO1xuICByZXR1cm4gdXJsLnBhdGhuYW1lICsgdXJsLnNlYXJjaDtcbn1cbmxldCBpc0ZpcnN0VXBkYXRlID0gdHJ1ZTtcbmNvbnN0IG91dGRhdGVkTGlua1RhZ3MgPSAvKiBAX19QVVJFX18gKi8gbmV3IFdlYWtTZXQoKTtcbmNvbnN0IGRlYm91bmNlUmVsb2FkID0gKHRpbWUpID0+IHtcbiAgbGV0IHRpbWVyO1xuICByZXR1cm4gKCkgPT4ge1xuICAgIGlmICh0aW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgIHRpbWVyID0gbnVsbDtcbiAgICB9XG4gICAgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgIH0sIHRpbWUpO1xuICB9O1xufTtcbmNvbnN0IHBhZ2VSZWxvYWQgPSBkZWJvdW5jZVJlbG9hZCg1MCk7XG5jb25zdCBobXJDbGllbnQgPSBuZXcgSE1SQ2xpZW50KFxuICBjb25zb2xlLFxuICB7XG4gICAgaXNSZWFkeTogKCkgPT4gc29ja2V0ICYmIHNvY2tldC5yZWFkeVN0YXRlID09PSAxLFxuICAgIHNlbmQ6IChtZXNzYWdlKSA9PiBzb2NrZXQuc2VuZChtZXNzYWdlKVxuICB9LFxuICBhc3luYyBmdW5jdGlvbiBpbXBvcnRVcGRhdGVkTW9kdWxlKHtcbiAgICBhY2NlcHRlZFBhdGgsXG4gICAgdGltZXN0YW1wLFxuICAgIGV4cGxpY2l0SW1wb3J0UmVxdWlyZWQsXG4gICAgaXNXaXRoaW5DaXJjdWxhckltcG9ydFxuICB9KSB7XG4gICAgY29uc3QgW2FjY2VwdGVkUGF0aFdpdGhvdXRRdWVyeSwgcXVlcnldID0gYWNjZXB0ZWRQYXRoLnNwbGl0KGA/YCk7XG4gICAgY29uc3QgaW1wb3J0UHJvbWlzZSA9IGltcG9ydChcbiAgICAgIC8qIEB2aXRlLWlnbm9yZSAqL1xuICAgICAgYmFzZSArIGFjY2VwdGVkUGF0aFdpdGhvdXRRdWVyeS5zbGljZSgxKSArIGA/JHtleHBsaWNpdEltcG9ydFJlcXVpcmVkID8gXCJpbXBvcnQmXCIgOiBcIlwifXQ9JHt0aW1lc3RhbXB9JHtxdWVyeSA/IGAmJHtxdWVyeX1gIDogXCJcIn1gXG4gICAgKTtcbiAgICBpZiAoaXNXaXRoaW5DaXJjdWxhckltcG9ydCkge1xuICAgICAgaW1wb3J0UHJvbWlzZS5jYXRjaCgoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuaW5mbyhcbiAgICAgICAgICBgW2htcl0gJHthY2NlcHRlZFBhdGh9IGZhaWxlZCB0byBhcHBseSBITVIgYXMgaXQncyB3aXRoaW4gYSBjaXJjdWxhciBpbXBvcnQuIFJlbG9hZGluZyBwYWdlIHRvIHJlc2V0IHRoZSBleGVjdXRpb24gb3JkZXIuIFRvIGRlYnVnIGFuZCBicmVhayB0aGUgY2lyY3VsYXIgaW1wb3J0LCB5b3UgY2FuIHJ1biBcXGB2aXRlIC0tZGVidWcgaG1yXFxgIHRvIGxvZyB0aGUgY2lyY3VsYXIgZGVwZW5kZW5jeSBwYXRoIGlmIGEgZmlsZSBjaGFuZ2UgdHJpZ2dlcmVkIGl0LmBcbiAgICAgICAgKTtcbiAgICAgICAgcGFnZVJlbG9hZCgpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCBpbXBvcnRQcm9taXNlO1xuICB9XG4pO1xuYXN5bmMgZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShwYXlsb2FkKSB7XG4gIHN3aXRjaCAocGF5bG9hZC50eXBlKSB7XG4gICAgY2FzZSBcImNvbm5lY3RlZFwiOlxuICAgICAgY29uc29sZS5kZWJ1ZyhgW3ZpdGVdIGNvbm5lY3RlZC5gKTtcbiAgICAgIGhtckNsaWVudC5tZXNzZW5nZXIuZmx1c2goKTtcbiAgICAgIHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgaWYgKHNvY2tldC5yZWFkeVN0YXRlID09PSBzb2NrZXQuT1BFTikge1xuICAgICAgICAgIHNvY2tldC5zZW5kKCd7XCJ0eXBlXCI6XCJwaW5nXCJ9Jyk7XG4gICAgICAgIH1cbiAgICAgIH0sIDMwMDAwKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJ1cGRhdGVcIjpcbiAgICAgIG5vdGlmeUxpc3RlbmVycyhcInZpdGU6YmVmb3JlVXBkYXRlXCIsIHBheWxvYWQpO1xuICAgICAgaWYgKGhhc0RvY3VtZW50KSB7XG4gICAgICAgIGlmIChpc0ZpcnN0VXBkYXRlICYmIGhhc0Vycm9yT3ZlcmxheSgpKSB7XG4gICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChlbmFibGVPdmVybGF5KSB7XG4gICAgICAgICAgICBjbGVhckVycm9yT3ZlcmxheSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpc0ZpcnN0VXBkYXRlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBwYXlsb2FkLnVwZGF0ZXMubWFwKGFzeW5jICh1cGRhdGUpID0+IHtcbiAgICAgICAgICBpZiAodXBkYXRlLnR5cGUgPT09IFwianMtdXBkYXRlXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBobXJDbGllbnQucXVldWVVcGRhdGUodXBkYXRlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgeyBwYXRoLCB0aW1lc3RhbXAgfSA9IHVwZGF0ZTtcbiAgICAgICAgICBjb25zdCBzZWFyY2hVcmwgPSBjbGVhblVybChwYXRoKTtcbiAgICAgICAgICBjb25zdCBlbCA9IEFycmF5LmZyb20oXG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwibGlua1wiKVxuICAgICAgICAgICkuZmluZChcbiAgICAgICAgICAgIChlKSA9PiAhb3V0ZGF0ZWRMaW5rVGFncy5oYXMoZSkgJiYgY2xlYW5VcmwoZS5ocmVmKS5pbmNsdWRlcyhzZWFyY2hVcmwpXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoIWVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IG5ld1BhdGggPSBgJHtiYXNlfSR7c2VhcmNoVXJsLnNsaWNlKDEpfSR7c2VhcmNoVXJsLmluY2x1ZGVzKFwiP1wiKSA/IFwiJlwiIDogXCI/XCJ9dD0ke3RpbWVzdGFtcH1gO1xuICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3TGlua1RhZyA9IGVsLmNsb25lTm9kZSgpO1xuICAgICAgICAgICAgbmV3TGlua1RhZy5ocmVmID0gbmV3IFVSTChuZXdQYXRoLCBlbC5ocmVmKS5ocmVmO1xuICAgICAgICAgICAgY29uc3QgcmVtb3ZlT2xkRWwgPSAoKSA9PiB7XG4gICAgICAgICAgICAgIGVsLnJlbW92ZSgpO1xuICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBbdml0ZV0gY3NzIGhvdCB1cGRhdGVkOiAke3NlYXJjaFVybH1gKTtcbiAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIG5ld0xpbmtUYWcuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgcmVtb3ZlT2xkRWwpO1xuICAgICAgICAgICAgbmV3TGlua1RhZy5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwgcmVtb3ZlT2xkRWwpO1xuICAgICAgICAgICAgb3V0ZGF0ZWRMaW5rVGFncy5hZGQoZWwpO1xuICAgICAgICAgICAgZWwuYWZ0ZXIobmV3TGlua1RhZyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgbm90aWZ5TGlzdGVuZXJzKFwidml0ZTphZnRlclVwZGF0ZVwiLCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJjdXN0b21cIjoge1xuICAgICAgbm90aWZ5TGlzdGVuZXJzKHBheWxvYWQuZXZlbnQsIHBheWxvYWQuZGF0YSk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBcImZ1bGwtcmVsb2FkXCI6XG4gICAgICBub3RpZnlMaXN0ZW5lcnMoXCJ2aXRlOmJlZm9yZUZ1bGxSZWxvYWRcIiwgcGF5bG9hZCk7XG4gICAgICBpZiAoaGFzRG9jdW1lbnQpIHtcbiAgICAgICAgaWYgKHBheWxvYWQucGF0aCAmJiBwYXlsb2FkLnBhdGguZW5kc1dpdGgoXCIuaHRtbFwiKSkge1xuICAgICAgICAgIGNvbnN0IHBhZ2VQYXRoID0gZGVjb2RlVVJJKGxvY2F0aW9uLnBhdGhuYW1lKTtcbiAgICAgICAgICBjb25zdCBwYXlsb2FkUGF0aCA9IGJhc2UgKyBwYXlsb2FkLnBhdGguc2xpY2UoMSk7XG4gICAgICAgICAgaWYgKHBhZ2VQYXRoID09PSBwYXlsb2FkUGF0aCB8fCBwYXlsb2FkLnBhdGggPT09IFwiL2luZGV4Lmh0bWxcIiB8fCBwYWdlUGF0aC5lbmRzV2l0aChcIi9cIikgJiYgcGFnZVBhdGggKyBcImluZGV4Lmh0bWxcIiA9PT0gcGF5bG9hZFBhdGgpIHtcbiAgICAgICAgICAgIHBhZ2VSZWxvYWQoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBhZ2VSZWxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcInBydW5lXCI6XG4gICAgICBub3RpZnlMaXN0ZW5lcnMoXCJ2aXRlOmJlZm9yZVBydW5lXCIsIHBheWxvYWQpO1xuICAgICAgYXdhaXQgaG1yQ2xpZW50LnBydW5lUGF0aHMocGF5bG9hZC5wYXRocyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiZXJyb3JcIjoge1xuICAgICAgbm90aWZ5TGlzdGVuZXJzKFwidml0ZTplcnJvclwiLCBwYXlsb2FkKTtcbiAgICAgIGlmIChoYXNEb2N1bWVudCkge1xuICAgICAgICBjb25zdCBlcnIgPSBwYXlsb2FkLmVycjtcbiAgICAgICAgaWYgKGVuYWJsZU92ZXJsYXkpIHtcbiAgICAgICAgICBjcmVhdGVFcnJvck92ZXJsYXkoZXJyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgYFt2aXRlXSBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3JcbiR7ZXJyLm1lc3NhZ2V9XG4ke2Vyci5zdGFja31gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIGNvbnN0IGNoZWNrID0gcGF5bG9hZDtcbiAgICAgIHJldHVybiBjaGVjaztcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG5vdGlmeUxpc3RlbmVycyhldmVudCwgZGF0YSkge1xuICBobXJDbGllbnQubm90aWZ5TGlzdGVuZXJzKGV2ZW50LCBkYXRhKTtcbn1cbmNvbnN0IGVuYWJsZU92ZXJsYXkgPSB0cnVlO1xuY29uc3QgaGFzRG9jdW1lbnQgPSBcImRvY3VtZW50XCIgaW4gZ2xvYmFsVGhpcztcbmZ1bmN0aW9uIGNyZWF0ZUVycm9yT3ZlcmxheShlcnIpIHtcbiAgY2xlYXJFcnJvck92ZXJsYXkoKTtcbiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuZXcgRXJyb3JPdmVybGF5KGVycikpO1xufVxuZnVuY3Rpb24gY2xlYXJFcnJvck92ZXJsYXkoKSB7XG4gIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwob3ZlcmxheUlkKS5mb3JFYWNoKChuKSA9PiBuLmNsb3NlKCkpO1xufVxuZnVuY3Rpb24gaGFzRXJyb3JPdmVybGF5KCkge1xuICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChvdmVybGF5SWQpLmxlbmd0aDtcbn1cbmFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JTdWNjZXNzZnVsUGluZyhzb2NrZXRQcm90b2NvbDIsIGhvc3RBbmRQYXRoLCBtcyA9IDFlMykge1xuICBjb25zdCBwaW5nSG9zdFByb3RvY29sID0gc29ja2V0UHJvdG9jb2wyID09PSBcIndzc1wiID8gXCJodHRwc1wiIDogXCJodHRwXCI7XG4gIGNvbnN0IHBpbmcgPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGZldGNoKGAke3BpbmdIb3N0UHJvdG9jb2x9Oi8vJHtob3N0QW5kUGF0aH1gLCB7XG4gICAgICAgIG1vZGU6IFwibm8tY29yc1wiLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgLy8gQ3VzdG9tIGhlYWRlcnMgd29uJ3QgYmUgaW5jbHVkZWQgaW4gYSByZXF1ZXN0IHdpdGggbm8tY29ycyBzbyAoYWIpdXNlIG9uZSBvZiB0aGVcbiAgICAgICAgICAvLyBzYWZlbGlzdGVkIGhlYWRlcnMgdG8gaWRlbnRpZnkgdGhlIHBpbmcgcmVxdWVzdFxuICAgICAgICAgIEFjY2VwdDogXCJ0ZXh0L3gtdml0ZS1waW5nXCJcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuICBpZiAoYXdhaXQgcGluZygpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGF3YWl0IHdhaXQobXMpO1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwidmlzaWJsZVwiKSB7XG4gICAgICBpZiAoYXdhaXQgcGluZygpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgYXdhaXQgd2FpdChtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHdhaXRGb3JXaW5kb3dTaG93KCk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiB3YWl0KG1zKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtcykpO1xufVxuZnVuY3Rpb24gd2FpdEZvcldpbmRvd1Nob3coKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IG9uQ2hhbmdlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSA9PT0gXCJ2aXNpYmxlXCIpIHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwidmlzaWJpbGl0eWNoYW5nZVwiLCBvbkNoYW5nZSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwidmlzaWJpbGl0eWNoYW5nZVwiLCBvbkNoYW5nZSk7XG4gIH0pO1xufVxuY29uc3Qgc2hlZXRzTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbmlmIChcImRvY3VtZW50XCIgaW4gZ2xvYmFsVGhpcykge1xuICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwic3R5bGVbZGF0YS12aXRlLWRldi1pZF1cIikuZm9yRWFjaCgoZWwpID0+IHtcbiAgICBzaGVldHNNYXAuc2V0KGVsLmdldEF0dHJpYnV0ZShcImRhdGEtdml0ZS1kZXYtaWRcIiksIGVsKTtcbiAgfSk7XG59XG5jb25zdCBjc3BOb25jZSA9IFwiZG9jdW1lbnRcIiBpbiBnbG9iYWxUaGlzID8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIm1ldGFbcHJvcGVydHk9Y3NwLW5vbmNlXVwiKT8ubm9uY2UgOiB2b2lkIDA7XG5sZXQgbGFzdEluc2VydGVkU3R5bGU7XG5mdW5jdGlvbiB1cGRhdGVTdHlsZShpZCwgY29udGVudCkge1xuICBsZXQgc3R5bGUgPSBzaGVldHNNYXAuZ2V0KGlkKTtcbiAgaWYgKCFzdHlsZSkge1xuICAgIHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuICAgIHN0eWxlLnNldEF0dHJpYnV0ZShcInR5cGVcIiwgXCJ0ZXh0L2Nzc1wiKTtcbiAgICBzdHlsZS5zZXRBdHRyaWJ1dGUoXCJkYXRhLXZpdGUtZGV2LWlkXCIsIGlkKTtcbiAgICBzdHlsZS50ZXh0Q29udGVudCA9IGNvbnRlbnQ7XG4gICAgaWYgKGNzcE5vbmNlKSB7XG4gICAgICBzdHlsZS5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLCBjc3BOb25jZSk7XG4gICAgfVxuICAgIGlmICghbGFzdEluc2VydGVkU3R5bGUpIHtcbiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGxhc3RJbnNlcnRlZFN0eWxlID0gdm9pZCAwO1xuICAgICAgfSwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxhc3RJbnNlcnRlZFN0eWxlLmluc2VydEFkamFjZW50RWxlbWVudChcImFmdGVyZW5kXCIsIHN0eWxlKTtcbiAgICB9XG4gICAgbGFzdEluc2VydGVkU3R5bGUgPSBzdHlsZTtcbiAgfSBlbHNlIHtcbiAgICBzdHlsZS50ZXh0Q29udGVudCA9IGNvbnRlbnQ7XG4gIH1cbiAgc2hlZXRzTWFwLnNldChpZCwgc3R5bGUpO1xufVxuZnVuY3Rpb24gcmVtb3ZlU3R5bGUoaWQpIHtcbiAgY29uc3Qgc3R5bGUgPSBzaGVldHNNYXAuZ2V0KGlkKTtcbiAgaWYgKHN0eWxlKSB7XG4gICAgZG9jdW1lbnQuaGVhZC5yZW1vdmVDaGlsZChzdHlsZSk7XG4gICAgc2hlZXRzTWFwLmRlbGV0ZShpZCk7XG4gIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZUhvdENvbnRleHQob3duZXJQYXRoKSB7XG4gIHJldHVybiBuZXcgSE1SQ29udGV4dChobXJDbGllbnQsIG93bmVyUGF0aCk7XG59XG5mdW5jdGlvbiBpbmplY3RRdWVyeSh1cmwsIHF1ZXJ5VG9JbmplY3QpIHtcbiAgaWYgKHVybFswXSAhPT0gXCIuXCIgJiYgdXJsWzBdICE9PSBcIi9cIikge1xuICAgIHJldHVybiB1cmw7XG4gIH1cbiAgY29uc3QgcGF0aG5hbWUgPSB1cmwucmVwbGFjZSgvWz8jXS4qJC8sIFwiXCIpO1xuICBjb25zdCB7IHNlYXJjaCwgaGFzaCB9ID0gbmV3IFVSTCh1cmwsIFwiaHR0cDovL3ZpdGUuZGV2XCIpO1xuICByZXR1cm4gYCR7cGF0aG5hbWV9PyR7cXVlcnlUb0luamVjdH0ke3NlYXJjaCA/IGAmYCArIHNlYXJjaC5zbGljZSgxKSA6IFwiXCJ9JHtoYXNoIHx8IFwiXCJ9YDtcbn1cblxuZXhwb3J0IHsgRXJyb3JPdmVybGF5LCBjcmVhdGVIb3RDb250ZXh0LCBpbmplY3RRdWVyeSwgcmVtb3ZlU3R5bGUsIHVwZGF0ZVN0eWxlIH07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hEO0FBQ0EsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUMvQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUMvQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN2RCxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDZCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDdEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0FBQ3ZELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztBQUMzQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDbEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNaLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNsRSxDQUFDLENBQUMsQ0FBQztBQUNILENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUMsQ0FBQztBQUNILENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM5QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2hFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3RDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ1osQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUN4RSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXO0FBQzVDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbEUsQ0FBQyxDQUFDLENBQUM7QUFDSCxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDZixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDdEQsQ0FBQyxDQUFDLENBQUM7QUFDSCxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDYixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDcEQsQ0FBQyxDQUFDLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDN0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRO0FBQ2xFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDYixDQUFDLENBQUMsQ0FBQztBQUNILENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN2QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0FBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87QUFDYixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7QUFDaEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNOLENBQUMsQ0FBQyxDQUFDO0FBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN4QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNoQyxDQUFDLENBQUMsQ0FBQztBQUNILENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3RDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDZixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FB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QUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM3QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQ3RCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNOLENBQUMsQ0FBQyxDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU07QUFDakUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQy9ELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsR0FBRyxD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QyxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDWCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMxRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDN0UsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDLENBQUM7QUFDSCxDQUFDO0FBQ0Q7QUFDQSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDdkMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ3hDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVCLENBQUMsQ0FBQyxDQUFDO0FBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDM0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBQ0QsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDLENBQUM7QUFDSCxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNsQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNWLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNkLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDMUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQy9DLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDakIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUNwQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ3BCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUNqQjtBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQzFCLENBQUM7QUFDRDtBQUNBLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDWCxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ2xCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDVCxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1YsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2QsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDckIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNaLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFDRDtBQUNBLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDVCxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25CLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM3QixDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7QUFDekIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDcEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO0FBQ3JCLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDckIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO0FBQ2pDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDekUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUNuQixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ25CLENBQUM7QUFDRDtBQUNBLEdBQUcsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hCLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQ3JCLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ3JCLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3hCLENBQUM7QUFDRDtBQUNBLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3hCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDaEIsQ0FBQztBQUNEO0FBQ0EsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUNkLENBQUM7QUFDRDtBQUNBLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDcEMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQ25CLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQ3JCLENBQUM7QUFDRDtBQUNBLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNYLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3hCLENBQUM7QUFDRDtBQUNBLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDVixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDbkIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0FBQ3hCLENBQUM7QUFDRDtBQUNBLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2YsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDcEIsQ0FBQztBQUNEO0FBQ0EsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFDRDtBQUNBLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuQixDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO0FBQ3hCLENBQUM7QUFDRDtBQUNBLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDUixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2QixDQUFDO0FBQ0Q7QUFDQSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ1IsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDbEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDcEIsQ0FBQztBQUNEO0FBQ0EsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNOLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUNkLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUM5QixDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNwQixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkIsQ0FBQztBQUNEO0FBQ0EsSUFBSSxDQUFDLENBQUM7QUFDTixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNsQixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDaEMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUNEO0FBQ0EsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDWixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUM3QixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ2xCLENBQUM7QUFDRDtBQUNBLEdBQUcsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDbEcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ3JCLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQ25CLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDNUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMxQixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDekIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUM5QyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUN0QixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNoQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUN4QixDQUFDO0FBQ0QsQ0FBQztBQUNELENBQUMsQ0FBQztBQUNGLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNSLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDVixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ1osQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNOLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNaLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNkLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDdEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3RFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNiLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUM3RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFDRixLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDL0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztBQUNqQixLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUN4QyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDWixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzlELENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO0FBQ2xGLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDckIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0UsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ25CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ25CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3JCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNOLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDMUQsQ0FBQyxDQUFDLENBQUM7QUFDSCxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQ3JCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNaLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO0FBQ2hCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUN6QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDNUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ25ELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNsQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDbEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7QUFDdEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHO0FBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDWixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztBQUNoRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUNILENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDWCxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM3RCxDQUFDLENBQUMsQ0FBQztBQUNILENBQUM7QUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdkMsS0FBSyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7QUFDdEMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkQsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLENB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QUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1osQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNWLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDLENBQUMsQ0FBQztBQUNILENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNoRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNqQixDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVB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LENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztBQUNqQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7QUFDckIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FB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QUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNYLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDN0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0FBQ2hDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNqQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztBQUNuRixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNaLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUNuQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDWCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQzdHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQzlDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQztBQUM3RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNkLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDN0QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUM5RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDckMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNqQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNWLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNSLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25ELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNaLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ25ELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNaLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUN4QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3hELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUNoSixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNYLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ2pCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDaEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNaLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDakIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDbkQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNaLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUks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T0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRztBQUM3RixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU87QUFDNUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztBQUNwQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztBQUNsQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNiLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUNYLENBQUMsQ0FBQyxDQUFDO0FBQ0gsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDakIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDaEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDZCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNyQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNaLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7QUFDaEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDSCxDQUFDO0FBQ0QsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ25CLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFDRCxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ25FLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNOLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzVELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1QyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FB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QUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6QyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7QUFDZixDQUFDLENBQUMsQ0FBQztBQUNILENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzRixDQUFDO0FBQ0Q7QUFDQSxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzsifQ== \ No newline at end of file diff --git a/ruoyi-ui/public/preview/preview_files/erweima.png b/ruoyi-ui/public/preview/preview_files/erweima.png new file mode 100644 index 0000000000000000000000000000000000000000..65f3b6fb20b3ee67b2a99efd903986c131e4cd16 GIT binary patch literal 33166 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 FV1iwamxllV literal 0 HcmV?d00001 diff --git a/ruoyi-ui/public/preview/preview_files/first1.png b/ruoyi-ui/public/preview/preview_files/first1.png new file mode 100644 index 0000000000000000000000000000000000000000..f74fbed434f4ce88655670a7b853e8b92cfac684 GIT binary patch literal 5831 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 literal 0 HcmV?d00001 diff --git a/ruoyi-ui/public/preview/preview_files/first2.png b/ruoyi-ui/public/preview/preview_files/first2.png new file mode 100644 index 0000000000000000000000000000000000000000..ed4844b18452882d876f6e825add182147aac867 GIT binary patch literal 6818 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 WO_wy0lt*7W0TkubWXomDgZ>NTUhSX& literal 0 HcmV?d00001 diff --git a/ruoyi-ui/public/preview/preview_files/first3.png b/ruoyi-ui/public/preview/preview_files/first3.png new file mode 100644 index 0000000000000000000000000000000000000000..74322323dc680339fd8a9a16c738e96be2b97959 GIT binary patch literal 4551 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 O0pN5@v@5loqW=W|n^D~W literal 0 HcmV?d00001 diff --git a/ruoyi-ui/public/preview/preview_files/first4.png b/ruoyi-ui/public/preview/preview_files/first4.png new file mode 100644 index 0000000000000000000000000000000000000000..008fc2fda93c8356bf75f3e820c31c1f0ef43f2a GIT binary patch literal 9701 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 literal 0 HcmV?d00001 diff --git a/ruoyi-ui/public/preview/preview_files/first5.png b/ruoyi-ui/public/preview/preview_files/first5.png new file mode 100644 index 0000000000000000000000000000000000000000..b2d5f9847e894caa59ff9fb9e38cde7613fb5fa0 GIT binary patch literal 10702 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

<0z)&VS8{*tSkb)!>? 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�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∨O_c8iVT%kXSX#B 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πH#M2#x8afTr&DpUAnMJ>@ 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�~Tr@x9r0 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 literal 0 HcmV?d00001 diff --git "a/ruoyi-ui/public/preview/preview_files/main.js.\344\270\213\350\275\275" "b/ruoyi-ui/public/preview/preview_files/main.js.\344\270\213\350\275\275" new file mode 100644 index 0000000..005c710 --- /dev/null +++ "b/ruoyi-ui/public/preview/preview_files/main.js.\344\270\213\350\275\275" @@ -0,0 +1,61 @@ +// import './assets/main.css' +import "/src/assets/global.css" + +import { createApp } from "/node_modules/.vite/deps/vue.js?v=d0071ae4" + +import router from "/src/route/index.js?t=1762152847161" +// 引入elemnetplus +import ElementPlus from "/node_modules/.vite/deps/element-plus.js?v=d0071ae4" +import "/node_modules/element-plus/dist/index.css" +import App from "/src/App.vue?t=1762152847161" +// import globalMethods from '@/plugins/globalMethods' +import { ArtByColumnId,formatAllDate,getLatestNews,truncateText, + formatDate,truncateRichText,ArtDetails,truRichText, + getListKind,truRichTextFixed,highlightKeyword + + } from "/src/plugins/globalMethods.js" + + + +const app = createApp(App) +// 挂载 +app.use(ElementPlus) + + +// 注册全局方法 + +// 1.格式化日期格式 +app.config.globalProperties.$formatAllDate = formatAllDate + +// 2.根据conlumnId获取文章列表 +app.config.globalProperties.$ArtByColumnId = ArtByColumnId +// 3.获取最新文章并选取特定信息数量 +app.config.globalProperties.$getLatestNews = getLatestNews +// 4.格式化日期,例:2025-03-01 提取出来就是2025-03和01 +app.config.globalProperties.$formatDate = formatDate +// 5. 截取文本,不想显示全部,只显示前20个字等等 +app.config.globalProperties.$truncateText = truncateText + +// 5. 截取富文本 +app.config.globalProperties.$truncateRichText = truncateRichText +// 6.获取文章详细信息 +app.config.globalProperties.$ArtDetails = ArtDetails +// 7.截取富文本(新) +app.config.globalProperties.$truRichText = truRichText +// 8.截取富文本(考虑字符宽度,专门用于firstPage.vue) +app.config.globalProperties.$truRichTextFixed = truRichTextFixed +// 9. +app.config.globalProperties.$getListKind = getListKind +// 10.高亮关键字 +app.config.globalProperties.$highlightKeyword = highlightKeyword + + + + + + + + + +app.use(router).mount('#app') +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0ICcuL2Fzc2V0cy9tYWluLmNzcydcclxuaW1wb3J0IFwiL3NyYy9hc3NldHMvZ2xvYmFsLmNzc1wiXHJcblxyXG5pbXBvcnQgeyBjcmVhdGVBcHAgfSBmcm9tIFwiL25vZGVfbW9kdWxlcy8udml0ZS9kZXBzL3Z1ZS5qcz92PWQwMDcxYWU0XCJcclxuXHJcbmltcG9ydCByb3V0ZXIgZnJvbSBcIi9zcmMvcm91dGUvaW5kZXguanM/dD0xNzYyMTUyODQ3MTYxXCJcclxuLy8g5byV5YWlZWxlbW5ldHBsdXNcclxuaW1wb3J0IEVsZW1lbnRQbHVzIGZyb20gXCIvbm9kZV9tb2R1bGVzLy52aXRlL2RlcHMvZWxlbWVudC1wbHVzLmpzP3Y9ZDAwNzFhZTRcIlxyXG5pbXBvcnQgXCIvbm9kZV9tb2R1bGVzL2VsZW1lbnQtcGx1cy9kaXN0L2luZGV4LmNzc1wiXHJcbmltcG9ydCBBcHAgZnJvbSBcIi9zcmMvQXBwLnZ1ZT90PTE3NjIxNTI4NDcxNjFcIlxyXG4vLyBpbXBvcnQgZ2xvYmFsTWV0aG9kcyBmcm9tICdAL3BsdWdpbnMvZ2xvYmFsTWV0aG9kcydcclxuaW1wb3J0IHsgQXJ0QnlDb2x1bW5JZCxmb3JtYXRBbGxEYXRlLGdldExhdGVzdE5ld3MsdHJ1bmNhdGVUZXh0LFxyXG4gICAgZm9ybWF0RGF0ZSx0cnVuY2F0ZVJpY2hUZXh0LEFydERldGFpbHMsdHJ1UmljaFRleHQsXHJcbiAgICBnZXRMaXN0S2luZCx0cnVSaWNoVGV4dEZpeGVkLGhpZ2hsaWdodEtleXdvcmRcclxuXHJcbiB9IGZyb20gXCIvc3JjL3BsdWdpbnMvZ2xvYmFsTWV0aG9kcy5qc1wiXHJcblxyXG5cclxuXHJcbmNvbnN0IGFwcCA9IGNyZWF0ZUFwcChBcHApXHJcbi8vIOaMgui9vVxyXG5hcHAudXNlKEVsZW1lbnRQbHVzKVxyXG5cclxuXHJcbi8vIOazqOWGjOWFqOWxgOaWueazlVxyXG5cclxuLy8gMS7moLzlvI/ljJbml6XmnJ/moLzlvI9cclxuYXBwLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiRmb3JtYXRBbGxEYXRlID0gZm9ybWF0QWxsRGF0ZVxyXG5cclxuLy8gMi7moLnmja5jb25sdW1uSWTojrflj5bmlofnq6DliJfooahcclxuYXBwLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiRBcnRCeUNvbHVtbklkID0gQXJ0QnlDb2x1bW5JZFxyXG4vLyAzLuiOt+WPluacgOaWsOaWh+eroOW5tumAieWPlueJueWumuS/oeaBr+aVsOmHj1xyXG5hcHAuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMuJGdldExhdGVzdE5ld3MgPSBnZXRMYXRlc3ROZXdzXHJcbi8vIDQu5qC85byP5YyW5pel5pyfLOS+i++8mjIwMjUtMDMtMDEg5o+Q5Y+W5Ye65p2l5bCx5pivMjAyNS0wM+WSjDAxXHJcbmFwcC5jb25maWcuZ2xvYmFsUHJvcGVydGllcy4kZm9ybWF0RGF0ZSA9IGZvcm1hdERhdGVcclxuLy8gNS4g5oiq5Y+W5paH5pys77yM5LiN5oOz5pi+56S65YWo6YOo77yM5Y+q5pi+56S65YmNMjDkuKrlrZfnrYnnrYlcclxuYXBwLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiR0cnVuY2F0ZVRleHQgPSB0cnVuY2F0ZVRleHRcclxuXHJcbi8vIDUuIOaIquWPluWvjOaWh+acrFxyXG5hcHAuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMuJHRydW5jYXRlUmljaFRleHQgPSB0cnVuY2F0ZVJpY2hUZXh0XHJcbi8vIDYu6I635Y+W5paH56ug6K+m57uG5L+h5oGvXHJcbmFwcC5jb25maWcuZ2xvYmFsUHJvcGVydGllcy4kQXJ0RGV0YWlscyA9IEFydERldGFpbHNcclxuLy8gNy7miKrlj5blr4zmlofmnKwo5pawKVxyXG5hcHAuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMuJHRydVJpY2hUZXh0ID0gdHJ1UmljaFRleHRcclxuLy8gOC7miKrlj5blr4zmlofmnKwo6ICD6JmR5a2X56ym5a695bqm77yM5LiT6Zeo55So5LqOZmlyc3RQYWdlLnZ1ZSlcclxuYXBwLmNvbmZpZy5nbG9iYWxQcm9wZXJ0aWVzLiR0cnVSaWNoVGV4dEZpeGVkID0gdHJ1UmljaFRleHRGaXhlZFxyXG4vLyA5LlxyXG5hcHAuY29uZmlnLmdsb2JhbFByb3BlcnRpZXMuJGdldExpc3RLaW5kID0gZ2V0TGlzdEtpbmRcclxuLy8gMTAu6auY5Lqu5YWz6ZSu5a2XXHJcbmFwcC5jb25maWcuZ2xvYmFsUHJvcGVydGllcy4kaGlnaGxpZ2h0S2V5d29yZCA9IGhpZ2hsaWdodEtleXdvcmRcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuYXBwLnVzZShyb3V0ZXIpLm1vdW50KCcjYXBwJykiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDOUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBQ0QsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDekQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztBQUNqQixNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDOUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25ELE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDL0MsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3ZELE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDakUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3hELENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO0FBQ2xELENBQUM7QUFDRCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFDRCxDQUFDO0FBQ0QsQ0FBQztBQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNOLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDckIsQ0FBQztBQUNELENBQUM7QUFDRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1YsQ0FBQztBQUNELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDYixHQUFHLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7QUFDM0QsQ0FBQztBQUNELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLEdBQUcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztBQUMzRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQixHQUFHLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7QUFDM0QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUN6QyxHQUFHLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7QUFDckQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QixHQUFHLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7QUFDekQsQ0FBQztBQUNELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1osR0FBRyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztBQUNqRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDZCxHQUFHLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7QUFDckQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO0FBQ3ZELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3JDLEdBQUcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7QUFDakUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTixHQUFHLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7QUFDdkQsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1osR0FBRyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztBQUNqRSxDQUFDO0FBQ0QsQ0FBQztBQUNELENBQUM7QUFDRCxDQUFDO0FBQ0QsQ0FBQztBQUNELENBQUM7QUFDRCxDQUFDO0FBQ0QsQ0FBQztBQUNELENBQUM7QUFDRCxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDIn0= \ No newline at end of file diff --git a/ruoyi-ui/src/views/adsRecoverStation/station/index.vue b/ruoyi-ui/src/views/adsRecoverStation/station/index.vue index b716d4c..a0e2865 100644 --- a/ruoyi-ui/src/views/adsRecoverStation/station/index.vue +++ b/ruoyi-ui/src/views/adsRecoverStation/station/index.vue @@ -148,9 +148,9 @@ - - - + + + diff --git a/ruoyi-ui/src/views/article/article/index.vue b/ruoyi-ui/src/views/article/article/index.vue index 0b7fdef..5d4c05a 100644 --- a/ruoyi-ui/src/views/article/article/index.vue +++ b/ruoyi-ui/src/views/article/article/index.vue @@ -83,38 +83,38 @@ - - 新增 - - - 修改 - - - 删除 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 按条件批量操作 - - 草稿箱 - + + + + + + + + + @@ -180,11 +180,11 @@ - - - + + + + + + + + + + + + + + + + + + + +

+ + 添加副标题 + +

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

+ @@ -265,7 +279,7 @@
- - - + + + - + diff --git a/ruoyi-ui/src/views/history/history/index.vue b/ruoyi-ui/src/views/history/history/index.vue index 950619e..e2f6425 100644 --- a/ruoyi-ui/src/views/history/history/index.vue +++ b/ruoyi-ui/src/views/history/history/index.vue @@ -56,11 +56,11 @@ - - - > + + + + + @@ -164,13 +164,15 @@ export default { align-items: center; height: 100%; background-image: url("../assets/images/login-background.jpg"); - background-size: cover; + background-size: 110%; + background-position: 30% 20%; } .title { margin: 0px auto 30px auto; text-align: center; - color: #707070; + color: #435eaf; font-size: 30px; + font-weight: 600; } .login-form { @@ -206,16 +208,23 @@ export default { } } .el-login-footer { - height: 40px; + height: 150px; line-height: 40px; position: fixed; bottom: 0; width: 100%; text-align: center; - color: #fff; + color: #000; font-family: Arial; - font-size: 12px; + font-size: 16px; letter-spacing: 1px; + background: url("../assets/images/login-background.jpg"); + background-position: bottom; + background-size: 70%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: flex-end; } .login-code-img { height: 38px; diff --git a/ruoyi-ui/src/views/praticalTools/index.vue b/ruoyi-ui/src/views/praticalTools/index.vue index 5fc035b..974e8fc 100644 --- a/ruoyi-ui/src/views/praticalTools/index.vue +++ b/ruoyi-ui/src/views/praticalTools/index.vue @@ -176,11 +176,11 @@ - - - + + + + + + + diff --git a/ruoyi-ui/src/views/river_news/river_news/index.vue b/ruoyi-ui/src/views/river_news/river_news/index.vue index d6779e8..e915f96 100644 --- a/ruoyi-ui/src/views/river_news/river_news/index.vue +++ b/ruoyi-ui/src/views/river_news/river_news/index.vue @@ -124,11 +124,11 @@ - - - > + + + + + @@ -246,9 +246,9 @@ placeholder="请选择发布日期"> - - - + + + - - - + + + + + - + + + - + - + - + + + -- Gitee From f3c0bb07b1ea7358378b325e72feb63977a4ceba Mon Sep 17 00:00:00 2001 From: Jayther2020 <1139979508@qq.com> Date: Fri, 13 Feb 2026 14:35:37 +0800 Subject: [PATCH 116/120] --- --- ruoyi-ui/src/components/Editor/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-ui/src/components/Editor/index.vue b/ruoyi-ui/src/components/Editor/index.vue index 1571e62..4abda8c 100644 --- a/ruoyi-ui/src/components/Editor/index.vue +++ b/ruoyi-ui/src/components/Editor/index.vue @@ -325,7 +325,7 @@ export default { // 为文本节点添加字体大小 // 处理粘贴事件 async handlePaste(e) { - console.log('handlePaste'); + console.log('handlePaste',e); // 阻止默认粘贴行为,避免重复处理 e.preventDefault(); -- Gitee From 3c5e29de6fa6ec43fab20d71875159b3c84f0cd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=AD=90=E9=83=A1?= <3314902638@qq.com> Date: Fri, 13 Feb 2026 19:37:34 +0800 Subject: [PATCH 117/120] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/views/leader/leader/index.vue | 197 +-------------------- 1 file changed, 8 insertions(+), 189 deletions(-) diff --git a/ruoyi-ui/src/views/leader/leader/index.vue b/ruoyi-ui/src/views/leader/leader/index.vue index 1f2ceb6..8ca8ecf 100644 --- a/ruoyi-ui/src/views/leader/leader/index.vue +++ b/ruoyi-ui/src/views/leader/leader/index.vue @@ -83,7 +83,7 @@ - +