Pārlūkot izejas kodu

Merge branch 'feature-V2.0' of http://git.mooctest.com/crowd-2019/crowd-test-service-backend into feature-V2.0

xuxuan 5 gadi atpakaļ
vecāks
revīzija
5737be94ac

+ 21 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/QualificationDao.java

@@ -0,0 +1,21 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.QualificationPO;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.data.repository.PagingAndSortingRepository;
+
+import javax.transaction.Transactional;
+import java.util.List;
+import java.util.Optional;
+
+
+@Transactional
+public interface QualificationDao extends PagingAndSortingRepository<QualificationPO, Long> ,CrudRepository<QualificationPO, Long>, JpaRepository<QualificationPO, Long> ,JpaSpecificationExecutor<QualificationPO>{
+
+    List<QualificationPO> findByUserId(Long userId);
+
+    Optional<QualificationPO> findById(Long id);
+
+}

+ 35 - 0
core/src/main/java/com/mooctest/crowd/domain/model/QualificationPO.java

@@ -0,0 +1,35 @@
+package com.mooctest.crowd.domain.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+import java.sql.Date;
+import java.sql.Timestamp;
+
+
+@Data
+@Entity
+@Table(name = "qualification")
+public class QualificationPO {
+
+    @Id
+    @Column(name = "Q_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @Column(name = "Q_NAME")
+    private String name;
+
+    @Column(name = "Q_NUMBER")
+    private String  number;
+
+    @Column(name = "Q_LICENSING_AUTHORITY")
+    private String  LicensingAuthority;
+
+    @Column(name="Q_TIME")
+    private Date time;
+
+    @Column(name="Q_U_ID")
+    private Long userId;
+
+}

+ 18 - 2
site/src/main/java/com/mooctest/crowd/site/controller/PersonalDataController.java

@@ -1,7 +1,8 @@
 package com.mooctest.crowd.site.controller;
 
-
+import com.mooctest.crowd.site.data.dto.QualificationDTO;
 import com.mooctest.crowd.site.data.dto.UserDTO;
+import com.mooctest.crowd.site.data.vo.QualificationVO;
 import com.mooctest.crowd.site.data.vo.UserVO;
 import com.mooctest.crowd.site.service.PersonalDataService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,7 +22,22 @@ public class PersonalDataController {
     }
 
     @RequestMapping(value = "/update/{userId:\\d+}", method = RequestMethod.PUT)
-    public UserDTO addUserToGroup(@PathVariable("userId") long userId, @RequestBody UserVO userVO) {
+    public UserDTO updateInformation(@PathVariable("userId") long userId, @RequestBody UserVO userVO) {
         return  personalDataService.updateInformation(userId,userVO);
     }
+
+    @RequestMapping(value = "/displayqualification/{userId:\\d+}", method = RequestMethod.GET)
+    public QualificationDTO getQualification(@PathVariable("userId") long userId){
+        return  personalDataService.getQualification(userId);
+    }
+
+    @RequestMapping(value = "/addqualification/{userId:\\d+}", method = RequestMethod.PUT)
+    public QualificationDTO addQualification(@PathVariable("userId") long userId, @RequestBody QualificationVO qualificationVO){
+        return  personalDataService.addQualification(userId,qualificationVO);
+    }
+
+    @RequestMapping(value = "/updatequalification/{id:\\d+}/{userId:\\d+}", method = RequestMethod.PUT)
+    public QualificationDTO updateQualification(@PathVariable("id") long id, @PathVariable("userId") long userId,@RequestBody QualificationVO qualificationVO){
+        return  personalDataService.updateQualification(id,userId,qualificationVO);
+    }
 }

+ 2 - 5
site/src/main/java/com/mooctest/crowd/site/controller/TechnicalArticlesController.java

@@ -1,6 +1,5 @@
 package com.mooctest.crowd.site.controller;
 
-import com.google.gson.Gson;
 import com.mooctest.crowd.site.constants.CommonConstant;
 import com.mooctest.crowd.site.data.dto.TechnicalArticlesDTO;
 import com.mooctest.crowd.site.data.response.ResponseVO;
@@ -28,10 +27,8 @@ public class TechnicalArticlesController {
     @Autowired
     private TechnicalArticlesService technical;
 
-    @RequestMapping(value = "/articles", method = RequestMethod.GET)
-    public ResponseVO<TechnicalArticlesDTO> technicalarticles(@RequestParam(name = "searchCondition") String searchCondition){
-        Gson gson = new Gson();
-        SearchConditionVO searchConditionVO = gson.fromJson(searchCondition, SearchConditionVO.class);
+    @RequestMapping(value = "/articles", method = RequestMethod.POST)
+    public ResponseVO<TechnicalArticlesDTO> technicalarticles(@RequestBody SearchConditionVO searchConditionVO){
         Pageable pageable = this.getPageable(searchConditionVO);
         String keyword = searchConditionVO.getKeyword();
         return new ResponseVO<>(ServerCode.SUCCESS, technical.getArticles(pageable, keyword));

+ 13 - 0
site/src/main/java/com/mooctest/crowd/site/data/dto/QualificationDTO.java

@@ -0,0 +1,13 @@
+package com.mooctest.crowd.site.data.dto;
+
+import com.mooctest.crowd.site.data.vo.QualificationVO;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class QualificationDTO {
+    private QualificationVO qualificationVO;
+    private List<QualificationVO> qualificationVOList;
+
+}

+ 18 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/QualificationVO.java

@@ -0,0 +1,18 @@
+package com.mooctest.crowd.site.data.vo;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import java.sql.Date;
+
+@Data
+@NoArgsConstructor
+public class QualificationVO{
+
+    private Long id;
+    private String name;
+    private String  number;
+    private String  licensingAuthority;
+    private Date time;
+    private Long userId;
+
+}

+ 1 - 4
site/src/main/java/com/mooctest/crowd/site/data/vo/TechnicalArticlesVO.java

@@ -1,15 +1,12 @@
 package com.mooctest.crowd.site.data.vo;
 
-import com.alibaba.fastjson.JSONArray;
-import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
 import com.mooctest.crowd.domain.domainobject.TechnicalArticles;
 import com.mooctest.crowd.domain.model.TechnicalArticlesPO;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.sql.Timestamp;
-import java.util.HashMap;
-import java.util.List;
+
 @Data
 @NoArgsConstructor
 public class TechnicalArticlesVO {

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

@@ -72,4 +72,10 @@ public interface ViewMediator {
     UserDTO getInformation(long userId);
 
     UserDTO updateInformation(long userId, UserVO userVO);
+
+    QualificationDTO getQualification(long userId);
+
+    QualificationDTO addQualification(long userId,QualificationVO qualificationVO);
+
+    QualificationDTO updateQualification(long id,long userId,QualificationVO qualificationVO);
 }

+ 47 - 2
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -44,8 +44,7 @@ public class WebMediatorImpl implements ViewMediator {
     private CrowdTestProjectRepo projectRepo;
 
     @Autowired
-    private UserRepo
-            userRepo;
+    private UserRepo userRepo;
 
     @Autowired
     private EvaluationAgencyRepo evaluationAgencyRepo;
@@ -85,6 +84,9 @@ public class WebMediatorImpl implements ViewMediator {
     @Autowired
     private TechnicalArticlesDao technicalarticlesDao;
 
+    @Autowired
+    private QualificationDao qualificationDao;
+
     @Value("${agency}")
     private String agencyId;
 
@@ -780,6 +782,49 @@ public class WebMediatorImpl implements ViewMediator {
         return this.getInformation(userId);
     }
 
+    @Override
+    public QualificationDTO getQualification(long userId) {
+        QualificationDTO qualificationDTO=new QualificationDTO();
+        List<QualificationVO> qualificationVOList = new ArrayList<>();
+        qualificationDao.findByUserId(userId).forEach(qualificationPO ->{
+            QualificationVO qualificationVO = new QualificationVO();
+            qualificationVO.setId(qualificationPO.getId());
+            qualificationVO.setName(qualificationPO.getName());
+            qualificationVO.setNumber(qualificationPO.getNumber());
+            qualificationVO.setLicensingAuthority(qualificationPO.getLicensingAuthority());
+            qualificationVO.setTime(qualificationPO.getTime());
+            qualificationVOList.add(qualificationVO);
+        });
+        List<QualificationVO> results = qualificationVOList.stream().distinct().collect(Collectors.toList());
+        qualificationDTO.setQualificationVOList(results);
+        return qualificationDTO;
+    }
+
+    @Override
+    public QualificationDTO addQualification(long userId,QualificationVO qualificationVO) {
+        QualificationPO  qualificationPO=new QualificationPO();
+        qualificationPO.setName(qualificationVO.getName());
+        qualificationPO.setNumber(qualificationVO.getNumber());
+        qualificationPO.setLicensingAuthority(qualificationVO.getLicensingAuthority());
+        qualificationPO.setTime(qualificationVO.getTime());
+        qualificationPO.setUserId(userId);
+        qualificationDao.save(qualificationPO);
+        this.getQualification(userId);
+        return this.getQualification(userId);
+    }
+
+    @Override
+    public QualificationDTO updateQualification(long id, long userId,QualificationVO qualificationVO) {
+        Optional<QualificationPO> qualificationPO=qualificationDao.findById(id);
+        qualificationPO.get().setName(qualificationVO.getName());
+        qualificationPO.get().setNumber(qualificationVO.getNumber());
+        qualificationPO.get().setLicensingAuthority(qualificationVO.getLicensingAuthority());
+        qualificationPO.get().setTime(qualificationVO.getTime());
+        qualificationDao.save(qualificationPO.get());
+        this.getQualification(userId);
+        return this.getQualification(userId);
+    }
+
     private ProjectOperationControl initProjectPermission(CrowdTestProject project, User user) {
         ProjectOperationControl operationControl = new ProjectOperationControl();
         if (user == null)

+ 8 - 0
site/src/main/java/com/mooctest/crowd/site/service/PersonalDataService.java

@@ -1,6 +1,8 @@
 package com.mooctest.crowd.site.service;
 
+import com.mooctest.crowd.site.data.dto.QualificationDTO;
 import com.mooctest.crowd.site.data.dto.UserDTO;
+import com.mooctest.crowd.site.data.vo.QualificationVO;
 import com.mooctest.crowd.site.data.vo.UserVO;
 
 
@@ -8,4 +10,10 @@ public interface PersonalDataService {
     UserDTO getInformation(long id);
 
     UserDTO  updateInformation(long userId,UserVO userVO);
+
+    QualificationDTO getQualification(long userId);
+
+    QualificationDTO addQualification(long userId,QualificationVO qualificationVO);
+
+    QualificationDTO updateQualification(long id,long userId,QualificationVO qualificationVO);
 }

+ 17 - 0
site/src/main/java/com/mooctest/crowd/site/service/impl/PersonalDataServiceImpl.java

@@ -1,6 +1,8 @@
 package com.mooctest.crowd.site.service.impl;
 
+import com.mooctest.crowd.site.data.dto.QualificationDTO;
 import com.mooctest.crowd.site.data.dto.UserDTO;
+import com.mooctest.crowd.site.data.vo.QualificationVO;
 import com.mooctest.crowd.site.data.vo.UserVO;
 import com.mooctest.crowd.site.mediator.ViewMediator;
 import com.mooctest.crowd.site.service.PersonalDataService;
@@ -22,4 +24,19 @@ public class PersonalDataServiceImpl implements PersonalDataService {
     public UserDTO updateInformation(long userId, UserVO userVO) {
         return viewMediator.updateInformation(userId,userVO);
     }
+
+    @Override
+    public QualificationDTO getQualification(long userId) {
+        return viewMediator.getQualification(userId);
+    }
+
+    @Override
+    public QualificationDTO addQualification(long userId,QualificationVO qualificationVO) {
+        return viewMediator.addQualification(userId,qualificationVO);
+    }
+
+    @Override
+    public QualificationDTO updateQualification(long id, long userId,QualificationVO qualificationVO) {
+        return viewMediator.updateQualification(id,userId,qualificationVO);
+    }
 }