Browse Source

修改给复制项目添加角色

tall3
ma 4 years ago
parent
commit
119e73dfe7
  1. 9
      common/src/main/java/com/ccsens/common/persist/dao/UserDao.java
  2. 44
      common/src/main/java/com/ccsens/common/service/ProjectService.java
  3. 17
      common/src/main/resources/mapper_dao/UserDao.xml

9
common/src/main/java/com/ccsens/common/persist/dao/UserDao.java

@ -0,0 +1,9 @@
package com.ccsens.common.persist.dao;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@Repository
public interface UserDao {
Long getUserIdByPhone(@Param("phone") String phone);
}

44
common/src/main/java/com/ccsens/common/service/ProjectService.java

@ -63,6 +63,8 @@ public class ProjectService implements IProjectService{
private ProMemberDao memberDao;
@Resource
private ProRoleMemberDao roleMemberDao;
@Resource
private UserDao userDao;
@Override
public CProjectVo.ProjectInfo findProjectById(CProjectDto.ProjectById param, Long userId) {
@ -76,22 +78,42 @@ public class ProjectService implements IProjectService{
@Override
public void addMemberForCopy(CProjectDto.MemberForProject param, Long userId) {
if (CollectionUtil.isNotEmpty(param.getMemberInfoList())){
Map<Long,Long> userIdAndMemberId = new HashMap<>();
for (CProjectDto.MemberInfo memberInfo : param.getMemberInfoList()) {
//userId不为空
ProMember member = new ProMember();
if (ObjectUtil.isNotNull(memberInfo.getUserId())){
member.setId(snowflake.nextId());
member.setUserId(memberInfo.getUserId());
member.setProjectId(param.getProjectId());
member.setPhone(memberInfo.getPhone());
member.setName(memberInfo.getMemberName());
memberDao.insertSelective(member);
//如果userId不重复,新建成员
if (!userIdAndMemberId.containsKey(memberInfo.getUserId())){
member.setId(snowflake.nextId());
member.setUserId(memberInfo.getUserId());
member.setProjectId(param.getProjectId());
member.setPhone(memberInfo.getPhone());
member.setName(memberInfo.getMemberName());
memberDao.insertSelective(member);
userIdAndMemberId.put(userId,member.getId());
}else{
member.setId(userIdAndMemberId.get(memberInfo.getUserId()));
}
}else{
member.setId(snowflake.nextId());
member.setProjectId(param.getProjectId());
member.setPhone(memberInfo.getPhone());
member.setName(memberInfo.getMemberName());
memberDao.insertSelective(member);
if (StrUtil.isBlank(memberInfo.getPhone())){
//TODO 手机号为空暂时跳过
continue;
}
Long userIdByPhone = userDao.getUserIdByPhone(member.getPhone());
if (ObjectUtil.isNotNull(userIdByPhone)){
//如果userId重复,就使用之前的memberId
if (userIdAndMemberId.containsKey(userIdByPhone)){
member.setId(userIdAndMemberId.get(userIdByPhone));
}
}else{
member.setId(snowflake.nextId());
member.setProjectId(param.getProjectId());
member.setPhone(memberInfo.getPhone());
member.setName(memberInfo.getMemberName());
memberDao.insertSelective(member);
}
}
ProRole role = roleDao.findByNameAndProjectId(memberInfo.getRoleName(),param.getProjectId());
ProRoleMember roleMember = new ProRoleMember();

17
common/src/main/resources/mapper_dao/UserDao.xml

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ccsens.common.persist.dao.UserDao">
<select id="getUserIdByPhone" resultType="java.lang.Long">
SELECT
u.id
FROM
tall.t_sys_user u LEFT JOIN tall.t_sys_auth a on u.id = a.user_id
WHERE
a.identify_type = 1
and a.identifier = #{phone}
and a.rec_status = 0
and u.rec_status = 0
LIMIT 1
</select>
</mapper>
Loading…
Cancel
Save