|
@@ -1,17 +1,18 @@
|
|
package com.keao.edu.user.service.impl;
|
|
package com.keao.edu.user.service.impl;
|
|
|
|
|
|
|
|
|
|
|
|
+import com.keao.edu.auth.api.client.SysUserFeignService;
|
|
import com.keao.edu.auth.api.entity.SysUser;
|
|
import com.keao.edu.auth.api.entity.SysUser;
|
|
import com.keao.edu.common.dal.BaseDAO;
|
|
import com.keao.edu.common.dal.BaseDAO;
|
|
import com.keao.edu.common.exception.BizException;
|
|
import com.keao.edu.common.exception.BizException;
|
|
import com.keao.edu.common.service.impl.BaseServiceImpl;
|
|
import com.keao.edu.common.service.impl.BaseServiceImpl;
|
|
-import com.keao.edu.common.tenant.TenantContextHolder;
|
|
|
|
import com.keao.edu.im.api.client.ImFeignService;
|
|
import com.keao.edu.im.api.client.ImFeignService;
|
|
import com.keao.edu.im.api.entity.ImResult;
|
|
import com.keao.edu.im.api.entity.ImResult;
|
|
import com.keao.edu.im.api.entity.ImUserModel;
|
|
import com.keao.edu.im.api.entity.ImUserModel;
|
|
import com.keao.edu.user.dao.OrganizationDao;
|
|
import com.keao.edu.user.dao.OrganizationDao;
|
|
import com.keao.edu.user.dao.SysUserDao;
|
|
import com.keao.edu.user.dao.SysUserDao;
|
|
import com.keao.edu.user.entity.Organization;
|
|
import com.keao.edu.user.entity.Organization;
|
|
|
|
+import com.keao.edu.user.enums.YesOrNoEnum;
|
|
import com.keao.edu.user.service.OrganizationService;
|
|
import com.keao.edu.user.service.OrganizationService;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -19,6 +20,10 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
+import java.util.Collections;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Objects;
|
|
|
|
+
|
|
@Service
|
|
@Service
|
|
public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organization> implements OrganizationService {
|
|
public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organization> implements OrganizationService {
|
|
|
|
|
|
@@ -27,6 +32,8 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
|
|
@Autowired
|
|
@Autowired
|
|
private ImFeignService imFeignService;
|
|
private ImFeignService imFeignService;
|
|
@Autowired
|
|
@Autowired
|
|
|
|
+ private SysUserFeignService sysUserFeignService;
|
|
|
|
+ @Autowired
|
|
private SysUserDao sysUserDao;
|
|
private SysUserDao sysUserDao;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -37,11 +44,21 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public void add(Organization organ) {
|
|
public void add(Organization organ) {
|
|
|
|
+ //获取当前用的organ
|
|
|
|
+ SysUser queryUserInfo = sysUserFeignService.queryUserInfo();
|
|
|
|
+ Organization currentOrganization = organDao.get(queryUserInfo.getId());
|
|
|
|
+ //获取父级的organ
|
|
|
|
+ if(organ.getIsAllowArrangeExam() == YesOrNoEnum.YES){
|
|
|
|
+ if(currentOrganization.getIsAllowArrangeExam() == YesOrNoEnum.NO){
|
|
|
|
+ throw new BizException("无权创建可排考的合作单位");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
SysUser sysUser = organ.getSysUser();
|
|
SysUser sysUser = organ.getSysUser();
|
|
- String tenantId = TenantContextHolder.getTenantId().toString();
|
|
|
|
|
|
+ String tenantId = queryUserInfo.getTenantId();
|
|
organ.setTenantId(tenantId);
|
|
organ.setTenantId(tenantId);
|
|
sysUser.setTenantId(tenantId);
|
|
sysUser.setTenantId(tenantId);
|
|
SysUser user = sysUserDao.queryByPhone(sysUser.getPhone());
|
|
SysUser user = sysUserDao.queryByPhone(sysUser.getPhone());
|
|
|
|
+ organ.setParentOrganId(queryUserInfo.getId());
|
|
if(user != null && user.getId() != null){
|
|
if(user != null && user.getId() != null){
|
|
Organization organization = organDao.get(user.getId());
|
|
Organization organization = organDao.get(user.getId());
|
|
if(organization == null){
|
|
if(organization == null){
|
|
@@ -57,6 +74,9 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
|
|
user.setPhone(organ.getContactPhone());
|
|
user.setPhone(organ.getContactPhone());
|
|
sysUserDao.update(user);
|
|
sysUserDao.update(user);
|
|
return;
|
|
return;
|
|
|
|
+ }else if(organization.getDelFlag() == YesOrNoEnum.YES){
|
|
|
|
+ organization.setDelFlag(YesOrNoEnum.NO);
|
|
|
|
+ organDao.update(organization);
|
|
}else{
|
|
}else{
|
|
throw new BizException("用户已存在");
|
|
throw new BizException("用户已存在");
|
|
}
|
|
}
|
|
@@ -67,6 +87,11 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
|
|
sysUser.setPhone(organ.getContactPhone());
|
|
sysUser.setPhone(organ.getContactPhone());
|
|
sysUserDao.insert(sysUser);
|
|
sysUserDao.insert(sysUser);
|
|
|
|
|
|
|
|
+ if(StringUtils.isEmpty(currentOrganization.getParentOrganIdTag())){
|
|
|
|
+ organ.setParentOrganIdTag(queryUserInfo.getId().toString());
|
|
|
|
+ }else {
|
|
|
|
+ organ.setParentOrganIdTag(currentOrganization.getParentOrganIdTag() + "," + queryUserInfo.getId());
|
|
|
|
+ }
|
|
organ.setId(sysUser.getId());
|
|
organ.setId(sysUser.getId());
|
|
organDao.insert(organ);
|
|
organDao.insert(organ);
|
|
//新增用户角色
|
|
//新增用户角色
|
|
@@ -103,4 +128,17 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
|
|
sysUserDao.update(sysUser);
|
|
sysUserDao.update(sysUser);
|
|
imFeignService.update(new ImUserModel(sysUser.getId().toString(),sysUser.getRealName(),sysUser.getAvatar()));
|
|
imFeignService.update(new ImUserModel(sysUser.getId().toString(),sysUser.getRealName(),sysUser.getAvatar()));
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<Integer> getSelfAndChildOrganIds(Integer organId) {
|
|
|
|
+ Organization organization = organDao.get(organId);
|
|
|
|
+ if(Objects.isNull(organization)){
|
|
|
|
+ throw new BizException("当前声部不存在");
|
|
|
|
+ }
|
|
|
|
+ List<Integer> selfAndChildOrganIds = organDao.getSelfAndChildOrganIds(organization.getLevel()<=0?organization.getId().toString():organization.getParentOrganIdTag());
|
|
|
|
+ if(null == selfAndChildOrganIds){
|
|
|
|
+ selfAndChildOrganIds= Collections.EMPTY_LIST;
|
|
|
|
+ }
|
|
|
|
+ return selfAndChildOrganIds;
|
|
|
|
+ }
|
|
}
|
|
}
|