Selaa lähdekoodia

初始化Controller层与Service层,定义注解与统一异常处理类

Diors.Po 6 vuotta sitten
vanhempi
commit
0b78f6c115
20 muutettua tiedostoa jossa 171 lisäystä ja 8 poistoa
  1. 11 0
      pom.xml
  2. 16 0
      src/main/java/com/mooctest/crowd/domain/annotation/LoginRequired.java
  3. 12 0
      src/main/java/com/mooctest/crowd/domain/constants/ResponseConstant.java
  4. 1 1
      src/main/java/com/mooctest/crowd/domain/controller/CommonController.java
  5. 9 0
      src/main/java/com/mooctest/crowd/domain/controller/CrowdProjectController.java
  6. 9 0
      src/main/java/com/mooctest/crowd/domain/controller/CrowdReportController.java
  7. 9 0
      src/main/java/com/mooctest/crowd/domain/controller/CrowdTaskController.java
  8. 9 0
      src/main/java/com/mooctest/crowd/domain/controller/UserController.java
  9. 29 0
      src/main/java/com/mooctest/crowd/domain/controller/advice/ExceptionAdvice.java
  10. 22 0
      src/main/java/com/mooctest/crowd/domain/data/ResponseMessage.java
  11. 1 1
      src/main/java/com/mooctest/crowd/domain/exception/AccountNotExistException.java
  12. 9 0
      src/main/java/com/mooctest/crowd/domain/exception/BaseException.java
  13. 1 1
      src/main/java/com/mooctest/crowd/domain/exception/CrowdTestProjectNotExistException.java
  14. 1 1
      src/main/java/com/mooctest/crowd/domain/exception/CrowdTestReportNotExistException.java
  15. 1 1
      src/main/java/com/mooctest/crowd/domain/exception/CrowdTestTaskNoPriceException.java
  16. 1 1
      src/main/java/com/mooctest/crowd/domain/exception/CrowdTestTaskNotExistException.java
  17. 1 1
      src/main/java/com/mooctest/crowd/domain/exception/PasswordErrorException.java
  18. 2 1
      src/main/java/com/mooctest/crowd/domain/mediator/impl/WebMediatorImpl.java
  19. 8 0
      src/main/java/com/mooctest/crowd/domain/service/CommonService.java
  20. 19 0
      src/main/java/com/mooctest/crowd/domain/service/impl/CommonServiceImpl.java

+ 11 - 0
pom.xml

@@ -54,6 +54,17 @@
             <artifactId>lombok</artifactId>
             <version>1.18.6</version>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <version>RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-web</artifactId>
+            <version>5.1.8.RELEASE</version>
+        </dependency>
     </dependencies>
     <build>
         <plugins>

+ 16 - 0
src/main/java/com/mooctest/crowd/domain/annotation/LoginRequired.java

