From 9c94beecff17ad2a358ff67024db365403cf87bc Mon Sep 17 00:00:00 2001
From: wangsiyuan <2392948297@qq.com>
Date: Thu, 18 Jan 2024 16:05:07 +0800
Subject: [PATCH] 1
1
---
pom.xml | 25 +++
.../com/gao/finalhw/FinalApplication.java | 2 +
.../finalhw/controller/UserController.java | 23 ++-
.../com/gao/finalhw/mapper/AddressMapper.java | 2 +
.../com/gao/finalhw/mapper/OrdersMapper.java | 2 +
.../com/gao/finalhw/mapper/RingMapper.java | 2 +
.../finalhw/mapper/ShoppingCartMapper.java | 3 +
.../gao/finalhw/mapper/UserInfoMapper.java | 2 +
.../com/gao/finalhw/mapper/UserMapper.java | 5 +
.../com/gao/finalhw/pojo/LoginRequest.java | 11 ++
.../gao/finalhw/response/ResponseEnum.java | 23 +++
.../response/ServerResponseEntity.java | 142 ++++++++++++++++++
.../com/gao/finalhw/service/UserService.java | 16 ++
src/main/resources/application.properties | 2 +-
src/main/resources/templates/login.html | 39 +++--
15 files changed, 284 insertions(+), 15 deletions(-)
create mode 100644 src/main/java/com/gao/finalhw/pojo/LoginRequest.java
create mode 100644 src/main/java/com/gao/finalhw/response/ResponseEnum.java
create mode 100644 src/main/java/com/gao/finalhw/response/ServerResponseEntity.java
create mode 100644 src/main/java/com/gao/finalhw/service/UserService.java
diff --git a/pom.xml b/pom.xml
index 392a345..05212c9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,6 +30,31 @@
spring-boot-starter-test
test
+
+ org.projectlombok
+ lombok
+ 1.18.26
+ provided
+
+
+ com.baomidou
+ mybatis-plus-core
+ 3.5.4
+
+
+ org.mybatis
+ mybatis-spring
+ 3.0.2
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+ org.xerial
+ sqlite-jdbc
+ 3.42.0.0
+
diff --git a/src/main/java/com/gao/finalhw/FinalApplication.java b/src/main/java/com/gao/finalhw/FinalApplication.java
index 633f4e5..f86f755 100644
--- a/src/main/java/com/gao/finalhw/FinalApplication.java
+++ b/src/main/java/com/gao/finalhw/FinalApplication.java
@@ -1,9 +1,11 @@
package com.gao.finalhw;
+import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
+@MapperScan("com.gao.finalhw.mapper")
public class FinalApplication {
public static void main(String[] args) {
diff --git a/src/main/java/com/gao/finalhw/controller/UserController.java b/src/main/java/com/gao/finalhw/controller/UserController.java
index e85f920..a7aa817 100644
--- a/src/main/java/com/gao/finalhw/controller/UserController.java
+++ b/src/main/java/com/gao/finalhw/controller/UserController.java
@@ -1,8 +1,29 @@
package com.gao.finalhw.controller;
+import com.gao.finalhw.model.User;
+import com.gao.finalhw.pojo.LoginRequest;
+import com.gao.finalhw.response.ServerResponseEntity;
+import com.gao.finalhw.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
-
+ @Autowired
+ private UserService userService;
+ @PostMapping("/login")
+ public ServerResponseEntity login(@RequestBody LoginRequest loginRequest) {
+ User user = userService.getUserByUsernameAndPassword(loginRequest.getUsername(), loginRequest.getPassword());
+ if (user != null) {
+ // 隐藏密码
+ user.setPassword("null");
+ // 如果验证成功
+ return ServerResponseEntity.success("login success", user);
+ } else {
+ // 如果验证失败
+ return ServerResponseEntity.fail("username or password error.");
+ }
+ }
}
diff --git a/src/main/java/com/gao/finalhw/mapper/AddressMapper.java b/src/main/java/com/gao/finalhw/mapper/AddressMapper.java
index 8994fa6..dff7df6 100644
--- a/src/main/java/com/gao/finalhw/mapper/AddressMapper.java
+++ b/src/main/java/com/gao/finalhw/mapper/AddressMapper.java
@@ -2,6 +2,7 @@ package com.gao.finalhw.mapper;
import com.gao.finalhw.model.Address;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
* @author wangsiyuan
@@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @createDate 2024-01-18 15:21:27
* @Entity com.gao.finalhw.model.Address
*/
+@Mapper
public interface AddressMapper extends BaseMapper {
}
diff --git a/src/main/java/com/gao/finalhw/mapper/OrdersMapper.java b/src/main/java/com/gao/finalhw/mapper/OrdersMapper.java
index 65fe110..6e948aa 100644
--- a/src/main/java/com/gao/finalhw/mapper/OrdersMapper.java
+++ b/src/main/java/com/gao/finalhw/mapper/OrdersMapper.java
@@ -2,6 +2,7 @@ package com.gao.finalhw.mapper;
import com.gao.finalhw.model.Orders;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
* @author wangsiyuan
@@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @createDate 2024-01-18 15:21:27
* @Entity com.gao.finalhw.model.Orders
*/
+@Mapper
public interface OrdersMapper extends BaseMapper {
}
diff --git a/src/main/java/com/gao/finalhw/mapper/RingMapper.java b/src/main/java/com/gao/finalhw/mapper/RingMapper.java
index 147adf0..ef713ae 100644
--- a/src/main/java/com/gao/finalhw/mapper/RingMapper.java
+++ b/src/main/java/com/gao/finalhw/mapper/RingMapper.java
@@ -2,6 +2,7 @@ package com.gao.finalhw.mapper;
import com.gao.finalhw.model.Ring;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
* @author wangsiyuan
@@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @createDate 2024-01-18 15:21:27
* @Entity com.gao.finalhw.model.Ring
*/
+@Mapper
public interface RingMapper extends BaseMapper {
}
diff --git a/src/main/java/com/gao/finalhw/mapper/ShoppingCartMapper.java b/src/main/java/com/gao/finalhw/mapper/ShoppingCartMapper.java
index 5b2af56..ff83b1b 100644
--- a/src/main/java/com/gao/finalhw/mapper/ShoppingCartMapper.java
+++ b/src/main/java/com/gao/finalhw/mapper/ShoppingCartMapper.java
@@ -2,6 +2,7 @@ package com.gao.finalhw.mapper;
import com.gao.finalhw.model.ShoppingCart;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
* @author wangsiyuan
@@ -9,6 +10,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @createDate 2024-01-18 15:21:27
* @Entity com.gao.finalhw.model.ShoppingCart
*/
+
+@Mapper
public interface ShoppingCartMapper extends BaseMapper {
}
diff --git a/src/main/java/com/gao/finalhw/mapper/UserInfoMapper.java b/src/main/java/com/gao/finalhw/mapper/UserInfoMapper.java
index c3cd2d0..43b98f8 100644
--- a/src/main/java/com/gao/finalhw/mapper/UserInfoMapper.java
+++ b/src/main/java/com/gao/finalhw/mapper/UserInfoMapper.java
@@ -2,6 +2,7 @@ package com.gao.finalhw.mapper;
import com.gao.finalhw.model.UserInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
/**
* @author wangsiyuan
@@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @createDate 2024-01-18 15:21:27
* @Entity com.gao.finalhw.model.UserInfo
*/
+@Mapper
public interface UserInfoMapper extends BaseMapper {
}
diff --git a/src/main/java/com/gao/finalhw/mapper/UserMapper.java b/src/main/java/com/gao/finalhw/mapper/UserMapper.java
index c5de3df..4bd1862 100644
--- a/src/main/java/com/gao/finalhw/mapper/UserMapper.java
+++ b/src/main/java/com/gao/finalhw/mapper/UserMapper.java
@@ -2,6 +2,8 @@ package com.gao.finalhw.mapper;
import com.gao.finalhw.model.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
/**
* @author wangsiyuan
@@ -9,8 +11,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @createDate 2024-01-18 15:21:27
* @Entity com.gao.finalhw.model.User
*/
+@Mapper
public interface UserMapper extends BaseMapper {
+ @Select("SELECT * FROM user WHERE user_name = #{username} AND password = #{password}")
+ User findByUsernameAndPassword(String username, String password);
}
diff --git a/src/main/java/com/gao/finalhw/pojo/LoginRequest.java b/src/main/java/com/gao/finalhw/pojo/LoginRequest.java
new file mode 100644
index 0000000..4188015
--- /dev/null
+++ b/src/main/java/com/gao/finalhw/pojo/LoginRequest.java
@@ -0,0 +1,11 @@
+package com.gao.finalhw.pojo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class LoginRequest {
+ private String username;
+ private String password;
+}
diff --git a/src/main/java/com/gao/finalhw/response/ResponseEnum.java b/src/main/java/com/gao/finalhw/response/ResponseEnum.java
new file mode 100644
index 0000000..f4d088a
--- /dev/null
+++ b/src/main/java/com/gao/finalhw/response/ResponseEnum.java
@@ -0,0 +1,23 @@
+package com.gao.finalhw.response;
+
+public enum ResponseEnum {
+ OK("0","ok"),
+ SHOW_FAIL("-1", "fail");
+ private final String code;
+ private final String msg;
+
+ public String getMsg() {return msg;}
+
+ public String value() {return code;}
+
+ public String getCode(){return code;}
+
+ ResponseEnum(String code, String msg) {
+ this.code = code;
+ this.msg = msg;
+ }
+ @Override
+ public String toString() {
+ return "ResponseEnum{" + "code='" + code + '\'' + ", msg='" + msg + '\'' + "} " + super.toString();
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/gao/finalhw/response/ServerResponseEntity.java b/src/main/java/com/gao/finalhw/response/ServerResponseEntity.java
new file mode 100644
index 0000000..beb7266
--- /dev/null
+++ b/src/main/java/com/gao/finalhw/response/ServerResponseEntity.java
@@ -0,0 +1,142 @@
+package com.gao.finalhw.response;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.io.Serializable;
+import java.time.Instant;
+import java.util.Objects;
+
+public class ServerResponseEntity implements Serializable {
+ private static final Logger logger = LoggerFactory.getLogger(ServerResponseEntity.class);
+ /** Response status code. */
+ private String code;
+
+ /** Response message. */
+ private String msg;
+
+ /** Response timestamp. */
+ private Long timestamp;
+
+ /** Response data. */
+ private T data;
+
+ public String getMsg(){return msg;}
+ public void setMsg(String msg){this.msg = msg;}
+ public String getCode(){return code;}
+ public void setCode(String code){this.code = code;}
+ public T getData() {return data;}
+
+ public Long getTimestamp() {return timestamp;}
+ public void setTimestamp(Long timestamp) {this.timestamp = timestamp;
+ }
+ public ServerResponseEntity setData(T data) {
+ this.data = data;
+ return this;
+ }
+ /** Timestamp when the response is created. Defaults to current time. */
+ @JsonIgnore
+ public boolean isSuccess(){return Objects.equals(ResponseEnum.OK.value(),this.code);}
+ @JsonIgnore
+ public boolean isFail(){return Objects.equals(ResponseEnum.SHOW_FAIL.value(),this.code);}
+ /**
+ * Creates a success response with data.
+ *
+ * @param data the response data
+ * @return the API response entity
+ */
+ public static ServerResponseEntity success(T data){
+ ServerResponseEntity serverResponseEntity = new ServerResponseEntity<>();
+ serverResponseEntity.setData(data);
+ serverResponseEntity.setCode(ResponseEnum.OK.value());
+ serverResponseEntity.setMsg(ResponseEnum.OK.getMsg());
+ serverResponseEntity.setTimestamp(Instant.now().getEpochSecond());
+ return serverResponseEntity;
+ }
+
+ /**
+ * Creates a success response without data.
+ *
+ * @return the API response entity
+ */
+ public static ServerResponseEntity success(){
+ ServerResponseEntity serverResponseEntity = new ServerResponseEntity<>();
+ serverResponseEntity.setCode(ResponseEnum.OK.value());
+ serverResponseEntity.setMsg(ResponseEnum.OK.getMsg());
+ serverResponseEntity.setTimestamp(Instant.now().getEpochSecond());
+ serverResponseEntity.setData(null);
+ return serverResponseEntity;
+ }
+
+ public static ServerResponseEntity success(Integer code, T data) {
+ return success(String.valueOf(code), data);
+ }
+
+ public static ServerResponseEntity success(String code, T data) {
+ ServerResponseEntity serverResponseEntity = new ServerResponseEntity<>();
+ serverResponseEntity.setCode(code);
+ serverResponseEntity.setData(data);
+ serverResponseEntity.getMsg();
+ serverResponseEntity.setTimestamp(Instant.now().getEpochSecond());
+ return serverResponseEntity;
+ }
+
+ public static ServerResponseEntity showFailMsg(String msg) {
+ logger.error(msg);
+ ServerResponseEntity serverResponseEntity = new ServerResponseEntity<>();
+ serverResponseEntity.setMsg(msg);
+ serverResponseEntity.setTimestamp(Instant.now().getEpochSecond());
+ serverResponseEntity.setCode(ResponseEnum.SHOW_FAIL.value());
+ return serverResponseEntity;
+ }
+
+ public static ServerResponseEntity fail(ResponseEnum responseEnum) {
+ logger.error(responseEnum.toString());
+ ServerResponseEntity serverResponseEntity = new ServerResponseEntity<>();
+ serverResponseEntity.setMsg(responseEnum.getMsg());
+ serverResponseEntity.setTimestamp(Instant.now().getEpochSecond());
+ serverResponseEntity.setCode(responseEnum.value());
+ return serverResponseEntity;
+ }
+
+ public static ServerResponseEntity fail(ResponseEnum responseEnum, T data) {
+ ServerResponseEntity serverResponseEntity = new ServerResponseEntity<>();
+ serverResponseEntity.setMsg(responseEnum.getMsg());
+ serverResponseEntity.setCode(responseEnum.value());
+ serverResponseEntity.setTimestamp(Instant.now().getEpochSecond());
+ serverResponseEntity.setData(data);
+ return serverResponseEntity;
+ }
+
+ public static ServerResponseEntity fail(Integer code, String msg, T data) {
+ ServerResponseEntity serverResponseEntity = new ServerResponseEntity<>();
+ serverResponseEntity.setMsg(msg);
+ serverResponseEntity.setCode(String.valueOf(code));
+ serverResponseEntity.setData(data);
+ serverResponseEntity.setTimestamp(Instant.now().getEpochSecond());
+ return serverResponseEntity;
+ }
+ public static ServerResponseEntity fail(Integer code, String msg) {
+ return fail(code, msg, null);
+ }
+ public static ServerResponseEntity fail(String msg) {
+ return fail(-1,msg,null);
+ }
+ public static ServerResponseEntity fail(Integer code, T data) {
+ ServerResponseEntity serverResponseEntity = new ServerResponseEntity<>();
+ serverResponseEntity.setCode(String.valueOf(code));
+ serverResponseEntity.setData(data);
+ serverResponseEntity.setMsg("error");
+ serverResponseEntity.setTimestamp(Instant.now().getEpochSecond());
+ return serverResponseEntity;
+ }
+ @Override
+ public String toString() {
+ return "ApiResponseEntity{" +
+ "code='" + code + '\'' +
+ ", msg='" + msg + '\'' +
+ ", timestamp=" + timestamp +
+ ", data=" + data +
+ '}';
+ }
+}
diff --git a/src/main/java/com/gao/finalhw/service/UserService.java b/src/main/java/com/gao/finalhw/service/UserService.java
new file mode 100644
index 0000000..8e92da0
--- /dev/null
+++ b/src/main/java/com/gao/finalhw/service/UserService.java
@@ -0,0 +1,16 @@
+package com.gao.finalhw.service;
+
+import com.gao.finalhw.mapper.UserMapper;
+import com.gao.finalhw.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class UserService {
+ @Autowired
+ private UserMapper userMapper;
+
+ public User getUserByUsernameAndPassword(String username, String password) {
+ return userMapper.findByUsernameAndPassword(username, password);
+ }
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index bd800a5..09ee5a4 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,3 +1,3 @@
server.address=0.0.0.0
server.port=8090
-debug=true
\ No newline at end of file
+debug=false
\ No newline at end of file
diff --git a/src/main/resources/templates/login.html b/src/main/resources/templates/login.html
index 8244cee..9b01567 100644
--- a/src/main/resources/templates/login.html
+++ b/src/main/resources/templates/login.html
@@ -110,38 +110,51 @@
+