|
|
@ -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<TallProjectVo.ProjectInfo> 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<TallProjectVo.ProjectInfo> projectInfos = new ArrayList<>();
|
|
|
|
//查找所有没有上级的项目,作为MWBS
|
|
|
|
List<TallProjectVo.ProjectInfo> mWbs = taskDetailDao.queryMwbs(param.getStartTime(),param.getEndTime(),null); |
|
|
|
if(CollectionUtil.isNotEmpty(mWbs)){ |
|
|
|
mWbs.forEach(m -> { |
|
|
|
//给下项目添加域信息和url
|
|
|
|
m.setUrl(PropUtil.notGatewayUrl); |
|
|
|
//分别查找mwbs下的子pwbs
|
|
|
|
List<TallProjectVo.ProjectInfo> 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<TallProjectVo.ProjectInfo> 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<TallRoleVo.RoleInfo> visibleList = new ArrayList<>(); |
|
|
|
List<TallRoleVo.RoleInfo> invisibleList = new ArrayList<>(); |
|
|
|
|
|
|
|
//查询当前用户在项目下的角色,没有则算作关注者
|
|
|
|
List<ProRole> userRoleList = proRoleDao.queryRoleByUserId(param.getProjectId(),userByToken.getId()); |
|
|
|
List<ProRole> userRoleList = proRoleDao.queryRoleByUserId(param.getProjectId(),user == null ? null : user.getId()); |
|
|
|
|
|
|
|
//查询用户可见的角色
|
|
|
|
List<TallRoleVo.RoleInfo> 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<ProRole> 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<Long> showRoleList = proRoleDao.queryShowByUserAndProject(param.getProjectId(),userByToken.getId()); |
|
|
@ -356,13 +377,13 @@ public class TallService implements ITallService { |
|
|
|
@Override |
|
|
|
public List<TallTaskVo.QueryTask> 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<Long> roleIds = new ArrayList<>(); |
|
|
|
roleIds.add(param.getRoleId()); |
|
|
|
|
|
|
@ -376,14 +397,14 @@ public class TallService implements ITallService { |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<TallTaskVo.QueryTask> 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<Long> roleIds = new ArrayList<>(); |
|
|
|
roleIds.add(param.getRoleId()); |
|
|
|
//查询当前角色是否项目经理
|
|
|
@ -397,8 +418,12 @@ public class TallService implements ITallService { |
|
|
|
@Override |
|
|
|
public List<TallTaskVo.QueryTask> 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<Long> roleIds = new ArrayList<>(); |
|
|
|
roleIds.add(param.getRoleId()); |
|
|
|
|
|
|
|