guo00guo 5 jaren geleden
bovenliggende
commit
699a879d5a

+ 1 - 2
core/src/main/java/com/mooctest/crowd/domain/dao/CrowdTestProjectDao.java

@@ -19,8 +19,7 @@ import java.util.List;
 
 @Transactional
 public interface CrowdTestProjectDao extends CrudRepository<CrowdTestProjectPO, Long>, JpaRepository<CrowdTestProjectPO,Long>, PagingAndSortingRepository<CrowdTestProjectPO,Long> {
-
-//    @Override
+    //    @Override
 //    Optional<CrowdTestProjectPO> findById(Long id);
     List<CrowdTestProjectPO> findAll();
 

+ 28 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/TechnicalArticlesDao.java

@@ -0,0 +1,28 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.TechnicalArticlesPO;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.repository.PagingAndSortingRepository;
+import java.util.Optional;
+
+
+
+
+import javax.transaction.Transactional;
+
+
+
+@Transactional
+public interface TechnicalArticlesDao extends PagingAndSortingRepository<TechnicalArticlesPO, Long>, JpaSpecificationExecutor<TechnicalArticlesPO> {
+
+    @Override
+    Page<TechnicalArticlesPO> findAll(Pageable pageable);
+
+    Optional<TechnicalArticlesPO> findById(Long userId);
+
+
+
+
+}

+ 103 - 0
core/src/main/java/com/mooctest/crowd/domain/model/TechnicalArticlesPO.java

@@ -0,0 +1,103 @@
+package com.mooctest.crowd.domain.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+import java.sql.Timestamp;
+
+
+@Data
+@Entity
+@Table(name = "technical_articles")
+public class TechnicalArticlesPO {
+
+    @Id
+    @Column(name = "TA_ID")
+    private Long id;
+
+    @Column(name = "TA_TITLE")
+    private String name;
+
+    @Column(name = "TA_PHOTO_URL")
+    private String photoUrl;
+
+    @Column(name = "TA_ARTICLES_URL")
+    private String  articlesUrl;
+
+    @Column(name = "TA_AUTHOR")
+    private String author;
+
+    @Column(name = "TA_SOURCE")
+    private String source;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getPhotoUrl() {
+        return photoUrl;
+    }
+
+    public void setPhotoUrl(String photoUrl) {
+        this.photoUrl = photoUrl;
+    }
+
+    public String getArticlesUrl() {
+        return articlesUrl;
+    }
+
+    public void setArticlesUrl(String articlesUrl) {
+        this.articlesUrl = articlesUrl;
+    }
+
+    public String getAuthor() {
+        return author;
+    }
+
+    public void setAuthor(String author) {
+        this.author = author;
+    }
+
+    public String getSource() {
+        return source;
+    }
+
+    public void setSource(String source) {
+        this.source = source;
+    }
+
+    public int getReading() {
+        return reading;
+    }
+
+    public void setReading(int reading) {
+        this.reading = reading;
+    }
+
+    public Timestamp getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Timestamp createTime) {
+        this.createTime = createTime;
+    }
+
+    @Column(name = "TA_READING")
+    private int reading;
+
+    @Column(name = "TA_CREATE_TIME")
+    private Timestamp createTime;
+
+}

File diff suppressed because it is too large
+ 0 - 0
site/src/main/java/com/mooctest/crowd/site/controller/CommonController.java


+ 41 - 0
site/src/main/java/com/mooctest/crowd/site/controller/TechnicalArticlesController.java

@@ -0,0 +1,41 @@
+package com.mooctest.crowd.site.controller;
+
+import com.mooctest.crowd.site.data.vo.TechnicalArticlesVO;
+import com.mooctest.crowd.site.service.TechnicalArticlesService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * @Author: hanyuwei
+ * @Date: 2020.6.22
+ */
+@RestController
+@RequestMapping("/api/articles")
+   public class TechnicalArticlesController {
+
+    @Autowired
+    private TechnicalArticlesService technical;
+
+    @RequestMapping(value = "/display", method = RequestMethod.GET)
+    public List<TechnicalArticlesVO> display(HttpServletRequest request){
+        Pageable pageable = getPageInfo(request);
+        System.out.println(pageable.getPageNumber());
+        return  technical.getTechnicalArticles(pageable);
+    }
+
+    private Pageable getPageInfo(HttpServletRequest request) {
+        String activePage = request.getHeader("activePage");
+        String rowsOnPage = request.getHeader("rowsOnPage");
+        System.out.println(activePage);
+        System.out.println(rowsOnPage);
+        if (activePage == null || rowsOnPage == null) {
+            throw new IllegalArgumentException("缺少分页信息");
+        }
+        return new PageRequest(Integer.parseInt(activePage) - 1, Integer.parseInt(rowsOnPage));
+    }
+}

