Browse Source

获取userid

master
zhangye 6 years ago
parent
commit
843354a6f1
  1. 0
      origin)
  2. 202
      tall/src/main/java/com/ccsens/tall/service/ProjectService.java
  3. 47
      tall/src/main/java/com/ccsens/tall/web/UserController.java

0
origin)

202
tall/src/main/java/com/ccsens/tall/service/ProjectService.java

@ -26,7 +26,7 @@ import java.util.*;
@Slf4j @Slf4j
@Service @Service
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class) @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class ProjectService implements IProjectService { public class ProjectService implements IProjectService {
@Autowired @Autowired
private SysProjectDao sysProjectDao; private SysProjectDao sysProjectDao;
@ -61,12 +61,13 @@ public class ProjectService implements IProjectService {
/** /**
* 根据名字查找此用户创建的项目 * 根据名字查找此用户创建的项目
*
* @param subProject * @param subProject
* @param currentUserId * @param currentUserId
* @return * @return
*/ */
@Override @Override
public SysProject selectByNameAndUserId(String subProject, Long currentUserId) throws Exception{ public SysProject selectByNameAndUserId(String subProject, Long currentUserId) throws Exception {
SysProject project = new SysProject(); SysProject project = new SysProject();
SysProjectExample projectExample = new SysProjectExample(); SysProjectExample projectExample = new SysProjectExample();
projectExample.createCriteria().andCreatorIdEqualTo(currentUserId).andNameEqualTo(subProject); projectExample.createCriteria().andCreatorIdEqualTo(currentUserId).andNameEqualTo(subProject);
@ -79,6 +80,7 @@ public class ProjectService implements IProjectService {
/** /**
* 查找本月哪一天有项目 * 查找本月哪一天有项目
*
* @param currentUserId * @param currentUserId
* @param date * @param date
* @return * @return
@ -87,22 +89,23 @@ public class ProjectService implements IProjectService {
public List<String> haveProjectDay(Long currentUserId, String date) throws Exception { public List<String> haveProjectDay(Long currentUserId, String date) throws Exception {
List<String> dateList = new ArrayList<>(); List<String> dateList = new ArrayList<>();
//获取日期的开始结束时间 //获取日期的开始结束时间
Map<String,Long> timeMap = new HashMap<>(); Map<String, Long> timeMap = new HashMap<>();
timeMap = DateUtil.projectFormatDateTime(date); timeMap = DateUtil.projectFormatDateTime(date);
Long startMillisTime = timeMap.get("startMillisTime"); Long startMillisTime = timeMap.get("startMillisTime");
Long endMillisTime = timeMap.get("endMillisTime"); Long endMillisTime = timeMap.get("endMillisTime");
//查找此用户关注的项目 //查找此用户关注的项目
List<SysProject> projectList = sysProjectDao.findProjectIdByUserId(currentUserId,startMillisTime,endMillisTime); List<SysProject> projectList = sysProjectDao.findProjectIdByUserId(currentUserId, startMillisTime, endMillisTime);
if(CollectionUtil.isNotEmpty(projectList)){ if (CollectionUtil.isNotEmpty(projectList)) {
for(SysProject sysProject:projectList){ for (SysProject sysProject : projectList) {
startMillisTime = sysProject.getBeginTime() > startMillisTime ? sysProject.getBeginTime() : startMillisTime; startMillisTime = sysProject.getBeginTime() > startMillisTime ? sysProject.getBeginTime() : startMillisTime;
endMillisTime = sysProject.getEndTime() < endMillisTime ? sysProject.getEndTime() : endMillisTime; endMillisTime = sysProject.getEndTime() < endMillisTime ? sysProject.getEndTime() : endMillisTime;
dateList = getTimeList(dateList,startMillisTime,endMillisTime); dateList = getTimeList(dateList, startMillisTime, endMillisTime);
} }
} }
return dateList; return dateList;
} }
private List<String> getTimeList(List<String> dateList, Long startTime,Long endTime){
private List<String> getTimeList(List<String> dateList, Long startTime, Long endTime) {
SimpleDateFormat sdf = new SimpleDateFormat("dd"); SimpleDateFormat sdf = new SimpleDateFormat("dd");
Date s = new Date(startTime); Date s = new Date(startTime);
Date e = new Date(endTime); Date e = new Date(endTime);
@ -113,8 +116,8 @@ public class ProjectService implements IProjectService {
max.setTime(e); max.setTime(e);
Calendar curr = min; Calendar curr = min;
while (curr.before(max)) { while (curr.before(max)) {
for(String str:dateList){ for (String str : dateList) {
if(!sdf.format(min.getTime()).equalsIgnoreCase(str)){ if (!sdf.format(min.getTime()).equalsIgnoreCase(str)) {
dateList.add(sdf.format(min.getTime())); dateList.add(sdf.format(min.getTime()));
} }
} }
@ -125,6 +128,7 @@ public class ProjectService implements IProjectService {
/** /**
* 根据用户和日期查找项目 * 根据用户和日期查找项目
*
* @param currentUserId * @param currentUserId
* @param date * @param date
* @return * @return
@ -134,13 +138,13 @@ public class ProjectService implements IProjectService {
public List<ProjectVo.ProjectInfo> getProjectInfo(Long currentUserId, String date) throws Exception { public List<ProjectVo.ProjectInfo> getProjectInfo(Long currentUserId, String date) throws Exception {
List<ProjectVo.ProjectInfo> projectInfoList = new ArrayList<>(); List<ProjectVo.ProjectInfo> projectInfoList = new ArrayList<>();
//获取日期的开始结束时间 //获取日期的开始结束时间
Map<String,Long> timeMap = new HashMap<>(); Map<String, Long> timeMap = new HashMap<>();
timeMap = DateUtil.projectFormatDateTime(date); timeMap = DateUtil.projectFormatDateTime(date);
Long startMillisTime = timeMap.get("startMillisTime"); Long startMillisTime = timeMap.get("startMillisTime");
Long endMillisTime = timeMap.get("endMillisTime"); Long endMillisTime = timeMap.get("endMillisTime");
//查找此用户关注的项目 //查找此用户关注的项目
List<SysProject> projectList = sysProjectDao.findProjectIdByUserId(currentUserId,startMillisTime,endMillisTime); List<SysProject> projectList = sysProjectDao.findProjectIdByUserId(currentUserId, startMillisTime, endMillisTime);
projectInfoList = projectInfoByProject(projectList,currentUserId); projectInfoList = projectInfoByProject(projectList, currentUserId);
// if(CollectionUtil.isNotEmpty(projectList)){ // if(CollectionUtil.isNotEmpty(projectList)){
// ProjectVo.ProjectInfo projectInfo = null; // ProjectVo.ProjectInfo projectInfo = null;
// for(SysProject project:projectList){ // for(SysProject project:projectList){
@ -172,17 +176,18 @@ public class ProjectService implements IProjectService {
// } // }
return projectInfoList; return projectInfoList;
} }
private List<ProjectVo.ProjectInfo> projectInfoByProject(List<SysProject> projectList, Long currentUserId){
private List<ProjectVo.ProjectInfo> projectInfoByProject(List<SysProject> projectList, Long currentUserId) {
List<ProjectVo.ProjectInfo> projectInfoList = new ArrayList<>(); List<ProjectVo.ProjectInfo> projectInfoList = new ArrayList<>();
if(CollectionUtil.isNotEmpty(projectList)){ if (CollectionUtil.isNotEmpty(projectList)) {
ProjectVo.ProjectInfo projectInfo = null; ProjectVo.ProjectInfo projectInfo = null;
for(SysProject project:projectList){ for (SysProject project : projectList) {
projectInfo = new ProjectVo.ProjectInfo(); projectInfo = new ProjectVo.ProjectInfo();
BeanUtil.copyProperties(project,projectInfo); BeanUtil.copyProperties(project, projectInfo);
projectInfo.setCreator(false); projectInfo.setCreator(false);
projectInfo.setRoles(new ArrayList<>()); projectInfo.setRoles(new ArrayList<>());
//是否是创建者 //是否是创建者
if(project.getCreatorId().longValue()==currentUserId.longValue()){ if (project.getCreatorId().longValue() == currentUserId.longValue()) {
projectInfo.getRoles().add(WebConstant.ROLE_NAME.Creator.phase); projectInfo.getRoles().add(WebConstant.ROLE_NAME.Creator.phase);
projectInfo.setCreator(true); projectInfo.setCreator(true);
} }
@ -193,11 +198,11 @@ public class ProjectService implements IProjectService {
projectInfo.getRoles().add(proRole.getDescription()); projectInfo.getRoles().add(proRole.getDescription());
} }
} }
if(CollectionUtil.isEmpty(projectInfo.getRoles())){ if (CollectionUtil.isEmpty(projectInfo.getRoles())) {
projectInfo.getRoles().add(WebConstant.ROLE_NAME.Attention.phase); projectInfo.getRoles().add(WebConstant.ROLE_NAME.Attention.phase);
} }
//用户在项目中的最高权限 //用户在项目中的最高权限
int power = proRoleService.selectPowerByRoleName(currentUserId,project.getId()); int power = proRoleService.selectPowerByRoleName(currentUserId, project.getId());
projectInfo.setPower(power); projectInfo.setPower(power);
projectInfoList.add(projectInfo); projectInfoList.add(projectInfo);
@ -208,7 +213,8 @@ public class ProjectService implements IProjectService {
/** /**
* 通过项目id查询项目 * 通过项目id查询项目
* @param userId 用户id *
* @param userId 用户id
* @param projectId * @param projectId
* @return * @return
*/ */
@ -216,11 +222,11 @@ public class ProjectService implements IProjectService {
public ProjectVo.ProjectInfo getProjectInfoById(Long userId, Long projectId) { public ProjectVo.ProjectInfo getProjectInfoById(Long userId, Long projectId) {
SysProject sysProject = sysProjectDao.selectByPrimaryKey(projectId); SysProject sysProject = sysProjectDao.selectByPrimaryKey(projectId);
ProjectVo.ProjectInfo projectInfo = new ProjectVo.ProjectInfo(); ProjectVo.ProjectInfo projectInfo = new ProjectVo.ProjectInfo();
BeanUtil.copyProperties(sysProject,projectInfo); BeanUtil.copyProperties(sysProject, projectInfo);
projectInfo.setCreator(false); projectInfo.setCreator(false);
projectInfo.setRoles(new ArrayList<>()); projectInfo.setRoles(new ArrayList<>());
//是否是创建者 //是否是创建者
if(sysProject.getCreatorId().longValue()==userId.longValue()){ if (sysProject.getCreatorId().longValue() == userId.longValue()) {
projectInfo.getRoles().add(WebConstant.ROLE_NAME.Creator.phase); projectInfo.getRoles().add(WebConstant.ROLE_NAME.Creator.phase);
projectInfo.setCreator(true); projectInfo.setCreator(true);
} }
@ -231,17 +237,17 @@ public class ProjectService implements IProjectService {
projectInfo.getRoles().add(proRole.getDescription()); projectInfo.getRoles().add(proRole.getDescription());
} }
} }
if(CollectionUtil.isEmpty(projectInfo.getRoles())){ if (CollectionUtil.isEmpty(projectInfo.getRoles())) {
projectInfo.getRoles().add(WebConstant.ROLE_NAME.Attention.phase); projectInfo.getRoles().add(WebConstant.ROLE_NAME.Attention.phase);
} }
//用户在项目中的最高权限 //用户在项目中的最高权限
int power = proRoleService.selectPowerByRoleName(userId,projectId); int power = proRoleService.selectPowerByRoleName(userId, projectId);
projectInfo.setPower(power); projectInfo.setPower(power);
//获取项目配置 //获取项目配置
ProShowExample proShowExample = new ProShowExample(); ProShowExample proShowExample = new ProShowExample();
proShowExample.createCriteria().andProjectIdEqualTo(projectId); proShowExample.createCriteria().andProjectIdEqualTo(projectId);
List<ProShow> proShowList = new ArrayList<>(); List<ProShow> proShowList = new ArrayList<>();
if(CollectionUtil.isNotEmpty(proShowList)){ if (CollectionUtil.isNotEmpty(proShowList)) {
ProjectVo.ProjectConfig projectConfig = new ProjectVo.ProjectConfig(); ProjectVo.ProjectConfig projectConfig = new ProjectVo.ProjectConfig();
projectConfig.setSlide(proShowList.get(0).getSlide()); projectConfig.setSlide(proShowList.get(0).getSlide());
projectConfig.setFilter(proShowList.get(0).getFilter()); projectConfig.setFilter(proShowList.get(0).getFilter());
@ -253,6 +259,7 @@ public class ProjectService implements IProjectService {
/** /**
* 根据类型查项目 项目类型 0普通项目 1模板项目 2常驻项目 * 根据类型查项目 项目类型 0普通项目 1模板项目 2常驻项目
*
* @return * @return
*/ */
@Override @Override
@ -275,8 +282,8 @@ public class ProjectService implements IProjectService {
@Override @Override
public List<ProjectVo.TemplateStatus> getForever() { public List<ProjectVo.TemplateStatus> getForever() {
List<ProjectVo.TemplateStatus> templateProject = sysProjectDao.selectByTemplateStatus(2); List<ProjectVo.TemplateStatus> templateProject = sysProjectDao.selectByTemplateStatus(2);
if(CollectionUtil.isNotEmpty(templateProject)){ if (CollectionUtil.isNotEmpty(templateProject)) {
for(ProjectVo.TemplateStatus templateStatus:templateProject){ for (ProjectVo.TemplateStatus templateStatus : templateProject) {
templateStatus.setProcess(1); templateStatus.setProcess(1);
} }
} }
@ -294,18 +301,18 @@ public class ProjectService implements IProjectService {
//获取日期的开始结束时间 //获取日期的开始结束时间
Long startMillisTime = null; Long startMillisTime = null;
Long endMillisTime = null; Long endMillisTime = null;
Map<String,Long> timeMap = null; Map<String, Long> timeMap = null;
if(StrUtil.isNotEmpty(start)){ if (StrUtil.isNotEmpty(start)) {
timeMap = DateUtil.projectFormatDateTime(start); timeMap = DateUtil.projectFormatDateTime(start);
startMillisTime = timeMap.get("startMillisTime"); startMillisTime = timeMap.get("startMillisTime");
} }
if(StrUtil.isNotEmpty(end)){ if (StrUtil.isNotEmpty(end)) {
timeMap = DateUtil.projectFormatDateTime(start); timeMap = DateUtil.projectFormatDateTime(start);
endMillisTime = timeMap.get("endMillisTime"); endMillisTime = timeMap.get("endMillisTime");
} }
List<SysProject> projectList = sysProjectDao.findProjectIdByUserId(currentUserId,startMillisTime,endMillisTime); List<SysProject> projectList = sysProjectDao.findProjectIdByUserId(currentUserId, startMillisTime, endMillisTime);
// List<SysProject> projectList = attentionService.findProjectIdByUserId(currentUserId); // List<SysProject> projectList = attentionService.findProjectIdByUserId(currentUserId);
projectInfoList = projectInfoByProject(projectList,currentUserId); projectInfoList = projectInfoByProject(projectList, currentUserId);
//关键字模糊查询和是否创建者 //关键字模糊查询和是否创建者
if (CollectionUtil.isNotEmpty(projectInfoList) && StrUtil.isNotEmpty(key)) { if (CollectionUtil.isNotEmpty(projectInfoList) && StrUtil.isNotEmpty(key)) {
Iterator<ProjectVo.ProjectInfo> it = projectInfoList.iterator(); Iterator<ProjectVo.ProjectInfo> it = projectInfoList.iterator();
@ -314,10 +321,10 @@ public class ProjectService implements IProjectService {
if (!projectInfo.getName().contains(key)) { if (!projectInfo.getName().contains(key)) {
it.remove(); it.remove();
} }
if(StrUtil.isNotEmpty(role)){ if (StrUtil.isNotEmpty(role)) {
if("创建者".equalsIgnoreCase(role)&&!projectInfo.isCreator()){ if ("创建者".equalsIgnoreCase(role) && !projectInfo.isCreator()) {
it.remove(); it.remove();
}else if("参与者".equalsIgnoreCase(role)&&projectInfo.isCreator()){ } else if ("参与者".equalsIgnoreCase(role) && projectInfo.isCreator()) {
it.remove(); it.remove();
} }
} }
@ -366,33 +373,38 @@ public class ProjectService implements IProjectService {
@Override @Override
public List<ProjectVo.ProjectByKey> getProjectByKey(Long currentUserId, String key) throws Exception { public List<ProjectVo.ProjectByKey> getProjectByKey(Long currentUserId, String key) throws Exception {
return sysProjectDao.getProjectByKey(currentUserId,key); return sysProjectDao.getProjectByKey(currentUserId, key);
} }
//=========================================================================== //===========================================================================
/** /**
* 删除项目 * 删除项目
*/ */
@Override @Override
public void deleteProject(Long currentUserId, Long projectId) throws Exception { public void deleteProject(Long currentUserId, Long projectId) throws Exception {
//本用户在项目中的角色 SysProject project = sysProjectDao.selectByPrimaryKey(projectId);
List<ProRole> proRoles = proRoleService.getProRoleByProjectIdAndUserId(projectId, currentUserId); if (ObjectUtil.isNotNull(project)) {
//用户在项目中的最高权限 //用户在项目中的最高权限
int power = proRoleService.selectPowerByRoleName(currentUserId,projectId); int power = proRoleService.selectPowerByRoleName(currentUserId, projectId);
if(power>1){ if (power > 1) {
// //修改项目状态 // //修改项目状态
// SysProject project = sysProjectDao.selectByPrimaryKey(projectId); // SysProject project = sysProjectDao.selectByPrimaryKey(projectId);
// project.setRecStatus((byte) 1); // project.setRecStatus((byte) 1);
// sysProjectDao.updateByPrimaryKeySelective(project); // sysProjectDao.updateByPrimaryKeySelective(project);
//彻底删除项目 //彻底删除项目
deleteProjectById(projectId); deleteProjectById(projectId);
}else { } else {
throw new BaseException(CodeEnum.NOT_POWER); throw new BaseException(CodeEnum.NOT_POWER);
}
} else {
throw new BaseException(CodeEnum.NOT_PROJECT);
} }
} }
/** /**
* 删除项目 * 删除项目
*/ */
private void deleteProjectById(Long projectId){ private void deleteProjectById(Long projectId) {
//删除任务下的角色 //删除任务下的角色
proRoleService.deleteRoleByProjectId(projectId); proRoleService.deleteRoleByProjectId(projectId);
//删除这个项目被关注的信息 //删除这个项目被关注的信息
@ -407,13 +419,13 @@ public class ProjectService implements IProjectService {
* 复制项目 * 复制项目
*/ */
@Override @Override
public ProjectVo.ProjectInfo copyProject(Long userId ,Long projectId) { public ProjectVo.ProjectInfo copyProject(Long userId, Long projectId) {
ProjectVo.ProjectInfo projectInfo = new ProjectVo.ProjectInfo(); ProjectVo.ProjectInfo projectInfo = new ProjectVo.ProjectInfo();
SysProject oldProject = sysProjectDao.selectByPrimaryKey(projectId); SysProject oldProject = sysProjectDao.selectByPrimaryKey(projectId);
SysProject newProject = new SysProject(); SysProject newProject = new SysProject();
if(ObjectUtil.isNotNull(oldProject)){ if (ObjectUtil.isNotNull(oldProject)) {
BeanUtil.copyProperties(oldProject,newProject); BeanUtil.copyProperties(oldProject, newProject);
newProject.setId(snowflake.nextId()); newProject.setId(snowflake.nextId());
newProject.setCreatorId(userId); newProject.setCreatorId(userId);
saveProject(newProject); saveProject(newProject);
@ -424,8 +436,8 @@ public class ProjectService implements IProjectService {
userAttention.setProjectId(newProject.getId()); userAttention.setProjectId(newProject.getId());
attentionDao.insertSelective(userAttention); attentionDao.insertSelective(userAttention);
//添加角色 //添加角色
copyRole(oldProject.getId(),newProject.getId()); copyRole(oldProject.getId(), newProject.getId());
}else { } else {
throw new BaseException(CodeEnum.NOT_PROJECT); throw new BaseException(CodeEnum.NOT_PROJECT);
} }
//返回参数 //返回参数
@ -441,52 +453,54 @@ public class ProjectService implements IProjectService {
return projectInfo; return projectInfo;
} }
/** /**
* 复制角色 * 复制角色
*/ */
private void copyRole(Long oldProjectId,Long newProjectId){ private void copyRole(Long oldProjectId, Long newProjectId) {
//查找被复制的项目下的二级角色 //查找被复制的项目下的二级角色
Map<Long,String> oldRoleMap = new HashMap<>(); Map<Long, String> oldRoleMap = new HashMap<>();
Map<String,Long> newRoleMap = new HashMap<>(); Map<String, Long> newRoleMap = new HashMap<>();
List<ProRole> newRoleList = new ArrayList<>(); List<ProRole> newRoleList = new ArrayList<>();
ProRoleExample roleExample = new ProRoleExample(); ProRoleExample roleExample = new ProRoleExample();
roleExample.createCriteria().andProjectIdEqualTo(oldProjectId); roleExample.createCriteria().andProjectIdEqualTo(oldProjectId);
List<ProRole> oldRoleList = proRoleDao.selectByExample(roleExample); List<ProRole> oldRoleList = proRoleDao.selectByExample(roleExample);
if(CollectionUtil.isNotEmpty(oldRoleList)){ if (CollectionUtil.isNotEmpty(oldRoleList)) {
for(ProRole oldRole:oldRoleList){ for (ProRole oldRole : oldRoleList) {
oldRoleMap.put(oldRole.getId(),oldRole.getName()); oldRoleMap.put(oldRole.getId(), oldRole.getName());
//创建新的角色 //创建新的角色
ProRole newRole = new ProRole(); ProRole newRole = new ProRole();
BeanUtil.copyProperties(oldRole,newRole); BeanUtil.copyProperties(oldRole, newRole);
newRole.setId(snowflake.nextId()); newRole.setId(snowflake.nextId());
newRole.setProjectId(newProjectId); newRole.setProjectId(newProjectId);
proRoleDao.insertSelective(newRole); proRoleDao.insertSelective(newRole);
newRoleList.add(newRole); newRoleList.add(newRole);
newRoleMap.put(newRole.getName(),newRole.getId()); newRoleMap.put(newRole.getName(), newRole.getId());
} }
//修改角色的parentId //修改角色的parentId
if(CollectionUtil.isNotEmpty(newRoleList)){ if (CollectionUtil.isNotEmpty(newRoleList)) {
for(ProRole role:newRoleList){ for (ProRole role : newRoleList) {
if(role.getParentId() != 0){ if (role.getParentId() != 0) {
role.setParentId(newRoleMap.get(oldRoleMap.get(role.getParentId()))); role.setParentId(newRoleMap.get(oldRoleMap.get(role.getParentId())));
proRoleDao.updateByPrimaryKeySelective(role); proRoleDao.updateByPrimaryKeySelective(role);
} }
} }
} }
//添加对谁不可见 //添加对谁不可见
copyRoleExeclude(oldRoleList,oldRoleMap,newRoleMap); copyRoleExeclude(oldRoleList, oldRoleMap, newRoleMap);
//复制任务 //复制任务
copyTask(oldProjectId,newProjectId,oldRoleMap,newRoleMap); copyTask(oldProjectId, newProjectId, oldRoleMap, newRoleMap);
} }
} }
private void copyRoleExeclude(List<ProRole> oldRoleList, Map<Long,String> oldRoleMap, Map<String,Long> newRoleMap){
if(CollectionUtil.isNotEmpty(oldRoleList)) { private void copyRoleExeclude(List<ProRole> oldRoleList, Map<Long, String> oldRoleMap, Map<String, Long> newRoleMap) {
if (CollectionUtil.isNotEmpty(oldRoleList)) {
for (ProRole oldRole : oldRoleList) { for (ProRole oldRole : oldRoleList) {
ProRoleExcludeExample execludeExample = new ProRoleExcludeExample(); ProRoleExcludeExample execludeExample = new ProRoleExcludeExample();
execludeExample.createCriteria().andRoleIdEqualTo(oldRole.getId()); execludeExample.createCriteria().andRoleIdEqualTo(oldRole.getId());
List<ProRoleExclude> roleExecludeList = roleExcludeDao.selectByExample(execludeExample); List<ProRoleExclude> roleExecludeList = roleExcludeDao.selectByExample(execludeExample);
if(CollectionUtil.isNotEmpty(roleExecludeList)){ if (CollectionUtil.isNotEmpty(roleExecludeList)) {
for(ProRoleExclude roleExeclude:roleExecludeList){ for (ProRoleExclude roleExeclude : roleExecludeList) {
ProRoleExclude newRoleExeclude = new ProRoleExclude(); ProRoleExclude newRoleExeclude = new ProRoleExclude();
newRoleExeclude.setRoleId(newRoleMap.get(oldRoleMap.get(roleExeclude.getRoleId()))); newRoleExeclude.setRoleId(newRoleMap.get(oldRoleMap.get(roleExeclude.getRoleId())));
newRoleExeclude.setOtherRoleId(newRoleMap.get(oldRoleMap.get(roleExeclude.getRoleId()))); newRoleExeclude.setOtherRoleId(newRoleMap.get(oldRoleMap.get(roleExeclude.getRoleId())));
@ -500,18 +514,18 @@ public class ProjectService implements IProjectService {
/** /**
* 复制任务 * 复制任务
*/ */
private void copyTask(Long oldProjectId,Long newProjectId,Map<Long,String> oldRoleMap, Map<String,Long> newRoleMap){ private void copyTask(Long oldProjectId, Long newProjectId, Map<Long, String> oldRoleMap, Map<String, Long> newRoleMap) {
ProTaskDetailExample detailExample = new ProTaskDetailExample(); ProTaskDetailExample detailExample = new ProTaskDetailExample();
detailExample.createCriteria().andProjectIdEqualTo(oldProjectId).andLevelEqualTo((byte) 1); detailExample.createCriteria().andProjectIdEqualTo(oldProjectId).andLevelEqualTo((byte) 1);
List<ProTaskDetail> detailList = taskDetailDao.selectByExample(detailExample); List<ProTaskDetail> detailList = taskDetailDao.selectByExample(detailExample);
if(CollectionUtil.isNotEmpty(detailList)){ if (CollectionUtil.isNotEmpty(detailList)) {
for(ProTaskDetail oldDetail: detailList){ for (ProTaskDetail oldDetail : detailList) {
ProTaskDetail newDetail = new ProTaskDetail(); ProTaskDetail newDetail = new ProTaskDetail();
BeanUtil.copyProperties(oldDetail,newDetail); BeanUtil.copyProperties(oldDetail, newDetail);
newDetail.setId(snowflake.nextId()); newDetail.setId(snowflake.nextId());
newDetail.setProjectId(newProjectId); newDetail.setProjectId(newProjectId);
newDetail.setExecutorRole(newRoleMap.get(oldRoleMap.get(newDetail.getExecutorRole()))); newDetail.setExecutorRole(newRoleMap.get(oldRoleMap.get(newDetail.getExecutorRole())));
if(newDetail.getCheckerRole() != 0){ if (newDetail.getCheckerRole() != 0) {
newDetail.setCheckerRole(newRoleMap.get(oldRoleMap.get(newDetail.getCheckerRole()))); newDetail.setCheckerRole(newRoleMap.get(oldRoleMap.get(newDetail.getCheckerRole())));
} }
taskDetailDao.insertSelective(newDetail); taskDetailDao.insertSelective(newDetail);
@ -519,15 +533,15 @@ public class ProjectService implements IProjectService {
ProTaskDetailExample oldSecondTask = new ProTaskDetailExample(); ProTaskDetailExample oldSecondTask = new ProTaskDetailExample();
oldSecondTask.createCriteria().andParentIdEqualTo(oldDetail.getId()).andLevelEqualTo((byte) 2); oldSecondTask.createCriteria().andParentIdEqualTo(oldDetail.getId()).andLevelEqualTo((byte) 2);
List<ProTaskDetail> secondTaskList = taskDetailDao.selectByExample(oldSecondTask); List<ProTaskDetail> secondTaskList = taskDetailDao.selectByExample(oldSecondTask);
if(CollectionUtil.isNotEmpty(secondTaskList)){ if (CollectionUtil.isNotEmpty(secondTaskList)) {
for(ProTaskDetail oldSecondDetail: secondTaskList){ for (ProTaskDetail oldSecondDetail : secondTaskList) {
ProTaskDetail newSecondDetail = new ProTaskDetail(); ProTaskDetail newSecondDetail = new ProTaskDetail();
BeanUtil.copyProperties(oldSecondDetail,newSecondDetail); BeanUtil.copyProperties(oldSecondDetail, newSecondDetail);
newSecondDetail.setId(snowflake.nextId()); newSecondDetail.setId(snowflake.nextId());
newSecondDetail.setProjectId(newProjectId); newSecondDetail.setProjectId(newProjectId);
newSecondDetail.setParentId(newDetail.getId()); newSecondDetail.setParentId(newDetail.getId());
newSecondDetail.setExecutorRole(newRoleMap.get(oldRoleMap.get(newSecondDetail.getExecutorRole()))); newSecondDetail.setExecutorRole(newRoleMap.get(oldRoleMap.get(newSecondDetail.getExecutorRole())));
if(newSecondDetail.getCheckerRole() != 0){ if (newSecondDetail.getCheckerRole() != 0) {
newSecondDetail.setCheckerRole(newRoleMap.get(oldRoleMap.get(newSecondDetail.getCheckerRole()))); newSecondDetail.setCheckerRole(newRoleMap.get(oldRoleMap.get(newSecondDetail.getCheckerRole())));
} }
taskDetailDao.insertSelective(newSecondDetail); taskDetailDao.insertSelective(newSecondDetail);
@ -537,27 +551,27 @@ public class ProjectService implements IProjectService {
ProTaskDetailExample oldSubTask = new ProTaskDetailExample(); ProTaskDetailExample oldSubTask = new ProTaskDetailExample();
oldSubTask.createCriteria().andParentIdEqualTo(oldSecondDetail.getId()).andLevelEqualTo((byte) 3); oldSubTask.createCriteria().andParentIdEqualTo(oldSecondDetail.getId()).andLevelEqualTo((byte) 3);
List<ProTaskDetail> subTaskList = taskDetailDao.selectByExample(oldSubTask); List<ProTaskDetail> subTaskList = taskDetailDao.selectByExample(oldSubTask);
if(CollectionUtil.isNotEmpty(subTaskList)){ if (CollectionUtil.isNotEmpty(subTaskList)) {
for(ProTaskDetail oldSubDetail: subTaskList){ for (ProTaskDetail oldSubDetail : subTaskList) {
ProTaskDetail newSubDetail = new ProTaskDetail(); ProTaskDetail newSubDetail = new ProTaskDetail();
BeanUtil.copyProperties(oldSubDetail,newSubDetail); BeanUtil.copyProperties(oldSubDetail, newSubDetail);
newSubDetail.setId(snowflake.nextId()); newSubDetail.setId(snowflake.nextId());
newSubDetail.setProjectId(newProjectId); newSubDetail.setProjectId(newProjectId);
newSubDetail.setParentId(newSecondDetail.getId()); newSubDetail.setParentId(newSecondDetail.getId());
newSubDetail.setExecutorRole(newRoleMap.get(oldRoleMap.get(newSubDetail.getExecutorRole()))); newSubDetail.setExecutorRole(newRoleMap.get(oldRoleMap.get(newSubDetail.getExecutorRole())));
if(newSubDetail.getCheckerRole() != 0){ if (newSubDetail.getCheckerRole() != 0) {
newSubDetail.setCheckerRole(newRoleMap.get(oldRoleMap.get(newSubDetail.getCheckerRole()))); newSubDetail.setCheckerRole(newRoleMap.get(oldRoleMap.get(newSubDetail.getCheckerRole())));
} }
taskDetailDao.insertSelective(newSubDetail); taskDetailDao.insertSelective(newSubDetail);
//分解时间 //分解时间
taskToSubTime(newSubDetail); taskToSubTime(newSubDetail);
copyPluginAndDeliver(oldDetail.getId(),newDetail.getId(),oldRoleMap,newRoleMap); copyPluginAndDeliver(oldDetail.getId(), newDetail.getId(), oldRoleMap, newRoleMap);
} }
} }
copyPluginAndDeliver(oldDetail.getId(),newDetail.getId(),oldRoleMap,newRoleMap); copyPluginAndDeliver(oldDetail.getId(), newDetail.getId(), oldRoleMap, newRoleMap);
} }
} }
copyPluginAndDeliver(oldDetail.getId(),newDetail.getId(),oldRoleMap,newRoleMap); copyPluginAndDeliver(oldDetail.getId(), newDetail.getId(), oldRoleMap, newRoleMap);
} }
} }
} }
@ -565,9 +579,9 @@ public class ProjectService implements IProjectService {
/** /**
* 根据时间分解任务 * 根据时间分解任务
*/ */
private void taskToSubTime(ProTaskDetail taskDetail){ private void taskToSubTime(ProTaskDetail taskDetail) {
//cycle为空,只加一条数据 //cycle为空,只加一条数据
if(ObjectUtil.isNotNull(taskDetail)) { if (ObjectUtil.isNotNull(taskDetail)) {
if (StrUtil.isEmpty(taskDetail.getCycle())) { if (StrUtil.isEmpty(taskDetail.getCycle())) {
ProTaskSubTime proTaskSubTime = new ProTaskSubTime(); ProTaskSubTime proTaskSubTime = new ProTaskSubTime();
proTaskSubTime.setId(snowflake.nextId()); proTaskSubTime.setId(snowflake.nextId());
@ -597,15 +611,15 @@ public class ProjectService implements IProjectService {
/** /**
* 复制插件和交付物 * 复制插件和交付物
*/ */
private void copyPluginAndDeliver(Long oldTaskId,Long newTaskId,Map<Long,String> oldRoleMap, Map<String,Long> newRoleMap){ private void copyPluginAndDeliver(Long oldTaskId, Long newTaskId, Map<Long, String> oldRoleMap, Map<String, Long> newRoleMap) {
//插件 //插件
ProTaskPluginExample pluginExample = new ProTaskPluginExample(); ProTaskPluginExample pluginExample = new ProTaskPluginExample();
pluginExample.createCriteria().andTaskDetailIdEqualTo(oldTaskId); pluginExample.createCriteria().andTaskDetailIdEqualTo(oldTaskId);
List<ProTaskPlugin> pluginList = pluginDao.selectByExample(pluginExample); List<ProTaskPlugin> pluginList = pluginDao.selectByExample(pluginExample);
if(CollectionUtil.isNotEmpty(pluginList)){ if (CollectionUtil.isNotEmpty(pluginList)) {
for(ProTaskPlugin plugin:pluginList){ for (ProTaskPlugin plugin : pluginList) {
ProTaskPlugin newPlugin = new ProTaskPlugin(); ProTaskPlugin newPlugin = new ProTaskPlugin();
BeanUtil.copyProperties(plugin,newPlugin); BeanUtil.copyProperties(plugin, newPlugin);
newPlugin.setId(snowflake.nextId()); newPlugin.setId(snowflake.nextId());
newPlugin.setTaskDetailId(newTaskId); newPlugin.setTaskDetailId(newTaskId);
newPlugin.setMemberRoleId(newRoleMap.get(oldRoleMap.get(newPlugin.getMemberRoleId()))); newPlugin.setMemberRoleId(newRoleMap.get(oldRoleMap.get(newPlugin.getMemberRoleId())));
@ -616,10 +630,10 @@ public class ProjectService implements IProjectService {
ProTaskDeliverExample deliverExample = new ProTaskDeliverExample(); ProTaskDeliverExample deliverExample = new ProTaskDeliverExample();
deliverExample.createCriteria().andTaskDetailIdEqualTo(oldTaskId); deliverExample.createCriteria().andTaskDetailIdEqualTo(oldTaskId);
List<ProTaskDeliver> proTaskDeliverList = taskDeliverDao.selectByExample(deliverExample); List<ProTaskDeliver> proTaskDeliverList = taskDeliverDao.selectByExample(deliverExample);
if(CollectionUtil.isNotEmpty(proTaskDeliverList)){ if (CollectionUtil.isNotEmpty(proTaskDeliverList)) {
for(ProTaskDeliver taskDeliver:proTaskDeliverList){ for (ProTaskDeliver taskDeliver : proTaskDeliverList) {
ProTaskDeliver newTaskDeliver = new ProTaskDeliver(); ProTaskDeliver newTaskDeliver = new ProTaskDeliver();
BeanUtil.copyProperties(taskDeliver,newTaskDeliver); BeanUtil.copyProperties(taskDeliver, newTaskDeliver);
newTaskDeliver.setId(snowflake.nextId()); newTaskDeliver.setId(snowflake.nextId());
newTaskDeliver.setTaskDetailId(newTaskId); newTaskDeliver.setTaskDetailId(newTaskId);
newTaskDeliver.setCheckStatus(0); newTaskDeliver.setCheckStatus(0);

47
tall/src/main/java/com/ccsens/tall/web/UserController.java

@ -5,12 +5,12 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.servlet.ServletUtil; import cn.hutool.extra.servlet.ServletUtil;
import com.ccsens.tall.bean.dto.UserDto; import com.ccsens.tall.bean.dto.UserDto;
import com.ccsens.tall.bean.po.SysUser;
import com.ccsens.tall.bean.vo.UserVo; import com.ccsens.tall.bean.vo.UserVo;
import com.ccsens.tall.exception.UserLoginException; import com.ccsens.tall.exception.UserLoginException;
import com.ccsens.tall.service.IUserService; import com.ccsens.tall.service.IUserService;
import com.ccsens.util.JsonResponse; import com.ccsens.util.*;
import com.ccsens.util.JwtUtil; import com.ccsens.util.exception.BaseException;
import com.ccsens.util.WebConstant;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import io.jsonwebtoken.ExpiredJwtException; import io.jsonwebtoken.ExpiredJwtException;
import io.jsonwebtoken.SignatureException; import io.jsonwebtoken.SignatureException;
@ -193,8 +193,8 @@ public class UserController {
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name="token",value = "token",required = true,paramType = "query") @ApiImplicitParam(name="token",value = "token",required = true,paramType = "query")
}) })
@RequestMapping(value = "token",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"}) @RequestMapping(value = "claims",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"})
public JsonResponse<UserVo.TokenToUserId> getNodeMessage(@RequestParam(required = true) String token) throws Exception { public JsonResponse<UserVo.TokenToUserId> getNodeMessage(HttpServletRequest request, @RequestParam(required = true) String token) throws Exception {
//验证token是否有效 //验证token是否有效
UserVo.TokenToUserId tokenToUserId = new UserVo.TokenToUserId(); UserVo.TokenToUserId tokenToUserId = new UserVo.TokenToUserId();
Claims claims = null; Claims claims = null;
@ -218,6 +218,43 @@ public class UserController {
return JsonResponse.newInstance().ok(tokenToUserId); return JsonResponse.newInstance().ok(tokenToUserId);
} }
@ApiOperation(value = "根据token字符串获取userId",notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name="token",value = "token",required = true,paramType = "query")
})
@RequestMapping(value = "token",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"})
public JsonResponse<UserVo.TokenToUserId> getUserByToken(HttpServletRequest request, @RequestParam(required = true) String token) throws Exception {
UserVo.TokenToUserId tokenToUserId = new UserVo.TokenToUserId();
// 验证token是否存在
String tokenStr = token;
if (tokenStr == null || !tokenStr.startsWith(WebConstant.HEADER_KEY_TOKEN_PREFIX)) {
throw new BaseException(CodeEnum.NOT_LOGIN);
}
String userToken = tokenStr.substring(WebConstant.HEADER_KEY_TOKEN_PREFIX.length());
//验证token是否有效
Claims claims = null;
try {
claims = JwtUtil.parseJWT(userToken, WebConstant.JWT_ACCESS_TOKEN_SECERT);
}catch(Exception e){
throw new BaseException(CodeEnum.NOT_LOGIN);
}
//验证用户存根
if(userService.tokenNotExistInCache(Long.valueOf(claims.getSubject()))){
throw new BaseException(CodeEnum.NOT_LOGIN);
}
//验证用户是否禁用
SysUser user = userService.getUserById(Long.valueOf(claims.getSubject()));
if(user.getRecStatus() == WebConstant.REC_STATUS.Disabled.value){
throw new BaseException(CodeEnum.NOT_LOGIN);
}
tokenToUserId.setId(Long.valueOf(claims.getSubject()));
return JsonResponse.newInstance().ok(tokenToUserId);
}
} }

Loading…
Cancel
Save