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