Browse Source

20210415v1.7

recovery
zy_Java 4 years ago
parent
commit
22e5bbf001
  1. 5
      tall/src/main/java/com/ccsens/tall/bean/dto/MemberDto.java
  2. 8
      tall/src/main/java/com/ccsens/tall/service/ExcelService.java
  3. 92
      tall/src/main/java/com/ccsens/tall/service/ProMemberService.java
  4. 5
      tall/src/main/java/com/ccsens/tall/service/ProRoleService.java
  5. 1
      util/src/main/java/com/ccsens/util/CodeEnum.java

5
tall/src/main/java/com/ccsens/tall/bean/dto/MemberDto.java

@ -16,12 +16,13 @@ public class MemberDto {
@Data
@ApiModel("添加成员")
public static class SaveMember{
@NotNull
@NotNull(message = "项目id不能为空")
@ApiModelProperty("项目id")
private Long projectId;
@NotEmpty(message = "成员名不能为空")
@ApiModelProperty("成员名")
private String memberName;
@NotEmpty
@NotEmpty(message = "成员手机号不能为空")
@ApiModelProperty("成员手机号")
private String phone;
@ApiModelProperty("所属角色的id")

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

@ -528,7 +528,7 @@ public class ExcelService implements IExcelService {
if (StrUtil.isNotEmpty(memberCell) && StrUtil.isEmpty(phoneCell)) {
throw new BaseException(CodeEnum.WBS_NOT_PHONE.addMsg(memberSheet.getSheetName(), (i+1),memberCell));
}
//TODO 判断手机号格式
//判断手机号格式
String regex ="^[1]([3-9])[0-9]{9}$";
if (StrUtil.isEmpty(phoneCell) || !phoneCell.matches(regex)){
throw new BaseException(CodeEnum.WBS_PHONE_ERROR.addMsg(memberSheet.getSheetName(),(i+1),memberCell));
@ -958,9 +958,8 @@ public class ExcelService implements IExcelService {
if (StrUtil.isNotEmpty(delayTime)) {
taskDetail.setDelayTime(DateUtil.str2MillSeconds(delayTime));
}
//TODO 跳转任务(应该在循环外处理
//输入文档 新的
//输入文档
if(StrUtil.isNotEmpty(inputFiles)){
String regex=",|,|;|;|、|/";
String[] fileNames= inputFiles.split(regex);
@ -969,8 +968,6 @@ public class ExcelService implements IExcelService {
}
}
//TODO 设备挂载暂不处理
//没有开始时间默认项目开始时间
if (StrUtil.isNotEmpty(beginTime)) {
taskDetail.setBeginTime(Long.valueOf(beginTime));
@ -1120,7 +1117,6 @@ public class ExcelService implements IExcelService {
//添加周报
saveMeetingTask("周报", "每周一", taskDetails, sysProject, pmRoleId, allMemberId, firstTaskDetail.getId(),
"/home/report?type=\"week\"");
// TODO 添加季报
//添加月报
saveMeetingTask("月报", "每月1号", taskDetails, sysProject, pmRoleId, allMemberId, firstTaskDetail.getId(),
"/home/report?type=\"month\"");

92
tall/src/main/java/com/ccsens/tall/service/ProMemberService.java

@ -32,7 +32,7 @@ import java.util.List;
*/
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class ProMemberService implements IProMemberService {
@Resource
private ProMemberDao proMemberDao;
@ -67,26 +67,26 @@ public class ProMemberService implements IProMemberService {
}
/**
*该用户是否是角色下的成员
* 该用户是否是角色下的成员
*/
@Override
public Boolean userIsBelongRole(Long userId, Long roleId,Integer imitation) {
public Boolean userIsBelongRole(Long userId, Long roleId, Integer imitation) {
boolean flag = false;
//如果该角色是全体成员返回true
ProRole role = proRoleDao.selectByPrimaryKey(roleId);
if(ObjectUtil.isNull(role)){
if (ObjectUtil.isNull(role)) {
return false;
}
if(role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase)){
if (role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase)) {
flag = true;
}
if(imitation != null && imitation == 1){
if (imitation != null && imitation == 1) {
SysImitationExample sysImitationExample = new SysImitationExample();
sysImitationExample.createCriteria().andUserIdEqualTo(userId).andRoleIdEqualTo(roleId);
if(imitationMapper.countByExample(sysImitationExample) != 0){
if (imitationMapper.countByExample(sysImitationExample) != 0) {
flag = true;
}
}else {
} else {
ProMemberRoleExample memberRoleExample = new ProMemberRoleExample();
memberRoleExample.createCriteria().andRoleIdEqualTo(roleId);
List<ProMemberRole> memberRoleList = proMemberRoleDao.selectByExample(memberRoleExample);
@ -106,21 +106,21 @@ public class ProMemberService implements IProMemberService {
* 获取用户在项目中所属的所有角色
*/
@Override
public List<ProRole> selectRolesByUserIdAndProjectId(Long userId, Long projectId,Integer imitation) {
public List<ProRole> selectRolesByUserIdAndProjectId(Long userId, Long projectId, Integer imitation) {
List<ProRole> roleList = new ArrayList<>();
if(imitation != null && imitation == 1){
if (imitation != null && imitation == 1) {
SysImitationExample imitationExample = new SysImitationExample();
imitationExample.createCriteria().andProjectIdEqualTo(projectId).andUserIdEqualTo(userId);
List<SysImitation> sysImitationList = imitationMapper.selectByExample(imitationExample);
if(CollectionUtil.isNotEmpty(sysImitationList)){
for(SysImitation sysImitation: sysImitationList){
if (CollectionUtil.isNotEmpty(sysImitationList)) {
for (SysImitation sysImitation : sysImitationList) {
ProRole role = proRoleDao.selectByPrimaryKey(sysImitation.getRoleId());
if(ObjectUtil.isNotNull(role)){
if (ObjectUtil.isNotNull(role)) {
roleList.add(role);
}
}
}
}else {
} else {
roleList = proRoleDao.selectRolesByProjectIdAndUserId(projectId, userId);
if (CollectionUtil.isEmpty(roleList)) {
ProRoleExample roleExample = new ProRoleExample();
@ -136,11 +136,11 @@ public class ProMemberService implements IProMemberService {
}
@Override
public MemberVo.MemberInfo getProMemberByProjectIdAndUserId(Long projectId, Long currentUserId) {
return proMemberDao.selectByProjectIdAndUserId(projectId,currentUserId);
return proMemberDao.selectByProjectIdAndUserId(projectId, currentUserId);
}
@Override
public List<MemberVo.MemberInfo> getAuthedMemberByProjectId(Long projectId) {
return proMemberDao.selectAuthedMemberByProjectId(projectId);
@ -155,7 +155,7 @@ public class ProMemberService implements IProMemberService {
ProMemberExample memberExample = new ProMemberExample();
memberExample.createCriteria().andUserIdEqualTo(userId).andProjectIdEqualTo(projectId);
List<ProMember> proMemberList = proMemberDao.selectByExample(memberExample);
if(CollectionUtil.isNotEmpty(proMemberList)){
if (CollectionUtil.isNotEmpty(proMemberList)) {
member = proMemberList.get(0);
}
return member;
@ -165,12 +165,12 @@ public class ProMemberService implements IProMemberService {
* 查找角色下的所有成员
*/
@Override
public List<ProMember> selectByRole(Long roleId){
public List<ProMember> selectByRole(Long roleId) {
ProRole role = proRoleDao.selectByPrimaryKey(roleId);
if(ObjectUtil.isNull(role)){
if (ObjectUtil.isNull(role)) {
throw new BaseException(CodeEnum.NOT_ROLE);
}
if(role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase)){
if (role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase)) {
ProMemberExample proMemberExample = new ProMemberExample();
proMemberExample.createCriteria().andProjectIdEqualTo(role.getProjectId());
return proMemberDao.selectByExample(proMemberExample);
@ -192,6 +192,7 @@ public class ProMemberService implements IProMemberService {
/**
* 查询用户在项目中的成员信息
*
* @param userId 用户id
* @param projectId 项目id
* @return 返回成员信息
@ -202,15 +203,16 @@ public class ProMemberService implements IProMemberService {
ProMemberExample memberExample = new ProMemberExample();
memberExample.createCriteria().andProjectIdEqualTo(projectId).andUserIdEqualTo(userId);
List<ProMember> proMemberList = proMemberDao.selectByExample(memberExample);
if(CollectionUtil.isNotEmpty(proMemberList)){
if (CollectionUtil.isNotEmpty(proMemberList)) {
memberInfo = new MemberVo.MemberInfo();
BeanUtil.copyProperties(proMemberList.get(0),memberInfo);
BeanUtil.copyProperties(proMemberList.get(0), memberInfo);
}
return memberInfo;
}
/**
* 游戏中查询用户的信息
*
* @param userId 用户id
* @return 返回成员信息
*/
@ -218,7 +220,7 @@ public class ProMemberService implements IProMemberService {
public MemberVo.MemberInfo getUserInfoByUserId(Long userId) {
MemberVo.MemberInfo memberInfo = null;
SysUser user = userDao.selectByPrimaryKey(userId);
if(ObjectUtil.isNotNull(user)){
if (ObjectUtil.isNotNull(user)) {
memberInfo = new MemberVo.MemberInfo();
memberInfo.setUserId(user.getId());
memberInfo.setNickname(user.getNickname());
@ -231,7 +233,7 @@ public class ProMemberService implements IProMemberService {
@Override
public List<Long> getMemberIdByProjectId(Long projectId) {
List<Long> memberIdList = null;
if(ObjectUtil.isNotNull(projectId)) {
if (ObjectUtil.isNotNull(projectId)) {
ProMemberExample memberExample = new ProMemberExample();
memberExample.createCriteria().andProjectIdEqualTo(projectId).andUserIdNotEqualTo(0L);
List<ProMember> proMemberList = proMemberDao.selectByExample(memberExample);
@ -256,7 +258,7 @@ public class ProMemberService implements IProMemberService {
ProMemberExample memberExample = new ProMemberExample();
memberExample.createCriteria().andProjectIdEqualTo(saveMember.getProjectId()).andPhoneEqualTo(saveMember.getPhone());
List<ProMember> memberList = proMemberDao.selectByExample(memberExample);
if(CollectionUtil.isNotEmpty(memberList)){
if (CollectionUtil.isNotEmpty(memberList)) {
throw new BaseException(CodeEnum.WBS_REPEAT_MEMBER_PHONE);
}
//通过手机号查找用户
@ -271,13 +273,14 @@ public class ProMemberService implements IProMemberService {
//获取奖惩干系人
Long stakeholderId = null;
if(StrUtil.isNotEmpty(saveMember.getStakeholderPhone())){
if (StrUtil.isNotEmpty(saveMember.getStakeholderName())){
if (StrUtil.isNotEmpty(saveMember.getStakeholderPhone())) {
ProMemberExample stakeholderExample = new ProMemberExample();
stakeholderExample.createCriteria().andProjectIdEqualTo(saveMember.getProjectId()).andPhoneEqualTo(saveMember.getStakeholderPhone());
List<ProMember> stakeholderList = proMemberDao.selectByExample(stakeholderExample);
if(CollectionUtil.isNotEmpty(stakeholderList)){
if (CollectionUtil.isNotEmpty(stakeholderList)) {
stakeholderId = stakeholderList.get(0).getId();
}else {
} else {
//添加奖惩干系人
Long stakeholderUserId = userService.selectUserIdByPhone(saveMember.getPhone());
ProMember stakeholder = new ProMember();
@ -294,7 +297,7 @@ public class ProMemberService implements IProMemberService {
proRoleExample.createCriteria().andProjectIdEqualTo(saveMember.getProjectId())
.andNameEqualTo(WebConstant.ROLE_NAME.MoneyStakeholder.phase).andParentIdNotEqualTo(0L);
List<ProRole> roleList = proRoleDao.selectByExample(proRoleExample);
if(CollectionUtil.isNotEmpty(roleList)){
if (CollectionUtil.isNotEmpty(roleList)) {
//2.然后添加关联信息
ProMemberRole proMemberRole = new MemberRoleDto();
proMemberRole.setId(snowflake.nextId());
@ -303,6 +306,9 @@ public class ProMemberService implements IProMemberService {
proMemberRoleDao.insertSelective(proMemberRole);
}
}
}else {
throw new BaseException(CodeEnum.WBS_NOT_PHONE.addMsg(saveMember.getStakeholderName()));
}
}
proMember.setStakeholderId(stakeholderId);
proMemberDao.insertSelective(proMember);
@ -311,7 +317,7 @@ public class ProMemberService implements IProMemberService {
memberInfo.setPhone(proMember.getPhone());
memberInfo.setUserId(proMember.getUserId());
//添加成员与角色的关联
if(CollectionUtil.isNotEmpty(saveMember.getRoleId())){
if (CollectionUtil.isNotEmpty(saveMember.getRoleId())) {
saveMember.getRoleId().forEach(roleId -> {
ProMemberRole proMemberRole = new MemberRoleDto();
proMemberRole.setId(snowflake.nextId());
@ -321,11 +327,11 @@ public class ProMemberService implements IProMemberService {
});
}
//添加用户关注项目信息
if(ObjectUtil.isNotNull(userId)) {
if (ObjectUtil.isNotNull(userId)) {
//查找此用户是否以关注项目
UserAttentionExample attentionExample = new UserAttentionExample();
attentionExample.createCriteria().andProjectIdEqualTo(saveMember.getProjectId()).andUserIdEqualTo(userId);
if(userAttentionDao.countByExample(attentionExample) <= 0){
if (userAttentionDao.countByExample(attentionExample) <= 0) {
UserAttention userAttention = new UserAttention();
userAttention.setId(snowflake.nextId());
userAttention.setUserId(userId);
@ -343,7 +349,7 @@ public class ProMemberService implements IProMemberService {
public void deleteMember(Long currentUserId, MemberDto.DeleteMember deleteMember) {
//查找要删除的成员
ProMember proMember = proMemberDao.selectByPrimaryKey(deleteMember.getMemberId());
if(ObjectUtil.isNull(proMember)){
if (ObjectUtil.isNull(proMember)) {
throw new BaseException(CodeEnum.NOT_MEMBER);
}
//检查操作者的权限
@ -358,7 +364,7 @@ public class ProMemberService implements IProMemberService {
ProMemberRoleExample proMemberRoleExample = new ProMemberRoleExample();
proMemberRoleExample.createCriteria().andMemberIdEqualTo(proMember.getId());
List<ProMemberRole> proMemberRoleList = proMemberRoleDao.selectByExample(proMemberRoleExample);
if(CollectionUtil.isNotEmpty(proMemberRoleList)){
if (CollectionUtil.isNotEmpty(proMemberRoleList)) {
proMemberRoleList.forEach(proMemberRole -> {
proMemberRole.setRecStatus((byte) 2);
proMemberRoleDao.updateByPrimaryKeySelective(proMemberRole);
@ -368,7 +374,7 @@ public class ProMemberService implements IProMemberService {
UserAttentionExample userAttentionExample = new UserAttentionExample();
userAttentionExample.createCriteria().andUserIdEqualTo(proMember.getUserId()).andProjectIdEqualTo(proMember.getProjectId());
List<UserAttention> userAttentionList = userAttentionDao.selectByExample(userAttentionExample);
if(CollectionUtil.isNotEmpty(userAttentionList)){
if (CollectionUtil.isNotEmpty(userAttentionList)) {
userAttentionList.forEach(userAttention -> {
userAttention.setRecStatus((byte) 2);
userAttentionDao.updateByPrimaryKeySelective(userAttention);
@ -380,7 +386,7 @@ public class ProMemberService implements IProMemberService {
public ProjectVo.MembersByProject updateMemberInfo(Long currentUserId, MemberDto.UpdateMemberInfo updateMemberInfo) throws Exception {
//查找要修改的成员
ProMember proMember = proMemberDao.selectByPrimaryKey(updateMemberInfo.getMemberId());
if(ObjectUtil.isNull(proMember)){
if (ObjectUtil.isNull(proMember)) {
throw new BaseException(CodeEnum.NOT_MEMBER);
}
//检查操作者的权限,权限不足或不是成员本人,不可以修改
@ -388,21 +394,21 @@ public class ProMemberService implements IProMemberService {
if (power < 2 && proMember.getUserId().longValue() != currentUserId.longValue()) {
throw new BaseException(CodeEnum.NOT_POWER);
}
if(StrUtil.isNotEmpty(updateMemberInfo.getMemberName())){
if (StrUtil.isNotEmpty(updateMemberInfo.getMemberName())) {
proMember.setNickname(updateMemberInfo.getMemberName());
}
if(StrUtil.isNotEmpty(updateMemberInfo.getPhone())){
if (StrUtil.isNotEmpty(updateMemberInfo.getPhone())) {
proMember.setPhone(updateMemberInfo.getPhone());
}
//修改奖惩干系人
Long stakeholderId = null;
if(ObjectUtil.isNotNull(updateMemberInfo.getStakeholderPhone())){
if (ObjectUtil.isNotNull(updateMemberInfo.getStakeholderPhone())) {
ProMemberExample stakeholderExample = new ProMemberExample();
stakeholderExample.createCriteria().andProjectIdEqualTo(proMember.getProjectId()).andPhoneEqualTo(updateMemberInfo.getStakeholderPhone());
List<ProMember> stakeholderList = proMemberDao.selectByExample(stakeholderExample);
if(CollectionUtil.isNotEmpty(stakeholderList)){
if (CollectionUtil.isNotEmpty(stakeholderList)) {
stakeholderId = stakeholderList.get(0).getId();
}else {
} else {
//添加奖惩干系人
Long stakeholderUserId = userService.selectUserIdByPhone(updateMemberInfo.getPhone());
ProMember stakeholder = new ProMember();
@ -419,7 +425,7 @@ public class ProMemberService implements IProMemberService {
proRoleExample.createCriteria().andProjectIdEqualTo(proMember.getProjectId())
.andNameEqualTo(WebConstant.ROLE_NAME.MoneyStakeholder.phase).andParentIdNotEqualTo(0L);
List<ProRole> roleList = proRoleDao.selectByExample(proRoleExample);
if(CollectionUtil.isNotEmpty(roleList)){
if (CollectionUtil.isNotEmpty(roleList)) {
//2.然后添加关联信息
ProMemberRole proMemberRole = new MemberRoleDto();
proMemberRole.setId(snowflake.nextId());
@ -458,7 +464,7 @@ public class ProMemberService implements IProMemberService {
ProMemberExample proMemberExample = new ProMemberExample();
proMemberExample.createCriteria().andProjectIdEqualTo(memberByPhone.getProjectId()).andPhoneEqualTo(memberByPhone.getPhone());
List<ProMember> memberList = proMemberDao.selectByExample(proMemberExample);
if(CollectionUtil.isNotEmpty(memberList)){
if (CollectionUtil.isNotEmpty(memberList)) {
member = new ProjectVo.MemberList();
member.setMemberId(memberList.get(0).getId());
member.setMemberName(memberList.get(0).getNickname());

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

@ -459,6 +459,11 @@ public class ProRoleService implements IProRoleService {
@Override
public void deleteRole(Long userId, Long roleId) {
ProRole role = proRoleDao.selectByPrimaryKey(roleId);
//TODO 项目经理不能被删除
Integer i = proRoleDao.isPmByRoleId(roleId);
if(i == 1){
throw new BaseException(CodeEnum.CANNOT_DELETE_PM);
}
// //本用户在项目中的角色
// List<ProRole> proRoles = getProRoleByProjectIdAndUserId(role.getProjectId(), userId);
//用户在项目中的最高权限

1
util/src/main/java/com/ccsens/util/CodeEnum.java

@ -206,6 +206,7 @@ public enum CodeEnum {
NOT_SUPPORT_CYCLE(168,"重复规则文本格式暂不支持",true),
WBS_TASK_START_TIME_ERROR(168,"任务开始时间格式错误,请检查后操作",true),
WBS_TASK_END_TIME_ERROR(169,"任务结束时间格式错误,请检查后操作",true),
CANNOT_DELETE_PM(170,"无法删除项目经理",true),
;

Loading…
Cancel
Save