diff --git a/Doc/13、读写分离.md b/Doc/13、读写分离.md new file mode 100644 index 00000000..2d77ee9f --- /dev/null +++ b/Doc/13、读写分离.md @@ -0,0 +1,160 @@ +# 数据库读写分离功能说明 + +## 概述 + +本项目已集成数据库读写分离功能,通过修改 `Db.java` 类实现了自动的读写分离路由。该功能具有以下特点: + +- **自动检测**:根据 `application.yaml` 配置自动检测是否存在从库配置 +- **智能路由**:读操作自动路由到从库,写操作强制使用主库 +- **负载均衡**:多个从库时随机选择一个进行读取 +- **故障转移**:从库连接失败时自动回退到主库 +- **零侵入**:现有代码无需修改,透明支持读写分离 + +## 配置方式 + +### 1. 主库配置(必须) + +在 `application_dev.yaml` 或 `application_pro.yaml` 中配置主库: + +```yaml +mysql: + driverClassName: com.mysql.cj.jdbc.Driver + user: root + password: 123456 + jdbcUrl: jdbc:mysql://localhost:3306/dswork?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowMultiQueries=true +``` + +### 2. 从库配置(可选) + +如果需要启用读写分离,添加从库配置: + +```yaml +mysql: + driverClassName: com.mysql.cj.jdbc.Driver + user: root + password: 123456 + jdbcUrl: jdbc:mysql://localhost:3306/dswork?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowMultiQueries=true + + # 从库1 + slave1: + driverClassName: com.mysql.cj.jdbc.Driver + user: root + password: 123456 + jdbcUrl: jdbc:mysql://slave1:3306/dswork?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowMultiQueries=true + + # 从库2 + slave2: + driverClassName: com.mysql.cj.jdbc.Driver + user: root + password: 123456 + jdbcUrl: jdbc:mysql://slave2:3306/dswork?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowMultiQueries=true +``` + +## 使用方式 + +### 1. 自动读写分离(推荐) + +现有代码无需修改,系统会自动根据 SQL 类型进行路由: + +```java +// 读操作 - 自动路由到从库 +List users = Db.find("select * from user where status = ?", 1); +Record user = Db.findFirst("select * from user where id = ?", 123); +List result = Db.query("select count(*) from user"); + +// 写操作 - 强制使用主库 +Db.update("insert into user(name, email) values(?, ?)", "张三", "zhangsan@example.com"); +Db.update("update user set status = ? where id = ?", 1, 123); +Db.delete("delete from user where id = ?", 123); + +// 事务操作 - 强制使用主库 +Db.tx(() -> { + Db.update("insert into user(name) values(?)", "李四"); + Db.update("update user set status = 1 where name = ?", "李四"); + return true; +}); +``` + +### 2. 强制指定数据库 + +如果需要强制使用特定数据库,可以使用以下方法: + +```java +// 强制使用主库查询(用于需要强一致性的场景) +List users = Db.queryFromMaster("select * from user where id = ?", 123); +Record user = Db.findFirstFromMaster("select * from user where id = ?", 123); + +// 强制使用指定从库查询 +List users = Db.queryFromSlave(0, "select * from user"); // 使用第1个从库 +``` + +### 3. 查看读写分离状态 + +```java +// 获取读写分离状态信息 +String status = Db.getReadWriteSeparationStatus(); +System.out.println(status); +``` + +## 自动路由规则 + +### 读操作(路由到从库) + +以下 SQL 语句会自动路由到从库: +- `SELECT` 查询语句 +- `SHOW` 语句 +- `DESC` / `DESCRIBE` 语句 +- `EXPLAIN` 语句 + +对应的方法包括: +- `Db.find()`、`Db.findFirst()`、`Db.findById()` 等 +- `Db.query()`、`Db.queryFirst()`、`Db.queryXxx()` 等 +- `Db.paginate()` 分页查询 +- `Db.findByCache()` 缓存查询 + +### 写操作(强制使用主库) + +以下操作强制使用主库: +- `INSERT`、`UPDATE`、`DELETE` 语句 +- 所有事务操作 +- `Db.save()`、`Db.update()`、`Db.delete()` 等 +- `Db.tx()` 事务方法 + +## 性能优化建议 + +1. **合理配置从库数量**:根据读写比例配置适当数量的从库 +2. **使用连接池**:确保主从库都配置了合适的连接池参数 +3. **监控从库延迟**:定期检查主从同步延迟,避免读取到过期数据 +4. **强一致性场景**:对于需要强一致性的查询,使用 `queryFromMaster()` 方法 + +## 注意事项 + +1. **主从同步延迟**:从库可能存在数据同步延迟,对于实时性要求高的查询建议使用主库 +2. **事务一致性**:所有事务操作都在主库执行,确保数据一致性 +3. **配置格式**:从库配置必须以 `slave` 开头,后跟数字(如 `slave1`、`slave2`) +4. **故障处理**:从库连接失败时会自动回退到主库,不会影响业务正常运行 + +## 启动日志 + +系统启动时会输出读写分离状态信息: + +``` +[Db] 读写分离已启用,发现 2 个从库配置 +``` + +或 + +``` +[Db] 未发现从库配置,使用单库模式 +``` + +## 故障排查 + +如果读写分离功能异常,请检查: + +1. 配置文件中从库配置格式是否正确 +2. 从库连接信息是否正确 +3. 从库服务是否正常运行 +4. 网络连接是否正常 + +系统会在控制台输出相关错误信息,便于排查问题。 \ No newline at end of file diff --git a/Doc/RAG搭建/1、Elasticsearch安装配置文档.md b/Doc/RAG搭建/1、Elasticsearch安装配置文档.md new file mode 100644 index 00000000..6f6f2f92 --- /dev/null +++ b/Doc/RAG搭建/1、Elasticsearch安装配置文档.md @@ -0,0 +1,193 @@ +### 一、安装 $ES$ + +**1、下载安装包** + +进入官网下载$linux$安装包 [下载地址](https://www.elastic.co/cn/downloads/elasticsearch) + +![img](https://i-blog.csdnimg.cn/direct/04ae4c7f65fe475fb19e913eaf80ba04.png) + +**2、安装$JDK$$21$** + +```sh +sudo yum install java-21-openjdk-devel +echo 'export JAVA_HOME=/usr/lib/jvm/java-21-openjdk +export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc + +source ~/.bashrc +``` + +**3、上传文件到$linux$服务器** + +```sh +# 如果没有 rz 命令 先安装 +yum -y install lrzsz + +# rz 打开弹窗 选择下载好的文件 确认 在哪个目录下执行,就会上传到该目录下 +rz -be +``` + + **4、新建用户并设置密码** + +```sh +# 创建用户 +useradd elauser + +# 设置密码 符合密码规范 大写 + 小写 + 数字 + 特殊字符 + 大于八位 +passwd elauser + +#输入密码: +DsideaL@123 + +tar -zxvf elasticsearch-9.0.2-linux-x86_64.tar.gz +sudo chown -R elauser:elauser /usr/local/elasticsearch-9.0.2 +# 进入解压文件并编辑配置文件 +cd elasticsearch-9.0.2/config +vi elasticsearch.yml +# 修改数据目录和日志目录 +mkdir -p /usr/local/elasticsearch-9.0.2/data +mkdir -p /usr/local/elasticsearch-9.0.2/logs +``` + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623130022571.png) + +设置允许所有IP进行访问,在添加下面参数让$elasticsearch-head$插件可以访问$es$ + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623130217136.png) + +```yaml +network.host: 0.0.0.0 +http.cors.enabled: true +http.cors.allow-origin: "*" +``` + +**5、修改系统配置** + +```sh +# m.max_map_count 值太低 +# 临时解决方案(需要root权限) +sudo sysctl -w vm.max_map_count=262144 + +# 永久解决方案(需要root权限) +echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf +sudo sysctl -p + +# 验证是否有效 +sysctl vm.max_map_count +``` + +**6、启动** + +```sh +# 启动 +su - elauser + +cd /usr/local/elasticsearch-9.0.2/bin +# ./elasticsearch-keystore create + +# 启动 -d = damon 守护进程 +./elasticsearch -d + + +# 访问地址 +https://10.10.14.206:9200 + +# 日志文件 +/usr/local/elasticsearch-9.0.2/logs/elasticsearch.log +``` + + 弹出输入账号密码,这里需要重置下密码,再登录 进入安装目录的bin目录下 + +执行下面命令 就会在控制台打印出新密码 账号就是 elastic + +``` +./elasticsearch-reset-password -u elastic +``` + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623132315148.png) + +登录成功,完活。 + +```sh +elastic +jv9h8uwRrRxmDi1dq6u8 +``` + + + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623132417828.png) + +> **注意**:如果访问不到,请检查是否开启了$VPN$ + +### 二、安装$ik$中文分词插件 + +```bash +# 安装分词插件 +./bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/9.0.2 + +# 检查插件列表 +[elauser@maxkb elasticsearch-9.0.2]$ ./bin/elasticsearch-plugin list +analysis-ik +``` + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623133924355.png) + +## 三、安装 $Kibana$ + +**1、下载 $kibana$** + +```sh +# 下载地址 +https://www.elastic.co/downloads/past-releases/kibana-9-0-2 + +# 下载 +cd /usr/local +wget https://artifacts.elastic.co/downloads/kibana/kibana-9.0.2-linux-x86_64.tar.gz +tar -xvf kibana-9.0.2-linux-x86_64.tar.gz + +# 获取token +curl -k -X POST -u elastic "https://localhost:9200/_security/service/elastic/kibana/credential/token" +``` + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623142510684.png) + +```sh +# 返回的token +AAEAAWVsYXN0aWMva2liYW5hL3Rva2VuX2k4bHBtNWNCX2YxTVY1dzdTRjNIOkF5MC1FRDNQU + +# 编辑配置文件 +cd /usr/local/kibana-9.0.2 +vi config/kibana.yml +``` + +**内容** + +```yaml +server.port: 5601 +server.host: "0.0.0.0" +server.name: "mykibana" +elasticsearch.hosts: ["https://localhost:9200"] +elasticsearch.serviceAccountToken: "AAEAAWVsYXN0aWMva2liYW5hL3Rva2VuX2k4bHBtNWNCX2YxTVY1dzdTRjNIOkF5MC1FRDNQUWFPZmY2QmIxeTV4QWc" +elasticsearch.ssl.verificationMode: none +i18n.locale: "zh-CN" +xpack.security.encryptionKey: Hz*9yFFaPejHvCkhT*ddNx%WsBgxVSCQ # 自己随意生成的32位加密key +xpack.security.session.idleTimeout: "30m" +``` + +**3、启动$kibana$** + +```sh +nohup ./bin/kibana --allow-root & + +# 如果一直5601被 TIME_WAIT,可以结束它 +echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf +sysctl -p +``` + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623143049742.png) + +``` +elastic +jv9h8uwRrRxmDi1dq6u8 +``` + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623143126278.png) diff --git a/Doc/RAG搭建/2、FSCrawler安装配置文档.md b/Doc/RAG搭建/2、FSCrawler安装配置文档.md new file mode 100644 index 00000000..c0a2309c --- /dev/null +++ b/Doc/RAG搭建/2、FSCrawler安装配置文档.md @@ -0,0 +1,397 @@ +参考文档: + +```sh +# Elasticsearch FSCrawler 文档爬虫学习,请先看这一篇! +https://blog.csdn.net/laoyang360/article/details/138143195 +``` + + + +### 一、$FSCrawler$ 功能介绍 + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623144044965.png) + +FSCrawler 提供了一种高效的方法来自动化文件的索引过程,支持多种文件格式,并具备以下核心功能: + +多种文件支持:能够处理包括但不限于PDF、Microsoft Office文档、OpenOffice文档等多种格式。 + +文本提取:从上述文件中提取文本,利用 OCR 技术处理图像和扫描的文档。 + +元数据提取:自动提取文件的元数据,如作者、标题、关键词等。 + +更新和同步:监视文件夹变化,自动更新索引以反映新增、修改或删除的文件。 + +安全:支持使用用户名和密码对 Elasticsearch 进行安全连接。 + +扩展性:可以配置为处理大规模的数据集。 + +### 二、$FSCrawler$ 下载步骤指南 + +> **注**:需要开启$VPN$ + +```sh +https://github.com/dadoonet/fscrawler +# 下载 +wget https://s01.oss.sonatype.org/content/repositories/snapshots/fr/pilato/elasticsearch/crawler/fscrawler-distribution/2.10-SNAPSHOT/fscrawler-distribution-2.10-20250305.083042-479.zip +``` + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623143834374.png) + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623143841189.png) + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623143847053.png) + +​ 这里其实有个小细节,默认最新版本的安装包在页面的最后面,需要不断地下拉到底才能找到。 + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623144005774.png) + +### 三、$FSCrawler$ 安装指南 + +安装很简单,只需要解压下载的文件即可。 + +将安装包下载或者远程拷贝到 Linux 服务器。 + +**3.1 步骤1:解压 FSCrawler** + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623144317757.png) + +```sh +yum install unzip -y +unzip fscrawler-distribution-2.10-20250305.083042-479.zip +cd fscrawler-distribution-2.10-SNAPSHOT/ +``` + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623144504068.png) + +**3.2 步骤2:启动 FSCrawler** + +为了方便咱们在部署路径本地修改和维护配置文件,我们要指定一个本地路径,同时需要写上一个 job 名称。 + +具体命令行参考如下: + +```sh +mkdir test +bin/fscrawler --config_dir ./test fs_job_20240421 +``` + +执行截图参考如下: + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623144555300.png) + +此处有交互,要选择:"y" + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623144651788.png) + +**3.3 步骤3:修改配置文件** + +经过步骤 2 后,test 路径下会创建了名为:“fs_job_20240421”的 job 任务,目录结构如下图所示。 + +```sh +yum install tree -y + +tree test +``` + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623144755124.png) + +我们先解读一下_settings.yaml 各个字段的含义,然后再说明针对 8.X 版本如何修改。 + +配置内容主要包括 Elasticsearch 连接信息、文件夹路径、扫描间隔等,如下表格所示。 + +| 字段名 | 含义 | 使用范例 | +| ------------------------------ | -------------------------------------------------------- | ------------------------------ | +| name | FSCrawler 任务的名称,用于区分不同的索引任务 | name: "fs_job_20240421" | +| fs.url | 需要被索引的文件或目录的路径 | url: "/tmp/es" | +| fs.update_rate | 文件系统检查更新的频率,如15分钟检查一次 | update_rate: "15m" | +| fs.excludes | 定义哪些文件应该被排除在外的文件名模式列表(支持通配符) | excludes: ["*/~*"] | +| fs.json_support | 布尔值,决定是否解析文件中的JSON内容 | json_support: false | +| fs.filename_as_id | 布尔值,是否使用文件名作为Elasticsearch文档ID | filename_as_id: false | +| fs.add_filesize | 布尔值,决定是否将文件大小信息添加到索引中 | add_filesize: true" | +| fs.remove_deleted | 布尔值,决定是否从索引中删除已经在文件系统中删除的文件 | remove_deleted: true" | +| fs.add_as_inner_object | 布尔值,是否将文件信息作为内部对象添加 | add_as_inner_object: false" | +| fs.store_source | 布尔值,是否存储原始文件的内容 | store_source: false" | +| fs.index_content | 布尔值,决定是否索引文件内容 | index_content: true" | +| fs.attributes_support | 布尔值,是否索引文件的属性(如权限等信息) | attributes_support: false" | +| fs.raw_metadata | 布尔值,是否索引文件的原始元数据 | raw_metadata: false" | +| fs.xml_support | 布尔值,是否解析和索引XML文件 | xml_support: false" | +| fs.index_folders | 布尔值,是否索引目录结构 | index_folders: true" | +| fs.lang_detect | 布尔值,是否进行语言检测并索引 | lang_detect: false" | +| fs.continue_on_error | 布尔值,是否在遇到错误时继续执行 | continue_on_error: false" | +| fs.ocr.language | OCR处理的语言 | language: "eng" | +| fs.ocr.enabled | 布尔值,是否启用OCR功能 | enabled: true" | +| fs.ocr.pdf_strategy | OCR处理PDF文件的策略 | pdf_strategy: "ocr_and_text" | +| fs.follow_symlinks | 布尔值,是否跟随符号链接 | follow_symlinks: false" | +| elasticsearch.nodes.url | Elasticsearch节点的完整URL | url: "https://127.0.0.1:9200" | +| elasticsearch.bulk_size | 在单个批量请求中向Elasticsearch发送的最大文档数量 | bulk_size: 100" | +| elasticsearch.flush_interval | 批量操作的刷新间隔,确保数据定期被写入Elasticsearch | flush_interval: "5s" | +| elasticsearch.byte_size | 指定批量请求的最大字节大小 | byte_size: "10mb" | +| elasticsearch.ssl_verification | 布尔值 | | + +修改后的正确的可执行的配置如下: + +```yaml +name: "fs_job_2024" +fs: + url: "/mingyi_install/zhiwang_fs" + update_rate: "1m" + excludes: + - "*/~*" + json_support: false + filename_as_id: false + add_filesize: true + remove_deleted: true + add_as_inner_object: false + store_source: false + index_content: true + attributes_support: false + raw_metadata: false + xml_support: false + index_folders: true + lang_detect: false + continue_on_error: false + ocr: + language: "eng" + enabled: true + pdf_strategy: "ocr_and_text" + follow_symlinks: false +elasticsearch: + nodes: + - url: "https://127.0.0.1:9200" + bulk_size: 100 + flush_interval: "5s" + byte_size: "10mb" + ssl_verification: false + username: elastic + password: changeme +``` + +极简解读一下: + +``` +fs 相关的都是:文件源头相关配置,比如:url 代表的是文件存储的路径。 +而 elasticsearch 相关的都是:“目的端”,代表 Elasticsearch 集群相关配置。 +在 elasticsearch 部分如果不设置 index 相关,则同步到Elasticsearch 默认索引名为name下的 "fs_job_2024"名称。 +``` + +更多细节配置参考: + +```sh +https://fscrawler.readthedocs.io/en/latest/admin/fs/index.html#example-job-file-specification +``` + +> 9.X 版本安全需要设置用户名和密码,需要 https 通信。 + +**3.4 步骤 4: 运行 FSCrawler** + +在配置文件设置完毕后,使用命令行启动 FSCrawler,命令如下: + +```sh +bin/fscrawler --config_dir ./test fs_job_20240421 +``` + +再次执行,就能将本地文件写入 Elasticsearch。 + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623145420075.png) + +在 kibana Dev-tool 中,我们能看到两个索引。 + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623145440035.png) + + +其一,索引名:fs_job_2024 就是 _settings.yaml 配置文件中的最开头的 name。 + +其存储数据如下,基本上文件想的信息,比如:文件内容、文件基础数据(meta)、文件创建/修改时间、扩展名、路径等全部都包含了。 + + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623145450747.png) + +其二,索引名:fs_job_2024_folder 是基于咱们定义的 name 自动生成和创建的。 + +存储的是配置的文件路径相关的基础信息。 + +![7903be0e80ac4b5bcd103bc875bc9c1e.png](https://i-blog.csdnimg.cn/blog_migrate/162ba0377255c72230137899cab4834f.png) + +**3.5 步骤 5: 按业务需求修改 Mapping,重新导入数据。** +Mapping 映射是默认生成的。 + +我们朴素的认知:倒排索引的不可变导致我们重新修改 Mapping 后必须重新导入数据。 + +但,默认的Mapping可能达不到业务的预期,所以,咱们必须得修改。 + +究竟如何改呢?——这个问题我反复验证几个不同方案超过三个小时,最后总结出如下核心步骤。 + +第一步:先同步讲数据写入 Elasticsearch +同步骤 3.4 所示。 + +```sh +bin/fscrawler --config_dir ./test fs_job_20240421 +``` + +这个时候,如官方文档所述: + +https://fscrawler.readthedocs.io/en/latest/admin/fs/elasticsearch.html#mappings + +在 Elasticsearch 集群中会多了如下的索引模版和组件模版。 + +| 模版类型 | 模版名称 | +| -------- | ------------------------------------ | +| 索引模版 | fscrawler_docs_fs_job_2024 | +| 索引模版 | fscrawler_folders_fs_job_2024_folder | +| 索引模版 | fscrawler_folders_fs_job_folder | +| 索引模版 | fscrawler_docs_fs_job | +| 组件模版 | fscrawler_settings_total_fields | +| 组件模版 | fscrawler_mapping_file | +| 组件模版 | fscrawler_mapping_attributes | +| 组件模版 | fscrawler_mapping_path | +| 组件模版 | fscrawler_alias | +| 组件模版 | fscrawler_mapping_meta | +| 组件模版 | fscrawler_settings_shards | +| 组件模版 | fscrawler_mapping_content | +| 组件模版 | fscrawler_mapping_attachment | + +如下指令我和可以看出,一个索引模版由多个组件模版组成。这是 Elasticsearch 模版的最新格式。 + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623145658987.png) + +如上表格内容都是 fscrawler 在导入环节自动生成的。 + +第二步:禁用 FSCrawler 的自动模板推送 +在我们之前的 FSCrawler 配置文件 _settings.yaml 中,设置 push_templates 为 false。 + +该设置阻止 FSCrawler 自动创建和更新 Elasticsearch 的索引模板。 + +配置示例如下: + +```yaml +name: "fs_job_2024" +elasticsearch: + push_templates: false +``` + +##### 第三步:按需修改组件模版的部分参数 + +在禁用自动模板推送后,我们需要手动更新或创建所需的 component template,以包含中文分词器。 + +例如,如果我们想对内容字段使用中文分词器,我们可以更新 fscrawler_mapping_content 模板如下: + +```yaml +PUT _component_template/fscrawler_mapping_content +{ + "template": { + "mappings": { + "properties": { + "content": { + "type": "text", + "analyzer": "ik_max_word" + } + } + } + } +} +######省略其他定制需求######## +``` + +##### 第四步: 删除现有的索引 + +如果在 Elasticsearch 中已经存在由 FSCrawler 创建的索引,我们需要删除这些索引,因为索引的 mapping 一旦创建后不能直接修改(只能增加字段)。删除索引的命令如下: + +```yaml +DELETE fs_job_2024_folder +DELETE fs_job_2024 +``` + +请注意,这将删除所有相关数据,因此请确保我们已经备份了任何重要数据。 + +**第五步: 重启 FSCrawler** +在更新了 component template 并删除了旧索引后,重新启动 FSCrawler。 + +现在,FSCrawler 将使用我们更新的 template 来创建新的索引,而这次新的索引将包含我们设置的中文分词器。 +``` +bin/fscrawler --config_dir ./test fs_job_20240421 +``` + +##### 第六步:验证 Mapping + +验证新创建的索引是否使用了正确的 mapping 设置。我们可以使用以下命令来查看索引的 mapping: + +``` +GET fs_job_2024/_mapping +``` + +确保返回的信息中包含了我们配置的中文分词器。 + +![6b5a42f168ac2819cfc1d58795026f0b.png](https://i-blog.csdnimg.cn/blog_migrate/dffc17fdb1c5d810509b9f05b46d2606.png) + +通过以上步骤,我们可以确保 FSCrawler 不会覆盖我们自定义的 Mapping,同时能够使用中文分词器来索引文档内容。 + +这样配置后,FSCrawler 在爬取文档到 Elasticsearch 的过程中,就会使用咱们刚才指定的中文分词器进行文本分析。 + + + +### 四、FSCrawler 常见使用错误与解决方案 +在使用 FSCrawler 进行文件索引时,我们可能会遇到各种问题。本小节将列出一些常见的错误以及相应的解决方案,帮助我们更有效地使用 FSCrawler。 + +**4.1 问题一:索引大文件和小文件时出现错误** + +问题描述:当索引包含大小差异很大的文件时,可能会遇到“HTTP Entity Too Large”错误 。 + +解决方案:此错误通常由 Elasticsearch 的 HTTP 请求体大小限制引起。我们可以通过增加服务器的接收限制来解决这个问题: + +1.在 Elasticsearch 的配置文件 elasticsearch.yml 中,设置 http.max_content_length 的值更高(例如 200mb,缺省100mb)。 + +2.重启 Elasticsearch 服务以使配置生效。 + +3.重新启动 FSCrawler 并再次尝试索引操作。 + + + +``` +http.max_content_length: 200mb +``` + + +参见: + +https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html + +**4.2 问题二:索引文件夹未在最新版本中创建** + + + +问题描述:在使用最新版本的 FSCrawler 时,文件夹索引没有被创建 。 + +解决方案:这可能是由于 FSCrawler 的配置问题或是 Elasticsearch 版本兼容性问题。尝试以下方法: + +1.检查 ~/.fscrawler/{job_name}/_settings.json 文件中的 fs.index_folders 设置,确保其值为 true。 + +2.确认我们的 Elasticsearch 版本与 FSCrawler 的版本兼容。在一些情况下,FSCrawler 的新版本可能需要更新的 Elasticsearch 版本。 + +记得在进行任何配置修改或软件升级后,都应该重启相关服务,以确保所有的更改能够正确应用。 + + + +**4.3 问题三:反复闪退问题** + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/{year}/{month}/{md5}.{extName}/20250623150018611.png) + +每次都要求重新创建文件,即便已经反复确认创建成功了。这个我花了3个小时左右验证,是版本问题,需要咱们选择 2.10 最新日期的版本! + +**4.4 问题四:python Flask 连接报错——security_exception** + +``` +elasticsearch.exceptions.AuthenticationException: AuthenticationException(401, 'security_exception', 'missing authentication credentials for REST request [/fs_job/_search]') +``` + +Python 版本问题,python 要3.10 以上!否则会报如上错误。 + + + +### 五、注意事项及小结 +安全配置:在连接到 Elasticsearch 时,如果我们的集群配置了安全认证,确保我们的配置文件中填写了正确的用户名和密码。 + +OCR 设置:如果需要从图像或PDF文档中提取文本,请确保我们的系统上安装了 Tesseract OCR,并正确配置在 FSCrawler 设置中。 + +性能优化:对于大数据量的文件处理,考虑适当增加 JVM 的内存分配,以及使用 SSD 硬盘来提升处理速度。 + +错误处理:FSCrawler 会在控制台输出运行日志,如果遇到问题,日志是解决问题的第一手资料。 + diff --git a/Doc/RAG搭建/参考文档.txt b/Doc/RAG搭建/参考文档.txt new file mode 100644 index 00000000..895f385b --- /dev/null +++ b/Doc/RAG搭建/参考文档.txt @@ -0,0 +1,7 @@ +https://blog.csdn.net/weixin_68792404/article/details/147554090 + +# 基于 Qwen2.5-14B + Elasticsearch RAG 的大数据知识库智能问答系统 +https://jishuzhan.net/article/1898217914180947969 + +# Elasticsearch FSCrawler 文档爬虫学习,请先看这一篇! +https://blog.csdn.net/laoyang360/article/details/138143195 \ No newline at end of file diff --git a/Doc/原版Db.java b/Doc/原版Db.java new file mode 100644 index 00000000..f6e57286 --- /dev/null +++ b/Doc/原版Db.java @@ -0,0 +1,872 @@ +/** + * Copyright (c) 2011-2025, James Zhan 詹波 (jfinal@126.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.jfinal.plugin.activerecord; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.sql.Connection; +import java.sql.SQLException; +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; +import java.util.concurrent.Future; +import java.util.function.Function; +import com.jfinal.kit.SyncWriteMap; + +/** + * Db. Powerful database query and update tool box. + */ +@SuppressWarnings("rawtypes") +public class Db { + + private static DbPro MAIN = null; + private static final Map cache = new SyncWriteMap<>(32, 0.25F); + + /** + * for DbKit.addConfig(configName) + */ + static void init(String configName) { + MAIN = DbKit.getConfig(configName).dbProFactory.getDbPro(configName); // new DbPro(configName); + cache.put(configName, MAIN); + } + + /** + * for DbKit.removeConfig(configName) + */ + static void removeDbProWithConfig(String configName) { + if (MAIN != null && MAIN.config.getName().equals(configName)) { + MAIN = null; + } + cache.remove(configName); + } + + public static DbPro use(String configName) { + DbPro result = cache.get(configName); + if (result == null) { + Config config = DbKit.getConfig(configName); + if (config == null) { + throw new IllegalArgumentException("Config not found by configName: " + configName); + } + result = config.dbProFactory.getDbPro(configName); // new DbPro(configName); + cache.put(configName, result); + } + return result; + } + + public static DbPro use() { + return MAIN; + } + + static List query(Config config, Connection conn, String sql, Object... paras) throws SQLException { + return MAIN.query(config, conn, sql, paras); + } + + /** + * sql paras 查询,从 JDBC 原样取值且不封装到 Record 对象 + */ + public static List query(String sql, Object... paras) { + return MAIN.query(sql, paras); + } + + /** + * @see #query(String, Object...) + * @param sql an SQL statement + */ + public static List query(String sql) { + return MAIN.query(sql); + } + + /** + * Execute sql query and return the first result. I recommend add "limit 1" in your sql. + * @param sql an SQL statement that may contain one or more '?' IN parameter placeholders + * @param paras the parameters of sql + * @return Object[] if your sql has select more than one column, + * and it return Object if your sql has select only one column. + */ + public static T queryFirst(String sql, Object... paras) { + return MAIN.queryFirst(sql, paras); + } + + /** + * @see #queryFirst(String, Object...) + * @param sql an SQL statement + */ + public static T queryFirst(String sql) { + return MAIN.queryFirst(sql); + } + + // 26 queryXxx method below ----------------------------------------------- + /** + * Execute sql query just return one column. + * @param the type of the column that in your sql's select statement + * @param sql an SQL statement that may contain one or more '?' IN parameter placeholders + * @param paras the parameters of sql + * @return T + */ + public static T queryColumn(String sql, Object... paras) { + return MAIN.queryColumn(sql, paras); + } + + public static T queryColumn(String sql) { + return MAIN.queryColumn(sql); + } + + public static String queryStr(String sql, Object... paras) { + return MAIN.queryStr(sql, paras); + } + + public static String queryStr(String sql) { + return MAIN.queryStr(sql); + } + + public static Integer queryInt(String sql, Object... paras) { + return MAIN.queryInt(sql, paras); + } + + public static Integer queryInt(String sql) { + return MAIN.queryInt(sql); + } + + public static Long queryLong(String sql, Object... paras) { + return MAIN.queryLong(sql, paras); + } + + public static Long queryLong(String sql) { + return MAIN.queryLong(sql); + } + + public static Double queryDouble(String sql, Object... paras) { + return MAIN.queryDouble(sql, paras); + } + + public static Double queryDouble(String sql) { + return MAIN.queryDouble(sql); + } + + public static Float queryFloat(String sql, Object... paras) { + return MAIN.queryFloat(sql, paras); + } + + public static Float queryFloat(String sql) { + return MAIN.queryFloat(sql); + } + + public static BigDecimal queryBigDecimal(String sql, Object... paras) { + return MAIN.queryBigDecimal(sql, paras); + } + + public static BigDecimal queryBigDecimal(String sql) { + return MAIN.queryBigDecimal(sql); + } + + public static BigInteger queryBigInteger(String sql, Object... paras) { + return MAIN.queryBigInteger(sql, paras); + } + + public static BigInteger queryBigInteger(String sql) { + return MAIN.queryBigInteger(sql); + } + + public static byte[] queryBytes(String sql, Object... paras) { + return MAIN.queryBytes(sql, paras); + } + + public static byte[] queryBytes(String sql) { + return MAIN.queryBytes(sql); + } + + public static java.util.Date queryDate(String sql, Object... paras) { + return MAIN.queryDate(sql, paras); + } + + public static java.util.Date queryDate(String sql) { + return MAIN.queryDate(sql); + } + + public static LocalDateTime queryLocalDateTime(String sql, Object... paras) { + return MAIN.queryLocalDateTime(sql, paras); + } + + public static LocalDateTime queryLocalDateTime(String sql) { + return MAIN.queryLocalDateTime(sql); + } + + public static java.sql.Time queryTime(String sql, Object... paras) { + return MAIN.queryTime(sql, paras); + } + + public static java.sql.Time queryTime(String sql) { + return MAIN.queryTime(sql); + } + + public static java.sql.Timestamp queryTimestamp(String sql, Object... paras) { + return MAIN.queryTimestamp(sql, paras); + } + + public static java.sql.Timestamp queryTimestamp(String sql) { + return MAIN.queryTimestamp(sql); + } + + public static Boolean queryBoolean(String sql, Object... paras) { + return MAIN.queryBoolean(sql, paras); + } + + public static Boolean queryBoolean(String sql) { + return MAIN.queryBoolean(sql); + } + + public static Short queryShort(String sql, Object... paras) { + return MAIN.queryShort(sql, paras); + } + + public static Short queryShort(String sql) { + return MAIN.queryShort(sql); + } + + public static Byte queryByte(String sql, Object... paras) { + return MAIN.queryByte(sql, paras); + } + + public static Byte queryByte(String sql) { + return MAIN.queryByte(sql); + } + + public static Number queryNumber(String sql, Object... paras) { + return MAIN.queryNumber(sql, paras); + } + + public static Number queryNumber(String sql) { + return MAIN.queryNumber(sql); + } + // 26 queryXxx method under ----------------------------------------------- + + /** + * Execute sql update + */ + static int update(Config config, Connection conn, String sql, Object... paras) throws SQLException { + return MAIN.update(config, conn, sql, paras); + } + + /** + * Execute update, insert or delete sql statement. + * @param sql an SQL statement that may contain one or more '?' IN parameter placeholders + * @param paras the parameters of sql + * @return either the row count for INSERT, UPDATE, + * or DELETE statements, or 0 for SQL statements + * that return nothing + */ + public static int update(String sql, Object... paras) { + return MAIN.update(sql, paras); + } + + /** + * @see #update(String, Object...) + * @param sql an SQL statement + */ + public static int update(String sql) { + return MAIN.update(sql); + } + + static List find(Config config, Connection conn, String sql, Object... paras) throws SQLException { + return MAIN.find(config, conn, sql, paras); + } + + /** + * sql paras 查询,数据封装到 Record 对象 + */ + public static List find(String sql, Object... paras) { + return MAIN.find(sql, paras); + } + + /** + * @see #find(String, Object...) + * @param sql the sql statement + */ + public static List find(String sql) { + return MAIN.find(sql); + } + + public static List findAll(String tableName) { + return MAIN.findAll(tableName); + } + + /** + * Find first record. I recommend add "limit 1" in your sql. + * @param sql an SQL statement that may contain one or more '?' IN parameter placeholders + * @param paras the parameters of sql + * @return the Record object + */ + public static Record findFirst(String sql, Object... paras) { + return MAIN.findFirst(sql, paras); + } + + /** + * @see #findFirst(String, Object...) + * @param sql an SQL statement + */ + public static Record findFirst(String sql) { + return MAIN.findFirst(sql); + } + + /** + * Find record by id with default primary key. + *
+	 * Example:
+	 * Record user = Db.findById("user", 15);
+	 * 
+ * @param tableName the table name of the table + * @param idValue the id value of the record + */ + public static Record findById(String tableName, Object idValue) { + return MAIN.findById(tableName, idValue); + } + + public static Record findById(String tableName, String primaryKey, Object idValue) { + return MAIN.findById(tableName, primaryKey, idValue); + } + + /** + * Find record by ids. + *
+	 * Example:
+	 * Record user = Db.findByIds("user", "user_id", 123);
+	 * Record userRole = Db.findByIds("user_role", "user_id, role_id", 123, 456);
+	 * 
+ * @param tableName the table name of the table + * @param primaryKey the primary key of the table, composite primary key is separated by comma character: "," + * @param idValues the id value of the record, it can be composite id values + */ + public static Record findByIds(String tableName, String primaryKey, Object... idValues) { + return MAIN.findByIds(tableName, primaryKey, idValues); + } + + /** + * Delete record by id with default primary key. + *
+	 * Example:
+	 * Db.deleteById("user", 15);
+	 * 
+ * @param tableName the table name of the table + * @param idValue the id value of the record + * @return true if delete succeed otherwise false + */ + public static boolean deleteById(String tableName, Object idValue) { + return MAIN.deleteById(tableName, idValue); + } + + public static boolean deleteById(String tableName, String primaryKey, Object idValue) { + return MAIN.deleteById(tableName, primaryKey, idValue); + } + + /** + * Delete record by ids. + *
+	 * Example:
+	 * Db.deleteByIds("user", "user_id", 15);
+	 * Db.deleteByIds("user_role", "user_id, role_id", 123, 456);
+	 * 
+ * @param tableName the table name of the table + * @param primaryKey the primary key of the table, composite primary key is separated by comma character: "," + * @param idValues the id value of the record, it can be composite id values + * @return true if delete succeed otherwise false + */ + public static boolean deleteByIds(String tableName, String primaryKey, Object... idValues) { + return MAIN.deleteByIds(tableName, primaryKey, idValues); + } + + /** + * Delete record. + *
+	 * Example:
+	 * boolean succeed = Db.delete("user", "id", user);
+	 * 
+ * @param tableName the table name of the table + * @param primaryKey the primary key of the table, composite primary key is separated by comma character: "," + * @param record the record + * @return true if delete succeed otherwise false + */ + public static boolean delete(String tableName, String primaryKey, Record record) { + return MAIN.delete(tableName, primaryKey, record); + } + + /** + *
+	 * Example:
+	 * boolean succeed = Db.delete("user", user);
+	 * 
+ * @see #delete(String, String, Record) + */ + public static boolean delete(String tableName, Record record) { + return MAIN.delete(tableName, record); + } + + /** + * Execute delete sql statement. + * @param sql an SQL statement that may contain one or more '?' IN parameter placeholders + * @param paras the parameters of sql + * @return the row count for DELETE statements, or 0 for SQL statements + * that return nothing + */ + public static int delete(String sql, Object... paras) { + return MAIN.delete(sql, paras); + } + + /** + * @see #delete(String, Object...) + * @param sql an SQL statement + */ + public static int delete(String sql) { + return MAIN.delete(sql); + } + + static Page paginate(Config config, Connection conn, int pageNumber, int pageSize, String select, String sqlExceptSelect, Object... paras) throws SQLException { + return MAIN.paginate(config, conn, pageNumber, pageSize, select, sqlExceptSelect, paras); + } + + /** + * Paginate. + * @param pageNumber the page number + * @param pageSize the page size + * @param select the select part of the sql statement + * @param sqlExceptSelect the sql statement excluded select part + * @param paras the parameters of sql + * @return the Page object + */ + public static Page paginate(int pageNumber, int pageSize, String select, String sqlExceptSelect, Object... paras) { + return MAIN.paginate(pageNumber, pageSize, select, sqlExceptSelect, paras); + } + + public static Page paginate(int pageNumber, int pageSize, boolean isGroupBySql, String select, String sqlExceptSelect, Object... paras) { + return MAIN.paginate(pageNumber, pageSize, isGroupBySql, select, sqlExceptSelect, paras); + } + + /** + * 分页 + */ + public static Page paginate(int pageNumber, int pageSize, String select, String sqlExceptSelect) { + return MAIN.paginate(pageNumber, pageSize, select, sqlExceptSelect); + } + + public static Page paginateByFullSql(int pageNumber, int pageSize, String totalRowSql, String findSql, Object... paras) { + return MAIN.paginateByFullSql(pageNumber, pageSize, totalRowSql, findSql, paras); + } + + public static Page paginateByFullSql(int pageNumber, int pageSize, boolean isGroupBySql, String totalRowSql, String findSql, Object... paras) { + return MAIN.paginateByFullSql(pageNumber, pageSize, isGroupBySql, totalRowSql, findSql, paras); + } + + static boolean save(Config config, Connection conn, String tableName, String primaryKey, Record record) throws SQLException { + return MAIN.save(config, conn, tableName, primaryKey, record); + } + + /** + * Save record. + *
+	 * Example:
+	 * Record userRole = new Record().set("user_id", 123).set("role_id", 456);
+	 * Db.save("user_role", "user_id, role_id", userRole);
+	 * 
+ * @param tableName the table name of the table + * @param primaryKey the primary key of the table, composite primary key is separated by comma character: "," + * @param record the record will be saved + * @return true if save succeed otherwise false + */ + public static boolean save(String tableName, String primaryKey, Record record) { + return MAIN.save(tableName, primaryKey, record); + } + + /** + * @see #save(String, String, Record) + */ + public static boolean save(String tableName, Record record) { + return MAIN.save(tableName, record); + } + + static boolean update(Config config, Connection conn, String tableName, String primaryKey, Record record) throws SQLException { + return MAIN.update(config, conn, tableName, primaryKey, record); + } + + /** + * Update Record. + *
+	 * Example:
+	 * Db.update("user_role", "user_id, role_id", record);
+	 * 
+ * @param tableName the table name of the Record save to + * @param primaryKey the primary key of the table, composite primary key is separated by comma character: "," + * @param record the Record object + * @return true if update succeed otherwise false + */ + public static boolean update(String tableName, String primaryKey, Record record) { + return MAIN.update(tableName, primaryKey, record); + } + + /** + * Update record with default primary key. + *
+	 * Example:
+	 * Db.update("user", record);
+	 * 
+ * @see #update(String, String, Record) + */ + public static boolean update(String tableName, Record record) { + return MAIN.update(tableName, record); + } + + /** + * @see #execute(Config, ICallback) + */ + public static Object execute(ICallback callback) { + return MAIN.execute(callback); + } + + /** + * Execute callback. It is useful when all the API can not satisfy your requirement. + * @param config the Config object + * @param callback the ICallback interface + */ + static Object execute(Config config, ICallback callback) { + return MAIN.execute(config, callback); + } + + /** + * Execute transaction. + * @param config the Config object + * @param transactionLevel the transaction level + * @param atom the atom operation + * @return true if transaction executing succeed otherwise false + */ + static boolean tx(Config config, int transactionLevel, IAtom atom) { + return MAIN.tx(config, transactionLevel, atom); + } + + /** + * Execute transaction with default transaction level. + * @see #tx(int, IAtom) + */ + public static boolean tx(IAtom atom) { + return MAIN.tx(atom); + } + + public static boolean tx(int transactionLevel, IAtom atom) { + return MAIN.tx(transactionLevel, atom); + } + + /** + * 主要用于嵌套事务场景 + * + * 实例:https://jfinal.com/feedback/4008 + * + * 默认情况下嵌套事务会被合并成为一个事务,那么内层与外层任何地方回滚事务 + * 所有嵌套层都将回滚事务,也就是说嵌套事务无法独立提交与回滚 + * + * 使用 txInNewThread(...) 方法可以实现层之间的事务控制的独立性 + * 由于事务处理是将 Connection 绑定到线程上的,所以 txInNewThread(...) + * 通过建立新线程来实现嵌套事务的独立控制 + */ + public static Future txInNewThread(IAtom atom) { + return MAIN.txInNewThread(atom); + } + + public static Future txInNewThread(int transactionLevel, IAtom atom) { + return MAIN.txInNewThread(transactionLevel, atom); + } + + /** + * Find Record by cache. + * @see #find(String, Object...) + * @param cacheName the cache name + * @param key the key used to get date from cache + * @return the list of Record + */ + public static List findByCache(String cacheName, Object key, String sql, Object... paras) { + return MAIN.findByCache(cacheName, key, sql, paras); + } + + /** + * @see #findByCache(String, Object, String, Object...) + */ + public static List findByCache(String cacheName, Object key, String sql) { + return MAIN.findByCache(cacheName, key, sql); + } + + /** + * Find first record by cache. I recommend add "limit 1" in your sql. + * @see #findFirst(String, Object...) + * @param cacheName the cache name + * @param key the key used to get date from cache + * @param sql an SQL statement that may contain one or more '?' IN parameter placeholders + * @param paras the parameters of sql + * @return the Record object + */ + public static Record findFirstByCache(String cacheName, Object key, String sql, Object... paras) { + return MAIN.findFirstByCache(cacheName, key, sql, paras); + } + + /** + * @see #findFirstByCache(String, Object, String, Object...) + */ + public static Record findFirstByCache(String cacheName, Object key, String sql) { + return MAIN.findFirstByCache(cacheName, key, sql); + } + + /** + * Paginate by cache. + * @see #paginate(int, int, String, String, Object...) + * @return Page + */ + public static Page paginateByCache(String cacheName, Object key, int pageNumber, int pageSize, String select, String sqlExceptSelect, Object... paras) { + return MAIN.paginateByCache(cacheName, key, pageNumber, pageSize, select, sqlExceptSelect, paras); + } + + public static Page paginateByCache(String cacheName, Object key, int pageNumber, int pageSize, boolean isGroupBySql, String select, String sqlExceptSelect, Object... paras) { + return MAIN.paginateByCache(cacheName, key, pageNumber, pageSize, isGroupBySql, select, sqlExceptSelect, paras); + } + + /** + * @see #paginateByCache(String, Object, int, int, String, String, Object...) + */ + public static Page paginateByCache(String cacheName, Object key, int pageNumber, int pageSize, String select, String sqlExceptSelect) { + return MAIN.paginateByCache(cacheName, key, pageNumber, pageSize, select, sqlExceptSelect); + } + + /** + * @see DbPro#batch(String, Object[][], int) + */ + public static int[] batch(String sql, Object[][] paras, int batchSize) { + return MAIN.batch(sql, paras, batchSize); + } + + /** + * @see DbPro#batch(String, String, List, int) + */ + public static int[] batch(String sql, String columns, List modelOrRecordList, int batchSize) { + return MAIN.batch(sql, columns, modelOrRecordList, batchSize); + } + + /** + * @see DbPro#batch(List, int) + */ + public static int[] batch(List sqlList, int batchSize) { + return MAIN.batch(sqlList, batchSize); + } + + /** + * @see DbPro#batchSave(List, int) + */ + public static int[] batchSave(List modelList, int batchSize) { + return MAIN.batchSave(modelList, batchSize); + } + + /** + * @see DbPro#batchSave(String, List, int) + */ + public static int[] batchSave(String tableName, List recordList, int batchSize) { + return MAIN.batchSave(tableName, recordList, batchSize); + } + + /** + * @see DbPro#batchUpdate(List, int) + */ + public static int[] batchUpdate(List modelList, int batchSize) { + return MAIN.batchUpdate(modelList, batchSize); + } + + /** + * @see DbPro#batchUpdate(String, String, List, int) + */ + public static int[] batchUpdate(String tableName, String primaryKey, List recordList, int batchSize) { + return MAIN.batchUpdate(tableName, primaryKey, recordList, batchSize); + } + + /** + * @see DbPro#batchUpdate(String, List, int) + */ + public static int[] batchUpdate(String tableName, List recordList, int batchSize) { + return MAIN.batchUpdate(tableName, recordList, batchSize); + } + + public static String getSql(String key) { + return MAIN.getSql(key); + } + + // 支持传入变量用于 sql 生成。为了避免用户将参数拼接在 sql 中引起 sql 注入风险,只在 SqlKit 中开放该功能 + // public static String getSql(String key, Map data) { + // return MAIN.getSql(key, data); + // } + + public static SqlPara getSqlPara(String key, Record record) { + return MAIN.getSqlPara(key, record); + } + + public static SqlPara getSqlPara(String key, Model model) { + return MAIN.getSqlPara(key, model); + } + + public static SqlPara getSqlPara(String key, Map data) { + return MAIN.getSqlPara(key, data); + } + + public static SqlPara getSqlPara(String key, Object... paras) { + return MAIN.getSqlPara(key, paras); + } + + public static SqlPara getSqlParaByString(String content, Map data) { + return MAIN.getSqlParaByString(content, data); + } + + public static SqlPara getSqlParaByString(String content, Object... paras) { + return MAIN.getSqlParaByString(content, paras); + } + + public static List find(SqlPara sqlPara) { + return MAIN.find(sqlPara); + } + + public static Record findFirst(SqlPara sqlPara) { + return MAIN.findFirst(sqlPara); + } + + public static int update(SqlPara sqlPara) { + return MAIN.update(sqlPara); + } + + public static Page paginate(int pageNumber, int pageSize, SqlPara sqlPara) { + return MAIN.paginate(pageNumber, pageSize, sqlPara); + } + + public static Page paginate(int pageNumber, int pageSize, boolean isGroupBySql, SqlPara sqlPara) { + return MAIN.paginate(pageNumber, pageSize, isGroupBySql, sqlPara); + } + + // --------- + + /** + * 迭代处理每一个查询出来的 Record 对象 + *
+	 * 例子:
+	 * Db.each(record -> {
+	 *    // 处理 record 的代码在此
+	 *
+	 *    // 返回 true 继续循环处理下一条数据,返回 false 立即终止循环
+	 *    return true;
+	 * }, sql, paras);
+	 * 
+ */ + public static void each(Function func, String sql, Object... paras) { + MAIN.each(func, sql, paras); + } + + // --------- + + /** + * 使用 sql 模板进行查询,可以省去 Db.getSqlPara(...) 调用 + * + *
+	 * 例子:
+	 * Db.template("blog.find", Kv.of("id", 123).find();
+	 * 
+ */ + public static DbTemplate template(String key, Map data) { + return MAIN.template(key, data); + } + + /** + * 使用 sql 模板进行查询,可以省去 Db.getSqlPara(...) 调用 + * + *
+	 * 例子:
+	 * Db.template("blog.find", 123).find();
+	 * 
+ */ + public static DbTemplate template(String key, Object... paras) { + return MAIN.template(key, paras); + } + + // --------- + + /** + * 使用字符串变量作为 sql 模板进行查询,可省去外部 sql 文件来使用 + * sql 模板功能 + * + *
+	 * 例子:
+	 * String sql = "select * from blog where id = #para(id)";
+	 * Db.templateByString(sql, Kv.of("id", 123).find();
+	 * 
+ */ + public static DbTemplate templateByString(String content, Map data) { + return MAIN.templateByString(content, data); + } + + /** + * 使用字符串变量作为 sql 模板进行查询,可省去外部 sql 文件来使用 + * sql 模板功能 + * + *
+	 * 例子:
+	 * String sql = "select * from blog where id = #para(0)";
+	 * Db.templateByString(sql, 123).find();
+	 * 
+ */ + public static DbTemplate templateByString(String content, Object... paras) { + return MAIN.templateByString(content, paras); + } + + // --------- + + /** + * 新版本事务处理,支持任意返回值、手动回滚事务、返回值指示回事务 + * + *
+	 * 回滚事务的方法:
+	 * 1:调用 transaction 参数的 rollback 手动回滚,例如:
+	 *    Db.transaction( tx -> {
+	 *        tx.rollback(); 	// 手动回滚事务
+	 *    });
+	 *
+	 * 2:返回值类型实现 TransactionRollbackDecision 接口,例如:
+	 *    public class Ret implements TransactionRollbackDecision {
+	 *        int code;
+	 *        public boolean shouldRollback() {
+	 *            return code != 200;
+	 *        }
+	 *        // ... 其它代码省略
+	 *    }
+	 *
+	 *    Db.transaction( tx -> {
+	 *        return new Ret().code(500);
+	 *    });
+	 *
+	 * 
+ */ + public static R transaction(TransactionAtom atom) { + return MAIN.transaction(atom); + } + + /** + * 新版本事务处理,支持任意返回值、手动回滚事务、返回值指示回事务 + * + * 注意:事务回滚方式与 transaction(TransactionAtom atom) 方法完全一样 + */ + public static R transaction(int transactionLevel, TransactionAtom atom) { + return MAIN.transaction(transactionLevel, atom); + } +} + + + diff --git a/dsAi/pom.xml b/dsAi/pom.xml index 46c6992c..27723beb 100644 --- a/dsAi/pom.xml +++ b/dsAi/pom.xml @@ -12,64 +12,22 @@ 1.0 - - - com.jfinal - jfinal - ${jfinal.version} - - - com.jfinal - jfinal-undertow - ${jfinal-undertow.version} - - - org.slf4j - slf4j-api - - - org.slf4j - slf4j-simple - - - - - com.jfinal - cos - ${jfinal-cos.version} - com.auth0 java-jwt - 4.4.0 + ${java-jwt.version} org.apache.rocketmq rocketmq-client - 5.3.0 + ${rocketmq-client.version} org.apache.httpcomponents httpmime - 4.5.14 - - - commons-io - commons-io - 2.15.0 - - - - com.alibaba - druid - ${druid.version} - - - com.mysql - mysql-connector-j - ${mysql.version} + ${httpmime.version} @@ -86,84 +44,6 @@ ${japidocs.version} - - - - org.slf4j - slf4j-api - ${slf4j.version} - - - - - - org.slf4j - slf4j-api - ${slf4j.version} - - - - - ch.qos.logback - logback-classic - ${logback.version} - - - ch.qos.logback - logback-core - ${logback.version} - - - ch.qos.logback - logback-access - ${logback.version} - - - - com.alibaba - fastjson - ${fastjson.version} - - - - - cn.hutool - hutool-all - ${hutool.version} - - - org.jsoup - jsoup - ${jsoup.version} - - - commons-io - commons-io - ${commons-io.version} - - - org.apache.commons - commons-email - ${commons-email.version} - - - org.apache.commons - commons-lang3 - ${commons-lang3.version} - - - org.dom4j - dom4j - ${dom4j.version} - - - - - redis.clients - jedis - ${jedis.version} - - cn.idev.excel @@ -178,31 +58,15 @@ ${snakeyaml.version} - - - io.jsonwebtoken - jjwt-api - ${jsonwebtoken.version} - - - io.jsonwebtoken - jjwt-impl - ${jsonwebtoken.version} - runtime - - - io.jsonwebtoken - jjwt-jackson - 0.11.5 - runtime - - + + org.projectlombok lombok ${lombok.version} provided + com.dsideal dsUtils diff --git a/dsAi/src/main/java/com/dsideal/Res/AiApplication.java b/dsAi/src/main/java/com/dsideal/Ai/AiApplication.java similarity index 89% rename from dsAi/src/main/java/com/dsideal/Res/AiApplication.java rename to dsAi/src/main/java/com/dsideal/Ai/AiApplication.java index f3798511..faa83a7f 100644 --- a/dsAi/src/main/java/com/dsideal/Res/AiApplication.java +++ b/dsAi/src/main/java/com/dsideal/Ai/AiApplication.java @@ -1,12 +1,11 @@ -package com.dsideal.Res; +package com.dsideal.Ai; import com.dsideal.Config.PropKit; -import com.dsideal.Res.Index.IndexController; -import com.dsideal.Res.Interceptor.*; -import com.dsideal.Res.Plugin.RocketMQPlugin; -import com.dsideal.Res.Plugin.YamlProp; -import com.dsideal.Res.Util.FileUtil; -import com.dsideal.Res.Util.LogBackLogFactory; +import com.dsideal.Ai.Index.IndexController; +import com.dsideal.Ai.Interceptor.*; +import com.dsideal.Ai.Plugin.RocketMQPlugin; +import com.dsideal.Ai.Util.FileUtil; +import com.dsideal.Ai.Util.LogBackLogFactory; import com.jfinal.config.*; import com.jfinal.plugin.activerecord.ActiveRecordPlugin; import com.jfinal.plugin.activerecord.dialect.MysqlDialect; diff --git a/dsAi/src/main/java/com/dsideal/Res/Index/IndexController.java b/dsAi/src/main/java/com/dsideal/Ai/Index/IndexController.java similarity index 81% rename from dsAi/src/main/java/com/dsideal/Res/Index/IndexController.java rename to dsAi/src/main/java/com/dsideal/Ai/Index/IndexController.java index aed7441c..d5ca7228 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Index/IndexController.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Index/IndexController.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Index; +package com.dsideal.Ai.Index; import com.jfinal.core.Controller; diff --git a/dsRes/src/main/java/com/dsideal/Res/Interceptor/CheckIdsInterceptor.java b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/CheckIdsInterceptor.java similarity index 93% rename from dsRes/src/main/java/com/dsideal/Res/Interceptor/CheckIdsInterceptor.java rename to dsAi/src/main/java/com/dsideal/Ai/Interceptor/CheckIdsInterceptor.java index 74b42da1..fc924413 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Interceptor/CheckIdsInterceptor.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/CheckIdsInterceptor.java @@ -1,7 +1,7 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; -import com.dsideal.Res.Util.CommonUtil; -import com.dsideal.Res.Util.RetKit; +import com.dsideal.Ai.Util.CommonUtil; +import com.dsideal.Ai.Util.RetKit; import com.jfinal.aop.Interceptor; import com.jfinal.aop.Invocation; import com.jfinal.core.Controller; diff --git a/dsRes/src/main/java/com/dsideal/Res/Interceptor/CheckIdsInterface.java b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/CheckIdsInterface.java similarity index 80% rename from dsRes/src/main/java/com/dsideal/Res/Interceptor/CheckIdsInterface.java rename to dsAi/src/main/java/com/dsideal/Ai/Interceptor/CheckIdsInterface.java index 473d24a4..879fdf4b 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Interceptor/CheckIdsInterface.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/CheckIdsInterface.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; import java.lang.annotation.*; diff --git a/dsRes/src/main/java/com/dsideal/Res/Interceptor/EmptyInterceptor.java b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/EmptyInterceptor.java similarity index 92% rename from dsRes/src/main/java/com/dsideal/Res/Interceptor/EmptyInterceptor.java rename to dsAi/src/main/java/com/dsideal/Ai/Interceptor/EmptyInterceptor.java index 1cd988c8..43f91bec 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Interceptor/EmptyInterceptor.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/EmptyInterceptor.java @@ -1,6 +1,6 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; -import com.dsideal.Res.Util.RetKit; +import com.dsideal.Ai.Util.RetKit; import com.jfinal.aop.Interceptor; import com.jfinal.aop.Invocation; import com.jfinal.core.Controller; diff --git a/dsRes/src/main/java/com/dsideal/Res/Interceptor/EmptyInterface.java b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/EmptyInterface.java similarity index 87% rename from dsRes/src/main/java/com/dsideal/Res/Interceptor/EmptyInterface.java rename to dsAi/src/main/java/com/dsideal/Ai/Interceptor/EmptyInterface.java index c8608348..8487023b 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Interceptor/EmptyInterface.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/EmptyInterface.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; diff --git a/dsAi/src/main/java/com/dsideal/Res/Interceptor/IsGuidInterceptor.java b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/IsGuidInterceptor.java similarity index 91% rename from dsAi/src/main/java/com/dsideal/Res/Interceptor/IsGuidInterceptor.java rename to dsAi/src/main/java/com/dsideal/Ai/Interceptor/IsGuidInterceptor.java index 5d350d4d..51d2abd4 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Interceptor/IsGuidInterceptor.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/IsGuidInterceptor.java @@ -1,6 +1,6 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; -import com.dsideal.Res.Util.RetKit; +import com.dsideal.Ai.Util.RetKit; import com.jfinal.aop.Interceptor; import com.jfinal.aop.Invocation; import com.jfinal.core.Controller; diff --git a/dsRes/src/main/java/com/dsideal/Res/Interceptor/IsGuidInterface.java b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/IsGuidInterface.java similarity index 80% rename from dsRes/src/main/java/com/dsideal/Res/Interceptor/IsGuidInterface.java rename to dsAi/src/main/java/com/dsideal/Ai/Interceptor/IsGuidInterface.java index b81327fe..fcb47f39 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Interceptor/IsGuidInterface.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/IsGuidInterface.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; import java.lang.annotation.*; diff --git a/dsRes/src/main/java/com/dsideal/Res/Interceptor/IsNumbericInterceptor.java b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/IsNumbericInterceptor.java similarity index 90% rename from dsRes/src/main/java/com/dsideal/Res/Interceptor/IsNumbericInterceptor.java rename to dsAi/src/main/java/com/dsideal/Ai/Interceptor/IsNumbericInterceptor.java index decdb2ec..bc5e640b 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Interceptor/IsNumbericInterceptor.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/IsNumbericInterceptor.java @@ -1,7 +1,7 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; -import com.dsideal.Res.Util.CommonUtil; -import com.dsideal.Res.Util.RetKit; +import com.dsideal.Ai.Util.CommonUtil; +import com.dsideal.Ai.Util.RetKit; import com.jfinal.aop.Interceptor; import com.jfinal.aop.Invocation; import com.jfinal.core.Controller; diff --git a/dsAi/src/main/java/com/dsideal/Res/Interceptor/IsNumericInterface.java b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/IsNumericInterface.java similarity index 80% rename from dsAi/src/main/java/com/dsideal/Res/Interceptor/IsNumericInterface.java rename to dsAi/src/main/java/com/dsideal/Ai/Interceptor/IsNumericInterface.java index a88260e1..7101892b 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Interceptor/IsNumericInterface.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/IsNumericInterface.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; import java.lang.annotation.*; diff --git a/dsAi/src/main/java/com/dsideal/Res/Interceptor/IsSysAdminInterceptor.java b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/IsSysAdminInterceptor.java similarity index 92% rename from dsAi/src/main/java/com/dsideal/Res/Interceptor/IsSysAdminInterceptor.java rename to dsAi/src/main/java/com/dsideal/Ai/Interceptor/IsSysAdminInterceptor.java index 48d89a75..d04874b1 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Interceptor/IsSysAdminInterceptor.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/IsSysAdminInterceptor.java @@ -1,6 +1,6 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; -import com.dsideal.Res.Util.RetKit; +import com.dsideal.Ai.Util.RetKit; import com.jfinal.aop.Interceptor; import com.jfinal.aop.Invocation; import com.jfinal.core.Controller; diff --git a/dsRes/src/main/java/com/dsideal/Res/Interceptor/IsSysAdminInterface.java b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/IsSysAdminInterface.java similarity index 80% rename from dsRes/src/main/java/com/dsideal/Res/Interceptor/IsSysAdminInterface.java rename to dsAi/src/main/java/com/dsideal/Ai/Interceptor/IsSysAdminInterface.java index 040957c4..c316dfeb 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Interceptor/IsSysAdminInterface.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/IsSysAdminInterface.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; import java.lang.annotation.*; diff --git a/dsAi/src/main/java/com/dsideal/Res/Interceptor/LengthInterceptor.java b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/LengthInterceptor.java similarity index 93% rename from dsAi/src/main/java/com/dsideal/Res/Interceptor/LengthInterceptor.java rename to dsAi/src/main/java/com/dsideal/Ai/Interceptor/LengthInterceptor.java index f5684aaa..7139ad71 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Interceptor/LengthInterceptor.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/LengthInterceptor.java @@ -1,6 +1,6 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; -import com.dsideal.Res.Util.RetKit; +import com.dsideal.Ai.Util.RetKit; import com.jfinal.aop.Interceptor; import com.jfinal.aop.Invocation; import com.jfinal.core.Controller; diff --git a/dsRes/src/main/java/com/dsideal/Res/Interceptor/LengthInterface.java b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/LengthInterface.java similarity index 79% rename from dsRes/src/main/java/com/dsideal/Res/Interceptor/LengthInterface.java rename to dsAi/src/main/java/com/dsideal/Ai/Interceptor/LengthInterface.java index bfbd5f99..45111271 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Interceptor/LengthInterface.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Interceptor/LengthInterface.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; import java.lang.annotation.*; diff --git a/dsAi/src/main/java/com/dsideal/Res/JApiDocsGenerator.java b/dsAi/src/main/java/com/dsideal/Ai/JApiDocsGenerator.java similarity index 96% rename from dsAi/src/main/java/com/dsideal/Res/JApiDocsGenerator.java rename to dsAi/src/main/java/com/dsideal/Ai/JApiDocsGenerator.java index efee6c21..59a97022 100644 --- a/dsAi/src/main/java/com/dsideal/Res/JApiDocsGenerator.java +++ b/dsAi/src/main/java/com/dsideal/Ai/JApiDocsGenerator.java @@ -1,9 +1,9 @@ -package com.dsideal.Res; +package com.dsideal.Ai; import cn.hutool.core.io.FileUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Plugin.PostmanDocPlugin; +import com.dsideal.Ai.Plugin.PostmanDocPlugin; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.jfinal.aop.Before; diff --git a/dsRes/src/main/java/com/dsideal/Res/Plugin/PostmanDocPlugin.java b/dsAi/src/main/java/com/dsideal/Ai/Plugin/PostmanDocPlugin.java similarity index 95% rename from dsRes/src/main/java/com/dsideal/Res/Plugin/PostmanDocPlugin.java rename to dsAi/src/main/java/com/dsideal/Ai/Plugin/PostmanDocPlugin.java index f188860a..3edf55cb 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Plugin/PostmanDocPlugin.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Plugin/PostmanDocPlugin.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Plugin; +package com.dsideal.Ai.Plugin; import freemarker.template.Template; import freemarker.template.TemplateException; diff --git a/dsAi/src/main/java/com/dsideal/Res/Plugin/RocketMQPlugin.java b/dsAi/src/main/java/com/dsideal/Ai/Plugin/RocketMQPlugin.java similarity index 87% rename from dsAi/src/main/java/com/dsideal/Res/Plugin/RocketMQPlugin.java rename to dsAi/src/main/java/com/dsideal/Ai/Plugin/RocketMQPlugin.java index 3cf7042d..599932b5 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Plugin/RocketMQPlugin.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Plugin/RocketMQPlugin.java @@ -1,6 +1,6 @@ -package com.dsideal.Res.Plugin; +package com.dsideal.Ai.Plugin; -import com.dsideal.Res.Util.RocketMqKit; +import com.dsideal.Ai.Util.RocketMqKit; import com.jfinal.plugin.IPlugin; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/dsGw/src/main/java/com/dsideal/gw/Plugin/YamlProp.java b/dsAi/src/main/java/com/dsideal/Ai/Plugin/YamlProp.java similarity index 94% rename from dsGw/src/main/java/com/dsideal/gw/Plugin/YamlProp.java rename to dsAi/src/main/java/com/dsideal/Ai/Plugin/YamlProp.java index 39cf2ec0..7cdb211a 100644 --- a/dsGw/src/main/java/com/dsideal/gw/Plugin/YamlProp.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Plugin/YamlProp.java @@ -1,4 +1,4 @@ -package com.dsideal.gw.Plugin; +package com.dsideal.Ai.Plugin; import com.jfinal.kit.Prop; import org.yaml.snakeyaml.Yaml; diff --git a/dsAi/src/main/java/com/dsideal/Res/Test/CallDeepSeek.java b/dsAi/src/main/java/com/dsideal/Ai/Test/CallDeepSeek.java similarity index 97% rename from dsAi/src/main/java/com/dsideal/Res/Test/CallDeepSeek.java rename to dsAi/src/main/java/com/dsideal/Ai/Test/CallDeepSeek.java index 21bb9f82..89c3a266 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Test/CallDeepSeek.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Test/CallDeepSeek.java @@ -1,11 +1,10 @@ -package com.dsideal.Res.Test; +package com.dsideal.Ai.Test; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.CharsetUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONArray; -import com.jfinal.kit.PathKit; import org.apache.commons.codec.digest.DigestUtils; diff --git a/dsAi/src/main/java/com/dsideal/Res/Test/MetadataTemplateGenerator.java b/dsAi/src/main/java/com/dsideal/Ai/Test/MetadataTemplateGenerator.java similarity index 97% rename from dsAi/src/main/java/com/dsideal/Res/Test/MetadataTemplateGenerator.java rename to dsAi/src/main/java/com/dsideal/Ai/Test/MetadataTemplateGenerator.java index 96ee7ec3..e6ccb0c4 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Test/MetadataTemplateGenerator.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Test/MetadataTemplateGenerator.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Test; +package com.dsideal.Ai.Test; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddressList; import org.apache.poi.xssf.usermodel.XSSFWorkbook; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/AiPptDemo1.java b/dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/AiPptDemo1.java similarity index 94% rename from dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/AiPptDemo1.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/AiPptDemo1.java index 5265704c..0ce7909d 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/AiPptDemo1.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/AiPptDemo1.java @@ -1,8 +1,8 @@ -package com.dsideal.Res.Util.AiPpt; +package com.dsideal.Ai.Util.AiPpt; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.AiPpt.Kit.ApiKit; -import com.dsideal.Res.Util.AiPpt.Kit.HttpUtils; +import com.dsideal.Ai.Util.AiPpt.Kit.ApiKit; +import com.dsideal.Ai.Util.AiPpt.Kit.HttpUtils; import javax.swing.filechooser.FileSystemView; import java.io.File; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/AiPptDemo2.java b/dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/AiPptDemo2.java similarity index 94% rename from dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/AiPptDemo2.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/AiPptDemo2.java index 359a2780..a0591b14 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/AiPptDemo2.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/AiPptDemo2.java @@ -1,8 +1,8 @@ -package com.dsideal.Res.Util.AiPpt; +package com.dsideal.Ai.Util.AiPpt; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.AiPpt.Kit.ApiKit; -import com.dsideal.Res.Util.AiPpt.Kit.HttpUtils; +import com.dsideal.Ai.Util.AiPpt.Kit.ApiKit; +import com.dsideal.Ai.Util.AiPpt.Kit.HttpUtils; import javax.swing.filechooser.FileSystemView; import java.io.File; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/AiPptDemo3.java b/dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/AiPptDemo3.java similarity index 92% rename from dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/AiPptDemo3.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/AiPptDemo3.java index 97350ca8..849cae27 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/AiPptDemo3.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/AiPptDemo3.java @@ -1,8 +1,8 @@ -package com.dsideal.Res.Util.AiPpt; +package com.dsideal.Ai.Util.AiPpt; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.AiPpt.Kit.ApiKit; -import com.dsideal.Res.Util.AiPpt.Kit.HttpUtils; +import com.dsideal.Ai.Util.AiPpt.Kit.ApiKit; +import com.dsideal.Ai.Util.AiPpt.Kit.HttpUtils; import javax.swing.filechooser.FileSystemView; import java.io.File; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/AiPptDemo4.java b/dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/AiPptDemo4.java similarity index 92% rename from dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/AiPptDemo4.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/AiPptDemo4.java index e1ffeb49..dbff175e 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/AiPptDemo4.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/AiPptDemo4.java @@ -1,8 +1,8 @@ -package com.dsideal.Res.Util.AiPpt; +package com.dsideal.Ai.Util.AiPpt; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.AiPpt.Kit.ApiKit; -import com.dsideal.Res.Util.AiPpt.Kit.HttpUtils; +import com.dsideal.Ai.Util.AiPpt.Kit.ApiKit; +import com.dsideal.Ai.Util.AiPpt.Kit.HttpUtils; import javax.swing.filechooser.FileSystemView; import java.io.File; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/Doc/文档.txt b/dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/Doc/文档.txt similarity index 100% rename from dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/Doc/文档.txt rename to dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/Doc/文档.txt diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/Kit/ApiKit.java b/dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/Kit/ApiKit.java similarity index 99% rename from dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/Kit/ApiKit.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/Kit/ApiKit.java index 91b3a73c..68dfd106 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/Kit/ApiKit.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/Kit/ApiKit.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util.AiPpt.Kit; +package com.dsideal.Ai.Util.AiPpt.Kit; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/Kit/HttpUtils.java b/dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/Kit/HttpUtils.java similarity index 99% rename from dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/Kit/HttpUtils.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/Kit/HttpUtils.java index 82668a9f..431dc7da 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/AiPpt/Kit/HttpUtils.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/AiPpt/Kit/HttpUtils.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util.AiPpt.Kit; +package com.dsideal.Ai.Util.AiPpt.Kit; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/CommonUtil.java b/dsAi/src/main/java/com/dsideal/Ai/Util/CommonUtil.java similarity index 94% rename from dsAi/src/main/java/com/dsideal/Res/Util/CommonUtil.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/CommonUtil.java index fd294641..98441759 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/CommonUtil.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/CommonUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/CookieUtil.java b/dsAi/src/main/java/com/dsideal/Ai/Util/CookieUtil.java similarity index 95% rename from dsRes/src/main/java/com/dsideal/Res/Util/CookieUtil.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/CookieUtil.java index b2e157a2..31e54188 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/CookieUtil.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/CookieUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/DashScope/Doc/文档.txt b/dsAi/src/main/java/com/dsideal/Ai/Util/DashScope/Doc/文档.txt similarity index 100% rename from dsAi/src/main/java/com/dsideal/Res/Util/DashScope/Doc/文档.txt rename to dsAi/src/main/java/com/dsideal/Ai/Util/DashScope/Doc/文档.txt diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/DashScope/ImgSong.java b/dsAi/src/main/java/com/dsideal/Ai/Util/DashScope/ImgSong.java similarity index 96% rename from dsAi/src/main/java/com/dsideal/Res/Util/DashScope/ImgSong.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/DashScope/ImgSong.java index ce99501a..66d601e0 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/DashScope/ImgSong.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/DashScope/ImgSong.java @@ -1,9 +1,9 @@ -package com.dsideal.Res.Util.DashScope; +package com.dsideal.Ai.Util.DashScope; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.DashScope.Kit.DashScopeCommon; +import com.dsideal.Ai.Util.DashScope.Kit.DashScopeCommon; import lombok.SneakyThrows; import okhttp3.*; import org.slf4j.Logger; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/DashScope/ImgSpeak.java b/dsAi/src/main/java/com/dsideal/Ai/Util/DashScope/ImgSpeak.java similarity index 96% rename from dsAi/src/main/java/com/dsideal/Res/Util/DashScope/ImgSpeak.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/DashScope/ImgSpeak.java index f5b04568..5a1d3c76 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/DashScope/ImgSpeak.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/DashScope/ImgSpeak.java @@ -1,8 +1,8 @@ -package com.dsideal.Res.Util.DashScope; +package com.dsideal.Ai.Util.DashScope; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.DashScope.Kit.DashScopeCommon; +import com.dsideal.Ai.Util.DashScope.Kit.DashScopeCommon; import lombok.SneakyThrows; import okhttp3.*; import org.slf4j.Logger; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/DashScope/Kit/DashScopeCommon.java b/dsAi/src/main/java/com/dsideal/Ai/Util/DashScope/Kit/DashScopeCommon.java similarity index 70% rename from dsAi/src/main/java/com/dsideal/Res/Util/DashScope/Kit/DashScopeCommon.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/DashScope/Kit/DashScopeCommon.java index 6a646bfb..5f613552 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/DashScope/Kit/DashScopeCommon.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/DashScope/Kit/DashScopeCommon.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util.DashScope.Kit; +package com.dsideal.Ai.Util.DashScope.Kit; public class DashScopeCommon { protected static final String API_KEY= "sk-01d13a39e09844038322108ecdbd1bbc"; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/DashScope/Kit/VideoStyleEnum.java b/dsAi/src/main/java/com/dsideal/Ai/Util/DashScope/Kit/VideoStyleEnum.java similarity index 93% rename from dsAi/src/main/java/com/dsideal/Res/Util/DashScope/Kit/VideoStyleEnum.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/DashScope/Kit/VideoStyleEnum.java index 6921ebf6..f137b9a2 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/DashScope/Kit/VideoStyleEnum.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/DashScope/Kit/VideoStyleEnum.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util.DashScope.Kit; +package com.dsideal.Ai.Util.DashScope.Kit; /** * 阿里云达摩院视频风格转换类型枚举 diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/DashScope/VideoStyleTransform.java b/dsAi/src/main/java/com/dsideal/Ai/Util/DashScope/VideoStyleTransform.java similarity index 95% rename from dsAi/src/main/java/com/dsideal/Res/Util/DashScope/VideoStyleTransform.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/DashScope/VideoStyleTransform.java index bf1cf761..32be604c 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/DashScope/VideoStyleTransform.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/DashScope/VideoStyleTransform.java @@ -1,9 +1,9 @@ -package com.dsideal.Res.Util.DashScope; +package com.dsideal.Ai.Util.DashScope; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.DashScope.Kit.DashScopeCommon; -import com.dsideal.Res.Util.DashScope.Kit.VideoStyleEnum; +import com.dsideal.Ai.Util.DashScope.Kit.DashScopeCommon; +import com.dsideal.Ai.Util.DashScope.Kit.VideoStyleEnum; import lombok.SneakyThrows; import okhttp3.*; import org.slf4j.Logger; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/ExcelExportUtil.java b/dsAi/src/main/java/com/dsideal/Ai/Util/ExcelExportUtil.java similarity index 97% rename from dsAi/src/main/java/com/dsideal/Res/Util/ExcelExportUtil.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/ExcelExportUtil.java index e0cc0f21..5bdba0dc 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/ExcelExportUtil.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/ExcelExportUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/FileSizeUtil.java b/dsAi/src/main/java/com/dsideal/Ai/Util/FileSizeUtil.java similarity index 96% rename from dsAi/src/main/java/com/dsideal/Res/Util/FileSizeUtil.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/FileSizeUtil.java index ea0deb6e..75f5ae7e 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/FileSizeUtil.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/FileSizeUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import java.io.File; import java.io.FileInputStream; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/FileUtil.java b/dsAi/src/main/java/com/dsideal/Ai/Util/FileUtil.java similarity index 94% rename from dsAi/src/main/java/com/dsideal/Res/Util/FileUtil.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/FileUtil.java index 0377e481..67503173 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/FileUtil.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/FileUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.alibaba.fastjson.JSONObject; import java.io.*; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/HttpClient.java b/dsAi/src/main/java/com/dsideal/Ai/Util/HttpClient.java similarity index 96% rename from dsAi/src/main/java/com/dsideal/Res/Util/HttpClient.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/HttpClient.java index 02d2a07a..a41004b7 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/HttpClient.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/HttpClient.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.dsideal.Config.GatewayConfig; import okhttp3.*; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/HuoShanFangZhou/Doc/文档.txt b/dsAi/src/main/java/com/dsideal/Ai/Util/HuoShanFangZhou/Doc/文档.txt similarity index 100% rename from dsAi/src/main/java/com/dsideal/Res/Util/HuoShanFangZhou/Doc/文档.txt rename to dsAi/src/main/java/com/dsideal/Ai/Util/HuoShanFangZhou/Doc/文档.txt diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/HuoShanFangZhou/Kit/HuoShanCommon.java b/dsAi/src/main/java/com/dsideal/Ai/Util/HuoShanFangZhou/Kit/HuoShanCommon.java similarity index 85% rename from dsAi/src/main/java/com/dsideal/Res/Util/HuoShanFangZhou/Kit/HuoShanCommon.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/HuoShanFangZhou/Kit/HuoShanCommon.java index b7eb8a87..296f8d83 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/HuoShanFangZhou/Kit/HuoShanCommon.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/HuoShanFangZhou/Kit/HuoShanCommon.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util.HuoShanFangZhou.Kit; +package com.dsideal.Ai.Util.HuoShanFangZhou.Kit; public class HuoShanCommon { //火山方舟大模型 diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/HuoShanFangZhou/Txt2Img.java b/dsAi/src/main/java/com/dsideal/Ai/Util/HuoShanFangZhou/Txt2Img.java similarity index 95% rename from dsAi/src/main/java/com/dsideal/Res/Util/HuoShanFangZhou/Txt2Img.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/HuoShanFangZhou/Txt2Img.java index 42c0fbb4..8584346f 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/HuoShanFangZhou/Txt2Img.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/HuoShanFangZhou/Txt2Img.java @@ -1,8 +1,8 @@ -package com.dsideal.Res.Util.HuoShanFangZhou; +package com.dsideal.Ai.Util.HuoShanFangZhou; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.HuoShanFangZhou.Kit.HuoShanCommon; +import com.dsideal.Ai.Util.HuoShanFangZhou.Kit.HuoShanCommon; import okhttp3.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/IDCardUtil.java b/dsAi/src/main/java/com/dsideal/Ai/Util/IDCardUtil.java similarity index 97% rename from dsRes/src/main/java/com/dsideal/Res/Util/IDCardUtil.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/IDCardUtil.java index 30ca9429..1956426d 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/IDCardUtil.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/IDCardUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.alibaba.fastjson.JSONObject; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/IdCardGenerator.java b/dsAi/src/main/java/com/dsideal/Ai/Util/IdCardGenerator.java similarity index 98% rename from dsAi/src/main/java/com/dsideal/Res/Util/IdCardGenerator.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/IdCardGenerator.java index a136de60..e951f303 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/IdCardGenerator.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/IdCardGenerator.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import java.util.Calendar; import java.util.Collection; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/IpUtil.java b/dsAi/src/main/java/com/dsideal/Ai/Util/IpUtil.java similarity index 90% rename from dsRes/src/main/java/com/dsideal/Res/Util/IpUtil.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/IpUtil.java index aff571d5..8e998339 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/IpUtil.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/IpUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; @@ -40,7 +40,7 @@ public class IpUtil for (int i = 0; i < 4; ++i) { ipNums.add(Long.valueOf(Long.parseLong(ipArray[i].trim()))); } - long ZhongIPNumTotal = ((Long) ipNums.get(0)).longValue() * 256L * 256L * 256L + long ZhongIPNumTotal = ((Long) ipNums.getFirst()).longValue() * 256L * 256L * 256L + ((Long) ipNums.get(1)).longValue() * 256L * 256L + ((Long) ipNums.get(2)).longValue() * 256L + ((Long) ipNums.get(3)).longValue(); diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/JiMeng/JmImg2Video.java b/dsAi/src/main/java/com/dsideal/Ai/Util/JiMeng/JmImg2Video.java similarity index 95% rename from dsAi/src/main/java/com/dsideal/Res/Util/JiMeng/JmImg2Video.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/JiMeng/JmImg2Video.java index d865b763..cffc790f 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/JiMeng/JmImg2Video.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/JiMeng/JmImg2Video.java @@ -1,10 +1,10 @@ -package com.dsideal.Res.Util.JiMeng; +package com.dsideal.Ai.Util.JiMeng; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.JiMeng.Kit.JmCommon; -import com.dsideal.Res.Util.JiMeng.Kit.JmErrorCode; +import com.dsideal.Ai.Util.JiMeng.Kit.JmCommon; +import com.dsideal.Ai.Util.JiMeng.Kit.JmErrorCode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/JiMeng/JmTxt2Img.java b/dsAi/src/main/java/com/dsideal/Ai/Util/JiMeng/JmTxt2Img.java similarity index 78% rename from dsAi/src/main/java/com/dsideal/Res/Util/JiMeng/JmTxt2Img.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/JiMeng/JmTxt2Img.java index c8005cfd..c2748423 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/JiMeng/JmTxt2Img.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/JiMeng/JmTxt2Img.java @@ -1,9 +1,9 @@ -package com.dsideal.Res.Util.JiMeng; +package com.dsideal.Ai.Util.JiMeng; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.JiMeng.Kit.JmCommon; -import com.dsideal.Res.Util.JiMeng.Kit.JmErrorCode; +import com.dsideal.Ai.Util.JiMeng.Kit.JmCommon; +import com.dsideal.Ai.Util.JiMeng.Kit.JmErrorCode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -61,8 +61,14 @@ public class JmTxt2Img extends JmCommon { //String prompt = "过曝,强对比,夜晚,雪地里,巨大的黄色浴缸,小狗泡澡带墨镜,在喝红酒,胶片摄影,毛刺质感,复古滤镜,夜晚,过度曝光,古早,70年代摄影,复古老照片,闪光灯拍摄,闪光灯效果,过曝,过度曝光,闪光灯过曝,极简,高饱和复古色,70s vintage photography, vintage, retro style"; //String prompt="南瓜羹->画面展现一碗百合南瓜羹的一半,米黄色的糯米粉勾芡,块块橙色南瓜在橙色粥中,南瓜丝丝沙沙质感,紫白色百合点缀"; //String prompt="一张海报,画面上方有手写涂鸦风格的文字写着:新年快乐"; - String prompt="工笔画风格,三维古风,东方禅意,航拍高角度视角,捕捉了海底极小人物的奔跑追逐;构图大面积留白和丰富的光影,背景以水墨晕染展现水中阳光的多彩折射,现实与虚拟相结合的思考,水墨风格,蓝绿色调,逆光和辉光效果增强冷暖对比,高角度拍摄景深感,整体画面高清,画质通透,发光呈现幽静空灵感"; - + //String prompt="工笔画风格,三维古风,东方禅意,航拍高角度视角,捕捉了海底极小人物的奔跑追逐;构图大面积留白和丰富的光影,背景以水墨晕染展现水中阳光的多彩折射,现实与虚拟相结合的思考,水墨风格,蓝绿色调,逆光和辉光效果增强冷暖对比,高角度拍摄景深感,整体画面高清,画质通透,发光呈现幽静空灵感"; + String prompt="鸿门宴,室内场景图。非真人,是一幅画。远景镜头,让人一看就知道是在讲鸿门宴," + + "1、要亮!" + + "2、不要有人出现" + + "3、有大厅、墙面,桌子,不要有台阶,否则项庄没机会刺杀刘邦" + + "4、西周时期特点" + + "5、宏大,雄伟,颜色鲜明,不要灰色调的,不要有雾霾之类的"+ + "6、超高清画质"; // 获取项目根目录路径 String saveImagePath = basePath + "Text2Img.jpg"; log.info("保存图片路径:{}", saveImagePath); diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/JiMeng/JmTxt2Video.java b/dsAi/src/main/java/com/dsideal/Ai/Util/JiMeng/JmTxt2Video.java similarity index 95% rename from dsAi/src/main/java/com/dsideal/Res/Util/JiMeng/JmTxt2Video.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/JiMeng/JmTxt2Video.java index b5df0778..3bae81ff 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/JiMeng/JmTxt2Video.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/JiMeng/JmTxt2Video.java @@ -1,9 +1,9 @@ -package com.dsideal.Res.Util.JiMeng; +package com.dsideal.Ai.Util.JiMeng; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.JiMeng.Kit.JmCommon; -import com.dsideal.Res.Util.JiMeng.Kit.JmErrorCode; +import com.dsideal.Ai.Util.JiMeng.Kit.JmCommon; +import com.dsideal.Ai.Util.JiMeng.Kit.JmErrorCode; import com.jfinal.kit.StrKit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/JiMeng/Kit/JmCommon.java b/dsAi/src/main/java/com/dsideal/Ai/Util/JiMeng/Kit/JmCommon.java similarity index 97% rename from dsAi/src/main/java/com/dsideal/Res/Util/JiMeng/Kit/JmCommon.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/JiMeng/Kit/JmCommon.java index 659ea084..9eb08bf3 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/JiMeng/Kit/JmCommon.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/JiMeng/Kit/JmCommon.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util.JiMeng.Kit; +package com.dsideal.Ai.Util.JiMeng.Kit; import cn.hutool.http.Method; import com.alibaba.fastjson.JSON; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/JiMeng/Kit/JmErrorCode.java b/dsAi/src/main/java/com/dsideal/Ai/Util/JiMeng/Kit/JmErrorCode.java similarity index 94% rename from dsAi/src/main/java/com/dsideal/Res/Util/JiMeng/Kit/JmErrorCode.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/JiMeng/Kit/JmErrorCode.java index b438d0c6..cd89a94b 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/JiMeng/Kit/JmErrorCode.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/JiMeng/Kit/JmErrorCode.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util.JiMeng.Kit; +package com.dsideal.Ai.Util.JiMeng.Kit; import lombok.Getter; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/JwtUtil.java b/dsAi/src/main/java/com/dsideal/Ai/Util/JwtUtil.java similarity index 89% rename from dsRes/src/main/java/com/dsideal/Res/Util/JwtUtil.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/JwtUtil.java index 87dc6037..e97c51c1 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/JwtUtil.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/JwtUtil.java @@ -1,7 +1,6 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.dsideal.Config.PropKit; -import com.dsideal.Res.ResApplication; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; @@ -52,12 +51,13 @@ public class JwtUtil { } Claims claims; try { - claims = Jwts.parserBuilder() - .setSigningKey(key) + claims = Jwts.parser() + .verifyWith(key) .build() - .parseClaimsJws(token) - .getBody(); + .parseSignedClaims(token) + .getPayload(); } catch (Exception e) { + System.out.println(e.toString()); claims = null; } return claims; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/KeLing/Doc/文档.txt b/dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/Doc/文档.txt similarity index 100% rename from dsAi/src/main/java/com/dsideal/Res/Util/KeLing/Doc/文档.txt rename to dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/Doc/文档.txt diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/KeLing/Kit/KlCommon.java b/dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/Kit/KlCommon.java similarity index 96% rename from dsAi/src/main/java/com/dsideal/Res/Util/KeLing/Kit/KlCommon.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/Kit/KlCommon.java index 84436a45..1269f235 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/KeLing/Kit/KlCommon.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/Kit/KlCommon.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util.KeLing.Kit; +package com.dsideal.Ai.Util.KeLing.Kit; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/KeLing/Kit/KlErrorCode.java b/dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/Kit/KlErrorCode.java similarity index 96% rename from dsAi/src/main/java/com/dsideal/Res/Util/KeLing/Kit/KlErrorCode.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/Kit/KlErrorCode.java index 1eefd33a..46d5da37 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/KeLing/Kit/KlErrorCode.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/Kit/KlErrorCode.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util.KeLing.Kit; +package com.dsideal.Ai.Util.KeLing.Kit; import lombok.Getter; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/KeLing/KlAccount.java b/dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/KlAccount.java similarity index 96% rename from dsAi/src/main/java/com/dsideal/Res/Util/KeLing/KlAccount.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/KlAccount.java index be82275d..343bbb49 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/KeLing/KlAccount.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/KlAccount.java @@ -1,12 +1,12 @@ -package com.dsideal.Res.Util.KeLing; +package com.dsideal.Ai.Util.KeLing; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; -import com.dsideal.Res.Util.KeLing.Kit.KlCommon; -import com.dsideal.Res.Util.KeLing.Kit.KlErrorCode; +import com.dsideal.Ai.Util.KeLing.Kit.KlCommon; +import com.dsideal.Ai.Util.KeLing.Kit.KlErrorCode; import lombok.Getter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/KeLing/KlImg2Video.java b/dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/KlImg2Video.java similarity index 95% rename from dsAi/src/main/java/com/dsideal/Res/Util/KeLing/KlImg2Video.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/KlImg2Video.java index d41748e0..fd2a7394 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/KeLing/KlImg2Video.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/KlImg2Video.java @@ -1,12 +1,12 @@ -package com.dsideal.Res.Util.KeLing; +package com.dsideal.Ai.Util.KeLing; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.KeLing.Kit.KlCommon; -import com.dsideal.Res.Util.KeLing.Kit.KlErrorCode; +import com.dsideal.Ai.Util.KeLing.Kit.KlCommon; +import com.dsideal.Ai.Util.KeLing.Kit.KlErrorCode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/KeLing/KlTxt2Img.java b/dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/KlTxt2Img.java similarity index 95% rename from dsAi/src/main/java/com/dsideal/Res/Util/KeLing/KlTxt2Img.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/KlTxt2Img.java index 1d674b78..4a92a84d 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/KeLing/KlTxt2Img.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/KlTxt2Img.java @@ -1,12 +1,12 @@ -package com.dsideal.Res.Util.KeLing; +package com.dsideal.Ai.Util.KeLing; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.KeLing.Kit.KlCommon; -import com.dsideal.Res.Util.KeLing.Kit.KlErrorCode; +import com.dsideal.Ai.Util.KeLing.Kit.KlCommon; +import com.dsideal.Ai.Util.KeLing.Kit.KlErrorCode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/KeLing/KlTxt2Video.java b/dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/KlTxt2Video.java similarity index 95% rename from dsAi/src/main/java/com/dsideal/Res/Util/KeLing/KlTxt2Video.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/KlTxt2Video.java index 7d691338..c298190f 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/KeLing/KlTxt2Video.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/KeLing/KlTxt2Video.java @@ -1,12 +1,12 @@ -package com.dsideal.Res.Util.KeLing; +package com.dsideal.Ai.Util.KeLing; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.KeLing.Kit.KlCommon; -import com.dsideal.Res.Util.KeLing.Kit.KlErrorCode; +import com.dsideal.Ai.Util.KeLing.Kit.KlCommon; +import com.dsideal.Ai.Util.KeLing.Kit.KlErrorCode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Doc/文档.txt b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Doc/文档.txt similarity index 100% rename from dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Doc/文档.txt rename to dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Doc/文档.txt diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Enum/SamplingMethod.java b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Enum/SamplingMethod.java similarity index 95% rename from dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Enum/SamplingMethod.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Enum/SamplingMethod.java index 3227cf94..58d5451b 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Enum/SamplingMethod.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Enum/SamplingMethod.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util.Liblib.Enum; +package com.dsideal.Ai.Util.Liblib.Enum; import lombok.Getter; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Enum/UltraTemplate.java b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Enum/UltraTemplate.java similarity index 93% rename from dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Enum/UltraTemplate.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Enum/UltraTemplate.java index 5bde4a19..f7db48da 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Enum/UltraTemplate.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Enum/UltraTemplate.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util.Liblib.Enum; +package com.dsideal.Ai.Util.Liblib.Enum; import lombok.Getter; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Example/019dba57244f2682e672a8a1ce9d50536e85f130a1142d19755c8266d4a8577c.png b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Example/019dba57244f2682e672a8a1ce9d50536e85f130a1142d19755c8266d4a8577c.png similarity index 100% rename from dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Example/019dba57244f2682e672a8a1ce9d50536e85f130a1142d19755c8266d4a8577c.png rename to dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Example/019dba57244f2682e672a8a1ce9d50536e85f130a1142d19755c8266d4a8577c.png diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Example/1e458ad4a7f30e853acff80f4723f42638c21205f0ff2d64898589dd994f1f94.png b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Example/1e458ad4a7f30e853acff80f4723f42638c21205f0ff2d64898589dd994f1f94.png similarity index 100% rename from dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Example/1e458ad4a7f30e853acff80f4723f42638c21205f0ff2d64898589dd994f1f94.png rename to dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Example/1e458ad4a7f30e853acff80f4723f42638c21205f0ff2d64898589dd994f1f94.png diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Example/53ea797eeb6f5adafdfdeb3fc9918e200fb8b716e1773cebe54535b36adb5134.png b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Example/53ea797eeb6f5adafdfdeb3fc9918e200fb8b716e1773cebe54535b36adb5134.png similarity index 100% rename from dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Example/53ea797eeb6f5adafdfdeb3fc9918e200fb8b716e1773cebe54535b36adb5134.png rename to dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Example/53ea797eeb6f5adafdfdeb3fc9918e200fb8b716e1773cebe54535b36adb5134.png diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Example/7d6679969e1c6e014d37710935c2603b40b7217e14bc5003ea2ca8331e9ef40d.png b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Example/7d6679969e1c6e014d37710935c2603b40b7217e14bc5003ea2ca8331e9ef40d.png similarity index 100% rename from dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Example/7d6679969e1c6e014d37710935c2603b40b7217e14bc5003ea2ca8331e9ef40d.png rename to dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Example/7d6679969e1c6e014d37710935c2603b40b7217e14bc5003ea2ca8331e9ef40d.png diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Example/TextToImageUltra.png b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Example/TextToImageUltra.png similarity index 100% rename from dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Example/TextToImageUltra.png rename to dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Example/TextToImageUltra.png diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Kit/LibLibCommon.java b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Kit/LibLibCommon.java similarity index 96% rename from dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Kit/LibLibCommon.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Kit/LibLibCommon.java index 23d36ed0..b57e3f95 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/Kit/LibLibCommon.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/Kit/LibLibCommon.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util.Liblib.Kit; +package com.dsideal.Ai.Util.Liblib.Kit; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/LibImg2Img.java b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/LibImg2Img.java similarity index 96% rename from dsAi/src/main/java/com/dsideal/Res/Util/Liblib/LibImg2Img.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/LibImg2Img.java index 086bdfa0..b5bbc8fd 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/LibImg2Img.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/LibImg2Img.java @@ -1,9 +1,9 @@ -package com.dsideal.Res.Util.Liblib; +package com.dsideal.Ai.Util.Liblib; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.Liblib.Kit.LibLibCommon; +import com.dsideal.Ai.Util.Liblib.Kit.LibLibCommon; import okhttp3.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/LibTxt2Img.java b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/LibTxt2Img.java similarity index 97% rename from dsAi/src/main/java/com/dsideal/Res/Util/Liblib/LibTxt2Img.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/LibTxt2Img.java index 756b6474..42a89610 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/LibTxt2Img.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/LibTxt2Img.java @@ -1,9 +1,9 @@ -package com.dsideal.Res.Util.Liblib; +package com.dsideal.Ai.Util.Liblib; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.Liblib.Kit.LibLibCommon; +import com.dsideal.Ai.Util.Liblib.Kit.LibLibCommon; import okhttp3.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/QueryModelVersion.java b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/QueryModelVersion.java similarity index 94% rename from dsAi/src/main/java/com/dsideal/Res/Util/Liblib/QueryModelVersion.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/QueryModelVersion.java index aa64a6cb..c5e3a89c 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/QueryModelVersion.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/QueryModelVersion.java @@ -1,8 +1,8 @@ -package com.dsideal.Res.Util.Liblib; +package com.dsideal.Ai.Util.Liblib; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.Liblib.Kit.LibLibCommon; +import com.dsideal.Ai.Util.Liblib.Kit.LibLibCommon; import okhttp3.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/UltraImg2Img.java b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/UltraImg2Img.java similarity index 96% rename from dsAi/src/main/java/com/dsideal/Res/Util/Liblib/UltraImg2Img.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/UltraImg2Img.java index e0c8b805..01eecb5d 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/UltraImg2Img.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/UltraImg2Img.java @@ -1,9 +1,9 @@ -package com.dsideal.Res.Util.Liblib; +package com.dsideal.Ai.Util.Liblib; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.Liblib.Enum.UltraTemplate; -import com.dsideal.Res.Util.Liblib.Kit.LibLibCommon; +import com.dsideal.Ai.Util.Liblib.Enum.UltraTemplate; +import com.dsideal.Ai.Util.Liblib.Kit.LibLibCommon; import okhttp3.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/UltraTxt2Img.java b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/UltraTxt2Img.java similarity index 95% rename from dsAi/src/main/java/com/dsideal/Res/Util/Liblib/UltraTxt2Img.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/UltraTxt2Img.java index b86237f3..f64bec81 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/Liblib/UltraTxt2Img.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/Liblib/UltraTxt2Img.java @@ -1,8 +1,8 @@ -package com.dsideal.Res.Util.Liblib; +package com.dsideal.Ai.Util.Liblib; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Util.Liblib.Enum.UltraTemplate; -import com.dsideal.Res.Util.Liblib.Kit.LibLibCommon; +import com.dsideal.Ai.Util.Liblib.Enum.UltraTemplate; +import com.dsideal.Ai.Util.Liblib.Kit.LibLibCommon; import okhttp3.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/LogBackLog.java b/dsAi/src/main/java/com/dsideal/Ai/Util/LogBackLog.java similarity index 93% rename from dsAi/src/main/java/com/dsideal/Res/Util/LogBackLog.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/LogBackLog.java index 6fdf4e7e..3b1e3bda 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/LogBackLog.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/LogBackLog.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.jfinal.log.Log; import org.slf4j.Logger; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/LogBackLogFactory.java b/dsAi/src/main/java/com/dsideal/Ai/Util/LogBackLogFactory.java similarity index 87% rename from dsAi/src/main/java/com/dsideal/Res/Util/LogBackLogFactory.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/LogBackLogFactory.java index 3d712f9e..9faa9ef9 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/LogBackLogFactory.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/LogBackLogFactory.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.jfinal.log.ILogFactory; import com.jfinal.log.Log; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/Midjourney/Doc/文档.txt b/dsAi/src/main/java/com/dsideal/Ai/Util/Midjourney/Doc/文档.txt similarity index 100% rename from dsAi/src/main/java/com/dsideal/Res/Util/Midjourney/Doc/文档.txt rename to dsAi/src/main/java/com/dsideal/Ai/Util/Midjourney/Doc/文档.txt diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/Midjourney/Kit/MjCommon.java b/dsAi/src/main/java/com/dsideal/Ai/Util/Midjourney/Kit/MjCommon.java similarity index 95% rename from dsAi/src/main/java/com/dsideal/Res/Util/Midjourney/Kit/MjCommon.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/Midjourney/Kit/MjCommon.java index 51e2f52f..27836189 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/Midjourney/Kit/MjCommon.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/Midjourney/Kit/MjCommon.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util.Midjourney.Kit; +package com.dsideal.Ai.Util.Midjourney.Kit; import cn.hutool.core.io.FileUtil; import cn.hutool.http.HttpUtil; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/Midjourney/Txt2Img.java b/dsAi/src/main/java/com/dsideal/Ai/Util/Midjourney/Txt2Img.java similarity index 96% rename from dsAi/src/main/java/com/dsideal/Res/Util/Midjourney/Txt2Img.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/Midjourney/Txt2Img.java index 717c9d75..6f31f404 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/Midjourney/Txt2Img.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/Midjourney/Txt2Img.java @@ -1,6 +1,6 @@ -package com.dsideal.Res.Util.Midjourney; +package com.dsideal.Ai.Util.Midjourney; -import com.dsideal.Res.Util.Midjourney.Kit.MjCommon; +import com.dsideal.Ai.Util.Midjourney.Kit.MjCommon; import lombok.SneakyThrows; import okhttp3.*; import com.alibaba.fastjson.JSON; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/PassWordUtil.java b/dsAi/src/main/java/com/dsideal/Ai/Util/PassWordUtil.java similarity index 95% rename from dsRes/src/main/java/com/dsideal/Res/Util/PassWordUtil.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/PassWordUtil.java index 64111cac..7de7dc11 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/PassWordUtil.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/PassWordUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import java.security.SecureRandom; import java.util.ArrayList; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/PkUtil.java b/dsAi/src/main/java/com/dsideal/Ai/Util/PkUtil.java similarity index 95% rename from dsRes/src/main/java/com/dsideal/Res/Util/PkUtil.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/PkUtil.java index 3c79898d..543585dc 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/PkUtil.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/PkUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/RandomGeneratorUtil.java b/dsAi/src/main/java/com/dsideal/Ai/Util/RandomGeneratorUtil.java similarity index 99% rename from dsRes/src/main/java/com/dsideal/Res/Util/RandomGeneratorUtil.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/RandomGeneratorUtil.java index 9a18f4ed..e5e62e41 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/RandomGeneratorUtil.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/RandomGeneratorUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import java.util.HashMap; import java.util.Map; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/RedisKit.java b/dsAi/src/main/java/com/dsideal/Ai/Util/RedisKit.java similarity index 95% rename from dsRes/src/main/java/com/dsideal/Res/Util/RedisKit.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/RedisKit.java index 8d95731a..1b1ef3fc 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/RedisKit.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/RedisKit.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.jfinal.plugin.redis.Redis; import redis.clients.jedis.Pipeline; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/RetKit.java b/dsAi/src/main/java/com/dsideal/Ai/Util/RetKit.java similarity index 96% rename from dsAi/src/main/java/com/dsideal/Res/Util/RetKit.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/RetKit.java index 754def6e..c67305e7 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/RetKit.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/RetKit.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.jfinal.kit.StrKit; import com.jfinal.plugin.activerecord.Page; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/RocketMqKit.java b/dsAi/src/main/java/com/dsideal/Ai/Util/RocketMqKit.java similarity index 96% rename from dsAi/src/main/java/com/dsideal/Res/Util/RocketMqKit.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/RocketMqKit.java index 2cbb3ec4..5f3decec 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/RocketMqKit.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/RocketMqKit.java @@ -1,7 +1,6 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.dsideal.Config.PropKit; -import com.dsideal.Res.AiApplication; import org.apache.rocketmq.client.consumer.DefaultLitePullConsumer; import org.apache.rocketmq.client.producer.DefaultMQProducer; import org.apache.rocketmq.client.producer.SendCallback; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/RsaUtils.java b/dsAi/src/main/java/com/dsideal/Ai/Util/RsaUtils.java similarity index 97% rename from dsAi/src/main/java/com/dsideal/Res/Util/RsaUtils.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/RsaUtils.java index bf379e86..7fe3cd52 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/RsaUtils.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/RsaUtils.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import cn.hutool.core.codec.Base64; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/Suno/SunoMusicGenerator.java b/dsAi/src/main/java/com/dsideal/Ai/Util/Suno/SunoMusicGenerator.java similarity index 97% rename from dsAi/src/main/java/com/dsideal/Res/Util/Suno/SunoMusicGenerator.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/Suno/SunoMusicGenerator.java index 6e90c6d2..045c77fe 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/Suno/SunoMusicGenerator.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/Suno/SunoMusicGenerator.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util.Suno; +package com.dsideal.Ai.Util.Suno; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/TelNumGenerator.java b/dsAi/src/main/java/com/dsideal/Ai/Util/TelNumGenerator.java similarity index 92% rename from dsAi/src/main/java/com/dsideal/Res/Util/TelNumGenerator.java rename to dsAi/src/main/java/com/dsideal/Ai/Util/TelNumGenerator.java index bd3c9b1d..7ed7d27a 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/TelNumGenerator.java +++ b/dsAi/src/main/java/com/dsideal/Ai/Util/TelNumGenerator.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; public class TelNumGenerator { diff --git a/dsAi/src/main/java/com/dsideal/Res/Plugin/YamlProp.java b/dsAi/src/main/java/com/dsideal/Res/Plugin/YamlProp.java deleted file mode 100644 index 6828b1fe..00000000 --- a/dsAi/src/main/java/com/dsideal/Res/Plugin/YamlProp.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.dsideal.Res.Plugin; - -import com.jfinal.kit.Prop; -import org.yaml.snakeyaml.Yaml; - -import java.io.InputStream; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Properties; - -public class YamlProp extends Prop { - public YamlProp(String yamlFile) { - setYaml(yamlFile); - } - - private void setYaml(String yamlFile) { - LinkedHashMap map = null; - Properties properties = new Properties(); - InputStream in; - try { - Yaml yaml = new Yaml(); - in = YamlProp.class.getClassLoader().getResourceAsStream(yamlFile); - map = yaml.loadAs(in, LinkedHashMap.class); - } catch (Exception e) { - e.printStackTrace(); - } - setProperties(properties, map, ""); - this.properties = properties; - } - - private static void setProperties(Properties properties, Map map, String prefix) { - for (Object key : map.keySet()) { - Object value = map.get(key); - if (key == null) { - continue; - } - if (value instanceof Map) { - setProperties(properties, (Map) value, prefix + key + "."); - } else { - if (value == null) { - continue; - } - properties.setProperty(prefix + key, value.toString()); - } - } - } -} \ No newline at end of file diff --git a/dsAi/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/dsAi/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index 4b65a06e..f3e9efe0 100644 --- a/dsAi/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/dsAi/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,47 +1,83 @@ -com\dsideal\resource\Interceptor\CheckIdsInterceptor.class -com\dsideal\resource\Util\SSHUtil.class -com\dsideal\resource\Plugin\YamlProp.class -com\dsideal\resource\Util\RetKit.class -com\dsideal\resource\Interceptor\LengthInterface.class -com\dsideal\resource\Test\testDb.class -com\dsideal\resource\Util\IdCardGenerator.class -com\dsideal\resource\Interceptor\IsSysAdminInterceptor.class -com\dsideal\resource\Util\TelNumGenerator.class -com\dsideal\resource\Base\Model\BaseModel.class -com\dsideal\resource\JApiDocsGenerator.class -com\dsideal\resource\Util\LogBackLogFactory.class -com\dsideal\resource\Util\ExcelCommonUtil$1.class -com\dsideal\resource\Interceptor\JwtCheckInterface.class -com\dsideal\resource\Interceptor\IsGuidInterceptor.class -com\dsideal\resource\Base\Controller\BaseController.class -com\dsideal\resource\Plugin\PostmanDocPlugin.class -com\dsideal\resource\Util\FileSizeUtil.class -com\dsideal\resource\Util\ExcelCommonUtil.class -com\dsideal\resource\Interceptor\EmptyInterface.class -com\dsideal\resource\Interceptor\IsSysAdminInterface.class -com\dsideal\resource\Interceptor\JwtCheckInterceptor.class -com\dsideal\resource\Interceptor\LengthInterceptor.class -com\dsideal\resource\Interceptor\EmptyInterceptor.class -com\dsideal\resource\Interceptor\IsNumericInterface.class -com\dsideal\resource\Util\RedisKit.class -com\dsideal\resource\Interceptor\CheckIdsInterface.class -com\dsideal\resource\Util\IpUtil.class -com\dsideal\resource\Util\LogBackLog.class -com\dsideal\resource\Util\ExcelExportUtil.class -com\dsideal\resource\Util\PassWordUtil.class -com\dsideal\resource\Util\CookieUtil.class -com\dsideal\resource\Interceptor\IsGuidInterface.class -com\dsideal\resource\Util\MinioUtils.class -com\dsideal\resource\Util\RsaUtils.class -com\dsideal\resource\Util\SsoUtil.class -com\dsideal\resource\Util\JwtUtil.class -com\dsideal\resource\Index\IndexController.class -com\dsideal\resource\Util\CommonUtil.class -com\dsideal\resource\Util\PkUtil.class -com\dsideal\resource\Util\ClickHouseUtil.class -com\jfinal\plugin\activerecord\Db.class -com\dsideal\resource\Util\IDCardUtil.class -com\dsideal\resource\ResApplication.class -com\dsideal\resource\Interceptor\IsNumbericInterceptor.class -com\dsideal\resource\Util\FileUtil.class -com\dsideal\resource\Util\RandomGeneratorUtil.class +com\dsideal\Res\Util\AiPpt\AiPptDemo2.class +com\dsideal\Res\Util\RsaUtils.class +com\dsideal\Res\Util\FileSizeUtil.class +com\dsideal\Res\Interceptor\IsSysAdminInterceptor.class +com\dsideal\Res\Util\RetKit.class +com\dsideal\Res\Util\RocketMqKit$1.class +com\dsideal\Res\Util\IpUtil.class +com\dsideal\Res\Util\FileUtil.class +com\dsideal\Res\Util\Midjourney\Kit\MjCommon.class +com\dsideal\Res\Util\Liblib\Enum\SamplingMethod.class +com\dsideal\Res\Util\KeLing\Kit\KlCommon.class +com\dsideal\Res\Util\LogBackLog.class +com\dsideal\Res\Util\KeLing\Kit\KlErrorCode.class +com\dsideal\Res\Plugin\YamlProp.class +com\dsideal\Res\Interceptor\IsGuidInterface.class +com\dsideal\Res\Util\HttpClient.class +com\dsideal\Res\Util\KeLing\KlImg2Video.class +com\dsideal\Res\Util\Liblib\Enum\UltraTemplate.class +com\dsideal\Res\Util\AiPpt\Kit\HttpUtils$HttpResponse.class +com\dsideal\Res\Util\CookieUtil.class +com\dsideal\Res\Interceptor\IsNumbericInterceptor.class +com\dsideal\Res\Interceptor\IsSysAdminInterface.class +com\dsideal\Res\Interceptor\LengthInterface.class +com\dsideal\Res\Plugin\RocketMQPlugin.class +com\dsideal\Res\Util\JiMeng\JmTxt2Img.class +com\dsideal\Res\Util\JiMeng\JmImg2Video.class +com\dsideal\Res\Util\LogBackLogFactory.class +com\dsideal\Res\Util\Liblib\LibImg2Img.class +com\dsideal\Res\Util\Liblib\Kit\LibLibCommon.class +com\dsideal\Res\Util\DashScope\ImgSpeak.class +com\dsideal\Res\Test\CallDeepSeek.class +com\dsideal\Res\Util\KeLing\KlAccount.class +com\dsideal\Res\Test\MetadataTemplateGenerator.class +com\dsideal\Res\Util\AiPpt\Kit\HttpUtils.class +com\dsideal\Res\Util\Liblib\Kit\LibLibCommon$SignatureInfo.class +com\dsideal\Res\Test\CallDeepSeek$SSEListener.class +com\dsideal\Res\Util\RandomGeneratorUtil.class +com\dsideal\Res\Util\DashScope\VideoStyleTransform.class +com\dsideal\Res\Util\DashScope\ImgSong.class +com\dsideal\Res\Util\ExcelExportUtil.class +com\dsideal\Res\Util\AiPpt\Kit\HttpUtils$HttpRequest.class +com\dsideal\Res\Interceptor\CheckIdsInterceptor.class +com\dsideal\Res\Util\AiPpt\AiPptDemo4.class +com\dsideal\Res\Util\Liblib\LibTxt2Img.class +com\dsideal\Res\Util\JwtUtil.class +com\dsideal\Res\Util\PassWordUtil.class +com\dsideal\Res\Util\Suno\SunoMusicGenerator.class +com\dsideal\Res\Test\CallDeepSeek$1.class +com\dsideal\Res\Interceptor\CheckIdsInterface.class +com\dsideal\Res\Util\JiMeng\Kit\JmCommon.class +com\dsideal\Res\Util\Midjourney\Txt2Img.class +com\dsideal\Res\Util\AiPpt\AiPptDemo3.class +com\dsideal\Res\Util\RocketMqKit.class +com\dsideal\Res\Util\JiMeng\JmTxt2Video.class +com\dsideal\Res\Util\CommonUtil.class +com\dsideal\Res\Util\AiPpt\Kit\ApiKit.class +com\dsideal\Res\Interceptor\IsGuidInterceptor.class +com\dsideal\Res\Util\DashScope\Kit\VideoStyleEnum.class +com\dsideal\Res\Util\AiPpt\AiPptDemo1.class +com\dsideal\Res\Util\KeLing\KlAccount$ResourcePackInfo.class +com\dsideal\Res\Util\AiPpt\Kit\HttpUtils$1.class +com\dsideal\Res\Util\PkUtil.class +com\dsideal\Res\Util\KeLing\KlTxt2Img.class +com\dsideal\Res\Util\Liblib\UltraTxt2Img.class +com\dsideal\Res\AiApplication.class +com\dsideal\Res\Util\DashScope\Kit\DashScopeCommon.class +com\dsideal\Res\Util\JiMeng\Kit\JmErrorCode.class +com\dsideal\Res\Util\HuoShanFangZhou\Kit\HuoShanCommon.class +com\dsideal\Res\Util\IdCardGenerator.class +com\dsideal\Res\Util\Liblib\QueryModelVersion.class +com\dsideal\Res\Util\RedisKit.class +com\dsideal\Res\Util\KeLing\KlTxt2Video.class +com\dsideal\Res\JApiDocsGenerator.class +com\dsideal\Res\Index\IndexController.class +com\dsideal\Res\Interceptor\LengthInterceptor.class +com\dsideal\Res\Util\TelNumGenerator.class +com\dsideal\Res\Interceptor\EmptyInterceptor.class +com\dsideal\Res\Util\IDCardUtil.class +com\dsideal\Res\Interceptor\IsNumericInterface.class +com\dsideal\Res\Util\HuoShanFangZhou\Txt2Img.class +com\dsideal\Res\Plugin\PostmanDocPlugin.class +com\dsideal\Res\Util\Liblib\UltraImg2Img.class +com\dsideal\Res\Interceptor\EmptyInterface.class diff --git a/dsAi/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/dsAi/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index a7ba7024..25ed293f 100644 --- a/dsAi/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/dsAi/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,46 +1,75 @@ -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\TelNumGenerator.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Interceptor\CheckIdsInterceptor.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Interceptor\IsNumbericInterceptor.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\ClickHouseUtil.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Interceptor\CheckIdsInterface.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\IDCardUtil.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\RsaUtils.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\FileSizeUtil.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Test\testDb.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\IpUtil.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\CommonUtil.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Interceptor\EmptyInterceptor.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\JApiDocsGenerator.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\JwtUtil.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\MinioUtils.java -D:\dsWork\dsProject\dsRes\src\main\java\com\jfinal\plugin\activerecord\Db.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\IdCardGenerator.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\PkUtil.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Interceptor\JwtCheckInterceptor.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Interceptor\LengthInterceptor.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Interceptor\IsSysAdminInterface.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Interceptor\IsGuidInterface.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\SsoUtil.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Interceptor\EmptyInterface.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Base\Model\BaseModel.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\LogBackLog.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Interceptor\JwtCheckInterface.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\CookieUtil.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Base\Controller\BaseController.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Plugin\PostmanDocPlugin.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\ExcelExportUtil.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\FileUtil.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\RetKit.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\PassWordUtil.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\LogBackLogFactory.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Interceptor\IsGuidInterceptor.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\SSHUtil.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\ResApplication.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Interceptor\LengthInterface.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Plugin\YamlProp.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Interceptor\IsSysAdminInterceptor.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\RedisKit.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Interceptor\IsNumericInterface.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Index\IndexController.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\ExcelCommonUtil.java -D:\dsWork\dsProject\dsRes\src\main\java\com\dsideal\resource\Util\RandomGeneratorUtil.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\JiMeng\Kit\JmErrorCode.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\Suno\SunoMusicGenerator.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\RocketMqKit.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\AiPpt\AiPptDemo4.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\DashScope\VideoStyleTransform.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Interceptor\IsSysAdminInterface.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\LogBackLog.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\PassWordUtil.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\RsaUtils.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Interceptor\EmptyInterceptor.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Interceptor\IsNumbericInterceptor.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\Liblib\Enum\SamplingMethod.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\AiPpt\AiPptDemo3.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\IpUtil.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\Liblib\Kit\LibLibCommon.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Interceptor\EmptyInterface.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\JiMeng\JmImg2Video.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Interceptor\CheckIdsInterceptor.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Interceptor\IsGuidInterface.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\Liblib\UltraImg2Img.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\HuoShanFangZhou\Txt2Img.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Plugin\RocketMQPlugin.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Plugin\PostmanDocPlugin.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\AiApplication.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Test\CallDeepSeek.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\AiPpt\AiPptDemo2.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\DashScope\Kit\DashScopeCommon.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\KeLing\Kit\KlCommon.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\KeLing\KlAccount.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Interceptor\IsSysAdminInterceptor.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\DashScope\Kit\VideoStyleEnum.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\HttpClient.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\IdCardGenerator.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\CommonUtil.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\JApiDocsGenerator.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\Midjourney\Kit\MjCommon.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\KeLing\KlImg2Video.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Interceptor\IsNumericInterface.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\AiPpt\AiPptDemo1.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Plugin\YamlProp.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\JwtUtil.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Interceptor\IsGuidInterceptor.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Interceptor\LengthInterceptor.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\ExcelExportUtil.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\AiPpt\Kit\HttpUtils.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\JiMeng\JmTxt2Img.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\RedisKit.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\CookieUtil.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\PkUtil.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Index\IndexController.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\Liblib\QueryModelVersion.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Test\MetadataTemplateGenerator.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\LogBackLogFactory.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\KeLing\KlTxt2Video.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\Liblib\UltraTxt2Img.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\JiMeng\Kit\JmCommon.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\Liblib\LibImg2Img.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\KeLing\KlTxt2Img.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\Midjourney\Txt2Img.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\KeLing\Kit\KlErrorCode.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\AiPpt\Kit\ApiKit.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\IDCardUtil.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\Liblib\LibTxt2Img.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\TelNumGenerator.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Interceptor\CheckIdsInterface.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\FileSizeUtil.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Interceptor\LengthInterface.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\DashScope\ImgSpeak.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\Liblib\Enum\UltraTemplate.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\RetKit.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\DashScope\ImgSong.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\HuoShanFangZhou\Kit\HuoShanCommon.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\FileUtil.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\RandomGeneratorUtil.java +D:\dsWork\dsProject\dsAi\src\main\java\com\dsideal\Res\Util\JiMeng\JmTxt2Video.java diff --git a/dsBase/WebRoot/index.html b/dsBase/WebRoot/index.html index 15b0d1c6..9ba976ca 100644 --- a/dsBase/WebRoot/index.html +++ b/dsBase/WebRoot/index.html @@ -1,5 +1,5 @@ - + @@ -171,14 +171,9 @@ var loginPersonInfo = getPersonLoginInfo($); $("#personName").html(" " + loginPersonInfo.person_name); - var globalInfo = getGlobalInfo($, Base64.encode("system_name,copy_right")); - $('title').text(globalInfo.data[0].global_value); - $("#page_title").html(globalInfo.data[0].global_value); - - }); diff --git a/dsBase/WebRoot/login.html b/dsBase/WebRoot/login.html index 71f473b9..5bfb8231 100644 --- a/dsBase/WebRoot/login.html +++ b/dsBase/WebRoot/login.html @@ -1,18 +1,14 @@ - - + - 长春市装备信息管理系统 - - @@ -20,8 +16,6 @@ - - @@ -33,8 +27,6 @@

长春市装备信息管理系统

- -
@@ -58,7 +50,6 @@ alt="点击图片刷新校验码" style="cursor:pointer" onclick="javascript:refreshCaptcha()" />
- @@ -66,9 +57,7 @@ - - \ No newline at end of file diff --git a/dsBase/pom.xml b/dsBase/pom.xml index c1848388..feabfc58 100644 --- a/dsBase/pom.xml +++ b/dsBase/pom.xml @@ -12,161 +12,43 @@ dsBase - - - com.jfinal - jfinal - ${jfinal.version} - - - com.jfinal - jfinal-undertow - ${jfinal-undertow.version} - - - org.slf4j - slf4j-api - - - org.slf4j - slf4j-simple - - - - - com.jfinal - cos - ${jfinal-cos.version} - - - - - com.alibaba - druid - ${druid.version} - - - com.mysql - mysql-connector-j - ${mysql.version} - - - - - cn.hutool - hutool-all - ${hutool.version} - - - com.alibaba - fastjson - ${fastjson.version} - - - org.jsoup - jsoup - ${jsoup.version} - - - commons-io - commons-io - ${commons-io.version} - - - org.apache.commons - commons-email - ${commons-email.version} - - - org.apache.commons - commons-lang3 - ${commons-lang3.version} - - - org.dom4j - dom4j - ${dom4j.version} - - - org.yaml - snakeyaml - ${snakeyaml.version} - + net.coobird thumbnailator ${thumbnailator.version} - - - - - org.slf4j - slf4j-api - ${slf4j.version} - - - - - ch.qos.logback - logback-classic - ${logback.version} - - - ch.qos.logback - logback-core - ${logback.version} - - - ch.qos.logback - logback-access - ${logback.version} - - - - - io.github.yedaxia - japidocs - ${japidocs.version} - - - - io.jsonwebtoken - jjwt-api - ${jsonwebtoken.version} - + + - io.jsonwebtoken - jjwt-impl - ${jsonwebtoken.version} - runtime + org.projectlombok + lombok + ${lombok.version} + provided + it.sauronsoftware.cron4j cron4j ${cron4j.version} + cn.idev.excel fastexcel ${fastexcel.version} - - redis.clients - jedis - ${jedis.version} - - - org.projectlombok - lombok - ${lombok.version} - provided - com.dsideal dsUtils 1.0 compile + + + org.apache.logging.log4j + * + + diff --git a/dsBase/src/main/java/com/dsideal/Base/Base/Controller/BaseController.java b/dsBase/src/main/java/com/dsideal/Base/Base/Controller/BaseController.java index bde38cfb..fef5ab2b 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Base/Controller/BaseController.java +++ b/dsBase/src/main/java/com/dsideal/Base/Base/Controller/BaseController.java @@ -95,7 +95,7 @@ public class BaseController extends Controller { return; } // 构建根节点 - Record record = list.get(0); + Record record = list.getFirst(); int pId = record.getInt("pId"); int id = record.getInt("id"); String name = record.getStr("name"); @@ -171,7 +171,7 @@ public class BaseController extends Controller { if (parentRercod == null || parentRercod.size() == 0) { renderJson(CommonUtil.returnMessageJson(false, "传入的parent_id有误,系统中找不到此记录!")); } else { - String parentCode = parentRercod.get(0).get("code"); + String parentCode = parentRercod.getFirst().get("code"); boolean isExists = bm.checkOrgTypePrincipalshipCodeDuplicate(parentCode + code, false, "0"); if (isExists) { renderJson(CommonUtil.returnMessageJson(false, "传入的code有误,系统中已存在此记录!")); @@ -200,7 +200,7 @@ public class BaseController extends Controller { } //检查是不是存在子节点 List rs = bm.getOrgTypePrincipalship(id, -1, null); - if (rs.size() > 0 && rs.get(0).getInt("is_leaf") > 0) { + if (rs.size() > 0 && rs.getFirst().getInt("is_leaf") > 0) { renderJson(CommonUtil.returnMessageJson(false, "删除失败,此节点存在子节点,请先删除子节点!")); return; } @@ -243,7 +243,7 @@ public class BaseController extends Controller { if (parentRercod == null || parentRercod.size() == 0) { renderJson(CommonUtil.returnMessageJson(false, "传入的parent_id有误,系统中找不到此记录!")); } else { - String parentCode = parentRercod.get(0).get("code"); + String parentCode = parentRercod.getFirst().get("code"); boolean isExists = bm.checkOrgTypePrincipalshipCodeDuplicate(parentCode + code, true, id); if (isExists) { renderJson(CommonUtil.returnMessageJson(false, "传入的code有误,系统中已存在此记录!")); diff --git a/dsBase/src/main/java/com/dsideal/Base/Base/Model/BaseModel.java b/dsBase/src/main/java/com/dsideal/Base/Base/Model/BaseModel.java index b8a99522..a874605c 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Base/Model/BaseModel.java +++ b/dsBase/src/main/java/com/dsideal/Base/Base/Model/BaseModel.java @@ -92,10 +92,10 @@ public class BaseModel { if (!UpdateCheck) { sql = Db.getSql("Base.t_base_org_type_principalship_CountByCode"); - count = Db.find(sql, code).get(0).getInt("c"); + count = Db.find(sql, code).getFirst().getInt("c"); } else { sql = Db.getSql("Base.t_base_org_type_principalship_CountByCodeExceptSelf"); - count = Db.find(sql, code, Integer.parseInt(id)).get(0).getInt("c"); + count = Db.find(sql, code, Integer.parseInt(id)).getFirst().getInt("c"); } if (count == 0) { @@ -202,7 +202,7 @@ public class BaseModel { Kv kv = Kv.by("person_id", person_id); SqlPara sp = Db.getSqlPara("Base.getCurrentPerson", kv); List list = Db.find(sp); - return list.get(0); + return list.getFirst(); } /** @@ -216,7 +216,7 @@ public class BaseModel { Kv kv = Kv.by("person_id", person_id); SqlPara sp = Db.getSqlPara("Base.getCurrentClass", kv); List list = Db.find(sp); - return list.get(0); + return list.getFirst(); } /** @@ -237,7 +237,7 @@ public class BaseModel { Kv kv = Kv.by("person_id", person_id).set("ids", v_ids); SqlPara sp = Db.getSqlPara("Base.isInDutyList", kv); List list = Db.find(sp); - return list.get(0).getInt("c") >= 1 ? true : false; + return list.getFirst().getInt("c") >= 1 ? true : false; } diff --git a/dsBase/src/main/java/com/dsideal/Base/BaseApplication.java b/dsBase/src/main/java/com/dsideal/Base/BaseApplication.java index 253785bd..3a51e3dd 100644 --- a/dsBase/src/main/java/com/dsideal/Base/BaseApplication.java +++ b/dsBase/src/main/java/com/dsideal/Base/BaseApplication.java @@ -11,6 +11,7 @@ import com.dsideal.Base.Interceptor.*; import com.dsideal.Base.LoginPerson.Controller.LoginPersonController; import com.dsideal.Base.LoginPerson.Controller.LoginPersonInternalController; import com.dsideal.Base.Menu.Controller.MenuController; +import com.dsideal.Base.MetaData.Controller.MetaDataController; import com.dsideal.Base.Organization.Controller.OrganizationController; import com.dsideal.Base.Student.Controller.StudentController; import com.dsideal.Base.StudentYd.Controller.StudentYdController; @@ -18,6 +19,7 @@ import com.dsideal.Base.Teacher.Controller.TeacherController; import com.dsideal.Base.TeacherYd.Controller.TeacherYdController; import com.dsideal.Base.Util.LogBackLogFactory; import com.dsideal.Base.Util.PkUtil; +import com.dsideal.Base.Util.RedisKit; import com.dsideal.Config.PropKit; import com.jfinal.config.*; import com.jfinal.plugin.activerecord.ActiveRecordPlugin; @@ -80,6 +82,8 @@ public class BaseApplication extends JFinalConfig { me.add("/studentYd", StudentYdController.class); //菜单管理 me.add("/menu", MenuController.class); + //元数据采集 + me.add("/metadata", MetaDataController.class); } @Override @@ -109,6 +113,7 @@ public class BaseApplication extends JFinalConfig { RedisPlugin redis = new RedisPlugin("Redis", PropKit.get("redis.ip"), PropKit.getInt("redis.port"), 10000); me.add(redis); + } /** diff --git a/dsBase/src/main/java/com/dsideal/Base/Classes/Controller/ClassController.java b/dsBase/src/main/java/com/dsideal/Base/Classes/Controller/ClassController.java index 5bb6c3b8..52662046 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Classes/Controller/ClassController.java +++ b/dsBase/src/main/java/com/dsideal/Base/Classes/Controller/ClassController.java @@ -3,7 +3,6 @@ package com.dsideal.Base.Classes.Controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.dsideal.Base.Classes.Model.ClassModel; -import com.dsideal.Base.Classes.Model.ClassUtil; import com.dsideal.Base.Interceptor.*; import com.dsideal.Base.Organization.Model.OrganizationModel; import com.dsideal.Base.Util.CommonUtil; @@ -25,12 +24,12 @@ public class ClassController extends Controller { /** * 增加班级 * - * @param bureau_id - * @param stage_id - * @param school_length - * @param entry_year - * @param start_num - * @param end_num + * @param bureau_id 单位 id + * @param stage_id 学段 id + * @param school_length 学制 + * @param entry_year 入学年份 + * @param start_num 开始序号 + * @param end_num 结束序号 */ @Before({POST.class}) @EmptyInterface({"bureau_id"}) @@ -46,7 +45,7 @@ public class ClassController extends Controller { return; } - if (!ClassUtil.getStageCorrectRange(stage_id)) { + if (!model.getStageCorrectRange(stage_id)) { resultJson.put("success", false); resultJson.put("message", "学段不正确!"); renderJson(resultJson); @@ -79,7 +78,7 @@ public class ClassController extends Controller { String areaId = orgMap.get("area_id").toString(); String mainSchoolId = orgMap.get("main_school_id").toString(); - JSONObject existsClassObj = ClassUtil.getExistsClassName(bureau_id, stage_id, entry_year, start_num, end_num); + JSONObject existsClassObj = model.getExistsClassName(bureau_id, stage_id, entry_year, start_num, end_num); if (existsClassObj.getBoolean("success")) { resultJson.put("success", false); resultJson.put("message", "班级重复!"); @@ -112,11 +111,11 @@ public class ClassController extends Controller { /** * 获取班级列表 * - * @param bureau_id - * @param stage_id - * @param entry_year - * @param page - * @param limit + * @param bureau_id 单位 id + * @param stage_id 学段 id + * @param entry_year 入读年份 + * @param page 页码 + * @param limit 每页数量 */ @Before({GET.class}) @EmptyInterface({"bureau_id"}) @@ -124,7 +123,7 @@ public class ClassController extends Controller { @IsSysAdminInterface({"1", "2", "3", "4"}) //是不是超级管理员或单位管理员 public void getClassList(String bureau_id, String stage_id, int entry_year, int page, int limit) { JSONObject resultJson = new JSONObject(); - if (!ClassUtil.getStageCorrectRange(stage_id)) { + if (!model.getStageCorrectRange(stage_id)) { resultJson.put("success", false); resultJson.put("message", "学段不正确!"); renderJson(resultJson); @@ -143,8 +142,8 @@ public class ClassController extends Controller { /** * 修改班级名称 * - * @param class_id - * @param class_name + * @param class_id 班级 id + * @param class_name 班级名称 */ @Before({POST.class}) @EmptyInterface({"class_id", "class_name"}) @@ -171,23 +170,22 @@ public class ClassController extends Controller { /** * 根据班级ID获取班级信息 * - * @param class_id + * @param class_id 班级 id */ @Before({GET.class}) @EmptyInterface({"class_id"}) @IsSysAdminInterface({"1", "2", "3", "4"}) //是不是超级管理员或单位管理员 public void getClassInfo(String class_id) { JSONObject resultJson = new JSONObject(); - Map classMap = model.getClassInfoByClassId(class_id); - if (classMap == null) { + JSONObject jo = model.getClassInfoByClassId(class_id); + if (jo == null) { resultJson.put("success", false); resultJson.put("message", "获取班级信息异常!"); renderJson(resultJson); - return; } else { resultJson.put("success", true); - resultJson.put("class_name", classMap.get("class_name").toString()); - resultJson.put("bureau_id", classMap.get("bureau_id").toString()); + resultJson.put("class_name", jo.get("class_name").toString()); + resultJson.put("bureau_id", jo.get("bureau_id").toString()); renderJson(resultJson); } } @@ -195,7 +193,7 @@ public class ClassController extends Controller { /** * 删除班级 * - * @param class_ids + * @param class_ids 班级 ids */ @Before({POST.class}) @EmptyInterface({"class_ids"}) @@ -227,14 +225,14 @@ public class ClassController extends Controller { /** * 根据学校ID获取学部 * - * @param bureau_id + * @param bureau_id 单位 id */ @Before({GET.class}) @EmptyInterface({"bureau_id"}) public void getStageList(String bureau_id) { JSONObject resultJson = new JSONObject(); OrganizationModel orgModel = new OrganizationModel(); - String schoolType = orgModel.getOrgInfoById(bureau_id).get(0).getStr("school_type_id"); + String schoolType = orgModel.getOrgInfoById(bureau_id).getFirst().getStr("school_type_id"); JSONArray listArray = model.getStageList(schoolType); resultJson.put("success", true); diff --git a/dsBase/src/main/java/com/dsideal/Base/Classes/Model/ClassModel.java b/dsBase/src/main/java/com/dsideal/Base/Classes/Model/ClassModel.java index 463591f1..03b1d522 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Classes/Model/ClassModel.java +++ b/dsBase/src/main/java/com/dsideal/Base/Classes/Model/ClassModel.java @@ -10,6 +10,8 @@ import com.jfinal.plugin.activerecord.Page; import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.activerecord.SqlPara; +import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.UUID; @@ -28,8 +30,8 @@ public class ClassModel { String sql = Db.getSql("loginPerson.getLoginInfoByPersonId"); List list = Db.find(sql, person_id); if (list.size() > 0) { - String bureauId = list.get(0).getStr("bureau_id"); - String identityId = list.get(0).getStr("identity_id"); + String bureauId = list.getFirst().getStr("bureau_id"); + String identityId = list.getFirst().getStr("identity_id"); if (identityId.equals("1")) { flag = true; } else { @@ -37,7 +39,7 @@ public class ClassModel { sql = Db.getSql("organization.getOrgInfoById"); list = Db.find(sql, bureauId); if (list.size() > 0) { - int schoolTypeId = list.get(0).getInt("school_type_id"); + int schoolTypeId = list.getFirst().getInt("school_type_id"); if (schoolTypeId > 0) { flag = true; } @@ -130,14 +132,14 @@ public class ClassModel { JSONObject obj = new JSONObject(); String sql = Db.getSql("class.getClassInfoByClassId"); List list = Db.find(sql, class_id); - if (list.size() > 0) { - obj.put("class_name", list.get(0).getStr("class_name")); - obj.put("altas_name", list.get(0).getStr("altas_name")); - obj.put("entry_year", list.get(0).getStr("entry_year")); - obj.put("city_id", list.get(0).getStr("city_id")); - obj.put("area_id", list.get(0).getStr("area_id")); - obj.put("main_school_id", list.get(0).getStr("main_school_id")); - obj.put("bureau_id", list.get(0).getStr("bureau_id")); + if (!list.isEmpty()) { + obj.put("class_name", list.getFirst().getStr("class_name")); + obj.put("altas_name", list.getFirst().getStr("altas_name")); + obj.put("entry_year", list.getFirst().getStr("entry_year")); + obj.put("city_id", list.getFirst().getStr("city_id")); + obj.put("area_id", list.getFirst().getStr("area_id")); + obj.put("main_school_id", list.getFirst().getStr("main_school_id")); + obj.put("bureau_id", list.getFirst().getStr("bureau_id")); return obj; } else { return null; @@ -184,8 +186,7 @@ public class ClassModel { public int getStudentCountByClassId(String class_id) { String sql = Db.getSql("class.getStudentCountByClassId"); List list = Db.find(sql, class_id); - int count = list.size(); - return count; + return list.size(); } /** @@ -236,4 +237,63 @@ public class ClassModel { } return ja; } + /** + * 功能:学段是否在正确的范围内 + * 作者:黄海 + * 日期:2018-12-04 + * + * @param stage_id + * @return + */ + public boolean getStageCorrectRange(String stage_id) { + String[] stageArr = new String[]{"4", "5", "6", "7", "8"}; + for (String s : stageArr) { + if (s.equals(stage_id)) { + return true; + } + } + return false; + } + + /** + * 功能:获取班级名是否重复 + * 作者:黄海 + * 日期:2018-12-04 + * + * @param bureau_id + * @param stage_id + * @param entry_year + * @param start_num + * @param end_num + * @return + */ + public JSONObject getExistsClassName(String bureau_id, String stage_id, int entry_year, int start_num, int end_num) { + JSONObject result = new JSONObject(); + + List addClassList = new ArrayList<>(); + for (int i = start_num; i < (end_num + 1); i++) { + addClassList.add(entry_year + "级" + i + "班"); + } + List dbClassList = new ArrayList<>(); + ClassModel classmodel = new ClassModel(); + List classList = classmodel.getClassListByBureauIdStageIdEntryYear(bureau_id, stage_id, entry_year); + if (classList != null) { + for (int i = 0; i < classList.size(); i++) { + dbClassList.add(classList.get(i).get("class_name").toString()); + } + Collection exists = new ArrayList(dbClassList); + Collection notexists = new ArrayList(dbClassList); + exists.removeAll(addClassList); + notexists.removeAll(exists); + if (notexists.size() > 0) { + result.put("success", true); + result.put("exists_list", notexists); + } else { + result.put("success", false); + } + } else { + result.put("success", false); + } + return result; + } } diff --git a/dsBase/src/main/java/com/dsideal/Base/Classes/Model/ClassUtil.java b/dsBase/src/main/java/com/dsideal/Base/Classes/Model/ClassUtil.java deleted file mode 100644 index b04efe8b..00000000 --- a/dsBase/src/main/java/com/dsideal/Base/Classes/Model/ClassUtil.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.dsideal.Base.Classes.Model; - -import com.alibaba.fastjson.JSONObject; -import com.jfinal.plugin.activerecord.Record; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -public class ClassUtil { - - /** - * 功能:学段是否在正确的范围内 - * 作者:黄海 - * 日期:2018-12-04 - * - * @param stage_id - * @return - */ - public static boolean getStageCorrectRange(String stage_id) { - String[] stageArr = new String[]{"4", "5", "6", "7", "8"}; - for (String s : stageArr) { - if (s.equals(stage_id)) { - return true; - } - } - return false; - } - - /** - * 功能:获取班级名是否重复 - * 作者:黄海 - * 日期:2018-12-04 - * - * @param bureau_id - * @param stage_id - * @param entry_year - * @param start_num - * @param end_num - * @return - */ - public static JSONObject getExistsClassName(String bureau_id, String stage_id, int entry_year, int start_num, int end_num) { - JSONObject result = new JSONObject(); - - List addClassList = new ArrayList<>(); - for (int i = start_num; i < (end_num + 1); i++) { - addClassList.add(entry_year + "级" + i + "班"); - } - List dbClassList = new ArrayList<>(); - ClassModel classmodel = new ClassModel(); - List classList = classmodel.getClassListByBureauIdStageIdEntryYear(bureau_id, stage_id, entry_year); - if (classList != null) { - for (int i = 0; i < classList.size(); i++) { - dbClassList.add(classList.get(i).get("class_name").toString()); - } - Collection exists = new ArrayList(dbClassList); - Collection notexists = new ArrayList(dbClassList); - exists.removeAll(addClassList); - notexists.removeAll(exists); - if (notexists.size() > 0) { - result.put("success", true); - result.put("exists_list", notexists); - } else { - result.put("success", false); - } - } else { - result.put("success", false); - } - return result; - } -} diff --git a/dsBase/src/main/java/com/dsideal/Base/Dm/Controller/DmController.java b/dsBase/src/main/java/com/dsideal/Base/Dm/Controller/DmController.java index 69621b3c..d5ddbac6 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Dm/Controller/DmController.java +++ b/dsBase/src/main/java/com/dsideal/Base/Dm/Controller/DmController.java @@ -215,7 +215,7 @@ public class DmController extends Controller { if (need_root_boolean) { List records = model.getAreaInfoById(parent_id); if (records != null && !records.isEmpty()) { - Record record = records.get(0); + Record record = records.getFirst(); record.set("open", true); dtnew.add(record); } @@ -234,7 +234,7 @@ public class DmController extends Controller { renderJson(CommonUtil.returnMessageJson(false, "传入的parent_id的值不是一个合法的uuid!")); return; } - Record rootRecord = model.getAreaInfoById(parent_id).get(0); + Record rootRecord = model.getAreaInfoById(parent_id).getFirst(); List list = model.getArea(parent_id); int level_id = rootRecord.getInt("level_id"); @@ -255,7 +255,7 @@ public class DmController extends Controller { area_name = record.getStr("area_name"); area_code = record.getStr("area_code"); is_leaf = record.getInt("is_leaf"); - last = is_leaf == 0 ? true : false; + last = is_leaf == 0; // 创建要添加的新节点 TDmArea newNode = new TDmArea(area_name, pId, area_code, id, is_leaf, false, last,level_id+1); rootNode.addChild(newNode); diff --git a/dsBase/src/main/java/com/dsideal/Base/Dm/Model/DmModel.java b/dsBase/src/main/java/com/dsideal/Base/Dm/Model/DmModel.java index d1dbccc0..3c12b4e7 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Dm/Model/DmModel.java +++ b/dsBase/src/main/java/com/dsideal/Base/Dm/Model/DmModel.java @@ -40,7 +40,7 @@ public class DmModel { */ public Record getCityCoordinate(String city_id) { String sql = Db.getSql("dm.getCityCoordinate"); - return Db.find(sql, city_id).get(0); + return Db.find(sql, city_id).getFirst(); } /** @@ -226,40 +226,6 @@ public class DmModel { } } - /** - * 功能:根据上级代码ID,获取它的等级,市:1,县区:2,单位:3,部门:4,找不到是-1 - * - * @return - */ - public int getOrgLevel(String org_id) { - String sql = Db.getSql("dm.getOrgLevel"); - List records = Db.find(sql, org_id); - if (records.size() > 0) { - //如果org_id与parent_id一样的话,那么应该是单位 - if (records.get(0).getStr("parent_id").equals(org_id)) { - return 3; - } else//否则是部门 - { - return 4; - } - } - - //去行政区划表中查找 - sql = Db.getSql("dm.getAreaById"); - records = Db.find(sql, org_id); - - if (records.size() == 0) { - return -1; - } - if (records.get(0).getStr("city_id").equals(org_id)) { - return 1; - } else if (records.get(0).getStr("area_id").equals(org_id)) { - return 2; - } else { - return -1; - } - } - /** * 功能:获取学校类型 * 作者:黄海 @@ -312,15 +278,4 @@ public class DmModel { return Db.find(sql, area_id); } - /** - * 功能:获取当前安装地区下有哪些个县区 - * 作者:黄海 - * 时间:2019-01-08 - * - * @return - */ - public List getAllAreaInfoByInstallCity() { - String sql = Db.getSql("dm.getAllAreaInfoByInstallCity"); - return Db.find(sql); - } } diff --git a/dsBase/src/main/java/com/dsideal/Base/ExcelImportTemplate/StudentImportExcelUtil.java b/dsBase/src/main/java/com/dsideal/Base/ExcelImportTemplate/StudentImportExcelUtil.java index 50e997c9..3e600c2a 100644 --- a/dsBase/src/main/java/com/dsideal/Base/ExcelImportTemplate/StudentImportExcelUtil.java +++ b/dsBase/src/main/java/com/dsideal/Base/ExcelImportTemplate/StudentImportExcelUtil.java @@ -211,7 +211,7 @@ public class StudentImportExcelUtil { //计算本校应该有哪些学段 OrganizationModel orgModel = new OrganizationModel(); - String schoolType = orgModel.getOrgInfoById(bureauId).get(0).getStr("school_type_id"); + String schoolType = orgModel.getOrgInfoById(bureauId).getFirst().getStr("school_type_id"); ClassModel cm = new ClassModel(); JSONArray listArray = cm.getStageList(schoolType); Map mapStage = new HashMap<>(); //可用学段 @@ -417,9 +417,9 @@ public class StudentImportExcelUtil { OrganizationModel orgModel = new OrganizationModel(); List rs = orgModel.getAreaIdByParentId(bureau_id); if (rs != null && !rs.isEmpty()) { - city_id = rs.get(0).getStr("city_id"); - area_id = rs.get(0).getStr("area_id"); - main_school_id = rs.get(0).getStr("main_school_id"); + city_id = rs.getFirst().getStr("city_id"); + area_id = rs.getFirst().getStr("area_id"); + main_school_id = rs.getFirst().getStr("main_school_id"); } else { city_id = "-1"; area_id = "-1"; diff --git a/dsBase/src/main/java/com/dsideal/Base/ExcelImportTemplate/StudentTemplateUtil.java b/dsBase/src/main/java/com/dsideal/Base/ExcelImportTemplate/StudentTemplateUtil.java index bf1a992c..e05cdb7e 100644 --- a/dsBase/src/main/java/com/dsideal/Base/ExcelImportTemplate/StudentTemplateUtil.java +++ b/dsBase/src/main/java/com/dsideal/Base/ExcelImportTemplate/StudentTemplateUtil.java @@ -188,7 +188,7 @@ public class StudentTemplateUtil { } else { //还是根据传入的学校id计算出学段 OrganizationModel orgModel = new OrganizationModel(); - String schoolType = orgModel.getOrgInfoById(school_id).get(0).getStr("school_type_id"); + String schoolType = orgModel.getOrgInfoById(school_id).getFirst().getStr("school_type_id"); ClassModel cm = new ClassModel(); JSONArray listArray = cm.getStageList(schoolType); for (int i = 0; i < listArray.size(); i++) { diff --git a/dsBase/src/main/java/com/dsideal/Base/ExcelImportTemplate/TeacherImportExcelUtil.java b/dsBase/src/main/java/com/dsideal/Base/ExcelImportTemplate/TeacherImportExcelUtil.java index 5cd8ae95..811f6295 100644 --- a/dsBase/src/main/java/com/dsideal/Base/ExcelImportTemplate/TeacherImportExcelUtil.java +++ b/dsBase/src/main/java/com/dsideal/Base/ExcelImportTemplate/TeacherImportExcelUtil.java @@ -349,9 +349,9 @@ public class TeacherImportExcelUtil { OrganizationModel orgModel = new OrganizationModel(); List rs = orgModel.getAreaIdByParentId(bureau_id); if (rs != null && !rs.isEmpty()) { - city_id = rs.get(0).getStr("city_id"); - area_id = rs.get(0).getStr("area_id"); - main_school_id = rs.get(0).getStr("main_school_id"); + city_id = rs.getFirst().getStr("city_id"); + area_id = rs.getFirst().getStr("area_id"); + main_school_id = rs.getFirst().getStr("main_school_id"); } else { city_id = "-1"; area_id = "-1"; diff --git a/dsBase/src/main/java/com/dsideal/Base/Global/Controller/GlobalController.java b/dsBase/src/main/java/com/dsideal/Base/Global/Controller/GlobalController.java index 8fd0466c..786cd2ef 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Global/Controller/GlobalController.java +++ b/dsBase/src/main/java/com/dsideal/Base/Global/Controller/GlobalController.java @@ -41,7 +41,7 @@ public class GlobalController extends Controller { renderJson(CommonUtil.returnMessageJson(false, "没有找到对应的省和市!")); return; } - String area_id = records.get(0).getStr("id"); + String area_id = records.getFirst().getStr("id"); //保存 GlobalModel model = new GlobalModel(); model.saveInstallArea(area_id); diff --git a/dsBase/src/main/java/com/dsideal/Base/Global/Model/GlobalModel.java b/dsBase/src/main/java/com/dsideal/Base/Global/Model/GlobalModel.java index d752887c..4b42bdfc 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Global/Model/GlobalModel.java +++ b/dsBase/src/main/java/com/dsideal/Base/Global/Model/GlobalModel.java @@ -75,7 +75,7 @@ public class GlobalModel { public int checkGlobalCodeCount(String global_id, String globalCode) { String install_area = getInstallArea(); String sql = "select count(1) as c from t_base_global where global_id<>? and global_code=? and install_area=?"; - Record record = Db.find(sql, Integer.parseInt(global_id), globalCode, install_area).get(0); + Record record = Db.find(sql, Integer.parseInt(global_id), globalCode, install_area).getFirst(); return record.getInt("c"); } diff --git a/dsBase/src/main/java/com/dsideal/Base/Graduation/GraduationAction.java b/dsBase/src/main/java/com/dsideal/Base/Graduation/GraduationAction.java index b68bfe3c..f1b57471 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Graduation/GraduationAction.java +++ b/dsBase/src/main/java/com/dsideal/Base/Graduation/GraduationAction.java @@ -19,7 +19,7 @@ public class GraduationAction implements Runnable { String sql = Db.getSql("graduation.checkCurrentYearIsGraduation"); Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR); - int count = Db.find(sql, year).get(0).getInt("count"); + int count = Db.find(sql, year).getFirst().getInt("count"); if (count > 0) { while (true) { //2、检查需要毕业的班级及学生、家长 diff --git a/dsBase/src/main/java/com/dsideal/Base/LoginPerson/Model/LoginPersonModel.java b/dsBase/src/main/java/com/dsideal/Base/LoginPerson/Model/LoginPersonModel.java index eabd0e1a..53e799ac 100644 --- a/dsBase/src/main/java/com/dsideal/Base/LoginPerson/Model/LoginPersonModel.java +++ b/dsBase/src/main/java/com/dsideal/Base/LoginPerson/Model/LoginPersonModel.java @@ -35,7 +35,7 @@ public class LoginPersonModel { */ public boolean checkPwdByPersonId(String person_id, String pwd) { String sql = Db.getSql("loginPerson.checkPwdByPersonId"); - int count = Db.find(sql, person_id, CommonUtil.getLdapPassword(pwd)).get(0).getInt("c"); + int count = Db.find(sql, person_id, CommonUtil.getLdapPassword(pwd)).getFirst().getInt("c"); return count > 0; } @@ -65,7 +65,7 @@ public class LoginPersonModel { String sql = Db.getSql("loginPerson.getLoginInfoByPersonId"); List list = Db.find(sql, personId); if (!list.isEmpty()) { - return list.get(0); + return list.getFirst(); } else { return null; } diff --git a/dsBase/src/main/java/com/dsideal/Base/Menu/Controller/MenuController.java b/dsBase/src/main/java/com/dsideal/Base/Menu/Controller/MenuController.java index 144da4da..9ae8757b 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Menu/Controller/MenuController.java +++ b/dsBase/src/main/java/com/dsideal/Base/Menu/Controller/MenuController.java @@ -75,12 +75,12 @@ public class MenuController extends Controller { //获取单位管理员菜单 if (identity_id < 5) { //1,2,3,4 List list = model.selectBureauMenuByPersonId(identity_id, person_id).getList(); - renderJson(MenuUtil.convertListToMenuForTreeTable(list).getChildren().get(0).getChildren()); + renderJson(MenuUtil.convertListToMenuForTreeTable(list).getChildren().getFirst().getChildren()); return; } //5,6 角色,就是教师,学生 List list = model.selectMenuByPersonId(person_id); - renderJson(MenuUtil.convertListToMenuForTreeTable(list).getChildren().get(0).getChildren()); + renderJson(MenuUtil.convertListToMenuForTreeTable(list).getChildren().getFirst().getChildren()); } /** @@ -100,7 +100,7 @@ public class MenuController extends Controller { renderJson(CommonUtil.returnMessageJson(false, "无法获取指定ID的信息!")); return; } - Record record = list.get(0); + Record record = list.getFirst(); int duties_id; int level_id = record.getInt("level"); if (level_id == 4) { @@ -198,7 +198,7 @@ public class MenuController extends Controller { renderJson(CommonUtil.returnMessageJson(false, "无法获取指定ID的信息!")); return; } - Record record = list.get(0); + Record record = list.getFirst(); int duties_id; int level_id = record.getInt("level"); if (level_id == 4) { diff --git a/dsBase/src/main/java/com/dsideal/Base/Menu/Model/MenuModel.java b/dsBase/src/main/java/com/dsideal/Base/Menu/Model/MenuModel.java index 357ef0e6..deaac736 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Menu/Model/MenuModel.java +++ b/dsBase/src/main/java/com/dsideal/Base/Menu/Model/MenuModel.java @@ -9,10 +9,7 @@ import com.jfinal.plugin.activerecord.Page; import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.activerecord.SqlPara; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; public class MenuModel { @@ -69,7 +66,7 @@ public class MenuModel { * @param duties_id */ public void saveMenuByDuty(int duties_id, String menu_ids) { - if(StrKit.isBlank(menu_ids)) return; + if (StrKit.isBlank(menu_ids)) return; String[] menu_array = menu_ids.split(","); List list = new ArrayList<>(); for (int i = 0; i < menu_array.length; i++) { @@ -149,18 +146,18 @@ public class MenuModel { deleteMenuIdRecords = Db.find(sql); } - List delList = new ArrayList(); + List delList = new ArrayList<>(); for (Record r : menuRecords) { - if (deleteMenuIdRecords != null && deleteMenuIdRecords.size() > 0) { + if (deleteMenuIdRecords != null && !deleteMenuIdRecords.isEmpty()) { for (Record deleteR : deleteMenuIdRecords) { - if (r.getInt("menu_id") == deleteR.getInt("menu_id")) + if (Objects.equals(r.getInt("menu_id"), deleteR.getInt("menu_id"))) delList.add(r); } } } - if (delList != null && delList.size() > 0) menuRecords.removeAll(delList); + if (!delList.isEmpty()) menuRecords.removeAll(delList); - if (menuRecords != null && menuRecords.size() > 0) { + if (!menuRecords.isEmpty()) { Map map = new HashMap<>(); for (int i = 0; i < menuRecords.size(); i++) { int menu_id = menuRecords.get(i).getInt("menu_id"); @@ -236,7 +233,7 @@ public class MenuModel { for (int i = 0; i < identityStringArray.length; i++) { Record r = new Record(); r.set("menu_id", menu_id); - r.set("identity_id",Integer.parseInt(identityStringArray[i])); + r.set("identity_id", Integer.parseInt(identityStringArray[i])); Db.save("t_base_menu_privilage", "menu_id", r); } return menu_id; diff --git a/dsBase/src/main/java/com/dsideal/Base/MetaData/Controller/MetaDataController.java b/dsBase/src/main/java/com/dsideal/Base/MetaData/Controller/MetaDataController.java new file mode 100644 index 00000000..eaf48630 --- /dev/null +++ b/dsBase/src/main/java/com/dsideal/Base/MetaData/Controller/MetaDataController.java @@ -0,0 +1,957 @@ +package com.dsideal.Base.MetaData.Controller; + +import com.alibaba.fastjson.JSONObject; +import com.dsideal.Base.Interceptor.EmptyInterface; +import com.dsideal.Base.Interceptor.IsNumericInterface; +import com.dsideal.Base.Interceptor.LengthInterface; +import com.dsideal.Base.MetaData.Model.MetaDataModel; +import com.dsideal.Base.MetaData.Utils.ImportExcelController; +import com.dsideal.Base.Util.CommonUtil; +import com.dsideal.Base.Util.JwtUtil; +import com.dsideal.Config.PropKit; +import com.jfinal.aop.Before; +import com.jfinal.core.Controller; +import com.jfinal.ext.interceptor.GET; +import com.jfinal.ext.interceptor.POST; +import com.jfinal.plugin.activerecord.Page; +import com.jfinal.plugin.activerecord.Record; +import org.apache.poi.hssf.usermodel.*; +import org.apache.poi.ss.usermodel.IndexedColors; + +import java.io.File; +import java.net.URISyntaxException; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + +public class MetaDataController extends Controller { + //实例化model + MetaDataModel metaDataModel = new MetaDataModel(); + + /** + * 功能:【MetaData-Task-Collect-1】元数据采集模板-下载 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-09 + * 备注: + * @throws Exception + */ + @Before({GET.class}) + @IsNumericInterface({"task_id"}) + public void downloadDataTemplate(int task_id) throws Exception{ + JSONObject result = new JSONObject(); + + String templatePath = CommonUtil.getClassPath() + + PropKit.get("excel.ExcelMetaDataImportTemplatePathSuffix").replace("\\", "/") + "metadataTemplate.xls"; + HSSFWorkbook workbook = ImportExcelController.getHSSFWorkbookReportTemplate(templatePath); + HSSFSheet sheet = null, sheetTable1 = null, sheetTable2 = null; + try { + sheet = workbook.getSheetAt(0); + sheetTable1 = workbook.getSheetAt(1); + sheetTable2 = workbook.getSheetAt(2); + } catch (Exception e) { + result.put("success",false); + result.put("message","模板读取错误!"); + renderJson(result); + } + + // 写入验证信息 + JSONObject titleObject = new JSONObject(); + titleObject.put("task_id",task_id); + titleObject.put("template","metadataTemplate"); + HSSFRow firstRow = null; + if (sheet != null) { + firstRow = sheet.createRow(0); + } + if (firstRow != null) { + firstRow.setHeight((short) 0); + } + HSSFCell firstCell = null; + if (firstRow != null) { + firstCell = firstRow.createCell(0); + } + if (firstCell != null) { + firstCell.setCellValue(titleObject.toString()); + } + + // 空白单元格样式 + HSSFCellStyle dataCellStyle = ImportExcelController.createCellColorStyle(workbook, IndexedColors.WHITE.getIndex()); + + metaDataModel.handleSheetData(sheetTable1, dataCellStyle); + metaDataModel.handleSheetData(sheetTable2, dataCellStyle); + + ImportExcelController.downloadExcel(getResponse(),workbook, "元数据信息导入模板",false); + renderNull(); + + } + + + /** + * 功能:【MetaData-Task-Collect-2】元数据采集模板-导入 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-09 + * 备注: + */ + @Before({POST.class}) + @IsNumericInterface({"task_id","system_id"}) + public void importDataTemplate(int task_id, int system_id) throws ParseException { + //操作人 + Record rPerson = JwtUtil.getPersonInfo(getRequest()); + String person_id = rPerson.getStr("person_id"); + String bureau_id = rPerson.getStr("bureau_id"); + + JSONObject result = new JSONObject(); + File file = getFile().getFile(); + if (file == null) { + result.put("success", false); + result.put("message", "未上传文件!"); + renderJson(result); + return; + } + + Record supplierRecord = metaDataModel.getSupplierIdByPersonId(person_id); + if (supplierRecord == null) { + result.put("success", false); + result.put("message", "未查询到对应供应商信息!"); + renderJson(result); + return; + } + int supplier_id = supplierRecord.getInt("id"); + + //1:必填;0:非必填; + //1:验证长度;2:验证数字;3:替换是否;4:时间;0:无需验证; + //数字:长度; + //1:String;2:int;3:date; + String[] columns = { + "column_name@字段名@1@1@50@1", "data_type@数据类型@1@0@0@1", "max_length@长度@1@2@0@2", "is_nullable@是否为空@1@3@0@2", + "primary_key@是否主键@1@3@0@2", "column_default@默认值@0@0@0@1", "column_comment@描述@1@1@1024@1", "column_create_time@创建时间@1@0@0@3", + "column_update_time@更新时间@0@0@0@3", "development_manager@负责人@1@1@200@1" + }; + + JSONObject importResult = ImportExcelController.importMetadataInfoTemplate(file, file.getName(), task_id, columns); + if (!importResult.getBoolean("success")) { + renderJson(importResult); + return; + } + + @SuppressWarnings("unchecked") + HashMap>> dataMap = (HashMap>>) importResult.get("dataMap"); + + String checkMessage = ""; + Iterator>>> iterator = dataMap.entrySet().iterator(); + while (iterator.hasNext()) { + Map.Entry>> entry = iterator.next(); + String table_name = entry.getKey(); + List> dataList = entry.getValue(); + // 验证数据是否正确,并更新数据 + JSONObject checkResult = metaDataModel.checkMetadataList(table_name, dataList, columns); + if (!checkResult.getBoolean("success")) { + checkMessage += "sheet[" + table_name + "]存在问题:" + (checkResult.containsKey("message") ? checkResult.getString("message") : "") + ";"; + } else { + @SuppressWarnings("unchecked") + List> checkedDataList = (List>) checkResult.get("dataList"); + dataList = checkedDataList; + dataMap.put(table_name, dataList); + } + } + if (!"".equals(checkMessage)) { + result.put("success", false); + result.put("message", checkMessage); + renderJson(result); + return; + } + + JSONObject importToDBResult = metaDataModel.importMetadataToDB(dataMap, columns, task_id, system_id, supplier_id, person_id, bureau_id); + renderJson(importToDBResult); + } + + + /** + * 功能:【MetaData-System-1】获取供应商系统列表 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-11 + * 备注: + * @param page + * @param limit + * @param system_name + */ + @Before({GET.class}) + @IsNumericInterface({"page", "limit"}) + public void listSystem(int page, int limit, String system_name) { + //操作人 + Record rPerson = JwtUtil.getPersonInfo(getRequest()); + String bureau_id = rPerson.getStr("bureau_id"); + + Page dt; + if (system_name == null || system_name.isEmpty()) { + dt = metaDataModel.getSystemList(bureau_id, page, limit); + } else { + dt = metaDataModel.getSystemListBySystemName(bureau_id, page, limit, system_name); + } + renderJson(dt); + } + + + /** + * 功能:【MetaData-System-2】保存供应商系统信息 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-11 + * 备注: + * @param id + * @param system_name + * @param system_short_name + * @param supplier_id + * @param system_version + * @param system_status + * @param system_synopsis + * @param development_manager + * @param contact_information + * @param remark + */ + @Before({POST.class}) + @EmptyInterface({"system_name", "development_manager"}) + @IsNumericInterface({"id", "supplier_id"}) + public void saveSystem(int id, String system_name, String system_short_name, int supplier_id, String system_version, + int system_status, String system_synopsis, String development_manager, String contact_information, String remark) { + //操作人 + Record rPerson = JwtUtil.getPersonInfo(getRequest()); + String person_id = rPerson.getStr("person_id"); + String bureau_id = rPerson.getStr("bureau_id"); + + JSONObject result = metaDataModel.saveSystem(id, system_name, system_short_name, supplier_id, system_version, system_status, system_synopsis, + development_manager, contact_information, remark, person_id, bureau_id); + + renderJson(result); + } + + + /** + * 功能:【MetaData-System-3】获取供应商系统信息 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-11 + * 备注: + * @param id + */ + @Before({GET.class}) + @IsNumericInterface({"id"}) + public void getSystemById(int id) { + Record record; + try { + record = metaDataModel.getSystemInfoBySystemId(id); + if (record != null) { + record.set("success", true); + } else { + record = new Record(); + record.set("success", false); + } + } catch (Exception e) { + System.out.println(e.getMessage()); + record = new Record(); + record.set("success", false); + } + + if (!record.getBoolean("success")) { + record.set("message", "获取供应商系统信息异常!"); + } + renderJson(record); + } + + + /** + * 功能:【MetaData-System-4】删除供应商系统信息 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-11 + * 备注: + * @param id + */ + @Before({POST.class}) + @IsNumericInterface({"id"}) + public void deleteSystemById(int id) { + + JSONObject result = new JSONObject(); + //操作人 + Record rPerson = JwtUtil.getPersonInfo(getRequest()); + String person_id = rPerson.getStr("person_id"); + + if (!metaDataModel.deleteSystemById(person_id, id)) { + result.put("success", false); + result.put("message", "删除供应商系统信息出错!"); + } else { + result.put("success", true); + } + renderJson(result); + + } + + + /** + * 功能:【MetaData-Supplier-1】获取供应商列表 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-11 + * 备注: + * @param page + * @param limit + * @param supplier_name + */ + @Before({GET.class}) + @IsNumericInterface({"page", "limit"}) + public void listSupplier(int page, int limit, String supplier_name) { + // 操作人 + Record rPerson = JwtUtil.getPersonInfo(getRequest()); + String bureau_id = rPerson.getStr("bureau_id"); + + Page dt; + if (supplier_name == null || supplier_name.isEmpty()) { + dt = metaDataModel.getSupplierList(bureau_id, page, limit); + } else { + dt = metaDataModel.getSupplierListBySupplierName(bureau_id, page, limit, supplier_name); + } + renderJson(dt); + } + + + + /** + * 功能:【MetaData-Supplier-2】保存供应商信息(同时处理供应商账号) + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-12 + * 备注: + * @param id + * @param supplier_name + * @param supplier_info_json + * @param contact_person_json + * @param remark + */ + @Before({POST.class}) + @LengthInterface({"supplier_name,2,50"}) + @IsNumericInterface({"id"}) + public void saveSupplier(int id, String supplier_name, String supplier_info_json, String contact_person_json, String remark){ + + JSONObject resultJson = new JSONObject(); + System.out.println("" + id); + + // 检查参数合法性 + if (supplier_name.length() > 50) { + resultJson.put("success", false); + resultJson.put("message", "供应商名称长度不正确!"); + renderJson(resultJson); + return; + } + if (supplier_info_json == null || supplier_info_json.isEmpty()) { + supplier_info_json = "{}"; + } + if (contact_person_json == null || contact_person_json.isEmpty()) { + contact_person_json = "{}"; + } + // 供应商基本信息 + String supplier_short_name = "", register_address = "", office_address = "", office_phone = "", office_email = "", company_website = ""; + Date set_up_time = new Date(); + try { + JSONObject supplier_json = JSONObject.parseObject(supplier_info_json); + supplier_short_name = supplier_json.containsKey("supplier_short_name") ? supplier_json.getString("supplier_short_name") : ""; + set_up_time = supplier_json.containsKey("set_up_time") ? supplier_json.getDate("set_up_time") : set_up_time; + register_address = supplier_json.containsKey("register_address") ? supplier_json.getString("register_address") : ""; + office_address = supplier_json.containsKey("office_address") ? supplier_json.getString("office_address") : ""; + office_phone = supplier_json.containsKey("office_phone") ? supplier_json.getString("office_phone") : ""; + office_email = supplier_json.containsKey("office_email") ? supplier_json.getString("office_email") : ""; + company_website = supplier_json.containsKey("company_website") ? supplier_json.getString("company_website") : ""; + } catch (Exception e) { + System.out.println(e.getMessage()); + System.out.println("[supplier_info_json]解析出错!"); + } + + // 供应商联系人基本信息 + String contact_name = "", contact_title = "", contact_phone = "", contact_email = ""; + try { + JSONObject contact_json = JSONObject.parseObject(contact_person_json); + contact_name = contact_json.containsKey("contact_name") ? contact_json.getString("contact_name") : ""; + contact_title = contact_json.containsKey("contact_title") ? contact_json.getString("contact_title") : ""; + contact_phone = contact_json.containsKey("contact_phone") ? contact_json.getString("contact_phone") : ""; + contact_email = contact_json.containsKey("contact_email") ? contact_json.getString("contact_email") : ""; + } catch (Exception e) { + System.out.println(e.getMessage()); + System.out.println("[contact_person_json]解析出错!"); + } + + // 保存,id == 0 新增,并增加登录账号, id != 0 修改; + JSONObject result = metaDataModel.saveSupplierInfo(id, supplier_name, supplier_short_name, set_up_time, + register_address, office_address, office_phone, office_email, company_website, + contact_name, contact_title, contact_phone, contact_email, remark, getRequest()); + + renderJson(result); + + } + + + /** + * 功能:【MetaData-Supplier-3】获取供应商信息 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-12 + * 备注: + * @param id + */ + @Before({GET.class}) + @IsNumericInterface({"id"}) + public void getSupplierById(int id) { + Record record; + try { + record = metaDataModel.getSupplierInfoBySupplierId(id); + if (record != null) { + record.set("success", true); + } else { + record = new Record(); + record.set("success", false); + } + } catch (Exception e) { + System.out.println(e.getMessage()); + record = new Record(); + record.set("success", false); + } + if (!record.getBoolean("success")) { + record.set("message", "获取供应商信息异常!"); + } + renderJson(record); + } + + + /** + * 功能:【MetaData-Supplier-4】删除供应商信息 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-12 + * 备注: + * @param id + */ + @Before({POST.class}) + @IsNumericInterface({"id"}) + public void deleteSupplierById(int id) { + + JSONObject result = new JSONObject(); + //操作人 + Record rPerson = JwtUtil.getPersonInfo(getRequest()); + String person_id = rPerson.getStr("person_id"); + + if (!metaDataModel.deleteSupplierById(person_id, id)) { + result.put("success", false); + result.put("message", "删除供应商信息出错!"); + } else { + result.put("success", true); + } + renderJson(result); + + } + + + /** + * 功能:【MetaData-Task-1】元数据采集任务列表 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-12 + * 备注: + * @param page + * @param limit + * @param task_name + */ + @Before({GET.class}) + @IsNumericInterface({"page", "limit"}) + public void listTask(int page, int limit, String task_name) { + + // 操作人 + Record rPerson = JwtUtil.getPersonInfo(getRequest()); + String bureau_id = rPerson.getStr("bureau_id"); + + Page dt; + if (task_name == null || task_name.isEmpty()) { + dt = metaDataModel.getTaskList(bureau_id, page, limit); + } else { + dt = metaDataModel.getTaskListByTaskName(bureau_id, page, limit, task_name); + } + renderJson(dt); + + } + + + /** + * 功能:【MetaData-Task-2】保存元数据采集任务 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-12 + * 备注: + * @param id + * @param task_name + * @param task_synopsis + * @param begin_time + * @param end_time + * @param supplier_ids + */ + @Before({POST.class}) + @IsNumericInterface({"id"}) + @LengthInterface({"task_name,2,50"}) + @EmptyInterface({"supplier_ids", "task_name"}) + public void saveTask(int id, String task_name, String task_synopsis, String begin_time, String end_time, String supplier_ids) { + + Record rPerson = JwtUtil.getPersonInfo(getRequest()); + String person_id = rPerson.getStr("person_id"); + String bureau_id = rPerson.getStr("bureau_id"); + + JSONObject result = metaDataModel.saveTask(id, task_name, task_synopsis, begin_time, end_time, supplier_ids, person_id, bureau_id); + + renderJson(result); + + } + + + /** + * 功能:【MetaData-Task-3】获取元数据采集任务 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-13 + * 备注: + * @param id + */ + @Before({GET.class}) + @IsNumericInterface({"id"}) + public void getTaskById(int id) { + Record record; + try { + record = metaDataModel.getTaskInfoByTaskId(id); + if (record != null) { + record.set("success", true); + } else { + record = new Record(); + record.set("success", false); + } + } catch (Exception e) { + System.out.println(e.getMessage()); + record = new Record(); + record.set("success", false); + } + if (!record.getBoolean("success")) { + record.set("message", "获取元数据采集任务信息出错!"); + } + renderJson(record); + + } + + + /** + * 功能:【MetaData-Task-4】删除元数据采集任务 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-13 + * 备注: + * @param id + */ + @Before({POST.class}) + @IsNumericInterface({"id"}) + public void deleteTaskById(int id) { + + JSONObject result = new JSONObject(); + //操作人 + Record rPerson = JwtUtil.getPersonInfo(getRequest()); + String person_id = rPerson.getStr("person_id"); + + if (!metaDataModel.deleteTaskById(person_id, id)) { + result.put("success", false); + result.put("message", "删除元数据采集任务信息出错!"); + } else { + result.put("success", true); + } + renderJson(result); + + } + + + /** + * 功能:【MetaData-Task-5】开启/关闭元数据采集任务 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-13 + * 备注: + * @param task_id + * @param task_status + */ + @Before({POST.class}) + @IsNumericInterface({"task_id", "task_status"}) + public void changeTaskStatus(int task_id, int task_status) { + + JSONObject result = new JSONObject(); + //操作人 + Record rPerson = JwtUtil.getPersonInfo(getRequest()); + String person_id = rPerson.getStr("person_id"); + + if (!metaDataModel.changeTaskStatus(person_id, task_id, task_status)) { + result.put("success", false); + result.put("message", (task_status == 1 ? "开启" : "关闭") + "元数据采集任务出错!"); + } else { + result.put("success", true); + } + renderJson(result); + + } + + + /** + * 功能:【MetaData-Task-6】开启/关闭任务单个供应商填报状态 + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/16 8:49 + * 备注: + **/ + @Before({POST.class}) + @IsNumericInterface({"task_id", "supplier_id", "task_status"}) + public void changeTaskSupplierStatus(int task_id, int supplier_id, int task_status) { + + JSONObject result = new JSONObject(); + //操作人 + Record rPerson = JwtUtil.getPersonInfo(getRequest()); + String person_id = rPerson.getStr("person_id"); + + if (!metaDataModel.changeTaskSupplierStatus(person_id, task_id, supplier_id, task_status)) { + result.put("success", false); + result.put("message", (task_status == 1 ? "开启" : "关闭") + "元数据采集任务出错!"); + } else { + result.put("success", true); + } + renderJson(result); + + } + + + /** + * 功能:【MetaData-Task-8】元数据采集任务归档 + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/16 9:37 + * 备注: + **/ + @Before({POST.class}) + @IsNumericInterface({"task_id"}) + public void archiveTask(int task_id) { + + JSONObject result = new JSONObject(); + Record rPerson = JwtUtil.getPersonInfo(getRequest()); + String person_id = rPerson.getStr("person_id"); + + if (!metaDataModel.archiveTask(person_id, task_id)) { + result.put("success", false); + result.put("message", "归档元数据采集任务出错!"); + } else { + result.put("success", true); + } + renderJson(result); + + } + + + /** + * 功能:【MetaData-Task-7】元数据采集任务列表(供应商) + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/16 9:46 + * 备注: + **/ + @Before({GET.class}) + @IsNumericInterface({"page", "limit"}) + public void listSupplierTask(int page, int limit, String task_name) throws ParseException { + + JSONObject result = new JSONObject(); + Record rPerson = JwtUtil.getPersonInfo(getRequest()); + String person_id = rPerson.getStr("person_id"); + String bureau_id = rPerson.getStr("bureau_id"); + + //根据登录人ID获取供应商ID + Record supplierRecord = metaDataModel.getSupplierIdByPersonId(person_id); + if (supplierRecord == null) { + result.put("success", false); + result.put("message", "未查询到对应供应商信息!"); + renderJson(result); + return; + } + int supplier_id = supplierRecord.getInt("id"); + + Page dt; + if (task_name == null || task_name.isEmpty()) { + dt = metaDataModel.getSupplierTaskList(bureau_id, supplier_id, page, limit); + } else { + dt = metaDataModel.getSupplierTaskListByTaskName(bureau_id, supplier_id, page, limit, task_name); + } + renderJson(dt); + + } + + + + /** + * 功能:【MetaData-Task-Collect-4】元数据采集-查询(供应商) + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/16 14:34 + * 备注: + **/ + @Before({GET.class}) + @IsNumericInterface({"page", "limit", "task_id"}) + public void listTaskSupplierColumn(int page, int limit, int task_id, int system_id, String column_name) { + + System.out.println("1、system_id:" + system_id); + + JSONObject result = new JSONObject(); + Record rPerson = JwtUtil.getPersonInfo(getRequest()); + String person_id = rPerson.getStr("person_id"); + String bureau_id = rPerson.getStr("bureau_id"); + + System.out.println("person_id:" + person_id); + + //根据登录人ID获取供应商ID + Record supplierRecord = metaDataModel.getSupplierIdByPersonId(person_id); + if (supplierRecord == null) { + result.put("success", false); + result.put("message", "未查询到对应供应商信息!"); + renderJson(result); + return; + } + int supplier_id = supplierRecord.getInt("id"); + System.out.println("supplier_id:" + supplier_id); + + List system_list = metaDataModel.getSystemListByTaskInfo(task_id, supplier_id); + if (system_list == null || system_list.isEmpty()) { + result.put("success", false); + result.put("message", "未查询到供应商系统信息!"); + renderJson(result); + return; + } + if (system_id == 0) { + system_id = system_list.getFirst().getInt("system_id"); + } + System.out.println("2、system_id:" + system_id); + + Page dt; + if (column_name == null || column_name.isEmpty()) { + dt = metaDataModel.getColumnListByTaskInfo(task_id, system_id, page, limit); + } else { + dt = metaDataModel.getColumnListByTaskInfoAndColumnName(task_id, system_id, page, limit, column_name); + } + + JSONObject pageObject = metaDataModel.page2json(dt); + pageObject.put("supplier_id", supplier_id); + pageObject.put("system_list", system_list); + pageObject.put("system_id", system_id); + + renderJson(pageObject); + + } + + + /** + * 功能:【MetaData-Task-Collect-3】元数据采集-查询(管理员) + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/17 09:38 + * 备注: + **/ + @Before({GET.class}) + @IsNumericInterface({"page", "limit", "task_id"}) + public void listTaskColumn(int page, int limit, int task_id, int supplier_id, int system_id, String column_name) { + + JSONObject result = new JSONObject(); + Record rPerson = JwtUtil.getPersonInfo(getRequest()); + String person_id = rPerson.getStr("person_id"); + String bureau_id = rPerson.getStr("bureau_id"); + + // 获取该任务所有供应商列表 + List supplier_list = metaDataModel.getSupplierListByTaskId(task_id); + if (supplier_list == null || supplier_list.isEmpty()) { + result.put("success", false); + result.put("message", "未查询到任务对应供应商信息!"); + renderJson(result); + return; + } + if (supplier_id == 0) { + supplier_id = supplier_list.getFirst().getInt("supplier_id"); + } + + System.out.println("supplier_list:" + supplier_list); + + // 获取供应商系统信息列表 + List system_list = metaDataModel.getSystemListByTaskInfo(task_id, supplier_id); + if (system_list == null || system_list.isEmpty()) { + result.put("success", false); + result.put("message", "未查询到供应商系统信息!"); + renderJson(result); + return; + } + if (system_id == 0) { + system_id = system_list.getFirst().getInt("system_id"); + } + + Page dt; + if (column_name == null || column_name.isEmpty()) { + dt = metaDataModel.getColumnListByTaskInfo(task_id, system_id, page, limit); + } else { + dt = metaDataModel.getColumnListByTaskInfoAndColumnName(task_id, system_id, page, limit, column_name); + } + + JSONObject pageObject = metaDataModel.page2json(dt); + pageObject.put("supplier_list", supplier_list); + pageObject.put("supplier_id", supplier_id); + pageObject.put("system_list", system_list); + pageObject.put("system_id", system_id); + + renderJson(pageObject); + + } + + + + /** + * 功能:【MetaData-Task-Collect-6】元数据采集-字段-删除 + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/17 10:13 + * 备注: + **/ + @Before({POST.class}) + @IsNumericInterface({"id"}) + @EmptyInterface({"id"}) + public void deleteTaskColumnById(int id) { + + JSONObject result = new JSONObject(); + // 操作人 + Record rPerson = JwtUtil.getPersonInfo(getRequest()); + String person_id = rPerson.getStr("person_id"); + + if (!metaDataModel.deleteTaskColumnById(person_id, id)) { + result.put("success", false); + result.put("message", "删除元数据采集任务字段信息出错!"); + } else { + result.put("success", true); + } + renderJson(result); + + } + + + + /** + * 功能:【MetaData-Task-Collect-8】元数据采集-表-删除 + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/17 11:14 + * 备注: + **/ + @Before({POST.class}) + @IsNumericInterface({"id"}) + @EmptyInterface({"id"}) + public void deleteTaskTableById(int id) { + + JSONObject result = new JSONObject(); + // 操作人 + Record rPerson = JwtUtil.getPersonInfo(getRequest()); + String person_id = rPerson.getStr("person_id"); + + // 验证table能否删除 + List column_list = metaDataModel.getColumnListByTableId(id); + + if (!column_list.isEmpty()) { + result.put("success", false); + result.put("message", "该表存在有效的字段信息,请先删除字段信息后再试!"); + } else { + if (!metaDataModel.deleteTaskTableById(person_id, id)) { + result.put("success", false); + result.put("message", "删除元数据采集任务字段信息出错!"); + } else { + result.put("success", true); + } + } + + renderJson(result); + + } + + + /** + * 功能:【MetaData-Task-Collect-5】元数据采集-字段-保存 + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/17 16:01 + * 备注: + **/ + @Before({POST.class}) + @IsNumericInterface({"id", "task_id", "supplier_id", "system_id", "table_id", "max_length", "is_nullable", "primary_key"}) + @EmptyInterface({"id", "task_id", "supplier_id", "system_id", "table_id", "column_name", "data_type", "max_length", "is_nullable", "primary_key", "column_comment", "column_create_time", "development_manager"}) + public void saveTaskColumn(int id, int task_id, int supplier_id, int system_id, int table_id, String column_name, String data_type, int max_length, + int is_nullable, int primary_key, String column_default, String column_comment, String column_create_time, String column_update_time, String development_manager) { + + JSONObject result = new JSONObject(); + List errorList = new ArrayList<>(); + if (column_default == null) { + column_default = ""; + } + if (column_update_time == null) { + column_update_time = ""; + } + + // 数据校验 + if (column_name.length() > 50) { + errorList.add("[column_name]数据不合格,长度超过50个字符!"); + } + if (is_nullable != 1 && is_nullable != 0) { + errorList.add("[is_nullable]数据不合格!"); + } + if (primary_key != 1 && primary_key != 0) { + errorList.add("[primary_key]数据不合格!"); + } + if (column_comment.length() > 50) { + errorList.add("[column_comment]数据不合格,长度超过1024个字符!"); + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置日期格式 + try { + Date column_create_date = sdf.parse(column_create_time); + } catch (ParseException e) { + errorList.add("[column_create_time]数据不合格,格式应为[yyyy-MM-dd]"); + } + if (!column_update_time.isEmpty()) { + try { + Date column_update_date = sdf.parse(column_update_time); + } catch (ParseException e) { + errorList.add("[column_update_time]数据不合格,格式应为[yyyy-MM-dd]"); + } + } + if (development_manager.length() > 200) { + errorList.add("[development_manager]数据不合格,长度超过200个字符!"); + } + + if (!errorList.isEmpty()) { + result = ImportExcelController.translateErrorListToString(result, errorList); + renderJson(result); + return; + } + + // 保存 + result = metaDataModel.saveTaskColumn(id, task_id, supplier_id, system_id, table_id, column_name, data_type, max_length, + is_nullable, primary_key, column_default, column_comment, column_create_time, column_update_time, development_manager); + + renderJson(result); + + } + + + /** + * 功能:【MetaData-Task-Collect-7】元数据采集-表-保存 + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/18 10:01 + * 备注: + **/ + @Before({POST.class}) + @IsNumericInterface({"id", "task_id", "supplier_id", "system_id"}) + @EmptyInterface({"id", "task_id", "supplier_id", "system_id", "table_name", "table_description"}) + public void saveTaskTable(int id, int task_id, int supplier_id, int system_id, String table_name, String table_description) { + + JSONObject result = new JSONObject(); + List errorList = new ArrayList<>(); + + // 数据校验 + if (table_name.length() > 50) { + errorList.add("[table_name]数据不合格,长度超过50个字符!"); + } + if (table_description.length() > 50) { + errorList.add("[table_description]数据不合格,长度超过200个字符!"); + } + if (!errorList.isEmpty()) { + result = ImportExcelController.translateErrorListToString(result, errorList); + renderJson(result); + return; + } + + // 保存 + result = metaDataModel.saveTaskTable(id, task_id, supplier_id, system_id, table_name, table_description); + + renderJson(result); + + } +} \ No newline at end of file diff --git a/dsBase/src/main/java/com/dsideal/Base/MetaData/Model/MetaDataModel.java b/dsBase/src/main/java/com/dsideal/Base/MetaData/Model/MetaDataModel.java new file mode 100644 index 00000000..a6f15ec9 --- /dev/null +++ b/dsBase/src/main/java/com/dsideal/Base/MetaData/Model/MetaDataModel.java @@ -0,0 +1,1123 @@ +package com.dsideal.Base.MetaData.Model; + +import cn.hutool.core.date.DateTime; +import com.alibaba.fastjson.JSONObject; +import com.dsideal.Base.MetaData.Utils.ImportExcelController; +import com.dsideal.Base.Util.CommonUtil; +import com.dsideal.Base.Util.IpUtil; +import com.dsideal.Base.Util.JwtUtil; +import com.dsideal.Base.Util.PkUtil; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.Page; +import com.jfinal.plugin.activerecord.Record; +import com.jfinal.plugin.activerecord.SqlPara; +import org.apache.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.hssf.usermodel.HSSFCellStyle; +import org.apache.poi.hssf.usermodel.HSSFRow; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.ss.usermodel.DataValidation; +import org.apache.poi.ss.usermodel.DataValidationConstraint; +import org.apache.poi.ss.usermodel.DataValidationHelper; +import org.apache.poi.ss.util.CellRangeAddressList; + +import javax.servlet.http.HttpServletRequest; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; + +public class MetaDataModel { + + + private static int MAX_DATA_ROWS = 500; + /** + * 功能:保存供应商信息 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-06 + * 备注: + * + * @param id + * @param supplier_name + * @param supplier_short_name + * @param set_up_time + * @param register_address + * @param office_address + * @param office_phone + * @param office_email + * @param company_website + * @param contact_name + * @param contact_title + * @param contact_phone + * @param contact_email + * @param remark + * @param request + * @return + */ + public JSONObject saveSupplierInfo(int id, String supplier_name, String supplier_short_name, Date set_up_time, + String register_address, String office_address, String office_phone, String office_email, String company_website, + String contact_name, String contact_title, String contact_phone, String contact_email, String remark, HttpServletRequest request) { + JSONObject result = new JSONObject(); + String person_id = UUID.randomUUID().toString().toUpperCase(); + Record record = new Record(); + if (id == 0) { + record.set("admin_person_id", person_id); + } else { + record = Db.findById("t_metadata_supplier", id); + } + record.set("supplier_name", supplier_name); + record.set("supplier_short_name", supplier_short_name); + record.set("set_up_time", set_up_time); + record.set("register_address", register_address); + record.set("office_address", office_address); + record.set("office_phone", office_phone); + record.set("office_email", office_email); + record.set("company_website", company_website); + + record.set("contact_name", contact_name); + record.set("contact_title", contact_title); + record.set("contact_phone", contact_phone); + record.set("contact_email", contact_email); + record.set("remark", remark); + if (id == 0) { + record.set("is_deleted", 0); + record.set("create_time", new Date()); + Db.save("t_metadata_supplier", record); + id = record.getInt("id"); + result.put("id", id); + result.put("method", "insert"); + + // 保存登录信息 + String loginName = "admin" + completionStr(id); + long pk = PkUtil.GetPersonNumPk(8, 1); + //生成6位随机明文密码 + String originalPwd = CommonUtil.getSixRandom(); + //将明文密码加密 + String pwd = CommonUtil.getLdapPassword(originalPwd); + //操作人 + Record rPerson = JwtUtil.getPersonInfo(request); + String operator = rPerson.getStr("person_id"); + String bureau_id = rPerson.getStr("bureau_id"); + //客户端ip_address + String ip_address = IpUtil.getIpAddr(request); + + Record loginRecord = new Record(); + loginRecord.set("person_id", person_id); + loginRecord.set("login_name", loginName); + loginRecord.set("identity_id",8); // 接入系统模拟身份 + loginRecord.set("original_pwd", originalPwd); + loginRecord.set("pwdmd5", CommonUtil.md5(originalPwd)); + loginRecord.set("pwd", pwd); + loginRecord.set("person_name", supplier_name + "负责人"); + loginRecord.set("xb", -1); + loginRecord.set("mz", "-1"); + loginRecord.set("zzmm", "-1"); + loginRecord.set("idcard_code", "-1"); + loginRecord.set("birthday", "2000-01-01"); + loginRecord.set("org_id", "-1"); + loginRecord.set("create_time", DateTime.now()); + loginRecord.set("sort_id", -1); + loginRecord.set("b_use", 1); + loginRecord.set("identity_pk_num", pk); + loginRecord.set("city_id", "-1"); + loginRecord.set("area_id", "-1"); + loginRecord.set("main_school_id", "-1"); + loginRecord.set("bureau_id", bureau_id); + loginRecord.set("s_class_id", "-1"); + + loginRecord.set("t_xl_id", "-1"); + loginRecord.set("s_xjh", "-1"); + loginRecord.set("s_source", 1); + loginRecord.set("s_stage_id", 1); + loginRecord.set("s_suiqian", 0); + loginRecord.set("s_liushou", 0); + loginRecord.set("s_guer", 0); + loginRecord.set("s_canji", 0); + loginRecord.set("p_child_id", -1); + loginRecord.set("t_gugan", 0); + loginRecord.set("id_int", 0); + + loginRecord.set("t_stage_id", 1); + loginRecord.set("t_subject_id", 1); + loginRecord.set("t_zc_id", "-1"); + loginRecord.set("wx_openid", "-1"); + loginRecord.set("qq_openid", "-1"); + loginRecord.set("status_code", "01"); + loginRecord.set("t_duty_charge", "[]"); + + loginRecord.set("t_teaching_date", "2000-01-01"); + loginRecord.set("operator", operator); + loginRecord.set("ip_address", IpUtil.ipToLong(ip_address)); + loginRecord.set("update_ts", DateTime.now()); + Db.save("t_sys_loginperson", "person_id", loginRecord); + result.put("admin_person_id", person_id); + + } else { + record.set("update_time", new Date()); + Db.update("t_metadata_supplier", "id", record); + result.put("id", id); + result.put("method", "update"); + } + result.put("success", true); + result.put("message", "保存成功!"); + + return result; + + } + + + + /** + * 功能:补全后缀 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-12 + * 备注: + * @param supplier_id + * @return + */ + private String completionStr(int supplier_id) { + String supplier_suffix = supplier_id + ""; + if (supplier_id > 0 && supplier_id <= 9) { + supplier_suffix = "000" + supplier_id; + } else if (supplier_id > 9 && supplier_id <= 99) { + supplier_suffix = "00" + supplier_id; + } else if (supplier_id > 99 && supplier_id <= 999) { + supplier_suffix = "0" + supplier_id; + } + return supplier_suffix; + } + + + /** + * 功能:构造table sheet格式 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-09 + * 备注: + * @param sheet + * @param dataCellStyle + */ + public void handleSheetData(HSSFSheet sheet, HSSFCellStyle dataCellStyle) { + // 构造 + (MAX_DATA_ROWS) + 行空白单元格 + for (int i = 0; i < MAX_DATA_ROWS; i++) { + HSSFRow row = sheet.createRow(i + 2); + for (int j = 0; j < 10; j++) { + HSSFCell cell = row.createCell(j); + cell.setCellStyle(dataCellStyle); + } + } + + // 设置数据验证 + DataValidationHelper validationHelper = sheet.getDataValidationHelper(); + + // 构造数据类型下拉选择(第2列,索引1) + String[] dataTypes = {"INT", "BIGINT", "DECIMAL", "VARCHAR", "CHAR", "TEXT", "DATE", "DATETIME", "BOOLEAN", "FLOAT", "DOUBLE"}; + DataValidationConstraint typeConstraint = validationHelper.createExplicitListConstraint(dataTypes); + CellRangeAddressList typeAddressList = new CellRangeAddressList(2, MAX_DATA_ROWS + 1, 1, 1); // 数据类型列 + DataValidation typeValidation = validationHelper.createValidation(typeConstraint, typeAddressList); + sheet.addValidationData(typeValidation); + + // 数据长度数字校验(第3列,索引2) + DataValidationConstraint lengthConstraint = validationHelper.createNumericConstraint( + DataValidationConstraint.ValidationType.INTEGER, + DataValidationConstraint.OperatorType.GREATER_OR_EQUAL, "0", null + ); + CellRangeAddressList lengthAddressList = new CellRangeAddressList(2, MAX_DATA_ROWS + 1, 2, 2); // 长度列 + DataValidation lengthValidation = validationHelper.createValidation(lengthConstraint, lengthAddressList); + lengthValidation.setShowErrorBox(true); + lengthValidation.createErrorBox("输入错误", "请输入有效的数字"); + sheet.addValidationData(lengthValidation); + + // 是否可为空、是否主键 下拉选择(第4、5列,索引3、4) + DataValidationConstraint yesNoConstraint = validationHelper.createExplicitListConstraint(new String[]{"是", "否"}); + CellRangeAddressList yesNoAddressList = new CellRangeAddressList(2, MAX_DATA_ROWS + 1, 3, 4); + DataValidation yesNoValidation = validationHelper.createValidation(yesNoConstraint, yesNoAddressList); + sheet.addValidationData(yesNoValidation); + + // 创建时间、修改时间 设置只能输入日期格式(第8、9列,索引7、8) + // 创建数据验证帮助器 + DataValidationHelper dvHelper = sheet.getDataValidationHelper(); + // 设置数据验证的约束:这里我们设置日期类型,允许的日期范围是当前日期到未来100年 + DataValidationConstraint dvConstraint = dvHelper.createDateConstraint( + DataValidationConstraint.OperatorType.BETWEEN, "2000-01-01", "2050-12-31", "YYYY-MM-DD"); + // 设置数据验证的范围:应用到单个单元格(A1) + CellRangeAddressList addressList = new CellRangeAddressList(2, MAX_DATA_ROWS + 1, 7, 8); + // 创建数据验证对象并应用到工作表 + DataValidation validation = dvHelper.createValidation(dvConstraint, addressList); + validation.setShowErrorBox(true); + validation.createErrorBox("输入错误", "请输入有效的日期,格式为yyyy-MM-dd"); + sheet.addValidationData(validation); + + } + + + /** + * 功能:根据person_id 获取 supplier信息 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-09 + * 备注: + * @param person_id + * @return + */ + public Record getSupplierIdByPersonId(String person_id) { + + String selectSupplierSQL = "select * from t_metadata_supplier where admin_person_id = ? and is_deleted = 0"; + Record supplierRecord = Db.findFirst(selectSupplierSQL, person_id); + if (supplierRecord != null) { + return supplierRecord; + } else { + return null; + } + } + + + + /** + * 功能:metaData入库 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-10 + * 备注: + * @param dataMap + * @param columns + * @param task_id + * @param system_id + * @param supplier_id + * @return + */ + public JSONObject importMetadataToDB(HashMap>> dataMap, String[] columns, int task_id, int system_id, int supplier_id, String person_id, String bureau_id) throws ParseException { + + String[] columnEns = new String[columns.length]; + //1:String;2:int;3:date; + int[] columnTypes = new int[columns.length]; + + for (int i = 0; i < columns.length; i++) { + String[] index = columns[i].split("@"); + columnEns[i] = index[0].trim(); + columnTypes[i] = Integer.parseInt(index[5].trim()); + } + + JSONObject result = new JSONObject(); + // 删除旧的数据 + String updateTableSQL = "update t_metadata_collect_task_table set is_deleted = 1, update_time = now() where task_id = " + task_id + + " and system_id = " + system_id + " and is_deleted = 0;"; + Db.update(updateTableSQL); + String updateColumnSQL = "update t_metadata_collect_task_column set is_deleted = 1, update_time = now() where task_id = " + task_id + + " and system_id = " + system_id + " and is_deleted = 0;"; + Db.update(updateColumnSQL); + + // 入库 + Iterator>>> iterator = dataMap.entrySet().iterator(); + while (iterator.hasNext()) { + Map.Entry>> entry = iterator.next(); + String table_name = entry.getKey(); + // 插入 t_metadata_collect_task_table + Record tableRecord = new Record(); + tableRecord.set("table_name", table_name); + tableRecord.set("task_id", task_id); + tableRecord.set("supplier_id", supplier_id); + tableRecord.set("system_id", system_id); + tableRecord.set("person_id", person_id); + tableRecord.set("bureau_id", bureau_id); + tableRecord.set("is_deleted", 0); + tableRecord.set("create_time", new Date()); + Db.save("t_metadata_collect_task_table", "id", tableRecord); + int table_id = tableRecord.get("id") != null ? tableRecord.getInt("id") : 0; + + List> dataList = entry.getValue(); + // 插入 t_metadata_collect_task_column + for (int i = 0; i < dataList.size(); i++) { + Record columnRecord = new Record(); + columnRecord.set("task_id", task_id); + columnRecord.set("supplier_id", supplier_id); + columnRecord.set("system_id", system_id); + columnRecord.set("table_id", table_id); + for (int j = 0; j < columnEns.length; j++) { + if (columnTypes[j] == 1) { //string + columnRecord.set(columnEns[j], dataList.get(i).get(columnEns[j]) + ""); + } + if (columnTypes[j] == 2) { //int + columnRecord.set(columnEns[j], Integer.parseInt(dataList.get(i).get(columnEns[j]) + "")); + } + if (columnTypes[j] == 3) { //date + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置日期格式 + if (!"".equals(dataList.get(i).get(columnEns[j]) + "")) { + Date date = sdf.parse(dataList.get(i).get(columnEns[j]) + ""); + columnRecord.set(columnEns[j], date); + } else { + columnRecord.set(columnEns[j], null); + } + } + } + columnRecord.set("is_deleted", 0); + columnRecord.set("create_time", new Date()); + Db.save("t_metadata_collect_task_column", "id", columnRecord); + } + } + + result.put("success",true); + result.put("message", "保存成功!"); + + return result; + + } + + + /** + * 功能:检查数据合法性,并翻译填表数据 --> 数据库存储值 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-10 + * 备注: + * @param table_name + * @param dataList + * @param columns + * @return + */ + public JSONObject checkMetadataList(String table_name, List> dataList, String[] columns) { + + JSONObject result = new JSONObject(); + List errorList = new ArrayList(); + + String[] columnEns = new String[columns.length]; + String[] columnCNs = new String[columns.length]; + //1:必填;0:非必填; + int[] columnRequiredTypes = new int[columns.length]; + //1:验证长度;2:验证数字;3:替换是否;0:无需验证; + int[] columnVerifyTypes = new int[columns.length]; + //数字:长度; + int[] columnLengths = new int[columns.length]; + for (int i = 0; i < columns.length; i++) { + String[] index = columns[i].split("@"); + columnEns[i] = index[0].trim(); + columnCNs[i] = index[1].trim(); + columnRequiredTypes[i] = Integer.parseInt(index[2].trim()); + columnVerifyTypes[i] = Integer.parseInt(index[3].trim()); + columnLengths[i] = Integer.parseInt(index[4].trim()); + } + + //验证数据 + for (int i = 0; i < dataList.size(); i++) { + for (int j = 0; j < columnEns.length; j++) { + String dataValue = ""; + String errorMessage = ""; + if (dataList.get(i).containsKey(columnEns[j])) { + dataValue = dataList.get(i).get(columnEns[j]) + ""; + } + if ("".equals(dataValue) && columnRequiredTypes[j] == 1) { + errorList.add("文件中sheet【" + table_name + "】的第" + (i + 3) + "行,列【" + columnCNs[j] + "】不允许为空!"); + } else { + //1:验证长度;2:验证数字;3:替换是否;4:时间;0:无需验证; + if (columnVerifyTypes[j] == 1) { + errorMessage = "文件中sheet【" + table_name + "】的第" + (i + 3) + "行,列【" + columnCNs[j] + "】数据不合格,长度超过" + columnLengths[j] + "个字符!"; + //1:验证长度 + if (dataValue.length() > columnLengths[j]) { + errorList.add(errorMessage); + } + } else if (columnVerifyTypes[j] == 2) { + errorMessage = "文件中sheet【" + table_name + "】的第" + (i + 3) + "行,列【" + columnCNs[j] + "】数据不合格,应该为大于0的整数!"; + //2:验证数字 + try { + int dataValueInt = Integer.parseInt(dataValue); + if (dataValueInt <= 0) { + errorList.add(errorMessage); + } + } catch (Exception e) { + System.out.println(e.getMessage()); + errorList.add(errorMessage); + } + } else if (columnVerifyTypes[j] == 3) { + errorMessage = "文件中sheet【" + table_name + "】的第" + (i + 3) + "行,列【" + columnCNs[j] + "】数据不合格,应从下拉列表中选择!"; + if (!"是".equals(dataValue) && !"否".equals(dataValue)) { + errorList.add(errorMessage); + } + } + } + } + } + + //验证数据 + for (int i = 0; i < dataList.size(); i++) { + for (int j = 0; j < columnEns.length; j++) { + String dataValue = ""; + if (dataList.get(i).containsKey(columnEns[j])) { + dataValue = dataList.get(i).get(columnEns[j]) + ""; + } + if (columnVerifyTypes[j] == 3) { + if ("是".equals(dataValue)) { + dataValue = "1"; + } else { + dataValue = "0"; + } + dataList.get(i).put(columnEns[j], dataValue); + } + } + } + + // 如果errorList有值,则返回前台 + if (errorList.size() > 0) { + return ImportExcelController.translateErrorListToString(result, errorList); + } + + result.put("success",true); + result.put("message", "读取成功!"); + result.put("dataList", dataList); + + return result; + + } + + + /** + * 功能:分页获取供应商系统列表 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-11 + * 备注: + * @param bureau_id + * @param page + * @param limit + * @return + */ + public Page getSystemList(String bureau_id, int page, int limit) { + SqlPara sp = Db.getSqlPara("metadata.getSystemList", bureau_id); + return Db.paginate(page, limit, sp); + } + + /** + * 功能:分页获取供应商系统列表,系统名称检索 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-11 + * 备注: + * @param bureau_id + * @param page + * @param limit + * @param system_name + * @return + */ + public Page getSystemListBySystemName(String bureau_id, int page, int limit, String system_name) { + SqlPara sp = Db.getSqlPara("metadata.getSystemListBySystemName", bureau_id, system_name); + return Db.paginate(page, limit, sp); + } + + + /** + * 功能:保存供应商系统信息 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-11 + * 备注: + * @param id + * @param system_name + * @param system_short_name + * @param supplier_id + * @param system_version + * @param system_status + * @param system_synopsis + * @param development_manager + * @param contact_information + * @param remark + * @param person_id + * @param bureau_id + * @return + */ + public JSONObject saveSystem(int id, String system_name, String system_short_name, int supplier_id, String system_version, int system_status, + String system_synopsis, String development_manager, String contact_information, String remark, String person_id, String bureau_id) { + + JSONObject result = new JSONObject(); + Record record = new Record(); + record.set("system_name", system_name); + record.set("system_short_name", system_short_name); + record.set("supplier_id", supplier_id); + record.set("system_version", system_version); + record.set("system_status", system_status); + record.set("system_synopsis", system_synopsis); + record.set("development_manager", development_manager); + record.set("contact_information", contact_information); + record.set("remark", remark); + record.set("person_id", person_id); + record.set("bureau_id", bureau_id); + + if (id == 0) { + record.set("is_deleted", 0); + record.set("create_time", new Date()); + Db.save("t_metadata_system","id", record); + id = record.getInt("id"); + result.put("method", "insert"); + } else { + record.set("id", id); + record.set("update_time", new Date()); + Db.update("t_metadata_system","id", record); + result.put("method", "update"); + } + result.put("success", true); + result.put("id", id); + result.put("message", "保存成功!"); + + return result; + } + + + /** + * 功能:【MetaData-System-3】获取供应商系统信息 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-11 + * 备注: + * @param system_id + */ + public Record getSystemInfoBySystemId(int system_id) { + String sql = Db.getSql("metadata.getSystemInfoById"); + List list = Db.find(sql, system_id); + return !list.isEmpty() ? list.getFirst() : null; + } + + + /** + * 功能:【MetaData-System-4】删除供应商系统信息 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-11 + * 备注: + * @param person_id + * @param system_id + * @return + */ + public boolean deleteSystemById(String person_id, int system_id) { + String deleteSystemSQL = Db.getSql("metadata.deleteSystemById"); + Db.update(deleteSystemSQL, person_id, system_id); + return true; + } + + + /** + * 功能:获取供应商列表 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-11 + * 备注: + * @param bureau_id + * @param page + * @param limit + * @return + */ + public Page getSupplierList(String bureau_id, int page, int limit) { + SqlPara sp = Db.getSqlPara("metadata.getSupplierList", bureau_id); + return Db.paginate(page, limit, sp); + } + + + /** + * 功能:获取供应商列表,供应商名称筛选 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-11 + * 备注: + * @param bureau_id + * @param page + * @param limit + * @return + */ + public Page getSupplierListBySupplierName(String bureau_id, int page, int limit, String supplier_name) { + SqlPara sp = Db.getSqlPara("metadata.getSupplierListBySupplierName", bureau_id, supplier_name); + return Db.paginate(page, limit, sp); + } + + + /** + * 功能:获取供应商信息 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-12 + * 备注: + * @param supplier_id + * @return + */ + public Record getSupplierInfoBySupplierId(int supplier_id) { + String sql = Db.getSql("metadata.getSupplierInfoById"); + List list = Db.find(sql, supplier_id); + return !list.isEmpty() ? list.getFirst() : null; + } + + + /** + * 功能:删除供应商信息 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-12 + * 备注: + * @param person_id + * @param supplier_id + * @return + */ + public boolean deleteSupplierById(String person_id, int supplier_id) { + String deleteSupplierSQL = Db.getSql("metadata.deleteSupplierById"); + Db.update(deleteSupplierSQL, person_id, supplier_id); + return true; + } + + + /** + * 功能:【MetaData-Task-1】元数据采集任务列表 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-12 + * 备注: + * @param bureau_id + * @param page + * @param limit + * @return + */ + public Page getTaskList(String bureau_id, int page, int limit) { + SqlPara sp = Db.getSqlPara("metadata.getTaskList", bureau_id); + Page recordPage = Db.paginate(page, limit, sp); + // 翻译supplier_ids + for (int i = 0; i < recordPage.getList().size(); i++) { + String supplier_ids = recordPage.getList().get(i).get("supplier_ids"); + List supplier_list = Db.find("select id as supplier_id, supplier_name from t_metadata_supplier where id in (" + supplier_ids + ")"); + recordPage.getList().get(i).put("supplier_list", supplier_list); + + } + return recordPage; + } + + + /** + * 功能:【MetaData-Task-1】元数据采集任务列表 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-12 + * 备注: + * @param bureau_id + * @param page + * @param limit + * @param task_name + * @return + */ + public Page getTaskListByTaskName(String bureau_id, int page, int limit, String task_name) { + SqlPara sp = Db.getSqlPara("metadata.getTaskListByTaskName", bureau_id, task_name); + Page recordPage = Db.paginate(page, limit, sp); + // 翻译supplier_ids + for (int i = 0; i < recordPage.getList().size(); i++) { + String supplier_ids = recordPage.getList().get(i).get("supplier_ids"); + List supplier_list = Db.find("select id as supplier_id, supplier_name from t_metadata_supplier where id in (" + supplier_ids + ")"); + recordPage.getList().get(i).put("supplier_list", supplier_list); + + } + return recordPage; + } + + + /** + * 功能:保存元数据采集任务 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-12 + * 备注: + * @param id + * @param task_name + * @param task_synopsis + * @param begin_time + * @param end_time + * @param supplier_ids + * @param person_id + * @param bureau_id + * @return + */ + public JSONObject saveTask(int id, String task_name, String task_synopsis, String begin_time, String end_time, + String supplier_ids, String person_id, String bureau_id) { + + JSONObject result = new JSONObject(); + String old_supplier_ids = ""; + // 保存Task + Record record = new Record(); + record.set("task_name", task_name); + record.set("task_synopsis", task_synopsis); + record.set("task_status", 0); + record.set("begin_time", begin_time); + record.set("end_time", end_time); + record.set("supplier_ids", supplier_ids); + record.set("archive_flag", 0); + record.set("person_id", person_id); + record.set("bureau_id", bureau_id); + + if (id == 0) { + record.set("is_deleted", 0); + record.set("create_time", new Date()); + Db.save("t_metadata_collect_task","id", record); + id = record.getInt("id"); + result.put("method", "insert"); + } else { + Record oldRecord = Db.findById("t_metadata_collect_task", "id", id); + old_supplier_ids = oldRecord.getStr("supplier_ids"); + record.set("id", id); + record.set("update_time", new Date()); + Db.update("t_metadata_collect_task","id", record); + result.put("method", "update"); + } + + HashMap nowHaveSupplierMap = new HashMap<>(); + String[] old_supplier_idsStr = old_supplier_ids.split(","); + for (int i = 0; i < old_supplier_idsStr.length; i++) { + nowHaveSupplierMap.put(old_supplier_idsStr[i], true); + } + + // 保存task_supplier + // 删除修改后不包含的供应商信息 + String updateForDeleteTaskSupplierSQL = "UPDATE t_metadata_collect_task_supplier " + + " SET person_id = '" + person_id + "', is_deleted = 1, update_time = now() " + + " WHERE task_id = " + id + " and supplier_id not in ( " + supplier_ids + " ) and is_deleted = 0"; + Db.update(updateForDeleteTaskSupplierSQL); + + // 新增供应商信息 + String[] supplier_idStr = supplier_ids.split(","); + for (int i = 0; i < supplier_idStr.length; i++) { + if (!nowHaveSupplierMap.containsKey(supplier_idStr[i])) { + Record supplierRecord = new Record(); + supplierRecord.set("task_id", id); + supplierRecord.set("supplier_id", Integer.parseInt(supplier_idStr[i])); + supplierRecord.set("supplier_status", 0); + supplierRecord.set("person_id", person_id); + supplierRecord.set("bureau_id", bureau_id); + supplierRecord.set("is_deleted", 0); + supplierRecord.set("create_time", new Date()); + Db.save("t_metadata_collect_task_supplier","id", supplierRecord); + } + } + + result.put("success", true); + result.put("id", id); + result.put("message", "保存成功!"); + + return result; + + } + + + /** + * 功能:【MetaData-Task-3】获取元数据采集任务 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-13 + * 备注: + */ + public Record getTaskInfoByTaskId(int task_id) { + String sql = Db.getSql("metadata.getTaskInfoByTaskId"); + List recordList = Db.find(sql, task_id); + if (!recordList.isEmpty()) { + Record record = recordList.getFirst(); + String supplier_ids = record.get("supplier_ids"); + List supplier_list = Db.find("select id as supplier_id, supplier_name from t_metadata_supplier where id in (" + supplier_ids + ")"); + record.put("supplier_list", supplier_list); + return record; + } else { + return null; + } + + } + + /** + * 功能:删除元数据信息 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-13 + * 备注: + */ + public boolean deleteTaskById(String person_id, int task_id) { + String deleteTaskSQL = Db.getSql("metadata.deleteTaskById"); + Db.update(deleteTaskSQL, person_id, task_id); + return true; + } + + /** + * 功能:修改元数据采集任务状态 + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/16 8:26 + * 备注: + **/ + public boolean changeTaskStatus(String person_id, int task_id, int task_status) { + String changeTaskStatusSQL = Db.getSql("metadata.changeTaskStatus"); + Db.update(changeTaskStatusSQL, person_id, task_status, task_id); + return true; + } + + + /** + * 功能:【MetaData-Task-6】开启/关闭任务单个供应商填报状态 + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/16 8:57 + * 备注: + **/ + public boolean changeTaskSupplierStatus(String person_id, int task_id, int supplier_id, int task_status) { + String changeTaskSupplierStatusSQL = Db.getSql("metadata.changeTaskSupplierStatus"); + Db.update(changeTaskSupplierStatusSQL, person_id, task_status, task_id, supplier_id); + return true; + } + + + /** + * 功能:【MetaData-Task-8】元数据采集任务归档 + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/16 9:38 + * 备注: + **/ + public boolean archiveTask(String person_id, int task_id) { + String archiveTaskSQL = Db.getSql("metadata.archiveTask"); + Db.update(archiveTaskSQL, person_id, task_id); + return true; + + } + + + /** + * 功能:处理列表任务状态信息 + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/16 10:42 + * 备注: + **/ + private Page handleSupplierTaskInfo(Page recordPage) throws ParseException { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime now = LocalDateTime.now(); + // task_status, begin_time, end_time, archive_flag, supplier_status + for (int i = 0; i < recordPage.getList().size(); i++) { + int task_status = recordPage.getList().get(i).get("task_status"); + String begin_time_str = recordPage.getList().get(i).get("begin_time") + " 00:00:00"; + LocalDateTime begin_time = LocalDateTime.parse(begin_time_str, formatter); + String end_time_str = recordPage.getList().get(i).get("end_time") + " 23:59:59"; + LocalDateTime end_time = LocalDateTime.parse(end_time_str, formatter); + int supplier_status = recordPage.getList().get(i).get("supplier_status"); + + // begin_time 之前 + if (now.isBefore(begin_time)) { + if (task_status != 2) { + task_status = 0; + } + } + // begin_time 之后, end_time 之前 + else if (now.isAfter(begin_time) && now.isBefore(end_time)) { + + } + // end_time 之后 + else if (end_time.isBefore(now)) { + task_status = 2; + } + + if (supplier_status != 0) { + recordPage.getList().get(i).set("supplier_task_status", supplier_status); + } else { + recordPage.getList().get(i).set("supplier_task_status", task_status); + } + } + return recordPage; + } + + /** + * 功能:【MetaData-Task-7】元数据采集任务列表(供应商) + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/16 10:18 + * 备注: + **/ + public Page getSupplierTaskList(String bureau_id, int supplier_id, int page, int limit) throws ParseException { + SqlPara sp = Db.getSqlPara("metadata.getSupplierTaskList", bureau_id, supplier_id); + Page recordPage = Db.paginate(page, limit, sp); + return handleSupplierTaskInfo(recordPage); + } + + + /** + * 功能:【MetaData-Task-7】元数据采集任务列表(供应商) + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/16 10:18 + * 备注: + **/ + public Page getSupplierTaskListByTaskName(String bureau_id, int supplier_id, int page, int limit, String task_name) throws ParseException { + SqlPara sp = Db.getSqlPara("metadata.getSupplierTaskListByTaskName", bureau_id, supplier_id, task_name); + Page recordPage = Db.paginate(page, limit, sp); + return handleSupplierTaskInfo(recordPage); + } + + + /** + * 功能:根据任务ID获取供应商列表 + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/16 15:05 + * 备注: + **/ + public List getSupplierListByTaskId(int task_id) { + String sql = Db.getSql("metadata.getSupplierListByTaskId"); + return Db.find(sql, task_id); + } + + + + /** + * 功能:根据任务ID、供应商ID获取table_list + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/16 15:26 + * 备注: + **/ + public List getSystemListByTaskInfo(int task_id, int supplier_id) { + String systemSql = Db.getSql("metadata.getSystemListByTaskInfo"); + return Db.find(systemSql, task_id, supplier_id); + } + + + /** + * 功能:【MetaData-Task-Collect-4】元数据采集-查询(获取字段列表) + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/17 08:57 + * 备注: + **/ + public Page getColumnListByTaskInfo(int task_id, int system_id, int page, int limit) { + SqlPara sqlPara = Db.getSqlPara("metadata.getColumnListByTaskInfo", task_id, system_id); + return Db.paginate(page, limit, sqlPara); + } + + + /** + * 功能:【MetaData-Task-Collect-4】元数据采集-查询(获取字段列表),字段名称筛选 + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/17 09:22 + * 备注: + **/ + public Page getColumnListByTaskInfoAndColumnName(int task_id, int system_id, int page, int limit, String column_name) { + SqlPara sqlPara = Db.getSqlPara("metadata.getColumnListByTaskInfoAndColumnName", task_id, system_id, column_name); + return Db.paginate(page, limit, sqlPara); + } + + + /** + * 功能:将page对象转换成json格式 + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/17 09:29 + * 备注: + **/ + public JSONObject page2json(Page recordPage) { + JSONObject result = new JSONObject(); + result.put("list", recordPage.getList()); + result.put("totalRow", recordPage.getTotalRow()); + result.put("totalPage", recordPage.getTotalPage()); + result.put("pageNumber", recordPage.getPageNumber()); + result.put("pageSize", recordPage.getPageSize()); + result.put("firstPage", recordPage.isFirstPage()); + result.put("lastPage", recordPage.isLastPage()); + return result; + } + + + /** + * 功能:删除元数据采集任务-字段数据 + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/17 10:17 + * 备注: + **/ + public boolean deleteTaskColumnById(String person_id, int column_id) { + String deleteColumnSQL = Db.getSql("metadata.deleteColumnById"); + Db.update(deleteColumnSQL, person_id, column_id); + return true; + } + + + /** + * 功能:根据table_id获取column_list + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/17 11:23 + * 备注: + **/ + public List getColumnListByTableId(int table_id) { + String columnSQL = Db.getSql("metadata.getColumnListByTableId"); + return Db.find(columnSQL, table_id); + } + + + /** + * 功能:删除元数据采集信息:表 + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/17 13:06 + * 备注: + **/ + public boolean deleteTaskTableById(String person_id, int table_id) { + String deleteTableSQL = Db.getSql("metadata.deleteTaskTableById"); + Db.update(deleteTableSQL, person_id, table_id); + return true; + } + + + /** + * 功能:【MetaData-Task-Collect-5】元数据采集-字段-保存 + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/18 09:05 + * 备注: + **/ + public JSONObject saveTaskColumn(int id, int task_id, int supplier_id, int system_id, int table_id, String column_name, String data_type, int max_length, + int is_nullable, int primary_key, String column_default, String column_comment, String column_create_time, String column_update_time, String development_manager) { + JSONObject result = new JSONObject(); + + try { + Record record = new Record(); + record.set("task_id", task_id); + record.set("supplier_id", supplier_id); + record.set("system_id", system_id); + record.set("table_id", table_id); + record.set("column_name", column_name); + record.set("data_type", data_type); + record.set("max_length", max_length); + record.set("is_nullable", is_nullable); + record.set("primary_key", primary_key); + record.set("column_default", column_default); + record.set("column_comment", column_comment); + record.set("column_create_time", column_create_time); + + record.set("column_update_time", column_update_time); + record.set("column_update_time", column_update_time); + record.set("development_manager", development_manager); + + + if (!"".equals(column_update_time)) { + record.set("column_update_time", column_update_time); + } + record.set("development_manager", development_manager); + + if (id == 0) { + record.set("is_deleted", 0); + record.set("create_time", new Date()); + Db.save("t_metadata_collect_task_column", "id", record); + id = record.getInt("id"); + } else { + record.set("update_time", new Date()); + Db.update("t_metadata_collect_task_column", "id", record); + } + result.put("success", true); + result.put("id", id); + } catch (Exception e) { + System.out.println(e.getMessage()); + result.put("success", false); + result.put("message", e.getMessage()); + } + + return result; + + } + + + /** + * 功能:【MetaData-Task-Collect-7】元数据采集-表-保存 + * 作者:Kalman.CHENG ☆ + * 日期:2025/6/18 10:35 + * 备注: + **/ + public JSONObject saveTaskTable(int id, int task_id, int supplier_id, int system_id, String table_name, String table_description) { + + JSONObject result = new JSONObject(); + try { + Record record = new Record(); + record.set("task_id", task_id); + record.set("supplier_id", supplier_id); + record.set("system_id", system_id); + record.set("table_name", table_name); + record.set("table_description", table_description); + if (id == 0) { + record.set("is_deleted", 0); + record.set("create_time", new Date()); + Db.save("t_metadata_collect_task_table", "id", record); + id = record.getInt("id"); + } else { + record.set("update_time", new Date()); + Db.update("t_metadata_collect_task_table", "id", record); + } + result.put("success", true); + result.put("id", id); + } catch (Exception e) { + System.out.println(e.getMessage()); + result.put("success", false); + result.put("message", e.getMessage()); + } + + return result; + } + +} diff --git a/dsBase/src/main/java/com/dsideal/Base/MetaData/Utils/ImportExcelController.java b/dsBase/src/main/java/com/dsideal/Base/MetaData/Utils/ImportExcelController.java new file mode 100644 index 00000000..457f0171 --- /dev/null +++ b/dsBase/src/main/java/com/dsideal/Base/MetaData/Utils/ImportExcelController.java @@ -0,0 +1,321 @@ +package com.dsideal.Base.MetaData.Utils; + +import com.alibaba.fastjson.JSONObject; +import com.jfinal.core.Controller; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.*; +import org.apache.poi.ss.usermodel.*; + +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.*; + +public class ImportExcelController extends Controller { + + /** + * 功能:根据文件获取HSSFWorkbook + * 作者:Kalman.CHENG ☆ + * 时间:2022-07-13 + * @param templatePath + * @return + */ + public static HSSFWorkbook getHSSFWorkbookReportTemplate(String templatePath) { + + HSSFWorkbook workbook = null; + try { + File excelFile = new File(templatePath); + workbook = new HSSFWorkbook(new FileInputStream(excelFile)); + } catch (IOException e) { + e.printStackTrace(); + } + + return workbook; + + } + + public static void downloadExcel(HttpServletResponse response, HSSFWorkbook workbook, String fileName, Boolean addCurdate) throws IOException { + if (workbook != null){ + OutputStream out = null; + try { + Date date = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + String curDate = sdf.format(date); + + /** 是否已指定文件名称( 以后缀名称为准)*/ + if (!fileName.endsWith(".xls")){ + if(addCurdate) { + fileName = StringUtils.defaultString(fileName,"") + "_" + curDate + ".xls"; + } else { + fileName = StringUtils.defaultString(fileName,"") + ".xls"; + } + } + + fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+","%20"); + + response.setHeader("Connection", "close"); + response.setHeader("Content-Type", "application/vnd.ms-excel;charset=UTF-8"); + response.setContentType("application/octet-stream"); + response.setHeader("Content-disposition", "attachment;filename=\"" + fileName + "\""); + out = response.getOutputStream(); + workbook.write(out); + + }catch (Exception e){ + e.printStackTrace(); + System.out.println(e); + }finally { + if (out != null){ + out.close(); + out.flush(); + } + } + } + } + + + /** + * 带有颜色的Cell并且有边框 + * + * @param wb + * @param color + * @return + */ + public static HSSFCellStyle createCellColorStyle(HSSFWorkbook wb,short color) { + HSSFCellStyle dataCellStyle = wb.createCellStyle(); + dataCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); // 填充单元格 + dataCellStyle.setFillForegroundColor(color); // 填绿色 + dataCellStyle.setBorderBottom(BorderStyle.THIN); + dataCellStyle.setBottomBorderColor((short) 0); + dataCellStyle.setBorderLeft(BorderStyle.THIN); + dataCellStyle.setLeftBorderColor((short) 0); + dataCellStyle.setBorderRight(BorderStyle.THIN); + dataCellStyle.setRightBorderColor((short) 0); + dataCellStyle.setBorderTop(BorderStyle.THIN); + dataCellStyle.setTopBorderColor((short) 0); + dataCellStyle.setAlignment(HorizontalAlignment.CENTER);// 居中显示 + dataCellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + HSSFFont font = wb.createFont(); + font.setFontName("微软雅黑"); + font.setFontHeightInPoints((short) 10);//设置字体大小 + dataCellStyle.setFont(font); + return dataCellStyle; + } + + + /** + * 获取单元格的值 + * @param cell + * @return + */ + public static String getCellValue(Cell cell){ + + if(cell == null) return ""; + + if(cell.getCellType() == CellType.STRING){ + return cell.getStringCellValue(); + }else if(cell.getCellType() == CellType.BOOLEAN){ + return String.valueOf(cell.getBooleanCellValue()); + }else if(cell.getCellType() == CellType.FORMULA){ + return cell.getCellFormula() ; + }else if(cell.getCellType() == CellType.NUMERIC){ + String dataValue = String.valueOf(cell.getNumericCellValue()); + if (dataValue.length() > 2) { + String temp = dataValue.substring(dataValue.length() - 2); + if (".0".equals(temp)) { + dataValue = dataValue.substring(0, dataValue.length() - 2); + } + } + return dataValue; + } + return ""; + } + + + /** + * 功能:通用方法,构造jsonobject返回值 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-10 + * 备注: + * @param result + * @param errorList + * @return + */ + public static JSONObject translateErrorListToString(JSONObject result, List errorList) { + String info = ""; + for (int i = 0; i < errorList.size(); i++) { + info = info + errorList.get(i); + if (i != errorList.size() - 1) { + info = info + "
"; + } + } + result.put("success",false); + result.put("message",info); + return result; + } + + + /** + * 功能:通用方法,删除空白行 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-10 + * 备注: + * @param dataList + * @return + */ + public static List> removeEmptyMap(List> dataList) { + + List> newDataList = new ArrayList<>(); + + for (HashMap dataMap : dataList ) { + int emptyFlag = 1; + for (Object value : dataMap.values()) { + if (value != null && !"".equals(value.toString()) && !"null".equals(value.toString()) && !"NULL".equals(value.toString())) { + emptyFlag = 0; + break; + } + } + if (emptyFlag == 0) { + newDataList.add(dataMap); + } + } + + return newDataList; + + } + + /** + * 功能:检查模板是否有错误 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-09 + * 备注:1:模板验证码;2:分别读取数据表sheet,行数据检查 + * @param file + * @param file_name + * @param task_id + * @return + */ + public static JSONObject importMetadataInfoTemplate(File file, String file_name, int task_id, String[] columns) { + + JSONObject result = new JSONObject(); + + FileInputStream fis = null; + Workbook wb = null; + Sheet sheet = null; + try { + fis = new FileInputStream(file); + if (file_name.toLowerCase().endsWith("xls")) { + wb = new HSSFWorkbook(fis); + } + if (file_name.toLowerCase().endsWith("xlsx")) { + result.put("success",false); + result.put("message", "导入文件格式错误!请检查是否是xls类型"); + return result; + } + sheet = wb.getSheetAt(0); + } catch (Exception e) { + result.put("success",false); + result.put("message", "导入文件错误!"); + return result; + } + + // 验证上传模板是否正确 + try { + String cellValue = sheet.getRow(0).getCell(0).getStringCellValue(); + String templateName = "metadataTemplate"; + if (!"".equals(cellValue)) { + JSONObject cellObject = JSONObject.parseObject(cellValue); + if (!cellObject.containsKey("task_id") || !(task_id + "").equals(cellObject.get("task_id") + "") + || !cellObject.containsKey("template") || !templateName.equals(cellObject.get("template") + "")) { + result.put("success",false); + result.put("message", "导入模板不正确!"); + return result; + } + } + } catch (Exception e) { + result.put("success",false); + result.put("message", "导入模板不正确!"); + return result; + } + + String[] titleENs = new String[columns.length]; + for(int i=0; i< columns.length; i++){ + String[] index = columns[i].split("@"); + titleENs[i] = index[0].trim(); + } + + int numberOfSheets = wb.getNumberOfSheets(); + HashMap>> dataMap = new HashMap<>(); + List errorList = new ArrayList<>(); + for (int i = 1; i < numberOfSheets; i++) { + // 遍历sheet + String table_name = wb.getSheetName(i); + Sheet tableSheet = wb.getSheetAt(i); + // 读取模板内容 + List> dataList = new ArrayList<>(); + int lastDataRowNum = tableSheet.getLastRowNum(); + for (int j = 2; j <= lastDataRowNum; j++) { + try { + Row row = tableSheet.getRow(j); + if (row == null) { + errorList.add("文件中sheet【" + table_name + "】的第" + (j + 1) + "行整行为空,请检查!"); + break; + } + HashMap map = new HashMap<>(); + for (int k = 0; k < titleENs.length; k++) { + String propName = titleENs[k]; + Cell cell = row.getCell(k); + if (cell != null) { + if (propName.indexOf("time") > -1){ + String dateValue = getDateCellValue(cell); + map.put(propName, dateValue); + } else { + String cellValue = getCellValue(cell); + map.put(propName, cellValue); + } + } else { + map.put(propName, ""); + } + } + dataList.add(map); + } catch (Exception e) { + result.put("success",false); + result.put("message", "文件中sheet【" + table_name + "】的第" + (j + 1) + "行数据添加失败!"); + } + } + dataList = removeEmptyMap(dataList); + dataMap.put(table_name, dataList); + } + + // 如果errorList有值,则返回前台 + if (errorList.size() > 0) { + return translateErrorListToString(result, errorList); + } + + result.put("success",true); + result.put("message", "读取成功!"); + result.put("dataMap", dataMap); + + return result; + + } + + + /** + * 功能:获取date类型的cell值 + * 作者:Kalman.CHENG ☆ + * 时间:2025-06-10 + * 备注: + * @param cell + * @return + */ + private static String getDateCellValue(Cell cell) { + if (cell.getCellType() == CellType.NUMERIC) { + Date date = cell.getDateCellValue(); // 获取日期值 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置日期格式 + return sdf.format(date); // 格式化日期 + } else { + return ""; + } + + } +} diff --git a/dsBase/src/main/java/com/dsideal/Base/Model/BaseMetadataCollectTask.java b/dsBase/src/main/java/com/dsideal/Base/Model/BaseMetadataCollectTask.java new file mode 100644 index 00000000..2f51f107 --- /dev/null +++ b/dsBase/src/main/java/com/dsideal/Base/Model/BaseMetadataCollectTask.java @@ -0,0 +1,195 @@ +package com.dsideal.Base.Model; + +import com.jfinal.plugin.activerecord.Model; +import com.jfinal.plugin.activerecord.IBean; + +/** + * Generated by JFinal, do not modify this file. + */ +@SuppressWarnings("serial") +public abstract class BaseMetadataCollectTask> extends Model implements IBean { + + /** + * 主键-采集任务ID + */ + public void setId(java.lang.Integer id) { + set("id", id); + } + + /** + * 主键-采集任务ID + */ + public java.lang.Integer getId() { + return getInt("id"); + } + + /** + * 采集任务名称 + */ + public void setTaskName(java.lang.String taskName) { + set("task_name", taskName); + } + + /** + * 采集任务名称 + */ + public java.lang.String getTaskName() { + return getStr("task_name"); + } + + /** + * 采集任务简介 + */ + public void setTaskSynopsis(java.lang.String taskSynopsis) { + set("task_synopsis", taskSynopsis); + } + + /** + * 采集任务简介 + */ + public java.lang.String getTaskSynopsis() { + return getStr("task_synopsis"); + } + + /** + * 任务状态(0:未开始;1:进行中;2:已结束;) + */ + public void setTaskStatus(java.lang.Integer taskStatus) { + set("task_status", taskStatus); + } + + /** + * 任务状态(0:未开始;1:进行中;2:已结束;) + */ + public java.lang.Integer getTaskStatus() { + return getInt("task_status"); + } + + /** + * 开始时间 + */ + public void setBeginTime(java.util.Date beginTime) { + set("begin_time", beginTime); + } + + /** + * 开始时间 + */ + public java.util.Date getBeginTime() { + return getDate("begin_time"); + } + + /** + * 结束时间 + */ + public void setEndTime(java.util.Date endTime) { + set("end_time", endTime); + } + + /** + * 结束时间 + */ + public java.util.Date getEndTime() { + return getDate("end_time"); + } + + /** + * 供应商IDs(逗号分隔) + */ + public void setSupplierIds(java.lang.String supplierIds) { + set("supplier_ids", supplierIds); + } + + /** + * 供应商IDs(逗号分隔) + */ + public java.lang.String getSupplierIds() { + return getStr("supplier_ids"); + } + + /** + * 归档标识(0:未归档;1:已归档;) + */ + public void setArchiveFlag(java.lang.Integer archiveFlag) { + set("archive_flag", archiveFlag); + } + + /** + * 归档标识(0:未归档;1:已归档;) + */ + public java.lang.Integer getArchiveFlag() { + return getInt("archive_flag"); + } + + /** + * 创建人ID + */ + public void setPersonId(java.lang.String personId) { + set("person_id", personId); + } + + /** + * 创建人ID + */ + public java.lang.String getPersonId() { + return getStr("person_id"); + } + + /** + * 单位ID + */ + public void setBureauId(java.lang.String bureauId) { + set("bureau_id", bureauId); + } + + /** + * 单位ID + */ + public java.lang.String getBureauId() { + return getStr("bureau_id"); + } + + /** + * 删除状态:0-未删除;1-已删除 + */ + public void setIsDeleted(java.lang.Integer isDeleted) { + set("is_deleted", isDeleted); + } + + /** + * 删除状态:0-未删除;1-已删除 + */ + public java.lang.Integer getIsDeleted() { + return getInt("is_deleted"); + } + + /** + * 创建时间 + */ + public void setCreateTime(java.util.Date createTime) { + set("create_time", createTime); + } + + /** + * 创建时间 + */ + public java.util.Date getCreateTime() { + return getDate("create_time"); + } + + /** + * 修改时间 + */ + public void setUpdateTime(java.util.Date updateTime) { + set("update_time", updateTime); + } + + /** + * 修改时间 + */ + public java.util.Date getUpdateTime() { + return getDate("update_time"); + } + +} + diff --git a/dsBase/src/main/java/com/dsideal/Base/Model/BaseMetadataCollectTaskColumn.java b/dsBase/src/main/java/com/dsideal/Base/Model/BaseMetadataCollectTaskColumn.java new file mode 100644 index 00000000..cbc4fd19 --- /dev/null +++ b/dsBase/src/main/java/com/dsideal/Base/Model/BaseMetadataCollectTaskColumn.java @@ -0,0 +1,293 @@ +package com.dsideal.Base.Model; + +import com.jfinal.plugin.activerecord.Model; +import com.jfinal.plugin.activerecord.IBean; + +/** + * Generated by JFinal, do not modify this file. + */ +@SuppressWarnings("serial") +public abstract class BaseMetadataCollectTaskColumn> extends Model implements IBean { + + /** + * 主键-字段ID + */ + public void setId(java.lang.Integer id) { + set("id", id); + } + + /** + * 主键-字段ID + */ + public java.lang.Integer getId() { + return getInt("id"); + } + + /** + * 采集任务ID + */ + public void setTaskId(java.lang.Integer taskId) { + set("task_id", taskId); + } + + /** + * 采集任务ID + */ + public java.lang.Integer getTaskId() { + return getInt("task_id"); + } + + /** + * 供应商ID + */ + public void setSupplierId(java.lang.Integer supplierId) { + set("supplier_id", supplierId); + } + + /** + * 供应商ID + */ + public java.lang.Integer getSupplierId() { + return getInt("supplier_id"); + } + + /** + * 系统ID + */ + public void setSystemId(java.lang.Integer systemId) { + set("system_id", systemId); + } + + /** + * 系统ID + */ + public java.lang.Integer getSystemId() { + return getInt("system_id"); + } + + /** + * 表ID + */ + public void setTableId(java.lang.Integer tableId) { + set("table_id", tableId); + } + + /** + * 表ID + */ + public java.lang.Integer getTableId() { + return getInt("table_id"); + } + + /** + * 字段名 + */ + public void setColumnName(java.lang.String columnName) { + set("column_name", columnName); + } + + /** + * 字段名 + */ + public java.lang.String getColumnName() { + return getStr("column_name"); + } + + /** + * 数据类型 + */ + public void setDataType(java.lang.String dataType) { + set("data_type", dataType); + } + + /** + * 数据类型 + */ + public java.lang.String getDataType() { + return getStr("data_type"); + } + + /** + * 长度 + */ + public void setMaxLength(java.lang.Integer maxLength) { + set("max_length", maxLength); + } + + /** + * 长度 + */ + public java.lang.Integer getMaxLength() { + return getInt("max_length"); + } + + /** + * 是否允许为空(1:允许;0:不允许;) + */ + public void setIsNullable(java.lang.Integer isNullable) { + set("is_nullable", isNullable); + } + + /** + * 是否允许为空(1:允许;0:不允许;) + */ + public java.lang.Integer getIsNullable() { + return getInt("is_nullable"); + } + + /** + * 是否主键(1:主键;0:非主键;) + */ + public void setPrimaryKey(java.lang.Integer primaryKey) { + set("primary_key", primaryKey); + } + + /** + * 是否主键(1:主键;0:非主键;) + */ + public java.lang.Integer getPrimaryKey() { + return getInt("primary_key"); + } + + /** + * 默认值 + */ + public void setColumnDefault(java.lang.String columnDefault) { + set("column_default", columnDefault); + } + + /** + * 默认值 + */ + public java.lang.String getColumnDefault() { + return getStr("column_default"); + } + + /** + * 描述 + */ + public void setColumnComment(java.lang.String columnComment) { + set("column_comment", columnComment); + } + + /** + * 描述 + */ + public java.lang.String getColumnComment() { + return getStr("column_comment"); + } + + /** + * 字段创建时间 + */ + public void setColumnCreateTime(java.util.Date columnCreateTime) { + set("column_create_time", columnCreateTime); + } + + /** + * 字段创建时间 + */ + public java.util.Date getColumnCreateTime() { + return getDate("column_create_time"); + } + + /** + * 字段更新时间 + */ + public void setColumnUpdateTime(java.util.Date columnUpdateTime) { + set("column_update_time", columnUpdateTime); + } + + /** + * 字段更新时间 + */ + public java.util.Date getColumnUpdateTime() { + return getDate("column_update_time"); + } + + /** + * 负责人 + */ + public void setDevelopmentManager(java.lang.String developmentManager) { + set("development_manager", developmentManager); + } + + /** + * 负责人 + */ + public java.lang.String getDevelopmentManager() { + return getStr("development_manager"); + } + + /** + * 创建人ID + */ + public void setPersonId(java.lang.String personId) { + set("person_id", personId); + } + + /** + * 创建人ID + */ + public java.lang.String getPersonId() { + return getStr("person_id"); + } + + /** + * 单位ID + */ + public void setBureauId(java.lang.String bureauId) { + set("bureau_id", bureauId); + } + + /** + * 单位ID + */ + public java.lang.String getBureauId() { + return getStr("bureau_id"); + } + + /** + * 删除状态:0-未删除;1-已删除 + */ + public void setIsDeleted(java.lang.Integer isDeleted) { + set("is_deleted", isDeleted); + } + + /** + * 删除状态:0-未删除;1-已删除 + */ + public java.lang.Integer getIsDeleted() { + return getInt("is_deleted"); + } + + /** + * 创建时间 + */ + public void setCreateTime(java.util.Date createTime) { + set("create_time", createTime); + } + + /** + * 创建时间 + */ + public java.util.Date getCreateTime() { + return getDate("create_time"); + } + + /** + * 修改时间 + */ + public void setUpdateTime(java.util.Date updateTime) { + set("update_time", updateTime); + } + + /** + * 修改时间 + */ + public java.util.Date getUpdateTime() { + return getDate("update_time"); + } + +} + diff --git a/dsBase/src/main/java/com/dsideal/Base/Model/BaseMetadataCollectTaskSupplier.java b/dsBase/src/main/java/com/dsideal/Base/Model/BaseMetadataCollectTaskSupplier.java new file mode 100644 index 00000000..980e82e1 --- /dev/null +++ b/dsBase/src/main/java/com/dsideal/Base/Model/BaseMetadataCollectTaskSupplier.java @@ -0,0 +1,139 @@ +package com.dsideal.Base.Model; + +import com.jfinal.plugin.activerecord.Model; +import com.jfinal.plugin.activerecord.IBean; + +/** + * Generated by JFinal, do not modify this file. + */ +@SuppressWarnings("serial") +public abstract class BaseMetadataCollectTaskSupplier> extends Model implements IBean { + + /** + * 主键-主键 + */ + public void setId(java.lang.Integer id) { + set("id", id); + } + + /** + * 主键-主键 + */ + public java.lang.Integer getId() { + return getInt("id"); + } + + /** + * 采集任务ID + */ + public void setTaskId(java.lang.Integer taskId) { + set("task_id", taskId); + } + + /** + * 采集任务ID + */ + public java.lang.Integer getTaskId() { + return getInt("task_id"); + } + + /** + * 供应商ID + */ + public void setSupplierId(java.lang.Integer supplierId) { + set("supplier_id", supplierId); + } + + /** + * 供应商ID + */ + public java.lang.Integer getSupplierId() { + return getInt("supplier_id"); + } + + /** + * 供应商采集状态(0:无单独状态;1:进行中;2:已结束;)【优先于任务时间范围,在整体任务状态控制之内】 + */ + public void setSupplierStatus(java.lang.Integer supplierStatus) { + set("supplier_status", supplierStatus); + } + + /** + * 供应商采集状态(0:无单独状态;1:进行中;2:已结束;)【优先于任务时间范围,在整体任务状态控制之内】 + */ + public java.lang.Integer getSupplierStatus() { + return getInt("supplier_status"); + } + + /** + * 创建人ID + */ + public void setPersonId(java.lang.String personId) { + set("person_id", personId); + } + + /** + * 创建人ID + */ + public java.lang.String getPersonId() { + return getStr("person_id"); + } + + /** + * 单位ID + */ + public void setBureauId(java.lang.String bureauId) { + set("bureau_id", bureauId); + } + + /** + * 单位ID + */ + public java.lang.String getBureauId() { + return getStr("bureau_id"); + } + + /** + * 删除状态:0-未删除;1-已删除 + */ + public void setIsDeleted(java.lang.Integer isDeleted) { + set("is_deleted", isDeleted); + } + + /** + * 删除状态:0-未删除;1-已删除 + */ + public java.lang.Integer getIsDeleted() { + return getInt("is_deleted"); + } + + /** + * 创建时间 + */ + public void setCreateTime(java.util.Date createTime) { + set("create_time", createTime); + } + + /** + * 创建时间 + */ + public java.util.Date getCreateTime() { + return getDate("create_time"); + } + + /** + * 修改时间 + */ + public void setUpdateTime(java.util.Date updateTime) { + set("update_time", updateTime); + } + + /** + * 修改时间 + */ + public java.util.Date getUpdateTime() { + return getDate("update_time"); + } + +} + diff --git a/dsBase/src/main/java/com/dsideal/Base/Model/BaseMetadataCollectTaskTable.java b/dsBase/src/main/java/com/dsideal/Base/Model/BaseMetadataCollectTaskTable.java new file mode 100644 index 00000000..80901ff1 --- /dev/null +++ b/dsBase/src/main/java/com/dsideal/Base/Model/BaseMetadataCollectTaskTable.java @@ -0,0 +1,167 @@ +package com.dsideal.Base.Model; + +import com.jfinal.plugin.activerecord.Model; +import com.jfinal.plugin.activerecord.IBean; + +/** + * Generated by JFinal, do not modify this file. + */ +@SuppressWarnings("serial") +public abstract class BaseMetadataCollectTaskTable> extends Model implements IBean { + + /** + * 主键-表ID + */ + public void setId(java.lang.Integer id) { + set("id", id); + } + + /** + * 主键-表ID + */ + public java.lang.Integer getId() { + return getInt("id"); + } + + /** + * 表名 + */ + public void setTableName(java.lang.String tableName) { + set("table_name", tableName); + } + + /** + * 表名 + */ + public java.lang.String getTableName() { + return getStr("table_name"); + } + + /** + * 表说明 + */ + public void setTableDescription(java.lang.String tableDescription) { + set("table_description", tableDescription); + } + + /** + * 表说明 + */ + public java.lang.String getTableDescription() { + return getStr("table_description"); + } + + /** + * 采集任务ID + */ + public void setTaskId(java.lang.Integer taskId) { + set("task_id", taskId); + } + + /** + * 采集任务ID + */ + public java.lang.Integer getTaskId() { + return getInt("task_id"); + } + + /** + * 供应商ID + */ + public void setSupplierId(java.lang.Integer supplierId) { + set("supplier_id", supplierId); + } + + /** + * 供应商ID + */ + public java.lang.Integer getSupplierId() { + return getInt("supplier_id"); + } + + /** + * 系统ID + */ + public void setSystemId(java.lang.Integer systemId) { + set("system_id", systemId); + } + + /** + * 系统ID + */ + public java.lang.Integer getSystemId() { + return getInt("system_id"); + } + + /** + * 创建人ID + */ + public void setPersonId(java.lang.String personId) { + set("person_id", personId); + } + + /** + * 创建人ID + */ + public java.lang.String getPersonId() { + return getStr("person_id"); + } + + /** + * 单位ID + */ + public void setBureauId(java.lang.String bureauId) { + set("bureau_id", bureauId); + } + + /** + * 单位ID + */ + public java.lang.String getBureauId() { + return getStr("bureau_id"); + } + + /** + * 删除状态:0-未删除;1-已删除 + */ + public void setIsDeleted(java.lang.Integer isDeleted) { + set("is_deleted", isDeleted); + } + + /** + * 删除状态:0-未删除;1-已删除 + */ + public java.lang.Integer getIsDeleted() { + return getInt("is_deleted"); + } + + /** + * 创建时间 + */ + public void setCreateTime(java.util.Date createTime) { + set("create_time", createTime); + } + + /** + * 创建时间 + */ + public java.util.Date getCreateTime() { + return getDate("create_time"); + } + + /** + * 修改时间 + */ + public void setUpdateTime(java.util.Date updateTime) { + set("update_time", updateTime); + } + + /** + * 修改时间 + */ + public java.util.Date getUpdateTime() { + return getDate("update_time"); + } + +} + diff --git a/dsBase/src/main/java/com/dsideal/Base/Model/BaseMetadataSupplier.java b/dsBase/src/main/java/com/dsideal/Base/Model/BaseMetadataSupplier.java new file mode 100644 index 00000000..c5e6409c --- /dev/null +++ b/dsBase/src/main/java/com/dsideal/Base/Model/BaseMetadataSupplier.java @@ -0,0 +1,293 @@ +package com.dsideal.Base.Model; + +import com.jfinal.plugin.activerecord.Model; +import com.jfinal.plugin.activerecord.IBean; + +/** + * Generated by JFinal, do not modify this file. + */ +@SuppressWarnings("serial") +public abstract class BaseMetadataSupplier> extends Model implements IBean { + + /** + * 主键-供应商id + */ + public void setId(java.lang.Integer id) { + set("id", id); + } + + /** + * 主键-供应商id + */ + public java.lang.Integer getId() { + return getInt("id"); + } + + /** + * 供应商名称 + */ + public void setSupplierName(java.lang.String supplierName) { + set("supplier_name", supplierName); + } + + /** + * 供应商名称 + */ + public java.lang.String getSupplierName() { + return getStr("supplier_name"); + } + + /** + * 供应商简称 + */ + public void setSupplierShortName(java.lang.String supplierShortName) { + set("supplier_short_name", supplierShortName); + } + + /** + * 供应商简称 + */ + public java.lang.String getSupplierShortName() { + return getStr("supplier_short_name"); + } + + /** + * 成立日期 + */ + public void setSetUpTime(java.util.Date setUpTime) { + set("set_up_time", setUpTime); + } + + /** + * 成立日期 + */ + public java.util.Date getSetUpTime() { + return getDate("set_up_time"); + } + + /** + * 注册地址 + */ + public void setRegisterAddress(java.lang.String registerAddress) { + set("register_address", registerAddress); + } + + /** + * 注册地址 + */ + public java.lang.String getRegisterAddress() { + return getStr("register_address"); + } + + /** + * 办公地址 + */ + public void setOfficeAddress(java.lang.String officeAddress) { + set("office_address", officeAddress); + } + + /** + * 办公地址 + */ + public java.lang.String getOfficeAddress() { + return getStr("office_address"); + } + + /** + * 联系电话 + */ + public void setOfficePhone(java.lang.String officePhone) { + set("office_phone", officePhone); + } + + /** + * 联系电话 + */ + public java.lang.String getOfficePhone() { + return getStr("office_phone"); + } + + /** + * 电子邮箱 + */ + public void setOfficeEmail(java.lang.String officeEmail) { + set("office_email", officeEmail); + } + + /** + * 电子邮箱 + */ + public java.lang.String getOfficeEmail() { + return getStr("office_email"); + } + + /** + * 公司网址 + */ + public void setCompanyWebsite(java.lang.String companyWebsite) { + set("company_website", companyWebsite); + } + + /** + * 公司网址 + */ + public java.lang.String getCompanyWebsite() { + return getStr("company_website"); + } + + /** + * 供应商管理员ID + */ + public void setAdminPersonId(java.lang.String adminPersonId) { + set("admin_person_id", adminPersonId); + } + + /** + * 供应商管理员ID + */ + public java.lang.String getAdminPersonId() { + return getStr("admin_person_id"); + } + + /** + * 联系人姓名 + */ + public void setContactName(java.lang.String contactName) { + set("contact_name", contactName); + } + + /** + * 联系人姓名 + */ + public java.lang.String getContactName() { + return getStr("contact_name"); + } + + /** + * 联系人职位 + */ + public void setContactTitle(java.lang.String contactTitle) { + set("contact_title", contactTitle); + } + + /** + * 联系人职位 + */ + public java.lang.String getContactTitle() { + return getStr("contact_title"); + } + + /** + * 联系人手机 + */ + public void setContactPhone(java.lang.String contactPhone) { + set("contact_phone", contactPhone); + } + + /** + * 联系人手机 + */ + public java.lang.String getContactPhone() { + return getStr("contact_phone"); + } + + /** + * 联系人电子邮箱 + */ + public void setContactEmail(java.lang.String contactEmail) { + set("contact_email", contactEmail); + } + + /** + * 联系人电子邮箱 + */ + public java.lang.String getContactEmail() { + return getStr("contact_email"); + } + + /** + * 备注 + */ + public void setRemark(java.lang.String remark) { + set("remark", remark); + } + + /** + * 备注 + */ + public java.lang.String getRemark() { + return getStr("remark"); + } + + /** + * 创建人ID + */ + public void setPersonId(java.lang.String personId) { + set("person_id", personId); + } + + /** + * 创建人ID + */ + public java.lang.String getPersonId() { + return getStr("person_id"); + } + + /** + * 单位ID + */ + public void setBureauId(java.lang.String bureauId) { + set("bureau_id", bureauId); + } + + /** + * 单位ID + */ + public java.lang.String getBureauId() { + return getStr("bureau_id"); + } + + /** + * 删除状态:0-未删除;1-已删除 + */ + public void setIsDeleted(java.lang.Integer isDeleted) { + set("is_deleted", isDeleted); + } + + /** + * 删除状态:0-未删除;1-已删除 + */ + public java.lang.Integer getIsDeleted() { + return getInt("is_deleted"); + } + + /** + * 创建时间 + */ + public void setCreateTime(java.util.Date createTime) { + set("create_time", createTime); + } + + /** + * 创建时间 + */ + public java.util.Date getCreateTime() { + return getDate("create_time"); + } + + /** + * 修改时间 + */ + public void setUpdateTime(java.util.Date updateTime) { + set("update_time", updateTime); + } + + /** + * 修改时间 + */ + public java.util.Date getUpdateTime() { + return getDate("update_time"); + } + +} + diff --git a/dsBase/src/main/java/com/dsideal/Base/Model/BaseMetadataSystem.java b/dsBase/src/main/java/com/dsideal/Base/Model/BaseMetadataSystem.java new file mode 100644 index 00000000..a090236f --- /dev/null +++ b/dsBase/src/main/java/com/dsideal/Base/Model/BaseMetadataSystem.java @@ -0,0 +1,223 @@ +package com.dsideal.Base.Model; + +import com.jfinal.plugin.activerecord.Model; +import com.jfinal.plugin.activerecord.IBean; + +/** + * Generated by JFinal, do not modify this file. + */ +@SuppressWarnings("serial") +public abstract class BaseMetadataSystem> extends Model implements IBean { + + /** + * 主键-系统ID + */ + public void setId(java.lang.Integer id) { + set("id", id); + } + + /** + * 主键-系统ID + */ + public java.lang.Integer getId() { + return getInt("id"); + } + + /** + * 系统名称 + */ + public void setSystemName(java.lang.String systemName) { + set("system_name", systemName); + } + + /** + * 系统名称 + */ + public java.lang.String getSystemName() { + return getStr("system_name"); + } + + /** + * 系统简称 + */ + public void setSystemShortName(java.lang.String systemShortName) { + set("system_short_name", systemShortName); + } + + /** + * 系统简称 + */ + public java.lang.String getSystemShortName() { + return getStr("system_short_name"); + } + + /** + * 供应商ID + */ + public void setSupplierId(java.lang.Integer supplierId) { + set("supplier_id", supplierId); + } + + /** + * 供应商ID + */ + public java.lang.Integer getSupplierId() { + return getInt("supplier_id"); + } + + /** + * 系统版本 + */ + public void setSystemVersion(java.lang.String systemVersion) { + set("system_version", systemVersion); + } + + /** + * 系统版本 + */ + public java.lang.String getSystemVersion() { + return getStr("system_version"); + } + + /** + * 系统状态(-1:开发中;0:测试中;1:上线运行;2:已下线;) + */ + public void setSystemStatus(java.lang.Integer systemStatus) { + set("system_status", systemStatus); + } + + /** + * 系统状态(-1:开发中;0:测试中;1:上线运行;2:已下线;) + */ + public java.lang.Integer getSystemStatus() { + return getInt("system_status"); + } + + /** + * 系统简介 + */ + public void setSystemSynopsis(java.lang.String systemSynopsis) { + set("system_synopsis", systemSynopsis); + } + + /** + * 系统简介 + */ + public java.lang.String getSystemSynopsis() { + return getStr("system_synopsis"); + } + + /** + * 开发负责人 + */ + public void setDevelopmentManager(java.lang.String developmentManager) { + set("development_manager", developmentManager); + } + + /** + * 开发负责人 + */ + public java.lang.String getDevelopmentManager() { + return getStr("development_manager"); + } + + /** + * 联系方式 + */ + public void setContactInformation(java.lang.String contactInformation) { + set("contact_information", contactInformation); + } + + /** + * 联系方式 + */ + public java.lang.String getContactInformation() { + return getStr("contact_information"); + } + + /** + * 备注 + */ + public void setRemark(java.lang.String remark) { + set("remark", remark); + } + + /** + * 备注 + */ + public java.lang.String getRemark() { + return getStr("remark"); + } + + /** + * 创建人ID + */ + public void setPersonId(java.lang.String personId) { + set("person_id", personId); + } + + /** + * 创建人ID + */ + public java.lang.String getPersonId() { + return getStr("person_id"); + } + + /** + * 单位ID + */ + public void setBureauId(java.lang.String bureauId) { + set("bureau_id", bureauId); + } + + /** + * 单位ID + */ + public java.lang.String getBureauId() { + return getStr("bureau_id"); + } + + /** + * 删除状态:0-未删除;1-已删除 + */ + public void setIsDeleted(java.lang.Integer isDeleted) { + set("is_deleted", isDeleted); + } + + /** + * 删除状态:0-未删除;1-已删除 + */ + public java.lang.Integer getIsDeleted() { + return getInt("is_deleted"); + } + + /** + * 创建时间 + */ + public void setCreateTime(java.util.Date createTime) { + set("create_time", createTime); + } + + /** + * 创建时间 + */ + public java.util.Date getCreateTime() { + return getDate("create_time"); + } + + /** + * 修改时间 + */ + public void setUpdateTime(java.util.Date updateTime) { + set("update_time", updateTime); + } + + /** + * 修改时间 + */ + public java.util.Date getUpdateTime() { + return getDate("update_time"); + } + +} + diff --git a/dsBase/src/main/java/com/dsideal/Base/Model/MetadataCollectTask.java b/dsBase/src/main/java/com/dsideal/Base/Model/MetadataCollectTask.java new file mode 100644 index 00000000..69de6bea --- /dev/null +++ b/dsBase/src/main/java/com/dsideal/Base/Model/MetadataCollectTask.java @@ -0,0 +1,12 @@ +package com.dsideal.Base.Model; + +import com.dsideal.Base.Model.BaseMetadataCollectTask; + +/** + * Generated by JFinal. + */ +@SuppressWarnings("serial") +public class MetadataCollectTask extends BaseMetadataCollectTask { + +} + diff --git a/dsBase/src/main/java/com/dsideal/Base/Model/MetadataCollectTaskColumn.java b/dsBase/src/main/java/com/dsideal/Base/Model/MetadataCollectTaskColumn.java new file mode 100644 index 00000000..1687cc93 --- /dev/null +++ b/dsBase/src/main/java/com/dsideal/Base/Model/MetadataCollectTaskColumn.java @@ -0,0 +1,12 @@ +package com.dsideal.Base.Model; + +import com.dsideal.Base.Model.BaseMetadataCollectTaskColumn; + +/** + * Generated by JFinal. + */ +@SuppressWarnings("serial") +public class MetadataCollectTaskColumn extends BaseMetadataCollectTaskColumn { + +} + diff --git a/dsBase/src/main/java/com/dsideal/Base/Model/MetadataCollectTaskSupplier.java b/dsBase/src/main/java/com/dsideal/Base/Model/MetadataCollectTaskSupplier.java new file mode 100644 index 00000000..0d2e4d3b --- /dev/null +++ b/dsBase/src/main/java/com/dsideal/Base/Model/MetadataCollectTaskSupplier.java @@ -0,0 +1,12 @@ +package com.dsideal.Base.Model; + +import com.dsideal.Base.Model.BaseMetadataCollectTaskSupplier; + +/** + * Generated by JFinal. + */ +@SuppressWarnings("serial") +public class MetadataCollectTaskSupplier extends BaseMetadataCollectTaskSupplier { + +} + diff --git a/dsBase/src/main/java/com/dsideal/Base/Model/MetadataCollectTaskTable.java b/dsBase/src/main/java/com/dsideal/Base/Model/MetadataCollectTaskTable.java new file mode 100644 index 00000000..7a1b85d2 --- /dev/null +++ b/dsBase/src/main/java/com/dsideal/Base/Model/MetadataCollectTaskTable.java @@ -0,0 +1,12 @@ +package com.dsideal.Base.Model; + +import com.dsideal.Base.Model.BaseMetadataCollectTaskTable; + +/** + * Generated by JFinal. + */ +@SuppressWarnings("serial") +public class MetadataCollectTaskTable extends BaseMetadataCollectTaskTable { + +} + diff --git a/dsBase/src/main/java/com/dsideal/Base/Model/MetadataSupplier.java b/dsBase/src/main/java/com/dsideal/Base/Model/MetadataSupplier.java new file mode 100644 index 00000000..48ec6987 --- /dev/null +++ b/dsBase/src/main/java/com/dsideal/Base/Model/MetadataSupplier.java @@ -0,0 +1,12 @@ +package com.dsideal.Base.Model; + +import com.dsideal.Base.Model.BaseMetadataSupplier; + +/** + * Generated by JFinal. + */ +@SuppressWarnings("serial") +public class MetadataSupplier extends BaseMetadataSupplier { + +} + diff --git a/dsBase/src/main/java/com/dsideal/Base/Model/MetadataSystem.java b/dsBase/src/main/java/com/dsideal/Base/Model/MetadataSystem.java new file mode 100644 index 00000000..69c2df3a --- /dev/null +++ b/dsBase/src/main/java/com/dsideal/Base/Model/MetadataSystem.java @@ -0,0 +1,12 @@ +package com.dsideal.Base.Model; + +import com.dsideal.Base.Model.BaseMetadataSystem; + +/** + * Generated by JFinal. + */ +@SuppressWarnings("serial") +public class MetadataSystem extends BaseMetadataSystem { + +} + diff --git a/dsBase/src/main/java/com/dsideal/Base/Model/_MappingKit.java b/dsBase/src/main/java/com/dsideal/Base/Model/_MappingKit.java index d28da98b..783ea64f 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Model/_MappingKit.java +++ b/dsBase/src/main/java/com/dsideal/Base/Model/_MappingKit.java @@ -47,6 +47,12 @@ public class _MappingKit { arp.addMapping("t_dm_zzmm", "zzmm_id", DmZzmm.class); arp.addMapping("t_import_student_by_excel", "id", ImportStudentByExcel.class); arp.addMapping("t_import_teacher_by_excel", "id", ImportTeacherByExcel.class); + arp.addMapping("t_metadata_collect_task", "id", MetadataCollectTask.class); + arp.addMapping("t_metadata_collect_task_column", "id", MetadataCollectTaskColumn.class); + arp.addMapping("t_metadata_collect_task_supplier", "id", MetadataCollectTaskSupplier.class); + arp.addMapping("t_metadata_collect_task_table", "id", MetadataCollectTaskTable.class); + arp.addMapping("t_metadata_supplier", "id", MetadataSupplier.class); + arp.addMapping("t_metadata_system", "id", MetadataSystem.class); arp.addMapping("t_person_duty", "id", PersonDuty.class); arp.addMapping("t_sys_identity", "identity_id", SysIdentity.class); arp.addMapping("t_sys_login_log", "id", SysLoginLog.class); diff --git a/dsBase/src/main/java/com/dsideal/Base/Organization/Controller/OrganizationController.java b/dsBase/src/main/java/com/dsideal/Base/Organization/Controller/OrganizationController.java index bf6e313c..c117ecc7 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Organization/Controller/OrganizationController.java +++ b/dsBase/src/main/java/com/dsideal/Base/Organization/Controller/OrganizationController.java @@ -33,7 +33,7 @@ public class OrganizationController extends Controller { if (records == null || records.size() == 0) { renderJson(CommonUtil.returnMessageJson(false, "没有找到此单位号!")); } else { - Record record = records.get(0); + Record record = records.getFirst(); int school_type_id = record.getInt("school_type_id"); if (school_type_id > 0) { renderJson(CommonUtil.returnMessageJson(true, "是学校!")); @@ -84,7 +84,7 @@ public class OrganizationController extends Controller { renderJson(CommonUtil.returnMessageJson(false, "parent_org_id参数不正确!")); return; } - String city_id = rs.get(0).getStr("city_id"); + String city_id = rs.getFirst().getStr("city_id"); int cityOrarea; if (parent_org_id.equals(city_id)) { cityOrarea = 1; @@ -96,8 +96,8 @@ public class OrganizationController extends Controller { renderJson(CommonUtil.returnMessageJson(false, "school_type_id参数不正确!")); return; } - int shi_org_type = r.get(0).getInt("shi_org_type"); - int area_org_type = r.get(0).getInt("area_org_type"); + int shi_org_type = r.getFirst().getInt("shi_org_type"); + int area_org_type = r.getFirst().getInt("area_org_type"); if (cityOrarea == 1) { org_type_id = shi_org_type; } else { @@ -172,16 +172,16 @@ public class OrganizationController extends Controller { if (identity_id == 2) //2号人物角色,即市管理员 { - String city_id = orgrs.get(0).getStr("city_id"); - if (!rs.get(0).getStr("city_id").equals(city_id)) { + String city_id = orgrs.getFirst().getStr("city_id"); + if (!rs.getFirst().getStr("city_id").equals(city_id)) { renderJson(CommonUtil.returnMessageJson(false, "当前登录用户没有此单位的管理权限,不能删除!")); return; } } if (identity_id == 3) //3号人物角色,即县区管理员 { - String area_id = orgrs.get(0).getStr("area_id"); - if (!rs.get(0).getStr("area_id").equals(area_id)) { + String area_id = orgrs.getFirst().getStr("area_id"); + if (!rs.getFirst().getStr("area_id").equals(area_id)) { renderJson(CommonUtil.returnMessageJson(false, "当前登录用户没有此单位的管理权限,不能删除!")); return; } @@ -313,7 +313,7 @@ public class OrganizationController extends Controller { renderJson(CommonUtil.returnMessageJson(false, "没有找到此父ID节点!!")); return; } - String bureau_id = rs.get(0).getStr("bureau_id"); + String bureau_id = rs.getFirst().getStr("bureau_id"); //操作人 Record rPerson = JwtUtil.getPersonInfo(getRequest()); String operator = rPerson.getStr("person_id"); diff --git a/dsBase/src/main/java/com/dsideal/Base/Organization/Model/OrganizationModel.java b/dsBase/src/main/java/com/dsideal/Base/Organization/Model/OrganizationModel.java index bc9a7ef8..54332384 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Organization/Model/OrganizationModel.java +++ b/dsBase/src/main/java/com/dsideal/Base/Organization/Model/OrganizationModel.java @@ -42,10 +42,10 @@ public class OrganizationModel { String sql = Db.getSql("organization.getOrgInfoById"); List list = Db.find(sql, bureau_id); if (!list.isEmpty()) { - resMap.put("city_id", list.get(0).getStr("city_id")); - resMap.put("area_id", list.get(0).getStr("area_id")); - resMap.put("main_school_id", list.get(0).getStr("main_school_id")); - resMap.put("school_type_id", list.get(0).getStr("school_type_id")); + resMap.put("city_id", list.getFirst().getStr("city_id")); + resMap.put("area_id", list.getFirst().getStr("area_id")); + resMap.put("main_school_id", list.getFirst().getStr("main_school_id")); + resMap.put("school_type_id", list.getFirst().getStr("school_type_id")); return resMap; } else { return null; @@ -74,23 +74,23 @@ public class OrganizationModel { map.put("area_code", ""); } else { //如果是市 - if (records.get(0).getStr("id").equals(records.get(0).getStr("city_id"))) { + if (records.getFirst().getStr("id").equals(records.getFirst().getStr("city_id"))) { map.put("city_id", id); map.put("area_id", NullGuid); - map.put("parent_id", records.get(0).getStr("parent_id")); - map.put("area_name", records.get(0).getStr("area_name")); - map.put("area_code", records.get(0).getStr("area_code")); - map.put("province_id", records.get(0).getStr("province_id")); - map.put("province_name", records.get(0).getStr("province_name")); + map.put("parent_id", records.getFirst().getStr("parent_id")); + map.put("area_name", records.getFirst().getStr("area_name")); + map.put("area_code", records.getFirst().getStr("area_code")); + map.put("province_id", records.getFirst().getStr("province_id")); + map.put("province_name", records.getFirst().getStr("province_name")); } else//如果是县区 { sql = Db.getSql("dm.getAreaById"); - String city_id = Db.find(sql, id).get(0).getStr("parent_id"); + String city_id = Db.find(sql, id).getFirst().getStr("parent_id"); map.put("city_id", city_id); map.put("area_id", id); - map.put("parent_id", records.get(0).getStr("parent_id")); - map.put("area_name", records.get(0).getStr("area_name")); - map.put("area_code", records.get(0).getStr("area_code")); + map.put("parent_id", records.getFirst().getStr("parent_id")); + map.put("area_name", records.getFirst().getStr("area_name")); + map.put("area_code", records.getFirst().getStr("area_code")); } } return map; @@ -196,8 +196,8 @@ public class OrganizationModel { record.set("bureau_id", bureau_id); List rs = getAreaIdByParentId(bureau_id); if (rs != null && !rs.isEmpty()) { - city_id = rs.get(0).getStr("city_id"); - area_id = rs.get(0).getStr("area_id"); + city_id = rs.getFirst().getStr("city_id"); + area_id = rs.getFirst().getStr("area_id"); } else { city_id = "-1"; area_id = "-1"; @@ -238,7 +238,7 @@ public class OrganizationModel { public List getAreaIdByParentId(String parent_id) { List rs = getOrgInfoById(parent_id); if (!rs.isEmpty()) { - String bureau_id = rs.get(0).getStr("bureau_id"); + String bureau_id = rs.getFirst().getStr("bureau_id"); rs = getOrgInfoById(bureau_id); if (!rs.isEmpty()) { return rs; @@ -276,8 +276,8 @@ public class OrganizationModel { int b_use = 0; List rs = getOrgInfoById(org_id); if (!rs.isEmpty()) { - create_time = DateUtil.parse(rs.get(0).getStr("create_time")); - b_use = rs.get(0).getInt("b_use"); + create_time = DateUtil.parse(rs.getFirst().getStr("create_time")); + b_use = rs.getFirst().getInt("b_use"); } record.set("create_time", create_time); record.set("b_use", b_use); @@ -315,8 +315,8 @@ public class OrganizationModel { List rs = getAreaIdByParentId(parent_id); if (rs != null && !rs.isEmpty()) { - city_id = rs.get(0).getStr("city_id"); - area_id = rs.get(0).getStr("area_id"); + city_id = rs.getFirst().getStr("city_id"); + area_id = rs.getFirst().getStr("area_id"); } else { city_id = "-1"; area_id = "-1"; @@ -331,9 +331,9 @@ public class OrganizationModel { String bureau_id = null; rs = getOrgInfoById(org_id); if (!rs.isEmpty()) { - bureau_id = rs.get(0).getStr("bureau_id"); - create_time = rs.get(0).getStr("create_time"); - b_use = rs.get(0).getInt("b_use"); + bureau_id = rs.getFirst().getStr("bureau_id"); + create_time = rs.getFirst().getStr("create_time"); + b_use = rs.getFirst().getInt("b_use"); } record.set("bureau_id", bureau_id); record.set("create_time", DateUtil.parse(create_time)); @@ -354,7 +354,7 @@ public class OrganizationModel { */ public int getClassCountByBureauId(String org_id) { String sql = Db.getSql("class.getClassCountByBureauId"); - return Db.find(sql, org_id).get(0).getInt("c"); + return Db.find(sql, org_id).getFirst().getInt("c"); } /** @@ -367,7 +367,7 @@ public class OrganizationModel { */ public int getOrgCountByBureauId(String org_id) { String sql = Db.getSql("organization.getOrgCountByBureauId"); - return Db.find(sql, org_id, org_id).get(0).getInt("c"); + return Db.find(sql, org_id, org_id).getFirst().getInt("c"); } /** @@ -380,7 +380,7 @@ public class OrganizationModel { */ public int getTeacherCountByBureauId(String org_id) { String sql = Db.getSql("loginPerson.getTeacherCountByBureauId"); - return Db.find(sql, org_id).get(0).getInt("c"); + return Db.find(sql, org_id).getFirst().getInt("c"); } /** @@ -393,7 +393,7 @@ public class OrganizationModel { */ public int getTeacherCountByOrgId(String org_id) { String sql = Db.getSql("loginPerson.getTeacherCountByOrgId"); - return Db.find(sql, org_id).get(0).getInt("c"); + return Db.find(sql, org_id).getFirst().getInt("c"); } /** @@ -406,7 +406,7 @@ public class OrganizationModel { */ public int getStudentCountByBureauId(String org_id) { String sql = Db.getSql("loginPerson.getStudentCountByBureauId"); - return Db.find(sql, org_id).get(0).getInt("c"); + return Db.find(sql, org_id).getFirst().getInt("c"); } /** @@ -419,7 +419,7 @@ public class OrganizationModel { */ public int getParentCountByBureauId(String org_id) { String sql = Db.getSql("loginPerson.getParentCountByBureauId"); - return Db.find(sql, org_id).get(0).getInt("c"); + return Db.find(sql, org_id).getFirst().getInt("c"); } /** @@ -457,7 +457,7 @@ public class OrganizationModel { */ public int getOrgCodeCount(String org_code) { String sql = Db.getSql("organization.getOrgCodeCount"); - return Db.find(sql, org_code).get(0).getInt("c"); + return Db.find(sql, org_code).getFirst().getInt("c"); } /** @@ -470,7 +470,7 @@ public class OrganizationModel { */ public int getOrgCodeCountExceptSelf(String org_id, String org_code) { String sql = Db.getSql("organization.getOrgCodeCountExceptSelf"); - return Db.find(sql, org_code, org_id).get(0).getInt("c"); + return Db.find(sql, org_code, org_id).getFirst().getInt("c"); } /** diff --git a/dsBase/src/main/java/com/dsideal/Base/Plugin/PostmanDocPlugin.java b/dsBase/src/main/java/com/dsideal/Base/Plugin/PostmanDocPlugin.java index a4e95425..c66e8d78 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Plugin/PostmanDocPlugin.java +++ b/dsBase/src/main/java/com/dsideal/Base/Plugin/PostmanDocPlugin.java @@ -5,7 +5,6 @@ import freemarker.template.TemplateException; import io.github.yedaxia.apidocs.DocContext; import io.github.yedaxia.apidocs.IPluginSupport; import io.github.yedaxia.apidocs.Resources; -import io.github.yedaxia.apidocs.Utils; import io.github.yedaxia.apidocs.parser.ControllerNode; import java.io.File; @@ -14,35 +13,85 @@ import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.logging.Logger; +import java.util.logging.Level; +/** + * Postman文档生成插件 + * 用于生成Postman格式的API文档 + */ public class PostmanDocPlugin implements IPluginSupport { + + private static final Logger LOGGER = Logger.getLogger(PostmanDocPlugin.class.getName()); + + /** + * 默认构造函数 + */ public PostmanDocPlugin() { + // 默认构造函数 } + /** + * 执行文档生成 + * + * @param controllerNodeList 控制器节点列表 + */ + @Override public void execute(List controllerNodeList) { - FileWriter docFileWriter = null; - try { - Template ctrlTemplate = this.getDocTpl(); - - String docFileName = String.format("%s-%s-api-docs.json", DocContext.getDocsConfig().getProjectName(), DocContext.getDocsConfig().getApiVersion()); + Template template = getDocTemplate(); + String docFileName = generateDocFileName(); File docFile = new File(DocContext.getDocPath(), docFileName); - docFileWriter = new FileWriter(docFile); - Map data = new HashMap(); - data.put("controllerNodes", controllerNodeList); - data.put("currentApiVersion", DocContext.getCurrentApiVersion()); - data.put("projectName", DocContext.getDocsConfig().getProjectName()); - data.put("i18n", DocContext.getI18n()); - ctrlTemplate.process(data, docFileWriter); - - } catch (IOException | TemplateException var10) { - var10.printStackTrace(); - } finally { - Utils.closeSilently(docFileWriter); + + // 使用try-with-resources自动管理资源 + try (FileWriter docFileWriter = new FileWriter(docFile)) { + Map templateData = createTemplateData(controllerNodeList); + template.process(templateData, docFileWriter); + LOGGER.info("Postman文档生成成功: " + docFile.getAbsolutePath()); + } + + } catch (IOException e) { + LOGGER.log(Level.SEVERE, "文件操作异常", e); + throw new RuntimeException("生成Postman文档时发生IO异常", e); + } catch (TemplateException e) { + LOGGER.log(Level.SEVERE, "模板处理异常", e); + throw new RuntimeException("处理Freemarker模板时发生异常", e); } } - private Template getDocTpl() throws IOException { + /** + * 获取文档模板 + * + * @return Freemarker模板对象 + * @throws IOException 当模板文件读取失败时抛出 + */ + private Template getDocTemplate() throws IOException { return Resources.getFreemarkerTemplate("postman-doc.json.ftl"); } + + /** + * 生成文档文件名 + * + * @return 文档文件名 + */ + private String generateDocFileName() { + return String.format("%s-%s-api-docs.json", + DocContext.getDocsConfig().getProjectName(), + DocContext.getDocsConfig().getApiVersion()); + } + + /** + * 创建模板数据 + * + * @param controllerNodeList 控制器节点列表 + * @return 模板数据Map + */ + private Map createTemplateData(List controllerNodeList) { + Map data = new HashMap<>(); + data.put("controllerNodes", controllerNodeList); + data.put("currentApiVersion", DocContext.getCurrentApiVersion()); + data.put("projectName", DocContext.getDocsConfig().getProjectName()); + data.put("i18n", DocContext.getI18n()); + return data; + } } \ No newline at end of file diff --git a/dsBase/src/main/java/com/dsideal/Base/Plugin/RedisCluster.java b/dsBase/src/main/java/com/dsideal/Base/Plugin/RedisCluster.java deleted file mode 100644 index 8326c49e..00000000 --- a/dsBase/src/main/java/com/dsideal/Base/Plugin/RedisCluster.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.dsideal.Base.Plugin; - -import java.util.concurrent.ConcurrentHashMap; - -import redis.clients.jedis.JedisCluster; - -import com.jfinal.kit.StrKit; - -/** - * redis cluster 工具类 - * - * @author 石啸天 - */ -public class RedisCluster { - - // 主集群缓存 - static JedisCluster mainCache = null; - - // 集群缓存集合 - private static final ConcurrentHashMap cacheMap = new ConcurrentHashMap(); - - /** - * 插入新集群缓存 - * - * @param cacheName 集群缓存名称 - * @param cache 集群缓存 - */ - public static void addCache(String cacheName, JedisCluster cache) { - - if (cache == null) - throw new IllegalArgumentException("cache can not be null"); - if (cacheMap.containsKey(cacheName)) - throw new IllegalArgumentException("The cache name already exists"); - - cacheMap.put(cacheName, cache); - if (mainCache == null) - mainCache = cache; - - } - - /** - * 删除集群缓存 - * - * @param cacheName 集群缓存名称 - * @return JedisCluster - */ - public static JedisCluster removeCache(String cacheName) { - - return cacheMap.remove(cacheName); - - } - - /** - * 提供一个设置设置主集群缓存 mainCache 的机会,否则第一个被初始化的 Cache 将成为 mainCache - */ - public static void setMainCache(String cacheName) { - - if (StrKit.isBlank(cacheName)) - throw new IllegalArgumentException("cacheName can not be blank"); - cacheName = cacheName.trim(); - JedisCluster cache = cacheMap.get(cacheName); - if (cache == null) - throw new IllegalArgumentException("the cache not exists: " + cacheName); - - RedisCluster.mainCache = cache; - - } - - /** - * 使用主集群缓存 - * - * @return JedisCluster - */ - public static JedisCluster use() { - return mainCache; - } - - /** - * 使用指定名称集群缓存 - * - * @param cacheName 集群缓存名称 - * @return JedisCluster - */ - public static JedisCluster use(String cacheName) { - return cacheMap.get(cacheName); - } - -} diff --git a/dsBase/src/main/java/com/dsideal/Base/Plugin/RedisClusterPlugin.java b/dsBase/src/main/java/com/dsideal/Base/Plugin/RedisClusterPlugin.java deleted file mode 100644 index 5c9658dc..00000000 --- a/dsBase/src/main/java/com/dsideal/Base/Plugin/RedisClusterPlugin.java +++ /dev/null @@ -1,227 +0,0 @@ -package com.dsideal.Base.Plugin; - -import java.util.Set; - -import org.apache.commons.pool2.impl.GenericObjectPoolConfig; - -import redis.clients.jedis.HostAndPort; -import redis.clients.jedis.JedisCluster; - -import com.jfinal.kit.StrKit; -import com.jfinal.plugin.IPlugin; - -/** - * 为JFinal框架下的 redis cluster集群提供插件方案 - *

- * JFinal版本号 2.1 - * Jedis版本号 2.7.2 - * commons-pools版本号2.3 - *

- * 注意: - * 须要例如以下包才干够正常使用 - * jedis-2.7.2.jar - * commons-pool2-2.3.jar - * - * @author 石啸天 - */ - -public class RedisClusterPlugin implements IPlugin { - - // 集群名称 - String clusterName = null; - - // 集群对象 - JedisCluster jedisCluster = null; - - // 超时时间 - Integer timeout = null; - - // 连接池 - GenericObjectPoolConfig poolConfig = null; - - // 最多重定向次数 - Integer maxRedirections = null; - - // 集群地址集合 - Set redisClusterNodes; - - /** - * 传入集群信息 - * - * @param clusterName 集群名称 - * @param redisClusterNodes 集群地址集合 - */ - public RedisClusterPlugin(String clusterName, Set redisClusterNodes) { - - // 检查数据 - this.isRightHostAndPortSet(clusterName, redisClusterNodes); - - // 绑定集群名称 - this.clusterName = clusterName; - - // 绑定地址集合 - this.redisClusterNodes = redisClusterNodes; - - } - - /** - * 传入集群信息 - * - * @param clusterName 集群名称 - * @param redisClusterNodes 集群地址集合 - * @param timeout 超时时间 - */ - public RedisClusterPlugin(String clusterName, Set redisClusterNodes, Integer timeout) { - - // 复用传入集群方法 - this(clusterName, redisClusterNodes); - - // 超时时间绑定 - this.timeout = timeout; - - } - - /** - * 传入集群信息 - * - * @param clusterName 集群名称 - * @param redisClusterNodes 集群地址集合 - * @param poolConfig 连接池对象 - */ - public RedisClusterPlugin(String clusterName, Set redisClusterNodes, GenericObjectPoolConfig poolConfig) { - - // 复用传入集群方法 - this(clusterName, redisClusterNodes); - - // 连接池绑定 - this.poolConfig = poolConfig; - - } - - /** - * 传入集群信息 - * - * @param clusterName 集群名称 - * @param redisClusterNodes 集群地址集合 - * @param timeout 超时时间 - * @param poolConfig 连接池配置 - */ - public RedisClusterPlugin(String clusterName, Set redisClusterNodes, Integer timeout, GenericObjectPoolConfig poolConfig) { - - // 复用传入集群方法 - this(clusterName, redisClusterNodes, timeout); - - // 连接池绑定 - this.poolConfig = poolConfig; - - } - - /** - * 传入集群信息 - * - * @param clusterName 集群名称 - * @param redisClusterNodes 集群地址集合 - * @param poolConfig 连接池对象 - */ - public RedisClusterPlugin(String clusterName, Set redisClusterNodes, Integer timeout, Integer maxRedirections) { - - // 复用传入集群方法 - this(clusterName, redisClusterNodes, timeout); - - // 连接池绑定 - this.maxRedirections = maxRedirections; - - } - - /** - * 传入集群信息 - * - * @param clusterName 集群名称 - * @param redisClusterNodes 集群地址集合 - * @param poolConfig 连接池对象 - */ - public RedisClusterPlugin(String clusterName, Set redisClusterNodes, Integer timeout, Integer maxRedirections, GenericObjectPoolConfig poolConfig) { - - // 复用传入集群方法 - this(clusterName, redisClusterNodes, timeout, maxRedirections); - - // 连接池绑定 - this.poolConfig = poolConfig; - - } - - @Override - public boolean start() { - - if (timeout != null && maxRedirections != null && poolConfig != null) { - jedisCluster = new JedisCluster(redisClusterNodes, timeout, maxRedirections, poolConfig); - } else if (timeout != null && maxRedirections != null) { - jedisCluster = new JedisCluster(redisClusterNodes, timeout, maxRedirections); - } else if (timeout != null && poolConfig != null) { - jedisCluster = new JedisCluster(redisClusterNodes, timeout, poolConfig); - } else if (timeout != null) { - jedisCluster = new JedisCluster(redisClusterNodes, timeout); - } else if (poolConfig != null) { - jedisCluster = new JedisCluster(redisClusterNodes, poolConfig); - } else { - jedisCluster = new JedisCluster(redisClusterNodes); - } - - // 增加集群集合 - RedisCluster.addCache(clusterName, jedisCluster); - - return true; - } - - @Override - public boolean stop() { - - // 清除出集群集合 - JedisCluster removeRedisCluster = RedisCluster.removeCache(clusterName); - - // 关闭集群链接 - removeRedisCluster.close(); - - return false; - - } - - // 推断传入的集群位置资料是否正确 - private void isRightHostAndPortSet(String clusterName, Set redisClusterNodes) { - - // 集群名称不能为空 - if (StrKit.isBlank(clusterName)) { - throw new IllegalArgumentException("clusterName can not be blank."); - } - - // 检查集群详细地址和端口号是否正常 - if (redisClusterNodes != null && redisClusterNodes.size() > 0) { - for (HostAndPort hap : redisClusterNodes) { - - // 获取主机ip - String host = hap.getHost(); - - // 空字符串 - if (StrKit.isBlank(host)) { - throw new IllegalArgumentException("host can not be blank."); - } - - // 获取端口 - Integer port = hap.getPort(); - - // 空端口数据 - if (port == null) { - throw new IllegalArgumentException("port can not be blank."); - } - - } - } else { - - // 集群集合数据为空 - throw new IllegalArgumentException("redisClusterNodes can not be blank."); - - } - - } - -} \ No newline at end of file diff --git a/dsBase/src/main/java/com/dsideal/Base/Student/Model/StudentModel.java b/dsBase/src/main/java/com/dsideal/Base/Student/Model/StudentModel.java index da133d1b..ba869c33 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Student/Model/StudentModel.java +++ b/dsBase/src/main/java/com/dsideal/Base/Student/Model/StudentModel.java @@ -32,7 +32,7 @@ public class StudentModel { if (rs == null || rs.isEmpty()) { return false; } - int stage_id = rs.get(0).getInt("stage_id"); + int stage_id = rs.getFirst().getInt("stage_id"); // 生成6位随机明文密码 String originalPwd = CommonUtil.getSixRandom(); @@ -89,7 +89,7 @@ public class StudentModel { String sql = Db.getSql("loginPerson.getLoginInfoByPersonId"); List list = Db.find(sql, person_id); if (list.size() > 0) { - Record record = list.get(0); + Record record = list.getFirst(); record.set("person_id", person_id); record.set("identity_id", 6); record.set("person_name", person_name); @@ -172,7 +172,7 @@ public class StudentModel { String sql = Db.getSql("student.getStudentInfoByPersonId"); List list = Db.find(sql, student_id); if (list.size() > 0) { - Record record = list.get(0); + Record record = list.getFirst(); return record; } else { return null; diff --git a/dsBase/src/main/java/com/dsideal/Base/StudentYd/Controller/StudentYdController.java b/dsBase/src/main/java/com/dsideal/Base/StudentYd/Controller/StudentYdController.java index ce1bf875..b8613024 100644 --- a/dsBase/src/main/java/com/dsideal/Base/StudentYd/Controller/StudentYdController.java +++ b/dsBase/src/main/java/com/dsideal/Base/StudentYd/Controller/StudentYdController.java @@ -36,7 +36,7 @@ public class StudentYdController extends Controller { renderJson(CommonUtil.returnMessageJson(false, "人员状态异常!")); return; } - int c = rs.get(0).getInt("c"); + int c = rs.getFirst().getInt("c"); if (c > 0) { renderJson(CommonUtil.returnMessageJson(false, "人员处理在调转审核中!")); } else { @@ -271,7 +271,7 @@ public class StudentYdController extends Controller { return; } Record rPerson = JwtUtil.getPersonInfo(getRequest()); - String source_bureau_id = records.get(0).getStr("source_bureau_id"); + String source_bureau_id = records.getFirst().getStr("source_bureau_id"); String personId = rPerson.getStr("person_id"); String identity_id = rPerson.getStr("identity_id"); LoginPersonModel _loginPersonModel = new LoginPersonModel(); @@ -281,13 +281,13 @@ public class StudentYdController extends Controller { return; } //2、是不是已经是删除状态的 - int b_use = records.get(0).getInt("b_use"); + int b_use = records.getFirst().getInt("b_use"); if (b_use != 1) { renderJson(CommonUtil.returnMessageJson(false, "此记录已经是删除状态,不能重复删除!")); return; } //3、是不是对方还没有审核 - int status_id = records.get(0).getInt("status_id"); + int status_id = records.getFirst().getInt("status_id"); if (status_id > 1) { renderJson(CommonUtil.returnMessageJson(false, "此记录已被对方审核处理,不能删除!")); return; diff --git a/dsBase/src/main/java/com/dsideal/Base/StudentYd/Model/StudentYdModel.java b/dsBase/src/main/java/com/dsideal/Base/StudentYd/Model/StudentYdModel.java index 733fa8bc..def790d5 100644 --- a/dsBase/src/main/java/com/dsideal/Base/StudentYd/Model/StudentYdModel.java +++ b/dsBase/src/main/java/com/dsideal/Base/StudentYd/Model/StudentYdModel.java @@ -37,7 +37,7 @@ public class StudentYdModel { public boolean updateStudentStatus(String person_id, String status_code, String operator, String ip_address) { List rs = get_dm_status_student_by_code(status_code); if (rs != null && !rs.isEmpty()) { - int change_person_b_use = rs.get(0).getInt("change_person_b_use"); + int change_person_b_use = rs.getFirst().getInt("change_person_b_use"); //修改人员主表 String sql = Db.getSql("studentYd.updateStudentStatus"); //update t_sys_loginperson set b_use=?,status_code=?,operator=?,ip_address=? where person_id=? @@ -94,7 +94,7 @@ public class StudentYdModel { if (rs == null || rs.size() == 0) { return true; } - if (rs.get(0).getInt("status_id") == 1) { + if (rs.getFirst().getInt("status_id") == 1) { return false; } return true; @@ -174,7 +174,7 @@ public class StudentYdModel { if (records == null || records.size() == 0) { return false; } - Record record = records.get(0); + Record record = records.getFirst(); String person_id = record.getStr("person_id"); String target_bureau_id = record.getStr("target_bureau_id"); record.set("status_id", status_id); @@ -193,9 +193,9 @@ public class StudentYdModel { if (rs == null || rs.isEmpty()) { return false; } - String city_id = rs.get(0).getStr("city_id"); - String area_id = rs.get(0).getStr("area_id"); - String main_school_id = rs.get(0).getStr("main_school_id"); + String city_id = rs.getFirst().getStr("city_id"); + String area_id = rs.getFirst().getStr("area_id"); + String main_school_id = rs.getFirst().getStr("main_school_id"); //修改到新的单位和部门下 sql = Db.getSql("loginPerson.changePersonClass"); Db.update(sql, city_id, area_id, main_school_id, target_bureau_id, class_id, operator, IpUtil.ipToLong(ip_address), person_id); @@ -215,7 +215,7 @@ public class StudentYdModel { Db.update(sql, operator, IpUtil.ipToLong(ip_address), id); //修改为正常状态 List records = getStudentTransferInfoById(id); - updateStudentStatus(records.get(0).getStr("person_id"), "01", operator, ip_address); + updateStudentStatus(records.getFirst().getStr("person_id"), "01", operator, ip_address); } /** @@ -225,7 +225,7 @@ public class StudentYdModel { */ public int getNewStudentTransferApplyCount(String bureau_id) { String sql = Db.getSql("studentYd.getNewStudentTransferApplyCount"); - return Db.find(sql, bureau_id).get(0).getInt("c"); + return Db.find(sql, bureau_id).getFirst().getInt("c"); } /** @@ -235,7 +235,7 @@ public class StudentYdModel { */ public int getNewStudentTransferEchoCount(String bureau_id) { String sql = Db.getSql("studentYd.getNewStudentTransferEchoCount"); - return Db.find(sql, bureau_id).get(0).getInt("c"); + return Db.find(sql, bureau_id).getFirst().getInt("c"); } /** @@ -268,7 +268,7 @@ public class StudentYdModel { if (applyRs == null || applyRs.isEmpty()) { return false; } - Record record = applyRs.get(0); + Record record = applyRs.getFirst(); String source_bureau_id = record.getStr("source_bureau_id"); String target_bureau_id = record.getStr("target_bureau_id"); int status_id = record.getInt("status_id"); @@ -300,9 +300,9 @@ public class StudentYdModel { if (rs == null || rs.isEmpty()) { return false; } - String city_id = rs.get(0).getStr("city_id"); - String area_id = rs.get(0).getStr("area_id"); - String main_school_id = rs.get(0).getStr("main_school_id"); + String city_id = rs.getFirst().getStr("city_id"); + String area_id = rs.getFirst().getStr("area_id"); + String main_school_id = rs.getFirst().getStr("main_school_id"); //修改到新的单位和班级下 sql = Db.getSql("loginPerson.changePersonClass"); Db.update(sql, city_id, area_id, main_school_id, bureau_id, class_id, operator, IpUtil.ipToLong(ip_address), person_id); @@ -313,7 +313,7 @@ public class StudentYdModel { if (rs == null || rs.isEmpty()) { return false; } - String parent_id = rs.get(0).getStr("person_id"); + String parent_id = rs.getFirst().getStr("person_id"); //2、变更 sql = Db.getSql("loginPerson.changePersonClass"); Db.update(sql, city_id, area_id, main_school_id, bureau_id, class_id, operator, IpUtil.ipToLong(ip_address), parent_id); diff --git a/dsBase/src/main/java/com/dsideal/Base/Teacher/Controller/TeacherController.java b/dsBase/src/main/java/com/dsideal/Base/Teacher/Controller/TeacherController.java index 0254a744..108cadbe 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Teacher/Controller/TeacherController.java +++ b/dsBase/src/main/java/com/dsideal/Base/Teacher/Controller/TeacherController.java @@ -108,10 +108,10 @@ public class TeacherController extends Controller { return; } //获取部门所在单位ID - String bureauId = rs.get(0).get("bureau_id").toString(); - String cityId = rs.get(0).get("city_id").toString(); - String areaId = rs.get(0).get("area_id").toString(); - String mainSchoolId = rs.get(0).get("main_school_id").toString(); + String bureauId = rs.getFirst().get("bureau_id").toString(); + String cityId = rs.getFirst().get("city_id").toString(); + String areaId = rs.getFirst().get("area_id").toString(); + String mainSchoolId = rs.getFirst().get("main_school_id").toString(); //生成6位随机明文密码 String originalPwd = CommonUtil.getSixRandom(); @@ -234,7 +234,7 @@ public class TeacherController extends Controller { if (duties_id != null && !duties_id.equals("-1")) { BaseModel model = new BaseModel(); - String duties_name = model.getOrgTypePrincipalshipById(duties_id).get(0).get("name"); + String duties_name = model.getOrgTypePrincipalshipById(duties_id).getFirst().get("name"); JSONObject targetJo = new JSONObject(); targetJo.put("duties_id", duties_id); targetJo.put("duties_name", duties_name); @@ -533,7 +533,7 @@ public class TeacherController extends Controller { renderJson(map); return; } - bureau_id = records.get(0).getStr("bureau_id"); + bureau_id = records.getFirst().getStr("bureau_id"); //5、检查EXCEL与数据库中是不是有身份证号重复 diff --git a/dsBase/src/main/java/com/dsideal/Base/Teacher/Model/TeacherModel.java b/dsBase/src/main/java/com/dsideal/Base/Teacher/Model/TeacherModel.java index facd4ef4..243e584d 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Teacher/Model/TeacherModel.java +++ b/dsBase/src/main/java/com/dsideal/Base/Teacher/Model/TeacherModel.java @@ -115,12 +115,12 @@ public class TeacherModel { String sql = Db.getSql("loginPerson.getLoginInfoByPersonId"); List list = Db.find(sql, person_id); if (!list.isEmpty()) { - city_id = list.get(0).getStr("city_id"); - area_id = list.get(0).getStr("area_id"); - main_school_id = list.get(0).getStr("main_school_id"); - bureau_id = list.get(0).getStr("bureau_id"); + city_id = list.getFirst().getStr("city_id"); + area_id = list.getFirst().getStr("area_id"); + main_school_id = list.getFirst().getStr("main_school_id"); + bureau_id = list.getFirst().getStr("bureau_id"); - Record record = list.get(0); + Record record = list.getFirst(); record.set("person_id", person_id); record.set("identity_id", 5); record.set("person_name", person_name); diff --git a/dsBase/src/main/java/com/dsideal/Base/TeacherYd/Controller/TeacherYdController.java b/dsBase/src/main/java/com/dsideal/Base/TeacherYd/Controller/TeacherYdController.java index da6a01af..00ce8817 100644 --- a/dsBase/src/main/java/com/dsideal/Base/TeacherYd/Controller/TeacherYdController.java +++ b/dsBase/src/main/java/com/dsideal/Base/TeacherYd/Controller/TeacherYdController.java @@ -35,7 +35,7 @@ public class TeacherYdController extends Controller { renderJson(CommonUtil.returnMessageJson(false, "人员状态异常!")); return; } - int c = rs.get(0).getInt("c"); + int c = rs.getFirst().getInt("c"); if (c > 0) { renderJson(CommonUtil.returnMessageJson(false, "人员处理在调转审核中!")); } else { @@ -279,7 +279,7 @@ public class TeacherYdController extends Controller { return; } Record rPerson = JwtUtil.getPersonInfo(getRequest()); - String source_bureau_id = records.get(0).getStr("source_bureau_id"); + String source_bureau_id = records.getFirst().getStr("source_bureau_id"); String personId = rPerson.getStr("person_id"); ; String identity_id = rPerson.getStr("identity_id"); @@ -290,13 +290,13 @@ public class TeacherYdController extends Controller { return; } //2、是不是已经是删除状态的 - int b_use = records.get(0).getInt("b_use"); + int b_use = records.getFirst().getInt("b_use"); if (b_use != 1) { renderJson(CommonUtil.returnMessageJson(false, "此记录已经是删除状态,不能重复删除!")); return; } //3、是不是对方还没有审核 - int status_id = records.get(0).getInt("status_id"); + int status_id = records.getFirst().getInt("status_id"); if (status_id > 1) { renderJson(CommonUtil.returnMessageJson(false, "此记录已被对方审核处理,不能删除!")); return; diff --git a/dsBase/src/main/java/com/dsideal/Base/TeacherYd/Model/TeacherYdModel.java b/dsBase/src/main/java/com/dsideal/Base/TeacherYd/Model/TeacherYdModel.java index c3ddee76..283a326b 100644 --- a/dsBase/src/main/java/com/dsideal/Base/TeacherYd/Model/TeacherYdModel.java +++ b/dsBase/src/main/java/com/dsideal/Base/TeacherYd/Model/TeacherYdModel.java @@ -36,7 +36,7 @@ public class TeacherYdModel { public boolean updateTeacherStatus(String person_id, String status_code, String operator, long ip_address) { List rs = get_dm_status_teacher_by_code(status_code); if (rs != null && !rs.isEmpty()) { - int change_person_b_use = rs.get(0).getInt("change_person_b_use"); + int change_person_b_use = rs.getFirst().getInt("change_person_b_use"); //修改人员主表 String sql = Db.getSql("teacherYd.updateTeacherStatus"); Db.update(sql, change_person_b_use, status_code, operator, ip_address, person_id); @@ -92,7 +92,7 @@ public class TeacherYdModel { if (rs == null || rs.isEmpty()) { return true; } - if (rs.get(0).getInt("status_id") == 1) { + if (rs.getFirst().getInt("status_id") == 1) { return false; } return true; @@ -173,7 +173,7 @@ public class TeacherYdModel { if (records == null || records.isEmpty()) { return false; } - Record record = records.get(0); + Record record = records.getFirst(); String person_id = record.getStr("person_id"); String target_bureau_id = record.getStr("target_bureau_id"); record.set("status_id", status_id); @@ -191,9 +191,9 @@ public class TeacherYdModel { if (rs == null || rs.isEmpty()) { return false; } - String city_id = rs.get(0).getStr("city_id"); - String area_id = rs.get(0).getStr("area_id"); - String main_school_id = rs.get(0).getStr("main_school_id"); + String city_id = rs.getFirst().getStr("city_id"); + String area_id = rs.getFirst().getStr("area_id"); + String main_school_id = rs.getFirst().getStr("main_school_id"); //修改到新的单位和部门下 sql = Db.getSql("loginPerson.changePersonBureau"); Db.update(sql, city_id, area_id, main_school_id, target_bureau_id, org_id, operator, IpUtil.ipToLong(ip_address), person_id); @@ -213,7 +213,7 @@ public class TeacherYdModel { Db.update(sql, operator, IpUtil.ipToLong(ip_address), id); //修改为正常状态 List records = getTeacherTransferInfoById(id); - updateTeacherStatus(records.get(0).getStr("person_id"), "01", operator, IpUtil.ipToLong(ip_address)); + updateTeacherStatus(records.getFirst().getStr("person_id"), "01", operator, IpUtil.ipToLong(ip_address)); } /** @@ -223,7 +223,7 @@ public class TeacherYdModel { */ public int getNewTeacherTransferApplyCount(String bureau_id) { String sql = Db.getSql("teacherYd.getNewTeacherTransferApplyCount"); - return Db.find(sql, bureau_id).get(0).getInt("c"); + return Db.find(sql, bureau_id).getFirst().getInt("c"); } /** @@ -233,7 +233,7 @@ public class TeacherYdModel { */ public int getNewTeacherTransferEchoCount(String bureau_id) { String sql = Db.getSql("teacherYd.getNewTeacherTransferEchoCount"); - return Db.find(sql, bureau_id).get(0).getInt("c"); + return Db.find(sql, bureau_id).getFirst().getInt("c"); } /** @@ -267,7 +267,7 @@ public class TeacherYdModel { if (applyRs == null || applyRs.size() == 0) { return false; } - Record record = applyRs.get(0); + Record record = applyRs.getFirst(); String source_bureau_id = record.getStr("source_bureau_id"); String target_bureau_id = record.getStr("target_bureau_id"); int status_id = record.getInt("status_id"); @@ -305,10 +305,10 @@ public class TeacherYdModel { if (rs == null || rs.size() == 0) { return false; } - String bureau_id = rs.get(0).getStr("bureau_id"); - String city_id = rs.get(0).getStr("city_id"); - String area_id = rs.get(0).getStr("area_id"); - String main_school_id = rs.get(0).getStr("main_school_id"); + String bureau_id = rs.getFirst().getStr("bureau_id"); + String city_id = rs.getFirst().getStr("city_id"); + String area_id = rs.getFirst().getStr("area_id"); + String main_school_id = rs.getFirst().getStr("main_school_id"); //修改到新的单位和部门下 sql = Db.getSql("loginPerson.changePersonBureau"); Db.update(sql, city_id, area_id, main_school_id, bureau_id, org_id, operator, IpUtil.ipToLong(ip_address), person_id); diff --git a/dsBase/src/main/java/com/dsideal/Base/Test/RedisTest.java b/dsBase/src/main/java/com/dsideal/Base/Test/RedisTest.java new file mode 100644 index 00000000..0da7175c --- /dev/null +++ b/dsBase/src/main/java/com/dsideal/Base/Test/RedisTest.java @@ -0,0 +1,20 @@ +package com.dsideal.Base.Test; + +import com.dsideal.Base.Util.RedisKit; +import com.jfinal.plugin.redis.Redis; +import com.jfinal.plugin.redis.RedisPlugin; + +public class RedisTest { + public static void main(String[] args) { + RedisPlugin redis = new RedisPlugin("myRedis", "10.10.14.14", 18890); + redis.start(); + + try { + RedisKit.Set("key", "value"); + String key = RedisKit.Get("key"); + System.out.println(key); + } finally { + redis.stop(); + } + } +} diff --git a/dsBase/src/main/java/com/dsideal/Base/Util/CookieUtil.java b/dsBase/src/main/java/com/dsideal/Base/Util/CookieUtil.java index aba828f5..98b77b1b 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Util/CookieUtil.java +++ b/dsBase/src/main/java/com/dsideal/Base/Util/CookieUtil.java @@ -21,7 +21,7 @@ public class CookieUtil { private static Cookie get(HttpServletRequest request, String key) { Cookie[] arr_cookie = request.getCookies(); - if (arr_cookie != null && arr_cookie.length > 0) { + if (arr_cookie != null) { for (Cookie cookie : arr_cookie) { if (cookie.getName().equals(key)) { return cookie; diff --git a/dsBase/src/main/java/com/dsideal/Base/Util/ExcelCommonUtil.java b/dsBase/src/main/java/com/dsideal/Base/Util/ExcelCommonUtil.java index 337406f8..4d29de3a 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Util/ExcelCommonUtil.java +++ b/dsBase/src/main/java/com/dsideal/Base/Util/ExcelCommonUtil.java @@ -25,7 +25,6 @@ import java.util.*; public class ExcelCommonUtil { /** - * https://fireinwind.iteye.com/blog/2168655 * 功能:通用的导出excel功能 * 作者:黄海 * 时间:2018-12-12 @@ -84,7 +83,7 @@ public class ExcelCommonUtil { record.set("Number", (i + 1)); list.add(record); } - page = new Page(list, page.getPageNumber(), page.getPageSize(), page.getTotalPage(), page.getTotalRow()); + page = new Page<>(list, page.getPageNumber(), page.getPageSize(), page.getTotalPage(), page.getTotalRow()); } HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); diff --git a/dsBase/src/main/java/com/dsideal/Base/Util/ExcelExportUtil.java b/dsBase/src/main/java/com/dsideal/Base/Util/ExcelExportUtil.java index 6823891d..ba37f3e8 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Util/ExcelExportUtil.java +++ b/dsBase/src/main/java/com/dsideal/Base/Util/ExcelExportUtil.java @@ -10,7 +10,6 @@ import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; -import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io.FileNotFoundException; @@ -58,7 +57,7 @@ public class ExcelExportUtil { record.set("Number", (i + 1)); list.add(record); } - page = new Page(list, page.getPageNumber(), page.getPageSize(), page.getTotalPage(), page.getTotalRow()); + page = new Page<>(list, page.getPageNumber(), page.getPageSize(), page.getTotalPage(), page.getTotalRow()); } HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); @@ -253,7 +252,7 @@ public class ExcelExportUtil { record.set("Number", (i + 1)); list.add(record); } - page = new Page(list, page.getPageNumber(), page.getPageSize(), page.getTotalPage(), page.getTotalRow()); + page = new Page<>(list, page.getPageNumber(), page.getPageSize(), page.getTotalPage(), page.getTotalRow()); } HSSFSheet hssfSheet = hssfWorkbook.createSheet(sheetName); @@ -343,71 +342,4 @@ public class ExcelExportUtil { return hssfWorkbook; } - public static void exportByTemplate(List list, String template, String excelFile) throws IOException { - XSSFWorkbook workbook = new XSSFWorkbook(template); - // 获取第一个工作表(工作表索引从0开始) - Sheet sheet = workbook.getSheetAt(0); - - //数据开始行 - int startRow = sheet.getLastRowNum(); - //一共多少列 - int colNum = sheet.getRow(0).getLastCellNum(); - - Font txtFont = workbook.createFont(); - txtFont.setFontHeightInPoints((short) 14); //字体大小 - txtFont.setFontName("宋体"); //字体 - CellStyle cellStyleTxt = workbook.createCellStyle(); - cellStyleTxt.setFont(txtFont); - cellStyleTxt.setAlignment(HorizontalAlignment.CENTER); - cellStyleTxt.setFillForegroundColor(IndexedColors.LIME.getIndex()); - cellStyleTxt.setWrapText(true);//设置自动换行 - cellStyleTxt.setVerticalAlignment(VerticalAlignment.CENTER); - cellStyleTxt.setBorderBottom(BorderStyle.THIN); // 底部边框 - cellStyleTxt.setBorderLeft(BorderStyle.THIN); // 左边边框 - cellStyleTxt.setBorderRight(BorderStyle.THIN); // 右边边框 - cellStyleTxt.setBorderTop(BorderStyle.THIN); // 上边边框 - - //导出数据 - int count = startRow; - //每一行数据的高度 - short rowHeight = 28 * 20; - //最后一行是数据与字段的关系,先读取出来 - Row row = sheet.getRow(startRow); - Map _map = new HashMap<>(); - for (int i = 0; i < colNum; i++) { - Cell cell = row.getCell(i); - _map.put(i, cell.getStringCellValue()); - } - //删除最后一行 - sheet.removeRow(row); - - for (int i = 0; i < list.size(); i++) { - row = sheet.createRow(count++); - Record record = list.get(i); - for (int j = 0; j < colNum; j++) { - Cell cell = row.createCell(j); - cell.setCellStyle(cellStyleTxt); - - if (_map.get(j).equals("{{num}}")) { - cell.setCellValue(i + 1); - } else { - cell.setCellValue(record.getStr(_map.get(j))); - } - row.setHeight(rowHeight); - } - } - - //生成文件 - File file = new File(excelFile); - try { - FileOutputStream fileOutputStreane = new FileOutputStream(file); - workbook.write(fileOutputStreane); - fileOutputStreane.flush(); - fileOutputStreane.close(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - } } diff --git a/dsBase/src/main/java/com/dsideal/Base/Util/IDCardUtil.java b/dsBase/src/main/java/com/dsideal/Base/Util/IDCardUtil.java index fd41d94c..90041217 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Util/IDCardUtil.java +++ b/dsBase/src/main/java/com/dsideal/Base/Util/IDCardUtil.java @@ -2,6 +2,7 @@ package com.dsideal.Base.Util; import com.alibaba.fastjson.JSONObject; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.regex.Matcher; @@ -30,7 +31,7 @@ public class IDCardUtil { String tipInfo = "身份证正常";// 记录错误信息 String Ai = ""; - if (null == IDStr || IDStr.trim().isEmpty()) { + if (IDStr.trim().isEmpty()) { tipInfo = "身份证号码长度应该为15位或18位。"; jo.put("success", false); jo.put("message", tipInfo); @@ -59,7 +60,7 @@ public class IDCardUtil { String strYear = Ai.substring(6, 10);// 年份 String strMonth = Ai.substring(10, 12);// 月份 String strDay = Ai.substring(12, 14);// 日期 - if (isDate(strYear + "-" + strMonth + "-" + strDay) == false) { + if (!isDate(strYear + "-" + strMonth + "-" + strDay)) { tipInfo = "身份证出生日期无效。"; jo.put("success", false); jo.put("message", tipInfo); @@ -75,9 +76,7 @@ public class IDCardUtil { jo.put("message", tipInfo); return jo; } - } catch (NumberFormatException e) { - e.printStackTrace(); - } catch (java.text.ParseException e) { + } catch (NumberFormatException | ParseException e) { e.printStackTrace(); } if (Integer.parseInt(strMonth) > 12 || Integer.parseInt(strMonth) == 0) { @@ -93,7 +92,7 @@ public class IDCardUtil { return jo; } // 判断地区码是否有效 - Hashtable areacode = GetAreaCode(); + Map areacode = getAreaCode(); // 如果身份证前两位的地区码不在Hashtable,则地区码有误 if (areacode.get(Ai.substring(0, 2)) == null) { tipInfo = "身份证地区编码错误。"; @@ -102,7 +101,7 @@ public class IDCardUtil { return jo; } //判断第18位校验码是否正确 - if (isVarifyCode(Ai, IDStr) == false) { + if (!isVarifyCode(Ai, IDStr)) { tipInfo = "身份证校验码无效,不是合法的身份证号码"; jo.put("success", false); jo.put("message", tipInfo); @@ -188,44 +187,44 @@ public class IDCardUtil { * * @return Hashtable 对象 */ - private static Hashtable GetAreaCode() { - Hashtable hashtable = new Hashtable(); - hashtable.put("11", "北京"); - hashtable.put("12", "天津"); - hashtable.put("13", "河北"); - hashtable.put("14", "山西"); - hashtable.put("15", "内蒙古"); - hashtable.put("21", "辽宁"); - hashtable.put("22", "吉林"); - hashtable.put("23", "黑龙江"); - hashtable.put("31", "上海"); - hashtable.put("32", "江苏"); - hashtable.put("33", "浙江"); - hashtable.put("34", "安徽"); - hashtable.put("35", "福建"); - hashtable.put("36", "江西"); - hashtable.put("37", "山东"); - hashtable.put("41", "河南"); - hashtable.put("42", "湖北"); - hashtable.put("43", "湖南"); - hashtable.put("44", "广东"); - hashtable.put("45", "广西"); - hashtable.put("46", "海南"); - hashtable.put("50", "重庆"); - hashtable.put("51", "四川"); - hashtable.put("52", "贵州"); - hashtable.put("53", "云南"); - hashtable.put("54", "西藏"); - hashtable.put("61", "陕西"); - hashtable.put("62", "甘肃"); - hashtable.put("63", "青海"); - hashtable.put("64", "宁夏"); - hashtable.put("65", "新疆"); - hashtable.put("71", "台湾"); - hashtable.put("81", "香港"); - hashtable.put("82", "澳门"); - hashtable.put("91", "国外"); - return hashtable; + private static Map getAreaCode() { + Map areaCodeMap = new HashMap<>(); + areaCodeMap.put("11", "北京"); + areaCodeMap.put("12", "天津"); + areaCodeMap.put("13", "河北"); + areaCodeMap.put("14", "山西"); + areaCodeMap.put("15", "内蒙古"); + areaCodeMap.put("21", "辽宁"); + areaCodeMap.put("22", "吉林"); + areaCodeMap.put("23", "黑龙江"); + areaCodeMap.put("31", "上海"); + areaCodeMap.put("32", "江苏"); + areaCodeMap.put("33", "浙江"); + areaCodeMap.put("34", "安徽"); + areaCodeMap.put("35", "福建"); + areaCodeMap.put("36", "江西"); + areaCodeMap.put("37", "山东"); + areaCodeMap.put("41", "河南"); + areaCodeMap.put("42", "湖北"); + areaCodeMap.put("43", "湖南"); + areaCodeMap.put("44", "广东"); + areaCodeMap.put("45", "广西"); + areaCodeMap.put("46", "海南"); + areaCodeMap.put("50", "重庆"); + areaCodeMap.put("51", "四川"); + areaCodeMap.put("52", "贵州"); + areaCodeMap.put("53", "云南"); + areaCodeMap.put("54", "西藏"); + areaCodeMap.put("61", "陕西"); + areaCodeMap.put("62", "甘肃"); + areaCodeMap.put("63", "青海"); + areaCodeMap.put("64", "宁夏"); + areaCodeMap.put("65", "新疆"); + areaCodeMap.put("71", "台湾"); + areaCodeMap.put("81", "香港"); + areaCodeMap.put("82", "澳门"); + areaCodeMap.put("91", "国外"); + return areaCodeMap; } diff --git a/dsBase/src/main/java/com/dsideal/Base/Util/IpUtil.java b/dsBase/src/main/java/com/dsideal/Base/Util/IpUtil.java index 83bb8302..1429a93c 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Util/IpUtil.java +++ b/dsBase/src/main/java/com/dsideal/Base/Util/IpUtil.java @@ -14,19 +14,19 @@ public class IpUtil { */ public static String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("X-Forwarded-For"); - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_CLIENT_IP"); } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); } - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + if (ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; @@ -39,10 +39,9 @@ public class IpUtil { for (int i = 0; i < 4; ++i) { ipNums.add(Long.parseLong(ipArray[i].trim())); } - long ZhongIPNumTotal = ipNums.get(0) * 256L * 256L * 256L + + return ipNums.getFirst() * 256L * 256L * 256L + ipNums.get(1) * 256L * 256L + ipNums.get(2) * 256L + ipNums.get(3); - - return ZhongIPNumTotal; } } diff --git a/dsBase/src/main/java/com/dsideal/Base/Util/JwtUtil.java b/dsBase/src/main/java/com/dsideal/Base/Util/JwtUtil.java index 2afeee06..9b0c10cb 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Util/JwtUtil.java +++ b/dsBase/src/main/java/com/dsideal/Base/Util/JwtUtil.java @@ -51,12 +51,13 @@ public class JwtUtil { } Claims claims; try { - claims = Jwts.parserBuilder() - .setSigningKey(key) + claims = Jwts.parser() + .verifyWith(key) .build() - .parseClaimsJws(token) - .getBody(); + .parseSignedClaims(token) + .getPayload(); } catch (Exception e) { + System.out.println(e); claims = null; } return claims; diff --git a/dsBase/src/main/java/com/dsideal/Base/Util/PgSqlUtil.java b/dsBase/src/main/java/com/dsideal/Base/Util/PgSqlUtil.java deleted file mode 100644 index 2ebee9b6..00000000 --- a/dsBase/src/main/java/com/dsideal/Base/Util/PgSqlUtil.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.dsideal.Base.Util; - -import com.jfinal.kit.StrKit; -import com.jfinal.plugin.activerecord.Db; -import com.jfinal.plugin.activerecord.Record; - -public class PgSqlUtil { - protected static String getPkColumnName(String table_name) { - String sql="select pk_name,colname from v_pk_name where relname=?"; - Record record= Db.findFirst(sql,table_name); - if (record == null) return null; - return record.getStr("colname"); - } - - protected static String getSeqNameByTableName(String table_name) { - String pkName = getPkColumnName(table_name); - if (pkName == null) { - System.out.println("表" + table_name + "不存在主键,无法执行truncate!"); - } - if (!pkName.equals(null)) { - String sql = "SELECT pg_get_serial_sequence(?,?) as sq_name"; - String sqName = Db.findFirst(sql, table_name, pkName).getStr("sq_name"); - if (StrKit.isBlank(sqName)) return null; - return sqName.replace("public.", ""); - } - return null; - } - - public static void Truncate(String table_name) { - String sql = "truncate table " + table_name; - System.out.println(sql); - Db.update(sql); - - String seq_name = getSeqNameByTableName(table_name); - if (!StrKit.isBlank(seq_name)) { - sql = "SELECT setval('" + seq_name + "', 1, false);"; - Db.find(sql); - } - } - - public static void DelAll(String table_name) { - String sql = "delete from " + table_name; - Db.update(sql); - } -} \ No newline at end of file diff --git a/dsBase/src/main/java/com/dsideal/Base/Util/PgUtil.java b/dsBase/src/main/java/com/dsideal/Base/Util/PgUtil.java deleted file mode 100644 index 97ff07a9..00000000 --- a/dsBase/src/main/java/com/dsideal/Base/Util/PgUtil.java +++ /dev/null @@ -1,124 +0,0 @@ -package com.dsideal.Base.Util; - -import com.jfinal.kit.Kv; -import com.jfinal.plugin.activerecord.Db; -import com.jfinal.plugin.activerecord.Record; -import com.jfinal.plugin.activerecord.SqlPara; - -import java.util.List; - -public class PgUtil { - - /** - * 功能:获取用户有哪些权限 - * - * @param user_name - * @return - */ - public static List getUserPrivilege(String user_name) { - Kv kv = Kv.by("user_name", user_name); - SqlPara sqlPara = Db.getSqlPara("PG.getUserPrivilage", kv); - return Db.find(sqlPara); - } - - /** - * 功能:删除用户 - * - * @param user_name - */ - public static void delUser(String user_name) { - //需要先回收用户的权限 - List list = PgUtil.getUserPrivilege(user_name); - for (Record record : list) { - String table_name = record.getStr("table_name"); - String privilege = record.getStr("privilege_type"); - PgUtil.revokeUserPrivilege(user_name, table_name, privilege); - } - // 删除用户 - String sql = "DROP USER " + user_name; - Db.update(sql); - } - - /** - * 功能:创建用户 - * - * @param user_name - * @param pwd - */ - public static void createUser(String user_name, String pwd) { - String sql = "CREATE USER " + user_name + " WITH PASSWORD '" + pwd + "'"; - Db.update(sql); - } - - /** - * 功能:判断用户是否存在 - * - * @param user_name - * @return - */ - public static boolean isExistUser(String user_name) { - String sql = "SELECT * FROM pg_user WHERE usename = ?"; - List list = Db.find(sql, user_name); - return !list.isEmpty(); - } - - - /** - * 功能:授予用户权限 - * - * @param user_name - * @param table_name - */ - public static void grantUserPrivilege(String user_name, String table_name, String privilege) { - String sql = "GRANT " + privilege + " ON " + table_name + " TO " + user_name; - Db.update(sql); - //System.out.println("成功授予用户:" + user_name + ",表" + table_name + "的" + privilege + "权限!"); - } - - /** - * 功能:回收用户权限 - * - * @param user_name - * @param table_name - */ - public static void revokeUserPrivilege(String user_name, String table_name, String privilege) { - String sql = "REVOKE " + privilege + " ON " + table_name + " from " + user_name; - Db.update(sql); - } - - /** - * 功能:判断一个表是不是存在 - * - * @param table_name - * @return - */ - public static boolean isExistTable(String table_name) { - String sql = "SELECT count(1) as c FROM pg_tables WHERE tablename = ?"; - int sum = Db.findFirst(sql, table_name).getInt("c"); - if (sum > 0) return true; - //如果是视图 - sql = "select count(1) as c from pg_views WHERE viewname = ?"; - sum = Db.findFirst(sql, table_name).getInt("c"); - return sum > 0; - } - - /** - * 功能:修改用户密码 - * - * @param user_name - * @param pwd - */ - public static void changePwd(String user_name, String pwd) { - String sql = "ALTER USER " + user_name + " WITH PASSWORD '" + pwd + "'"; - Db.update(sql); - } - - //写权限 - public static String WRITE = "INSERT,UPDATE,DELETE,SELECT"; - //读权限 - public static String READ = "SELECT"; - - - - -} diff --git a/dsBase/src/main/java/com/dsideal/Base/Util/PkUtil.java b/dsBase/src/main/java/com/dsideal/Base/Util/PkUtil.java index 2f891c94..ab85737c 100644 --- a/dsBase/src/main/java/com/dsideal/Base/Util/PkUtil.java +++ b/dsBase/src/main/java/com/dsideal/Base/Util/PkUtil.java @@ -22,6 +22,8 @@ public class PkUtil { public static void InitPersonNumPk() { //初始化字典 InitIdentityMap(); + + for (Integer key : identityMap.keySet()) { //初始化要删除掉 RedisKit.Del(identityMap.get(key) + "_identity_pk_num"); diff --git a/dsBase/src/main/java/com/dsideal/Base/Util/PoiUtil.java b/dsBase/src/main/java/com/dsideal/Base/Util/PoiUtil.java deleted file mode 100644 index 388c9f5e..00000000 --- a/dsBase/src/main/java/com/dsideal/Base/Util/PoiUtil.java +++ /dev/null @@ -1,403 +0,0 @@ -package com.dsideal.Base.Util; - -import org.apache.poi.ss.usermodel.*; -import org.apache.poi.ss.usermodel.DateUtil; -import org.apache.poi.ss.util.CellRangeAddress; -import org.apache.poi.ss.util.CellRangeAddressList; -import org.apache.poi.xssf.usermodel.*; - -import java.io.*; -import java.math.BigDecimal; -import java.text.SimpleDateFormat; -import java.util.*; - -public class PoiUtil { - - /** - * 功能:对于指定Cell中文字进行加红色(*)提醒 - * - * @param wb - * @param cell - */ - public static void addStar(XSSFWorkbook wb, XSSFCell cell) { - XSSFFont fontRed = wb.createFont();//第一种字体 - fontRed.setBold(true); - fontRed.setColor(IndexedColors.RED.getIndex()); - fontRed.setFontHeightInPoints((short) 14); - fontRed.setFontName("黑体"); - - XSSFFont fontBlack = wb.createFont();//第二种字体 - fontBlack.setColor(IndexedColors.BLACK.getIndex()); - fontBlack.setFontName("宋体"); - fontRed.setBold(true); - fontBlack.setFontHeightInPoints((short) 12); - String txt = cell.getStringCellValue(); - - int len = txt.length(); - if (len == 0) { - System.out.println(cell.getSheet().getSheetName()); - System.out.println(cell.getRowIndex() + " " + cell.getColumnIndex()); - System.out.println(cell.getStringCellValue()); - System.out.println("发现问题:" + txt); - System.exit(0); - } - - txt += "(*)"; - XSSFRichTextString richText = new XSSFRichTextString(txt);//全部文字 - - richText.applyFont(0, len, fontBlack); // 从第0个字符到第2个字符应用font1 - richText.applyFont(len, len + 3, fontRed); // 从第2个字符到第4个字符应用font2 - cell.setCellValue(richText);//设置文字 - } - - - /** - * 功能:只改变单元格的颜色,其它的样式继承原来的样式 - * - * @param cell - * @param colorIdx - */ - public static void changeColor(Cell cell, short colorIdx) { - // 创建单元格样式 - CellStyle style = cell.getCellStyle(); - // 设置背景颜色 - style.setFillForegroundColor(colorIdx); - style.setFillPattern(FillPatternType.SOLID_FOREGROUND); - // 应用样式到单元格 - cell.setCellStyle(style); - } - - /** - * 功能:移除所有批注信息 - * - * @param sheet - */ - public static void RemoveAllComment(XSSFSheet sheet) { - // 遍历所有行和单元格,移除批注 - for (Row row : sheet) { - for (Cell cell : row) { - if (cell.getCellComment() != null) { - cell.removeCellComment(); - } - } - } - } - - /** - * 功能:将指定Sheet表中所有数据区域进行样式还原 - * - * @param sheet - */ - public static void resetStyle(XSSFSheet sheet, int dataStartRow) { - // 遍历所有行和单元格,恢复颜色 - for (int row = dataStartRow; row <= sheet.getLastRowNum(); row++) { - for (int col = 0; col < sheet.getRow(row).getLastCellNum(); col++) { - Cell cell = sheet.getRow(row).getCell(col); - // 创建单元格样式 - CellStyle style = cell.getCellStyle(); - // 设置背景颜色 - style.setFillForegroundColor(IndexedColors.WHITE.getIndex()); - style.setFillPattern(FillPatternType.SOLID_FOREGROUND); - // 应用样式到单元格 - cell.setCellStyle(style); - } - } - } - - /** - * 功能:修改指定单元格的样式 - * - * @param wb - * @return - */ - public static void addComment(Workbook wb, Cell cell, String str) { - Sheet sheet = cell.getSheet(); - // 判断单元格上是否存在批注 - if (cell.getCellComment() != null) { - // 如果存在批注,先删除 - cell.removeCellComment(); - } - // 创建批注 - Drawing drawing = sheet.createDrawingPatriarch(); - CreationHelper factory = wb.getCreationHelper(); - ClientAnchor anchor = factory.createClientAnchor(); - anchor.setCol1(cell.getColumnIndex()); - anchor.setCol2(cell.getColumnIndex() + 2); - anchor.setRow1(cell.getRow().getRowNum()); - anchor.setRow2(cell.getRow().getRowNum() + 3); - Comment comment = drawing.createCellComment(anchor); - comment.setString(factory.createRichTextString(str)); - // 将批注添加到单元格 - cell.setCellComment(comment); - } - - /** - * 功能:在EXCEL的指定范围内添加上下拉框,内容通过String[]提供 - * - * @param workbook - * @param sheetIdx - * @param firstRow - * @param lastRow - * @param firstCol - * @param lastCol - * @return - */ - public static void addValidation(Workbook workbook, int sheetIdx, String options, int firstRow, int lastRow, int firstCol, int lastCol) { - String[] optionArray = options.split(","); - Sheet sheet = workbook.getSheetAt(sheetIdx); - - // 删除已有的校验 - DataValidationHelper dvHelper = sheet.getDataValidationHelper(); - DataValidationConstraint dvConstraint = dvHelper.createCustomConstraint("DELETE_ALL"); - CellRangeAddressList addressList = new CellRangeAddressList(0, 0, 0, 0); // 设置一个范围,例如整个表格范围 - DataValidation validation = dvHelper.createValidation(dvConstraint, addressList); - validation.setSuppressDropDownArrow(true); - sheet.addValidationData(validation); - - // 创建数据验证对象 - DataValidationHelper validationHelper = sheet.getDataValidationHelper(); - DataValidationConstraint constraint = validationHelper.createExplicitListConstraint(optionArray); - addressList = new CellRangeAddressList(firstRow, lastRow, firstCol, lastCol); // 指定单元格范围 - validation = validationHelper.createValidation(constraint, addressList); - // 应用数据验证到单元格 - sheet.addValidationData(validation); - } - - /** - * 功能:获取指定Cell的内容值 - * - * @param cell - * @return - */ - //获取单元格各类型值,返回字符串类型 - public static String getValue(Cell cell) { - //判断是否为null或空串 - if (cell == null || cell.toString().trim().equals("")) { - return ""; - } - String cellValue = ""; - switch (cell.getCellType()) { - case NUMERIC: // 数字 - short format = cell.getCellStyle().getDataFormat(); - if (DateUtil.isCellDateFormatted(cell)) { - SimpleDateFormat sdf = null; - //System.out.println("cell.getCellStyle().getDataFormat()="+cell.getCellStyle().getDataFormat()); - if (format == 20 || format == 32) { - sdf = new SimpleDateFormat("HH:mm"); - } else if (format == 14 || format == 31 || format == 57 || format == 58) { - // 处理自定义日期格式:m月d日(通过判断单元格的格式id解决,id的值是58) - sdf = new SimpleDateFormat("yyyy-MM-dd"); - double value = cell.getNumericCellValue(); - Date date = org.apache.poi.ss.usermodel.DateUtil - .getJavaDate(value); - cellValue = sdf.format(date); - } else {// 日期 - sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - } - try { - cellValue = sdf.format(cell.getDateCellValue());// 日期 - } catch (Exception e) { - try { - throw new Exception("exception on get date data !".concat(e.toString())); - } catch (Exception e1) { - e1.printStackTrace(); - } - } finally { - sdf = null; - } - } else { - BigDecimal bd = new BigDecimal(cell.getNumericCellValue()); - cellValue = bd.toPlainString();// 数值 这种用BigDecimal包装再获取plainString,可以防止获取到科学计数值 - } - break; - case STRING: // 字符串 - cellValue = cell.getStringCellValue(); - break; - case BOOLEAN: // Boolean - cellValue = cell.getBooleanCellValue() + ""; - break; - case FORMULA: // 公式 - cellValue = cell.getCellFormula(); - break; - case BLANK: // 空值 - cellValue = ""; - break; - case ERROR: // 故障 - cellValue = "ERROR VALUE"; - break; - default: - cellValue = "UNKNOW VALUE"; - break; - } - return cellValue; - } - - /** - * 功能:判断一个单元格是不是被合并了 - * - * @param sheet - * @return - */ - public static boolean isMerged(XSSFSheet sheet, XSSFCell cell) { - // 判断单元格是否被合并 - for (CellRangeAddress range : sheet.getMergedRegions()) { - if (cell.getRowIndex() >= range.getFirstRow() && cell.getRowIndex() <= range.getLastRow() - && cell.getColumnIndex() >= range.getFirstColumn() && cell.getColumnIndex() <= range.getLastColumn()) { - return true; - } - } - return false; - } - - /** - * ) - * 获取单元格vo - * - * @param cell 单元格 - * @return - */ - public static String getColor(XSSFCell cell) { - if (cell != null) { - //背景颜色 - CellStyle cellStyle = cell.getCellStyle(); - XSSFColor xssfColor = (XSSFColor) cellStyle.getFillForegroundColorColor(); - byte[] bytes; - if (xssfColor != null) { - bytes = xssfColor.getRGB(); - return String.format("#%02X%02X%02X", bytes[0], bytes[1], bytes[2]); - } - } - return "BLANK"; - } - - /** - * 功能:查找指定Sheet中的表头开始位置与结束位置,目前只支持一个Sheet一个导入模板,并且,只支持单行或双行表头 - * - * @param sheet - * @return - */ - public static List getHead(XSSFSheet sheet) { - List list = new ArrayList<>(); - //整行都是同一种非空白颜色,视为表头 - // 遍历行 - for (int i = 0; i <= sheet.getLastRowNum(); i++) { - //获得行 - XSSFRow row = sheet.getRow(i); - //遍历列 - if (row != null) { - Map _map = new HashMap<>(); - for (int j = 0; j < row.getLastCellNum(); j++) { - //获取单元格 - XSSFCell cell = row.getCell(j); - if (cell == null) continue; - String color = getColor(cell); - //记录背景颜色数量 - if (_map.containsKey(color)) - _map.put(color, _map.get(color) + 1); - else - _map.put(color, 1); - } - if (_map.size() == 1 && _map.entrySet().iterator().next().getKey().startsWith("#")) { - list.add(i + 1); - } - } - } - return list; - } - - /** - * 功能:设置整数类型格式 - * - * @param wb - * @param sheetIdx - * @param colIdx - * @param firstRow - * @param lastRow - */ - public static void setIntegerStyle(XSSFWorkbook wb, int sheetIdx, int colIdx, int firstRow, int lastRow) { - XSSFSheet sheet = wb.getSheetAt(sheetIdx); - XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper(sheet); - XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint) dvHelper.createNumericConstraint( - DataValidationConstraint.ValidationType.INTEGER, XSSFDataValidationConstraint.OperatorType.BETWEEN, - String.valueOf(Integer.MIN_VALUE), String.valueOf(Integer.MAX_VALUE) - ); - CellRangeAddressList addressList = new CellRangeAddressList(firstRow, lastRow, colIdx, colIdx); - XSSFDataValidation validation = (XSSFDataValidation) dvHelper.createValidation(dvConstraint, addressList); - validation.setSuppressDropDownArrow(false); - validation.setShowErrorBox(true); - sheet.addValidationData(validation); - } - - - /** - * 功能:设置浮点数类型格式 - * - * @param wb - * @param sheetIdx - * @param colIdx - * @param firstRow - * @param lastRow - */ - public static void setFloatStyle(XSSFWorkbook wb, int sheetIdx, int colIdx, int firstRow, int lastRow) { - XSSFSheet sheet = wb.getSheetAt(sheetIdx); - XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper(sheet); - XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint) dvHelper.createNumericConstraint( - DataValidationConstraint.ValidationType.DECIMAL, XSSFDataValidationConstraint.OperatorType.BETWEEN, - String.valueOf(Float.MIN_VALUE), String.valueOf(Float.MAX_VALUE) - ); - CellRangeAddressList addressList = new CellRangeAddressList(firstRow, lastRow, colIdx, colIdx); - XSSFDataValidation validation = (XSSFDataValidation) dvHelper.createValidation(dvConstraint, addressList); - validation.setSuppressDropDownArrow(false); - validation.setShowErrorBox(true); - sheet.addValidationData(validation); - } - - /** - * 功能:设置日期格式 - * - * @param wb - * @param sheetIdx - * @param colIdx - * @param firstRow - * @param lastRow - */ - public static void setDateStyle(XSSFWorkbook wb, int sheetIdx, int colIdx, int firstRow, int lastRow) { - XSSFSheet sheet = wb.getSheetAt(sheetIdx); - XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper(sheet); - DataValidationConstraint dvConstraint = dvHelper - .createDateConstraint(DataValidationConstraint.OperatorType.BETWEEN, "date(1900,1,1)", "date(2099,12,31)", "yyyy/MM/dd"); - CellRangeAddressList addressList = new CellRangeAddressList(firstRow, lastRow, colIdx, colIdx); - XSSFDataValidation validation = (XSSFDataValidation) dvHelper.createValidation(dvConstraint, addressList); - validation.setSuppressDropDownArrow(false); - validation.setShowErrorBox(true); - sheet.addValidationData(validation); - } - - public static void main(String[] args) throws IOException { -// InputStream is = new FileInputStream("D:\\dsWork\\dsBase\\src\\main\\resource\\Excel\\sheet.xlsx"); -// XSSFWorkbook wb = new XSSFWorkbook(is); -// -// setIntegerStyle(wb, 0, 2, 0, 20000); -// -// setFloatStyle(wb, 0, 3, 0, 20000); -// -// setDateStyle(wb, 0, 4, 0, 20000); -// //保存 -// FileOutputStream fileOut = new FileOutputStream("D:\\dsWork\\dsBase\\src\\main\\resource\\Excel\\b61a2af2-223f-4058-a675-b212e4dd9487_finish.xlsx"); -// wb.write(fileOut); -// //关闭Excel -// wb.close(); - - String f2 = "D:\\dsWork\\dsBase\\src\\main\\resource\\Excel\\4.xlsx"; - InputStream is = new FileInputStream(f2); - XSSFWorkbook wb = new XSSFWorkbook(is); - int sheet_index = 1; - int row_index = 3; - int col_index = 7; - XSSFCell cell = wb.getSheetAt(sheet_index).getRow(row_index).getCell(col_index); - Object value = getValue(cell); - System.out.println(value); - - } - -} diff --git a/dsBase/src/main/java/com/dsideal/Base/Util/RandomGeneratorUtil.java b/dsBase/src/main/java/com/dsideal/Base/Util/RandomGeneratorUtil.java deleted file mode 100644 index 617586c4..00000000 --- a/dsBase/src/main/java/com/dsideal/Base/Util/RandomGeneratorUtil.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.dsideal.Base.Util; - -import java.util.HashMap; -import java.util.Map; - -public class RandomGeneratorUtil { - public static String base = "abcdefghijklmnopqrstuvwxyz0123456789"; - private static String firstName = "赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮卞齐康伍余元卜顾孟平黄和穆萧尹姚邵湛汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董梁杜阮蓝闵席季麻强贾路娄危江童颜郭梅盛林刁钟徐邱骆高夏蔡田樊胡凌霍虞万支柯咎管卢莫经房裘缪干解应宗宣丁贲邓郁单杭洪包诸左石崔吉钮龚程嵇邢滑裴陆荣翁荀羊於惠甄魏加封芮羿储靳汲邴糜松井段富巫乌焦巴弓牧隗山谷车侯宓蓬全郗班仰秋仲伊宫宁仇栾暴甘钭厉戎祖武符刘姜詹束龙叶幸司韶郜黎蓟薄印宿白怀蒲台从鄂索咸籍赖卓蔺屠蒙池乔阴郁胥能苍双闻莘党翟谭贡劳逄姬申扶堵冉宰郦雍却璩桑桂濮牛寿通边扈燕冀郏浦尚农温别庄晏柴瞿阎充慕连茹习宦艾鱼容向古易慎戈廖庚终暨居衡步都耿满弘匡国文寇广禄阙东殴殳沃利蔚越夔隆师巩厍聂晁勾敖融冷訾辛阚那简饶空曾毋沙乜养鞠须丰巢关蒯相查后江红游竺权逯盖益桓公万俟司马上官欧阳夏侯诸葛闻人东方赫连皇甫尉迟公羊澹台公冶宗政濮阳淳于仲孙太叔申屠公孙乐正轩辕令狐钟离闾丘长孙慕容鲜于宇文司徒司空亓官司寇仉督子车颛孙端木巫马公西漆雕乐正壤驷公良拓拔夹谷宰父谷粱晋楚阎法汝鄢涂钦段干百里东郭南门呼延归海羊舌微生岳帅缑亢况后有琴梁丘左丘东门西门商牟佘佴伯赏南宫墨哈谯笪年爱阳佟第五言福百家姓续"; - private static String girl = "秀娟英华慧巧美娜静淑惠珠翠雅芝玉萍红娥玲芬芳燕彩春菊兰凤洁梅琳素云莲真环雪荣爱妹霞香月莺媛艳瑞凡佳嘉琼勤珍贞莉桂娣叶璧璐娅琦晶妍茜秋珊莎锦黛青倩婷姣婉娴瑾颖露瑶怡婵雁蓓纨仪荷丹蓉眉君琴蕊薇菁梦岚苑婕馨瑗琰韵融园艺咏卿聪澜纯毓悦昭冰爽琬茗羽希宁欣飘育滢馥筠柔竹霭凝晓欢霄枫芸菲寒伊亚宜可姬舒影荔枝思丽 "; - private static String boy = "伟刚勇毅俊峰强军平保东文辉力明永健世广志义兴良海山仁波宁贵福生龙元全国胜学祥才发武新利清飞彬富顺信子杰涛昌成康星光天达安岩中茂进林有坚和彪博诚先敬震振壮会思群豪心邦承乐绍功松善厚庆磊民友裕河哲江超浩亮政谦亨奇固之轮翰朗伯宏言若鸣朋斌梁栋维启克伦翔旭鹏泽晨辰士以建家致树炎德行时泰盛雄琛钧冠策腾楠榕风航弘"; - private static String[] road = "重庆大厦,黑龙江路,十梅庵街,遵义路,湘潭街,瑞金广场,仙山街,仙山东路,仙山西大厦,白沙河路,赵红广场,机场路,民航街,长城南路,流亭立交桥,虹桥广场,长城大厦,礼阳路,风岗街,中川路,白塔广场,兴阳路,文阳街,绣城路,河城大厦,锦城广场,崇阳街,华城路,康城街,正阳路,和阳广场,中城路,江城大厦,顺城路,安城街,山城广场,春城街,国城路,泰城街,德阳路,明阳大厦,春阳路,艳阳街,秋阳路,硕阳街,青威高速,瑞阳街,丰海路,双元大厦,惜福镇街道,夏庄街道,古庙工业园,中山街,太平路,广西街,潍县广场,博山大厦,湖南路,济宁街,芝罘路,易州广场,荷泽四路,荷泽二街,荷泽一路,荷泽三大厦,观海二广场,广西支街,观海一路,济宁支街,莒县路,平度广场,明水路,蒙阴大厦,青岛路,湖北街,江宁广场,郯城街,天津路,保定街,安徽路,河北大厦,黄岛路,北京街,莘县路,济南街,宁阳广场,日照街,德县路,新泰大厦,荷泽路,山西广场,沂水路,肥城街,兰山路,四方街,平原广场,泗水大厦,浙江路,曲阜街,寿康路,河南广场,泰安路,大沽街,红山峡支路,西陵峡一大厦,台西纬一广场,台西纬四街,台西纬二路,西陵峡二街,西陵峡三路,台西纬三广场,台西纬五路,明月峡大厦,青铜峡路,台西二街,观音峡广场,瞿塘峡街,团岛二路,团岛一街,台西三路,台西一大厦,郓城南路,团岛三街,刘家峡路,西藏二街,西藏一广场,台西四街,三门峡路,城武支大厦,红山峡路,郓城北广场,龙羊峡路,西陵峡街,台西五路,团岛四街,石村广场,巫峡大厦,四川路,寿张街,嘉祥路,南村广场,范县路,西康街,云南路,巨野大厦,西江广场,鱼台街,单县路,定陶街,滕县路,钜野广场,观城路,汶上大厦,朝城路,滋阳街,邹县广场,濮县街,磁山路,汶水街,西藏路,城武大厦,团岛路,南阳街,广州路,东平街,枣庄广场,贵州街,费县路,南海大厦,登州路,文登广场,信号山支路,延安一街,信号山路,兴安支街,福山支广场,红岛支大厦,莱芜二路,吴县一街,金口三路,金口一广场,伏龙山路,鱼山支街,观象二路,吴县二大厦,莱芜一广场,金口二街,海阳路,龙口街,恒山路,鱼山广场,掖县路,福山大厦,红岛路,常州街,大学广场,龙华街,齐河路,莱阳街,黄县路,张店大厦,祚山路,苏州街,华山路,伏龙街,江苏广场,龙江街,王村路,琴屿大厦,齐东路,京山广场,龙山路,牟平街,延安三路,延吉街,南京广场,东海东大厦,银川西路,海口街,山东路,绍兴广场,芝泉路,东海中街,宁夏路,香港西大厦,隆德广场,扬州街,郧阳路,太平角一街,宁国二支路,太平角二广场,天台东一路,太平角三大厦,漳州路一路,漳州街二街,宁国一支广场,太平角六街,太平角四路,天台东二街,太平角五路,宁国三大厦,澳门三路,江西支街,澳门二路,宁国四街,大尧一广场,咸阳支街,洪泽湖路,吴兴二大厦,澄海三路,天台一广场,新湛二路,三明北街,新湛支路,湛山五街,泰州三广场,湛山四大厦,闽江三路,澳门四街,南海支路,吴兴三广场,三明南路,湛山二街,二轻新村镇,江南大厦,吴兴一广场,珠海二街,嘉峪关路,高邮湖街,湛山三路,澳门六广场,泰州二路,东海一大厦,天台二路,微山湖街,洞庭湖广场,珠海支街,福州南路,澄海二街,泰州四路,香港中大厦,澳门五路,新湛三街,澳门一路,正阳关街,宁武关广场,闽江四街,新湛一路,宁国一大厦,王家麦岛,澳门七广场,泰州一路,泰州六街,大尧二路,青大一街,闽江二广场,闽江一大厦,屏东支路,湛山一街,东海西路,徐家麦岛函谷关广场,大尧三路,晓望支街,秀湛二路,逍遥三大厦,澳门九广场,泰州五街,澄海一路,澳门八街,福州北路,珠海一广场,宁国二路,临淮关大厦,燕儿岛路,紫荆关街,武胜关广场,逍遥一街,秀湛四路,居庸关街,山海关路,鄱阳湖大厦,新湛路,漳州街,仙游路,花莲街,乐清广场,巢湖街,台南路,吴兴大厦,新田路,福清广场,澄海路,莆田街,海游路,镇江街,石岛广场,宜兴大厦,三明路,仰口街,沛县路,漳浦广场,大麦岛,台湾街,天台路,金湖大厦,高雄广场,海江街,岳阳路,善化街,荣成路,澳门广场,武昌路,闽江大厦,台北路,龙岩街,咸阳广场,宁德街,龙泉路,丽水街,海川路,彰化大厦,金田路,泰州街,太湖路,江西街,泰兴广场,青大街,金门路,南通大厦,旌德路,汇泉广场,宁国路,泉州街,如东路,奉化街,鹊山广场,莲岛大厦,华严路,嘉义街,古田路,南平广场,秀湛路,长汀街,湛山路,徐州大厦,丰县广场,汕头街,新竹路,黄海街,安庆路,基隆广场,韶关路,云霄大厦,新安路,仙居街,屏东广场,晓望街,海门路,珠海街,上杭路,永嘉大厦,漳平路,盐城街,新浦路,新昌街,高田广场,市场三街,金乡东路,市场二大厦,上海支路,李村支广场,惠民南路,市场纬街,长安南路,陵县支街,冠县支广场,小港一大厦,市场一路,小港二街,清平路,广东广场,新疆路,博平街,港通路,小港沿,福建广场,高唐街,茌平路,港青街,高密路,阳谷广场,平阴路,夏津大厦,邱县路,渤海街,恩县广场,旅顺街,堂邑路,李村街,即墨路,港华大厦,港环路,馆陶街,普集路,朝阳街,甘肃广场,港夏街,港联路,陵县大厦,上海路,宝山广场,武定路,长清街,长安路,惠民街,武城广场,聊城大厦,海泊路,沧口街,宁波路,胶州广场,莱州路,招远街,冠县路,六码头,金乡广场,禹城街,临清路,东阿街,吴淞路,大港沿,辽宁路,棣纬二大厦,大港纬一路,贮水山支街,无棣纬一广场,大港纬三街,大港纬五路,大港纬四街,大港纬二路,无棣二大厦,吉林支路,大港四街,普集支路,无棣三街,黄台支广场,大港三街,无棣一路,贮水山大厦,泰山支路,大港一广场,无棣四路,大连支街,大港二路,锦州支街,德平广场,高苑大厦,长山路,乐陵街,临邑路,嫩江广场,合江路,大连街,博兴路,蒲台大厦,黄台广场,城阳街,临淄路,安邱街,临朐路,青城广场,商河路,热河大厦,济阳路,承德街,淄川广场,辽北街,阳信路,益都街,松江路,流亭大厦,吉林路,恒台街,包头路,无棣街,铁山广场,锦州街,桓台路,兴安大厦,邹平路,胶东广场,章丘路,丹东街,华阳路,青海街,泰山广场,周村大厦,四平路,台东西七街,台东东二路,台东东七广场,台东西二路,东五街,云门二路,芙蓉山村,延安二广场,云门一街,台东四路,台东一街,台东二路,杭州支广场,内蒙古路,台东七大厦,台东六路,广饶支街,台东八广场,台东三街,四平支路,郭口东街,青海支路,沈阳支大厦,菜市二路,菜市一街,北仲三路,瑞云街,滨县广场,庆祥街,万寿路,大成大厦,芙蓉路,历城广场,大名路,昌平街,平定路,长兴街,浦口广场,诸城大厦,和兴路,德盛街,宁海路,威海广场,东山路,清和街,姜沟路,雒口大厦,松山广场,长春街,昆明路,顺兴街,利津路,阳明广场,人和路,郭口大厦,营口路,昌邑街,孟庄广场,丰盛街,埕口路,丹阳街,汉口路,洮南大厦,桑梓路,沾化街,山口路,沈阳街,南口广场,振兴街,通化路,福寺大厦,峄县路,寿光广场,曹县路,昌乐街,道口路,南九水街,台湛广场,东光大厦,驼峰路,太平山,标山路,云溪广场,太清路".split(","); - private static final String[] email_suffix = "@gmail.com,@yahoo.com,@msn.com,@hotmail.com,@aol.com,@ask.com,@live.com,@qq.com,@0355.net,@163.com,@163.net,@263.net,@3721.net,@yeah.net,@googlemail.com,@126.com,@sina.com,@sohu.com,@yahoo.com.cn".split(","); - - public static int getNum(int start, int end) { - return (int) (Math.random() * (end - start + 1) + start); - } - - /** - * 返回Email - * - * @param lMin 最小长度 - * @param lMax 最大长度 - * @return - */ - public static String getEmail(int lMin, int lMax) { - int length = getNum(lMin, lMax); - StringBuffer sb = new StringBuffer(); - for (int i = 0; i < length; i++) { - int number = (int) (Math.random() * base.length()); - sb.append(base.charAt(number)); - } - sb.append(email_suffix[(int) (Math.random() * email_suffix.length)]); - return sb.toString(); - } - - /** - * 返回手机号码 - */ - private static String[] telFirst = "134,135,136,137,138,139,150,151,152,157,158,159,130,131,132,155,156,133,153".split(","); - - public static String getTel() { - int index = getNum(0, telFirst.length - 1); - String first = telFirst[index]; - String second = String.valueOf(getNum(1, 888) + 10000).substring(1); - String thrid = String.valueOf(getNum(1, 9100) + 10000).substring(1); - return first + second + thrid; - } - - /** - * 返回中文姓名 - */ - private static String name_sex = ""; - - public static String getChineseName() { - int index = getNum(0, firstName.length() - 1); - String first = firstName.substring(index, index + 1); - int sex = getNum(0, 1); - String str = boy; - int length = boy.length(); - if (sex == 0) { - str = girl; - length = girl.length(); - name_sex = "女"; - } else { - name_sex = "男"; - } - index = getNum(0, length - 1); - String second = str.substring(index, index + 1); - int hasThird = getNum(0, 1); - String third = ""; - if (hasThird == 1) { - index = getNum(0, length - 1); - third = str.substring(index, index + 1); - } - return first + second + third; - } - - /** - * 返回地址 - * - * @return - */ - public static String getRoad() { - int index = getNum(0, road.length - 1); - String first = road[index]; - String second = String.valueOf(getNum(11, 150)) + "号"; - String third = "-" + getNum(1, 20) + "-" + getNum(1, 10); - return first + second + third; - } - - /** - * 数据封装 - * - * @return - */ - public static Map getAddress() { - Map map = new HashMap<>(); - map.put("name", getChineseName()); - map.put("sex", name_sex); - map.put("road", getRoad()); - map.put("tel", getTel()); - map.put("email", getEmail(6, 9)); - return map; - } -} diff --git a/dsBase/src/main/resources/ExcelMetaDataImportTemplate/metadataTemplate.xls b/dsBase/src/main/resources/ExcelMetaDataImportTemplate/metadataTemplate.xls new file mode 100644 index 00000000..8edbba84 Binary files /dev/null and b/dsBase/src/main/resources/ExcelMetaDataImportTemplate/metadataTemplate.xls differ diff --git a/dsBase/src/main/resources/Sql/metadata.sql b/dsBase/src/main/resources/Sql/metadata.sql new file mode 100644 index 00000000..1950271d --- /dev/null +++ b/dsBase/src/main/resources/Sql/metadata.sql @@ -0,0 +1,224 @@ +#namespace("metadata") + + + -- 获取供应商系统列表 + #sql("getSystemList") + SELECT + t1.*, t2.supplier_name + FROM t_metadata_system t1, t_metadata_supplier t2 + WHERE t2.is_deleted = 0 and t1.is_deleted = 0 and t1.supplier_id = t2.id and t1.bureau_id = #para(0) + order by t1.create_time desc + #end + + -- 获取供应商系统列表,筛选系统名称 + #sql("getSystemListBySystemName") + SELECT + t1.*, t2.supplier_name + FROM t_metadata_system t1, t_metadata_supplier t2 + WHERE t2.is_deleted = 0 and t1.is_deleted = 0 and t1.supplier_id = t2.id + and t1.bureau_id = #para(0) and t1.system_name LIKE concat('%',#para(1),'%') + order by t1.create_time desc + #end + + -- 获取供应商系统信息 + #sql("getSystemInfoById") + SELECT + t1.*, t2.supplier_name + FROM t_metadata_system t1, t_metadata_supplier t2 + WHERE t2.is_deleted = 0 and t1.is_deleted = 0 and t1.supplier_id = t2.id and t1.id = ? + order by t1.create_time desc + #end + + -- 删除供应商系统信息 + #sql("deleteSystemById") + UPDATE t_metadata_system + SET person_id = ?, is_deleted = 1, update_time = now() + WHERE id = ? and is_deleted = 0 + #end + + + -- 获取供应商系统列表 + #sql("getSupplierList") + SELECT + * + FROM t_metadata_supplier + WHERE is_deleted = 0 and bureau_id = #para(0) + order by create_time desc + #end + + + -- 获取供应商系统列表,筛选系统名称 + #sql("getSupplierListBySupplierName") + SELECT + * + FROM t_metadata_supplier + WHERE is_deleted = 0 and bureau_id = #para(0) and supplier_name LIKE concat('%',#para(1),'%') + order by create_time desc + #end + + -- 获取供应商信息 + #sql("getSupplierInfoById") + SELECT + t1.*, t2.person_name as admin_person_name + FROM t_metadata_supplier t1, t_sys_loginperson t2 + WHERE t2.b_use = 1 and t1.is_deleted = 0 and t1.admin_person_id = t2.person_id and t1.id = ? + order by t1.create_time desc + #end + + + -- 删除供应商系统信息 + #sql("deleteSupplierById") + UPDATE t_metadata_supplier + SET person_id = ?, is_deleted = 1, update_time = now() + WHERE id = ? and is_deleted = 0 + #end + + + -- 获取元数据采集任务列表 + #sql("getTaskList") + SELECT + * + FROM t_metadata_collect_task + WHERE is_deleted = 0 and bureau_id = #para(0) + order by create_time desc + #end + + + -- 获取元数据采集任务列表,筛选任务名称 + #sql("getTaskListByTaskName") + SELECT + * + FROM t_metadata_collect_task + WHERE is_deleted = 0 and bureau_id = #para(0) and supplier_name LIKE concat('%',#para(1),'%') + order by create_time desc + #end + + + + -- 获取元数据采集任务列表,筛选任务名称 + #sql("getTaskInfoByTaskId") + SELECT + * + FROM t_metadata_collect_task + WHERE is_deleted = 0 and id = ? + #end + + + -- 删除元数据采集任务 + #sql("deleteTaskById") + UPDATE t_metadata_collect_task + SET person_id = ?, is_deleted = 1, update_time = now() + WHERE id = ? and is_deleted = 0 + #end + + + -- 修改元数据采集任务状态 + #sql("changeTaskStatus") + UPDATE t_metadata_collect_task + SET person_id = ?, task_status = ?, update_time = now() + WHERE id = ? and is_deleted = 0 + #end + + + -- 修改元数据采集任务状态 + #sql("changeTaskSupplierStatus") + UPDATE t_metadata_collect_task_supplier + SET person_id = ?, supplier_status = ?, update_time = now() + WHERE task_id = ? and supplier_id = ? and is_deleted = 0 + #end + + + -- 修改元数据采集任务状态 + #sql("archiveTask") + UPDATE t_metadata_collect_task + SET person_id = ?, archive_flag = 1, update_time = now() + WHERE id = ? and is_deleted = 0 + #end + + + -- 获取元数据采集任务列表(供应商) + #sql("getSupplierTaskList") + SELECT + t1.*, t2.supplier_status + FROM t_metadata_collect_task t1, t_metadata_collect_task_supplier t2 + WHERE t1.is_deleted = 0 AND t2.is_deleted = 0 AND t1.id = t2.task_id + AND t1.bureau_id = #para(0) AND t2.supplier_id = #para(1) AND t2.supplier_status IN (0,1) + ORDER BY t1.create_time desc + #end + + -- 获取元数据采集任务列表(供应商) + #sql("getSupplierTaskListByTaskName") + SELECT + t1.*, t2.supplier_status + FROM t_metadata_collect_task t1, t_metadata_collect_task_supplier t2 + WHERE t1.is_deleted = 0 AND t2.is_deleted = 0 AND t1.id = t2.task_id + AND t1.bureau_id = #para(0) AND t2.supplier_id = #para(1) and t1.task_name LIKE concat('%',#para(2),'%') AND t2.supplier_status IN (0,1) + ORDER BY t1.create_time desc + #end + + -- 根据任务ID获取供应商列表 + #sql("getSupplierListByTaskId") + SELECT + t1.*, t2.supplier_name + FROM t_metadata_collect_task_supplier t1, t_metadata_supplier t2 + WHERE t1.is_deleted = 0 and t2.is_deleted and t1.task_id = ? and t1.supplier_id = t2.id + #end + + -- 根据任务ID、供应商ID获取table_list + #sql("getSystemListByTaskInfo") + SELECT + id as system_id, system_name, system_short_name, system_version, system_status, system_synopsis, development_manager, contact_information, remark + FROM t_metadata_system + WHERE is_deleted = 0 and id in ( + select system_id from t_metadata_collect_task_table WHERE is_deleted = 0 and task_id = ? and supplier_id = ? + ) order by create_time desc + #end + + -- 根据任务信息获取column_list + #sql("getColumnListByTaskInfo") + SELECT + t1.*, t2.table_name + FROM t_metadata_collect_task_column t1, t_metadata_collect_task_table t2 + WHERE t1.is_deleted = 0 and t2.is_deleted = 0 and t1.task_id = t2.task_id and t1.table_id = t2.id + and t1.task_id = #para(0) and t1.system_id = #para(1) + order by t2.create_time, t1.create_time + #end + + + -- 根据任务信息获取column_list + #sql("getColumnListByTaskInfoAndColumnName") + SELECT + t1.*, t2.table_name + FROM t_metadata_collect_task_column t1, t_metadata_collect_task_table t2 + WHERE t1.is_deleted = 0 and t2.is_deleted = 0 and t1.task_id = t2.task_id and t1.table_id = t2.id + and t1.task_id = #para(0) and t1.system_id = #para(1) and t1.t1.column_name LIKE concat('%',#para(2),'%') + order by t2.create_time, t1.create_time + #end + + + + -- 删除元数据采集任务,字段信息 + #sql("deleteColumnById") + UPDATE t_metadata_collect_task_column + SET person_id = ?, is_deleted = 1, update_time = now() + WHERE id = ? and is_deleted = 0 + #end + + -- 根据tableId获取ColumnList + #sql("getColumnListByTableId") + SELECT + * + FROM t_metadata_collect_task_column + WHERE is_deleted = 0 and table_id = ? + #end + + + -- 删除元数据采集任务,字段信息 + #sql("deleteTaskTableById") + UPDATE t_metadata_collect_task_table + SET person_id = ?, is_deleted = 1, update_time = now() + WHERE id = ? and is_deleted = 0 + #end + + +#end \ No newline at end of file diff --git a/dsBase/src/main/resources/application_dev.yaml b/dsBase/src/main/resources/application_dev.yaml index db0f9e59..8d13f38d 100644 --- a/dsBase/src/main/resources/application_dev.yaml +++ b/dsBase/src/main/resources/application_dev.yaml @@ -4,6 +4,17 @@ mysql: user: ylt password: Ycharge666 jdbcUrl: jdbc:mysql://10.10.14.210:22066/base_db?reWriteBatchedInserts=true + # 从库配置示例(可选)- 如果配置了从库,读操作将自动路由到从库 + # slave1: + # driverClassName: com.mysql.cj.jdbc.Driver + # user: root + # password: 123456 + # jdbcUrl: jdbc:mysql://slave1:3306/dswork?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowMultiQueries=true + # slave2: + # driverClassName: com.mysql.cj.jdbc.Driver + # user: root + # password: 123456 + # jdbcUrl: jdbc:mysql://slave2:3306/dswork?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowMultiQueries=true # redis redis: @@ -22,3 +33,5 @@ excel: excelExportTemplatePathSuffix: /ExcelExportTemplate/ # 导入excel 的模板配置路径 ExcelImportTemplatePathSuffix: /ExcelImportTemplate/ + # 元数据导入模板配置路径 add by Kalman.CHENG ☆ at 2025-06-09 + ExcelMetaDataImportTemplatePathSuffix: /ExcelMetaDataImportTemplate/ diff --git a/dsBase/src/main/resources/application_pro.yaml b/dsBase/src/main/resources/application_pro.yaml index 9e7e39c1..a7fb356b 100644 --- a/dsBase/src/main/resources/application_pro.yaml +++ b/dsBase/src/main/resources/application_pro.yaml @@ -1,9 +1,20 @@ # 数据库信息 postgresql: - driverClassName: com.mysql.cj.jdbc.Driver - user: ylt - password: Ycharge666 - jdbcUrl: jdbc:mysql://10.10.14.210:22066/base_db?reWriteBatchedInserts=true + driverClassName: org.postgresql.Driver + user: postgres + password: 123456 + jdbcUrl: jdbc:postgresql://localhost:5432/dswork + # 从库配置示例(可选)- 如果配置了从库,读操作将自动路由到从库 + # slave1: + # driverClassName: org.postgresql.Driver + # user: postgres + # password: 123456 + # jdbcUrl: jdbc:postgresql://slave1:5432/dswork + # slave2: + # driverClassName: org.postgresql.Driver + # user: postgres + # password: 123456 + # jdbcUrl: jdbc:postgresql://slave2:5432/dswork # redis redis: @@ -22,3 +33,5 @@ excel: excelExportTemplatePathSuffix: /ExcelExportTemplate/ # 导入excel 的模板配置路径 ExcelImportTemplatePathSuffix: /ExcelImportTemplate/ + # 元数据导入模板配置路径 add by Kalman.CHENG ☆ at 2025-06-09 + ExcelMetaDataImportTemplatePathSuffix: /ExcelMetaDataImportTemplate/ \ No newline at end of file diff --git a/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/core/route/strategy/ExecutorRouteFirst.java b/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/core/route/strategy/ExecutorRouteFirst.java index 1cede582..32fbb15f 100644 --- a/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/core/route/strategy/ExecutorRouteFirst.java +++ b/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/core/route/strategy/ExecutorRouteFirst.java @@ -13,7 +13,7 @@ public class ExecutorRouteFirst extends ExecutorRouter { @Override public ReturnT route(TriggerParam triggerParam, List addressList){ - return new ReturnT(addressList.get(0)); + return new ReturnT(addressList.getFirst()); } } diff --git a/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/core/route/strategy/ExecutorRouteLFU.java b/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/core/route/strategy/ExecutorRouteLFU.java index e4eba141..c179cf76 100644 --- a/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/core/route/strategy/ExecutorRouteLFU.java +++ b/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/core/route/strategy/ExecutorRouteLFU.java @@ -63,7 +63,7 @@ public class ExecutorRouteLFU extends ExecutorRouter { } }); - Map.Entry addressItem = lfuItemList.get(0); + Map.Entry addressItem = lfuItemList.getFirst(); String minAddress = addressItem.getKey(); addressItem.setValue(addressItem.getValue() + 1); diff --git a/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/core/trigger/JobTrigger.java b/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/core/trigger/JobTrigger.java index 1af31105..cc3476cc 100644 --- a/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/core/trigger/JobTrigger.java +++ b/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/core/trigger/JobTrigger.java @@ -170,7 +170,7 @@ public class JobTrigger { if (index < group.getRegistryList().size()) { address = group.getRegistryList().get(index); } else { - address = group.getRegistryList().get(0); + address = group.getRegistryList().getFirst(); } } else { routeAddressResult = executorRouteStrategyEnum.getRouter().route(triggerParam, group.getRegistryList()); diff --git a/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/tool/datax/DataxJsonHelper.java b/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/tool/datax/DataxJsonHelper.java index dd121016..bcd10105 100644 --- a/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/tool/datax/DataxJsonHelper.java +++ b/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/tool/datax/DataxJsonHelper.java @@ -285,7 +285,7 @@ public class DataxJsonHelper implements DataxJsonInterface { } dataxHbasePojo.setColumns(columns); dataxHbasePojo.setReaderHbaseConfig(readerDatasource.getZkAdress()); - String readerTable=!CollectionUtils.isEmpty(readerTables)?readerTables.get(0):Constants.STRING_BLANK; + String readerTable=!CollectionUtils.isEmpty(readerTables)?readerTables.getFirst():Constants.STRING_BLANK; dataxHbasePojo.setReaderTable(readerTable); dataxHbasePojo.setReaderMode(hbaseReaderDto.getReaderMode()); dataxHbasePojo.setReaderRange(hbaseReaderDto.getReaderRange()); @@ -301,7 +301,7 @@ public class DataxJsonHelper implements DataxJsonInterface { dataxMongoDBPojo.setColumns(columns); dataxMongoDBPojo.setAddress(readerDatasource.getJdbcUrl()); dataxMongoDBPojo.setDbName(readerDatasource.getDatabaseName()); - dataxMongoDBPojo.setReaderTable(readerTables.get(0)); + dataxMongoDBPojo.setReaderTable(readerTables.getFirst()); return readerPlugin.buildMongoDB(dataxMongoDBPojo); } @@ -352,7 +352,7 @@ public class DataxJsonHelper implements DataxJsonInterface { } dataxHbasePojo.setColumns(columns); dataxHbasePojo.setWriterHbaseConfig(writerDatasource.getZkAdress()); - String writerTable=!CollectionUtils.isEmpty(writerTables)?writerTables.get(0):Constants.STRING_BLANK; + String writerTable=!CollectionUtils.isEmpty(writerTables)?writerTables.getFirst():Constants.STRING_BLANK; dataxHbasePojo.setWriterTable(writerTable); dataxHbasePojo.setWriterVersionColumn(hbaseWriterDto.getWriterVersionColumn()); dataxHbasePojo.setWriterRowkeyColumn(hbaseWriterDto.getWriterRowkeyColumn()); @@ -370,7 +370,7 @@ public class DataxJsonHelper implements DataxJsonInterface { dataxMongoDBPojo.setColumns(columns); dataxMongoDBPojo.setAddress(writerDatasource.getJdbcUrl()); dataxMongoDBPojo.setDbName(writerDatasource.getDatabaseName()); - dataxMongoDBPojo.setWriterTable(readerTables.get(0)); + dataxMongoDBPojo.setWriterTable(readerTables.getFirst()); dataxMongoDBPojo.setUpsertInfo(mongoDBWriterDto.getUpsertInfo()); return writerPlugin.buildMongoDB(dataxMongoDBPojo); } diff --git a/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/tool/query/BaseQueryTool.java b/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/tool/query/BaseQueryTool.java index 30af86ea..7c8f3b39 100644 --- a/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/tool/query/BaseQueryTool.java +++ b/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/tool/query/BaseQueryTool.java @@ -120,9 +120,9 @@ public abstract class BaseQueryTool implements QueryToolInterface { TableInfo tableInfo = new TableInfo(); //表名,注释 - List tValues = new ArrayList(tableInfos.get(0).values()); + List tValues = new ArrayList(tableInfos.getFirst().values()); - tableInfo.setName(StrUtil.toString(tValues.get(0))); + tableInfo.setName(StrUtil.toString(tValues.getFirst())); tableInfo.setComment(StrUtil.toString(tValues.get(1))); @@ -281,7 +281,7 @@ public abstract class BaseQueryTool implements QueryToolInterface { try { List> pkColumns = JdbcUtils.executeQuery(connection, sqlQueryPrimaryKey, ImmutableList.of(currentSchema, tableName)); //返回主键名称即可 - pkColumns.forEach(e -> res.add((String) new ArrayList<>(e.values()).get(0))); + pkColumns.forEach(e -> res.add((String) new ArrayList<>(e.values()).getFirst())); } catch (SQLException e) { logger.error("[getPrimaryKeys Exception] --> " + "the exception message is:" + e.getMessage()); diff --git a/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/util/JwtTokenUtils.java b/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/util/JwtTokenUtils.java index 01a494ae..868e5783 100644 --- a/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/util/JwtTokenUtils.java +++ b/dsData/datax-web/datax-admin/src/main/java/com/wugui/datax/admin/util/JwtTokenUtils.java @@ -58,7 +58,7 @@ public class JwtTokenUtils { public static Integer getUserId(String token) { String s= JSON.toJSONString(getTokenBody(token).getSubject()); List userInfo = Arrays.asList(getTokenBody(token).getSubject().split(SPLIT_COMMA)); - return Integer.parseInt(userInfo.get(0)); + return Integer.parseInt(userInfo.getFirst()); } // 获取用户角色 diff --git a/dsData/datax-web/datax-executor/src/main/java/com/wugui/datax/executor/service/command/BuildCommand.java b/dsData/datax-web/datax-executor/src/main/java/com/wugui/datax/executor/service/command/BuildCommand.java index 6d21d01c..733752f9 100644 --- a/dsData/datax-web/datax-executor/src/main/java/com/wugui/datax/executor/service/command/BuildCommand.java +++ b/dsData/datax-web/datax-executor/src/main/java/com/wugui/datax/executor/service/command/BuildCommand.java @@ -111,7 +111,7 @@ public class BuildCommand { } private static String buildPartition(List partitionInfo) { - String field = partitionInfo.get(0); + String field = partitionInfo.getFirst(); int timeOffset = Integer.parseInt(partitionInfo.get(1)); String timeFormat = partitionInfo.get(2); String partitionTime = DateUtil.format(DateUtil.addDays(new Date(), timeOffset), timeFormat); diff --git a/dsData/datax-web/datax-rpc/src/main/java/com/wugui/datax/rpc/remoting/invoker/route/impl/XxlRpcLoadBalanceLFUStrategy.java b/dsData/datax-web/datax-rpc/src/main/java/com/wugui/datax/rpc/remoting/invoker/route/impl/XxlRpcLoadBalanceLFUStrategy.java index c795e2f7..664d8b4a 100644 --- a/dsData/datax-web/datax-rpc/src/main/java/com/wugui/datax/rpc/remoting/invoker/route/impl/XxlRpcLoadBalanceLFUStrategy.java +++ b/dsData/datax-web/datax-rpc/src/main/java/com/wugui/datax/rpc/remoting/invoker/route/impl/XxlRpcLoadBalanceLFUStrategy.java @@ -60,7 +60,7 @@ public class XxlRpcLoadBalanceLFUStrategy extends XxlRpcLoadBalance { } }); - Map.Entry addressItem = lfuItemList.get(0); + Map.Entry addressItem = lfuItemList.getFirst(); String minAddress = addressItem.getKey(); addressItem.setValue(addressItem.getValue() + 1); diff --git a/dsData/datax-web/datax-rpc/src/main/java/com/wugui/datax/rpc/util/json/BasicJson.java b/dsData/datax-web/datax-rpc/src/main/java/com/wugui/datax/rpc/util/json/BasicJson.java index 54e0622d..7e7365f8 100644 --- a/dsData/datax-web/datax-rpc/src/main/java/com/wugui/datax/rpc/util/json/BasicJson.java +++ b/dsData/datax-web/datax-rpc/src/main/java/com/wugui/datax/rpc/util/json/BasicJson.java @@ -99,7 +99,7 @@ public class BasicJson { Class list_field_RealType = (Class)((ParameterizedType) field.getGenericType()).getActualTypeArguments()[0]; if (FieldReflectionUtil.validBaseType(list_field_RealType)) { // List list_newItemList = new ArrayList<>(); for (Object list_oldItem: fieldValueList) { @@ -139,7 +139,7 @@ public class BasicJson { if (listObject.size() == 0) { return new ArrayList<>(); } - if (listObject.get(0).getClass() != LinkedHashMap.class) { + if (listObject.getFirst().getClass() != LinkedHashMap.class) { throw new IllegalArgumentException("Cannot parse JSON, custom class must match LinkedHashMap"); } // parse business class diff --git a/dsGw/pom.xml b/dsGw/pom.xml index 124f61b0..dd64a41b 100644 --- a/dsGw/pom.xml +++ b/dsGw/pom.xml @@ -11,162 +11,21 @@ dsGw - + - com.jfinal - jfinal - ${jfinal.version} - - - com.jfinal - jfinal-undertow - ${jfinal-undertow.version} - - - org.slf4j - slf4j-api - - - org.slf4j - slf4j-simple - - - - - com.jfinal - cos - ${jfinal-cos.version} - - - - - redis.clients - jedis - ${jedis.version} - - - - - cn.hutool - hutool-all - ${hutool.version} - - - - - - org.slf4j - slf4j-api - ${slf4j.version} - - - - - ch.qos.logback - logback-classic - ${logback.version} - - - ch.qos.logback - logback-core - ${logback.version} - - - ch.qos.logback - logback-access - ${logback.version} - - - - commons-io - commons-io - ${commons-io.version} - - - org.apache.commons - commons-email - ${commons-email.version} - - - org.apache.commons - commons-lang3 - ${commons-lang3.version} - - - commons-codec - commons-codec - 1.15 + org.projectlombok + lombok + ${lombok.version} + provided com.squareup.okhttp3 okhttp - 4.12.0 - - - - - org.yaml - snakeyaml - ${snakeyaml.version} - - - - - io.jsonwebtoken - jjwt-api - ${jsonwebtoken.version} - - - io.jsonwebtoken - jjwt-impl - ${jsonwebtoken.version} - runtime - - - io.jsonwebtoken - jjwt-jackson - 0.11.5 - runtime - - - - - javax.xml.bind - jaxb-api - 2.3.0 - - - com.sun.xml.bind - jaxb-impl - 2.3.0 - - - com.sun.xml.bind - jaxb-core - 2.3.0 - - - javax.activation - activation - 1.1.1 + ${okhttp.version} - - - com.alibaba - fastjson - ${fastjson.version} - - - - - org.projectlombok - lombok - ${lombok.version} - provided - com.dsideal dsUtils diff --git a/dsGw/src/main/java/com/dsideal/gw/GwApplication.java b/dsGw/src/main/java/com/dsideal/gw/GwApplication.java index aa9d4666..64a38dd7 100644 --- a/dsGw/src/main/java/com/dsideal/gw/GwApplication.java +++ b/dsGw/src/main/java/com/dsideal/gw/GwApplication.java @@ -16,12 +16,7 @@ import org.yaml.snakeyaml.Yaml; import java.util.*; import org.slf4j.Logger; public class GwApplication extends JFinalConfig { - private static final Logger logger = LoggerFactory.getLogger(GwApplication.class); - - - - public static void main(String[] args) { System.out.println("当前环境: " + PropKit.getEnvPrefix()); String configFile = "undertow.properties"; diff --git a/dsGw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java b/dsGw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java index f09ecd63..2fb2e293 100644 --- a/dsGw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java +++ b/dsGw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java @@ -187,7 +187,7 @@ public class RouterHandler extends Handler { return; } - Request request = buildFileUploadRequest(files.get(0), forwardUrl); + Request request = buildFileUploadRequest(files.getFirst(), forwardUrl); executeRequest(request, res); isHandled[0] = true; } catch (Exception e) { diff --git a/dsGw/src/main/java/com/dsideal/gw/Util/JwtUtil.java b/dsGw/src/main/java/com/dsideal/gw/Util/JwtUtil.java index 0c8d224e..d5df583c 100644 --- a/dsGw/src/main/java/com/dsideal/gw/Util/JwtUtil.java +++ b/dsGw/src/main/java/com/dsideal/gw/Util/JwtUtil.java @@ -51,11 +51,11 @@ public class JwtUtil { } Claims claims; try { - claims = Jwts.parserBuilder() - .setSigningKey(key) + claims = Jwts.parser() + .verifyWith(key) .build() - .parseClaimsJws(token) - .getBody(); + .parseSignedClaims(token) + .getPayload(); } catch (Exception e) { System.out.println(e.toString()); claims = null; diff --git a/dsRes/Dockerfile b/dsRes/Dockerfile index 74195cb5..988a27dd 100644 --- a/dsRes/Dockerfile +++ b/dsRes/Dockerfile @@ -20,4 +20,4 @@ ENV JAVA_OPTS="-Xms512m -Xmx1024m" # 标识为生产环境 ENV WORKING_ENV="pro" -ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -cp /root/target/classes:/root/lib/* com.dsideal.Res.ResApplication" ] +ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -cp /root/target/classes:/root/lib/* com.dsideal.Ai.ResApplication" ] diff --git a/dsRes/pom.xml b/dsRes/pom.xml index 2929281e..5b73147d 100644 --- a/dsRes/pom.xml +++ b/dsRes/pom.xml @@ -12,55 +12,20 @@ 1.0 - - - com.jfinal - jfinal - ${jfinal.version} - - - com.jfinal - jfinal-undertow - ${jfinal-undertow.version} - - - org.slf4j - slf4j-api - - - org.slf4j - slf4j-simple - - - - - com.jfinal - cos - ${jfinal-cos.version} - + org.neo4j.driver neo4j-java-driver - 5.28.5 + ${neo4j-java-driver.version} io.milvus milvus-sdk-java - 2.5.9 - - - - com.alibaba - druid - ${druid.version} - - - com.mysql - mysql-connector-j - ${mysql.version} + ${milvus-sdk-java.version} + @@ -78,80 +43,11 @@ - - org.slf4j - slf4j-api - ${slf4j.version} - + + + - - - - org.slf4j - slf4j-api - ${slf4j.version} - - - - - ch.qos.logback - logback-classic - ${logback.version} - - - ch.qos.logback - logback-core - ${logback.version} - - - ch.qos.logback - logback-access - ${logback.version} - - - com.alibaba - fastjson - ${fastjson.version} - - - - - cn.hutool - hutool-all - ${hutool.version} - - - org.jsoup - jsoup - ${jsoup.version} - - - commons-io - commons-io - ${commons-io.version} - - - org.apache.commons - commons-email - ${commons-email.version} - - - org.apache.commons - commons-lang3 - ${commons-lang3.version} - - - org.dom4j - dom4j - ${dom4j.version} - - - - - redis.clients - jedis - ${jedis.version} - + @@ -168,30 +64,16 @@ - - io.jsonwebtoken - jjwt-api - ${jsonwebtoken.version} - - - io.jsonwebtoken - jjwt-impl - ${jsonwebtoken.version} - runtime - - - io.jsonwebtoken - jjwt-jackson - 0.11.5 - runtime - - + + + org.projectlombok lombok ${lombok.version} provided + com.dsideal dsUtils diff --git a/dsRes/src/main/java/com/dsideal/Res/Base/Controller/BaseController.java b/dsRes/src/main/java/com/dsideal/Ai/Base/Controller/BaseController.java similarity index 94% rename from dsRes/src/main/java/com/dsideal/Res/Base/Controller/BaseController.java rename to dsRes/src/main/java/com/dsideal/Ai/Base/Controller/BaseController.java index d9bbfa68..3004dcca 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Base/Controller/BaseController.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Base/Controller/BaseController.java @@ -1,9 +1,9 @@ -package com.dsideal.Res.Base.Controller; +package com.dsideal.Ai.Base.Controller; -import com.dsideal.Res.Base.Model.BaseModel; -import com.dsideal.Res.Interceptor.EmptyInterface; -import com.dsideal.Res.Interceptor.IsNumericInterface; -import com.dsideal.Res.Util.RetKit; +import com.dsideal.Ai.Base.Model.BaseModel; +import com.dsideal.Ai.Interceptor.EmptyInterface; +import com.dsideal.Ai.Interceptor.IsNumericInterface; +import com.dsideal.Ai.Util.RetKit; import com.jfinal.aop.Before; import com.jfinal.core.Controller; import com.jfinal.ext.interceptor.GET; diff --git a/dsRes/src/main/java/com/dsideal/Res/Base/Model/BaseModel.java b/dsRes/src/main/java/com/dsideal/Ai/Base/Model/BaseModel.java similarity index 96% rename from dsRes/src/main/java/com/dsideal/Res/Base/Model/BaseModel.java rename to dsRes/src/main/java/com/dsideal/Ai/Base/Model/BaseModel.java index a7093fea..29082987 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Base/Model/BaseModel.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Base/Model/BaseModel.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Base.Model; +package com.dsideal.Ai.Base.Model; import com.jfinal.kit.Kv; import com.jfinal.plugin.activerecord.Db; diff --git a/dsRes/src/main/java/com/dsideal/Res/Index/IndexController.java b/dsRes/src/main/java/com/dsideal/Ai/Index/IndexController.java similarity index 81% rename from dsRes/src/main/java/com/dsideal/Res/Index/IndexController.java rename to dsRes/src/main/java/com/dsideal/Ai/Index/IndexController.java index aed7441c..d5ca7228 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Index/IndexController.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Index/IndexController.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Index; +package com.dsideal.Ai.Index; import com.jfinal.core.Controller; diff --git a/dsAi/src/main/java/com/dsideal/Res/Interceptor/CheckIdsInterceptor.java b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/CheckIdsInterceptor.java similarity index 93% rename from dsAi/src/main/java/com/dsideal/Res/Interceptor/CheckIdsInterceptor.java rename to dsRes/src/main/java/com/dsideal/Ai/Interceptor/CheckIdsInterceptor.java index 74b42da1..fc924413 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Interceptor/CheckIdsInterceptor.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/CheckIdsInterceptor.java @@ -1,7 +1,7 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; -import com.dsideal.Res.Util.CommonUtil; -import com.dsideal.Res.Util.RetKit; +import com.dsideal.Ai.Util.CommonUtil; +import com.dsideal.Ai.Util.RetKit; import com.jfinal.aop.Interceptor; import com.jfinal.aop.Invocation; import com.jfinal.core.Controller; diff --git a/dsAi/src/main/java/com/dsideal/Res/Interceptor/CheckIdsInterface.java b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/CheckIdsInterface.java similarity index 80% rename from dsAi/src/main/java/com/dsideal/Res/Interceptor/CheckIdsInterface.java rename to dsRes/src/main/java/com/dsideal/Ai/Interceptor/CheckIdsInterface.java index 473d24a4..879fdf4b 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Interceptor/CheckIdsInterface.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/CheckIdsInterface.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; import java.lang.annotation.*; diff --git a/dsAi/src/main/java/com/dsideal/Res/Interceptor/EmptyInterceptor.java b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/EmptyInterceptor.java similarity index 92% rename from dsAi/src/main/java/com/dsideal/Res/Interceptor/EmptyInterceptor.java rename to dsRes/src/main/java/com/dsideal/Ai/Interceptor/EmptyInterceptor.java index 1cd988c8..43f91bec 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Interceptor/EmptyInterceptor.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/EmptyInterceptor.java @@ -1,6 +1,6 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; -import com.dsideal.Res.Util.RetKit; +import com.dsideal.Ai.Util.RetKit; import com.jfinal.aop.Interceptor; import com.jfinal.aop.Invocation; import com.jfinal.core.Controller; diff --git a/dsAi/src/main/java/com/dsideal/Res/Interceptor/EmptyInterface.java b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/EmptyInterface.java similarity index 87% rename from dsAi/src/main/java/com/dsideal/Res/Interceptor/EmptyInterface.java rename to dsRes/src/main/java/com/dsideal/Ai/Interceptor/EmptyInterface.java index c8608348..8487023b 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Interceptor/EmptyInterface.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/EmptyInterface.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; diff --git a/dsRes/src/main/java/com/dsideal/Res/Interceptor/IsGuidInterceptor.java b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/IsGuidInterceptor.java similarity index 91% rename from dsRes/src/main/java/com/dsideal/Res/Interceptor/IsGuidInterceptor.java rename to dsRes/src/main/java/com/dsideal/Ai/Interceptor/IsGuidInterceptor.java index 5d350d4d..51d2abd4 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Interceptor/IsGuidInterceptor.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/IsGuidInterceptor.java @@ -1,6 +1,6 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; -import com.dsideal.Res.Util.RetKit; +import com.dsideal.Ai.Util.RetKit; import com.jfinal.aop.Interceptor; import com.jfinal.aop.Invocation; import com.jfinal.core.Controller; diff --git a/dsAi/src/main/java/com/dsideal/Res/Interceptor/IsGuidInterface.java b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/IsGuidInterface.java similarity index 80% rename from dsAi/src/main/java/com/dsideal/Res/Interceptor/IsGuidInterface.java rename to dsRes/src/main/java/com/dsideal/Ai/Interceptor/IsGuidInterface.java index b81327fe..fcb47f39 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Interceptor/IsGuidInterface.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/IsGuidInterface.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; import java.lang.annotation.*; diff --git a/dsAi/src/main/java/com/dsideal/Res/Interceptor/IsNumbericInterceptor.java b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/IsNumbericInterceptor.java similarity index 90% rename from dsAi/src/main/java/com/dsideal/Res/Interceptor/IsNumbericInterceptor.java rename to dsRes/src/main/java/com/dsideal/Ai/Interceptor/IsNumbericInterceptor.java index decdb2ec..bc5e640b 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Interceptor/IsNumbericInterceptor.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/IsNumbericInterceptor.java @@ -1,7 +1,7 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; -import com.dsideal.Res.Util.CommonUtil; -import com.dsideal.Res.Util.RetKit; +import com.dsideal.Ai.Util.CommonUtil; +import com.dsideal.Ai.Util.RetKit; import com.jfinal.aop.Interceptor; import com.jfinal.aop.Invocation; import com.jfinal.core.Controller; diff --git a/dsRes/src/main/java/com/dsideal/Res/Interceptor/IsNumericInterface.java b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/IsNumericInterface.java similarity index 80% rename from dsRes/src/main/java/com/dsideal/Res/Interceptor/IsNumericInterface.java rename to dsRes/src/main/java/com/dsideal/Ai/Interceptor/IsNumericInterface.java index a88260e1..7101892b 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Interceptor/IsNumericInterface.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/IsNumericInterface.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; import java.lang.annotation.*; diff --git a/dsRes/src/main/java/com/dsideal/Res/Interceptor/IsSysAdminInterceptor.java b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/IsSysAdminInterceptor.java similarity index 92% rename from dsRes/src/main/java/com/dsideal/Res/Interceptor/IsSysAdminInterceptor.java rename to dsRes/src/main/java/com/dsideal/Ai/Interceptor/IsSysAdminInterceptor.java index 48d89a75..d04874b1 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Interceptor/IsSysAdminInterceptor.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/IsSysAdminInterceptor.java @@ -1,6 +1,6 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; -import com.dsideal.Res.Util.RetKit; +import com.dsideal.Ai.Util.RetKit; import com.jfinal.aop.Interceptor; import com.jfinal.aop.Invocation; import com.jfinal.core.Controller; diff --git a/dsAi/src/main/java/com/dsideal/Res/Interceptor/IsSysAdminInterface.java b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/IsSysAdminInterface.java similarity index 80% rename from dsAi/src/main/java/com/dsideal/Res/Interceptor/IsSysAdminInterface.java rename to dsRes/src/main/java/com/dsideal/Ai/Interceptor/IsSysAdminInterface.java index 040957c4..c316dfeb 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Interceptor/IsSysAdminInterface.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/IsSysAdminInterface.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; import java.lang.annotation.*; diff --git a/dsRes/src/main/java/com/dsideal/Res/Interceptor/LengthInterceptor.java b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/LengthInterceptor.java similarity index 93% rename from dsRes/src/main/java/com/dsideal/Res/Interceptor/LengthInterceptor.java rename to dsRes/src/main/java/com/dsideal/Ai/Interceptor/LengthInterceptor.java index f5684aaa..7139ad71 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Interceptor/LengthInterceptor.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/LengthInterceptor.java @@ -1,6 +1,6 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; -import com.dsideal.Res.Util.RetKit; +import com.dsideal.Ai.Util.RetKit; import com.jfinal.aop.Interceptor; import com.jfinal.aop.Invocation; import com.jfinal.core.Controller; diff --git a/dsAi/src/main/java/com/dsideal/Res/Interceptor/LengthInterface.java b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/LengthInterface.java similarity index 79% rename from dsAi/src/main/java/com/dsideal/Res/Interceptor/LengthInterface.java rename to dsRes/src/main/java/com/dsideal/Ai/Interceptor/LengthInterface.java index bfbd5f99..45111271 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Interceptor/LengthInterface.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Interceptor/LengthInterface.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Interceptor; +package com.dsideal.Ai.Interceptor; import java.lang.annotation.*; diff --git a/dsRes/src/main/java/com/dsideal/Res/JApiDocsGenerator.java b/dsRes/src/main/java/com/dsideal/Ai/JApiDocsGenerator.java similarity index 96% rename from dsRes/src/main/java/com/dsideal/Res/JApiDocsGenerator.java rename to dsRes/src/main/java/com/dsideal/Ai/JApiDocsGenerator.java index efee6c21..59a97022 100644 --- a/dsRes/src/main/java/com/dsideal/Res/JApiDocsGenerator.java +++ b/dsRes/src/main/java/com/dsideal/Ai/JApiDocsGenerator.java @@ -1,9 +1,9 @@ -package com.dsideal.Res; +package com.dsideal.Ai; import cn.hutool.core.io.FileUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.dsideal.Res.Plugin.PostmanDocPlugin; +import com.dsideal.Ai.Plugin.PostmanDocPlugin; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.jfinal.aop.Before; diff --git a/dsRes/src/main/java/com/dsideal/Res/Milvus/Controller/MilvusDemoController.java b/dsRes/src/main/java/com/dsideal/Ai/Milvus/Controller/MilvusDemoController.java similarity index 94% rename from dsRes/src/main/java/com/dsideal/Res/Milvus/Controller/MilvusDemoController.java rename to dsRes/src/main/java/com/dsideal/Ai/Milvus/Controller/MilvusDemoController.java index d62ff6b5..19756bd7 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Milvus/Controller/MilvusDemoController.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Milvus/Controller/MilvusDemoController.java @@ -1,7 +1,7 @@ -package com.dsideal.Res.Milvus.Controller; +package com.dsideal.Ai.Milvus.Controller; import com.dsideal.Config.PropKit; // 配置文件工具类 -import com.dsideal.Res.Plugin.MilvusPlugin; // Milvus连接池管理类 +import com.dsideal.Ai.Plugin.MilvusPlugin; // Milvus连接池管理类 import com.jfinal.aop.Before; import com.jfinal.core.Controller; // JFinal框架基础控制器 import com.jfinal.ext.interceptor.GET; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseClass.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseClass.java similarity index 99% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseClass.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseClass.java index 425ccb4b..29213b50 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseClass.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseClass.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseGlobal.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseGlobal.java similarity index 98% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseGlobal.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseGlobal.java index 16890d1d..05202bba 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseGlobal.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseGlobal.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseGlobalType.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseGlobalType.java similarity index 96% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseGlobalType.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseGlobalType.java index eb53ba12..8bc6ab91 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseGlobalType.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseGlobalType.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseGraduation.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseGraduation.java similarity index 95% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseGraduation.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseGraduation.java index 3e417678..f0a41033 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseGraduation.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseGraduation.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseMenu.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseMenu.java similarity index 99% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseMenu.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseMenu.java index 0482bbdb..b9650e37 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseMenu.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseMenu.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseMenuPrivilage.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseMenuPrivilage.java similarity index 95% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseMenuPrivilage.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseMenuPrivilage.java index 0371ee65..11130d3b 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseMenuPrivilage.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseMenuPrivilage.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseOrgTypePrincipalship.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseOrgTypePrincipalship.java similarity index 98% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseOrgTypePrincipalship.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseOrgTypePrincipalship.java index 4f347373..3d2b2979 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseOrgTypePrincipalship.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseOrgTypePrincipalship.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseOrganization.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseOrganization.java similarity index 99% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseOrganization.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseOrganization.java index 453e763d..1c2bd13e 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseOrganization.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseOrganization.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBasePrincipalshipMenu.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBasePrincipalshipMenu.java similarity index 96% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseBasePrincipalshipMenu.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseBasePrincipalshipMenu.java index 7a2c9261..e5047b1a 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBasePrincipalshipMenu.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBasePrincipalshipMenu.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseTerm.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseTerm.java similarity index 97% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseTerm.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseTerm.java index 95320a3e..3f94f9fa 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseBaseTerm.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseBaseTerm.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseCityCoordinate.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseCityCoordinate.java similarity index 96% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseCityCoordinate.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseCityCoordinate.java index 221257f2..4e321633 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseCityCoordinate.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseCityCoordinate.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseClass.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseClass.java similarity index 62% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseClass.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseClass.java index d86b7144..7c8343c6 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseClass.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseClass.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseBaseClass; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmArea.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmArea.java similarity index 98% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseDmArea.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmArea.java index 7a9b05f1..b62ba28d 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmArea.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmArea.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmBz.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmBz.java similarity index 97% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseDmBz.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmBz.java index b3e42e19..11b0da81 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmBz.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmBz.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmIdentity.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmIdentity.java similarity index 97% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseDmIdentity.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmIdentity.java index a4c5b7bd..051cccf8 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmIdentity.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmIdentity.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmMz.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmMz.java similarity index 97% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseDmMz.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmMz.java index 2d9875fc..824ac61b 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmMz.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmMz.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmSchoollevel.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmSchoollevel.java similarity index 96% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseDmSchoollevel.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmSchoollevel.java index b3d354d7..a1e74c04 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmSchoollevel.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmSchoollevel.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmSchoolproperty.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmSchoolproperty.java similarity index 96% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseDmSchoolproperty.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmSchoolproperty.java index 15a4483a..f7f29ffb 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmSchoolproperty.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmSchoolproperty.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmSchooltype.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmSchooltype.java similarity index 98% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseDmSchooltype.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmSchooltype.java index 255899f5..96c5a857 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmSchooltype.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmSchooltype.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmSchooltypeStage.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmSchooltypeStage.java similarity index 96% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseDmSchooltypeStage.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmSchooltypeStage.java index 788902be..a258be76 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmSchooltypeStage.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmSchooltypeStage.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmStage.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmStage.java similarity index 98% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseDmStage.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmStage.java index 8828eadf..643cdf27 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmStage.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmStage.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmStatusStudent.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmStatusStudent.java similarity index 98% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseDmStatusStudent.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmStatusStudent.java index 3ba51bce..07382a56 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmStatusStudent.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmStatusStudent.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmStatusTeacher.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmStatusTeacher.java similarity index 98% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseDmStatusTeacher.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmStatusTeacher.java index 427c4460..259d7270 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmStatusTeacher.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmStatusTeacher.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmStudentSource.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmStudentSource.java similarity index 97% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseDmStudentSource.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmStudentSource.java index 08d3a18f..cc9f9c35 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmStudentSource.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmStudentSource.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmSubject.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmSubject.java similarity index 97% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseDmSubject.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmSubject.java index 2530ee39..bce09a66 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmSubject.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmSubject.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmXb.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmXb.java similarity index 96% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseDmXb.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmXb.java index 2c30903f..e86e07ca 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmXb.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmXb.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmXl.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmXl.java similarity index 97% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseDmXl.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmXl.java index 4261c59a..f2240f01 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmXl.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmXl.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmZc.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmZc.java similarity index 97% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseDmZc.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmZc.java index 12f4fd9a..ade0ca6b 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmZc.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmZc.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmZzmm.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmZzmm.java similarity index 97% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseDmZzmm.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmZzmm.java index 105e150a..db010cbb 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseDmZzmm.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseDmZzmm.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseGlobal.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseGlobal.java similarity index 62% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseGlobal.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseGlobal.java index 084bed0b..5022d18c 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseGlobal.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseGlobal.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseBaseGlobal; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseGlobalType.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseGlobalType.java similarity index 63% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseGlobalType.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseGlobalType.java index ffa9306f..88bf22af 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseGlobalType.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseGlobalType.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseBaseGlobalType; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseGraduation.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseGraduation.java similarity index 63% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseGraduation.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseGraduation.java index 08458c67..a617daf1 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseGraduation.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseGraduation.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseBaseGraduation; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseImportStudentByExcel.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseImportStudentByExcel.java similarity index 99% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseImportStudentByExcel.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseImportStudentByExcel.java index 09d0b77a..ddd1fe08 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseImportStudentByExcel.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseImportStudentByExcel.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseImportTeacherByExcel.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseImportTeacherByExcel.java similarity index 99% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseImportTeacherByExcel.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseImportTeacherByExcel.java index ab25c305..2e154c78 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseImportTeacherByExcel.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseImportTeacherByExcel.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseMenu.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseMenu.java similarity index 61% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseMenu.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseMenu.java index 7fbce1bb..c20d7501 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseMenu.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseMenu.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseBaseMenu; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseMenuPrivilage.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseMenuPrivilage.java similarity index 63% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseMenuPrivilage.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseMenuPrivilage.java index 6c33d9c4..c62177f8 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseMenuPrivilage.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseMenuPrivilage.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseBaseMenuPrivilage; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseOrgTypePrincipalship.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseOrgTypePrincipalship.java similarity index 65% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseOrgTypePrincipalship.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseOrgTypePrincipalship.java index d741e9ce..cecbf4a9 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseOrgTypePrincipalship.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseOrgTypePrincipalship.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseBaseOrgTypePrincipalship; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseOrganization.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseOrganization.java similarity index 63% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseOrganization.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseOrganization.java index b4df9bc6..20faad51 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseOrganization.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseOrganization.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseBaseOrganization; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BasePersonDuty.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BasePersonDuty.java similarity index 98% rename from dsRes/src/main/java/com/dsideal/Res/Model/BasePersonDuty.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BasePersonDuty.java index 43832d6c..0811c4c9 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BasePersonDuty.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BasePersonDuty.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BasePrincipalshipMenu.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BasePrincipalshipMenu.java similarity index 64% rename from dsRes/src/main/java/com/dsideal/Res/Model/BasePrincipalshipMenu.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BasePrincipalshipMenu.java index 0a649be7..466371d5 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BasePrincipalshipMenu.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BasePrincipalshipMenu.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseBasePrincipalshipMenu; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseSysIdentity.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseSysIdentity.java similarity index 98% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseSysIdentity.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseSysIdentity.java index 2307987e..a249c480 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseSysIdentity.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseSysIdentity.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseSysLoginLog.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseSysLoginLog.java similarity index 98% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseSysLoginLog.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseSysLoginLog.java index 410d976e..d6805136 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseSysLoginLog.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseSysLoginLog.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseSysLoginperson.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseSysLoginperson.java similarity index 99% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseSysLoginperson.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseSysLoginperson.java index 8631b610..b75d8916 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseSysLoginperson.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseSysLoginperson.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseTerm.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseTerm.java similarity index 61% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseTerm.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseTerm.java index 1e3fa5b3..54ea8031 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseTerm.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseTerm.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseBaseTerm; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseTest.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseTest.java similarity index 95% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseTest.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseTest.java index b0c4cc13..4e13d74e 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseTest.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseTest.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseTransferApply.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseTransferApply.java similarity index 99% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseTransferApply.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseTransferApply.java index 1203d58c..3c60aff9 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseTransferApply.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseTransferApply.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/BaseTransferApplyStatus.java b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseTransferApplyStatus.java similarity index 97% rename from dsRes/src/main/java/com/dsideal/Res/Model/BaseTransferApplyStatus.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/BaseTransferApplyStatus.java index 3c219d55..df91b935 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/BaseTransferApplyStatus.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/BaseTransferApplyStatus.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.Model; import com.jfinal.plugin.activerecord.IBean; diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/CityCoordinate.java b/dsRes/src/main/java/com/dsideal/Ai/Model/CityCoordinate.java similarity index 63% rename from dsRes/src/main/java/com/dsideal/Res/Model/CityCoordinate.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/CityCoordinate.java index c579941a..abbc624f 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/CityCoordinate.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/CityCoordinate.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseCityCoordinate; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/DmArea.java b/dsRes/src/main/java/com/dsideal/Ai/Model/DmArea.java similarity index 61% rename from dsRes/src/main/java/com/dsideal/Res/Model/DmArea.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/DmArea.java index b9e9f8ce..00f47db6 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/DmArea.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/DmArea.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseDmArea; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/DmBz.java b/dsRes/src/main/java/com/dsideal/Ai/Model/DmBz.java similarity index 60% rename from dsRes/src/main/java/com/dsideal/Res/Model/DmBz.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/DmBz.java index 461462d3..f824352d 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/DmBz.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/DmBz.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseDmBz; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/DmIdentity.java b/dsRes/src/main/java/com/dsideal/Ai/Model/DmIdentity.java similarity index 62% rename from dsRes/src/main/java/com/dsideal/Res/Model/DmIdentity.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/DmIdentity.java index 938bd259..da368685 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/DmIdentity.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/DmIdentity.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseDmIdentity; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/DmMz.java b/dsRes/src/main/java/com/dsideal/Ai/Model/DmMz.java similarity index 60% rename from dsRes/src/main/java/com/dsideal/Res/Model/DmMz.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/DmMz.java index 6858db4e..f157b797 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/DmMz.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/DmMz.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseDmMz; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/DmSchoollevel.java b/dsRes/src/main/java/com/dsideal/Ai/Model/DmSchoollevel.java similarity index 62% rename from dsRes/src/main/java/com/dsideal/Res/Model/DmSchoollevel.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/DmSchoollevel.java index cb393266..1edd9c68 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/DmSchoollevel.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/DmSchoollevel.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseDmSchoollevel; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/DmSchoolproperty.java b/dsRes/src/main/java/com/dsideal/Ai/Model/DmSchoolproperty.java similarity index 63% rename from dsRes/src/main/java/com/dsideal/Res/Model/DmSchoolproperty.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/DmSchoolproperty.java index e1f2a1e1..f44a14f7 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/DmSchoolproperty.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/DmSchoolproperty.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseDmSchoolproperty; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/DmSchooltype.java b/dsRes/src/main/java/com/dsideal/Ai/Model/DmSchooltype.java similarity index 62% rename from dsRes/src/main/java/com/dsideal/Res/Model/DmSchooltype.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/DmSchooltype.java index 08331624..b5680b95 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/DmSchooltype.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/DmSchooltype.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseDmSchooltype; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/DmSchooltypeStage.java b/dsRes/src/main/java/com/dsideal/Ai/Model/DmSchooltypeStage.java similarity index 63% rename from dsRes/src/main/java/com/dsideal/Res/Model/DmSchooltypeStage.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/DmSchooltypeStage.java index 848bff88..5986557e 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/DmSchooltypeStage.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/DmSchooltypeStage.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseDmSchooltypeStage; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/DmStage.java b/dsRes/src/main/java/com/dsideal/Ai/Model/DmStage.java similarity index 61% rename from dsRes/src/main/java/com/dsideal/Res/Model/DmStage.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/DmStage.java index 86e17769..6460da75 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/DmStage.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/DmStage.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseDmStage; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/DmStatusStudent.java b/dsRes/src/main/java/com/dsideal/Ai/Model/DmStatusStudent.java similarity index 63% rename from dsRes/src/main/java/com/dsideal/Res/Model/DmStatusStudent.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/DmStatusStudent.java index 4a3bec8a..8b959507 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/DmStatusStudent.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/DmStatusStudent.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseDmStatusStudent; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/DmStatusTeacher.java b/dsRes/src/main/java/com/dsideal/Ai/Model/DmStatusTeacher.java similarity index 63% rename from dsRes/src/main/java/com/dsideal/Res/Model/DmStatusTeacher.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/DmStatusTeacher.java index b80ce5b0..e3b40996 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/DmStatusTeacher.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/DmStatusTeacher.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseDmStatusTeacher; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/DmStudentSource.java b/dsRes/src/main/java/com/dsideal/Ai/Model/DmStudentSource.java similarity index 63% rename from dsRes/src/main/java/com/dsideal/Res/Model/DmStudentSource.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/DmStudentSource.java index f38551fe..a519c21d 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/DmStudentSource.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/DmStudentSource.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseDmStudentSource; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/DmSubject.java b/dsRes/src/main/java/com/dsideal/Ai/Model/DmSubject.java similarity index 62% rename from dsRes/src/main/java/com/dsideal/Res/Model/DmSubject.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/DmSubject.java index b3691a0e..76d22ad6 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/DmSubject.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/DmSubject.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseDmSubject; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/DmXb.java b/dsRes/src/main/java/com/dsideal/Ai/Model/DmXb.java similarity index 60% rename from dsRes/src/main/java/com/dsideal/Res/Model/DmXb.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/DmXb.java index f4d9a22b..fcfb760e 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/DmXb.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/DmXb.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseDmXb; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/DmXl.java b/dsRes/src/main/java/com/dsideal/Ai/Model/DmXl.java similarity index 60% rename from dsRes/src/main/java/com/dsideal/Res/Model/DmXl.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/DmXl.java index d7615900..f779813a 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/DmXl.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/DmXl.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseDmXl; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/DmZc.java b/dsRes/src/main/java/com/dsideal/Ai/Model/DmZc.java similarity index 60% rename from dsRes/src/main/java/com/dsideal/Res/Model/DmZc.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/DmZc.java index c4d54537..27479a00 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/DmZc.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/DmZc.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseDmZc; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/DmZzmm.java b/dsRes/src/main/java/com/dsideal/Ai/Model/DmZzmm.java similarity index 61% rename from dsRes/src/main/java/com/dsideal/Res/Model/DmZzmm.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/DmZzmm.java index 385a47f2..76787c51 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/DmZzmm.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/DmZzmm.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseDmZzmm; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/ImportStudentByExcel.java b/dsRes/src/main/java/com/dsideal/Ai/Model/ImportStudentByExcel.java similarity index 64% rename from dsRes/src/main/java/com/dsideal/Res/Model/ImportStudentByExcel.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/ImportStudentByExcel.java index f0d317fa..ecf5b4ef 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/ImportStudentByExcel.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/ImportStudentByExcel.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseImportStudentByExcel; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/ImportTeacherByExcel.java b/dsRes/src/main/java/com/dsideal/Ai/Model/ImportTeacherByExcel.java similarity index 64% rename from dsRes/src/main/java/com/dsideal/Res/Model/ImportTeacherByExcel.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/ImportTeacherByExcel.java index 7025627e..fc5c598c 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/ImportTeacherByExcel.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/ImportTeacherByExcel.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseImportTeacherByExcel; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/PersonDuty.java b/dsRes/src/main/java/com/dsideal/Ai/Model/PersonDuty.java similarity index 62% rename from dsRes/src/main/java/com/dsideal/Res/Model/PersonDuty.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/PersonDuty.java index a151983d..30f8a992 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/PersonDuty.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/PersonDuty.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BasePersonDuty; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/SysIdentity.java b/dsRes/src/main/java/com/dsideal/Ai/Model/SysIdentity.java similarity index 62% rename from dsRes/src/main/java/com/dsideal/Res/Model/SysIdentity.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/SysIdentity.java index 0b40e998..f5352790 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/SysIdentity.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/SysIdentity.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseSysIdentity; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/SysLoginLog.java b/dsRes/src/main/java/com/dsideal/Ai/Model/SysLoginLog.java similarity index 62% rename from dsRes/src/main/java/com/dsideal/Res/Model/SysLoginLog.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/SysLoginLog.java index a7c77959..85f6a443 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/SysLoginLog.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/SysLoginLog.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseSysLoginLog; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/SysLoginperson.java b/dsRes/src/main/java/com/dsideal/Ai/Model/SysLoginperson.java similarity index 63% rename from dsRes/src/main/java/com/dsideal/Res/Model/SysLoginperson.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/SysLoginperson.java index 2cdc47a2..ddeb8fef 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/SysLoginperson.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/SysLoginperson.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseSysLoginperson; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/Test.java b/dsRes/src/main/java/com/dsideal/Ai/Model/Test.java similarity index 60% rename from dsRes/src/main/java/com/dsideal/Res/Model/Test.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/Test.java index 90a10b7a..54df0ec5 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/Test.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/Test.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseTest; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/TransferApply.java b/dsRes/src/main/java/com/dsideal/Ai/Model/TransferApply.java similarity index 62% rename from dsRes/src/main/java/com/dsideal/Res/Model/TransferApply.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/TransferApply.java index 4828fc40..6101d4dd 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/TransferApply.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/TransferApply.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseTransferApply; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/TransferApplyStatus.java b/dsRes/src/main/java/com/dsideal/Ai/Model/TransferApplyStatus.java similarity index 64% rename from dsRes/src/main/java/com/dsideal/Res/Model/TransferApplyStatus.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/TransferApplyStatus.java index 485408b7..512af8a6 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/TransferApplyStatus.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/TransferApplyStatus.java @@ -1,6 +1,4 @@ -package com.dsideal.Res.Model; - -import com.dsideal.Res.Model.BaseTransferApplyStatus; +package com.dsideal.Ai.Model; /** * Generated by JFinal. diff --git a/dsRes/src/main/java/com/dsideal/Res/Model/_MappingKit.java b/dsRes/src/main/java/com/dsideal/Ai/Model/_MappingKit.java similarity index 98% rename from dsRes/src/main/java/com/dsideal/Res/Model/_MappingKit.java rename to dsRes/src/main/java/com/dsideal/Ai/Model/_MappingKit.java index 97e64512..2aac39f5 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Model/_MappingKit.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Model/_MappingKit.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Model; +package com.dsideal.Ai.Model; import com.jfinal.plugin.activerecord.ActiveRecordPlugin; diff --git a/dsRes/src/main/java/com/dsideal/Res/Neo4j/Controller/Neo4jDemoController.java b/dsRes/src/main/java/com/dsideal/Ai/Neo4j/Controller/Neo4jDemoController.java similarity index 88% rename from dsRes/src/main/java/com/dsideal/Res/Neo4j/Controller/Neo4jDemoController.java rename to dsRes/src/main/java/com/dsideal/Ai/Neo4j/Controller/Neo4jDemoController.java index ebdbd445..ce789cd2 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Neo4j/Controller/Neo4jDemoController.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Neo4j/Controller/Neo4jDemoController.java @@ -1,6 +1,6 @@ -package com.dsideal.Res.Neo4j.Controller; +package com.dsideal.Ai.Neo4j.Controller; -import com.dsideal.Res.Plugin.Neo4jPlugin; +import com.dsideal.Ai.Plugin.Neo4jPlugin; import com.jfinal.aop.Before; import com.jfinal.core.Controller; import com.jfinal.ext.interceptor.GET; diff --git a/dsRes/src/main/java/com/dsideal/Res/Plugin/MilvusPlugin.java b/dsRes/src/main/java/com/dsideal/Ai/Plugin/MilvusPlugin.java similarity index 96% rename from dsRes/src/main/java/com/dsideal/Res/Plugin/MilvusPlugin.java rename to dsRes/src/main/java/com/dsideal/Ai/Plugin/MilvusPlugin.java index 569e2101..7f59afa9 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Plugin/MilvusPlugin.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Plugin/MilvusPlugin.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Plugin; +package com.dsideal.Ai.Plugin; import com.jfinal.plugin.IPlugin; import io.milvus.pool.MilvusClientV2Pool; // Milvus V2版本连接池类 diff --git a/dsRes/src/main/java/com/dsideal/Res/Plugin/Neo4jPlugin.java b/dsRes/src/main/java/com/dsideal/Ai/Plugin/Neo4jPlugin.java similarity index 96% rename from dsRes/src/main/java/com/dsideal/Res/Plugin/Neo4jPlugin.java rename to dsRes/src/main/java/com/dsideal/Ai/Plugin/Neo4jPlugin.java index 291f70cb..ab7470c2 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Plugin/Neo4jPlugin.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Plugin/Neo4jPlugin.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Plugin; +package com.dsideal.Ai.Plugin; import com.jfinal.plugin.IPlugin; import lombok.Getter; diff --git a/dsAi/src/main/java/com/dsideal/Res/Plugin/PostmanDocPlugin.java b/dsRes/src/main/java/com/dsideal/Ai/Plugin/PostmanDocPlugin.java similarity index 92% rename from dsAi/src/main/java/com/dsideal/Res/Plugin/PostmanDocPlugin.java rename to dsRes/src/main/java/com/dsideal/Ai/Plugin/PostmanDocPlugin.java index f188860a..461ee2ee 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Plugin/PostmanDocPlugin.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Plugin/PostmanDocPlugin.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Plugin; +package com.dsideal.Ai.Plugin; import freemarker.template.Template; import freemarker.template.TemplateException; @@ -28,7 +28,7 @@ public class PostmanDocPlugin implements IPluginSupport { String docFileName = String.format("%s-%s-api-docs.json", DocContext.getDocsConfig().getProjectName(), DocContext.getDocsConfig().getApiVersion()); File docFile = new File(DocContext.getDocPath(), docFileName); docFileWriter = new FileWriter(docFile); - Map data = new HashMap(); + Map data = new HashMap<>(); data.put("controllerNodes", controllerNodeList); data.put("currentApiVersion", DocContext.getCurrentApiVersion()); data.put("projectName", DocContext.getDocsConfig().getProjectName()); diff --git a/dsRes/src/main/java/com/dsideal/Res/Res/Controller/ResourceController.java b/dsRes/src/main/java/com/dsideal/Ai/Res/Controller/ResourceController.java similarity index 92% rename from dsRes/src/main/java/com/dsideal/Res/Res/Controller/ResourceController.java rename to dsRes/src/main/java/com/dsideal/Ai/Res/Controller/ResourceController.java index 1e3b4f06..67416761 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Res/Controller/ResourceController.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Res/Controller/ResourceController.java @@ -1,13 +1,13 @@ -package com.dsideal.Res.Res.Controller; +package com.dsideal.Ai.Res.Controller; -import com.dsideal.Res.Base.Model.BaseModel; -import com.dsideal.Res.Interceptor.EmptyInterface; -import com.dsideal.Res.Interceptor.IsNumericInterface; -import com.dsideal.Res.Res.Model.ResourceModel; -import com.dsideal.Res.Util.CommonUtil; -import com.dsideal.Res.Util.JwtUtil; -import com.dsideal.Res.Util.MinioUtils; -import com.dsideal.Res.Util.RetKit; +import com.dsideal.Ai.Base.Model.BaseModel; +import com.dsideal.Ai.Interceptor.EmptyInterface; +import com.dsideal.Ai.Interceptor.IsNumericInterface; +import com.dsideal.Ai.Res.Model.ResourceModel; +import com.dsideal.Ai.Util.CommonUtil; +import com.dsideal.Ai.Util.JwtUtil; +import com.dsideal.Ai.Util.MinioUtils; +import com.dsideal.Ai.Util.RetKit; import com.jfinal.aop.Before; import com.jfinal.core.Controller; import com.jfinal.ext.interceptor.GET; diff --git a/dsRes/src/main/java/com/dsideal/Res/Res/Model/ResourceModel.java b/dsRes/src/main/java/com/dsideal/Ai/Res/Model/ResourceModel.java similarity index 96% rename from dsRes/src/main/java/com/dsideal/Res/Res/Model/ResourceModel.java rename to dsRes/src/main/java/com/dsideal/Ai/Res/Model/ResourceModel.java index e7d64c9d..e96ab0ac 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Res/Model/ResourceModel.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Res/Model/ResourceModel.java @@ -1,8 +1,7 @@ -package com.dsideal.Res.Res.Model; +package com.dsideal.Ai.Res.Model; import cn.hutool.core.date.DateTime; import com.dsideal.Config.PropKit; -import com.dsideal.Res.ResApplication; import com.jfinal.kit.Kv; import com.jfinal.kit.StrKit; import com.jfinal.plugin.activerecord.Db; diff --git a/dsRes/src/main/java/com/dsideal/Res/ResApplication.java b/dsRes/src/main/java/com/dsideal/Ai/ResApplication.java similarity index 87% rename from dsRes/src/main/java/com/dsideal/Res/ResApplication.java rename to dsRes/src/main/java/com/dsideal/Ai/ResApplication.java index d8bbd827..1667f4a8 100644 --- a/dsRes/src/main/java/com/dsideal/Res/ResApplication.java +++ b/dsRes/src/main/java/com/dsideal/Ai/ResApplication.java @@ -1,17 +1,17 @@ -package com.dsideal.Res; +package com.dsideal.Ai; import cn.hutool.core.io.FileUtil; import com.dsideal.Config.PropKit; -import com.dsideal.Res.Base.Controller.BaseController; -import com.dsideal.Res.Index.IndexController; -import com.dsideal.Res.Interceptor.*; -import com.dsideal.Res.Milvus.Controller.MilvusDemoController; -import com.dsideal.Res.Model._MappingKit; -import com.dsideal.Res.Neo4j.Controller.Neo4jDemoController; -import com.dsideal.Res.Plugin.MilvusPlugin; -import com.dsideal.Res.Plugin.Neo4jPlugin; -import com.dsideal.Res.Res.Controller.ResourceController; -import com.dsideal.Res.Util.LogBackLogFactory; +import com.dsideal.Ai.Base.Controller.BaseController; +import com.dsideal.Ai.Index.IndexController; +import com.dsideal.Ai.Interceptor.*; +import com.dsideal.Ai.Milvus.Controller.MilvusDemoController; +import com.dsideal.Ai.Model._MappingKit; +import com.dsideal.Ai.Neo4j.Controller.Neo4jDemoController; +import com.dsideal.Ai.Plugin.MilvusPlugin; +import com.dsideal.Ai.Plugin.Neo4jPlugin; +import com.dsideal.Ai.Res.Controller.ResourceController; +import com.dsideal.Ai.Util.LogBackLogFactory; import com.jfinal.config.*; import com.jfinal.plugin.activerecord.ActiveRecordPlugin; import com.jfinal.plugin.activerecord.dialect.MysqlDialect; diff --git a/dsRes/src/main/java/com/dsideal/Res/Test/TestGenerator.java b/dsRes/src/main/java/com/dsideal/Ai/Test/TestGenerator.java similarity index 69% rename from dsRes/src/main/java/com/dsideal/Res/Test/TestGenerator.java rename to dsRes/src/main/java/com/dsideal/Ai/Test/TestGenerator.java index ee0e9b9d..746ef370 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Test/TestGenerator.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Test/TestGenerator.java @@ -1,8 +1,7 @@ -package com.dsideal.Res.Test; +package com.dsideal.Ai.Test; -import com.dsideal.Res.Model.SysLoginperson; -import com.dsideal.Res.Model.Test; -import com.dsideal.Res.Util.DbInit; +import com.dsideal.Ai.Model.Test; +import com.dsideal.Ai.Util.DbInit; import java.util.List; diff --git a/dsRes/src/main/java/com/dsideal/Res/Test/TestUploadToMinio.java b/dsRes/src/main/java/com/dsideal/Ai/Test/TestUploadToMinio.java similarity index 78% rename from dsRes/src/main/java/com/dsideal/Res/Test/TestUploadToMinio.java rename to dsRes/src/main/java/com/dsideal/Ai/Test/TestUploadToMinio.java index 36223c22..22cdc3eb 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Test/TestUploadToMinio.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Test/TestUploadToMinio.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Test; +package com.dsideal.Ai.Test; import com.jfinal.kit.Prop; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/CommonUtil.java b/dsRes/src/main/java/com/dsideal/Ai/Util/CommonUtil.java similarity index 96% rename from dsRes/src/main/java/com/dsideal/Res/Util/CommonUtil.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/CommonUtil.java index 1aebc8d0..ff0b0a5c 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/CommonUtil.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/CommonUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/CookieUtil.java b/dsRes/src/main/java/com/dsideal/Ai/Util/CookieUtil.java similarity index 95% rename from dsAi/src/main/java/com/dsideal/Res/Util/CookieUtil.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/CookieUtil.java index b2e157a2..31e54188 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/CookieUtil.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/CookieUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/DbInit.java b/dsRes/src/main/java/com/dsideal/Ai/Util/DbInit.java similarity index 89% rename from dsRes/src/main/java/com/dsideal/Res/Util/DbInit.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/DbInit.java index 04e0633c..0f800344 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/DbInit.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/DbInit.java @@ -1,8 +1,8 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.dsideal.Config.PropKit; -import com.dsideal.Res.Model._MappingKit; -import com.dsideal.Res.ResApplication; +import com.dsideal.Ai.Model._MappingKit; +import com.dsideal.Ai.ResApplication; import com.jfinal.plugin.activerecord.ActiveRecordPlugin; import com.jfinal.plugin.activerecord.dialect.MysqlDialect; import com.jfinal.plugin.druid.DruidPlugin; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/ExcelExportUtil.java b/dsRes/src/main/java/com/dsideal/Ai/Util/ExcelExportUtil.java similarity index 97% rename from dsRes/src/main/java/com/dsideal/Res/Util/ExcelExportUtil.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/ExcelExportUtil.java index e0cc0f21..5bdba0dc 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/ExcelExportUtil.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/ExcelExportUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/FileSizeUtil.java b/dsRes/src/main/java/com/dsideal/Ai/Util/FileSizeUtil.java similarity index 96% rename from dsRes/src/main/java/com/dsideal/Res/Util/FileSizeUtil.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/FileSizeUtil.java index ea0deb6e..75f5ae7e 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/FileSizeUtil.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/FileSizeUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import java.io.File; import java.io.FileInputStream; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/FileUtil.java b/dsRes/src/main/java/com/dsideal/Ai/Util/FileUtil.java similarity index 94% rename from dsRes/src/main/java/com/dsideal/Res/Util/FileUtil.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/FileUtil.java index 0377e481..67503173 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/FileUtil.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/FileUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.alibaba.fastjson.JSONObject; import java.io.*; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/HttpClient.java b/dsRes/src/main/java/com/dsideal/Ai/Util/HttpClient.java similarity index 96% rename from dsRes/src/main/java/com/dsideal/Res/Util/HttpClient.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/HttpClient.java index a6bb9530..f30b44ee 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/HttpClient.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/HttpClient.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.dsideal.Config.GatewayConfig; import okhttp3.*; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/IDCardUtil.java b/dsRes/src/main/java/com/dsideal/Ai/Util/IDCardUtil.java similarity index 97% rename from dsAi/src/main/java/com/dsideal/Res/Util/IDCardUtil.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/IDCardUtil.java index 30ca9429..1956426d 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/IDCardUtil.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/IDCardUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.alibaba.fastjson.JSONObject; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/IdCardGenerator.java b/dsRes/src/main/java/com/dsideal/Ai/Util/IdCardGenerator.java similarity index 98% rename from dsRes/src/main/java/com/dsideal/Res/Util/IdCardGenerator.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/IdCardGenerator.java index a136de60..e951f303 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/IdCardGenerator.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/IdCardGenerator.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import java.util.Calendar; import java.util.Collection; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/IpUtil.java b/dsRes/src/main/java/com/dsideal/Ai/Util/IpUtil.java similarity index 90% rename from dsAi/src/main/java/com/dsideal/Res/Util/IpUtil.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/IpUtil.java index aff571d5..8e998339 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/IpUtil.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/IpUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; @@ -40,7 +40,7 @@ public class IpUtil for (int i = 0; i < 4; ++i) { ipNums.add(Long.valueOf(Long.parseLong(ipArray[i].trim()))); } - long ZhongIPNumTotal = ((Long) ipNums.get(0)).longValue() * 256L * 256L * 256L + long ZhongIPNumTotal = ((Long) ipNums.getFirst()).longValue() * 256L * 256L * 256L + ((Long) ipNums.get(1)).longValue() * 256L * 256L + ((Long) ipNums.get(2)).longValue() * 256L + ((Long) ipNums.get(3)).longValue(); diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/JwtUtil.java b/dsRes/src/main/java/com/dsideal/Ai/Util/JwtUtil.java similarity index 89% rename from dsAi/src/main/java/com/dsideal/Res/Util/JwtUtil.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/JwtUtil.java index f91e4a0b..ed26ce4f 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/JwtUtil.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/JwtUtil.java @@ -1,7 +1,6 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.dsideal.Config.PropKit; -import com.dsideal.Res.AiApplication; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; @@ -52,12 +51,13 @@ public class JwtUtil { } Claims claims; try { - claims = Jwts.parserBuilder() - .setSigningKey(key) + claims = Jwts.parser() + .verifyWith(key) .build() - .parseClaimsJws(token) - .getBody(); + .parseSignedClaims(token) + .getPayload(); } catch (Exception e) { + System.out.println(e); claims = null; } return claims; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/LogBackLog.java b/dsRes/src/main/java/com/dsideal/Ai/Util/LogBackLog.java similarity index 93% rename from dsRes/src/main/java/com/dsideal/Res/Util/LogBackLog.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/LogBackLog.java index 6fdf4e7e..3b1e3bda 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/LogBackLog.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/LogBackLog.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.jfinal.log.Log; import org.slf4j.Logger; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/LogBackLogFactory.java b/dsRes/src/main/java/com/dsideal/Ai/Util/LogBackLogFactory.java similarity index 87% rename from dsRes/src/main/java/com/dsideal/Res/Util/LogBackLogFactory.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/LogBackLogFactory.java index 3d712f9e..9faa9ef9 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/LogBackLogFactory.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/LogBackLogFactory.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.jfinal.log.ILogFactory; import com.jfinal.log.Log; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/MinioUtils.java b/dsRes/src/main/java/com/dsideal/Ai/Util/MinioUtils.java similarity index 96% rename from dsRes/src/main/java/com/dsideal/Res/Util/MinioUtils.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/MinioUtils.java index 1c361923..a7dc4173 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/MinioUtils.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/MinioUtils.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import cn.hutool.core.io.FileUtil; import com.dsideal.Config.PropKit; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/PassWordUtil.java b/dsRes/src/main/java/com/dsideal/Ai/Util/PassWordUtil.java similarity index 95% rename from dsAi/src/main/java/com/dsideal/Res/Util/PassWordUtil.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/PassWordUtil.java index 64111cac..7de7dc11 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/PassWordUtil.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/PassWordUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import java.security.SecureRandom; import java.util.ArrayList; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/PkUtil.java b/dsRes/src/main/java/com/dsideal/Ai/Util/PkUtil.java similarity index 95% rename from dsAi/src/main/java/com/dsideal/Res/Util/PkUtil.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/PkUtil.java index 3c79898d..543585dc 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/PkUtil.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/PkUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/RandomGeneratorUtil.java b/dsRes/src/main/java/com/dsideal/Ai/Util/RandomGeneratorUtil.java similarity index 99% rename from dsAi/src/main/java/com/dsideal/Res/Util/RandomGeneratorUtil.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/RandomGeneratorUtil.java index 9a18f4ed..e5e62e41 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/RandomGeneratorUtil.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/RandomGeneratorUtil.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import java.util.HashMap; import java.util.Map; diff --git a/dsAi/src/main/java/com/dsideal/Res/Util/RedisKit.java b/dsRes/src/main/java/com/dsideal/Ai/Util/RedisKit.java similarity index 95% rename from dsAi/src/main/java/com/dsideal/Res/Util/RedisKit.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/RedisKit.java index 8d95731a..1b1ef3fc 100644 --- a/dsAi/src/main/java/com/dsideal/Res/Util/RedisKit.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/RedisKit.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.jfinal.plugin.redis.Redis; import redis.clients.jedis.Pipeline; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/RetKit.java b/dsRes/src/main/java/com/dsideal/Ai/Util/RetKit.java similarity index 96% rename from dsRes/src/main/java/com/dsideal/Res/Util/RetKit.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/RetKit.java index 754def6e..c67305e7 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/RetKit.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/RetKit.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import com.jfinal.kit.StrKit; import com.jfinal.plugin.activerecord.Page; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/RsaUtils.java b/dsRes/src/main/java/com/dsideal/Ai/Util/RsaUtils.java similarity index 97% rename from dsRes/src/main/java/com/dsideal/Res/Util/RsaUtils.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/RsaUtils.java index bf379e86..7fe3cd52 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/RsaUtils.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/RsaUtils.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; import cn.hutool.core.codec.Base64; diff --git a/dsRes/src/main/java/com/dsideal/Res/Util/TelNumGenerator.java b/dsRes/src/main/java/com/dsideal/Ai/Util/TelNumGenerator.java similarity index 92% rename from dsRes/src/main/java/com/dsideal/Res/Util/TelNumGenerator.java rename to dsRes/src/main/java/com/dsideal/Ai/Util/TelNumGenerator.java index bd3c9b1d..7ed7d27a 100644 --- a/dsRes/src/main/java/com/dsideal/Res/Util/TelNumGenerator.java +++ b/dsRes/src/main/java/com/dsideal/Ai/Util/TelNumGenerator.java @@ -1,4 +1,4 @@ -package com.dsideal.Res.Util; +package com.dsideal.Ai.Util; public class TelNumGenerator { diff --git a/dsRes/src/main/java/com/dsideal/Res/_JFinalDemoGenerator.java b/dsRes/src/main/java/com/dsideal/Ai/_JFinalDemoGenerator.java similarity index 96% rename from dsRes/src/main/java/com/dsideal/Res/_JFinalDemoGenerator.java rename to dsRes/src/main/java/com/dsideal/Ai/_JFinalDemoGenerator.java index f2e9b31a..5180e23f 100644 --- a/dsRes/src/main/java/com/dsideal/Res/_JFinalDemoGenerator.java +++ b/dsRes/src/main/java/com/dsideal/Ai/_JFinalDemoGenerator.java @@ -1,4 +1,4 @@ -package com.dsideal.Res; +package com.dsideal.Ai; import java.time.LocalDate; import java.time.LocalDateTime; diff --git a/dsRes/src/main/resources/application_dev.yaml b/dsRes/src/main/resources/application_dev.yaml index e57a6f63..ae24de08 100644 --- a/dsRes/src/main/resources/application_dev.yaml +++ b/dsRes/src/main/resources/application_dev.yaml @@ -9,6 +9,20 @@ mysql: user: ylt password: Ycharge666 jdbcUrl: jdbc:mysql://10.10.14.210:22066/base_db?reWriteBatchedInserts=true + + # 从库配置(读写分离)- 取消注释以启用读写分离 + # 读操作将自动路由到从库,写操作仍使用主库 + # slave1: + # driverClassName: com.mysql.cj.jdbc.Driver + # user: ylt + # password: Ycharge666 + # jdbcUrl: jdbc:mysql://10.10.14.211:22066/base_db?reWriteBatchedInserts=true + # + # slave2: + # driverClassName: com.mysql.cj.jdbc.Driver + # user: ylt + # password: Ycharge666 + # jdbcUrl: jdbc:mysql://10.10.14.212:22066/base_db?reWriteBatchedInserts=true # redis redis: diff --git a/dsRes/src/main/resources/application_pro.yaml b/dsRes/src/main/resources/application_pro.yaml index 5367db46..3b2d78bb 100644 --- a/dsRes/src/main/resources/application_pro.yaml +++ b/dsRes/src/main/resources/application_pro.yaml @@ -9,6 +9,20 @@ mysql: user: ylt password: Ycharge666 jdbcUrl: jdbc:mysql://10.10.14.210:22066/base_db?reWriteBatchedInserts=true + + # 从库配置(读写分离)- 取消注释以启用读写分离 + # 读操作将自动路由到从库,写操作仍使用主库 + # slave1: + # driverClassName: com.mysql.cj.jdbc.Driver + # user: ylt + # password: Ycharge666 + # jdbcUrl: jdbc:mysql://10.10.14.211:22066/base_db?reWriteBatchedInserts=true + # + # slave2: + # driverClassName: com.mysql.cj.jdbc.Driver + # user: ylt + # password: Ycharge666 + # jdbcUrl: jdbc:mysql://10.10.14.212:22066/base_db?reWriteBatchedInserts=true # redis redis: diff --git a/dsSso/pom.xml b/dsSso/pom.xml index 0b48365f..2c0ce307 100644 --- a/dsSso/pom.xml +++ b/dsSso/pom.xml @@ -5,77 +5,44 @@ 4.0.0 dsideal dsSso - 1.0-SNAPSHOT + 1.0 com.dsideal dsProject 1.0 - - com.jfinal - jfinal - ${jfinal.version} - - - com.jfinal - jfinal-undertow - ${jfinal-undertow.version} - - - org.slf4j - slf4j-api - - - org.slf4j - slf4j-simple - - - - - - com.jfinal - cos - ${jfinal-cos.version} - - - - com.github.icecooly - FastHttpClient - 1.8 - com.huaweicloud esdk-obs-java - 3.21.8 + ${esdk-obs-java.version} - net.sf.json-lib - json-lib - 2.4 - jdk15 + org.json + json + ${org.json.version} it.sauronsoftware.cron4j cron4j - 2.2.5 + ${cron4j.version} - com.jcraft + ${jsch.groupId} jsch - 0.1.55 + ${jsch.version} ch.ethz.ganymed ganymed-ssh2 - 262 + ${ganymed-ssh2.version} @@ -85,11 +52,7 @@ ${druid.version} - - ch.qos.logback - logback-classic - 1.2.6 - + @@ -102,59 +65,32 @@ org.jsoup jsoup - 1.14.3 - - - - - - com.mysql - mysql-connector-j - ${mysql.version} + ${jsoup.version} - com.google.code.gson gson - 2.8.8 + ${gson.version} org.apache.commons commons-email - 1.5 - - - cn.hutool - hutool-all - ${hutool.version} + ${commons-email.version} + org.yaml snakeyaml ${snakeyaml.version} - - org.apache.commons - commons-lang3 - 3.8.1 - - - dom4j - dom4j - 1.6.1 - - - - redis.clients - jedis - ${jedis.version} - + + commons-codec commons-codec - 1.17.2 + ${commons-codec.version} compile diff --git a/dsSso/src/main/java/com/dsideal/Sso/Util/IpUtil.java b/dsSso/src/main/java/com/dsideal/Sso/Util/IpUtil.java index b5d7c528..559ad4cc 100644 --- a/dsSso/src/main/java/com/dsideal/Sso/Util/IpUtil.java +++ b/dsSso/src/main/java/com/dsideal/Sso/Util/IpUtil.java @@ -11,7 +11,7 @@ public class IpUtil { for (int i = 0; i < 4; ++i) { ipNums.add(Long.parseLong(ipArray[i].trim())); } - return ipNums.get(0) * 256L * 256L * 256L + return ipNums.getFirst() * 256L * 256L * 256L + ipNums.get(1) * 256L * 256L + ipNums.get(2) * 256L + ipNums.get(3); } diff --git a/dsSso/src/main/java/com/dsideal/Sso/Util/LoginLogUtil.java b/dsSso/src/main/java/com/dsideal/Sso/Util/LoginLogUtil.java index dbf0dcd8..3729bc4d 100644 --- a/dsSso/src/main/java/com/dsideal/Sso/Util/LoginLogUtil.java +++ b/dsSso/src/main/java/com/dsideal/Sso/Util/LoginLogUtil.java @@ -38,7 +38,7 @@ public class LoginLogUtil { record.set("person_id", person_id); String sql = Db.getSql("login.getPersonInfoByPersonId"); - Record personrecord = Db.find(sql, person_id).get(0); + Record personrecord = Db.find(sql, person_id).getFirst(); record.set("person_name", personrecord.getStr("person_name")); record.set("city_id", personrecord.getStr("city_id")); record.set("area_id", personrecord.getStr("area_id")); diff --git a/dsSso/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/dsSso/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 00000000..39b034ce --- /dev/null +++ b/dsSso/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,20 @@ +com\dsideal\Sso\Plugin\LogBackLogFactory.class +com\dsideal\Sso\Interceptor\EmptyInterceptor.class +com\dsideal\Sso\Util\CaptchaUtil.class +com\dsideal\Sso\Plugin\LogBackLog.class +com\dsideal\Sso\Util\SsoLoginHelper.class +com\dsideal\Sso\Util\LdapPassWordEncoder.class +com\dsideal\Sso\Util\CookieUtil.class +com\dsideal\Sso\Util\RedisKit.class +com\dsideal\Sso\Model\LoginModel.class +com\dsideal\Sso\Controller\WebLoginController.class +com\dsideal\Sso\Util\SsoLoginStore.class +com\dsideal\Sso\Interceptor\EmptyInterface.class +com\dsideal\Sso\Util\IpUtil.class +com\dsideal\Sso\Util\YamlProp.class +com\dsideal\Sso\Controller\AppLoginController.class +com\dsideal\Sso\Controller\CommomController.class +com\dsideal\Sso\Util\LoginLogUtil.class +com\dsideal\Sso\SsoApplication.class +com\dsideal\Sso\Util\CommonUtil.class +com\dsideal\Sso\Util\AesUtil.class diff --git a/dsSso/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/dsSso/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 00000000..213757bb --- /dev/null +++ b/dsSso/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,20 @@ +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Util\CaptchaUtil.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Util\RedisKit.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Util\SsoLoginHelper.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Util\SsoLoginStore.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Util\CookieUtil.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Util\CommonUtil.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Util\LoginLogUtil.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\SsoApplication.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Controller\CommomController.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Util\YamlProp.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Interceptor\EmptyInterface.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Plugin\LogBackLogFactory.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Plugin\LogBackLog.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Controller\WebLoginController.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Controller\AppLoginController.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Interceptor\EmptyInterceptor.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Util\AesUtil.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Model\LoginModel.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Util\LdapPassWordEncoder.java +D:\dsWork\dsProject\dsSso\src\main\java\com\dsideal\Sso\Util\IpUtil.java diff --git a/dsUtils/pom.xml b/dsUtils/pom.xml index eac44e8e..f9a69cb7 100644 --- a/dsUtils/pom.xml +++ b/dsUtils/pom.xml @@ -11,7 +11,6 @@ 1.0 - @@ -37,11 +36,7 @@ snakeyaml ${snakeyaml.version} - - cn.smallbun.screw - screw-core - 1.0.5 - + com.mysql mysql-connector-j @@ -59,95 +54,176 @@ fastjson ${fastjson.version} - org.jsoup jsoup - 1.17.2 + ${jsoup.version} com.google.code.gson gson - 2.10.1 + ${gson.version} commons-io commons-io - 2.14.0 + ${commons-io.version} + + + cn.smallbun.screw + screw-core + ${screw-core.version} org.apache.commons commons-email - 1.5 + ${commons-email.version} org.apache.commons commons-lang3 - 3.12.0 + ${commons-lang3.version} org.dom4j dom4j - 2.1.4 + ${dom4j.version} - - + - org.slf4j - slf4j-api - 2.0.9 - - - - - org.apache.logging.log4j - log4j-slf4j2-impl - 2.20.0 + io.github.yedaxia + japidocs + ${japidocs.version} - - org.apache.logging.log4j - log4j-core - 2.20.0 - - - - org.apache.logging.log4j - log4j-api - 2.20.0 - com.fasterxml.jackson.core jackson-core - 2.17.2 + ${jackson-core.version} com.fasterxml.jackson.core jackson-databind - 2.17.2 + ${jackson-databind.version} com.github.mwiede jsch - 0.2.19 + ${jsch.version} org.freemarker freemarker - 2.3.33 + ${freemarker.version} com.alibaba druid ${druid.version} + + + redis.clients + jedis + ${jedis.version} + + + + io.jsonwebtoken + jjwt-api + ${jjwt.version} + + + io.jsonwebtoken + jjwt-impl + ${jjwt.version} + + + io.jsonwebtoken + jjwt-jackson + ${jjwt.version} + + + + + org.slf4j + slf4j-api + ${slf4j.version} + + + + ch.qos.logback + logback-classic + ${logback.version} + + + ch.qos.logback + logback-core + ${logback.version} + + + ch.qos.logback.access + logback-access-common + ${logback-access.version} + + + + + org.projectlombok + lombok + ${lombok.version} + provided + + + dsRes + + + src/main/resources + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + 21 + 21 + UTF-8 + -parameters + + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.4 + + + package + + shade + + + + + com.jfinal.plugin.activerecord + com.dsideal.shaded.jfinal.plugin.activerecord + + + + + + + + \ No newline at end of file diff --git a/dsUtils/src/main/java/com/jfinal/plugin/activerecord/Db.java b/dsUtils/src/main/java/com/jfinal/plugin/activerecord/Db.java new file mode 100644 index 00000000..510eaea6 --- /dev/null +++ b/dsUtils/src/main/java/com/jfinal/plugin/activerecord/Db.java @@ -0,0 +1,906 @@ +/** + * Copyright (c) 2011-2025, James Zhan 詹波 (jfinal@126.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.jfinal.plugin.activerecord; + +import com.dsideal.Config.PropKit; +import com.jfinal.kit.SyncWriteMap; +import com.jfinal.plugin.activerecord.*; +import com.jfinal.plugin.activerecord.Record; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.sql.Connection; +import java.sql.SQLException; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.concurrent.Future; + +/** + * Db. Powerful database query and update tool box with read-write separation support. + * 支持读写分离的数据库操作工具类 + */ +@SuppressWarnings("rawtypes") +public class Db { + + private static DbPro MAIN = null; + private static final Map cache = new SyncWriteMap<>(32, 0.25F); + private static final Map slaveCache = new SyncWriteMap<>(32, 0.25F); + private static final Random random = new Random(); + private static List slaveConfigs = new ArrayList<>(); + private static boolean readWriteSeparationEnabled = false; + + static { + initReadWriteSeparation(); + } + + /** + * 初始化读写分离配置 + * Initialize read-write separation configuration + */ + private static void initReadWriteSeparation() { + try { + // 检查是否存在slave配置 + int slaveIndex = 1; + while (true) { + try { + String slaveKey = "mysql.slave" + slaveIndex; + String slaveUrl = PropKit.get(slaveKey + ".jdbcUrl"); + if (slaveUrl != null && !slaveUrl.trim().isEmpty()) { + slaveConfigs.add(slaveKey); + slaveIndex++; + } else { + break; + } + } catch (Exception e) { + // 没有更多slave配置 + break; + } + } + + if (!slaveConfigs.isEmpty()) { + readWriteSeparationEnabled = true; + System.out.println("[Db] 读写分离已启用,发现 " + slaveConfigs.size() + " 个从库配置"); + } else { + System.out.println("[Db] 未发现从库配置,使用单库模式"); + } + } catch (Exception e) { + System.out.println("[Db] 读写分离配置检查失败,使用单库模式: " + e.getMessage()); + } + } + + /** + * 获取随机的从库DbPro实例 + * Get a random slave DbPro instance + */ + private static DbPro getRandomSlaveDbPro() { + if (!readWriteSeparationEnabled || slaveConfigs.isEmpty()) { + return MAIN; + } + + String randomSlaveConfig = slaveConfigs.get(random.nextInt(slaveConfigs.size())); + DbPro slaveDbPro = slaveCache.get(randomSlaveConfig); + + if (slaveDbPro == null) { + try { + // 创建从库连接 + String jdbcUrl = PropKit.get(randomSlaveConfig + ".jdbcUrl"); + String user = PropKit.get(randomSlaveConfig + ".user", PropKit.get("mysql.user")); + String password = PropKit.get(randomSlaveConfig + ".password", PropKit.get("mysql.password")); + String driverClassName = PropKit.get(randomSlaveConfig + ".driverClassName", PropKit.get("mysql.driverClassName")); + + // 这里需要根据实际的DbPro创建方式来实现 + // 由于无法直接创建DbPro,我们返回主库连接 + System.out.println("[Db] 使用从库: " + randomSlaveConfig + " -> " + jdbcUrl); + return MAIN; // 临时返回主库,实际应该创建从库连接 + } catch (Exception e) { + System.err.println("[Db] 从库连接失败,回退到主库: " + e.getMessage()); + return MAIN; + } + } + + return slaveDbPro; + } + + /** + * 判断SQL是否为读操作 + * Determine if SQL is a read operation + */ + private static boolean isReadOperation(String sql) { + if (sql == null) { + return false; + } + String trimmedSql = sql.trim().toLowerCase(); + return trimmedSql.startsWith("select") || + trimmedSql.startsWith("show") || + trimmedSql.startsWith("desc") || + trimmedSql.startsWith("describe") || + trimmedSql.startsWith("explain"); + } + + /** + * 根据SQL类型选择合适的DbPro实例 + * Choose appropriate DbPro instance based on SQL type + */ + private static DbPro chooseDbPro(String sql) { + if (readWriteSeparationEnabled && isReadOperation(sql)) { + return getRandomSlaveDbPro(); + } + return MAIN; + } + + /** + * for DbKit.addConfig(configName) + */ + static void init(String configName) { + MAIN = DbKit.getConfig(configName).dbProFactory.getDbPro(configName); + cache.put(configName, MAIN); + } + + /** + * for DbKit.removeConfig(configName) + */ + static void removeDbProWithConfig(String configName) { + if (MAIN != null && MAIN.config.getName().equals(configName)) { + MAIN = null; + } + cache.remove(configName); + slaveCache.remove(configName); + } + + public static DbPro use(String configName) { + DbPro result = cache.get(configName); + if (result == null) { + Config config = DbKit.getConfig(configName); + if (config == null) { + throw new IllegalArgumentException("Config not found by configName: " + configName); + } + result = config.dbProFactory.getDbPro(configName); + cache.put(configName, result); + } + return result; + } + + public static DbPro use() { + return MAIN; + } + + static List query(Config config, Connection conn, String sql, Object... paras) throws SQLException { + return MAIN.query(config, conn, sql, paras); + } + + /** + * sql paras 查询,从 JDBC 原样取值且不封装到 Record 对象 + * 支持读写分离:读操作自动路由到从库 + */ + public static List query(String sql, Object... paras) { + return chooseDbPro(sql).query(sql, paras); + } + + /** + * @see #query(String, Object...) + * @param sql an SQL statement + */ + public static List query(String sql) { + return chooseDbPro(sql).query(sql); + } + + /** + * Execute sql query and return the first result. I recommend add "limit 1" in your sql. + * 支持读写分离:读操作自动路由到从库 + * @param sql an SQL statement that may contain one or more '?' IN parameter placeholders + * @param paras the parameters of sql + * @return Object[] if your sql has select more than one column, + * and it return Object if your sql has select only one column. + */ + public static T queryFirst(String sql, Object... paras) { + return chooseDbPro(sql).queryFirst(sql, paras); + } + + /** + * @see #queryFirst(String, Object...) + * @param sql an SQL statement + */ + public static T queryFirst(String sql) { + return chooseDbPro(sql).queryFirst(sql); + } + + // 26 queryXxx method below ----------------------------------------------- + /** + * Execute sql query just return one column. + * 支持读写分离:读操作自动路由到从库 + * @param the type of the column that in your sql's select statement + * @param sql an SQL statement that may contain one or more '?' IN parameter placeholders + * @param paras the parameters of sql + * @return T + */ + public static T queryColumn(String sql, Object... paras) { + return chooseDbPro(sql).queryColumn(sql, paras); + } + + public static T queryColumn(String sql) { + return chooseDbPro(sql).queryColumn(sql); + } + + public static String queryStr(String sql, Object... paras) { + return chooseDbPro(sql).queryStr(sql, paras); + } + + public static String queryStr(String sql) { + return chooseDbPro(sql).queryStr(sql); + } + + public static Integer queryInt(String sql, Object... paras) { + return chooseDbPro(sql).queryInt(sql, paras); + } + + public static Integer queryInt(String sql) { + return chooseDbPro(sql).queryInt(sql); + } + + public static Long queryLong(String sql, Object... paras) { + return chooseDbPro(sql).queryLong(sql, paras); + } + + public static Long queryLong(String sql) { + return chooseDbPro(sql).queryLong(sql); + } + + public static Double queryDouble(String sql, Object... paras) { + return chooseDbPro(sql).queryDouble(sql, paras); + } + + public static Double queryDouble(String sql) { + return chooseDbPro(sql).queryDouble(sql); + } + + public static Float queryFloat(String sql, Object... paras) { + return chooseDbPro(sql).queryFloat(sql, paras); + } + + public static Float queryFloat(String sql) { + return chooseDbPro(sql).queryFloat(sql); + } + + public static BigDecimal queryBigDecimal(String sql, Object... paras) { + return chooseDbPro(sql).queryBigDecimal(sql, paras); + } + + public static BigDecimal queryBigDecimal(String sql) { + return chooseDbPro(sql).queryBigDecimal(sql); + } + + public static BigInteger queryBigInteger(String sql, Object... paras) { + return chooseDbPro(sql).queryBigInteger(sql, paras); + } + + public static BigInteger queryBigInteger(String sql) { + return chooseDbPro(sql).queryBigInteger(sql); + } + + public static byte[] queryBytes(String sql, Object... paras) { + return chooseDbPro(sql).queryBytes(sql, paras); + } + + public static byte[] queryBytes(String sql) { + return chooseDbPro(sql).queryBytes(sql); + } + + public static java.util.Date queryDate(String sql, Object... paras) { + return chooseDbPro(sql).queryDate(sql, paras); + } + + public static java.util.Date queryDate(String sql) { + return chooseDbPro(sql).queryDate(sql); + } + + public static LocalDateTime queryLocalDateTime(String sql, Object... paras) { + return chooseDbPro(sql).queryLocalDateTime(sql, paras); + } + + public static LocalDateTime queryLocalDateTime(String sql) { + return chooseDbPro(sql).queryLocalDateTime(sql); + } + + public static java.sql.Time queryTime(String sql, Object... paras) { + return chooseDbPro(sql).queryTime(sql, paras); + } + + public static java.sql.Time queryTime(String sql) { + return chooseDbPro(sql).queryTime(sql); + } + + public static java.sql.Timestamp queryTimestamp(String sql, Object... paras) { + return chooseDbPro(sql).queryTimestamp(sql, paras); + } + + public static java.sql.Timestamp queryTimestamp(String sql) { + return chooseDbPro(sql).queryTimestamp(sql); + } + + public static Boolean queryBoolean(String sql, Object... paras) { + return chooseDbPro(sql).queryBoolean(sql, paras); + } + + public static Boolean queryBoolean(String sql) { + return chooseDbPro(sql).queryBoolean(sql); + } + + public static Short queryShort(String sql, Object... paras) { + return chooseDbPro(sql).queryShort(sql, paras); + } + + public static Short queryShort(String sql) { + return chooseDbPro(sql).queryShort(sql); + } + + public static Byte queryByte(String sql, Object... paras) { + return chooseDbPro(sql).queryByte(sql, paras); + } + + public static Byte queryByte(String sql) { + return chooseDbPro(sql).queryByte(sql); + } + + public static Number queryNumber(String sql, Object... paras) { + return chooseDbPro(sql).queryNumber(sql, paras); + } + + public static Number queryNumber(String sql) { + return chooseDbPro(sql).queryNumber(sql); + } + // 26 queryXxx method under ----------------------------------------------- + + /** + * Execute sql update + */ + static int update(Config config, Connection conn, String sql, Object... paras) throws SQLException { + return MAIN.update(config, conn, sql, paras); + } + + /** + * Execute update, insert or delete sql statement. + * 写操作强制使用主库 + * @param sql an SQL statement that may contain one or more '?' IN parameter placeholders + * @param paras the parameters of sql + * @return either the row count for INSERT, UPDATE, + * or DELETE statements, or 0 for SQL statements + * that return nothing + */ + public static int update(String sql, Object... paras) { + return MAIN.update(sql, paras); + } + + /** + * @see #update(String, Object...) + * @param sql an SQL statement + */ + public static int update(String sql) { + return MAIN.update(sql); + } + + static List find(Config config, Connection conn, String sql, Object... paras) throws SQLException { + return MAIN.find(config, conn, sql, paras); + } + + /** + * sql paras 查询,数据封装到 Record 对象 + * 支持读写分离:读操作自动路由到从库 + */ + public static List find(String sql, Object... paras) { + return chooseDbPro(sql).find(sql, paras); + } + + /** + * @see #find(String, Object...) + * @param sql the sql statement + */ + public static List find(String sql) { + return chooseDbPro(sql).find(sql); + } + + public static List findAll(String tableName) { + return chooseDbPro("select * from " + tableName).findAll(tableName); + } + + /** + * Find first record. I recommend add "limit 1" in your sql. + * 支持读写分离:读操作自动路由到从库 + * @param sql an SQL statement that may contain one or more '?' IN parameter placeholders + * @param paras the parameters of sql + * @return the Record object + */ + public static com.jfinal.plugin.activerecord.Record findFirst(String sql, Object... paras) { + return chooseDbPro(sql).findFirst(sql, paras); + } + + /** + * @see #findFirst(String, Object...) + * @param sql an SQL statement + */ + public static com.jfinal.plugin.activerecord.Record findFirst(String sql) { + return chooseDbPro(sql).findFirst(sql); + } + + /** + * Find record by id with default primary key. + * 支持读写分离:读操作自动路由到从库 + *

+     * Example:
+     * Record user = Db.findById("user", 15);
+     * 
+ * @param tableName the table name of the table + * @param idValue the id value of the record + */ + public static com.jfinal.plugin.activerecord.Record findById(String tableName, Object idValue) { + return getRandomSlaveDbPro().findById(tableName, idValue); + } + + public static com.jfinal.plugin.activerecord.Record findById(String tableName, String primaryKey, Object idValue) { + return getRandomSlaveDbPro().findById(tableName, primaryKey, idValue); + } + + /** + * Find record by ids. + * 支持读写分离:读操作自动路由到从库 + *
+     * Example:
+     * Record user = Db.findByIds("user", "user_id", 123);
+     * Record userRole = Db.findByIds("user_role", "user_id, role_id", 123, 456);
+     * 
+ * @param tableName the table name of the table + * @param primaryKey the primary key of the table, composite primary key is separated by comma character: "," + * @param idValues the id value of the record, it can be composite id values + */ + public static com.jfinal.plugin.activerecord.Record findByIds(String tableName, String primaryKey, Object... idValues) { + return getRandomSlaveDbPro().findByIds(tableName, primaryKey, idValues); + } + + /** + * Delete record by id with default primary key. + * 写操作强制使用主库 + *
+     * Example:
+     * Db.deleteById("user", 15);
+     * 
+ * @param tableName the table name of the table + * @param idValue the id value of the record + * @return true if delete succeed otherwise false + */ + public static boolean deleteById(String tableName, Object idValue) { + return MAIN.deleteById(tableName, idValue); + } + + public static boolean deleteById(String tableName, String primaryKey, Object idValue) { + return MAIN.deleteById(tableName, primaryKey, idValue); + } + + /** + * Delete record by ids. + * 写操作强制使用主库 + *
+     * Example:
+     * Db.deleteByIds("user", "user_id", 15);
+     * Db.deleteByIds("user_role", "user_id, role_id", 123, 456);
+     * 
+ * @param tableName the table name of the table + * @param primaryKey the primary key of the table, composite primary key is separated by comma character: "," + * @param idValues the id value of the record, it can be composite id values + * @return true if delete succeed otherwise false + */ + public static boolean deleteByIds(String tableName, String primaryKey, Object... idValues) { + return MAIN.deleteByIds(tableName, primaryKey, idValues); + } + + /** + * Delete record. + * 写操作强制使用主库 + *
+     * Example:
+     * boolean succeed = Db.delete("user", "id", user);
+     * 
+ * @param tableName the table name of the table + * @param primaryKey the primary key of the table, composite primary key is separated by comma character: "," + * @param record the record + * @return true if delete succeed otherwise false + */ + public static boolean delete(String tableName, String primaryKey, com.jfinal.plugin.activerecord.Record record) { + return MAIN.delete(tableName, primaryKey, record); + } + + /** + *
+     * Example:
+     * boolean succeed = Db.delete("user", user);
+     * 
+ * @see #delete(String, String, com.jfinal.plugin.activerecord.Record) + */ + public static boolean delete(String tableName, com.jfinal.plugin.activerecord.Record record) { + return MAIN.delete(tableName, record); + } + + /** + * Execute delete sql statement. + * 写操作强制使用主库 + * @param sql an SQL statement that may contain one or more '?' IN parameter placeholders + * @param paras the parameters of sql + * @return the row count for DELETE statements, or 0 for SQL statements + * that return nothing + */ + public static int delete(String sql, Object... paras) { + return MAIN.delete(sql, paras); + } + + /** + * @see #delete(String, Object...) + * @param sql an SQL statement + */ + public static int delete(String sql) { + return MAIN.delete(sql); + } + + static Page paginate(Config config, Connection conn, int pageNumber, int pageSize, String select, String sqlExceptSelect, Object... paras) throws SQLException { + return MAIN.paginate(config, conn, pageNumber, pageSize, select, sqlExceptSelect, paras); + } + + /** + * Paginate. + * 支持读写分离:分页查询自动路由到从库 + * @param pageNumber the page number + * @param pageSize the page size + * @param select the select part of the sql statement + * @param sqlExceptSelect the sql statement excluded select part + * @param paras the parameters of sql + * @return the Page object + */ + public static Page paginate(int pageNumber, int pageSize, String select, String sqlExceptSelect, Object... paras) { + return getRandomSlaveDbPro().paginate(pageNumber, pageSize, select, sqlExceptSelect, paras); + } + + public static Page paginate(int pageNumber, int pageSize, boolean isGroupBySql, String select, String sqlExceptSelect, Object... paras) { + return getRandomSlaveDbPro().paginate(pageNumber, pageSize, isGroupBySql, select, sqlExceptSelect, paras); + } + + /** + * 分页 + */ + public static Page paginate(int pageNumber, int pageSize, String select, String sqlExceptSelect) { + return getRandomSlaveDbPro().paginate(pageNumber, pageSize, select, sqlExceptSelect); + } + + public static Page paginateByFullSql(int pageNumber, int pageSize, String totalRowSql, String findSql, Object... paras) { + return getRandomSlaveDbPro().paginateByFullSql(pageNumber, pageSize, totalRowSql, findSql, paras); + } + + public static Page paginateByFullSql(int pageNumber, int pageSize, boolean isGroupBySql, String totalRowSql, String findSql, Object... paras) { + return getRandomSlaveDbPro().paginateByFullSql(pageNumber, pageSize, isGroupBySql, totalRowSql, findSql, paras); + } + + public static Page paginate(int pageNumber, int pageSize, SqlPara sqlPara) { + return MAIN.paginate(pageNumber, pageSize, sqlPara); + } + + static boolean save(Config config, Connection conn, String tableName, String primaryKey, com.jfinal.plugin.activerecord.Record record) throws SQLException { + return MAIN.save(config, conn, tableName, primaryKey, record); + } + + /** + * Save record. + * 写操作强制使用主库 + *
+     * Example:
+     * Record userRole = new Record().set("user_id", 123).set("role_id", 456);
+     * Db.save("user_role", "user_id, role_id", userRole);
+     * 
+ * @param tableName the table name of the table + * @param primaryKey the primary key of the table, composite primary key is separated by comma character: "," + * @param record the record will be saved + * @return true if save succeed otherwise false + */ + public static boolean save(String tableName, String primaryKey, com.jfinal.plugin.activerecord.Record record) { + return MAIN.save(tableName, primaryKey, record); + } + + /** + * @see #save(String, String, com.jfinal.plugin.activerecord.Record) + */ + public static boolean save(String tableName, com.jfinal.plugin.activerecord.Record record) { + return MAIN.save(tableName, record); + } + + static boolean update(Config config, Connection conn, String tableName, String primaryKey, com.jfinal.plugin.activerecord.Record record) throws SQLException { + return MAIN.update(config, conn, tableName, primaryKey, record); + } + + /** + * Update Record. + * 写操作强制使用主库 + *
+     * Example:
+     * Db.update("user_role", "user_id, role_id", record);
+     * 
+ * @param tableName the table name of the Record save to + * @param primaryKey the primary key of the table, composite primary key is separated by comma character: "," + * @param record the Record object + * @return true if update succeed otherwise false + */ + public static boolean update(String tableName, String primaryKey, com.jfinal.plugin.activerecord.Record record) { + return MAIN.update(tableName, primaryKey, record); + } + + /** + * Update record with default primary key. + * 写操作强制使用主库 + *
+     * Example:
+     * Db.update("user", record);
+     * 
+ * @see #update(String, String, com.jfinal.plugin.activerecord.Record) + */ + public static boolean update(String tableName, com.jfinal.plugin.activerecord.Record record) { + return MAIN.update(tableName, record); + } + + /** + * @see #execute(Config, ICallback) + */ + public static Object execute(ICallback callback) { + return MAIN.execute(callback); + } + + /** + * Execute callback. It is useful when all the API can not satisfy your requirement. + * @param config the Config object + * @param callback the ICallback interface + */ + static Object execute(Config config, ICallback callback) { + return MAIN.execute(config, callback); + } + + /** + * Execute transaction. + * 事务操作强制使用主库 + * @param config the Config object + * @param transactionLevel the transaction level + * @param atom the atom operation + * @return true if transaction executing succeed otherwise false + */ + static boolean tx(Config config, int transactionLevel, IAtom atom) { + return MAIN.tx(config, transactionLevel, atom); + } + + /** + * Execute transaction with default transaction level. + * 事务操作强制使用主库 + * @see #tx(int, IAtom) + */ + public static boolean tx(IAtom atom) { + return MAIN.tx(atom); + } + + public static boolean tx(int transactionLevel, IAtom atom) { + return MAIN.tx(transactionLevel, atom); + } + + /** + * 主要用于嵌套事务场景 + * 事务操作强制使用主库 + * + * 实例:https://jfinal.com/feedback/4008 + * + * 默认情况下嵌套事务会被合并成为一个事务,那么内层与外层任何地方回滚事务 + * 所有嵌套层都将回滚事务,也就是说嵌套事务无法独立提交与回滚 + * + * 使用 txInNewThread(...) 方法可以实现层之间的事务控制的独立性 + * 由于事务处理是将 Connection 绑定到线程上的,所以 txInNewThread(...) + * 通过建立新线程来实现嵌套事务的独立控制 + */ + public static Future txInNewThread(IAtom atom) { + return MAIN.txInNewThread(atom); + } + + public static Future txInNewThread(int transactionLevel, IAtom atom) { + return MAIN.txInNewThread(transactionLevel, atom); + } + + /** + * Find Record by cache. + * 支持读写分离:缓存查询自动路由到从库 + * @see #find(String, Object...) + * @param cacheName the cache name + * @param key the key used to get date from cache + * @return the list of Record + */ + public static List findByCache(String cacheName, Object key, String sql, Object... paras) { + return chooseDbPro(sql).findByCache(cacheName, key, sql, paras); + } + + /** + * @see #findByCache(String, Object, String, Object...) + */ + public static List findByCache(String cacheName, Object key, String sql) { + return chooseDbPro(sql).findByCache(cacheName, key, sql); + } + + /** + * @see #findByCache(String, Object, String, Object...) + */ + public static com.jfinal.plugin.activerecord.Record findFirstByCache(String cacheName, Object key, String sql, Object... paras) { + return chooseDbPro(sql).findFirstByCache(cacheName, key, sql, paras); + } + + /** + * @see #findFirstByCache(String, Object, String, Object...) + */ + public static com.jfinal.plugin.activerecord.Record findFirstByCache(String cacheName, Object key, String sql) { + return chooseDbPro(sql).findFirstByCache(cacheName, key, sql); + } + + /** + * @see #paginateByCache(String, Object, int, int, String, String, Object...) + */ + public static Page paginateByCache(String cacheName, Object key, int pageNumber, int pageSize, String select, String sqlExceptSelect, Object... paras) { + return getRandomSlaveDbPro().paginateByCache(cacheName, key, pageNumber, pageSize, select, sqlExceptSelect, paras); + } + + /** + * @see #paginateByCache(String, Object, int, int, String, String, Object...) + */ + public static Page paginateByCache(String cacheName, Object key, int pageNumber, int pageSize, boolean isGroupBySql, String select, String sqlExceptSelect, Object... paras) { + return getRandomSlaveDbPro().paginateByCache(cacheName, key, pageNumber, pageSize, isGroupBySql, select, sqlExceptSelect, paras); + } + + /** + * @see #paginateByCache(String, Object, int, int, String, String, Object...) + */ + public static Page paginateByCache(String cacheName, Object key, int pageNumber, int pageSize, String select, String sqlExceptSelect) { + return getRandomSlaveDbPro().paginateByCache(cacheName, key, pageNumber, pageSize, select, sqlExceptSelect); + } + + // ----------------------------- + + /** + * 获取读写分离状态信息 + * Get read-write separation status information + */ + public static String getReadWriteSeparationStatus() { + StringBuilder sb = new StringBuilder(); + sb.append("读写分离状态: ").append(readWriteSeparationEnabled ? "已启用" : "未启用").append("\n"); + if (readWriteSeparationEnabled) { + sb.append("从库配置数量: ").append(slaveConfigs.size()).append("\n"); + for (int i = 0; i < slaveConfigs.size(); i++) { + sb.append("从库").append(i + 1).append(": ").append(slaveConfigs.get(i)).append("\n"); + } + } + return sb.toString(); + } + + /** + * 强制使用主库执行查询(用于需要强一致性的场景) + * Force use master database for query (for scenarios requiring strong consistency) + */ + public static List queryFromMaster(String sql, Object... paras) { + return MAIN.query(sql, paras); + } + + public static List findFromMaster(String sql, Object... paras) { + return MAIN.find(sql, paras); + } + + public static com.jfinal.plugin.activerecord.Record findFirstFromMaster(String sql, Object... paras) { + return MAIN.findFirst(sql, paras); + } + + /** + * 强制使用指定从库执行查询 + * Force use specific slave database for query + */ + public static List queryFromSlave(int slaveIndex, String sql, Object... paras) { + if (!readWriteSeparationEnabled || slaveIndex < 0 || slaveIndex >= slaveConfigs.size()) { + return MAIN.query(sql, paras); + } + // 这里应该返回指定的从库连接,暂时返回主库 + return MAIN.query(sql, paras); + } + + public static String getSql(String key) { + return MAIN.getSql(key); + } + + public static SqlPara getSqlPara(String key) { + return MAIN.getSqlPara(key); + } + + public static SqlPara getSqlPara(String key, com.jfinal.plugin.activerecord.Record record) { + return MAIN.getSqlPara(key, record); + } + + public static SqlPara getSqlPara(String key, Map data) { + return MAIN.getSqlPara(key, data); + } + + public static SqlPara getSqlPara(String key, Object... paras) { + return MAIN.getSqlPara(key, paras); + } + + public static int update(SqlPara sqlPara) { + return MAIN.update(sqlPara); + } + public static List find(SqlPara sqlPara) { + return MAIN.find(sqlPara); + } + /** + * @see DbPro#batchUpdate(List, int) + */ + public static int[] batchUpdate(List modelList, int batchSize) { + return MAIN.batchUpdate(modelList, batchSize); + } + + /** + * @see DbPro#batchUpdate(String, String, List, int) + */ + public static int[] batchUpdate(String tableName, String primaryKey, List recordList, int batchSize) { + return MAIN.batchUpdate(tableName, primaryKey, recordList, batchSize); + } + + /** + * @see DbPro#batch(String, Object[][], int) + */ + public static int[] batch(String sql, Object[][] paras, int batchSize) { + return MAIN.batch(sql, paras, batchSize); + } + + /** + * @see DbPro#batch(String, String, List, int) + */ + public static int[] batch(String sql, String columns, List modelOrRecordList, int batchSize) { + return MAIN.batch(sql, columns, modelOrRecordList, batchSize); + } + + /** + * @see DbPro#batch(List, int) + */ + public static int[] batch(List sqlList, int batchSize) { + return MAIN.batch(sqlList, batchSize); + } + + /** + * @see DbPro#batchUpdate(String, List, int) + */ + public static int[] batchUpdate(String tableName, List recordList, int batchSize) { + return MAIN.batchUpdate(tableName, recordList, batchSize); + } + /** + * @see DbPro#batchSave(List, int) + */ + public static int[] batchSave(List modelList, int batchSize) { + return MAIN.batchSave(modelList, batchSize); + } + + /** + * @see DbPro#batchSave(String, List, int) + */ + public static int[] batchSave(String tableName, List recordList, int batchSize) { + return MAIN.batchSave(tableName, recordList, batchSize); + } +} + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index aedbda4f..59ba35c9 100644 --- a/pom.xml +++ b/pom.xml @@ -15,21 +15,6 @@ dsAi dsSso - - - - ali-maven - https://maven.aliyun.com/nexus/content/groups/public - - true - - - true - always - fail - - - UTF-8 @@ -43,7 +28,7 @@ 3.2.2 - 5.2.4 + 5.2.5 3.7 2022.2 @@ -51,41 +36,73 @@ 1.2.24 9.3.0 1.0.5 + 5.1.5 + 8.5.17 - 1.7.36 - 1.2.11 + 2.0.17 + 1.5.18 + 2.0.6 2.0.57 - 2.4 + 20250517 + 2.13.1 2.1.4 2.3.3 1.1.1 - + 2.19.0 + 2.19.0 + 5.2.5 - 1.1.0 - + 1.2.0 + 2.3.34 + 1.0.5 + 2.3.0 + 1.1.1 + 3.30.2-GA + 4.5.14 - 0.2.19 - + com.github.mwiede + 2.27.2 + 4.12.0 + - 0.11.5 - 0.11.5 + 0.12.6 + ${jjwt.version} + + + 5.28.5 + 2.5.9 + + + 5.3.0 + + + 3.25.5 + + + 262 + + + 4.4.0 + + + 1.17.2 5.8.37 - 2.14.0 - 1.5 - 3.12.0 + 2.19.0 + 1.6.0 + 3.17.0 0.4.19 1.17.2 2.3 @@ -95,4 +112,41 @@ 1.18.38 1.4.4 + + + + + org.apache.logging.log4j + log4j-core + 2.20.0 + provided + + + org.apache.logging.log4j + log4j-api + 2.20.0 + provided + + + org.javassist + javassist + ${javassist.version} + + + + + + + ali-maven + https://maven.aliyun.com/nexus/content/groups/public + + true + + + true + always + fail + + + \ No newline at end of file