Преглед изворни кода

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

guo00guo пре 5 година
родитељ
комит
c0432ffbda
20 измењених фајлова са 497 додато и 48 уклоњено
  1. 20 0
      core/src/main/java/com/mooctest/crowd/domain/dao/BankCardDao.java
  2. 13 0
      core/src/main/java/com/mooctest/crowd/domain/dao/BankLogoDao.java
  3. 23 0
      core/src/main/java/com/mooctest/crowd/domain/dao/QualificationDao.java
  4. 11 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/BankLogo.java
  5. 35 0
      core/src/main/java/com/mooctest/crowd/domain/model/BankCardPO.java
  6. 26 0
      core/src/main/java/com/mooctest/crowd/domain/model/BankLogoPO.java
  7. 40 0
      core/src/main/java/com/mooctest/crowd/domain/model/QualificationPO.java
  8. 33 32
      site/src/main/java/com/mooctest/crowd/site/controller/CrowTestSquareController.java
  9. 40 2
      site/src/main/java/com/mooctest/crowd/site/controller/PersonalDataController.java
  10. 2 5
      site/src/main/java/com/mooctest/crowd/site/controller/TechnicalArticlesController.java
  11. 12 0
      site/src/main/java/com/mooctest/crowd/site/data/dto/BankCardDTO.java
  12. 13 0
      site/src/main/java/com/mooctest/crowd/site/data/dto/QualificationDTO.java
  13. 16 0
      site/src/main/java/com/mooctest/crowd/site/data/vo/BankCardVO.java
  14. 19 0
      site/src/main/java/com/mooctest/crowd/site/data/vo/BankLogoVO.java
  15. 18 0
      site/src/main/java/com/mooctest/crowd/site/data/vo/QualificationVO.java
  16. 1 4
      site/src/main/java/com/mooctest/crowd/site/data/vo/TechnicalArticlesVO.java
  17. 14 0
      site/src/main/java/com/mooctest/crowd/site/mediator/ViewMediator.java
  18. 101 2
      site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java
  19. 19 1
      site/src/main/java/com/mooctest/crowd/site/service/PersonalDataService.java
  20. 41 2
      site/src/main/java/com/mooctest/crowd/site/service/impl/PersonalDataServiceImpl.java

+ 20 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/BankCardDao.java

@@ -0,0 +1,20 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.BankCardPO;
+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 BankCardDao extends PagingAndSortingRepository<BankCardPO, Long> ,CrudRepository<BankCardPO, Long>, JpaRepository<BankCardPO, Long> ,JpaSpecificationExecutor<BankCardPO>{
+
+    Optional<BankCardPO> findById(Long id);
+
+    List<BankCardPO> findByUserIdAndIsDeleted(Long userId, int isDeleted);
+}

+ 13 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/BankLogoDao.java

@@ -0,0 +1,13 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.BankLogoPO;
+import org.springframework.data.repository.CrudRepository;
+
+import javax.transaction.Transactional;
+import java.util.Optional;
+
+@Transactional
+public interface BankLogoDao extends CrudRepository<BankLogoPO, Long>{
+
+    Optional<BankLogoPO> findByCode(String code);
+}

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

@@ -0,0 +1,23 @@
+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);
+
+    List<QualificationPO> findByUserIdAndIsDeleted(Long userId, int isDeleted);
+
+}

+ 11 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/BankLogo.java

@@ -0,0 +1,11 @@
+package com.mooctest.crowd.domain.domainobject;
+
+import lombok.Data;
+
+@Data
+public class BankLogo {
+    private Long id;
+    private  String logoUrl;
+    private String name;
+    private String code;
+}

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

