From f023929cea24f83a6e4a694aafe539802324579e Mon Sep 17 00:00:00 2001 From: ma <1062634917@qq.com> Date: Tue, 28 Sep 2021 15:34:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BF=9D=E5=AD=98=E9=97=AE?= =?UTF-8?q?=E5=8D=B7=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persist/dao/OrganizationMemberDao.java | 8 ++ .../dao/OrganizationMemberPositionDao.java | 17 +++ .../carbasics/service/AsyncService.java | 115 ++++++++++++------ .../mapper_dao/OrganizationMemberDao.xml | 14 +++ .../OrganizationMemberPositionDao.xml | 17 +++ 5 files changed, 132 insertions(+), 39 deletions(-) create mode 100644 src/main/java/com/ccsens/carbasics/persist/dao/OrganizationMemberPositionDao.java create mode 100644 src/main/resources/mapper_dao/OrganizationMemberPositionDao.xml diff --git a/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationMemberDao.java b/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationMemberDao.java index c15f815..7659891 100644 --- a/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationMemberDao.java +++ b/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationMemberDao.java @@ -1,5 +1,6 @@ package com.ccsens.carbasics.persist.dao; +import com.ccsens.carbasics.bean.po.OrganizationMember; import com.ccsens.carbasics.bean.vo.OrganizationMemberVo; import com.ccsens.carbasics.bean.vo.OrganizationVo; import com.ccsens.carbasics.persist.mapper.OrganizationMemberMapper; @@ -25,4 +26,11 @@ public interface OrganizationMemberDao extends OrganizationMemberMapper { * @return 医院信息 */ OrganizationMemberVo.Organization getHospital(@Param("userId") Long userId); + + /** + * 根据userId查询成员是否存在 + * @param userId 用户id + * @return 成员信息 + */ + OrganizationMember queryExistByUserId(@Param("userId") Long userId); } diff --git a/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationMemberPositionDao.java b/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationMemberPositionDao.java new file mode 100644 index 0000000..94bd31b --- /dev/null +++ b/src/main/java/com/ccsens/carbasics/persist/dao/OrganizationMemberPositionDao.java @@ -0,0 +1,17 @@ +package com.ccsens.carbasics.persist.dao; + +import com.ccsens.carbasics.persist.mapper.OrganizationMemberPositionMapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +@Repository +public interface OrganizationMemberPositionDao extends OrganizationMemberPositionMapper { + /** + * 查询用户是否已经绑定此职位和部门 + * @param memberId 成员id + * @param positionId 职位id + * @param departmentId 部门id + * @return 0 不存在 + */ + Long queryByExistByMember(@Param("memberId") Long memberId,@Param("positonId") Long positionId,@Param("departmentId") Long departmentId); +} diff --git a/src/main/java/com/ccsens/carbasics/service/AsyncService.java b/src/main/java/com/ccsens/carbasics/service/AsyncService.java index fd2aaca..60e5e3e 100644 --- a/src/main/java/com/ccsens/carbasics/service/AsyncService.java +++ b/src/main/java/com/ccsens/carbasics/service/AsyncService.java @@ -6,10 +6,7 @@ import com.ccsens.carbasics.bean.dto.PatientDto; import com.ccsens.carbasics.bean.dto.ProjectDto; import com.ccsens.carbasics.bean.dto.QuestionnaireDto; import com.ccsens.carbasics.bean.po.*; -import com.ccsens.carbasics.persist.dao.OrganizationDao; -import com.ccsens.carbasics.persist.dao.OrganizationDepartmentDao; -import com.ccsens.carbasics.persist.dao.OrganizationMemberDao; -import com.ccsens.carbasics.persist.dao.OrganizationProjectDao; +import com.ccsens.carbasics.persist.dao.*; import com.ccsens.carbasics.persist.mapper.OrganizationMemberPositionMapper; import com.ccsens.carbasics.util.Constant; import com.ccsens.common.bean.dto.CMemberDto; @@ -57,7 +54,7 @@ public class AsyncService implements IAsyncService { @Resource private OrganizationProjectDao organizationProjectDao; @Resource - private OrganizationMemberPositionMapper organizationMemberPositionMapper; + private OrganizationMemberPositionDao organizationMemberPositionDao; @Resource private IFirstAidService firstAidService; @Resource @@ -103,18 +100,31 @@ public class AsyncService implements IAsyncService { department.setOrganizationId(newOrganization.getId()); departmentDao.insertSelective(department); //创建用户 - OrganizationMember member = new OrganizationMember(); - member.setId(snowflake.nextId()); - member.setUserId(userId); - member.setName(param.getName()); - member.setContact(param.getPhone()); - organizationMemberDao.insertSelective(member); + //查询用户是否存在 + OrganizationMember organizationMember = organizationMemberDao.queryExistByUserId(userId); + Long memberId = 0L; + if (ObjectUtil.isNull(organizationMember)) { + OrganizationMember member = new OrganizationMember(); + member.setId(snowflake.nextId()); + member.setUserId(userId); + member.setName(param.getName()); + member.setContact(param.getPhone()); + organizationMemberDao.insertSelective(member); + memberId = member.getId(); + }else { + memberId = organizationMember.getId(); + } //添加成员职位 - OrganizationMemberPosition position = new OrganizationMemberPosition(); - position.setId(snowflake.nextId()); - position.setPositionId(param.getPositionId()); - position.setDepartmentId(department.getId()); - organizationMemberPositionMapper.insertSelective(position); + //判断成员职位是否存在 + Long isExist = organizationMemberPositionDao.queryByExistByMember(memberId,param.getPositionId(),department.getId()); + if (isExist == 0) { + OrganizationMemberPosition position = new OrganizationMemberPosition(); + position.setId(snowflake.nextId()); + position.setPositionId(param.getPositionId()); + position.setDepartmentId(department.getId()); + position.setMemberId(memberId); + organizationMemberPositionDao.insertSelective(position); + } //创建项目 createProject(newOrganization.getId(),param,userId); PatientDto.SavePatient savePatient = new PatientDto.SavePatient(); @@ -136,32 +146,59 @@ public class AsyncService implements IAsyncService { newDepartment.setName(param.getDepartments()); newDepartment.setOrganizationId(organization.getId()); departmentDao.insertSelective(newDepartment); - //添加人员 - OrganizationMember member = new OrganizationMember(); - member.setId(snowflake.nextId()); - member.setUserId(userId); - member.setName(param.getName()); - member.setContact(param.getPhone()); - organizationMemberDao.insertSelective(member); + //创建用户 + //查询用户是否存在 + OrganizationMember organizationMember = organizationMemberDao.queryExistByUserId(userId); + Long memberId = 0L; + if (ObjectUtil.isNull(organizationMember)) { + OrganizationMember member = new OrganizationMember(); + member.setId(snowflake.nextId()); + member.setUserId(userId); + member.setName(param.getName()); + member.setContact(param.getPhone()); + organizationMemberDao.insertSelective(member); + memberId = member.getId(); + }else { + memberId = organizationMember.getId(); + } //添加成员职位 - OrganizationMemberPosition position = new OrganizationMemberPosition(); - position.setId(snowflake.nextId()); - position.setPositionId(param.getPositionId()); - position.setDepartmentId(department.getId()); - organizationMemberPositionMapper.insertSelective(position); + //判断成员职位是否存在 + Long isExist = organizationMemberPositionDao.queryByExistByMember(memberId,param.getPositionId(),department.getId()); + if (isExist == 0) { + OrganizationMemberPosition position = new OrganizationMemberPosition(); + position.setId(snowflake.nextId()); + position.setPositionId(param.getPositionId()); + position.setDepartmentId(department.getId()); + position.setMemberId(memberId); + organizationMemberPositionDao.insertSelective(position); + } }else { - OrganizationMember member = new OrganizationMember(); - member.setId(snowflake.nextId()); - member.setUserId(userId); - member.setName(param.getName()); - member.setContact(param.getPhone()); - organizationMemberDao.insertSelective(member); + //创建用户 + //查询用户是否存在 + OrganizationMember organizationMember = organizationMemberDao.queryExistByUserId(userId); + Long memberId = 0L; + if (ObjectUtil.isNull(organizationMember)) { + OrganizationMember member = new OrganizationMember(); + member.setId(snowflake.nextId()); + member.setUserId(userId); + member.setName(param.getName()); + member.setContact(param.getPhone()); + organizationMemberDao.insertSelective(member); + memberId = member.getId(); + }else { + memberId = organizationMember.getId(); + } //添加成员职位 - OrganizationMemberPosition position = new OrganizationMemberPosition(); - position.setId(snowflake.nextId()); - position.setPositionId(param.getPositionId()); - position.setDepartmentId(department.getId()); - organizationMemberPositionMapper.insertSelective(position); + //判断成员职位是否存在 + Long isExist = organizationMemberPositionDao.queryByExistByMember(memberId,param.getPositionId(),department.getId()); + if (isExist == 0) { + OrganizationMemberPosition position = new OrganizationMemberPosition(); + position.setId(snowflake.nextId()); + position.setPositionId(param.getPositionId()); + position.setDepartmentId(department.getId()); + position.setMemberId(memberId); + organizationMemberPositionDao.insertSelective(position); + } } } } diff --git a/src/main/resources/mapper_dao/OrganizationMemberDao.xml b/src/main/resources/mapper_dao/OrganizationMemberDao.xml index f0ff9c5..4ee7a82 100644 --- a/src/main/resources/mapper_dao/OrganizationMemberDao.xml +++ b/src/main/resources/mapper_dao/OrganizationMemberDao.xml @@ -70,4 +70,18 @@ order by o.id limit 1 + + diff --git a/src/main/resources/mapper_dao/OrganizationMemberPositionDao.xml b/src/main/resources/mapper_dao/OrganizationMemberPositionDao.xml new file mode 100644 index 0000000..62d0ebd --- /dev/null +++ b/src/main/resources/mapper_dao/OrganizationMemberPositionDao.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file