Browse Source

增加项目转换为模板接口

recovery
ma 5 years ago
parent
commit
145e949147
  1. 7
      tall/src/main/java/com/ccsens/tall/bean/dto/ProjectDto.java
  2. 9
      tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberRoleShowDao.java
  3. 8
      tall/src/main/java/com/ccsens/tall/service/IProjectService.java
  4. 5
      tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
  5. 65
      tall/src/main/java/com/ccsens/tall/service/ProjectService.java
  6. 16
      tall/src/main/java/com/ccsens/tall/web/ProjectController.java

7
tall/src/main/java/com/ccsens/tall/bean/dto/ProjectDto.java

@ -156,4 +156,11 @@ public class ProjectDto {
@ApiModelProperty("标签id") @ApiModelProperty("标签id")
private List<Long> labelList; private List<Long> labelList;
} }
@Data
@ApiModel("项目转模板")
public static class ProjectToTemplate{
@ApiModelProperty("项目id")
private Long projectId;
}
} }

9
tall/src/main/java/com/ccsens/tall/persist/dao/ProMemberRoleShowDao.java

@ -0,0 +1,9 @@
package com.ccsens.tall.persist.dao;
import com.ccsens.tall.persist.mapper.ProMemberRoleShowMapper;
/**
* @author
*/
public interface ProMemberRoleShowDao extends ProMemberRoleShowMapper {
}

8
tall/src/main/java/com/ccsens/tall/service/IProjectService.java

@ -3,6 +3,7 @@ package com.ccsens.tall.service;
import com.ccsens.tall.bean.dto.ProjectDto; import com.ccsens.tall.bean.dto.ProjectDto;
import com.ccsens.tall.bean.po.SysProject; import com.ccsens.tall.bean.po.SysProject;
import com.ccsens.tall.bean.vo.ProjectVo; import com.ccsens.tall.bean.vo.ProjectVo;
import com.ccsens.util.bean.dto.QueryDto;
import java.util.List; import java.util.List;
@ -56,4 +57,11 @@ public interface IProjectService {
* @return 返回项目信息 * @return 返回项目信息
*/ */
ProjectVo.ProjectInfo createProject(Long currentUserId,ProjectDto.CreateProject createProject,String token); ProjectVo.ProjectInfo createProject(Long currentUserId,ProjectDto.CreateProject createProject,String token);
/**
* 项目转模板
* @param param 项目id
* @param userId 当前用户id
*/
void projectToTemplate(ProjectDto.ProjectToTemplate param, Long userId);
} }

5
tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java