@@ -0,0 +1,35 @@
+package com.mooctest.crowd.domain.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+
+
+@Data
+@Entity
+@Table(name = "bank_card")
+public class BankCardPO {
+
+    @Id
+    @Column(name = "BC_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @Column(name = "BC_NAME")
+    private String name;
+
+    @Column(name="BC_USER")
+    private String user;
+
+    @Column(name="BC_NUMBER")
+    private  String number;
+
+    @Column(name = "BC_BL_CODE")
+    private  String code;
+
+    @Column(name="BC_U_ID")
+    private Long userId;
+
+    @Column(name = "BC_DELETED")
+    private int isDeleted;
+}

+ 26 - 0
core/src/main/java/com/mooctest/crowd/domain/model/BankLogoPO.java

@@ -0,0 +1,26 @@
+package com.mooctest.crowd.domain.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+
+
+@Data
+@Entity
+@Table(name = "bank_logo")
+public class BankLogoPO {
+
+    @Id
+    @Column(name = "BL_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @Column(name = "BL_NAME")
+    private String name;
+
+    @Column(name="BL_LOGO_URL")
+    private  String logoUrl;
+
+    @Column(name="BL_CODE")
+    private String code;
+}

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

@@ -0,0 +1,40 @@
+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;
+
+    @Column(name = "Q_DELETED")
+    private int isDeleted;
+
+    @Column(name="Q_PUBLIC")
+    private int isPublic;
+}

+ 33 - 32
site/src/main/java/com/mooctest/crowd/site/controller/CrowTestSquareController.java

@@ -1,7 +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.CrowdTestSquareIndexDTO;
 import com.mooctest.crowd.site.data.dto.ProjectAndTaskDTO;
 import com.mooctest.crowd.site.data.response.ResponseVO;
@@ -15,13 +13,13 @@ import com.mooctest.crowd.site.service.CrowdTaskService;
 import com.mooctest.crowd.site.util.DataUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
-import org.springframework.data.domain.Sort;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -32,7 +30,7 @@ import java.util.List;
 
 @RestController
 @RequestMapping("/api/square")
-public class CrowTestSquareController extends  BaseController{
+public class CrowTestSquareController extends BaseSearchController{
 
     @Autowired
     private CrowdProjectService crowdProjectService;
@@ -62,11 +60,9 @@ public class CrowTestSquareController extends  BaseController{
      * 众测项目分页查询接口
      */
     @GetMapping("/project/list")
-    public ResponseVO findAllprojectByPage(@RequestParam(name = "searchCondition") String searchCondition) {
-        Gson gson = new Gson();
-        SearchConditionVO searchConditionVO = gson.fromJson(searchCondition, SearchConditionVO.class);
+    public ResponseVO findAllprojectByPage(@RequestBody SearchConditionVO searchConditionVO) {
+        Map<String, String> extraCondition = searchConditionVO.getColumnFilters() == null ? new HashMap<>() : super.getExtraCondition(searchConditionVO);
         Pageable pageable = this.getPageable(searchConditionVO);
-        String keyword = searchConditionVO.getKeyword();
         List<CrowdTestProjectVO> list = crowdProjectService.findAll(pageable);
         Page<CrowdTestProjectVO> page = DataUtils.listToPage(list, pageable);
         return new ResponseVO<>(ServerCode.SUCCESS, page);
@@ -76,11 +72,9 @@ public class CrowTestSquareController extends  BaseController{
      * 众测任务分页查询接口
      */
     @GetMapping("/task/list")
-    public ResponseVO<Page<CrowdTaskVO>> getAllTaskByPage(@RequestParam(name = "searchCondition") String searchCondition){
-        Gson gson = new Gson();
-        SearchConditionVO searchConditionVO = gson.fromJson(searchCondition, SearchConditionVO.class);
+    public ResponseVO<Page<CrowdTaskVO>> getAllTaskByPage(@RequestBody SearchConditionVO searchConditionVO) {
+        Map<String, String> extraCondition = searchConditionVO.getColumnFilters() == null ? new HashMap<>() : super.getExtraCondition(searchConditionVO);
         Pageable pageable = this.getPageable(searchConditionVO);
-        String keyword = searchConditionVO.getKeyword();
         Page<CrowdTaskVO> page = commonService.getTaskinfo(pageable, null, 0);
         return new ResponseVO<>(ServerCode.SUCCESS, page);
     }
@@ -89,29 +83,36 @@ public class CrowTestSquareController extends  BaseController{
      * 搜索框模糊查询接口
      */
     @PostMapping("search/list")
-    public ResponseVO<Page<ProjectAndTaskDTO>> findByNameLike(@RequestParam("searchCondition")String searchCondition){
-            Gson gson = new Gson();
-            SearchConditionVO searchConditionVO = gson.fromJson(searchCondition, SearchConditionVO.class);
-            Pageable pageable = this.getPageable(searchConditionVO);
-            String keyword = searchConditionVO.getKeyword();
-            ProjectAndTaskDTO projectAndTaskDTO = new ProjectAndTaskDTO();
-            List<CrowdTestProjectVO> list = crowdProjectService.findByNameLike(keyword);
-            List<CrowdTaskVO> taskVOList = crowdTaskService.findByNameLike(keyword);
-            projectAndTaskDTO.setCrowdTaskVOList(taskVOList);
-            projectAndTaskDTO.setProjectVOList(list);
-            List projectAndTaskDTOList = new ArrayList<>();
-            projectAndTaskDTOList.addAll(list);
-            projectAndTaskDTOList.addAll(taskVOList);
-            Page<ProjectAndTaskDTO> projectAndTaskDTOPage = DataUtils.listToPage(projectAndTaskDTOList, pageable);
-            return new ResponseVO<>(ServerCode.SUCCESS, projectAndTaskDTOPage);
+    public ResponseVO findByNameLike(@RequestBody SearchConditionVO searchConditionVO) {
+        Map<String, String> extraCondition = searchConditionVO.getColumnFilters() == null ? new HashMap<>() : super.getExtraCondition(searchConditionVO);
+        LOG.info("想要查询的是" + searchConditionVO.getColumnFilters().get(0).getType());
+        Pageable pageable = this.getPageable(searchConditionVO);
+        String keyword = searchConditionVO.getKeyword();
+        ProjectAndTaskDTO projectAndTaskDTO = new ProjectAndTaskDTO();
+        List<CrowdTestProjectVO> list = crowdProjectService.findByNameLike(keyword);
+        List<CrowdTaskVO> taskVOList = crowdTaskService.findByNameLike(keyword);
+        projectAndTaskDTO.setCrowdTaskVOList(taskVOList);
+        projectAndTaskDTO.setProjectVOList(list);
+        List projectAndTaskDTOList = new ArrayList<>();
+        projectAndTaskDTOList.addAll(list);
+        projectAndTaskDTOList.addAll(taskVOList);
+        Page<ProjectAndTaskDTO> projectAndTaskDTOPage = DataUtils.listToPage(projectAndTaskDTOList, pageable);
+        Page<CrowdTestProjectVO> projectVOPage = DataUtils.listToPage(list, pageable);
+        Page<CrowdTaskVO> crowdTaskVOPage = DataUtils.listToPage(taskVOList, pageable);
+        if (searchConditionVO.getColumnFilters().get(0).getType().equals("项目")) {
+            return new ResponseVO<>(ServerCode.SUCCESS, projectVOPage);
+        } else if (searchConditionVO.getColumnFilters().get(0).getType().equals("任务")) {
+            return new ResponseVO(ServerCode.SUCCESS, crowdTaskVOPage);
         }
+        return new ResponseVO<>(ServerCode.SUCCESS, projectAndTaskDTOPage);
+    }
 
-    Pageable getPageable(SearchConditionVO searchConditionVO) {
-        int activePage = searchConditionVO.getActivePage() == 0 ? 1 : searchConditionVO.getActivePage();
-        Sort sort = new Sort(Sort.Direction.DESC, "id");
-        return new PageRequest(activePage - 1, CommonConstant.DEFAULT_ROWS_ON_PAGE, sort);
+    @Override
+    public Page<?> search(String searchCondition) {
+        return null;
     }
 
+
 }
 
 

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

@@ -1,7 +1,10 @@
 package com.mooctest.crowd.site.controller;
 
-
+import com.mooctest.crowd.site.data.dto.BankCardDTO;
+import com.mooctest.crowd.site.data.dto.QualificationDTO;
 import com.mooctest.crowd.site.data.dto.UserDTO;
+import com.mooctest.crowd.site.data.vo.BankCardVO;
+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 +24,42 @@ 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.POST)
+    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);
+    }
+
+    @RequestMapping(value = "/deletequalification/{id:\\d+}/{userId:\\d+}", method = RequestMethod.DELETE)
+    public QualificationDTO deleteQualification(@PathVariable("id") long id, @PathVariable("userId") long userId){
+        return  personalDataService.deleteQualification(id,userId);
+    }
+
+    @RequestMapping(value = "/displaybankcard/{userId:\\d+}", method = RequestMethod.GET)
+    public BankCardDTO getBankCard(@PathVariable("userId") long userId){
+        return  personalDataService.getBankCard(userId);
+    }
+
+    @RequestMapping(value = "/addbankcard/{userId:\\d+}", method = RequestMethod.POST)
+    public BankCardDTO addBankCard(@PathVariable("userId") long userId, @RequestBody BankCardVO bankCardVO){
+        return  personalDataService.addBankCard(userId,bankCardVO);
+    }
+
+    @RequestMapping(value = "/deletebankcard/{id:\\d+}/{userId:\\d+}", method = RequestMethod.DELETE)
+    public BankCardDTO deleteBankCard(@PathVariable("id") long id, @PathVariable("userId") long userId){
+        return  personalDataService.deleteBankCard(id,userId);
+    }
 }

+ 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));

+ 12 - 0
site/src/main/java/com/mooctest/crowd/site/data/dto/BankCardDTO.java

@@ -0,0 +1,12 @@
+package com.mooctest.crowd.site.data.dto;
+
+import com.mooctest.crowd.site.data.vo.BankCardVO;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class BankCardDTO {
+    private BankCardVO bankCardVO;
+    private List<BankCardVO> bankCardVOList;
+}

+ 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;
+
+}

+ 16 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/BankCardVO.java

@@ -0,0 +1,16 @@
+package com.mooctest.crowd.site.data.vo;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+@Data
+@NoArgsConstructor
+public class BankCardVO {
+    private Long id;
+    private String name;
+    private String user;
+    private String number;
+    private String code;
+    private Long userId;
+}

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

@@ -0,0 +1,19 @@
+package com.mooctest.crowd.site.data.vo;
+
+import com.mooctest.crowd.domain.domainobject.BankLogo;
+import lombok.Data;
+
+
+
+@Data
+public class BankLogoVO {
+    private String name;
+    private  String logoUrl;
+    private String code;
+
+    public BankLogoVO(BankLogo bankLogo){
+        code = bankLogo.getCode();
+        name = bankLogo.getName();
+        logoUrl=bankLogo.getLogoUrl();
+    }
+}

+ 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;
+    private int isPublic;
+}

+ 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 {

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

@@ -72,4 +72,18 @@ 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);
+
+    QualificationDTO deleteQualification(long id,long userId);
+
+    BankCardDTO getBankCard(long userId);
+
+    BankCardDTO addBankCard(long userId,BankCardVO bankCardVO);
+
+    BankCardDTO deleteBankCard(long id,long userId);
 }

+ 101 - 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,15 @@ public class WebMediatorImpl implements ViewMediator {
     @Autowired
     private TechnicalArticlesDao technicalarticlesDao;
 
+    @Autowired
+    private QualificationDao qualificationDao;
+
+    @Autowired
+    private  BankCardDao bankCardDao;
+
+    @Autowired
+    private  BankLogoDao bankLogoDao;
+
     @Value("${agency}")
     private String agencyId;
 
@@ -780,6 +788,97 @@ 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.findByUserIdAndIsDeleted(userId,DeletedStatus.isNotDeleted).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());
+            qualificationVO.setIsPublic(qualificationPO.getIsPublic());
+            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.setIsPublic(qualificationVO.getIsPublic());
+        qualificationPO.setUserId(userId);
+        qualificationDao.save(qualificationPO);
+        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());
+        qualificationPO.get().setIsPublic(qualificationVO.getIsPublic());
+        qualificationDao.save(qualificationPO.get());
+        return this.getQualification(userId);
+    }
+
+    @Override
+    public QualificationDTO deleteQualification(long id, long userId) {
+        Optional<QualificationPO> qualificationPO=qualificationDao.findById(id);
+        qualificationPO.get().setIsDeleted(1);
+        qualificationDao.save(qualificationPO.get());
+        return this.getQualification(userId);
+    }
+
+    @Override
+    public BankCardDTO getBankCard(long userId) {
+        BankCardDTO bankCardDTO=new BankCardDTO();
+        List<BankCardVO> bankCardVOList = new ArrayList<>();
+        bankCardDao.findByUserIdAndIsDeleted(userId,DeletedStatus.isNotDeleted).forEach(bankCardPO ->{
+            BankCardVO bankCardVO = new BankCardVO();
+            bankCardVO.setId(bankCardPO.getId());
+            bankCardVO.setName(bankCardPO.getName());
+            bankCardVO.setUser(bankCardPO.getUser());
+            bankCardVO.setNumber(bankCardPO.getNumber());
+            Optional<BankLogoPO> bankLogo=bankLogoDao.findByCode(bankCardPO.getCode());
+            bankCardVO.setCode(bankLogo.get().getLogoUrl());
+            bankCardVOList.add(bankCardVO);
+        });
+        List<BankCardVO> results = bankCardVOList.stream().distinct().collect(Collectors.toList());
+        bankCardDTO.setBankCardVOList(results);
+        return bankCardDTO;
+    }
+
+    @Override
+    public BankCardDTO addBankCard(long userId, BankCardVO bankCardVO) {
+        BankCardPO bankCardPO=new BankCardPO();
+        bankCardPO.setName(bankCardVO.getName());
+        bankCardPO.setUser(bankCardVO.getUser());
+        bankCardPO.setNumber(bankCardVO.getNumber());
+        bankCardPO.setCode(bankCardVO.getCode());
+        bankCardPO.setUserId(userId);
+        bankCardDao.save(bankCardPO);
+        return this.getBankCard(userId);
+    }
+
+    @Override
+    public BankCardDTO deleteBankCard(long id, long userId) {
+        Optional<BankCardPO> bankCardPO=bankCardDao.findById(id);
+        bankCardPO.get().setIsDeleted(1);
+        bankCardDao.save(bankCardPO.get());
+        return this.getBankCard(userId);
+    }
+
     private ProjectOperationControl initProjectPermission(CrowdTestProject project, User user) {
         ProjectOperationControl operationControl = new ProjectOperationControl();
         if (user == null)

+ 19 - 1
site/src/main/java/com/mooctest/crowd/site/service/PersonalDataService.java

@@ -1,11 +1,29 @@
 package com.mooctest.crowd.site.service;
 
+import com.mooctest.crowd.site.data.dto.BankCardDTO;
+import com.mooctest.crowd.site.data.dto.QualificationDTO;
 import com.mooctest.crowd.site.data.dto.UserDTO;
+import com.mooctest.crowd.site.data.vo.BankCardVO;
+import com.mooctest.crowd.site.data.vo.QualificationVO;
 import com.mooctest.crowd.site.data.vo.UserVO;
 
 
 public interface PersonalDataService {
-    UserDTO getInformation(long id);
+    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);
+
+    QualificationDTO deleteQualification(long id,long userId);
+
+    BankCardDTO getBankCard(long userId);
+
+    BankCardDTO addBankCard(long userId,BankCardVO bankCardVO);
+
+    BankCardDTO deleteBankCard(long id,long userId);
 }

