Browse Source

MOOC-18:添加endpoint的配置项

hanyuwei 5 years ago
parent
commit
cc68ecd835

+ 24 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/EndPointDao.java

@@ -0,0 +1,24 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.EndPointPO;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.repository.PagingAndSortingRepository;
+import org.springframework.data.repository.query.Param;
+
+import javax.transaction.Transactional;
+import java.util.Optional;
+
+
+@Transactional
+public interface EndPointDao extends PagingAndSortingRepository<EndPointPO, Long> ,CrudRepository<EndPointPO, Long>, JpaRepository<EndPointPO, Long> ,JpaSpecificationExecutor<EndPointPO>{
+    Optional<EndPointPO> findByTaskCode(String code);
+
+    @Modifying
+    @Query(nativeQuery = true,value="delete from end_point where EP_T_CODE=?")
+    void deleteEndPoint(@Param("taskCode") String code);
+
+}

+ 16 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/EndPoint.java

@@ -0,0 +1,16 @@
+package com.mooctest.crowd.domain.domainobject;
+
+import lombok.Data;
+
+
+@Data
+public class EndPoint {
+    private Long id;
+    private String projectCode;
+    private String taskCode;
+    private String  caseId;
+    private String  examId;
+
+
+
+}

+ 30 - 0
core/src/main/java/com/mooctest/crowd/domain/model/EndPointPO.java

