Browse Source

使用线上redis

willliamguo 3 years ago
parent
commit
183941d79a

+ 18 - 0
site/src/main/java/com/mooctest/crowd/site/controller/CrowdProjectController.java

@@ -7,6 +7,9 @@ import com.mooctest.crowd.site.annotation.LoginRequired;
 import com.mooctest.crowd.site.command.CrowdTestProjectCommand;
 import com.mooctest.crowd.site.command.GenerateProjectCommand;
 import com.mooctest.crowd.site.data.dto.ProjectDetailsDTO;
+import com.mooctest.crowd.site.data.dto.UserProjectDTO;
+import com.mooctest.crowd.site.data.response.ResponseVO;
+import com.mooctest.crowd.site.data.response.ServerCode;
 import com.mooctest.crowd.site.data.vo.RegionalManagerVO;
 import com.mooctest.crowd.site.service.CrowdProjectService;
 import com.mooctest.crowd.site.util.FileUtil;
@@ -219,4 +222,19 @@ public class CrowdProjectController{
     public  List<CrowdTestProject>  getByProject(){
         return projectService.getByProject();
     }
+
+    /**
+     * 获取指定项目任务的详情接口
+     * @param projectCode
+     * @return
+     */
+    @RequestMapping(value = "/api/project/{projectCode}/task/{taskCode}/user/{userId}/token/{token}", method = RequestMethod.GET)
+    public ResponseVO<UserProjectDTO> getProjectByToken(@PathVariable("projectCode") String projectCode,
+                                                        @PathVariable("taskCode") String taskCode,
+                                                        @PathVariable("userId") String userIdStr,
+                                                        @PathVariable("token") String token,
+                                                        HttpSession session){
+        Long userId = Long.parseLong(userIdStr);
+        return new ResponseVO<>(ServerCode.SUCCESS, projectService.getProjectByToken(projectCode, taskCode, userId, token));
+    }
 }

+ 5 - 4
site/src/main/java/com/mooctest/crowd/site/controller/CrowdTaskController.java

@@ -146,10 +146,11 @@ public class CrowdTaskController{
     @LoginRequired
     @RequestMapping(value = "/project/{projectCode}/task/{taskCode}/token", method = RequestMethod.GET)
     public ResponseVO<String> getToken(@PathVariable("projectCode") String projectCode, @PathVariable("taskCode") String taskCode, HttpSession session){
-        Object user = session.getAttribute("userId");
-        if (user == null)
-            return new ResponseVO<>(ServerCode.ERROR, "未登录,请先登录");
-        Long userId = Long.parseLong((String)session.getAttribute("userId"));
+//        Object user = session.getAttribute("userId");
+//        if (user == null)
+//            return new ResponseVO<>(ServerCode.ERROR, "未登录,请先登录");
+//        Long userId = Long.parseLong((String)session.getAttribute("userId"));
+        Long userId = 99222L;
         return new ResponseVO<>(ServerCode.SUCCESS, taskService.getToken(projectCode, taskCode, userId));
     }
 }

+ 16 - 0
site/src/main/java/com/mooctest/crowd/site/data/dto/UserProjectDTO.java

@@ -0,0 +1,16 @@
+package com.mooctest.crowd.site.data.dto;
+
+import com.mooctest.crowd.site.data.vo.CrowdProjectVO;
+import com.mooctest.crowd.site.data.vo.CrowdTaskVO;
+import com.mooctest.crowd.site.data.vo.UserVO;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class UserProjectDTO implements Serializable {
+    private UserVO userVO;
+    private CrowdProjectVO projectDetails;
+    private List<CrowdTaskVO> taskList;
+}

+ 3 - 0
site/src/main/java/com/mooctest/crowd/site/service/CrowdProjectService.java

@@ -4,6 +4,7 @@ import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
 import com.mooctest.crowd.site.command.CrowdTestProjectCommand;
 import com.mooctest.crowd.site.command.GenerateProjectCommand;
 import com.mooctest.crowd.site.data.dto.ProjectDetailsDTO;
+import com.mooctest.crowd.site.data.dto.UserProjectDTO;
 import com.mooctest.crowd.site.data.vo.CrowdProjectVO;
 import com.mooctest.crowd.site.data.vo.CrowdTestProjectVO;
 import com.mooctest.crowd.site.data.vo.RegionalManagerVO;