@@ -0,0 +1,16 @@
+package com.mooctest.crowd.domain.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-07-24 23:50
+ */
+@Target({ElementType.METHOD, ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface LoginRequired {
+}

+ 12 - 0
src/main/java/com/mooctest/crowd/domain/constants/ResponseConstant.java

@@ -0,0 +1,12 @@
+package com.mooctest.crowd.domain.constants;
+
+public class ResponseConstant {
+    public static final int OK = 2000;
+    public static final int FAIL = 4000;
+    public static final int ERROR = 5000;
+    public static final int UNAUTH = 40001;
+
+    public static final String REQUEST_SUCCESS = "请求成功";
+    public static final String SYSTEM_EEROR = "系统出错";
+    public static final String USER_NOT_EXISTS = "账号不存在";
+}

+ 1 - 1
src/main/java/com/mooctest/crowd/domain/controller/CommonController.java

@@ -1 +1 @@
-package com.mooctest.crowd.domain.controller;

/**
 * @Author: xuexb
 * @Date: 2019.7.22 16:51
 */
public class CommonController {
}
+package com.mooctest.crowd.domain.controller;


import com.mooctest.crowd.domain.constants.ResponseConstant;
import com.mooctest.crowd.domain.data.ResponseMessage;
import com.mooctest.crowd.domain.data.dto.IndexDTO;
import com.mooctest.crowd.domain.service.CommonService;
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.RestController;

/**
 * @Author: xuexb
 * @Date: 2019.7.22 16:51
 */
@RestController
public class CommonController {

    @Autowired
    private CommonService commonService;

    @RequestMapping(value = "/index", method = RequestMethod.GET)
    public ResponseMessage<IndexDTO> index(){
        return new ResponseMessage<>(ResponseConstant.OK,
                ResponseConstant.REQUEST_SUCCESS,
                commonService.getIndexInfo());
    }
}

+ 9 - 0
src/main/java/com/mooctest/crowd/domain/controller/CrowdProjectController.java

@@ -0,0 +1,9 @@
+package com.mooctest.crowd.domain.controller;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-07-24 23:50
+ */
+public class CrowdProjectController {
+}

+ 9 - 0
src/main/java/com/mooctest/crowd/domain/controller/CrowdReportController.java

@@ -0,0 +1,9 @@
+package com.mooctest.crowd.domain.controller;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-07-24 23:50
+ */
+public class CrowdReportController {
+}

+ 9 - 0
src/main/java/com/mooctest/crowd/domain/controller/CrowdTaskController.java

@@ -0,0 +1,9 @@
+package com.mooctest.crowd.domain.controller;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-07-24 23:50
+ */
+public class CrowdTaskController {
+}

+ 9 - 0
src/main/java/com/mooctest/crowd/domain/controller/UserController.java

@@ -0,0 +1,9 @@
+package com.mooctest.crowd.domain.controller;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-07-24 23:50
+ */
+public class UserController {
+}

+ 29 - 0
src/main/java/com/mooctest/crowd/domain/controller/advice/ExceptionAdvice.java

@@ -0,0 +1,29 @@
+package com.mooctest.crowd.domain.controller.advice;
+
+import com.mooctest.crowd.domain.constants.ResponseConstant;
+import com.mooctest.crowd.domain.data.ResponseMessage;
+import com.mooctest.crowd.domain.exception.AccountNotExistException;
+import com.mooctest.crowd.domain.exception.BaseException;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-07-25 00:08
+ */
+@RestControllerAdvice
+public class ExceptionAdvice {
+
+
+    @ExceptionHandler(BaseException.class)
+    @ResponseStatus(HttpStatus.BAD_REQUEST)
+    public ResponseMessage handleException(Exception e){
+        if (e instanceof AccountNotExistException){
+            return new ResponseMessage(ResponseConstant.FAIL, ResponseConstant.USER_NOT_EXISTS);
+        }
+        return null;
+    }
+}

+ 22 - 0
src/main/java/com/mooctest/crowd/domain/data/ResponseMessage.java

@@ -0,0 +1,22 @@
+package com.mooctest.crowd.domain.data;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ResponseMessage<T> {
+    private int code;
+    private String msg;
+    private T data;
+
+    public static final ResponseMessage OK = new ResponseMessage();
+
+    public ResponseMessage(int code, String msg){
+        this.code = code;
+        this.msg = msg;
+    }
+
+}

+ 1 - 1
src/main/java/com/mooctest/crowd/domain/exception/AccountNotExistException.java

@@ -4,5 +4,5 @@ package com.mooctest.crowd.domain.exception;
  * @Author: xuexb
  * @Date: 2019.7.5 14:36
  */
-public class AccountNotExistException extends Exception {
+public class AccountNotExistException extends BaseException {
 }

+ 9 - 0
src/main/java/com/mooctest/crowd/domain/exception/BaseException.java

@@ -0,0 +1,9 @@
+package com.mooctest.crowd.domain.exception;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-07-25 00:15
+ */
+public class BaseException extends Exception {
+}

+ 1 - 1
src/main/java/com/mooctest/crowd/domain/exception/CrowdTestProjectNotExistException.java

@@ -4,5 +4,5 @@ package com.mooctest.crowd.domain.exception;
  * @author guochao
  * @date 2019/7/6 22:10
  */
-public class CrowdTestProjectNotExistException extends Throwable {
+public class CrowdTestProjectNotExistException extends BaseException {
 }

+ 1 - 1
src/main/java/com/mooctest/crowd/domain/exception/CrowdTestReportNotExistException.java

@@ -4,5 +4,5 @@ package com.mooctest.crowd.domain.exception;
  * @author guochao
  * @date 2019/7/16 14:04
  */
-public class CrowdTestReportNotExistException extends Throwable {
+public class CrowdTestReportNotExistException extends BaseException {
 }

+ 1 - 1
src/main/java/com/mooctest/crowd/domain/exception/CrowdTestTaskNoPriceException.java

@@ -4,5 +4,5 @@ package com.mooctest.crowd.domain.exception;
  * @author guochao
  * @date 2019/7/16 9:23
  */
-public class CrowdTestTaskNoPriceException extends Throwable {
+public class CrowdTestTaskNoPriceException extends BaseException {
 }

+ 1 - 1
src/main/java/com/mooctest/crowd/domain/exception/CrowdTestTaskNotExistException.java

@@ -4,5 +4,5 @@ package com.mooctest.crowd.domain.exception;
  * @author guochao
  * @date 2019/7/6 22:10
  */
-public class CrowdTestTaskNotExistException extends Throwable {
+public class CrowdTestTaskNotExistException extends BaseException {
 }

+ 1 - 1
src/main/java/com/mooctest/crowd/domain/exception/PasswordErrorException.java

@@ -4,5 +4,5 @@ package com.mooctest.crowd.domain.exception;
  * @Author: xuexb
  * @Date: 2019.7.5 14:47
  */
-public class PasswordErrorException extends Throwable {
+public class PasswordErrorException extends BaseException {
 }

+ 2 - 1
src/main/java/com/mooctest/crowd/domain/mediator/impl/WebMediatorImpl.java

@@ -7,13 +7,14 @@ import com.mooctest.crowd.domain.exception.PasswordErrorException;
 import com.mooctest.crowd.domain.factory.AccountFactory;
 import com.mooctest.crowd.domain.mediator.Mediator;
 import com.mooctest.crowd.domain.domainservice.RegisterDService;
+import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
 /**
  * @Author: xuexb
  * @Date: 2019.7.16 20:27
  */
-@Service
+@Component
 public class WebMediatorImpl implements Mediator {
 
     @Override

+ 8 - 0
src/main/java/com/mooctest/crowd/domain/service/CommonService.java

@@ -0,0 +1,8 @@
+package com.mooctest.crowd.domain.service;
+
+import com.mooctest.crowd.domain.data.ResponseMessage;
+import com.mooctest.crowd.domain.data.dto.IndexDTO;
+
+public interface CommonService {
+    IndexDTO getIndexInfo();
+}

+ 19 - 0
src/main/java/com/mooctest/crowd/domain/service/impl/CommonServiceImpl.java

@@ -0,0 +1,19 @@
+package com.mooctest.crowd.domain.service.impl;
+
+import com.mooctest.crowd.domain.data.dto.IndexDTO;
+import com.mooctest.crowd.domain.mediator.Mediator;
+import com.mooctest.crowd.domain.service.CommonService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class CommonServiceImpl implements CommonService {
+
+    @Autowired
+    private Mediator mediator;
+
+    @Override
+    public IndexDTO getIndexInfo() {
+        return mediator.renderIndex();
+    }
+}