@@ -0,0 +1,30 @@
+package com.mooctest.crowd.domain.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+
+
+@Data
+@Entity
+@Table(name = "end_point")
+public class EndPointPO {
+
+    @Id
+    @Column(name = "EP_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @Column(name = "EP_P_CODE")
+    private String projectCode;
+
+    @Column(name = "EP_T_CODE")
+    private String taskCode;
+
+    @Column(name = "EP_CASEID")
+    private String  caseId;
+
+    @Column(name = "EP_EXAMID")
+    private String  examId;
+
+}

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

@@ -50,6 +50,9 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
     @Autowired
     private ApplicationTypeDao applicationTypeDao;
 
+    @Autowired
+    private EndPointDao endPointDao;
+
     @Override
     public Page<CrowdTestProjectPO> findAll(Specification specification, Pageable pageable) {
         return crowdTestProjectDao.findAll(specification, pageable);
@@ -178,6 +181,54 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
         return crowdTestProjectList;
     }
 
+    @Override
+    public EndPoint getEndPoint(String taskCode) {
+        Optional<EndPointPO> endPointPO=endPointDao.findByTaskCode(taskCode);
+        if(endPointPO.isPresent()){
+            EndPoint endPoint = Converter.convert(EndPoint.class, endPointPO.get());
+            return endPoint;
+        }
+        return null;
+    }
+
+    @Override
+    public EndPoint addEndPoint(String taskCode, EndPoint endPoint) {
+        Optional<EndPointPO> endPointPO=endPointDao.findByTaskCode(taskCode);
+        if(!endPointPO.isPresent()){
+            EndPointPO addEndPointPO = Converter.convert(EndPointPO.class, endPoint);
+            endPointDao.save(addEndPointPO);
+        }else {
+            throw new HttpBadRequestException("任务已存在");
+        }
+        return this.getEndPoint(taskCode);
+    }
+
+    @Override
+    public void deleteEndPoint(String taskCode) {
+        Optional<EndPointPO> endPointPO=endPointDao.findByTaskCode(taskCode);
+        if(endPointPO.isPresent()){
+            endPointDao.deleteEndPoint(taskCode);
+            throw new HttpBadRequestException("任务已删除");
+        }else{
+            throw new HttpBadRequestException("任务不存在");
+        }
+    }
+
+    @Override
+    public EndPoint updateEndPoint(String taskCode, EndPoint endPoint) {
+        Optional<EndPointPO> endPointPO=endPointDao.findByTaskCode(taskCode);
+        if(endPointPO.isPresent()){
+            endPointPO.get().setProjectCode(endPoint.getProjectCode());
+            endPointPO.get().setTaskCode(endPoint.getTaskCode());
+            endPointPO.get().setCaseId(endPoint.getCaseId());
+            endPointPO.get().setExamId(endPoint.getExamId());
+            endPointDao.save(endPointPO.get());
+        }else {
+            throw new HttpBadRequestException("任务不存在");
+        }
+        return this.getEndPoint(endPoint.getTaskCode());
+    }
+
 //    @Override
 //    public void removeCrowdTestProject(String crowdTestProjectCode){
 //        CrowdTestProject crowdTestProject = getByProjectCode(crowdTestProjectCode);

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

@@ -1,5 +1,6 @@
 package com.mooctest.crowd.domain.repository;
 import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
+import com.mooctest.crowd.domain.domainobject.EndPoint;
 import com.mooctest.crowd.domain.exception.CrowdTestProjectNotExistException;
 import com.mooctest.crowd.domain.model.CrowdTestProjectPO;
 import org.springframework.data.domain.Page;
@@ -54,4 +55,12 @@ public interface ICrowdTestProjectRepo {
 //
 //    CrowdTestProject updateCrowdTestProjectStatus(Long id, String status) throws CrowdTestProjectNotExistException;
 
+    EndPoint getEndPoint(String taskCode);
+
+    EndPoint addEndPoint(String taskCode,EndPoint endPoint);
+
+    void deleteEndPoint(String taskCode);
+
+    EndPoint updateEndPoint(String taskCode,EndPoint endPoint);
+
 }

+ 16 - 0
site/src/main/java/com/mooctest/crowd/site/command/EndPointCommand.java

@@ -0,0 +1,16 @@
+package com.mooctest.crowd.site.command;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class EndPointCommand {
+    private String projectCode;
+    private String taskCode;
+    private String  caseId;
+    private String  examId;
+}

+ 43 - 0
site/src/main/java/com/mooctest/crowd/site/controller/JumpController.java

@@ -0,0 +1,43 @@
+package com.mooctest.crowd.site.controller;
+
+import com.mooctest.crowd.site.command.EndPointCommand;
+import com.mooctest.crowd.site.data.vo.EndPointVO;
+import com.mooctest.crowd.site.service.EndPointService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+
+/**
+ * @program: crowd
+ * @description: ${description}
+ * @author: hanyuwei
+ * @create: 2020-07-28 17:27
+ **/
+@RestController
+@RequestMapping("/api/jump")
+public class JumpController {
+
+    @Autowired
+    private EndPointService  endPointService;
+
+    @RequestMapping(value = "/display/{taskCode}", method = RequestMethod.GET)
+    public EndPointVO displayEndPoint(@PathVariable("taskCode") String taskCode){
+       return  endPointService.getEndPoint(taskCode);
+    }
+
+    @RequestMapping(value = "/add/{taskCode}", method = RequestMethod.POST)
+    public EndPointVO addEndPoint(@PathVariable("taskCode") String taskCode,@RequestBody EndPointCommand endPointCommand){
+        return  endPointService.addEndPoint(taskCode,endPointCommand);
+    }
+
+    @RequestMapping(value = "/delete/{taskCode}", method = RequestMethod.DELETE)
+    public void deleteQualification(@PathVariable("taskCode") String taskCode){
+        endPointService.deleteEndPoint(taskCode);
+    }
+
+    @RequestMapping(value = "/update/{taskCode}", method = RequestMethod.PUT)
+    public EndPointVO updateEndPoint(@PathVariable("taskCode") String taskCode,@RequestBody EndPointCommand endPointCommand){
+        return  endPointService.updateEndPoint(taskCode,endPointCommand);
+    }
+
+}

+ 19 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/EndPointVO.java

@@ -0,0 +1,19 @@
+package com.mooctest.crowd.site.data.vo;
+
+import com.mooctest.crowd.domain.domainobject.EndPoint;
+import lombok.Data;
+
+/**
+ * @program: crowd
+ * @description: ${description}
+ * @author: hanyuwei
+ * @create: 2020-07-28 17:23
+ **/
+@Data
+public class EndPointVO {
+    private Long id;
+    private String projectCode;
+    private String taskCode;
+    private String  caseId;
+    private String  examId;
+}

+ 2 - 0
site/src/main/java/com/mooctest/crowd/site/mediator/ViewMediator.java

@@ -128,4 +128,6 @@ public interface ViewMediator {
     List<UserTaskCountVO> getCount();
 
     void  jumpPublicTesting(String projectCode, String taskCode, Long userId);
+
+
 }

+ 16 - 0
site/src/main/java/com/mooctest/crowd/site/service/EndPointService.java

@@ -0,0 +1,16 @@
+package com.mooctest.crowd.site.service;
+
+
+import com.mooctest.crowd.site.command.EndPointCommand;
+import com.mooctest.crowd.site.data.vo.EndPointVO;
+
+
+public interface EndPointService {
+    EndPointVO getEndPoint(String taskCode);
+
+    EndPointVO addEndPoint(String taskCode,EndPointCommand endPointCommand);
+
+    void deleteEndPoint(String taskCode);
+
+    EndPointVO updateEndPoint(String taskCode,EndPointCommand endPointCommand);
+}

+ 46 - 0
site/src/main/java/com/mooctest/crowd/site/service/impl/EndPointServiceImpl.java

@@ -0,0 +1,46 @@
+package com.mooctest.crowd.site.service.impl;
+
+
+import com.mooctest.crowd.domain.domainobject.EndPoint;
+import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
+import com.mooctest.crowd.domain.util.Converter;
+import com.mooctest.crowd.site.command.EndPointCommand;
+import com.mooctest.crowd.site.data.vo.EndPointVO;
+import com.mooctest.crowd.site.service.EndPointService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+@Service
+public class EndPointServiceImpl implements EndPointService {
+
+    @Autowired
+    private CrowdTestProjectRepo crowdTestProjectRepo;
+    @Override
+    public EndPointVO getEndPoint(String taskCode) {
+        EndPoint endPoint=crowdTestProjectRepo.getEndPoint(taskCode);
+        EndPointVO endPointVO = Converter.convert(EndPointVO.class, endPoint);
+        return endPointVO;
+    }
+
+    @Override
+    public EndPointVO addEndPoint(String taskCode, EndPointCommand endPointCommand) {
+        EndPoint endPoint = Converter.convert(EndPoint.class, endPointCommand);
+        EndPoint addEndPoint=crowdTestProjectRepo.addEndPoint(taskCode,endPoint);
+        EndPointVO endPointVO = Converter.convert(EndPointVO.class, addEndPoint);
+        return  endPointVO;
+    }
+
+    @Override
+    public void deleteEndPoint(String taskCode) {
+        crowdTestProjectRepo.deleteEndPoint(taskCode);
+    }
+
+    @Override
+    public EndPointVO updateEndPoint(String taskCode, EndPointCommand endPointCommand) {
+        EndPoint endPoint = Converter.convert(EndPoint.class, endPointCommand);
+        EndPoint updateEndPoint=crowdTestProjectRepo.updateEndPoint(taskCode,endPoint);
+        EndPointVO endPointVO = Converter.convert(EndPointVO.class, updateEndPoint);
+        return  endPointVO;
+    }
+}