Bladeren bron

项目划分为多模块

Diors.Po 6 jaren geleden
bovenliggende
commit
38cc48911f
100 gewijzigde bestanden met toevoegingen van 746 en 278 verwijderingen
  1. BIN
      .DS_Store
  2. 31 15
      .gitignore
  3. BIN
      core/.DS_Store
  4. 87 0
      core/pom.xml
  5. 0 0
      core/src/main/java/com/mooctest/crowd/domain/command/AccountCommand.java
  6. 12 0
      core/src/main/java/com/mooctest/crowd/domain/command/CreateProjectCommand.java
  7. 0 0
      core/src/main/java/com/mooctest/crowd/domain/command/CrowdTestProjectCommand.java
  8. 0 0
      core/src/main/java/com/mooctest/crowd/domain/command/CrowdTestReportCommand.java
  9. 0 0
      core/src/main/java/com/mooctest/crowd/domain/command/CrowdTestTaskCommand.java
  10. 6 0
      core/src/main/java/com/mooctest/crowd/domain/command/LoginCommand.java
  11. 0 0
      core/src/main/java/com/mooctest/crowd/domain/command/ModifyPasswordCommand.java
  12. 9 0
      core/src/main/java/com/mooctest/crowd/domain/command/ProjectDetailsCommand.java
  13. 29 0
      core/src/main/java/com/mooctest/crowd/domain/command/RegisterCommand.java
  14. 9 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/Account.java
  15. 0 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestProject.java
  16. 0 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestProjectStatus.java
  17. 0 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestReport.java
  18. 0 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestReportStatus.java
  19. 0 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestTask.java
  20. 0 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestTaskStatus.java
  21. 0 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/DistributeType.java
  22. 0 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/EvaluationAgency.java
  23. 0 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/GeneralUser.java
  24. 0 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/Permission.java
  25. 0 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/RegionalManager.java
  26. 0 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/Role.java
  27. 0 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/SystemAdministrator.java
  28. 0 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/User.java
  29. 4 0
      core/src/main/java/com/mooctest/crowd/domain/domainservice/RegisterDService.java
  30. 0 0
      core/src/main/java/com/mooctest/crowd/domain/exception/AccountNotExistException.java
  31. 15 0
      core/src/main/java/com/mooctest/crowd/domain/exception/BadRequestException.java
  32. 6 0
      core/src/main/java/com/mooctest/crowd/domain/exception/BaseException.java
  33. 0 0
      core/src/main/java/com/mooctest/crowd/domain/exception/CrowdTestProjectNotExistException.java
  34. 0 0
      core/src/main/java/com/mooctest/crowd/domain/exception/CrowdTestReportNotExistException.java
  35. 0 0
      core/src/main/java/com/mooctest/crowd/domain/exception/CrowdTestTaskNoPriceException.java
  36. 0 0
      core/src/main/java/com/mooctest/crowd/domain/exception/CrowdTestTaskNotExistException.java
  37. 0 0
      core/src/main/java/com/mooctest/crowd/domain/exception/PasswordErrorException.java
  38. 0 0
      core/src/main/java/com/mooctest/crowd/domain/factory/AccountFactory.java
  39. 0 0
      core/src/main/java/com/mooctest/crowd/domain/factory/CrowdTestProjectFactory.java
  40. 2 0
      core/src/main/java/com/mooctest/crowd/domain/repository/AccountUTRepo.java
  41. 0 0
      core/src/main/java/com/mooctest/crowd/domain/repository/CrowdTestProjectRepo.java
  42. 0 0
      core/src/main/java/com/mooctest/crowd/domain/repository/IAccountRepo.java
  43. 0 0
      core/src/main/java/com/mooctest/crowd/domain/repository/ICrowdTestProjectRepo.java
  44. 0 0
      core/src/test/java/com/mooctest/crowd/domain/domainobject/AccountTest.java
  45. 0 0
      core/src/test/java/com/mooctest/crowd/domain/domainobject/EvaluationAgencyTest.java
  46. 0 0
      core/src/test/java/com/mooctest/crowd/domain/domainobject/GeneralUserTest.java
  47. 0 0
      core/src/test/java/com/mooctest/crowd/domain/domainobject/RegionalManagerTest.java
  48. 0 0
      core/src/test/java/com/mooctest/crowd/domain/domainobject/SystemAdministratorTest.java
  49. 0 0
      core/src/test/java/com/mooctest/crowd/domain/domainservice/RegisterDServiceTest.java
  50. 8 82
      pom.xml
  51. 78 0
      site/pom.xml
  52. 13 0
      site/src/main/java/com/mooctest/crowd/site/SiteApplication.java
  53. 1 1
      site/src/main/java/com/mooctest/crowd/site/annotation/LoginRequired.java
  54. 14 0
      site/src/main/java/com/mooctest/crowd/site/command/AccountCommand.java
  55. 12 0
      site/src/main/java/com/mooctest/crowd/site/command/CreateProjectCommand.java
  56. 24 0
      site/src/main/java/com/mooctest/crowd/site/command/CrowdTestProjectCommand.java
  57. 20 0
      site/src/main/java/com/mooctest/crowd/site/command/CrowdTestReportCommand.java
  58. 22 0
      site/src/main/java/com/mooctest/crowd/site/command/CrowdTestTaskCommand.java
  59. 25 0
      site/src/main/java/com/mooctest/crowd/site/command/LoginCommand.java
  60. 14 0
      site/src/main/java/com/mooctest/crowd/site/command/ModifyPasswordCommand.java
  61. 9 0
      site/src/main/java/com/mooctest/crowd/site/command/ProjectDetailsCommand.java
  62. 30 0
      site/src/main/java/com/mooctest/crowd/site/command/RegisterCommand.java
  63. 2 1
      site/src/main/java/com/mooctest/crowd/site/constants/ResponseConstant.java
  64. 1 0
      site/src/main/java/com/mooctest/crowd/site/controller/CommonController.java
  65. 27 0
      site/src/main/java/com/mooctest/crowd/site/controller/CrowdProjectController.java
  66. 1 1
      site/src/main/java/com/mooctest/crowd/site/controller/CrowdReportController.java
  67. 1 1
      site/src/main/java/com/mooctest/crowd/site/controller/CrowdTaskController.java
  68. 42 0
      site/src/main/java/com/mooctest/crowd/site/controller/UserController.java
  69. 40 0
      site/src/main/java/com/mooctest/crowd/site/controller/advice/ExceptionAdvice.java
  70. 1 1
      site/src/main/java/com/mooctest/crowd/site/data/ResponseMessage.java
  71. 4 4
      site/src/main/java/com/mooctest/crowd/site/data/dto/IndexDTO.java
  72. 4 4
      site/src/main/java/com/mooctest/crowd/site/data/dto/MyCrowdDTO.java
  73. 4 4
      site/src/main/java/com/mooctest/crowd/site/data/dto/ProjectDetailsDTO.java
  74. 2 2
      site/src/main/java/com/mooctest/crowd/site/data/dto/ReportDetailsDTO.java
  75. 3 3
      site/src/main/java/com/mooctest/crowd/site/data/dto/TaskDetailsDTO.java
  76. 2 2
      site/src/main/java/com/mooctest/crowd/site/data/dto/TaskSquareDTO.java
  77. 7 3
      site/src/main/java/com/mooctest/crowd/site/data/dto/UserDTO.java
  78. 1 1
      site/src/main/java/com/mooctest/crowd/site/data/vo/CrowdProjectVO.java
  79. 1 1
      site/src/main/java/com/mooctest/crowd/site/data/vo/CrowdReportVO.java
  80. 1 1
      site/src/main/java/com/mooctest/crowd/site/data/vo/CrowdTaskVO.java
  81. 1 1
      site/src/main/java/com/mooctest/crowd/site/data/vo/EvolutionAgencyVO.java
  82. 39 0
      site/src/main/java/com/mooctest/crowd/site/data/vo/UserVO.java
  83. 8 6
      site/src/main/java/com/mooctest/crowd/site/mediator/Mediator.java
  84. 22 11
      site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java
  85. 9 0
      site/src/main/java/com/mooctest/crowd/site/service/CommonService.java
  86. 1 0
      site/src/main/java/com/mooctest/crowd/site/service/UserService.java
  87. 6 4
      site/src/main/java/com/mooctest/crowd/site/service/impl/CommonServiceImpl.java
  88. 1 0
      site/src/main/java/com/mooctest/crowd/site/service/impl/UserServiceImpl.java
  89. 1 0
      site/src/main/resources/application.properties
  90. 16 0
      site/src/test/java/com/mooctest/crowd/site/SiteApplicationTests.java
  91. 18 28
      site/src/test/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImplTest.java
  92. 0 18
      src/main/java/com/mooctest/crowd/domain/command/RegisterCommand.java
  93. 0 1
      src/main/java/com/mooctest/crowd/domain/controller/CommonController.java
  94. 0 9
      src/main/java/com/mooctest/crowd/domain/controller/CrowdProjectController.java
  95. 0 9
      src/main/java/com/mooctest/crowd/domain/controller/UserController.java
  96. 0 29
      src/main/java/com/mooctest/crowd/domain/controller/advice/ExceptionAdvice.java
  97. 0 25
      src/main/java/com/mooctest/crowd/domain/data/vo/UserVO.java
  98. 0 8
      src/main/java/com/mooctest/crowd/domain/service/CommonService.java
  99. 0 1
      src/main/java/com/mooctest/crowd/domain/service/UserService.java
  100. 0 1
      src/main/java/com/mooctest/crowd/domain/service/impl/UserServiceImpl.java