+ 85 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/TechnicalArticlesVO.java

@@ -0,0 +1,85 @@
+package com.mooctest.crowd.site.data.vo;
+
+import com.mooctest.crowd.domain.model.TechnicalArticlesPO;
+
+import java.sql.Timestamp;
+
+public class TechnicalArticlesVO {
+    private Long id;
+    private String name;
+    private String photoUrl;
+    private String  articlesUrl;
+    private String author;
+    private String source;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getPhotoUrl() {
+        return photoUrl;
+    }
+
+    public void setPhotoUrl(String photoUrl) {
+        this.photoUrl = photoUrl;
+    }
+
+    public String getArticlesUrl() {
+        return articlesUrl;
+    }
+
+    public void setArticlesUrl(String articlesUrl) {
+        this.articlesUrl = articlesUrl;
+    }
+
+    public String getAuthor() {
+        return author;
+    }
+
+    public void setAuthor(String author) {
+        this.author = author;
+    }
+
+    public String getSource() {
+        return source;
+    }
+
+    public void setSource(String source) {
+        this.source = source;
+    }
+
+    public int getReading() {
+        return reading;
+    }
+
+    public void setReading(int reading) {
+        this.reading = reading;
+    }
+
+    public Timestamp getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Timestamp createTime) {
+        this.createTime = createTime;
+    }
+
+    private int reading;
+    private Timestamp createTime;
+
+    public void setName(Iterable<TechnicalArticlesPO> technicalArticlesPO) {
+
+    }
+}

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

@@ -5,6 +5,8 @@ import com.mooctest.crowd.domain.domainobject.User;
 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.data.vo.*;
+import org.springframework.data.domain.Pageable;
 import com.mooctest.crowd.site.command.LoginCommand;
 import com.mooctest.crowd.site.command.RegisterCommand;
 import com.mooctest.crowd.site.data.dto.*;
@@ -12,6 +14,7 @@ import com.mooctest.crowd.site.data.vo.BaseAuthVO;
 import com.mooctest.crowd.site.data.vo.EvolutionAgencyVO;
 import com.mooctest.crowd.site.data.vo.RegionalManagerVO;
 
