浏览代码

1.实现用户注册功能;
2.修改项目打包方式为war包。

Yumin 6 年之前
父节点
当前提交
ddcea65a4b

+ 8 - 1
pom.xml

@@ -6,7 +6,7 @@
     <groupId>cn.minbb</groupId>
     <artifactId>edu</artifactId>
     <version>0.0.1-SNAPSHOT</version>
-    <packaging>jar</packaging>
+    <packaging>war</packaging>
 
     <name>EDUServer</name>
     <description>EDUServer project for Spring Boot</description>
@@ -25,6 +25,13 @@
     </properties>
 
     <dependencies>
+        <!-- Tomcat -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-tomcat</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
         <!-- Web -->
         <dependency>
             <groupId>org.springframework.boot</groupId>

+ 8 - 1
src/main/java/cn/minbb/edu/EduApplication.java

@@ -2,11 +2,18 @@ package cn.minbb.edu;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
 
 @SpringBootApplication
-public class EduApplication {
+public class EduApplication extends SpringBootServletInitializer {
 
     public static void main(String[] args) {
         SpringApplication.run(EduApplication.class, args);
     }
+
+    @Override
+    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
+        return builder.sources(EduApplication.class);
+    }
 }

+ 38 - 5
src/main/java/cn/minbb/edu/controller/UserController.java

@@ -4,10 +4,7 @@ import cn.minbb.edu.model.User;
 import cn.minbb.edu.service.UserService;
 import com.alibaba.fastjson.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
@@ -17,8 +14,12 @@ import java.util.Map;
 @RequestMapping(value = "/user")
 public class UserController {
 
+    private final UserService userService;
+
     @Autowired
-    UserService userService;
+    public UserController(UserService userService) {
+        this.userService = userService;
+    }
 
     @RequestMapping(value = "/login", method = RequestMethod.POST)
     public String login(
@@ -45,4 +46,36 @@ public class UserController {
         }
         return JSONObject.toJSONString(result);
     }
+
+    @RequestMapping(value = "/register", method = RequestMethod.POST)
+    public String register(@RequestBody String userJSON, HttpServletRequest request) {
+        User userClient = JSONObject.parseObject(userJSON, User.class);
+        Map<String, Object> result = new HashMap<>();
+        if (userClient != null) {
+            String username = userClient.getUsername();
+            if (userService.findUserByUsername(username) == null) {
+                // 用户不存在 - 可以注册
+                User user = userService.save(new User(username, userClient.getPassword()));
+                if (user != null) {
+                    // 注册成功
+                    result.put("result", 200);
+                    result.put("summary", "注册成功");
+                    result.put("data", user);
+                } else {
+                    // 注册失败
+                    result.put("result", 404);
+                    result.put("summary", "注册失败");
+                }
+            } else {
+                // 用户存在 - 不可以注册
+                result.put("result", 404);
+                result.put("summary", "用户已存在");
+            }
+        } else {
+            // 错误的注册请求
+            result.put("result", 404);
+            result.put("summary", "错误的注册请求");
+        }
+        return JSONObject.toJSONString(result);
+    }
 }

+ 6 - 0
src/main/java/cn/minbb/edu/model/User.java

@@ -6,6 +6,7 @@ import lombok.NoArgsConstructor;
 import lombok.Setter;
 
 import javax.persistence.*;
+import javax.validation.constraints.NotNull;
 
 @Entity
 @Table(name = "user")
@@ -44,4 +45,9 @@ public class User {
     @Setter
     @Column(name = "school", columnDefinition = "VARCHAR(64) COMMENT '学校'")
     private String school;
+
+    public User(@NotNull String username, @NotNull String password) {
+        this.username = username;
+        this.password = password;
+    }
 }

+ 2 - 0
src/main/java/cn/minbb/edu/service/UserService.java

@@ -3,5 +3,7 @@ package cn.minbb.edu.service;
 import cn.minbb.edu.model.User;
 
 public interface UserService {
+    User save(User user);
+
     User findUserByUsername(String username);
 }

+ 10 - 1
src/main/java/cn/minbb/edu/service/impl/UserServiceImpl.java

@@ -9,8 +9,17 @@ import org.springframework.stereotype.Service;
 @Service
 public class UserServiceImpl implements UserService {
 
+    private final UserRepository userRepository;
+
     @Autowired
-    UserRepository userRepository;
+    public UserServiceImpl(UserRepository userRepository) {
+        this.userRepository = userRepository;
+    }
+
+    @Override
+    public User save(User user) {
+        return userRepository.save(user);
+    }
 
     @Override
     public User findUserByUsername(String username) {