|
@@ -1,14 +1,23 @@
|
|
|
package com.huaxu.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.huaxu.common.ToolUtil;
|
|
|
import com.huaxu.dao.TenantMapper;
|
|
|
+import com.huaxu.dto.RoleRequestDto;
|
|
|
import com.huaxu.dto.TenantDto;
|
|
|
+import com.huaxu.entity.Org;
|
|
|
+import com.huaxu.entity.Role;
|
|
|
+import com.huaxu.entity.TenantEntity;
|
|
|
import com.huaxu.entity.UserEntity;
|
|
|
import com.huaxu.model.LoginUser;
|
|
|
+import com.huaxu.service.OrgService;
|
|
|
+import com.huaxu.service.RoleService;
|
|
|
import com.huaxu.service.TenantService;
|
|
|
import com.huaxu.service.UserService;
|
|
|
import com.huaxu.util.Snowflake;
|
|
|
import com.huaxu.util.UserUtil;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
@@ -24,12 +33,26 @@ import java.util.stream.Collectors;
|
|
|
*/
|
|
|
@Service("tenantService")
|
|
|
public class TenantServiceImpl implements TenantService {
|
|
|
-
|
|
|
- @Resource
|
|
|
- private TenantMapper tenantMapper;
|
|
|
-
|
|
|
+ /**
|
|
|
+ * 租户
|
|
|
+ */
|
|
|
@Resource
|
|
|
+ private TenantMapper tenantMapper;
|
|
|
+ /**
|
|
|
+ * 用户
|
|
|
+ */
|
|
|
+ @Autowired
|
|
|
private UserService userService;
|
|
|
+ /**
|
|
|
+ * 角色
|
|
|
+ */
|
|
|
+ @Autowired
|
|
|
+ private RoleService roleService;
|
|
|
+ /**
|
|
|
+ * 机构
|
|
|
+ */
|
|
|
+ @Autowired
|
|
|
+ private OrgService orgService;
|
|
|
|
|
|
/**
|
|
|
* 通过ID查询单条数据
|
|
@@ -78,13 +101,50 @@ public class TenantServiceImpl implements TenantService {
|
|
|
public Integer insert(TenantDto tenantDto) {
|
|
|
LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
//创建租户信息
|
|
|
- tenantDto.setCreateBy(loginUser.getUsername());
|
|
|
+ if(loginUser != null){
|
|
|
+ tenantDto.setUpdateBy(loginUser.getUsername());
|
|
|
+ tenantDto.setCreateBy(loginUser.getUsername());
|
|
|
+ }
|
|
|
tenantDto.setDateCreate(new Date());
|
|
|
- tenantDto.setUpdateBy(loginUser.getUsername());
|
|
|
tenantDto.setDateUpdate(new Date());
|
|
|
tenantDto.setCode(Snowflake.generateId().toString());
|
|
|
tenantDto.setStatus(1);
|
|
|
+ tenantDto.setTenantState(1);
|
|
|
tenantMapper.insert(tenantDto);
|
|
|
+
|
|
|
+ //创建租户菜单信息
|
|
|
+ if(tenantDto.getTenantMenuIds().size()>0){
|
|
|
+ tenantMapper.createTenantMenu(tenantDto.getCreateBy(),tenantDto.getId(),tenantDto.getTenantMenuIds());
|
|
|
+ }
|
|
|
+ //创建角色
|
|
|
+ RoleRequestDto roleRequestDto = new RoleRequestDto();
|
|
|
+ Role role = new Role();
|
|
|
+ role.setRoleName(tenantDto.getTenantName());
|
|
|
+ role.setDescription(tenantDto.getTenantName() +"初始化角色");
|
|
|
+ role.setRoleState(1);
|
|
|
+ role.setPermissionType(1);
|
|
|
+ role.setStatus(1);
|
|
|
+ roleRequestDto.setRole(role);
|
|
|
+ //查询租户菜单id
|
|
|
+// List<Integer > tenantMenuIds = tenantMapper.selectTenantMenuIds(tenantDto.getId());
|
|
|
+ roleRequestDto.setIds(tenantDto.getTenantMenuIds());
|
|
|
+ //插入角色
|
|
|
+ roleService.insert(roleRequestDto);
|
|
|
+ //插入角色菜单(租户菜单id)
|
|
|
+ roleService.updateRoleMenuRelations(roleRequestDto);
|
|
|
+
|
|
|
+ /*创建机构*/
|
|
|
+ Org org = new Org();
|
|
|
+ org.setOrgLeaderName(tenantDto.getUserName());
|
|
|
+ org.setOrgLeaderPhone(tenantDto.getPhone());
|
|
|
+ org.setOrgName(tenantDto.getTenantName());
|
|
|
+ org.setOrgState(1);
|
|
|
+ org.setStatus(1);
|
|
|
+ org.setOrgType("company"); //机构类型
|
|
|
+ org.setParentId(0);
|
|
|
+ orgService.insert(org);
|
|
|
+
|
|
|
+
|
|
|
//创建管理员信息
|
|
|
UserEntity userEntity =new UserEntity();
|
|
|
userEntity.setTenantId(tenantDto.getCode());
|
|
@@ -96,11 +156,10 @@ public class TenantServiceImpl implements TenantService {
|
|
|
userEntity.setPhone(tenantDto.getPhone());
|
|
|
userEntity.setUsername(tenantDto.getUserName());
|
|
|
userEntity.setUserType("1");//租户系统管理员
|
|
|
+ userEntity.setRoleId(role.getId().longValue()); //赋值角色
|
|
|
+ userEntity.setCompanyOrgId(org.getId().longValue());//公司
|
|
|
+ userEntity.setDeptOrgId(org.getId().longValue());//机构
|
|
|
userService.addUser(userEntity);
|
|
|
- //创建租户菜单信息
|
|
|
- if(tenantDto.getTenantMenuIds().size()>0){
|
|
|
- tenantMapper.createTenantMenu(tenantDto.getCreateBy(),tenantDto.getId(),tenantDto.getTenantMenuIds());
|
|
|
- }
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
@@ -118,20 +177,13 @@ public class TenantServiceImpl implements TenantService {
|
|
|
return 0;
|
|
|
}
|
|
|
//修改租户信息
|
|
|
- tenantDto.setUpdateBy(loginUser.getUsername());
|
|
|
+ if(loginUser != null){
|
|
|
+ tenantDto.setUpdateBy(loginUser.getUsername());
|
|
|
+ }
|
|
|
tenantDto.setDateUpdate(new Date());
|
|
|
|
|
|
tenantMapper.update(tenantDto);
|
|
|
- //修改管理员信息
|
|
|
- UserEntity userEntity =new UserEntity();
|
|
|
- userEntity.setId(tenantDto.getUserId());
|
|
|
- userEntity.setTenantId(tenantDto.getCode());
|
|
|
- userEntity.setUpdateBy(tenantDto.getUpdateBy());
|
|
|
- userEntity.setDateUpdate(new Date());
|
|
|
- userEntity.setPhone(tenantDto.getPhone());
|
|
|
- userEntity.setUsername(tenantDto.getUserName());
|
|
|
- userEntity.setUserType("1");//租户系统管理员
|
|
|
- userService.updateUserById(userEntity);
|
|
|
+
|
|
|
//修改租户菜单信息
|
|
|
//界面传回的租户菜单id
|
|
|
List<Integer > newTenantMenuIds = tenantDto.getTenantMenuIds();
|
|
@@ -150,6 +202,28 @@ public class TenantServiceImpl implements TenantService {
|
|
|
if(deleteTenantMenuIds.size()>0){
|
|
|
tenantMapper.deleteTenantMenuIds(tenantDto.getId(),deleteTenantMenuIds);
|
|
|
}
|
|
|
+ //修改管理员信息
|
|
|
+ UserEntity userEntity =userService.findUserById(tenantDto.getUserId());
|
|
|
+ userEntity.setUpdateBy(tenantDto.getUpdateBy());
|
|
|
+ userEntity.setDateUpdate(new Date());
|
|
|
+ userEntity.setPhone(tenantDto.getPhone());
|
|
|
+ userEntity.setUsername(tenantDto.getUserName());
|
|
|
+ userService.updateUserById(userEntity);
|
|
|
+
|
|
|
+ //创建角色
|
|
|
+ RoleRequestDto roleRequestDto = new RoleRequestDto();
|
|
|
+ Role role = roleService.selectById(userEntity.getRoleId().intValue());
|
|
|
+ role.setRoleName(tenantDto.getTenantName());
|
|
|
+ role.setDescription(tenantDto.getTenantName() +"初始化角色");
|
|
|
+ roleRequestDto.setRole(role);
|
|
|
+ //查询租户菜单id
|
|
|
+// List<Integer > tenantMenuIds = tenantMapper.selectTenantMenuIds(tenantDto.getId());
|
|
|
+
|
|
|
+ roleRequestDto.setIds(newTenantMenuIds);
|
|
|
+ //插入角色
|
|
|
+ roleService.update(roleRequestDto);
|
|
|
+ //插入角色菜单(租户菜单id)
|
|
|
+ roleService.updateRoleMenuRelations(roleRequestDto);
|
|
|
|
|
|
return 1;
|
|
|
}
|
|
@@ -186,4 +260,22 @@ public class TenantServiceImpl implements TenantService {
|
|
|
public IPage<TenantDto> selectPage(IPage<TenantDto> page, TenantDto tenantDto) {
|
|
|
return tenantMapper.selectPage(page, tenantDto);
|
|
|
}
|
|
|
+
|
|
|
+ public boolean checkTenantNameUnique(TenantDto tenantDto) {
|
|
|
+ List<Integer> tenantIds = tenantMapper.countIds(tenantDto.getTenantName());
|
|
|
+
|
|
|
+ if(tenantIds.size()>1){ //名字匹配多个结果
|
|
|
+ return false;
|
|
|
+ }else if(tenantIds.size() == 0 ){ //没有匹配的结果
|
|
|
+ return true;
|
|
|
+ }else if(ToolUtil.isEmpty(tenantDto.getId())){ //新增情况匹配到一个结果
|
|
|
+ return false;
|
|
|
+ }else if(!tenantDto.getId().equals(tenantIds.get(0))){ //修改时匹配到一个结果,但id不相等
|
|
|
+ return false;
|
|
|
+ }else { //修改时匹配到一个结果且id相等
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|