+
 import java.util.List;
 
 /**
@@ -49,4 +52,6 @@ public interface ViewMediator {
     List<BaseAuthVO> renderAuthingList();
 
     List<BaseAuthVO> renderAuthedList();
+
+    List<TechnicalArticlesVO> technicalArticles(Pageable pageable);
 }

+ 40 - 25
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -52,7 +52,6 @@ public class WebMediatorImpl implements ViewMediator {
 
     @Autowired
     private CommonRepo commonRepo;
-
     @Autowired
     private CrowdTestTaskDao taskDao;
 
@@ -83,8 +82,7 @@ public class WebMediatorImpl implements ViewMediator {
     @Autowired
     private TaskToUserDao taskToUserDao;
 
-    @Autowired
-    private CrowdTestProjectDao crowdTestProjectDao;
+    private TechnicalArticlesDao technicalarticlesDao;
 
     @Value("${agency}")
     private String agencyId;
@@ -193,7 +191,7 @@ public class WebMediatorImpl implements ViewMediator {
             return evolutionAgencyVO;
         }).collect(Collectors.toList());
 
-        Page<CrowdTestProjectPO> all = crowdTestProjectDao.findAll(pageable);
+        Page<CrowdTestProjectPO> all = projectDao.findAll(pageable);
 
         indexInfoDTO.setAgencyRank(agencyRanks);
 //        indexInfoDTO.setUserRank(userRanks);
@@ -211,23 +209,22 @@ public class WebMediatorImpl implements ViewMediator {
     public IndexDTO renderIndex() {
 
         Pageable pageable = PageRequest.of(0, 10);
-        //获取用户排名
-        List<UserVO> userRanks = projectDao.findTotalPriceOfUser(pageable).stream().map(rankInfo -> {
-            Optional<UserPO> userPO = userDao.findById(rankInfo.getEntityId());
-            if (userPO.isPresent()) {
-                UserVO userVO = new UserVO();
-                userVO.setName(userPO.get().getName());
-                userVO.setUserName(userPO.get().getUserName());
-                userVO.setAllProjectPrice(rankInfo.getTotalPrice());
-                return userVO;
-            }
+            //获取用户排名
+            List<UserVO> userRanks = projectDao.findTotalPriceOfUser(pageable).stream().map(rankInfo -> {
+                Optional<UserPO> userPO = userDao.findById(rankInfo.getEntityId());
+                if (userPO.isPresent()) {
+                    UserVO userVO = new UserVO();
+                    userVO.setName(userPO.get().getName());
+                    userVO.setUserName(userPO.get().getUserName());
+                    userVO.setAllProjectPrice(rankInfo.getTotalPrice());
+                    return userVO;
+                }
             return null;
         }).filter(Objects::nonNull).collect(Collectors.toList());
         //获取机构排名
-        String agencyName = agencyDao.findById(Long.parseLong(agencyId)).get().getEvaluationAgencyName();
         List<EvolutionAgencyVO> agencyRanks = taskToUserDao.findTotalPriceOfAgency(pageable).stream().map(rankInfo -> {
             EvaluationAgencyPO agency = agencyDao.findByUserId(rankInfo.getEntityId());
-            if (agency!=null && !agency.getEvaluationAgencyName().equals(agencyName)) {
+            if (agency!=null) {
                 EvolutionAgencyVO agencyVO = new EvolutionAgencyVO();
                 agencyVO.setName(agency.getEvaluationAgencyName());
                 agencyVO.setLogo(agency.getAgencyPhoto());
@@ -279,8 +276,8 @@ public class WebMediatorImpl implements ViewMediator {
         //获取我创建的项目列表
         List<CrowdProjectVO> myProejcts = projectDao.findByUserIdAndIsDeleted(userId, DeletedStatus.isNotDeleted)
                 .stream().sorted(Comparator.comparing(CrowdTestProjectPO::getCreateTime).thenComparing(CrowdTestProjectPO::getStatus).reversed()).map(crowdTestProjectPO -> {
-                            CrowdTestProject project = new CrowdTestProject();
-                            BeanUtils.copyProperties(crowdTestProjectPO, project);
+                    CrowdTestProject project = new CrowdTestProject();
+                    BeanUtils.copyProperties(crowdTestProjectPO, project);
                     CrowdProjectVO projectVO = new CrowdProjectVO(project);
                     if (project.getStatus() == CrowdTestProjectStatus.HAS_COMMITED)
                         projectVO.setNeedHandle(true);
@@ -313,9 +310,9 @@ public class WebMediatorImpl implements ViewMediator {
                             .anyMatch(reg -> (reg.getProvince().equals("*") || reg.getProvince().equals(crowdTestProjectPO.getDistributionProvince())) && (reg.getCity().equals("*")||reg.getCity().equals(crowdTestProjectPO.getDistributionCity())))).collect(Collectors.toList()));
             myCrowdDTO.setAcceptableProjects(acceptableProject.stream().sorted(Comparator.comparing(CrowdTestProjectPO::getCreateTime).thenComparing(CrowdTestProjectPO::getStatus).reversed())
                     .map(crowdTestProjectPO -> {
-                CrowdTestProject project = new CrowdTestProject();
-                BeanUtils.copyProperties(crowdTestProjectPO, project);
-                return new CrowdProjectVO(project); }).collect(Collectors.toList()));
+                        CrowdTestProject project = new CrowdTestProject();
+                        BeanUtils.copyProperties(crowdTestProjectPO, project);
+                        return new CrowdProjectVO(project); }).collect(Collectors.toList()));
             myCrowdDTO.setAcceptableProjectNoticeCount(Long.parseLong(""+acceptableProject.size()));
         }
         UserVO userVO = new UserVO(user);
@@ -356,6 +353,7 @@ public class WebMediatorImpl implements ViewMediator {
         return myCrowdDTO;
     }
 
+
     @Override
     public TaskSquareDTO renderTaskSquare() {
         List<CrowdTaskVO> taskVOList = taskDao.findAllByIsDeleted(0).stream().map(crowdTestTaskPO -> {
@@ -642,6 +640,26 @@ public class WebMediatorImpl implements ViewMediator {
         }).collect(Collectors.toList()));
         authingList.sort(Comparator.comparing(BaseAuthVO::getApplytime).reversed());
         return authingList;
+
+    }
+
+    @Override
+    public List<TechnicalArticlesVO> technicalArticles(Pageable pageable) {
+        List<TechnicalArticlesVO> technicalArticlesVOList = new ArrayList<>();
+        technicalarticlesDao.findAll(pageable).forEach(technicalArticlesPO -> {
+            TechnicalArticlesVO technicalArticlesVO = new TechnicalArticlesVO();
+            technicalArticlesVO.setId(technicalArticlesPO.getId());
+            technicalArticlesVO.setName(technicalarticlesDao.findById(technicalArticlesPO.getId()).get().getName());
+            technicalArticlesVO.setPhotoUrl(technicalarticlesDao.findById(technicalArticlesPO.getId()).get().getPhotoUrl());
+            technicalArticlesVO.setArticlesUrl(technicalarticlesDao.findById(technicalArticlesPO.getId()).get().getArticlesUrl());
+            technicalArticlesVO.setAuthor(technicalarticlesDao.findById(technicalArticlesPO.getId()).get().getAuthor());
+            technicalArticlesVO.setSource(technicalarticlesDao.findById(technicalArticlesPO.getId()).get().getSource());
+            technicalArticlesVO.setReading(technicalarticlesDao.findById(technicalArticlesPO.getId()).get().getReading());
+            technicalArticlesVO.setCreateTime(technicalarticlesDao.findById(technicalArticlesPO.getId()).get().getCreateTime());
+            technicalArticlesVOList.add(technicalArticlesVO);
+        });
+        List<TechnicalArticlesVO> results = technicalArticlesVOList.stream().distinct().collect(Collectors.toList());
+        return results;
     }
 
     private ProjectOperationControl initProjectPermission(CrowdTestProject project, User user){
@@ -652,14 +670,12 @@ public class WebMediatorImpl implements ViewMediator {
         if (project.getUserId().equals(user.getId())||user.getRoleList().stream().anyMatch(role -> role.getName().equals("SystemAdministrator"))){
             if (project.getStatus() < CrowdTestProjectStatus.HAS_RECEIVED){
                 operationControl.setUpdate(true);
-                operationControl.setReceive(false);
             } else if (project.getStatus() == CrowdTestProjectStatus.HAS_COMMITED){
                 operationControl.setConfirmFinish(true);
             }
         }
         //区域管理员视角
-        else if (user.getRoleList().stream().anyMatch(role -> role.getName().equals("RegionalManager"))){
-            operationControl.setUpdate(false);
+        if (user.getRoleList().stream().anyMatch(role -> role.getName().equals("RegionalManager"))){
             if ((project.getProjectDistributionTypeId() == 0 && project.getRegionalManagerId().equals(user.getId()))
                     || (project.getProjectDistributionTypeId()>0 && project.getStatus()>=CrowdTestProjectStatus.HAS_RECEIVED && project.getRegionalManagerId().equals(user.getId()))){
                 if (project.getStatus() == CrowdTestProjectStatus.HAS_RELEASED){
@@ -678,7 +694,6 @@ public class WebMediatorImpl implements ViewMediator {
                     }
                     if (project.getCrowdTestReportForProject()!=null){
                         operationControl.setFinish(true);
-                        operationControl.setUploadReport(false);
                     }
                 } else if (project.getStatus() == CrowdTestProjectStatus.HAS_COMMITED){
                     operationControl.setCreateTask(false);

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

@@ -9,7 +9,5 @@ import org.springframework.stereotype.Service;
 public interface CommonService {
     IndexDTO getIndexInfo();
 
-    IndexInfoDTO getIndexInfos();
-
     MyCrowdDTO getPersonCrowd(Long userId);
 }

+ 22 - 0
site/src/main/java/com/mooctest/crowd/site/service/TechnicalArticlesService.java

@@ -0,0 +1,22 @@
+package com.mooctest.crowd.site.service;
+
+import com.mooctest.crowd.domain.model.TechnicalArticlesPO;
+import com.mooctest.crowd.site.data.vo.RegionalManagerVO;
+import com.mooctest.crowd.site.data.vo.TechnicalArticlesVO;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+
+import java.util.List;
+
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-08-12 01:18
+ */
+
+public interface TechnicalArticlesService {
+
+    List<TechnicalArticlesVO> getTechnicalArticles(Pageable pageable);
+
+}

