diff --git a/pom.xml b/pom.xml
index 681680d..1a57c57 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,6 +22,7 @@
4.4.0
9.1.0.Final
2.8.15
+ 4.3.4
@@ -96,6 +97,19 @@
hibernate-validator
${hibernate-validator.version}
+
+
+ org.antlr
+ ST4
+ ${ST4.version}
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
diff --git a/src/main/java/com/cczsa/xinghe/codegen/controller/CodeGenController.java b/src/main/java/com/cczsa/xinghe/codegen/controller/CodeGenController.java
new file mode 100644
index 0000000..bb513f7
--- /dev/null
+++ b/src/main/java/com/cczsa/xinghe/codegen/controller/CodeGenController.java
@@ -0,0 +1,42 @@
+package com.cczsa.xinghe.codegen.controller;
+
+import com.cczsa.xinghe.codegen.service.CodeGenService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author xia
+ * @date 2026/1/10
+ * @version 0.0.1
+ */
+@RestController
+@RequestMapping("/codegen")
+@RequiredArgsConstructor
+public class CodeGenController {
+
+ private final CodeGenService codeGenService;
+
+ @PostMapping("/download")
+ public ResponseEntity downloadCode() {
+ try {
+ byte[] zipData = codeGenService.generateCodeZip();
+
+ return ResponseEntity.ok()
+ // 设置下载文件名
+ .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"generated-code.zip\"")
+ // 设置为二进制流
+ .contentType(MediaType.APPLICATION_OCTET_STREAM)
+ .contentLength(zipData.length)
+ .body(zipData);
+ } catch (Exception e) {
+ return ResponseEntity.internalServerError().build();
+ }
+ }
+
+
+}
diff --git a/src/main/java/com/cczsa/xinghe/codegen/controller/LoginController.java b/src/main/java/com/cczsa/xinghe/codegen/controller/LoginController.java
index cb2006f..47d0d10 100644
--- a/src/main/java/com/cczsa/xinghe/codegen/controller/LoginController.java
+++ b/src/main/java/com/cczsa/xinghe/codegen/controller/LoginController.java
@@ -1,12 +1,22 @@
package com.cczsa.xinghe.codegen.controller;
+import com.alibaba.fastjson2.JSONObject;
import com.cczsa.xinghe.codegen.util.XResult;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
/**
*
* @author xia
@@ -14,17 +24,49 @@ import org.springframework.web.bind.annotation.RestController;
* @version 0.0.1
*
*/
+@Slf4j
@Tag(name = "登录")
@RequiredArgsConstructor
@RestController
-@RequestMapping("/login")
public class LoginController {
- @PostMapping("/")
- public XResult login(String username, String password) {
- return null;
+
+
+ @Operation(summary = "登录", description = "登录")
+ @PostMapping("/login")
+ @Parameters({
+ @Parameter(name = "username", description = "用户名", required = true),
+ @Parameter(name = "password", description = "密码", required = true)
+ })
+ public XResult