diff --git a/src/main/java/com/ccsens/experiment/api/ProjectController.java b/src/main/java/com/ccsens/experiment/api/ProjectController.java index 23ecd59..0b6287b 100644 --- a/src/main/java/com/ccsens/experiment/api/ProjectController.java +++ b/src/main/java/com/ccsens/experiment/api/ProjectController.java @@ -79,4 +79,13 @@ public class ProjectController { log.info("删除项目结束"); return JsonResponse.newInstance().ok(); } + + @RequestMapping(value = "/authorization", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse getAuthorizationByProjectId(@ApiParam @Validated @RequestBody CProjectDto.ProjectById params) throws Exception{ + log.info("查看用户对项目的权限:{}",params); + Byte authorization = experimentService.getAuthorizationByProjectId(params.getProjectId(),params.getUserId()); +// projectService.deleteProjectById(params,null); + log.info("用户对项目的权限:{}",authorization); + return JsonResponse.newInstance().ok(authorization); + } } diff --git a/src/main/java/com/ccsens/experiment/persist/dao/OrganizationDao.java b/src/main/java/com/ccsens/experiment/persist/dao/OrganizationDao.java index 9d291c3..7520028 100644 --- a/src/main/java/com/ccsens/experiment/persist/dao/OrganizationDao.java +++ b/src/main/java/com/ccsens/experiment/persist/dao/OrganizationDao.java @@ -20,4 +20,11 @@ public interface OrganizationDao extends OrganizationMapper { * @return 返回成员信息 */ List queryMemberByName(@Param("experimentId") Long experimentId, @Param("name") String name); + + /** + * 查找课题下所有成员的userId + * @param experimentId 课题id + * @return 返回所有成员的userId + */ + List getUserIdByExperimentId(@Param("experimentId")Long experimentId); } diff --git a/src/main/java/com/ccsens/experiment/service/ExperimentService.java b/src/main/java/com/ccsens/experiment/service/ExperimentService.java index fa0974f..5d29d8b 100644 --- a/src/main/java/com/ccsens/experiment/service/ExperimentService.java +++ b/src/main/java/com/ccsens/experiment/service/ExperimentService.java @@ -14,10 +14,7 @@ import com.ccsens.experiment.bean.dto.SubExperimentDto; import com.ccsens.experiment.bean.po.*; import com.ccsens.experiment.bean.vo.ExperimentVo; import com.ccsens.experiment.bean.vo.SubExperimentVo; -import com.ccsens.experiment.persist.dao.ExperimentDao; -import com.ccsens.experiment.persist.dao.ExperimentFlowDao; -import com.ccsens.experiment.persist.dao.ExperimentStatusDao; -import com.ccsens.experiment.persist.dao.PlanTaskDao; +import com.ccsens.experiment.persist.dao.*; import com.ccsens.experiment.persist.mapper.*; import com.ccsens.experiment.util.ExperimentCodeError; import com.ccsens.experiment.util.ExperimentConstant; @@ -63,6 +60,8 @@ public class ExperimentService implements IExperimentService { private BusinessFileMapper businessFileMapper; @Resource private SubExperimentStageMapper subExperimentStageMapper; + @Resource + private OrganizationDao organizationDao; /** * 创建课题 @@ -367,6 +366,12 @@ public class ExperimentService implements IExperimentService { return getExperimentationVo; } + @Override + public Byte getAuthorizationByProjectId(Long projectId, Long userId) { + + return null; + } + /** * 修改课题的信息 */ @@ -549,7 +554,10 @@ public class ExperimentService implements IExperimentService { experimentFlowDao.saveTaskPluginList(taskPluginList); //调用tall3的接口添加一个项目,并将当前用户关联项目 - Set userIdSet = new HashSet<>(); + //查询最上级的课题id + Long experimentId = experimentDao.getExperimentIdBySub(experiment.getId()); + List userIdList = organizationDao.getUserIdByExperimentId(experimentId); + Set userIdSet = new HashSet<>(userIdList); userIdSet.add(userId); ProjectDto.SaveProjectDto saveProjectDto = new ProjectDto.SaveProjectDto(); @@ -612,5 +620,4 @@ public class ExperimentService implements IExperimentService { // } return member; } - } diff --git a/src/main/java/com/ccsens/experiment/service/IExperimentService.java b/src/main/java/com/ccsens/experiment/service/IExperimentService.java index 7928423..9b2b1c3 100644 --- a/src/main/java/com/ccsens/experiment/service/IExperimentService.java +++ b/src/main/java/com/ccsens/experiment/service/IExperimentService.java @@ -96,4 +96,12 @@ public interface IExperimentService { * @return 返回实验信息 */ SubExperimentVo.GetExperimentationVo getExperimentationById(SubExperimentDto.GetExperimentation param); + + /** + * 查看用户对课题的权限 + * @param projectId 项目 + * @param userId userId + * @return 返回权限 + */ + Byte getAuthorizationByProjectId(Long projectId, Long userId); } diff --git a/src/main/java/com/ccsens/experiment/service/OrganizationService.java b/src/main/java/com/ccsens/experiment/service/OrganizationService.java index 6f5c2c7..c426212 100644 --- a/src/main/java/com/ccsens/experiment/service/OrganizationService.java +++ b/src/main/java/com/ccsens/experiment/service/OrganizationService.java @@ -2,6 +2,7 @@ package com.ccsens.experiment.service; import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.ObjectUtil; +import com.ccsens.cloudutil.bean.tall.dto.ProjectDto; import com.ccsens.cloudutil.feign.Tall3FeignClient; import com.ccsens.experiment.bean.dto.OrganizationDto; import com.ccsens.experiment.bean.po.OrganizationMember; @@ -12,6 +13,7 @@ import com.ccsens.experiment.persist.mapper.OrganizationMemberMapper; import com.ccsens.experiment.util.ExperimentCodeError; import com.ccsens.experiment.util.ExperimentConstant; import com.ccsens.util.JsonResponse; +import com.ccsens.util.PropUtil; import com.ccsens.util.exception.BaseException; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Repository; @@ -20,7 +22,11 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; + /** * @author 逗 */ @@ -67,6 +73,24 @@ public class OrganizationService implements IOrganizationService { //TODO 机构信息 organizationMemberMapper.insertSelective(member); + //所有成员都能看到项目 + saveUserIdProject(experimentId); + } + + private void saveUserIdProject(Long experimentId) { + //查找项目下所有成员的userId + List userIdList = organizationDao.getUserIdByExperimentId(experimentId); + Set userIdSet = new HashSet<>(userIdList); + + ProjectDto.SaveProjectDto saveProjectDto = new ProjectDto.SaveProjectDto(); + saveProjectDto.setId(experimentId); + saveProjectDto.setUserIdList(userIdSet); + JsonResponse jsonResponse = tall3FeignClient.saveProjectList(saveProjectDto); + if (null == jsonResponse){ + throw new BaseException(ExperimentCodeError.FEIGN_ERROR); + }else if(!jsonResponse.getCode().equals(ExperimentCodeError.SUCCESS.getCode())){ + throw new BaseException(ExperimentCodeError.FEIGN_ERROR); + } } @Override @@ -79,6 +103,10 @@ public class OrganizationService implements IOrganizationService { if(ObjectUtil.isNotNull(param.getPhone())){ member.setPhone(param.getPhone()); // TODO 修改userID + //根据手机号获取userId + JsonResponse userIdByPhone = tall3FeignClient.getUserIdByPhone(param.getPhone()); + log.info("通过tall3获取手机号对应的userId:{}",userIdByPhone); + member.setUserId(userIdByPhone.getData()); } organizationMemberMapper.updateByPrimaryKeySelective(member); } @@ -91,6 +119,7 @@ public class OrganizationService implements IOrganizationService { } member.setRecStatus((byte) 2); organizationMemberMapper.updateByPrimaryKeySelective(member); + saveUserIdProject(member.getExperimentId()); } diff --git a/src/main/resources/mapper_dao/OrganizationDao.xml b/src/main/resources/mapper_dao/OrganizationDao.xml index cb9a438..7554fe5 100644 --- a/src/main/resources/mapper_dao/OrganizationDao.xml +++ b/src/main/resources/mapper_dao/OrganizationDao.xml @@ -53,4 +53,13 @@ and m.rec_status = 0 ORDER BY e.type + \ No newline at end of file