+ 0 - 5
site/src/main/java/com/mooctest/crowd/site/service/impl/CommonServiceImpl.java

@@ -22,11 +22,6 @@ public class CommonServiceImpl implements CommonService {
     }
 
     @Override
-    public IndexInfoDTO getIndexInfos() {
-        return viewMediator.renderIndexInfos();
-    }
-
-    @Override
     public MyCrowdDTO getPersonCrowd(Long userId) {
         return viewMediator.renderMyCrowd(userId);
     }

+ 27 - 0
site/src/main/java/com/mooctest/crowd/site/service/impl/TechnicalArticlesServiceImpl.java

@@ -0,0 +1,27 @@
+package com.mooctest.crowd.site.service.impl;
+
+
+import com.mooctest.crowd.site.data.vo.TechnicalArticlesVO;
+import com.mooctest.crowd.site.mediator.ViewMediator;
+import com.mooctest.crowd.site.service.TechnicalArticlesService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Pageable;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class TechnicalArticlesServiceImpl implements TechnicalArticlesService {
+
+
+
+
+    @Autowired
+    private ViewMediator viewMediator;
+
+
+    @Override
+    public List<TechnicalArticlesVO> getTechnicalArticles(Pageable pageable) {
+        return viewMediator.technicalArticles(pageable);
+    }
+}

Some files were not shown because too many files changed in this diff