diff --git a/pom.xml b/pom.xml
index ebde56d..dc79cb5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,6 +32,15 @@
spring-boot-starter-test
test
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ 3.0.3
+
+
+ com.mysql
+ mysql-connector-j
+
diff --git a/src/main/java/cn/dcsy/stsy/controllers/BasicController.java b/src/main/java/cn/dcsy/stsy/controllers/BasicController.java
new file mode 100644
index 0000000..c8c7693
--- /dev/null
+++ b/src/main/java/cn/dcsy/stsy/controllers/BasicController.java
@@ -0,0 +1,43 @@
+package cn.dcsy.stsy.controllers;
+
+import cn.dcsy.stsy.service.UserService;
+import cn.dcsy.stsy.utils.BaseResponse;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 基本控制器
+ *
+ * @author DC_DC
+ * Date: 2024/4/8/08:50
+ */
+
+@Slf4j
+@RestController
+@CrossOrigin("*")
+@RequestMapping("/basic")
+@RequiredArgsConstructor
+public class BasicController {
+ private final UserService userService;
+ /**
+ * 网站主页
+ */
+// @GetMapping("/**")
+ public ResponseEntity index() {
+ log.info("访问主页");
+ BaseResponse response = new BaseResponse("欢迎", 200, "Success", "这是故事管理系统主页");
+ return ResponseEntity.ok(response);
+ }
+
+ /*
+ * 用户登录
+ * */
+ @PostMapping("/login")
+ public ResponseEntity login(@RequestParam String username, @RequestParam String password) {
+ log.info("尝试登录 用户名: {}", username);
+ return userService.login(username, password);
+ }
+
+}
diff --git a/src/main/java/cn/dcsy/stsy/controllers/Demo.java b/src/main/java/cn/dcsy/stsy/controllers/Demo.java
deleted file mode 100644
index 5294a34..0000000
--- a/src/main/java/cn/dcsy/stsy/controllers/Demo.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package cn.dcsy.stsy.controllers;
-
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * @author DC_DC
- * Date: 2024/3/21/23:54
- */
-@RestController
-public class Demo {
-
- @GetMapping("/index")
- public String domain(){
- System.out.println("demo");
- return "DC_DC";
- }
-}
diff --git a/src/main/java/cn/dcsy/stsy/dao/UserDAO.java b/src/main/java/cn/dcsy/stsy/dao/UserDAO.java
new file mode 100644
index 0000000..fa30223
--- /dev/null
+++ b/src/main/java/cn/dcsy/stsy/dao/UserDAO.java
@@ -0,0 +1,24 @@
+package cn.dcsy.stsy.dao;
+
+import cn.dcsy.stsy.mappers.UserMapper;
+import cn.dcsy.stsy.models.doData.UserDemoDO;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author DC_DC
+ * Date: 2024/4/16/22:02
+ */
+@Slf4j
+@Repository
+@RequiredArgsConstructor
+public class UserDAO {
+ private final UserMapper userMapper;
+
+ public UserDemoDO getPasswordByUserName(String userName) {
+ log.info("[DAO] 执行 getPasswordByUserName 方法");
+ log.info("\t> Mysql 读取");
+ return userMapper.getPasswordByUsername(userName);
+ }
+}
diff --git a/src/main/java/cn/dcsy/stsy/mappers/UserMapper.java b/src/main/java/cn/dcsy/stsy/mappers/UserMapper.java
new file mode 100644
index 0000000..437d18b
--- /dev/null
+++ b/src/main/java/cn/dcsy/stsy/mappers/UserMapper.java
@@ -0,0 +1,15 @@
+package cn.dcsy.stsy.mappers;
+
+import cn.dcsy.stsy.models.doData.UserDemoDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+/**
+ * @author DC_DC
+ * Date: 2024/4/16/22:03
+ */
+@Mapper
+public interface UserMapper {
+ @Select("SELECT * FROM stories_system.user_demo WHERE username = #{username}")
+ UserDemoDO getPasswordByUsername(String username);
+}
diff --git a/src/main/java/cn/dcsy/stsy/models/doData/UserDemoDO.java b/src/main/java/cn/dcsy/stsy/models/doData/UserDemoDO.java
new file mode 100644
index 0000000..3c3ccc1
--- /dev/null
+++ b/src/main/java/cn/dcsy/stsy/models/doData/UserDemoDO.java
@@ -0,0 +1,14 @@
+package cn.dcsy.stsy.models.doData;
+
+import lombok.Data;
+
+/**
+ * @author DC_DC
+ * Date: 2024/4/16/22:00
+ */
+@Data
+public class UserDemoDO {
+ private Integer id;
+ private String username;
+ private String password;
+}
diff --git a/src/main/java/cn/dcsy/stsy/service/UserService.java b/src/main/java/cn/dcsy/stsy/service/UserService.java
new file mode 100644
index 0000000..a4c17a5
--- /dev/null
+++ b/src/main/java/cn/dcsy/stsy/service/UserService.java
@@ -0,0 +1,12 @@
+package cn.dcsy.stsy.service;
+
+import cn.dcsy.stsy.utils.BaseResponse;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * @author DC_DC
+ * Date: 2024/4/16/21:51
+ */
+public interface UserService {
+ ResponseEntity login(String username, String password);
+}
diff --git a/src/main/java/cn/dcsy/stsy/service/impl/UserServiceImpl.java b/src/main/java/cn/dcsy/stsy/service/impl/UserServiceImpl.java
new file mode 100644
index 0000000..9cd9de4
--- /dev/null
+++ b/src/main/java/cn/dcsy/stsy/service/impl/UserServiceImpl.java
@@ -0,0 +1,39 @@
+package cn.dcsy.stsy.service.impl;
+
+import cn.dcsy.stsy.dao.UserDAO;
+import cn.dcsy.stsy.models.doData.UserDemoDO;
+import cn.dcsy.stsy.service.UserService;
+import cn.dcsy.stsy.utils.BaseResponse;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author DC_DC
+ * Date: 2024/4/16/21:53
+ */
+@Service
+@Slf4j
+@RequiredArgsConstructor
+public class UserServiceImpl implements UserService {
+ private final UserDAO userDAO;
+
+ @Override
+ public ResponseEntity login(String username, String password) {
+ UserDemoDO userDemoDO = userDAO.getPasswordByUserName(username);
+ log.info(String.valueOf(userDemoDO));
+ if (userDemoDO != null){
+ if (userDemoDO.getPassword().equals(password)){
+ BaseResponse response = new BaseResponse("登录成功", 200, "Success", "用户已登录");
+ return ResponseEntity.ok(response);
+ } else {
+ BaseResponse response = new BaseResponse("登录失败", 404, "Error", "密码错误");
+ return ResponseEntity.status(404).body(response);
+ }
+ } else {
+ BaseResponse response = new BaseResponse("登录失败", 404, "Error", "用户名不存在");
+ return ResponseEntity.status(404).body(response);
+ }
+ }
+}
diff --git a/src/main/java/cn/dcsy/stsy/start/StoriesSystemApplication.java b/src/main/java/cn/dcsy/stsy/start/StoriesSystemApplication.java
index 2ca09c5..10a15e8 100644
--- a/src/main/java/cn/dcsy/stsy/start/StoriesSystemApplication.java
+++ b/src/main/java/cn/dcsy/stsy/start/StoriesSystemApplication.java
@@ -1,5 +1,6 @@
package cn.dcsy.stsy.start;
+import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@@ -9,6 +10,7 @@ import org.springframework.context.annotation.ComponentScan;
*/
@SpringBootApplication
@ComponentScan(basePackages = {"cn.dcsy.stsy"})
+@MapperScan("cn.dcsy.stsy.mappers")
public class StoriesSystemApplication {
public static void main(String[] args) {
diff --git a/src/main/java/cn/dcsy/stsy/utils/BaseResponse.java b/src/main/java/cn/dcsy/stsy/utils/BaseResponse.java
new file mode 100644
index 0000000..353e530
--- /dev/null
+++ b/src/main/java/cn/dcsy/stsy/utils/BaseResponse.java
@@ -0,0 +1,21 @@
+package cn.dcsy.stsy.utils;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @author DC_DC
+ * Date: 2024/4/16/21:22
+ */
+@Slf4j
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public record BaseResponse(String output, Integer code, String message, Object data) {
+
+ public BaseResponse(String output, Integer code, String message, Object data) {
+ this.output = output;
+ this.code = code;
+ this.message = message;
+ this.data = data;
+ log.info("============================================================");
+ }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 606e069..1441997 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,2 +1,8 @@
server:
- port: 8088
\ No newline at end of file
+ port: 8088
+spring:
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://localhost:3305
+ username: "root"
+ password: "123456"
\ No newline at end of file