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