BIN
.DS_Store


+ 31 - 15
.gitignore

@@ -1,17 +1,33 @@
-tmp
-precompiled
-/conf/application.conf
-test-result
+HELP.md
+target/
+core/target/
+site/target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**
+!**/src/test/**
+
+### STS ###
+.apt_generated
 .classpath
+.factorypath
 .project
-*.launch
-*.classpath
-*.DS_Store
-**.iml
-**.ipr
-**.iws
-**.log
-/log/
-.idea/
-**target/
-.settings/
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+
+### VS Code ###
+.vscode/

BIN
core/.DS_Store


+ 87 - 0
core/pom.xml

@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>com.mooctest.crowd</groupId>
+    <artifactId>core</artifactId>
+    <version>1.0-SNAPSHOT</version>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.12</version>
+        </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-all</artifactId>
+            <version>1.10.19</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.powermock</groupId>
+            <artifactId>powermock-module-junit4</artifactId>
+            <version>1.6.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.powermock</groupId>
+            <artifactId>powermock-api-mockito</artifactId>
+            <version>1.6.4</version>
+        </dependency>
+
+        <!--dubbo-domainservice-api-->
+        <!--dubbo-dependency-->
+        <!-- https://mvnrepository.com/artifact/io.dubbo.springboot/spring-boot-starter-dubbo -->
+        <dependency>
+            <groupId>io.dubbo.springboot</groupId>
+            <artifactId>spring-boot-starter-dubbo</artifactId>
+            <version>1.0.0</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.javassist</groupId>
+                    <artifactId>javassist</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-log4j12</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.18.6</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <version>RELEASE</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+            <version>2.1.6.RELEASE</version>
+        </dependency>
+
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.7.0</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                </configuration>
+            </plugin>
+<!--            <plugin>-->
+<!--                <groupId>org.apache.maven.surefire</groupId>-->
+<!--                <artifactId>surefire-junit4</artifactId>-->
+<!--                <version>2.12.4</version>-->
+<!--            </plugin>-->
+        </plugins>
+    </build>
+</project>

+ 0 - 0
src/main/java/com/mooctest/crowd/domain/command/AccountCommand.java → core/src/main/java/com/mooctest/crowd/domain/command/AccountCommand.java


+ 12 - 0
core/src/main/java/com/mooctest/crowd/domain/command/CreateProjectCommand.java

@@ -0,0 +1,12 @@
+package com.mooctest.crowd.domain.command;
+
+import lombok.Data;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-07-25 14:37
+ */
+@Data
+public class CreateProjectCommand {
+}

+ 0 - 0
src/main/java/com/mooctest/crowd/domain/command/CrowdTestProjectCommand.java → core/src/main/java/com/mooctest/crowd/domain/command/CrowdTestProjectCommand.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/command/CrowdTestReportCommand.java → core/src/main/java/com/mooctest/crowd/domain/command/CrowdTestReportCommand.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/command/CrowdTestTaskCommand.java → core/src/main/java/com/mooctest/crowd/domain/command/CrowdTestTaskCommand.java


+ 6 - 0
src/main/java/com/mooctest/crowd/domain/command/LoginCommand.java → core/src/main/java/com/mooctest/crowd/domain/command/LoginCommand.java

@@ -4,6 +4,9 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
 /**
  * @Author: xuexb
  * @Date: 2019.7.5 14:24
@@ -12,7 +15,10 @@ import lombok.NoArgsConstructor;
 @NoArgsConstructor
 @AllArgsConstructor
 public class LoginCommand {
+    @NotNull(message = "Mobile number must not be null")
+    @Pattern(regexp = "^[0-9]{11}$", message = "Mobile number is illegal")
     private String mobileNum;
+
     private String password;
     private String checkCode;
 }

+ 0 - 0
src/main/java/com/mooctest/crowd/domain/command/ModifyPasswordCommand.java → core/src/main/java/com/mooctest/crowd/domain/command/ModifyPasswordCommand.java


+ 9 - 0
core/src/main/java/com/mooctest/crowd/domain/command/ProjectDetailsCommand.java

@@ -0,0 +1,9 @@
+package com.mooctest.crowd.domain.command;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-07-25 14:42
+ */
+public class ProjectDetailsCommand {
+}

+ 29 - 0
core/src/main/java/com/mooctest/crowd/domain/command/RegisterCommand.java

