diff --git a/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java b/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java index bb2f7ab1..a654f773 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java +++ b/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java @@ -116,6 +116,8 @@ public class CompeteVo { private String secondProjectName; @ApiModelProperty("是否通级 0否 1是") private byte certificate; + @ApiModelProperty("组别名") + private String groupName; } @Data @@ -141,6 +143,8 @@ public class CompeteVo { private int memberNums; @ApiModelProperty("二维码信息") private String qrCode; + @ApiModelProperty("组别名") + private String groupName; @ApiModelProperty("团队内的成员") private List members; diff --git a/mt/src/main/resources/application.yml b/mt/src/main/resources/application.yml index 5c2cd5c4..5889ff7f 100644 --- a/mt/src/main/resources/application.yml +++ b/mt/src/main/resources/application.yml @@ -1,4 +1,4 @@ spring: profiles: - active: dev - include: common, util-dev \ No newline at end of file + active: test + include: common, util-test \ No newline at end of file diff --git a/mt/src/main/resources/mapper_dao/CompeteTeamDao.xml b/mt/src/main/resources/mapper_dao/CompeteTeamDao.xml index b920154e..43f85a30 100644 --- a/mt/src/main/resources/mapper_dao/CompeteTeamDao.xml +++ b/mt/src/main/resources/mapper_dao/CompeteTeamDao.xml @@ -112,7 +112,8 @@ p2.type, p2.name as secondProjectName, p1.name as parentProjectName, - pp.certificate + pp.certificate, + (select group_name from t_compete_group where id = pp.compete_group_id) as groupName FROM t_compete_player p, t_compete_project_player pp, @@ -140,7 +141,8 @@ p2.member_max as memberMax, t.certificate, m.captain as creator, - if (m.captain = 1, t.qr_code, '') as qrCode + if (m.captain = 1, t.qr_code, '') as qrCode, + (select group_name from t_compete_group where id = t.compete_group_id) as groupName FROM t_compete_player p, t_compete_team_member m, diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/PluginDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/PluginDto.java index 64c24ff0..536d2810 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/PluginDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/PluginDto.java @@ -10,6 +10,9 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.util.List; +/** + * @author 逗 + */ @Data public class PluginDto { @Data @@ -92,6 +95,9 @@ public class PluginDto { private Byte placeLocation; @ApiModelProperty("程序位置 0:tall内部,1外部") private Byte routineLocation; + + public UpdatePluginConfig() { + } } } diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java index 118feacc..6fcfe1b4 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/RoleDto.java @@ -50,4 +50,13 @@ public class RoleDto { @ApiModelProperty("角色id") private Long roleId; } + + + @Data + @ApiModel("点击项目角色查询一级任务及里程碑") + public static class ProjectId{ + @NotNull(message = "项目Id") + @ApiModelProperty("项目Id") + private Long projectId; + } } diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/SysPluginDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/SysPluginDao.java index e93d6942..63411d98 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/SysPluginDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/SysPluginDao.java @@ -22,5 +22,5 @@ public interface SysPluginDao extends SysPluginMapper{ List getPluginNameAndTaskName(@Param("projectId")Long projectId); - ProPluginConfig getPluginConfigByTaskPluginId(@Param("taskPluginId")String taskPluginId); + ProPluginConfig getPluginConfigByTaskPluginId(@Param("taskPluginId")String taskPluginId,@Param("taskDetailId")Long taskDetailId); } diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java index 83019e70..0d0b3ffe 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskDetailDao.java @@ -48,9 +48,9 @@ public interface TaskDetailDao extends ProTaskDetailMapper { */ TaskVo.TaskListByProjectId getTaskById(@Param("detailTaskId")Long detailTaskId); /** - * 通过任务id查看任务信息(查看项目下所有任务时) + * 通过父任务id查看任务信息(查看项目下所有任务时) * @param parentTaskId * @return */ - List getTaskByParentId(@Param("parentTaskId")Long parentTaskId); + List getTaskByParentId(@Param("parentTaskId")Long parentTaskId,@Param("milestone")Integer milestone); } diff --git a/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java index 342279c3..f219bacf 100644 --- a/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/IProRoleService.java @@ -3,7 +3,6 @@ package com.ccsens.tall.service; import com.ccsens.tall.bean.dto.RoleDto; import com.ccsens.tall.bean.po.ProRole; import com.ccsens.tall.bean.vo.ProjectVo; -import com.ccsens.tall.bean.vo.RoleVo; import com.ccsens.tall.bean.vo.TaskVo; import java.util.List; @@ -30,16 +29,23 @@ public interface IProRoleService { void saveRole(Long currentUserId, RoleDto.SaveRole saveRole); - void updateRole(Long currentUserId, RoleDto.UpdateRole updateRole); + ProjectVo.RoleInfo updateRole(Long currentUserId, RoleDto.UpdateRole updateRole); void saveMemberByRole(Long currentUserId, RoleDto.SaveMember saveMember); void deleteMemberByRole(Long currentUserId, RoleDto.SaveMember saveMember); /** - * 查找项目下的角色包含“全体成员” + * 点击项目角色查看一级任务和里程碑 * @param projectId 项目id - * @return + * @return 返回一级任务和里程碑 */ - RoleVo.RoleByProjectId queryRoleByProjectId(Long projectId); + List queryByProjectVirtualRole(RoleDto.ProjectId projectId); + +// /** +// * 查找项目下的角色包含“全体成员” +// * @param projectId 项目id +// * @return +// */ +// RoleVo.RoleByProjectId queryRoleByProjectId(Long projectId); } diff --git a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java index 6d2bf023..b0c0b696 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java @@ -8,7 +8,6 @@ import com.ccsens.tall.bean.dto.MemberRoleDto; import com.ccsens.tall.bean.dto.RoleDto; import com.ccsens.tall.bean.po.*; import com.ccsens.tall.bean.vo.ProjectVo; -import com.ccsens.tall.bean.vo.RoleVo; import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.persist.dao.*; import com.ccsens.util.CodeEnum; @@ -48,6 +47,10 @@ public class ProRoleService implements IProRoleService { private IUserService userService; @Resource private Snowflake snowflake; + @Resource + private SysProjectDao sysProjectDao; + @Resource + private TaskDetailDao taskDetailDao; @Override public void saveProRole(ProRole proRole) { @@ -367,7 +370,7 @@ public class ProRoleService implements IProRoleService { } @Override - public void updateRole(Long currentUserId, RoleDto.UpdateRole updateRole) { + public ProjectVo.RoleInfo updateRole(Long currentUserId, RoleDto.UpdateRole updateRole) { //查找角色 ProRole proRole = proRoleDao.selectByPrimaryKey(updateRole.getRoleId()); if(ObjectUtil.isNull(proRole)){ @@ -391,6 +394,8 @@ public class ProRoleService implements IProRoleService { } } proRoleDao.updateByPrimaryKeySelective(proRole); + + return null; } @Override @@ -443,7 +448,38 @@ public class ProRoleService implements IProRoleService { } @Override - public RoleVo.RoleByProjectId queryRoleByProjectId(Long projectId) { - return null; + public List queryByProjectVirtualRole(RoleDto.ProjectId projectId) { + List taskList = new ArrayList<>(); + //查找项目 + SysProject project = sysProjectDao.selectByPrimaryKey(projectId.getProjectId()); + if (ObjectUtil.isNull(project)) { + throw new BaseException(CodeEnum.NOT_PROJECT); + } + //1、查找一级任务 + ProTaskDetailExample proTaskDetailExample = new ProTaskDetailExample(); + proTaskDetailExample.createCriteria().andProjectIdEqualTo(projectId.getProjectId()).andLevelEqualTo((byte) 1); + List firstTaskDetailList = taskDetailDao.selectByExample(proTaskDetailExample); + log.info("查找到一级任务:{}",firstTaskDetailList); + if (CollectionUtil.isNotEmpty(firstTaskDetailList)) { + firstTaskDetailList.forEach(firstTaskDetail -> { + TaskVo.TaskListByProjectId firstTask = taskDetailDao.getTaskById(firstTaskDetail.getId()); + List secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId(),1); + if(CollectionUtil.isNotEmpty(secondTaskList)){ + secondTaskList.forEach(secondTask -> secondTask.setParentName(firstTaskDetail.getName())); + } + firstTask.setSecondTasks(secondTaskList); + taskList.add(firstTask); + }); + } + return taskList; + } + + private ProjectVo.RoleInfo getRoleInfoByRoleId(Long roleId){ + } + + // @Override +// public RoleVo.RoleByProjectId queryRoleByProjectId(Long projectId) { +// return null; +// } } diff --git a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java index b1bfcba6..2a2cadfa 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java @@ -78,6 +78,8 @@ public class ProTaskDetailService implements IProTaskDetailService { private ProRemindDao proRemindDao; @Resource private TaskDeliverDao taskDeliverDao; + @Resource + private ProMemberRoleDao proMemberRoleDao; @Override public void saveTaskDetail(ProTaskDetail taskDetail) { @@ -462,7 +464,7 @@ public class ProTaskDetailService implements IProTaskDetailService { plugin.setDescription(pluginDescription[i]); plugin.setShowType(pluginShowType[i]); //查找插件的配置信息 - ProPluginConfig proPluginConfig = sysPluginDao.getPluginConfigByTaskPluginId(pluginIds[i]); + ProPluginConfig proPluginConfig = sysPluginDao.getPluginConfigByTaskPluginId(pluginIds[i],normalTask.getDetailId()); if(ObjectUtil.isNotNull(proPluginConfig)) { plugin.setWebPath(proPluginConfig.getWebPath()); plugin.setRoutineLocation(proPluginConfig.getRoutineLocation()); @@ -1117,8 +1119,25 @@ public class ProTaskDetailService implements IProTaskDetailService { if(ObjectUtil.isNotNull(taskDetail)) { SysProject project = sysProjectDao.selectByPrimaryKey(taskDetail.getProjectId()); if(ObjectUtil.isNotNull(project)) { + //查找权限 int power = proRoleService.selectPowerByRoleName(currentUserId, project.getId()); - if (power > 1) { + //当前用户是否是此任务的负责人 + boolean flag = false; + ProRole executorRole = proRoleDao.selectByPrimaryKey(taskDetail.getExecutorRole()); + ProMemberExample memberExample = new ProMemberExample(); + memberExample.createCriteria().andUserIdEqualTo(currentUserId).andProjectIdEqualTo(project.getId()); + List memberList = proMemberDao.selectByExample(memberExample); + if(CollectionUtil.isNotEmpty(memberList)){ + if(ObjectUtil.isNotNull(executorRole)){ + ProMemberRoleExample memberRoleExample = new ProMemberRoleExample(); + memberRoleExample.createCriteria().andRoleIdEqualTo(executorRole.getId()).andMemberIdEqualTo(memberList.get(0).getId()); + if(proMemberRoleDao.countByExample(memberRoleExample) != 0){ + flag = true; + } + } + } + + if (power > 1 || flag) { //任务名 if(StrUtil.isNotEmpty(updateTaskInfo.getName())){ taskDetail.setName(updateTaskInfo.getName()); @@ -1425,7 +1444,7 @@ public class ProTaskDetailService implements IProTaskDetailService { } @Override - public List queryAllTaskByProjectId(Long currentUserId, TaskDto.QueryAllTaskByProjectId projectIdDto) throws Exception { + public List queryAllTaskByProjectId(Long currentUserId, TaskDto.QueryAllTaskByProjectId projectIdDto) { List taskList = new ArrayList<>(); //1、查找一级任务 SysProject project = sysProjectDao.selectByPrimaryKey(projectIdDto.getProjectId()); @@ -1439,11 +1458,9 @@ public class ProTaskDetailService implements IProTaskDetailService { if (CollectionUtil.isNotEmpty(firstTaskDetailList)) { firstTaskDetailList.forEach(firstTaskDetail -> { TaskVo.TaskListByProjectId firstTask = taskDetailDao.getTaskById(firstTaskDetail.getId()); - List secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId()); + List secondTaskList = taskDetailDao.getTaskByParentId(firstTaskDetail.getId(),null); if(CollectionUtil.isNotEmpty(secondTaskList)){ - secondTaskList.forEach(secondTask -> { - secondTask.setParentName(firstTaskDetail.getName()); - }); + secondTaskList.forEach(secondTask -> secondTask.setParentName(firstTaskDetail.getName())); } firstTask.setSecondTasks(secondTaskList); taskList.add(firstTask); diff --git a/tall/src/main/java/com/ccsens/tall/web/PluginController.java b/tall/src/main/java/com/ccsens/tall/web/PluginController.java index 899c6b5c..9381578f 100644 --- a/tall/src/main/java/com/ccsens/tall/web/PluginController.java +++ b/tall/src/main/java/com/ccsens/tall/web/PluginController.java @@ -187,7 +187,7 @@ public class PluginController { @ApiImplicitParams({ }) @RequestMapping(value = "/config", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse updatePluginConfig(@ApiParam @Validated @RequestBody PluginDto.UpdatePluginConfig updatePluginConfig) throws Exception { + public JsonResponse updatePluginConfig(HttpServletRequest request,@ApiParam @Validated @RequestBody PluginDto.UpdatePluginConfig updatePluginConfig) throws Exception { taskPluginService.updatePluginConfig(updatePluginConfig); return JsonResponse.newInstance().ok(); } diff --git a/tall/src/main/java/com/ccsens/tall/web/RoleController.java b/tall/src/main/java/com/ccsens/tall/web/RoleController.java index f5ea4a95..4f5ca1ca 100644 --- a/tall/src/main/java/com/ccsens/tall/web/RoleController.java +++ b/tall/src/main/java/com/ccsens/tall/web/RoleController.java @@ -1,7 +1,9 @@ package com.ccsens.tall.web; import com.ccsens.tall.bean.dto.RoleDto; +import com.ccsens.tall.bean.vo.ProjectVo; import com.ccsens.tall.bean.vo.RoleVo; +import com.ccsens.tall.bean.vo.TaskVo; import com.ccsens.tall.service.IProRoleService; import com.ccsens.util.JsonResponse; import com.ccsens.util.WebConstant; @@ -12,6 +14,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.List; /** * @author 逗 @@ -50,10 +53,10 @@ public class RoleController { @ApiImplicitParams({ }) @RequestMapping(value = "/update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse updateRole(HttpServletRequest request, - @ApiParam @Validated @RequestBody RoleDto.UpdateRole updateRole) throws Exception { + public JsonResponse updateRole(HttpServletRequest request, + @ApiParam @Validated @RequestBody RoleDto.UpdateRole updateRole) throws Exception { Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); - proRoleService.updateRole(currentUserId,updateRole); + ProjectVo.RoleInfo roleInfo = proRoleService.updateRole(currentUserId,updateRole); return JsonResponse.newInstance().ok(); } @@ -79,15 +82,27 @@ public class RoleController { return JsonResponse.newInstance().ok(); } - @ApiOperation(value = "通过",notes = "") +// @ApiOperation(value = "通过",notes = "") +// @ApiImplicitParams({ +// }) +// @RequestMapping(value = "/deleteMember", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) +// public JsonResponse queryRoleByProjectId(HttpServletRequest request, +// @RequestParam(required = true)Long projectId) throws Exception { +// Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); +// RoleVo.RoleByProjectId roleInfo = proRoleService.queryRoleByProjectId(projectId); +// return JsonResponse.newInstance().ok(roleInfo); +// } + + @ApiOperation(value = "点击项目角色查询一级任务及里程碑",notes = "") @ApiImplicitParams({ }) - @RequestMapping(value = "/deleteMember", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) - public JsonResponse queryRoleByProjectId(HttpServletRequest request, - @RequestParam(required = true)Long projectId) throws Exception { + @RequestMapping(value = "/ProjectVirtualRole", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryByProjectVirtualRole(HttpServletRequest request, + @ApiParam @Validated @RequestBody RoleDto.ProjectId projectId) throws Exception { Long currentUserId = Long.valueOf(((Claims) request.getAttribute(WebConstant.REQUEST_KEY_CLAIMS)).getSubject()); - RoleVo.RoleByProjectId roleInfo = proRoleService.queryRoleByProjectId(projectId); - return JsonResponse.newInstance().ok(roleInfo); + List taskListByProjectIdList = proRoleService.queryByProjectVirtualRole(projectId); + return JsonResponse.newInstance().ok(taskListByProjectIdList); } + } diff --git a/tall/src/main/resources/application.yml b/tall/src/main/resources/application.yml index 4fc2efe4..c88e995d 100644 --- a/tall/src/main/resources/application.yml +++ b/tall/src/main/resources/application.yml @@ -1,4 +1,4 @@ spring: profiles: - active: prod - include: util-prod,common + active: test + include: util-test,common diff --git a/tall/src/main/resources/mapper_dao/SysPluginDao.xml b/tall/src/main/resources/mapper_dao/SysPluginDao.xml index 7d933b2c..147eb435 100644 --- a/tall/src/main/resources/mapper_dao/SysPluginDao.xml +++ b/tall/src/main/resources/mapper_dao/SysPluginDao.xml @@ -105,6 +105,7 @@ t_pro_plugin_config pc LEFT JOIN t_pro_task_plugin tp on pc.plugin_id = tp.plugin_id WHERE tp.id = #{taskPluginId} + and pc.task_id = #{taskDetailId} and pc.rec_status = 0 and tp.rec_status = 0 LIMIT 1 diff --git a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml index 9b6bfcfa..bae3cbf4 100644 --- a/tall/src/main/resources/mapper_dao/TaskDetailDao.xml +++ b/tall/src/main/resources/mapper_dao/TaskDetailDao.xml @@ -61,8 +61,8 @@ resultMap="secondTask"> SELECT *, - GROUP_CONCAT(t.p_id ORDER BY t.p_id) as pId, - GROUP_CONCAT(t.spName ORDER BY t.p_id) as pName, + GROUP_CONCAT(t.p_id ORDER BY t.spid) as pId, + GROUP_CONCAT(t.spName ORDER BY t.spid) as pName, GROUP_CONCAT(t.spDescription ORDER BY t.spid) as pDescription, GROUP_CONCAT(t.spShowType ORDER BY t.spid) as pShowType FROM @@ -147,8 +147,8 @@ resultMap="secondTask"> SELECT *, - GROUP_CONCAT(t.p_id ORDER BY t.p_id) as pId, - GROUP_CONCAT(t.spName ORDER BY t.p_id) as pName, + GROUP_CONCAT(t.p_id ORDER BY t.spid) as pId, + GROUP_CONCAT(t.spName ORDER BY t.spid) as pName, GROUP_CONCAT(t.spDescription ORDER BY t.spid) as pDescription, GROUP_CONCAT(t.spShowType ORDER BY t.spid) as pShowType FROM @@ -222,8 +222,8 @@ resultMap="secondTask"> SELECT *, - GROUP_CONCAT(t.p_id ORDER BY t.p_id) as pId, - GROUP_CONCAT(t.spName ORDER BY t.p_id) as pName, + GROUP_CONCAT(t.p_id ORDER BY t.spid) as pId, + GROUP_CONCAT(t.spName ORDER BY t.spid) as pName, GROUP_CONCAT(t.spDescription ORDER BY t.spid) as pDescription, GROUP_CONCAT(t.spShowType ORDER BY t.spid) as pShowType FROM @@ -246,9 +246,6 @@ d.virtual as tVirtual, d.delay as tDelay, d.has_group as tHasGroup, - c.web_path as webPath, - c.routine_location as routineLocation, - c.import_param as importParam, sp.name as spName, p.id as p_id, sp.description as spDescription, @@ -265,7 +262,6 @@ p.id IS NULL ) LEFT JOIN t_sys_plugin sp ON sp.id = p.plugin_id - left join t_pro_plugin_config c on d.id = c.task_id WHERE d.rec_status = 0 and @@ -282,8 +278,8 @@ resultMap="secondTask"> SELECT *, - GROUP_CONCAT(t.p_id ORDER BY t.p_id) as pId, - GROUP_CONCAT(t.spName ORDER BY t.p_id) as pName, + GROUP_CONCAT(t.p_id ORDER BY t.spid) as pId, + GROUP_CONCAT(t.spName ORDER BY t.spid) as pName, GROUP_CONCAT(t.spDescription ORDER BY t.spid) as pDescription, GROUP_CONCAT(t.spShowType ORDER BY t.spid) as pShowType FROM @@ -365,8 +361,8 @@