From 17528529bf97c8f4b9ed4a50646c5620663468e1 Mon Sep 17 00:00:00 2001
From: luoweijian <1329394916@qq.com>
Date: Wed, 25 Feb 2026 17:29:36 +0800
Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96jsapi=E9=89=B4=E6=9D=83?=
=?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BF=A1=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 6 +
.../project/ding/config/DingProperties.java | 3 +-
.../ding/config/DingTalkConfiguration.java | 19 +++
.../com/project/ding/config/DtConfig.java | 2 +-
.../ding/controller/DingJsApiController.java | 22 +++
.../java/com/project/ding/utils/DingUtil.java | 134 +++++++++++++++++-
.../ExamRecordApplicationService.java | 3 +
.../ExamRecordApplicationServiceImpl.java | 6 +
.../controller/AdminExamRecordController.java | 19 +++
.../exam/controller/ExamRecordController.java | 4 -
.../exam/domain/dto/ExamRecordDTO.java | 4 +
.../exam/domain/dto/ExportExamRecordDTO.java | 26 ++++
.../AdminExportExamRecordDomainService.java | 9 ++
.../handler/ExamResultColorHandler.java | 54 +++++++
...dminExportExamRecordDomainServiceImpl.java | 22 +++
...dminSearchExamRecordDomainServiceImpl.java | 9 ++
src/main/resources/application.yml | 1 +
17 files changed, 333 insertions(+), 10 deletions(-)
create mode 100644 src/main/java/com/project/ding/config/DingTalkConfiguration.java
create mode 100644 src/main/java/com/project/ding/controller/DingJsApiController.java
create mode 100644 src/main/java/com/project/exam/domain/dto/ExportExamRecordDTO.java
create mode 100644 src/main/java/com/project/exam/domain/service/AdminExportExamRecordDomainService.java
create mode 100644 src/main/java/com/project/exam/domain/service/handler/ExamResultColorHandler.java
create mode 100644 src/main/java/com/project/exam/domain/service/impl/AdminExportExamRecordDomainServiceImpl.java
diff --git a/pom.xml b/pom.xml
index a527a70..bda0e0b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,6 +40,12 @@
1.18.30
+
+
+ com.aliyun
+ dingtalk
+ 2.2.12
+
io.minio
minio
diff --git a/src/main/java/com/project/ding/config/DingProperties.java b/src/main/java/com/project/ding/config/DingProperties.java
index 2b14ce2..205c186 100644
--- a/src/main/java/com/project/ding/config/DingProperties.java
+++ b/src/main/java/com/project/ding/config/DingProperties.java
@@ -10,5 +10,6 @@ import org.springframework.stereotype.Component;
public class DingProperties {
private String appKey;
private String appSecret;
- private Long agentId;
+ private String agentId;
+ private String corpId;
}
\ No newline at end of file
diff --git a/src/main/java/com/project/ding/config/DingTalkConfiguration.java b/src/main/java/com/project/ding/config/DingTalkConfiguration.java
new file mode 100644
index 0000000..1de521d
--- /dev/null
+++ b/src/main/java/com/project/ding/config/DingTalkConfiguration.java
@@ -0,0 +1,19 @@
+package com.project.ding.config;
+
+import com.aliyun.dingtalkoauth2_1_0.Client;
+import com.aliyun.teaopenapi.models.Config;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class DingTalkConfiguration {
+
+ @Bean
+ public Client dingTalkClient() throws Exception {
+ // 使用 com.aliyun.teaopenapi.models.Config
+ Config config = new Config();
+ config.protocol = "https";
+ config.regionId = "central";
+ return new Client(config);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/project/ding/config/DtConfig.java b/src/main/java/com/project/ding/config/DtConfig.java
index bddbbcc..1d4c9a0 100644
--- a/src/main/java/com/project/ding/config/DtConfig.java
+++ b/src/main/java/com/project/ding/config/DtConfig.java
@@ -22,7 +22,7 @@ public class DtConfig {
config.setAppSecret(dingTalkProperties.getAppSecret());
if (dingTalkProperties.getAgentId() != null) {
- config.setAgentId(dingTalkProperties.getAgentId());
+ config.setAgentId(Long.valueOf(dingTalkProperties.getAgentId()));
}
DtService dtService = new DtServiceImpl();
diff --git a/src/main/java/com/project/ding/controller/DingJsApiController.java b/src/main/java/com/project/ding/controller/DingJsApiController.java
new file mode 100644
index 0000000..780c312
--- /dev/null
+++ b/src/main/java/com/project/ding/controller/DingJsApiController.java
@@ -0,0 +1,22 @@
+package com.project.ding.controller;
+
+import com.project.base.domain.result.Result;
+import com.project.ding.utils.DingUtil;
+import jakarta.servlet.http.HttpServletRequest;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+@RestController
+@RequestMapping("/api/ding/jsApi")
+public class DingJsApiController {
+ @Autowired
+ private DingUtil dingUtil;
+ @RequestMapping("/getConfig")
+ public Result