@@ -0,0 +1,29 @@
+package com.mooctest.crowd.domain.command;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+/**
+ * @Author: xuexb
+ * @Date: 2019.7.5 14:09
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class RegisterCommand {
+    @NotNull(message = "Mobile number must not be null")
+    @Pattern(regexp = "^[0-9]{11}$", message = "Mobile number is illegal")
+    private String mobileNum;
+
+    @NotNull(message = "Checkcode must not be null")
+    private String checkCode;
+
+    @NotNull(message = "Password must not be null")
+    @Length(min = 6, max = 16, message = "The length of password must between 6~16")
+    private String password;
+}

+ 9 - 0
src/main/java/com/mooctest/crowd/domain/domainobject/Account.java → core/src/main/java/com/mooctest/crowd/domain/domainobject/Account.java

@@ -62,4 +62,13 @@ public class Account {
     }
 
 
+    public boolean login(String mobileNum, String password) throws PasswordErrorException {
+
+        if (this.getPassword().equals(password)){
+            return true;
+        }
+        else {
+            throw new PasswordErrorException();
+        }
+    }
 }

+ 0 - 0
src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestProject.java → core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestProject.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestProjectStatus.java → core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestProjectStatus.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestReport.java → core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestReport.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestReportStatus.java → core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestReportStatus.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestTask.java → core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestTask.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestTaskStatus.java → core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestTaskStatus.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/domainobject/DistributeType.java → core/src/main/java/com/mooctest/crowd/domain/domainobject/DistributeType.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/domainobject/EvaluationAgency.java → core/src/main/java/com/mooctest/crowd/domain/domainobject/EvaluationAgency.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/domainobject/GeneralUser.java → core/src/main/java/com/mooctest/crowd/domain/domainobject/GeneralUser.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/domainobject/Permission.java → core/src/main/java/com/mooctest/crowd/domain/domainobject/Permission.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/domainobject/RegionalManager.java → core/src/main/java/com/mooctest/crowd/domain/domainobject/RegionalManager.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/domainobject/Role.java → core/src/main/java/com/mooctest/crowd/domain/domainobject/Role.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/domainobject/SystemAdministrator.java → core/src/main/java/com/mooctest/crowd/domain/domainobject/SystemAdministrator.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/domainobject/User.java → core/src/main/java/com/mooctest/crowd/domain/domainobject/User.java


+ 4 - 0
src/main/java/com/mooctest/crowd/domain/domainservice/RegisterDService.java → core/src/main/java/com/mooctest/crowd/domain/domainservice/RegisterDService.java

@@ -15,4 +15,8 @@ public class RegisterDService {
         account.setMobileNum(cmd.getMobileNum());
         return account;
     }
+
+    public static Account register(String mobileNum, String password) {
+        return null;
+    }
 }

+ 0 - 0
src/main/java/com/mooctest/crowd/domain/exception/AccountNotExistException.java → core/src/main/java/com/mooctest/crowd/domain/exception/AccountNotExistException.java


+ 15 - 0
core/src/main/java/com/mooctest/crowd/domain/exception/BadRequestException.java

@@ -0,0 +1,15 @@
+package com.mooctest.crowd.domain.exception;
+
+import lombok.NoArgsConstructor;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-07-25 09:05
+ */
+@NoArgsConstructor
+public class BadRequestException extends BaseException {
+    public BadRequestException(String msg){
+        super(msg);
+    }
+}

+ 6 - 0
src/main/java/com/mooctest/crowd/domain/exception/BaseException.java → core/src/main/java/com/mooctest/crowd/domain/exception/BaseException.java

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

+ 0 - 0
src/main/java/com/mooctest/crowd/domain/exception/CrowdTestProjectNotExistException.java → core/src/main/java/com/mooctest/crowd/domain/exception/CrowdTestProjectNotExistException.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/exception/CrowdTestReportNotExistException.java → core/src/main/java/com/mooctest/crowd/domain/exception/CrowdTestReportNotExistException.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/exception/CrowdTestTaskNoPriceException.java → core/src/main/java/com/mooctest/crowd/domain/exception/CrowdTestTaskNoPriceException.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/exception/CrowdTestTaskNotExistException.java → core/src/main/java/com/mooctest/crowd/domain/exception/CrowdTestTaskNotExistException.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/exception/PasswordErrorException.java → core/src/main/java/com/mooctest/crowd/domain/exception/PasswordErrorException.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/factory/AccountFactory.java → core/src/main/java/com/mooctest/crowd/domain/factory/AccountFactory.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/factory/CrowdTestProjectFactory.java → core/src/main/java/com/mooctest/crowd/domain/factory/CrowdTestProjectFactory.java


+ 2 - 0
src/main/java/com/mooctest/crowd/domain/repository/AccountUTRepo.java → core/src/main/java/com/mooctest/crowd/domain/repository/AccountUTRepo.java

@@ -2,6 +2,7 @@ package com.mooctest.crowd.domain.repository;
 
 import com.mooctest.crowd.domain.domainobject.Account;
 import com.mooctest.crowd.domain.exception.AccountNotExistException;
+import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -10,6 +11,7 @@ import java.util.List;
  * @Author: xuexb
  * @Date: 2019.7.5 14:28
  */
