diff --git a/server/.apifox-helper.properties b/server/.apifox-helper.properties new file mode 100644 index 0000000..88b1433 --- /dev/null +++ b/server/.apifox-helper.properties @@ -0,0 +1,2 @@ +max.deep=2 +param.ignore=@com.aisino.iles.core.annotation.CurrentUser \ No newline at end of file diff --git a/server/README.md b/server/README.md new file mode 100644 index 0000000..201b57b --- /dev/null +++ b/server/README.md @@ -0,0 +1,96 @@ +# 综合执法系统后端服务 + +基于Spring Boot 3.1构建的企业级执法管理系统后端,采用模块化架构设计。 + +## 模块架构 + +### 1. 核心模块 (core) +``` +src/main/java/com/aisino/iles/core/ +├── config/ # 全局配置 +│ ├── WebConfig.java # Web MVC配置 +│ └── RedisConfig.java # Redis缓存配置 +├── controller/ # 核心控制器 +│ ├── StreetInfoController.java # 街道信息管理 +│ └── CacheAdminController.java # 缓存管理 +├── service/ # 核心业务服务 +│ ├── UserService.java # 用户服务 +│ └── PermissionService.java # 权限管理 +├── repository/ # 数据访问层 +│ ├── UserRepo.java # 用户数据访问 +│ └── StreetInfoRepo.java # 街道信息访问 +├── model/ # 数据模型 +│ ├── BaseModel.java # 基础实体 +│ └── UserDTO.java # 用户传输对象 +└── util/ # 核心工具 + └── CacheUtils.java # 缓存工具类 +``` + +### 2. 公共模块 (common) +``` +src/main/java/com/aisino/iles/common/ +├── util/ # 通用工具 +│ ├── ExportExcelHelper.java # Excel导出 +│ └── BufferedBlockingQueue.java # 缓冲队列 +├── config/ # 公共配置 +│ └── SwaggerConfig.java # API文档配置 +├── service/ # 公共服务 +│ ├── AwsS3Service.java # 文件存储服务 +│ └── FtpService.java # 文件上传下载服务(对awsS3Service进行封装) +└── exception/ # 异常处理 + └── GlobalExceptionHandler.java # 全局异常处理 +``` + +### 3. 执法业务模块 (lawenforcement) +``` +src/main/java/com/aisino/iles/lawenforcement/ +├── service/ # 执法业务服务 +│ ├── CaseService.java # 案件管理 +│ └── EvidenceService.java # 证据管理 +├── controller/ # 执法控制器 +│ ├── CaseController.java # 案件API +│ └── EvidenceController.java # 证据API +└── model/ # 业务模型 + ├── CaseDTO.java # 案件传输对象 + └── EvidenceVO.java # 证据展示对象 +``` + +## 技术栈 +- **核心框架**: Spring Boot 3.1.12 +- **持久层**: Spring Data JPA + Hibernate 6.2 +- **数据库**: MySQL 8.0 / 达梦 DM8 +- **缓存**: Redis 7.0 + Redisson 3.23 +- **文件存储**: AWS S3 + FTP +- **API文档**: Springdoc OpenAPI 3.0 + +## 环境配置 +```yaml +# application-dev.yml +redisson: + config: classpath:application-redisson-cache.yml +spring: + datasource: + url: jdbc:h2:mem:testdb + driver-class-name: org.h2.Driver + +# application-prod.yml +spring: + datasource: + url: jdbc:kingbase8://db:54321/iles_db + username: ${DB_USER} + password: ${DB_PWD} +``` +## 依赖管理 +```bash +mvn install:install-file -DgroupId=com.smartlx -DartifactId=sso-client -Dversion=1.0 -Dpackaging=jar -Dfile=./lib/sso-client-1.0.jar +mvn install:install-file -DgroupId=com.aisino.kingbase -DartifactId=KesDialect-for-hibernate6.2 -Dversion=2.0.0 -Dpackaging=jar -Dfile=./lib/KesDialect-for-hibernate6.2-2.0.0.jar +mvn install:install-file -DgroupId=com.aisino.sm4Interface -DartifactId=kms-sdk -Dversion=1.2 -Dpackaging=jar -Dfile=./lib/kms-sdk-1.2-SNAPSHOT.jar +``` +## 构建运行 +```bash +mvn clean package -DskipTests +java -jar target/iles-1.0.0.jar --spring.profiles.active=prod +``` + +## API文档 +- apifox 在线文档 diff --git a/server/iles.iml b/server/iles.iml new file mode 100644 index 0000000..99a49d3 --- /dev/null +++ b/server/iles.iml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/server/lib/KesDialect-for-hibernate6.2-2.0.0.jar b/server/lib/KesDialect-for-hibernate6.2-2.0.0.jar new file mode 100644 index 0000000..d18743b Binary files /dev/null and b/server/lib/KesDialect-for-hibernate6.2-2.0.0.jar differ diff --git a/server/lib/kms-sdk-1.2-SNAPSHOT.jar b/server/lib/kms-sdk-1.2-SNAPSHOT.jar new file mode 100644 index 0000000..4da55fb Binary files /dev/null and b/server/lib/kms-sdk-1.2-SNAPSHOT.jar differ diff --git a/server/lib/sso-client-1.0.jar b/server/lib/sso-client-1.0.jar new file mode 100644 index 0000000..2e70e77 Binary files /dev/null and b/server/lib/sso-client-1.0.jar differ diff --git a/server/pom.xml b/server/pom.xml new file mode 100644 index 0000000..7faafea --- /dev/null +++ b/server/pom.xml @@ -0,0 +1,308 @@ + + + 4.0.0 + + com.aisino + iles + 1.0.0 + iles + Spring Boot 3 Web Application + + + org.springframework.boot + spring-boot-starter-parent + 3.1.12 + + + + + 17 + 3.23.4 + 6.2.13.Final + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-data-jpa + + + jakarta.persistence + jakarta.persistence-api + + + org.springframework.boot + spring-boot-starter-cache + + + org.springframework.boot + spring-boot-starter-test + test + + + + cn.hutool + hutool-all + 5.8.11 + + + + org.springframework.boot + spring-boot-starter-validation + + + + + org.redisson + redisson-spring-boot-starter + ${redisson.version} + + + org.springframework.boot + spring-boot-starter-data-redis + + + org.redisson + redisson-hibernate-6 + 3.27.1 + + + + com.github.f4b6a3 + ulid-creator + 5.2.0 + + + + org.apache.commons + commons-lang3 + 3.17.0 + + + + mysql + mysql-connector-java + 8.0.33 + runtime + + + + + + com.aisino.sm4Interface + kms-sdk + 1.2 + + + com.koal.thrift + kthrift + + + + + + jakarta.servlet + jakarta.servlet-api + 5.0.0 + provided + + + + + org.hibernate.orm + hibernate-core + ${hibernate.version} + + + org.hibernate.orm + hibernate-jpamodelgen + ${hibernate.version} + provided + + + com.fasterxml.jackson.datatype + jackson-datatype-hibernate6 + + + org.projectlombok + lombok + true + + + net.sourceforge.jexcelapi + jxl + 2.6.12 + + + com.amazonaws + aws-java-sdk-s3 + 1.12.53 + + + commons-beanutils + commons-beanutils + 1.9.4 + + + org.apache.commons + commons-collections4 + 4.4 + + + org.bouncycastle + bcprov-jdk15on + 1.62 + + + org.lionsoul + ip2region + 2.7.0 + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.glassfish.jaxb + jaxb-runtime + + + net.jpountz.lz4 + lz4 + 1.3.0 + + + + com.smartlx + sso-client + 1.0 + + + + com.hikvision.ga + artemis-http-client + 1.1.3 + + + + org.apache.pdfbox + pdfbox + 2.0.27 + + + org.apache.pdfbox + fontbox + 2.0.27 + + + org.springframework.retry + spring-retry + + + org.springframework + spring-aspects + + + org.springframework.boot + spring-boot-configuration-processor + + + org.springframework.kafka + spring-kafka + + + com.alibaba + fastjson + 2.0.57 + + + org.apache.poi + poi-ooxml + 5.2.3 + + + commons-io + commons-io + 2.18.0 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.projectlombok + lombok + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + ${java.version} + ${java.version} + + + org.projectlombok + lombok + ${lombok.version} + + + org.hibernate.orm + hibernate-jpamodelgen + ${hibernate.version} + + + + + + + + + + dev + + dev + + + + org.postgresql + postgresql + 42.7.3 + runtime + + + + + prod + + + + cn.com.kingbase + kingbase8 + 8.6.1 + runtime + + + + com.aisino.kingbase + KesDialect-for-hibernate6.2 + 2.0.0 + + + + + diff --git a/server/version.txt b/server/version.txt new file mode 100644 index 0000000..a3a007c --- /dev/null +++ b/server/version.txt @@ -0,0 +1 @@ +v1.3.5 \ No newline at end of file