|
|
@ -1,18 +1,23 @@ |
|
|
|
package com.ccsens.common.service; |
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil; |
|
|
|
import cn.hutool.core.lang.Snowflake; |
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
import com.ccsens.cloudutil.bean.tall.dto.ProjectDto; |
|
|
|
import com.ccsens.cloudutil.feign.Tall3FeignClient; |
|
|
|
import com.ccsens.common.bean.dto.CMemberDto; |
|
|
|
import com.ccsens.common.bean.po.ProMember; |
|
|
|
import com.ccsens.common.bean.po.ProMemberExample; |
|
|
|
import com.ccsens.common.bean.po.ProRole; |
|
|
|
import com.ccsens.common.bean.po.ProRoleMember; |
|
|
|
import com.ccsens.common.bean.vo.CMemberVo; |
|
|
|
import com.ccsens.common.persist.dao.ProMemberDao; |
|
|
|
import com.ccsens.common.persist.dao.ProRoleDao; |
|
|
|
import com.ccsens.common.persist.dao.ProRoleMemberDao; |
|
|
|
import com.ccsens.common.persist.dao.RelevanceDao; |
|
|
|
import com.ccsens.common.util.CommonCodeError; |
|
|
|
import com.ccsens.util.JsonResponse; |
|
|
|
import com.ccsens.util.exception.BaseException; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
@ -43,6 +48,7 @@ public class MemberService implements IMemberService{ |
|
|
|
@Resource |
|
|
|
private ProRoleMemberDao roleMemberDao; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void relevancePhone(CMemberDto.PhoneAndUserId param) { |
|
|
|
//查找修改的成员所属的项目id
|
|
|
@ -113,4 +119,127 @@ public class MemberService implements IMemberService{ |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<CMemberVo.MemberInfo> queryByProject(CMemberDto.QueryMemberByProject param, Long userId) { |
|
|
|
return proMemberDao.queryByProject(param.getProjectId(),param.getMemberName()); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public CMemberVo.MemberInfo getMemberById(CMemberDto.GetMember param, Long userId) { |
|
|
|
CMemberVo.MemberInfo memberInfo = new CMemberVo.MemberInfo(); |
|
|
|
ProMember member = proMemberDao.selectByPrimaryKey(param.getMemberId()); |
|
|
|
if(ObjectUtil.isNotNull(member)){ |
|
|
|
memberInfo.setId(member.getId()); |
|
|
|
memberInfo.setName(member.getName()); |
|
|
|
memberInfo.setAvatarUrl(member.getAvatarUrl()); |
|
|
|
memberInfo.setPhone(member.getPhone().substring(0, 3) + "****" + member.getPhone().substring(7)); |
|
|
|
} |
|
|
|
return memberInfo; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void saveMember(CMemberDto.SaveMemberInfo param, Long userId) { |
|
|
|
//查找权限
|
|
|
|
Integer pm = roleDao.isPmByUserId(userId, param.getProjectId()); |
|
|
|
//只有负责人或者是项目经理才能操作
|
|
|
|
if (pm == null || pm < 1) { |
|
|
|
throw new BaseException(CommonCodeError.NOT_PERMISSION); |
|
|
|
} |
|
|
|
//检查手机号是否存在
|
|
|
|
ProMemberExample memberExample = new ProMemberExample(); |
|
|
|
memberExample.createCriteria().andProjectIdEqualTo(param.getProjectId()).andPhoneEqualTo(param.getPhone()); |
|
|
|
List<ProMember> memberList = proMemberDao.selectByExample(memberExample); |
|
|
|
if(CollectionUtil.isNotEmpty(memberList)){ |
|
|
|
throw new BaseException(CommonCodeError.PROJECT_MEMBER_PHONE); |
|
|
|
} |
|
|
|
//通过手机号获取userId
|
|
|
|
Long memberUserId = null; |
|
|
|
JsonResponse<Long> userIdByPhone = tall3FeignClient.getUserIdByPhone(param.getPhone()); |
|
|
|
if(ObjectUtil.isNotNull(userIdByPhone) && userIdByPhone.getCode() == 200){ |
|
|
|
memberUserId = userIdByPhone.getData(); |
|
|
|
} |
|
|
|
//添加成员信息
|
|
|
|
ProMember proMember = new ProMember(); |
|
|
|
proMember.setId(snowflake.nextId()); |
|
|
|
proMember.setName(param.getName()); |
|
|
|
proMember.setPhone(param.getPhone()); |
|
|
|
proMember.setProjectId(param.getProjectId()); |
|
|
|
proMember.setUserId(memberUserId); |
|
|
|
proMemberDao.insertSelective(proMember); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void updateMember(CMemberDto.UpdateMemberInfo param, Long userId) { |
|
|
|
//查找成员信息
|
|
|
|
ProMember proMember = proMemberDao.selectByPrimaryKey(param.getMemberId()); |
|
|
|
if(ObjectUtil.isNull(proMember)){ |
|
|
|
throw new BaseException(CommonCodeError.MEMBER_ERROR); |
|
|
|
} |
|
|
|
//查找权限
|
|
|
|
Integer pm = roleDao.isPmByUserId(userId, proMember.getProjectId()); |
|
|
|
//只有负责人或者是项目经理才能操作
|
|
|
|
if (pm == null || pm < 1) { |
|
|
|
throw new BaseException(CommonCodeError.NOT_PERMISSION); |
|
|
|
} |
|
|
|
//修改成员信息
|
|
|
|
if(StrUtil.isNotEmpty(param.getName())){ |
|
|
|
proMember.setName(param.getName()); |
|
|
|
} |
|
|
|
if(StrUtil.isNotEmpty(param.getAvatarUrl())){ |
|
|
|
proMember.setAvatarUrl(param.getAvatarUrl()); |
|
|
|
} |
|
|
|
if(StrUtil.isNotEmpty(param.getPhone())){ |
|
|
|
Long memberUserId = null; |
|
|
|
JsonResponse<Long> userIdByPhone = tall3FeignClient.getUserIdByPhone(param.getPhone()); |
|
|
|
if(ObjectUtil.isNotNull(userIdByPhone) && userIdByPhone.getCode() == 200){ |
|
|
|
memberUserId = userIdByPhone.getData(); |
|
|
|
} |
|
|
|
proMember.setUserId(memberUserId); |
|
|
|
proMember.setPhone(param.getPhone()); |
|
|
|
} |
|
|
|
proMemberDao.updateByPrimaryKeySelective(proMember); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void deleteMember(CMemberDto.GetMember param, Long userId) { |
|
|
|
//查找成员信息
|
|
|
|
ProMember proMember = proMemberDao.selectByPrimaryKey(param.getMemberId()); |
|
|
|
if(ObjectUtil.isNull(proMember)){ |
|
|
|
throw new BaseException(CommonCodeError.MEMBER_ERROR); |
|
|
|
} |
|
|
|
//查找权限
|
|
|
|
Integer pm = roleDao.isPmByUserId(userId, proMember.getProjectId()); |
|
|
|
//只有负责人或者是项目经理才能操作
|
|
|
|
if (pm == null || pm < 1) { |
|
|
|
throw new BaseException(CommonCodeError.NOT_PERMISSION); |
|
|
|
} |
|
|
|
//删除成员信息
|
|
|
|
proMember.setRecStatus((byte) 2); |
|
|
|
proMemberDao.updateByPrimaryKeySelective(proMember); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void updateMemberRoles(CMemberDto.UpdateMemberRoles param, Long userId) { |
|
|
|
ProMember proMember = proMemberDao.selectByPrimaryKey(param.getMemberId()); |
|
|
|
if(ObjectUtil.isNull(proMember)){ |
|
|
|
throw new BaseException(CommonCodeError.MEMBER_ERROR); |
|
|
|
} |
|
|
|
//查找权限
|
|
|
|
Integer pm = roleDao.isPmByUserId(userId, proMember.getProjectId()); |
|
|
|
//只有负责人或者是项目经理才能操作
|
|
|
|
if (pm == null || pm < 1) { |
|
|
|
throw new BaseException(CommonCodeError.NOT_PERMISSION); |
|
|
|
} |
|
|
|
//分配角色
|
|
|
|
if(CollectionUtil.isNotEmpty(param.getRoleIdList())){ |
|
|
|
param.getRoleIdList().forEach(roleId -> { |
|
|
|
ProRoleMember roleMember = new ProRoleMember(); |
|
|
|
roleMember.setId(snowflake.nextId()); |
|
|
|
roleMember.setRoleId(roleId); |
|
|
|
roleMember.setMemberId(param.getMemberId()); |
|
|
|
roleMemberDao.insertSelective(roleMember); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|