@@ -60,4 +61,6 @@ public interface CrowdProjectService {
     boolean modifyAllData();
 
     List<CrowdTestProject> getByProject();
+
+    UserProjectDTO getProjectByToken(String projectCode, String taskCode, Long userId, String token);
 }

+ 27 - 4
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdProjectServiceImpl.java

@@ -8,6 +8,7 @@ import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.domain.exception.Excel2ProjectException;
 import com.mooctest.crowd.domain.exception.HaveNotPartAuthException;
 import com.mooctest.crowd.domain.factory.CrowdTestProjectFactory;
+import com.mooctest.crowd.domain.model.ResourceTokenPO;
 import com.mooctest.crowd.domain.model.UserTaskCountPO;
 import com.mooctest.crowd.domain.repository.CommonRepo;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
@@ -16,11 +17,10 @@ import com.mooctest.crowd.domain.util.Converter;
 import com.mooctest.crowd.site.command.CrowdTestProjectCommand;
 import com.mooctest.crowd.site.command.GenerateProjectCommand;
 import com.mooctest.crowd.site.data.dto.ProjectDetailsDTO;
+import com.mooctest.crowd.site.data.dto.UserProjectDTO;
 import com.mooctest.crowd.site.data.enums.ProjectType;
 import com.mooctest.crowd.site.data.enums.RoleType;
-import com.mooctest.crowd.site.data.vo.CrowdProjectVO;
-import com.mooctest.crowd.site.data.vo.CrowdTestProjectVO;
-import com.mooctest.crowd.site.data.vo.RegionalManagerVO;
+import com.mooctest.crowd.site.data.vo.*;
 import com.mooctest.crowd.site.mediator.OperationMediator;
 import com.mooctest.crowd.site.mediator.ViewMediator;
 import com.mooctest.crowd.site.service.CrowdProjectService;
@@ -88,6 +88,9 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
     @Autowired
     private UserTaskCountDao userTaskCountDao;
 
+	@Autowired
+	private ResourceTokenDao resourceTokenDao;
+
     @Autowired
     private ThemeSchedulerService themeSchedulerService;
 
@@ -486,7 +489,27 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
         return projectRepo.getByProject();
     }
 
-    private List<CrowdTestProject> transferExcel2Projects(MultipartFile file) {
+	@Override
+	public UserProjectDTO getProjectByToken(String projectCode, String taskCode, Long userId, String token) {
+		Optional<ResourceTokenPO> resourceTokenPOOptional = resourceTokenDao.findByProjectCodeAndTaskCodeAndUserId(projectCode, taskCode, userId);
+		if(resourceTokenPOOptional.isPresent()){
+			if(!resourceTokenPOOptional.get().getToken().equals(token)){
+				throw new BaseException("token 无效");
+			}
+		}else{
+			throw new BaseException("token 无效");
+		}
+		UserProjectDTO userProjectDTO = new UserProjectDTO();
+		User user = userRepo.getByIDJustInfo(userId);
+		userProjectDTO.setUserVO(new UserVO(user));
+		ProjectDetailsDTO projectDetails = this.getProjectDetails(projectCode, userId);
+		userProjectDTO.setProjectDetails(projectDetails.getProjectDetails());
+		List<CrowdTaskVO> taskVOS = projectDetails.getTaskList().stream().filter(crowdTaskVO -> crowdTaskVO.getCode().equals(taskCode)).collect(Collectors.toList());
+		userProjectDTO.setTaskList(taskVOS);
+		return userProjectDTO;
+	}
+
+	private List<CrowdTestProject> transferExcel2Projects(MultipartFile file) {
         List<String> logList = new ArrayList<>();
         List<CrowdTestProject> projects = new ArrayList<>();
         Workbook workbook = null;

+ 4 - 4
site/src/main/resources/application.yml

@@ -203,9 +203,9 @@ spring:
     username: mooctest
     password: secr3t!
   redis:
-    host: 59.42.10.53
-    port: 6379
-    password: '#2019@callforttest@!'
+    host: 121.196.124.158
+    port: 16379
+    password:
     jedis:
       pool:
         max-active: 8
@@ -215,7 +215,7 @@ spring:
     database: 6
 user:
   service:
-    baseUrl: http://59.42.10.53:8081
+    baseUrl: http://121.196.124.158:8082
 
 file:
   save: