diff --git a/src/main/java/com/ccsens/ptccsens/persist/dao/ProProjectDao.java b/src/main/java/com/ccsens/ptccsens/persist/dao/ProProjectDao.java new file mode 100644 index 0000000..cc5aded --- /dev/null +++ b/src/main/java/com/ccsens/ptccsens/persist/dao/ProProjectDao.java @@ -0,0 +1,20 @@ +package com.ccsens.ptccsens.persist.dao; + +import com.ccsensptos.tallsdk.bean.vo.TallProjectVo; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +/** + * @author AUSU + */ +@Repository +public interface ProProjectDao { + + /** + * 根据id查找项目信息 + * @param projectId 项目id(任务详情id) + * @return 项目详情 + */ + TallProjectVo.ProjectInfo findProjectById(@Param("projectId") Long projectId); + +} diff --git a/src/main/java/com/ccsens/ptccsens/persist/dao/ProTaskDetailDao.java b/src/main/java/com/ccsens/ptccsens/persist/dao/ProTaskDetailDao.java index a78d54b..6213e90 100644 --- a/src/main/java/com/ccsens/ptccsens/persist/dao/ProTaskDetailDao.java +++ b/src/main/java/com/ccsens/ptccsens/persist/dao/ProTaskDetailDao.java @@ -4,6 +4,7 @@ import com.ccsens.ptccsens.bean.dto.TaskDto; import com.ccsens.ptccsens.bean.po.ProTaskSub; import com.ccsens.ptccsens.bean.vo.TaskVo; import com.ccsens.ptccsens.persist.mapper.ProTaskDetailMapper; +import com.ccsensptos.tallsdk.bean.vo.TallProjectVo; import com.ccsensptos.tallsdk.bean.vo.TallTaskVo; import org.apache.ibatis.annotations.Param; @@ -78,4 +79,21 @@ public interface ProTaskDetailDao extends ProTaskDetailMapper { */ List queryTaskOfProject(TaskDto.QueryTaskOfProject param); + /** + * 查找服务下的mwbs + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param userId userId + * @return 返回mwbs + */ + List queryMwbs( @Param("startTime")Long startTime, @Param("endTime")Long endTime, @Param("userId")Long userId); + /** + * 查找MWBS下的pwbs + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param userId userId + * @param parentId 上级id + * @return 返回pwbs + */ + List queryPwbs( @Param("startTime")Long startTime, @Param("endTime")Long endTime, @Param("userId")Long userId, @Param("parentId")Long parentId); } diff --git a/src/main/java/com/ccsens/ptccsens/service/ImportService.java b/src/main/java/com/ccsens/ptccsens/service/ImportService.java index b86b526..a250f04 100644 --- a/src/main/java/com/ccsens/ptccsens/service/ImportService.java +++ b/src/main/java/com/ccsens/ptccsens/service/ImportService.java @@ -749,19 +749,20 @@ public class ImportService implements IImportService { if(StrUtil.isNotEmpty(plugin)){ //根据插件名称查找插件id // Long pluginId = taskPluginDao.getPluginIdByName(plugin); - Long pluginId = 1L; - if(ObjectUtil.isNull(pluginId)){ - throw new BaseException(BasicsCodeError.PLUGIN_NAME_ERROR.addMsg(wbsSheet.getSheetName(),errorRow,plugin)); - } +// Long pluginId = 1L; +// if(ObjectUtil.isNull(pluginId)){ +// throw new BaseException(BasicsCodeError.PLUGIN_NAME_ERROR.addMsg(wbsSheet.getSheetName(),errorRow,plugin)); +// } //添加插件 ProTaskPlugin proTaskPlugin = new ProTaskPlugin(); proTaskPlugin.setId(snowflake.nextId()); proTaskPlugin.setTaskDetailId(taskId); - proTaskPlugin.setPluginId(pluginId); +// proTaskPlugin.setPluginId(pluginId); proTaskPlugin.setPlginRow(row); proTaskPlugin.setPlginCol(1); proTaskPlugin.setRowspan(1); proTaskPlugin.setColspan(1); + proTaskPlugin.setCode(plugin); proTaskPluginDao.insertSelective(proTaskPlugin); taskPlugin = proTaskPlugin.getId(); } diff --git a/src/main/java/com/ccsens/ptccsens/service/TallService.java b/src/main/java/com/ccsens/ptccsens/service/TallService.java index 230b124..2da894f 100644 --- a/src/main/java/com/ccsens/ptccsens/service/TallService.java +++ b/src/main/java/com/ccsens/ptccsens/service/TallService.java @@ -150,6 +150,7 @@ import com.ccsens.ptccsens.persist.dao.*; import com.ccsens.ptccsens.util.BasicsCodeError; import com.ccsens.ptccsens.util.Constant; import com.ccsens.util.CodeEnum; +import com.ccsens.util.PropUtil; import com.ccsens.util.WebConstant; import com.ccsens.util.exception.BaseException; import com.ccsensptos.tallsdk.bean.dto.TallProjectDto; @@ -203,25 +204,27 @@ public class TallService implements ITallService { private IImportService importService; @Resource private UserDao userDao; - + @Resource + private ProProjectDao proProjectDao; @SneakyThrows @Override public TallProjectVo.ProjectInfo importWbs(String token, MultipartFile params) { // //TODO 根据token获取用户信息 -// TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, "appId", "secret")); -// //通过手机号获取用户在服务内的userId + TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET)); + + //通过手机号获取用户在服务内的userId ProUser user = new ProUser(); -// if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){ -// user = userDao.getUserIdByPhone(userByToken.getPhone()); -// } -// if(user == null){ -// throw new BaseException(CodeEnum.NOT_LOGIN); -// } + if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){ + user = userDao.getUserIdByPhone(userByToken.getPhone()); + } + if(user == null){ + throw new BaseException(CodeEnum.NOT_LOGIN); + } -// if(ObjectUtil.isNull(userByToken)){ -// throw new BaseException(CodeEnum.NOT_LOGIN); -// } + if(ObjectUtil.isNull(userByToken)){ + throw new BaseException(CodeEnum.NOT_LOGIN); + } String ext = FileUtil.extName(params.getOriginalFilename()); if(StrUtil.isEmpty(ext) || !Constant.WbsExcel.WBS_FILE_FORMAT.contains(ext)){ throw new BaseException(BasicsCodeError.FILE_FORMAT_ERROR); @@ -242,60 +245,78 @@ public class TallService implements ITallService { return importService.importWbs(fullPath,user.getId(),null); } + @Override + public TallProjectVo.ProjectInfo findProjectById(String header, TallProjectDto.ProjectById params) { + TallProjectVo.ProjectInfo projectById = proProjectDao.findProjectById(params.getProjectId()); + if (ObjectUtil.isNull(projectById)){ + throw new BaseException(BasicsCodeError.PROJECT_NOT_FOUND); + } + return projectById; + } + @Override public List queryProjectByUser(String token, TallProjectDto.QueryProjectDto param) { - TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, "appId", "secret")); + TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET)); + if(ObjectUtil.isNull(userByToken)){ + return null; + } + //通过手机号获取用户在服务内的userId + ProUser user = null; + if(StrUtil.isNotBlank(userByToken.getPhone())){ + user = userDao.getUserIdByPhone(userByToken.getPhone()); + } + + //TODO 暂时查询全部,无论是否查到user +// List projectInfos = new ArrayList<>(); + //查找所有没有上级的项目,作为MWBS + List mWbs = taskDetailDao.queryMwbs(param.getStartTime(),param.getEndTime(),null); + if(CollectionUtil.isNotEmpty(mWbs)){ + mWbs.forEach(m -> { + //给下项目添加域信息和url + m.setUrl(PropUtil.notGatewayUrl); + //分别查找mwbs下的子pwbs + List pWbs = taskDetailDao.queryPwbs(param.getStartTime(),param.getEndTime(),null,m.getId()); + if(CollectionUtil.isNotEmpty(pWbs)){ + pWbs.forEach(p -> { + //给下项目添加域信息和url + p.setUrl(PropUtil.notGatewayUrl); + }); + } + m.setSonProjectList(pWbs); + }); + } - List projectInfos = new ArrayList<>(); - TallProjectVo.ProjectInfo projectInfo = new TallProjectVo.ProjectInfo(); - projectInfo.setId(1L); - projectInfo.setName("零号项目"); - projectInfo.setUrl("http://127.0.0.1:7310"); - projectInfo.setBusinessCode("zero"); - projectInfo.setDomainCode("tall_dh"); - projectInfos.add(projectInfo); - return projectInfos; + return mWbs; } @Override public TallRoleVo.QueryRole queryShowRole(String token, TallRoleDto.QueryRoleById param) { //TODO 通过token向tall获取用户信息, - TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, "appId", "secret")); + TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET)); if(ObjectUtil.isNull(userByToken)){ throw new BaseException(CodeEnum.NOT_LOGIN); } - + //通过手机号获取用户在服务内的userId + ProUser user = null; + if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){ + user = userDao.getUserIdByPhone(userByToken.getPhone()); + } //返回的对象 TallRoleVo.QueryRole queryRole = new TallRoleVo.QueryRole(); List visibleList = new ArrayList<>(); List invisibleList = new ArrayList<>(); //查询当前用户在项目下的角色,没有则算作关注者 - List userRoleList = proRoleDao.queryRoleByUserId(param.getProjectId(),userByToken.getId()); + List userRoleList = proRoleDao.queryRoleByUserId(param.getProjectId(),user == null ? null : user.getId()); + //查询用户可见的角色 List roleInfoList = new ArrayList<>(); if(CollectionUtil.isNotEmpty(userRoleList)){ //不是关注者,查询可见的角色(完全屏蔽才不可见) roleInfoList = proRoleDao.notAttentionQueryRole(param.getProjectId(),userRoleList); }else { -// //是关注者查询可见的角色(未设置过对谁不可见信息的角色) -// roleInfoList = proRoleDao.attentionQueryRole(param.getProjectId()); - //TODO 0号项目游客查看所有,默认属于管理员 - ProRoleExample proRoleExample = new ProRoleExample(); - proRoleExample.createCriteria().andProjectIdEqualTo(param.getProjectId()); - List proRoles = proRoleDao.selectByExample(proRoleExample); - if(CollectionUtil.isNotEmpty(proRoles)){ - for (ProRole proRole : proRoles) { - if("管理员".equals(proRole.getName())){ - TallRoleVo.RoleInfo roleInfo = new TallRoleVo.RoleInfo(); - roleInfo.setId(proRole.getId()); - roleInfo.setName(proRole.getName()); - roleInfo.setMine(1); - roleInfoList.add(roleInfo); - } - - } - } + //是关注者查询可见的角色(未设置过对谁不可见信息的角色) + roleInfoList = proRoleDao.attentionQueryRole(param.getProjectId()); } //查询配置信息 List showRoleList = proRoleDao.queryShowByUserAndProject(param.getProjectId(),userByToken.getId()); @@ -356,13 +377,13 @@ public class TallService implements ITallService { @Override public List queryPermanentGlobalTask(String token, TallTaskDto.QueryPermanentGlobalTask param) { //TODO 通过token向tall获取用户信息, - Long userId = null; - - //查找当前角色是否有查看权限 - Boolean isLook = queryRoleIsLook(param.getRoleId(), userId); - if (BooleanUtil.isFalse(isLook)) { - throw new BaseException(CodeEnum.NO_POWER); - } +// Long userId = null; +// +// //查找当前角色是否有查看权限 +// Boolean isLook = queryRoleIsLook(param.getRoleId(), userId); +// if (BooleanUtil.isFalse(isLook)) { +// throw new BaseException(CodeEnum.NO_POWER); +// } List roleIds = new ArrayList<>(); roleIds.add(param.getRoleId()); @@ -376,14 +397,14 @@ public class TallService implements ITallService { @Override public List queryGlobalTask(String token, TallTaskDto.QueryGlobalTask param) { - //TODO 通过token向tall获取用户信息, - Long userId = null; - - //查找当前角色是否有查看权限 - Boolean isLook = queryRoleIsLook(param.getRoleId(), userId); - if (BooleanUtil.isFalse(isLook)) { - throw new BaseException(CodeEnum.NO_POWER); - } +// //TODO 通过token向tall获取用户信息, +// Long userId = null; +// +// //查找当前角色是否有查看权限 +// Boolean isLook = queryRoleIsLook(param.getRoleId(), userId); +// if (BooleanUtil.isFalse(isLook)) { +// throw new BaseException(CodeEnum.NO_POWER); +// } List roleIds = new ArrayList<>(); roleIds.add(param.getRoleId()); //查询当前角色是否项目经理 @@ -397,8 +418,12 @@ public class TallService implements ITallService { @Override public List queryRegularTask(String token, TallTaskDto.QueryRegularTask param) { //TODO 通过token向tall获取用户信息, - Long userId = null; - +// Long userId = null; +// //查找当前角色是否有查看权限 +// Boolean isLook = queryRoleIsLook(param.getRoleId(), userId); +// if (BooleanUtil.isFalse(isLook)) { +// throw new BaseException(BasicsCodeError.NOT_PERMISSION); +// } //查找类型:0向上查找,1向下查找(默认),下查包含自己,上查不包含 //根据参数配置sql语句 String query = ""; @@ -409,11 +434,7 @@ public class TallService implements ITallService { } else { query += "interval " + (param.getQueryNum() - 1) + " " + unit; } - //查找当前角色是否有查看权限 - Boolean isLook = queryRoleIsLook(param.getRoleId(), userId); - if (BooleanUtil.isFalse(isLook)) { - throw new BaseException(BasicsCodeError.NOT_PERMISSION); - } + List roleIds = new ArrayList<>(); roleIds.add(param.getRoleId()); diff --git a/src/main/java/com/ccsens/ptccsens/util/BasicsCodeError.java b/src/main/java/com/ccsens/ptccsens/util/BasicsCodeError.java index e1671a8..930fbb2 100644 --- a/src/main/java/com/ccsens/ptccsens/util/BasicsCodeError.java +++ b/src/main/java/com/ccsens/ptccsens/util/BasicsCodeError.java @@ -44,7 +44,7 @@ public class BasicsCodeError extends CodeError { public static final Code NOT_PERMISSION = new Code(529,"没有权限!", true); public static final Code ROLE_ERROR = new Code(530,"角色信息错误!", true); - + public static final Code PROJECT_NOT_FOUND = new Code(531,"项目不存在,请检查后再试!", true); diff --git a/src/main/java/com/ccsens/ptccsens/util/Constant.java b/src/main/java/com/ccsens/ptccsens/util/Constant.java index 578d25b..36f9e08 100644 --- a/src/main/java/com/ccsens/ptccsens/util/Constant.java +++ b/src/main/java/com/ccsens/ptccsens/util/Constant.java @@ -8,6 +8,10 @@ import java.util.Map; * @author AUSU */ public class Constant { + /**appId*/ + public static String APP_ID = "1485881608842252289"; + /**secret*/ + public static String APP_SECRET = "UzCCJfmKfVueCPw8w7ymbIc9vxZaRih4ndPmH38TnM9Wz54C"; /**零号项目Id*/ public static Long ZERO_PROJECT_ID = 1484800783814889472L; diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 0e8e64c..55e9745 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -44,6 +44,7 @@ mybatisCache: port: 6379 timeout: 1000 +notGatewayUrl: http://101.201.226.163:7320/v1.0 file: path: /home/ptccsens/server/uploads/ domain: https://test.tall.wiki/gateway/ptccsens diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index d331823..035b3e7 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -33,7 +33,7 @@ eureka: gatewayUrl: https://www.tall.wiki/gateway/ notGatewayUrl: https://www.tall.wiki/ -apiUrl: https://www.tall.wiki/ +apiUrl: http://www.tall.wiki/ file: path: /home/ptccsens/server/uploads/ domain: https://www.tall.wiki/gateway/ptccsens diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index c3b11fb..2fb38e5 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,4 +1,4 @@ spring: profiles: - active: test - include: common, util-test + active: dev + include: common, util-dev diff --git a/src/main/resources/druid-dev.yml b/src/main/resources/druid-dev.yml index 2944402..5e0bf8b 100644 --- a/src/main/resources/druid-dev.yml +++ b/src/main/resources/druid-dev.yml @@ -28,7 +28,7 @@ spring: testOnReturn: false testWhileIdle: true timeBetweenEvictionRunsMillis: 60000 - url: jdbc:mysql://49.233.89.188:3306/pt_ccsens?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true + url: jdbc:mysql://101.201.226.163:3306/pt_ccsens?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true username: root validationQuery: SELECT 1 FROM DUAL # env: CCSENS_GAME diff --git a/src/main/resources/mapper_dao/ProProjectDao.xml b/src/main/resources/mapper_dao/ProProjectDao.xml new file mode 100644 index 0000000..a47796b --- /dev/null +++ b/src/main/resources/mapper_dao/ProProjectDao.xml @@ -0,0 +1,29 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper_dao/ProTaskDetailDao.xml b/src/main/resources/mapper_dao/ProTaskDetailDao.xml index 82aa7eb..0ce58e8 100644 --- a/src/main/resources/mapper_dao/ProTaskDetailDao.xml +++ b/src/main/resources/mapper_dao/ProTaskDetailDao.xml @@ -390,4 +390,48 @@ ) AND t.`name` LIKE CONCAT('%',#{name},'%') + + \ No newline at end of file diff --git a/src/main/resources/mapper_dao/ProTaskPluginDao.xml b/src/main/resources/mapper_dao/ProTaskPluginDao.xml index 6bf7bfc..56403bc 100644 --- a/src/main/resources/mapper_dao/ProTaskPluginDao.xml +++ b/src/main/resources/mapper_dao/ProTaskPluginDao.xml @@ -31,6 +31,7 @@