浏览代码

1.添加用户控制器,实现APP端用户注册登录逻辑;
2.添加数据返回结果对象实体。

Yumin 5 年之前
父节点
当前提交
ffce8d9f7c

+ 6 - 0
src/main/java/cn/minbb/iot/controller/rest/IoTController.java

@@ -1,6 +1,7 @@
 package cn.minbb.iot.controller.rest;
 
 import cn.minbb.iot.service.MqttGateway;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -13,4 +14,9 @@ public class IoTController {
     public IoTController(MqttGateway mqttGateway) {
         this.mqttGateway = mqttGateway;
     }
+
+    @GetMapping("status")
+    public String status() {
+        return "IoT Server is Running...";
+    }
 }

+ 87 - 0
src/main/java/cn/minbb/iot/controller/rest/UserController.java

@@ -0,0 +1,87 @@
+package cn.minbb.iot.controller.rest;
+
+import cn.minbb.iot.data.ResponseResult;
+import cn.minbb.iot.model.User;
+import cn.minbb.iot.service.UserService;
+import com.alibaba.fastjson.JSONObject;
+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.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+
+@RestController
+@RequestMapping("app/user")
+public class UserController {
+
+    private UserService userService;
+
+    @Autowired
+    public UserController(UserService userService) {
+        this.userService = userService;
+    }
+
+    @PostMapping("login")
+    public ResponseResult<User> userLogin(@RequestBody String data) {
+        ResponseResult<User> result = null;
+        User userClient = JSONObject.parseObject(data, User.class);
+        if (null != userClient) {
+            User user = userService.findUserByUsername(userClient.getUsername());
+            if (user == null) {
+                // 用户不存在
+                result = ResponseResult.ok(false).code(0).message("用户不存在").dataNone();
+            } else {
+                if (userClient.getPassword().equals(user.getPassword())) {
+                    // OK
+                    result = ResponseResult.ok(true).code(1).message("登录成功").data(user);
+                } else {
+                    // 密码错误
+                    result = ResponseResult.ok(false).code(0).message("密码错误").dataNone();
+                }
+            }
+        }
+        return result;
+    }
+
+    @PostMapping(value = "register")
+    public ResponseResult<User> register(@RequestBody String userJSON, HttpServletRequest request) {
+        ResponseResult<User> result = new ResponseResult<>();
+        User userClient = JSONObject.parseObject(userJSON, User.class);
+        if (userClient != null) {
+            String username = userClient.getUsername();
+            if (userService.findUserByUsername(username) == null) {
+                // 用户不存在 - 可以注册
+                User u = new User(userClient.getName(), username, userClient.getPassword());
+//                Set<UserRole> userRoleSet = new HashSet<>();
+//                userRoleSet.add(userRoleService.findOneByRole(UserRole.Role.USER));
+//                u.setUserRoleSet(userRoleSet);
+                User user = userService.saveOne(u);
+                if (user != null) {
+                    // 注册成功
+                    result.setCode(1);
+                    result.setSuccess(true);
+                    result.setMessage("注册成功");
+                    result.setData(user);
+                } else {
+                    // 注册失败
+                    result.setCode(0);
+                    result.setSuccess(false);
+                    result.setMessage("注册失败");
+                }
+            } else {
+                // 用户存在 - 不可以注册
+                result.setCode(0);
+                result.setSuccess(false);
+                result.setMessage("用户已存在");
+            }
+        } else {
+            // 错误的注册请求
+            result.setCode(0);
+            result.setSuccess(false);
+            result.setMessage("错误的注册请求");
+        }
+        return result;
+    }
+}

+ 85 - 0
src/main/java/cn/minbb/iot/data/ResponseResult.java

@@ -0,0 +1,85 @@
+package cn.minbb.iot.data;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Collection;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ResponseResult<T extends Serializable> implements Serializable {
+
+    private Integer code = -1;
+
+    private Boolean success = false;
+
+    private String message = "";
+
+    private T data;
+
+    private Collection<T> dataset;
+
+    public static ResponseResult.Builder ok(Boolean success) {
+        return new ResultBuilder(success);
+    }
+
+    private static class ResultBuilder implements Builder {
+
+        private Integer code;
+        private Boolean success;
+        private String message;
+
+        ResultBuilder(boolean success) {
+            this.success = success;
+        }
+
+        @Override
+        public Builder code(Integer code) {
+            this.code = code;
+            return this;
+        }
+
+        @Override
+        public Builder message(String message) {
+            this.message = message;
+            return this;
+        }
+
+        @Override
+        public <T extends Serializable> ResponseResult<T> data(T data) {
+            return new ResponseResult<>(code, success, message, data, null);
+        }
+
+        @Override
+        public <T extends Serializable> ResponseResult<T> dataset(Collection<T> dataset) {
+            return new ResponseResult<>(code, success, message, null, dataset);
+        }
+
+        @Override
+        public <T extends Serializable> ResponseResult<T> dataAll(T data, Collection<T> dataset) {
+            return new ResponseResult<>(code, success, message, data, dataset);
+        }
+
+        @Override
+        public <T extends Serializable> ResponseResult<T> dataNone() {
+            return new ResponseResult<>(code, success, message, null, null);
+        }
+    }
+
+    public interface Builder {
+        Builder code(Integer code);
+
+        Builder message(String message);
+
+        <T extends Serializable> ResponseResult<T> data(T data);
+
+        <T extends Serializable> ResponseResult<T> dataset(Collection<T> dataset);
+
+        <T extends Serializable> ResponseResult<T> dataAll(T data, Collection<T> dataset);
+
+        <T extends Serializable> ResponseResult<T> dataNone();
+    }
+}

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

@@ -68,4 +68,10 @@ public class User implements Serializable {
         this.username = username;
         this.password = password;
     }
+
+    public User(String name, String username, String password) {
+        this.name = name;
+        this.username = username;
+        this.password = password;
+    }
 }