+ 41 - 2
site/src/main/java/com/mooctest/crowd/site/service/impl/PersonalDataServiceImpl.java

@@ -1,6 +1,10 @@
 package com.mooctest.crowd.site.service.impl;
 
+import com.mooctest.crowd.site.data.dto.BankCardDTO;
+import com.mooctest.crowd.site.data.dto.QualificationDTO;
 import com.mooctest.crowd.site.data.dto.UserDTO;
+import com.mooctest.crowd.site.data.vo.BankCardVO;
+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;
@@ -14,12 +18,47 @@ public class PersonalDataServiceImpl implements PersonalDataService {
     private ViewMediator viewMediator;
 
     @Override
-    public UserDTO getInformation(long id) {
-        return viewMediator.getInformation(id);
+    public UserDTO getInformation(long userId) {
+        return viewMediator.getInformation(userId);
     }
 
     @Override
     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);
+    }
+
+    @Override
+    public QualificationDTO deleteQualification(long id, long userId) {
+        return viewMediator.deleteQualification(id,userId);
+    }
+
+    @Override
+    public BankCardDTO getBankCard(long userId) {
+        return viewMediator.getBankCard(userId);
+    }
+
+    @Override
+    public BankCardDTO addBankCard(long userId, BankCardVO bankCardVO) {
+        return viewMediator.addBankCard(userId,bankCardVO);
+    }
+
+    @Override
+    public BankCardDTO deleteBankCard(long id, long userId) {
+        return viewMediator.deleteBankCard(id,userId);
+    }
 }