@ -1503,9 +1503,8 @@ public class ProTaskDetailService implements IProTaskDetailService {
taskDetail.setName(updateTaskInfo.getName()); taskDetail.setName(updateTaskInfo.getName());
} }
//详情 //详情
if (StrUtil.isNotEmpty(updateTaskInfo.getDescription())) { taskDetail.setDescription(updateTaskInfo.getDescription());
taskDetail.setDescription(updateTaskInfo.getDescription());
}
//负责人 //负责人
if (ObjectUtil.isNotNull(updateTaskInfo.getExecutorRole())) { if (ObjectUtil.isNotNull(updateTaskInfo.getExecutorRole())) {
taskDetail.setExecutorRole(updateTaskInfo.getExecutorRole()); taskDetail.setExecutorRole(updateTaskInfo.getExecutorRole());

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

@ -12,6 +12,7 @@ import com.ccsens.tall.bean.po.*;
import com.ccsens.tall.bean.vo.LabelVo; import com.ccsens.tall.bean.vo.LabelVo;
import com.ccsens.tall.bean.vo.ProjectVo; import com.ccsens.tall.bean.vo.ProjectVo;
import com.ccsens.tall.persist.dao.*; import com.ccsens.tall.persist.dao.*;
import com.ccsens.tall.persist.mapper.ProMemberRoleMapper;
import com.ccsens.tall.persist.mapper.SysImitationMapper; import com.ccsens.tall.persist.mapper.SysImitationMapper;
import com.ccsens.util.CodeEnum; import com.ccsens.util.CodeEnum;
import com.ccsens.util.DateUtil; import com.ccsens.util.DateUtil;
@ -47,6 +48,8 @@ public class ProjectService implements IProjectService {
@Resource @Resource
private ProMemberRoleDao memberRoleDao; private ProMemberRoleDao memberRoleDao;
@Resource @Resource
private ProMemberRoleShowDao memberRoleShowDao;
@Resource
private TaskDetailDao taskDetailDao; private TaskDetailDao taskDetailDao;
@Resource @Resource
private TaskSubTimeDao taskSubTimeDao; private TaskSubTimeDao taskSubTimeDao;
@ -1248,4 +1251,66 @@ public class ProjectService implements IProjectService {
} }
return getProjectInfoById(currentUserId,sysProject.getId(),token); return getProjectInfoById(currentUserId,sysProject.getId(),token);
} }
/**
* 项目转模板
* @param param 项目id
* @param userId 当前用户id
*/
@Override
public void projectToTemplate(ProjectDto.ProjectToTemplate param, Long userId) {
//用户在项目中的最高权限
int power = proRoleService.selectPowerByRoleName(userId, param.getProjectId());
if (WebConstant.ROLE_POWER.OPERATION_POWER.value < power){
SysProject sysProject = sysProjectDao.selectByPrimaryKey(param.getProjectId());
//将项目改为模板项目
sysProject.setTemplate((byte)1);
sysProjectDao.insertSelective(sysProject);
//查找成员相关-删除
//1.查找项目下成员
ProMemberExample proMemberExample = new ProMemberExample();
proMemberExample.createCriteria().andProjectIdEqualTo(param.getProjectId());
List<ProMember> proMembers = proMemberDao.selectByExample(proMemberExample);
for (ProMember proMember : proMembers) {
proMember.setRecStatus(WebConstant.REC_STATUS.Deleted.value);
proMemberDao.updateByPrimaryKeySelective(proMember);
//2.删除成角色下的成员
ProMemberRoleExample proMemberRoleExample = new ProMemberRoleExample();
proMemberRoleExample.createCriteria().andMemberIdEqualTo(proMember.getId());
List<ProMemberRole> proMemberRoles = memberRoleDao.selectByExample(proMemberRoleExample);
proMemberRoles.forEach(proMemberRole -> {
proMemberRole.setRecStatus(WebConstant.REC_STATUS.Deleted.value);
memberRoleDao.updateByPrimaryKeySelective(proMemberRole);
});
//3.删除成员角色展示表中的相关数据
ProMemberRoleShowExample proMemberRoleShowExample = new ProMemberRoleShowExample();
proMemberRoleShowExample.createCriteria().andMemberIdEqualTo(proMember.getId());
List<ProMemberRoleShow> proMemberRoleShows = memberRoleShowDao.selectByExample(proMemberRoleShowExample);
for (ProMemberRoleShow proMemberRoleShow : proMemberRoleShows) {
proMemberRoleShow.setRecStatus(WebConstant.REC_STATUS.Deleted.value);
memberRoleShowDao.updateByPrimaryKeySelective(proMemberRoleShow);
}
}
//4.查找关注者相关删除
UserAttentionExample userAttentionExample = new UserAttentionExample();
userAttentionExample.createCriteria().andProjectIdEqualTo(param.getProjectId());
List<UserAttention> userAttentions = userAttentionDao.selectByExample(userAttentionExample);
if (CollectionUtil.isNotEmpty(userAttentions)){
userAttentions.forEach(userAttention -> {
userAttention.setRecStatus(WebConstant.REC_STATUS.Deleted.value);
userAttentionDao.updateByPrimaryKeySelective(userAttention);
});
}
}else{
throw new BaseException(CodeEnum.NOT_POWER);
}
}
} }

16
tall/src/main/java/com/ccsens/tall/web/ProjectController.java

@ -11,11 +11,9 @@ import com.ccsens.tall.service.IProjectService;
import com.ccsens.util.JsonResponse; import com.ccsens.util.JsonResponse;
import com.ccsens.util.WebConstant; import com.ccsens.util.WebConstant;
import com.ccsens.util.annotation.OperateType; import com.ccsens.util.annotation.OperateType;
import com.ccsens.util.bean.dto.QueryDto;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import io.swagger.annotations.Api; import io.swagger.annotations.*;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -323,4 +321,14 @@ public class ProjectController {
return JsonResponse.newInstance().ok(); return JsonResponse.newInstance().ok();
} }
@ApiOperation(value = "将项目转化为模板", notes = "")
@RequestMapping(value = "/projectToTemplate", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse projectToTemplate(@ApiParam @Validated @RequestBody QueryDto<ProjectDto.ProjectToTemplate> params) throws Exception {
log.info("将项目转化为模板:{}",params);
projectService.projectToTemplate(params.getParam(),params.getUserId());
log.info("项目转模板");
return JsonResponse.newInstance().ok();
}
} }

Loading…
Cancel
Save