+@Component
 public class AccountUTRepo implements IAccountRepo {
     @Override
     public Account getByMobileNum(String mobileNum) throws AccountNotExistException {

+ 0 - 0
src/main/java/com/mooctest/crowd/domain/repository/CrowdTestProjectRepo.java → core/src/main/java/com/mooctest/crowd/domain/repository/CrowdTestProjectRepo.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/repository/IAccountRepo.java → core/src/main/java/com/mooctest/crowd/domain/repository/IAccountRepo.java


+ 0 - 0
src/main/java/com/mooctest/crowd/domain/repository/ICrowdTestProjectRepo.java → core/src/main/java/com/mooctest/crowd/domain/repository/ICrowdTestProjectRepo.java


+ 0 - 0
src/test/java/com/mooctest/crowd/domain/domainobject/AccountTest.java → core/src/test/java/com/mooctest/crowd/domain/domainobject/AccountTest.java


+ 0 - 0
src/test/java/com/mooctest/crowd/domain/domainobject/EvaluationAgencyTest.java → core/src/test/java/com/mooctest/crowd/domain/domainobject/EvaluationAgencyTest.java


+ 0 - 0
src/test/java/com/mooctest/crowd/domain/domainobject/GeneralUserTest.java → core/src/test/java/com/mooctest/crowd/domain/domainobject/GeneralUserTest.java


+ 0 - 0
src/test/java/com/mooctest/crowd/domain/domainobject/RegionalManagerTest.java → core/src/test/java/com/mooctest/crowd/domain/domainobject/RegionalManagerTest.java


+ 0 - 0
src/test/java/com/mooctest/crowd/domain/domainobject/SystemAdministratorTest.java → core/src/test/java/com/mooctest/crowd/domain/domainobject/SystemAdministratorTest.java


+ 0 - 0
src/test/java/com/mooctest/crowd/domain/domainservice/RegisterDServiceTest.java → core/src/test/java/com/mooctest/crowd/domain/domainservice/RegisterDServiceTest.java


+ 8 - 82
pom.xml

@@ -1,87 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
-
     <groupId>com.mooctest.crowd</groupId>
-    <artifactId>domain</artifactId>
+    <artifactId>crowd</artifactId>
+    <packaging>pom</packaging>
     <version>1.0-SNAPSHOT</version>
-
-    <dependencies>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.12</version>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <version>1.10.19</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.powermock</groupId>
-            <artifactId>powermock-module-junit4</artifactId>
-            <version>1.6.4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.powermock</groupId>
-            <artifactId>powermock-api-mockito</artifactId>
-            <version>1.6.4</version>
-        </dependency>
-
-        <!--dubbo-domainservice-api-->
-        <!--dubbo-dependency-->
-        <!-- https://mvnrepository.com/artifact/io.dubbo.springboot/spring-boot-starter-dubbo -->
-        <dependency>
-            <groupId>io.dubbo.springboot</groupId>
-            <artifactId>spring-boot-starter-dubbo</artifactId>
-            <version>1.0.0</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.javassist</groupId>
-                    <artifactId>javassist</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-log4j12</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <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>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.7.0</version>
-                <configuration>
-                    <source>1.8</source>
-                    <target>1.8</target>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.surefire</groupId>
-                <artifactId>surefire-junit4</artifactId>
-                <version>2.18.1</version>
-            </plugin>
-        </plugins>
-    </build>
-</project>
+    <modules>
+        <module>core</module>
+        <module>site</module>
+    </modules>
+</project>

+ 78 - 0
site/pom.xml

@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.springframework.boot</groupId>
+		<artifactId>spring-boot-starter-parent</artifactId>
+		<version>2.1.6.RELEASE</version>
+		<relativePath/> <!-- lookup parent from repository -->
+	</parent>
+	<groupId>com.mooctest.crowd</groupId>
+	<artifactId>site</artifactId>
+	<version>0.0.1-SNAPSHOT</version>
+	<name>site</name>
+	<description>Demo project for Spring Boot</description>
+
+	<properties>
+		<java.version>1.8</java.version>
+	</properties>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-data-jpa</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-web</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>com.h2database</groupId>
+			<artifactId>h2</artifactId>
+			<scope>runtime</scope>
+		</dependency>
+		<dependency>
+			<groupId>mysql</groupId>
+			<artifactId>mysql-connector-java</artifactId>
+			<scope>runtime</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.projectlombok</groupId>
+			<artifactId>lombok</artifactId>
+			<optional>true</optional>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-test</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.12</version>
+		</dependency>
+		<dependency>
+			<groupId>org.mockito</groupId>
+			<artifactId>mockito-all</artifactId>
+			<version>1.10.19</version>
+		</dependency>
+		<dependency>
+			<groupId>com.mooctest.crowd</groupId>
+			<artifactId>core</artifactId>
+			<version>1.0-SNAPSHOT</version>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.springframework.boot</groupId>
+				<artifactId>spring-boot-maven-plugin</artifactId>
+
+			</plugin>
+		</plugins>
+	</build>
+
+</project>

+ 13 - 0
site/src/main/java/com/mooctest/crowd/site/SiteApplication.java

@@ -0,0 +1,13 @@
+package com.mooctest.crowd.site;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class SiteApplication {
+
+	public static void main(String[] args) {
+		SpringApplication.run(SiteApplication.class, args);
+	}
+
+}

+ 1 - 1
src/main/java/com/mooctest/crowd/domain/annotation/LoginRequired.java → site/src/main/java/com/mooctest/crowd/site/annotation/LoginRequired.java

@@ -1,4 +1,4 @@
-package com.mooctest.crowd.domain.annotation;
+package com.mooctest.crowd.site.annotation;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;

+ 14 - 0
site/src/main/java/com/mooctest/crowd/site/command/AccountCommand.java

@@ -0,0 +1,14 @@
+package com.mooctest.crowd.site.command;
+
+import lombok.Data;
+
+/**
+ * @Author: xuexb
+ * @Date: 2019.7.5 14:24
+ */
+@Data
+public class AccountCommand {
+    private Long id;
+    private String mobileNum;
+    private String password;
+}

+ 12 - 0
site/src/main/java/com/mooctest/crowd/site/command/CreateProjectCommand.java

@@ -0,0 +1,12 @@
+package com.mooctest.crowd.site.command;
+
+import lombok.Data;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-07-25 14:37
+ */
+@Data
+public class CreateProjectCommand {
+}

+ 24 - 0
site/src/main/java/com/mooctest/crowd/site/command/CrowdTestProjectCommand.java

@@ -0,0 +1,24 @@
+package com.mooctest.crowd.site.command;
+
+import lombok.Data;
+
+import java.io.File;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 18:50
+ */
+@Data
+public class CrowdTestProjectCommand {
+    private Long id;
+    private String name;
+    private Long ownerId;
+    private Long managerId;
+    private Long distributeId;
+    private String description;
+    private File projectFile;
+    private File requirement;
+    private double quotedPrice;
+    private double fixedPrice;
+    private String status;
+}

+ 20 - 0
site/src/main/java/com/mooctest/crowd/site/command/CrowdTestReportCommand.java

@@ -0,0 +1,20 @@
+package com.mooctest.crowd.site.command;
+
+import lombok.Data;
+
+/**
+ * @author guochao
+ * @date 2019/7/11 14:16
+ */
+@Data
+public class CrowdTestReportCommand {
+
+    private Long id;
+    private Long projectId;
+    private Long taskId;
+    private int type;
+    private String description;
+    private String content;
+    private String status;
+
+}

+ 22 - 0
site/src/main/java/com/mooctest/crowd/site/command/CrowdTestTaskCommand.java

@@ -0,0 +1,22 @@
+package com.mooctest.crowd.site.command;
+
+import lombok.Data;
+
+import java.io.File;
+
+/**
+ * @author guochao
+ * @date 2019/7/11 14:14
+ */
+@Data
+public class CrowdTestTaskCommand {
+    private Long id;
+    private String name;
+    private Long projectId;
+    private Long evaluationAgencyId;
+    private int type;
+    private String description;
+    private File requirementFile;
+    public Double price;
+    private String status;
+}

+ 25 - 0
site/src/main/java/com/mooctest/crowd/site/command/LoginCommand.java

@@ -0,0 +1,25 @@
+package com.mooctest.crowd.site.command;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+/**
+ * @Author: xuexb
+ * @Date: 2019.7.5 14:24
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class LoginCommand {
+    @NotNull(message = "Mobile number must not be null")
+    @Pattern(regexp = "^[0-9]{11}$", message = "Mobile number is illegal")
+    private String mobileNum;
+
+    private String password;
+    private String checkCode;
+}

+ 14 - 0
site/src/main/java/com/mooctest/crowd/site/command/ModifyPasswordCommand.java

@@ -0,0 +1,14 @@
+package com.mooctest.crowd.site.command;
+
+import lombok.Data;
+
+/**
+ * @author guochao
+ * @date 2019/7/5 19:13
+ */
+@Data
+public class ModifyPasswordCommand {
+    private String mobileNum;
+    private String oldPassword;
+    private String newPassword;
+}

+ 9 - 0
site/src/main/java/com/mooctest/crowd/site/command/ProjectDetailsCommand.java

@@ -0,0 +1,9 @@
+package com.mooctest.crowd.site.command;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-07-25 14:42
+ */
+public class ProjectDetailsCommand {
+}

+ 30 - 0
site/src/main/java/com/mooctest/crowd/site/command/RegisterCommand.java

@@ -0,0 +1,30 @@
+package com.mooctest.crowd.site.command;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.NonNull;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+/**
+ * @Author: xuexb
+ * @Date: 2019.7.5 14:09
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class RegisterCommand {
+    @NotNull(message = "Mobile number must not be null")
+    @Pattern(regexp = "^[0-9]{11}$", message = "Mobile number is illegal")
+    private String mobileNum;
+
+    @NotNull(message = "Checkcode must not be null")
+    private String checkCode;
+
+    @NotNull(message = "Password must not be null")
+    @Length(min = 6, max = 16, message = "The length of password must between 6~16")
+    private String password;
+}

+ 2 - 1
src/main/java/com/mooctest/crowd/domain/constants/ResponseConstant.java → site/src/main/java/com/mooctest/crowd/site/constants/ResponseConstant.java

@@ -1,4 +1,4 @@
-package com.mooctest.crowd.domain.constants;
+package com.mooctest.crowd.site.constants;
 
 public class ResponseConstant {
     public static final int OK = 2000;
@@ -7,6 +7,7 @@ public class ResponseConstant {
     public static final int UNAUTH = 40001;
 
     public static final String REQUEST_SUCCESS = "请求成功";
+    public static final String REQUEST_FAILED = "请求失败";
     public static final String SYSTEM_EEROR = "系统出错";
     public static final String USER_NOT_EXISTS = "账号不存在";
 }

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

@@ -0,0 +1 @@
+package com.mooctest.crowd.site.controller;


import com.mooctest.crowd.site.constants.ResponseConstant;
import com.mooctest.crowd.site.data.ResponseMessage;
import com.mooctest.crowd.site.data.dto.IndexDTO;
import com.mooctest.crowd.site.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());
    }
}

+ 27 - 0
site/src/main/java/com/mooctest/crowd/site/controller/CrowdProjectController.java

@@ -0,0 +1,27 @@
+package com.mooctest.crowd.site.controller;
+
+import com.mooctest.crowd.site.command.CreateProjectCommand;
+import com.mooctest.crowd.site.command.ProjectDetailsCommand;
+import com.mooctest.crowd.site.constants.ResponseConstant;
+import com.mooctest.crowd.site.data.ResponseMessage;
+import com.mooctest.crowd.site.data.dto.ProjectDetailsDTO;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-07-24 23:50
+ */
+public class CrowdProjectController {
+
+    @RequestMapping(value = "/project", method = RequestMethod.POST)
+    public ResponseMessage<Boolean> createProject(CreateProjectCommand createProjectCommand){
+        return new ResponseMessage<>(ResponseConstant.OK, ResponseConstant.REQUEST_SUCCESS);
+    }
+
+    @RequestMapping(value = "/project", method = RequestMethod.GET)
+    public ResponseMessage<ProjectDetailsDTO> getProject(ProjectDetailsCommand projectDetailsCommand){
+        return new ResponseMessage<>(ResponseConstant.OK, ResponseConstant.REQUEST_SUCCESS);
+    }
+}

+ 1 - 1
src/main/java/com/mooctest/crowd/domain/controller/CrowdReportController.java → site/src/main/java/com/mooctest/crowd/site/controller/CrowdReportController.java

@@ -1,4 +1,4 @@
-package com.mooctest.crowd.domain.controller;
+package com.mooctest.crowd.site.controller;
 
 /**
  * @author: Diors.Po

+ 1 - 1
src/main/java/com/mooctest/crowd/domain/controller/CrowdTaskController.java → site/src/main/java/com/mooctest/crowd/site/controller/CrowdTaskController.java

@@ -1,4 +1,4 @@
-package com.mooctest.crowd.domain.controller;
+package com.mooctest.crowd.site.controller;
 
 /**
  * @author: Diors.Po

+ 42 - 0
site/src/main/java/com/mooctest/crowd/site/controller/UserController.java

@@ -0,0 +1,42 @@
+package com.mooctest.crowd.site.controller;
+
+import com.mooctest.crowd.site.command.*;
+import com.mooctest.crowd.site.constants.ResponseConstant;
+import com.mooctest.crowd.site.data.ResponseMessage;
+import com.mooctest.crowd.site.data.dto.UserDTO;
+import com.mooctest.crowd.domain.exception.AccountNotExistException;
+import com.mooctest.crowd.domain.exception.BadRequestException;
+import com.mooctest.crowd.domain.exception.PasswordErrorException;
+import com.mooctest.crowd.site.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-07-24 23:50
+ */
+@RestController
+public class UserController {
+
+    @Autowired
+    private UserService userService;
+
+    @RequestMapping(value = "/account", method = RequestMethod.POST)
+    public ResponseMessage<UserDTO> register(@Validated RegisterCommand registerCommand, BindingResult result) throws BadRequestException {
+        if (result.hasErrors())
+            throw new BadRequestException(result.getFieldError().getDefaultMessage());
+        return new ResponseMessage<>(ResponseConstant.OK, "注册成功", userService.register(registerCommand));
+    }
+
+    @RequestMapping(value = "/api/login", method = RequestMethod.GET)
+    public ResponseMessage<UserDTO> loginByMobileAndPwd(@Validated LoginCommand loginCommand, BindingResult result) throws PasswordErrorException, AccountNotExistException, BadRequestException {
+        if (result.hasErrors())
+            throw new BadRequestException(result.getFieldError().getDefaultMessage());
+        return new ResponseMessage<>(ResponseConstant.OK, "登录成功", userService.loginByMobileAndPwd(loginCommand));
+    }
+}

+ 40 - 0
site/src/main/java/com/mooctest/crowd/site/controller/advice/ExceptionAdvice.java

@@ -0,0 +1,40 @@
+package com.mooctest.crowd.site.controller.advice;
+
+import com.mooctest.crowd.site.constants.ResponseConstant;
+import com.mooctest.crowd.site.data.ResponseMessage;
+import com.mooctest.crowd.domain.exception.*;
+import lombok.extern.slf4j.Slf4j;
+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
+ */
+@Slf4j
+@RestControllerAdvice
+public class ExceptionAdvice {
+
+    @ExceptionHandler(BaseException.class)
+    @ResponseStatus(HttpStatus.BAD_REQUEST)
+    public ResponseMessage handleException(Exception e){
+        log.error("出错!", e);
+        if (e instanceof AccountNotExistException){
+            return new ResponseMessage(ResponseConstant.FAIL, ResponseConstant.USER_NOT_EXISTS);
+        } else if (e instanceof CrowdTestProjectNotExistException){
+            return new ResponseMessage(ResponseConstant.FAIL, "项目不存在");
+        } else if (e instanceof CrowdTestTaskNotExistException){
+            return new ResponseMessage(ResponseConstant.FAIL, "任务不存在");
+        } else if (e instanceof CrowdTestReportNotExistException){
+            return new ResponseMessage(ResponseConstant.FAIL, "报告不存在");
+        } else if (e instanceof CrowdTestTaskNoPriceException){
+            return new ResponseMessage(ResponseConstant.FAIL, "项目未设置价格");
+        } else if (e instanceof PasswordErrorException){
+            return new ResponseMessage(ResponseConstant.UNAUTH, "密码错误");
+        } else
+            return new ResponseMessage(ResponseConstant.FAIL, ResponseConstant.REQUEST_FAILED);
+    }
+}

+ 1 - 1
src/main/java/com/mooctest/crowd/domain/data/ResponseMessage.java → site/src/main/java/com/mooctest/crowd/site/data/ResponseMessage.java

@@ -1,4 +1,4 @@
-package com.mooctest.crowd.domain.data;
+package com.mooctest.crowd.site.data;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 4 - 4
src/main/java/com/mooctest/crowd/domain/data/dto/IndexDTO.java → site/src/main/java/com/mooctest/crowd/site/data/dto/IndexDTO.java

@@ -1,8 +1,8 @@
-package com.mooctest.crowd.domain.data.dto;
+package com.mooctest.crowd.site.data.dto;
 
-import com.mooctest.crowd.domain.data.vo.EvolutionAgencyVO;
-import com.mooctest.crowd.domain.data.vo.CrowdTaskVO;
-import com.mooctest.crowd.domain.data.vo.UserVO;
+import com.mooctest.crowd.site.data.vo.EvolutionAgencyVO;
+import com.mooctest.crowd.site.data.vo.CrowdTaskVO;
+import com.mooctest.crowd.site.data.vo.UserVO;
 import lombok.Data;
 
 import java.util.List;

+ 4 - 4
src/main/java/com/mooctest/crowd/domain/data/dto/MyCrowdDTO.java → site/src/main/java/com/mooctest/crowd/site/data/dto/MyCrowdDTO.java

@@ -1,8 +1,8 @@
-package com.mooctest.crowd.domain.data.dto;
+package com.mooctest.crowd.site.data.dto;
 
-import com.mooctest.crowd.domain.data.vo.CrowdProjectVO;
-import com.mooctest.crowd.domain.data.vo.CrowdTaskVO;
-import com.mooctest.crowd.domain.data.vo.UserVO;
+import com.mooctest.crowd.site.data.vo.CrowdProjectVO;
+import com.mooctest.crowd.site.data.vo.CrowdTaskVO;
+import com.mooctest.crowd.site.data.vo.UserVO;
 import lombok.Data;
 
 import java.util.List;

+ 4 - 4
src/main/java/com/mooctest/crowd/domain/data/dto/ProjectDetailsDTO.java → site/src/main/java/com/mooctest/crowd/site/data/dto/ProjectDetailsDTO.java

@@ -1,8 +1,8 @@
-package com.mooctest.crowd.domain.data.dto;
+package com.mooctest.crowd.site.data.dto;
 
-import com.mooctest.crowd.domain.data.vo.CrowdProjectVO;
-import com.mooctest.crowd.domain.data.vo.CrowdReportVO;
-import com.mooctest.crowd.domain.data.vo.CrowdTaskVO;
+import com.mooctest.crowd.site.data.vo.CrowdProjectVO;
+import com.mooctest.crowd.site.data.vo.CrowdReportVO;
+import com.mooctest.crowd.site.data.vo.CrowdTaskVO;
 import lombok.Data;
 
 import java.util.List;

+ 2 - 2
src/main/java/com/mooctest/crowd/domain/data/dto/ReportDetailsDTO.java → site/src/main/java/com/mooctest/crowd/site/data/dto/ReportDetailsDTO.java

@@ -1,6 +1,6 @@
-package com.mooctest.crowd.domain.data.dto;
+package com.mooctest.crowd.site.data.dto;
 
-import com.mooctest.crowd.domain.data.vo.CrowdReportVO;
+import com.mooctest.crowd.site.data.vo.CrowdReportVO;
 import lombok.Data;
 
 /**

+ 3 - 3
src/main/java/com/mooctest/crowd/domain/data/dto/TaskDetailsDTO.java → site/src/main/java/com/mooctest/crowd/site/data/dto/TaskDetailsDTO.java

@@ -1,7 +1,7 @@
-package com.mooctest.crowd.domain.data.dto;
+package com.mooctest.crowd.site.data.dto;
 
-import com.mooctest.crowd.domain.data.vo.CrowdReportVO;
-import com.mooctest.crowd.domain.data.vo.CrowdTaskVO;
+import com.mooctest.crowd.site.data.vo.CrowdReportVO;
+import com.mooctest.crowd.site.data.vo.CrowdTaskVO;
 import lombok.Data;
 
 import java.util.List;

+ 2 - 2
src/main/java/com/mooctest/crowd/domain/data/dto/TaskSquareDTO.java → site/src/main/java/com/mooctest/crowd/site/data/dto/TaskSquareDTO.java

@@ -1,6 +1,6 @@
-package com.mooctest.crowd.domain.data.dto;
+package com.mooctest.crowd.site.data.dto;
 
-import com.mooctest.crowd.domain.data.vo.CrowdTaskVO;
+import com.mooctest.crowd.site.data.vo.CrowdTaskVO;
 import lombok.Data;
 
 import java.util.List;

+ 7 - 3
src/main/java/com/mooctest/crowd/domain/data/dto/UserDTO.java → site/src/main/java/com/mooctest/crowd/site/data/dto/UserDTO.java

@@ -1,7 +1,7 @@
-package com.mooctest.crowd.domain.data.dto;
+package com.mooctest.crowd.site.data.dto;
 
-import com.mooctest.crowd.domain.data.vo.CrowdProjectVO;
-import com.mooctest.crowd.domain.data.vo.UserVO;
+import com.mooctest.crowd.site.data.vo.CrowdProjectVO;
+import com.mooctest.crowd.site.data.vo.UserVO;
 import com.mooctest.crowd.domain.domainobject.Permission;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -20,4 +20,8 @@ public class UserDTO {
     private UserVO userVO;
     private List<Permission> permissions;
     private List<CrowdProjectVO> crowdProjectVOS;
+
+    public UserDTO(UserVO userVO) {
+        this.userVO = userVO;
+    }
 }

+ 1 - 1
src/main/java/com/mooctest/crowd/domain/data/vo/CrowdProjectVO.java → site/src/main/java/com/mooctest/crowd/site/data/vo/CrowdProjectVO.java

@@ -1,4 +1,4 @@
-package com.mooctest.crowd.domain.data.vo;
+package com.mooctest.crowd.site.data.vo;
 
 import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
 import lombok.AllArgsConstructor;

+ 1 - 1
src/main/java/com/mooctest/crowd/domain/data/vo/CrowdReportVO.java → site/src/main/java/com/mooctest/crowd/site/data/vo/CrowdReportVO.java

@@ -1,4 +1,4 @@
-package com.mooctest.crowd.domain.data.vo;
+package com.mooctest.crowd.site.data.vo;
 
 import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
 import com.mooctest.crowd.domain.domainobject.CrowdTestReport;

+ 1 - 1
src/main/java/com/mooctest/crowd/domain/data/vo/CrowdTaskVO.java → site/src/main/java/com/mooctest/crowd/site/data/vo/CrowdTaskVO.java

@@ -1,4 +1,4 @@
-package com.mooctest.crowd.domain.data.vo;
+package com.mooctest.crowd.site.data.vo;
 
 import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
 import lombok.AllArgsConstructor;

+ 1 - 1
src/main/java/com/mooctest/crowd/domain/data/vo/EvolutionAgencyVO.java → site/src/main/java/com/mooctest/crowd/site/data/vo/EvolutionAgencyVO.java

@@ -1,4 +1,4 @@
-package com.mooctest.crowd.domain.data.vo;
+package com.mooctest.crowd.site.data.vo;
 
 import lombok.Data;
 

+ 39 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/UserVO.java

@@ -0,0 +1,39 @@
+package com.mooctest.crowd.site.data.vo;
+
+import com.mooctest.crowd.domain.domainobject.Account;
+import com.mooctest.crowd.domain.domainobject.User;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.beans.BeanUtils;
+
+import java.util.Date;
+
+/**
+ * @Author: xuexb
+ * @Date: 2019.7.15 20:41
+ */
+@Data
+@NoArgsConstructor
+public class UserVO {
+    private Long id;
+    private String name;
+    private String userName;
+    private String gender;
+    private String mobileNum;
+    private String province;
+    private String city;
+    private String photoUrl;
+
+    public UserVO(User user){
+        BeanUtils.copyProperties(user, this);
+    }
+
+    public User toUser(){
+        //todo
+        return new User();
+    }
+
+    public UserVO(Account account){
+        BeanUtils.copyProperties(account, this);
+    }
+}

+ 8 - 6
src/main/java/com/mooctest/crowd/domain/mediator/Mediator.java → site/src/main/java/com/mooctest/crowd/site/mediator/Mediator.java

@@ -1,8 +1,9 @@
-package com.mooctest.crowd.domain.mediator;
+package com.mooctest.crowd.site.mediator;
 
-import com.mooctest.crowd.domain.command.*;
-import com.mooctest.crowd.domain.data.dto.*;
-import com.mooctest.crowd.domain.domainobject.Account;
+import com.mooctest.crowd.site.command.*;
+import com.mooctest.crowd.site.data.dto.*;
+import com.mooctest.crowd.domain.exception.AccountNotExistException;
+import com.mooctest.crowd.domain.exception.BadRequestException;
 import com.mooctest.crowd.domain.exception.PasswordErrorException;
 
 /**
@@ -10,9 +11,10 @@ import com.mooctest.crowd.domain.exception.PasswordErrorException;
  * @Date: 2019.7.16 20:25
  */
 public interface Mediator {
-    boolean login(LoginCommand cmd) throws PasswordErrorException;
 
-    Account register(RegisterCommand registerCommand);
+    UserDTO loginByMobileAndPwd(LoginCommand cmd) throws PasswordErrorException, AccountNotExistException, BadRequestException;
+
+    UserDTO register(RegisterCommand registerCommand);
 
     IndexDTO renderIndex();
 

+ 22 - 11
src/main/java/com/mooctest/crowd/domain/mediator/impl/WebMediatorImpl.java → site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -1,30 +1,41 @@
-package com.mooctest.crowd.domain.mediator.impl;
+package com.mooctest.crowd.site.mediator.impl;
 
-import com.mooctest.crowd.domain.command.*;
-import com.mooctest.crowd.domain.data.dto.*;
+import com.mooctest.crowd.site.data.dto.*;
+import com.mooctest.crowd.site.command.*;
+import com.mooctest.crowd.site.data.vo.*;
 import com.mooctest.crowd.domain.domainobject.Account;
+import com.mooctest.crowd.domain.exception.AccountNotExistException;
+import com.mooctest.crowd.domain.exception.BadRequestException;
 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.site.mediator.Mediator;
 import com.mooctest.crowd.domain.domainservice.RegisterDService;
+import com.mooctest.crowd.domain.repository.AccountUTRepo;
 import org.springframework.stereotype.Component;
-import org.springframework.stereotype.Service;
 
 /**
  * @Author: xuexb
  * @Date: 2019.7.16 20:27
  */
-@Component
+@Component("WebMediator")
 public class WebMediatorImpl implements Mediator {
 
+    AccountUTRepo accountUTRepo = new AccountUTRepo();
+
     @Override
-    public boolean login(LoginCommand cmd) throws PasswordErrorException {
-        return AccountFactory.createAccount().login(cmd);
+    public UserDTO loginByMobileAndPwd(LoginCommand cmd) throws PasswordErrorException, AccountNotExistException, BadRequestException {
+        Account account = accountUTRepo.getByMobileNum(cmd.getMobileNum());
+        if (account.login(cmd.getMobileNum(),cmd.getPassword())) {
+            UserVO userVO = new UserVO(account);
+            return new UserDTO(userVO);
+        }else
+            throw new BadRequestException("登录失败");
     }
 
     @Override
-    public Account register(RegisterCommand registerCommand) {
-        return RegisterDService.register(registerCommand);
+    public UserDTO register(RegisterCommand registerCommand) {
+        Account account = RegisterDService.register(registerCommand.getMobileNum(), registerCommand.getPassword());
+        UserVO userVO = new UserVO(account);
+        return new UserDTO(userVO);
     }
 
     @Override

+ 9 - 0
site/src/main/java/com/mooctest/crowd/site/service/CommonService.java

@@ -0,0 +1,9 @@
+package com.mooctest.crowd.site.service;
+
+import com.mooctest.crowd.site.data.dto.IndexDTO;
+import org.springframework.stereotype.Service;
+
+@Service
+public interface CommonService {
+    IndexDTO getIndexInfo();
+}

+ 1 - 0
site/src/main/java/com/mooctest/crowd/site/service/UserService.java

@@ -0,0 +1 @@
+package com.mooctest.crowd.site.service;

import com.mooctest.crowd.site.command.LoginCommand;
import com.mooctest.crowd.site.command.RegisterCommand;
import com.mooctest.crowd.site.data.dto.UserDTO;
import com.mooctest.crowd.domain.exception.AccountNotExistException;
import com.mooctest.crowd.domain.exception.BadRequestException;
import com.mooctest.crowd.domain.exception.PasswordErrorException;
import org.springframework.stereotype.Service;

/**
 * @Author: xuexb
 * @Date: 2019.7.22 16:52
 */
public interface UserService {
    UserDTO register(RegisterCommand registerCommand);

    UserDTO loginByMobileAndPwd(LoginCommand loginCommand) throws PasswordErrorException, AccountNotExistException, BadRequestException;
}

+ 6 - 4
src/main/java/com/mooctest/crowd/domain/service/impl/CommonServiceImpl.java → site/src/main/java/com/mooctest/crowd/site/service/impl/CommonServiceImpl.java

@@ -1,15 +1,17 @@
-package com.mooctest.crowd.domain.service.impl;
+package com.mooctest.crowd.site.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 com.mooctest.crowd.site.data.dto.IndexDTO;
+import com.mooctest.crowd.site.mediator.Mediator;
+import com.mooctest.crowd.site.service.CommonService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
 @Service
 public class CommonServiceImpl implements CommonService {
 
     @Autowired
+    @Qualifier("WebMediator")
     private Mediator mediator;
 
     @Override

+ 1 - 0
site/src/main/java/com/mooctest/crowd/site/service/impl/UserServiceImpl.java

@@ -0,0 +1 @@
+package com.mooctest.crowd.site.service.impl;

import com.mooctest.crowd.site.command.LoginCommand;
import com.mooctest.crowd.site.command.RegisterCommand;
import com.mooctest.crowd.site.data.dto.UserDTO;

import com.mooctest.crowd.domain.exception.AccountNotExistException;
import com.mooctest.crowd.domain.exception.BadRequestException;
import com.mooctest.crowd.domain.exception.PasswordErrorException;
import com.mooctest.crowd.site.mediator.Mediator;
import com.mooctest.crowd.site.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

/**
 * @Author: xuexb
 * @Date: 2019.7.22 16:53
 */
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    @Qualifier("WebMediator")
    private Mediator mediator;

    @Override
    public UserDTO register(RegisterCommand registerCommand) {
        return mediator.register(registerCommand);
    }

    @Override
    public UserDTO loginByMobileAndPwd(LoginCommand loginCommand) throws PasswordErrorException, AccountNotExistException, BadRequestException {
        return mediator.loginByMobileAndPwd(loginCommand);
    }
}

+ 1 - 0
site/src/main/resources/application.properties

@@ -0,0 +1 @@
+

+ 16 - 0
site/src/test/java/com/mooctest/crowd/site/SiteApplicationTests.java

@@ -0,0 +1,16 @@
+package com.mooctest.crowd.site;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class SiteApplicationTests {
+
+	@Test
+	public void contextLoads() {
+	}
+
+}

+ 18 - 28
src/test/java/com/mooctest/crowd/domain/mediator/impl/WebMediatorImplTest.java → site/src/test/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImplTest.java

@@ -1,19 +1,21 @@
-package com.mooctest.crowd.domain.mediator.impl;
+package com.mooctest.crowd.site.mediator.impl;
 
-import com.mooctest.crowd.domain.command.*;
-import com.mooctest.crowd.domain.data.dto.*;
+import com.mooctest.crowd.site.command.AccountCommand;
+import com.mooctest.crowd.site.command.CrowdTestProjectCommand;
+import com.mooctest.crowd.site.command.CrowdTestReportCommand;
+import com.mooctest.crowd.site.command.CrowdTestTaskCommand;
+import com.mooctest.crowd.site.data.dto.*;
 import com.mooctest.crowd.domain.domainobject.Account;
-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.site.mediator.Mediator;
+import com.mooctest.crowd.site.mediator.impl.WebMediatorImpl;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.powermock.api.mockito.PowerMockito;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertNotNull;
 
 /**
  * @Author: xuexb
@@ -36,29 +38,17 @@ public class WebMediatorImplTest {
         mediator = new WebMediatorImpl();
     }
 
-    @Test
-    public void should_return_true_when_login_success() throws PasswordErrorException {
-        //arrange
-        PowerMockito.mockStatic(AccountFactory.class);
-        PowerMockito.when(AccountFactory.createAccount()).thenReturn(account);
-        LoginCommand cmd = new LoginCommand("EXiSTS_MOBILE", "CORRECT_PWD", "CODE");
-        //action
-        boolean success = mediator.login(cmd);
-        //assert
-        assertTrue(success);
-    }
+//    @Test
+//    public void should_return_true_when_login_success() throws PasswordErrorException, BadRequestException, AccountNotExistException {
+//        //arrange
+//        PowerMockito.mockStatic(AccountFactory.class);
+//        PowerMockito.when(AccountFactory.createAccount()).thenReturn(account);
+//        LoginCommand cmd = new LoginCommand("EXiSTS_MOBILE", "CORRECT_PWD", "CODE");
+//        //action
+//        UserDTO success = mediator.loginByMobileAndPwd(cmd);
+//    }
 
-    @Test
-    public void should_return_account_when_register_success() {
-        //arrange
-        RegisterCommand registerCommand = new RegisterCommand("NEW_MOBILE","CODE","PWD");
-
-        //action
-        Account newAccount = mediator.register(registerCommand);
 
-        //assert
-        assertEquals("NEW_MOBILE", newAccount.getMobileNum());
-    }
 
     @Test
     public void should_return_index_dto_when_render_index(){

+ 0 - 18
src/main/java/com/mooctest/crowd/domain/command/RegisterCommand.java

@@ -1,18 +0,0 @@
-package com.mooctest.crowd.domain.command;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-/**
- * @Author: xuexb
- * @Date: 2019.7.5 14:09
- */
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class RegisterCommand {
-    private String mobileNum;
-    private String checkCode;
-    private String password;
-}

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

@@ -1 +0,0 @@
-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());
    }
}

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

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

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

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

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

@@ -1,29 +0,0 @@
-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;
-    }
-}

+ 0 - 25
src/main/java/com/mooctest/crowd/domain/data/vo/UserVO.java

@@ -1,25 +0,0 @@
-package com.mooctest.crowd.domain.data.vo;
-
-import com.mooctest.crowd.domain.domainobject.User;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import org.springframework.beans.BeanUtils;
-
-/**
- * @Author: xuexb
- * @Date: 2019.7.15 20:41
- */
-@Data
-public class UserVO {
-
-    public UserVO(User user){
-        BeanUtils.copyProperties(user, this);
-    }
-
-    public User toUser(){
-        //todo
-
-        return new User();
-    }
-}

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

@@ -1,8 +0,0 @@
-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();
-}

+ 0 - 1
src/main/java/com/mooctest/crowd/domain/service/UserService.java

@@ -1 +0,0 @@
-package com.mooctest.crowd.domain.service;

/**
 * @Author: xuexb
 * @Date: 2019.7.22 16:52
 */
public interface UserService {
}

+ 0 - 1
src/main/java/com/mooctest/crowd/domain/service/impl/UserServiceImpl.java

@@ -1 +0,0 @@
-package com.mooctest.crowd.domain.service.impl;

import com.mooctest.crowd.domain.service.UserService;

/**
 * @Author: xuexb
 * @Date: 2019.7.22 16:53
 */
public class UserServiceImpl implements UserService {
}