Pārlūkot izejas kodu

1.修改评测机构认证相关接口,2.修改认证参数信息,3. 修改UserRepo中Save User时对机构信息进行保存,4. 添加Domain层申请认证为机构时对已认证情况进行检查

xuexiaobo 6 gadi atpakaļ
vecāks
revīzija
7138140dfe

+ 6 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/EvaluationAgencyAbility.java

@@ -1,18 +1,24 @@
 package com.mooctest.crowd.domain.domainobject;
 
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 /**
  * @author guochao
  * @date 2019/8/12 14:16
  */
 @Data
+@NoArgsConstructor
 public class EvaluationAgencyAbility {
 
     private Long id;
     private Long evaluationAgencyId;
     private String abilityName;
 
+    public EvaluationAgencyAbility(String abilityName){
+        this.abilityName = abilityName;
+    }
+
     @Override
     public String toString() {
         return "EvaluationAgencyAbility{" +

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

@@ -1,5 +1,6 @@
 package com.mooctest.crowd.domain.domainobject;
 
+import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.domain.exception.CrowdTestProjectException;
 import com.mooctest.crowd.domain.exception.CrowdTestTaskException;
 import lombok.Data;
@@ -242,6 +243,8 @@ public class User {
 
 
     public User applyAgencyAuthentication(EvaluationAgency evaluationAgency) {
+        if (this.getEvaluationAgency()!=null)
+            throw new BaseException("已认证为评测机构,不可重复认证");
         evaluationAgency.setUserId(this.id);
         evaluationAgency.setIsAuthentication(AuthenticationStatus.isAuthenIng);
         evaluationAgency.setIsDeleted(DeletedStatus.isNotDeleted);

+ 15 - 2
core/src/main/java/com/mooctest/crowd/domain/repository/UserRepo.java

@@ -55,6 +55,10 @@ public class UserRepo implements IUserRepo {
     @Autowired
     private EvaluationAgencyAbilityDao evaluationAgencyAbilityDao;
 
+    @Autowired
+    private EvaluationAgencyResourceRepo resourceRepo;
+
+
     private Timestamp currentTime = new Timestamp(System.currentTimeMillis());
 
     @Override
@@ -223,8 +227,17 @@ public class UserRepo implements IUserRepo {
         if(evaluationAgency != null){
             EvaluationAgencyPO evaluationAgencyPO = Converter.convert(EvaluationAgencyPO.class, evaluationAgency);
             evaluationAgencyPO.setUserId(userPO.getId());
-            evaluationAgencyDao.save(evaluationAgencyPO);
-
+            evaluationAgencyPO = evaluationAgencyDao.save(evaluationAgencyPO);
+            List<EvaluationAgencyResource> resources = evaluationAgency.getEvaluationAgencyResourceList();
+            List<EvaluationAgencyAbility> abilities = evaluationAgency.getEvaluationAgencyAbilityList();
+            for (EvaluationAgencyResource resource : resources) {
+                resource.setEvaluationAgencyId(evaluationAgencyPO.getId());
+                resourceRepo.saveEvaluationAgencyResource(resource);
+            }
+            for (EvaluationAgencyAbility ability : abilities) {
+                ability.setEvaluationAgencyId(evaluationAgencyPO.getId());
+                resourceRepo.saveEvaluationAgencyAbility(ability);
+            }
 //            // save测评机构资源
 //            EvaluationAgencyResource evaluationAgencyResource = evaluationAgency.getEvaluationAgencyResource();
 //            if(evaluationAgencyResource != null){

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

@@ -0,0 +1,24 @@
+package com.mooctest.crowd.site.command;
+
+import com.mooctest.crowd.domain.domainobject.EvaluationAgencyResource;
+import lombok.Data;
+import org.springframework.beans.BeanUtils;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-08-15 20:56
+ */
+@Data
+public class AgencyResourceCommand {
+    private String type;
+    private String name;
+    private int totalNum;
+    private int availableNum;
+
+    public EvaluationAgencyResource toAgencyResource(){
+        EvaluationAgencyResource resource = new EvaluationAgencyResource();
+        BeanUtils.copyProperties(this, resource);
+        return resource;
+    }
+}

+ 8 - 12
site/src/main/java/com/mooctest/crowd/site/command/ApplyAgencyAuthCommand.java

@@ -1,12 +1,15 @@
 package com.mooctest.crowd.site.command;
 
 import com.mooctest.crowd.domain.domainobject.EvaluationAgency;
+import com.mooctest.crowd.domain.domainobject.EvaluationAgencyAbility;
 import com.mooctest.crowd.domain.factory.UserFactory;
 import lombok.Data;
 import org.springframework.beans.BeanUtils;
 
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Pattern;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author: Diors.Po
@@ -15,15 +18,6 @@ import javax.validation.constraints.Pattern;
  */
 @Data
 public class ApplyAgencyAuthCommand {
-
-    @NotNull(message = "邮箱不可为空")
-    @Pattern(regexp = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$", message = "邮箱非法")
-    private String email;
-
-    @NotNull(message = "手机号不可为空")
-    @Pattern(regexp = "^1[3|4|5|7|8][0-9]\\d{4,8}$", message = "手机号非法")
-    private String mobile;
-
     @NotNull(message = "机构名称不可为空")
     private String evaluationAgencyName;
     @NotNull(message = "银行卡号不可为空")
@@ -31,15 +25,17 @@ public class ApplyAgencyAuthCommand {
     @NotNull(message = "机构地址不可为空")
     private String address;
     @NotNull(message = "评测能力不可为空")
-    private String abilities;
+    private List<String> evaluationAgencyAbilityList;
     @NotNull(message = "机构资源不可为空")
-    private String resources;
+    private List<AgencyResourceCommand> evaluationAgencyResourceList;
     @NotNull(message = "LOGO不可为空")
     private String agencyPhoto;
 
     public EvaluationAgency toAgency(){
         EvaluationAgency agency = UserFactory.defaultAgency();
-        BeanUtils.copyProperties(this, agency);
+        BeanUtils.copyProperties(this, agency, "evaluationAgencyAbilityList", "evaluationAgencyResourceList");
+        agency.setEvaluationAgencyAbilityList(this.evaluationAgencyAbilityList.stream().map(EvaluationAgencyAbility::new).collect(Collectors.toList()));
+        agency.setEvaluationAgencyResourceList(this.evaluationAgencyResourceList.stream().map(AgencyResourceCommand::toAgencyResource).collect(Collectors.toList()));
         agency.setIsDeleted(0);
         agency.setIsAuthentication(0);
         return agency;

+ 52 - 0
site/src/main/java/com/mooctest/crowd/site/command/GenerateAgencyCommand.java

@@ -0,0 +1,52 @@
+package com.mooctest.crowd.site.command;
+
+import com.mooctest.crowd.domain.domainobject.EvaluationAgency;
+import com.mooctest.crowd.domain.domainobject.EvaluationAgencyAbility;
+import com.mooctest.crowd.domain.factory.UserFactory;
+import lombok.Data;
+import org.springframework.beans.BeanUtils;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-08-15 22:19
+ */
+@Data
+public class GenerateAgencyCommand {
+
+    @NotNull(message = "邮箱不可为空")
+    @Pattern(regexp = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$", message = "邮箱非法")
+    private String email;
+
+    @NotNull(message = "手机号不可为空")
+    @Pattern(regexp = "^1[3|4|5|7|8][0-9]\\d{4,8}$", message = "手机号非法")
+    private String mobile;
+
+    @NotNull(message = "机构名称不可为空")
+    private String evaluationAgencyName;
+    @NotNull(message = "银行卡号不可为空")
+    private String bankAccount;
+    @NotNull(message = "机构地址不可为空")
+    private String address;
+    @NotNull(message = "评测能力不可为空")
+    private List<String> evaluationAgencyAbilityList;
+    @NotNull(message = "机构资源不可为空")
+    private List<AgencyResourceCommand> evaluationAgencyResourceList;
+    @NotNull(message = "LOGO不可为空")
+    private String agencyPhoto;
+
+    public EvaluationAgency toAgency(){
+        EvaluationAgency agency = UserFactory.defaultAgency();
+        BeanUtils.copyProperties(this, agency, "evaluationAgencyAbilityList", "evaluationAgencyResourceList");
+        agency.setEvaluationAgencyAbilityList(this.evaluationAgencyAbilityList.stream().map(EvaluationAgencyAbility::new).collect(Collectors.toList()));
+        agency.setEvaluationAgencyResourceList(this.evaluationAgencyResourceList.stream().map(AgencyResourceCommand::toAgencyResource).collect(Collectors.toList()));
+        agency.setIsDeleted(0);
+        agency.setIsAuthentication(0);
+        return agency;
+    }
+}

+ 3 - 1
site/src/main/java/com/mooctest/crowd/site/controller/AgencyController.java

@@ -42,7 +42,9 @@ public class AgencyController {
      * @return
      */
     @RequestMapping(value = "/user/{userId}/agency", method = RequestMethod.POST)
-    public UserDTO authAgency(@PathVariable("userId") Long userId, @RequestBody ApplyAgencyAuthCommand command){
+    public UserDTO authAgency(@PathVariable("userId") Long userId, @RequestBody @Validated ApplyAgencyAuthCommand command, BindingResult result){
+        if (result.hasErrors())
+            throw new BaseException(result.getFieldError().getDefaultMessage());
         return agencyService.applyAgency(userId, command);
     }
 

+ 26 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/AgencyResourceVO.java

@@ -0,0 +1,26 @@
+package com.mooctest.crowd.site.data.vo;
+
+import com.mooctest.crowd.domain.domainobject.EvaluationAgencyResource;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.beans.BeanUtils;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-08-15 21:39
+ */
+@Data
+@NoArgsConstructor
+public class AgencyResourceVO {
+    private Long id;
+    private Long evaluationAgencyId;
+    private String type;
+    private String name;
+    private int totalNum;
+    private int availableNum;
+
+    public AgencyResourceVO(EvaluationAgencyResource resource){
+        BeanUtils.copyProperties(resource, this);
+    }
+}

+ 16 - 3
site/src/main/java/com/mooctest/crowd/site/data/vo/AgencyVO.java

@@ -1,10 +1,15 @@
 package com.mooctest.crowd.site.data.vo;
 
 import com.mooctest.crowd.domain.domainobject.EvaluationAgency;
+import com.mooctest.crowd.domain.domainobject.EvaluationAgencyAbility;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.springframework.beans.BeanUtils;
 
+import java.sql.Timestamp;
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * @author: Diors.Po
  * @Email: 171256175@qq.com
@@ -17,12 +22,20 @@ public class AgencyVO {
     private String evaluationAgencyName;
     private String bankAccount;
     private String address;
-    private String abilities;
-    private String resources;
+    private List<String> evaluationAgencyAbilityList;
+    private List<AgencyResourceVO> evaluationAgencyResourceList;
     private String agencyPhoto;
     private Integer isAuthentication;
+    private int isDeleted;
+    private Timestamp updateTime;
+    private Timestamp expireTime;
+    private Timestamp createTime;
 
     public AgencyVO(EvaluationAgency agency){
-        BeanUtils.copyProperties(agency, this);
+        BeanUtils.copyProperties(agency, this, "evaluationAgencyResourceList", "evaluationAgencyAbilityList");
+        this.setEvaluationAgencyAbilityList(agency.getEvaluationAgencyAbilityList()
+                .stream().map(EvaluationAgencyAbility::getAbilityName).collect(Collectors.toList()));
+        this.setEvaluationAgencyResourceList(agency.getEvaluationAgencyResourceList()
+                .stream().map(AgencyResourceVO::new).collect(Collectors.toList()));
     }
 }