|
@@ -2,24 +2,38 @@ package com.huaxu.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.huaxu.dao.TenantMapper;
|
|
|
+import com.huaxu.dao.UserMapper;
|
|
|
+import com.huaxu.dto.TenantDto;
|
|
|
import com.huaxu.entity.TenantEntity;
|
|
|
+import com.huaxu.entity.UserEntity;
|
|
|
+import com.huaxu.model.LoginUser;
|
|
|
import com.huaxu.service.TenantService;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import com.huaxu.service.UserService;
|
|
|
+import com.huaxu.util.UserUtil;
|
|
|
+import io.swagger.annotations.ApiModelProperty;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
- /**
|
|
|
+/**
|
|
|
* @description 租户管理实现类
|
|
|
* @auto wangli
|
|
|
* @data 2020-10-26 15:44
|
|
|
*/
|
|
|
@Service("tenantService")
|
|
|
public class TenantServiceImpl implements TenantService {
|
|
|
- @Autowired
|
|
|
+
|
|
|
+ @Resource
|
|
|
private TenantMapper tenantMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private UserService userService;
|
|
|
+
|
|
|
/**
|
|
|
* 通过ID查询单条数据
|
|
|
*
|
|
@@ -27,8 +41,13 @@ public class TenantServiceImpl implements TenantService {
|
|
|
* @return 实例对象
|
|
|
*/
|
|
|
@Override
|
|
|
- public TenantEntity selectById(Integer id) {
|
|
|
- return this.tenantMapper.selectById(id);
|
|
|
+ public TenantDto selectById(Integer id) {
|
|
|
+ TenantDto tenantDto = tenantMapper.selectById(id);
|
|
|
+ //获取租户菜单
|
|
|
+ if(tenantDto != null){
|
|
|
+ tenantDto.setTenantMenuIds(tenantMapper.selectTenantMenuIds(id));
|
|
|
+ }
|
|
|
+ return tenantDto;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -38,8 +57,8 @@ public class TenantServiceImpl implements TenantService {
|
|
|
* @return 实例对象的集合
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<TenantEntity> selectAll() {
|
|
|
- return this.tenantMapper.selectAll();
|
|
|
+ public List<TenantDto> selectAll() {
|
|
|
+ return tenantMapper.selectAll();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -48,42 +67,90 @@ public class TenantServiceImpl implements TenantService {
|
|
|
* @return 实例对象的集合
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<TenantEntity> selectList(TenantEntity tenantEntity) {
|
|
|
- return this.tenantMapper.selectList(tenantEntity);
|
|
|
+ public List<TenantDto> selectList(TenantDto tenantDto) {
|
|
|
+ return tenantMapper.selectList(tenantDto);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 新增数据
|
|
|
*
|
|
|
- * @param tenantEntity 实例对象
|
|
|
+ * @param tenantDto 实例对象
|
|
|
* @return 实例对象
|
|
|
*/
|
|
|
@Override
|
|
|
- public int insert(TenantEntity tenantEntity) {
|
|
|
- return this.tenantMapper.insert(tenantEntity);
|
|
|
+ public Integer insert(TenantDto tenantDto) {
|
|
|
+// LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
+ //创建租户信息
|
|
|
+// tenantDto.setCreateBy(loginUser.getUsername());
|
|
|
+// tenantDto.setDateCreate(new Date());
|
|
|
+// tenantDto.setUpdateBy(loginUser.getUsername());
|
|
|
+// tenantDto.setDateUpdate(new Date());
|
|
|
+ tenantDto.setStatus(0);
|
|
|
+ tenantMapper.insert(tenantDto);
|
|
|
+ //创建管理员信息
|
|
|
+ UserEntity userEntity =new UserEntity();
|
|
|
+ userEntity.setTenantId(tenantDto.getCode());//此字段到底取标识还是id
|
|
|
+ userEntity.setCreateBy(tenantDto.getCreateBy());
|
|
|
+ userEntity.setDateCreate(new Date());
|
|
|
+ userEntity.setUpdateBy(tenantDto.getUpdateBy());
|
|
|
+ userEntity.setDateUpdate(new Date());
|
|
|
+ userEntity.setStatus(0);
|
|
|
+ userEntity.setPhone(tenantDto.getPhone());
|
|
|
+ userEntity.setUsername(tenantDto.getUserName());
|
|
|
+ userService.addUser(userEntity);
|
|
|
+ //创建租户菜单信息
|
|
|
+ if(tenantDto.getTenantMenuIds().size()>0){
|
|
|
+ tenantMapper.createTenantMenu(tenantDto.getCreateBy(),tenantDto.getId(),tenantDto.getTenantMenuIds());
|
|
|
+ }
|
|
|
+ return 1;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 批量新增
|
|
|
- *
|
|
|
- * @param apps 实例对象的集合
|
|
|
- * @return 生效的条数
|
|
|
- */
|
|
|
- @Override
|
|
|
- public int batchInsert(List<TenantEntity> apps) {
|
|
|
- return this.tenantMapper.batchInsert(apps);
|
|
|
- }
|
|
|
|
|
|
/**
|
|
|
* 修改数据
|
|
|
*
|
|
|
- * @param tenantEntity 实例对象
|
|
|
+ * @param tenantDto 实例对象
|
|
|
* @return 实例对象
|
|
|
*/
|
|
|
@Override
|
|
|
- public int update(TenantEntity tenantEntity) {
|
|
|
+ public int update(TenantDto tenantDto) {
|
|
|
+// LoginUser loginUser = UserUtil.getCurrentUser();
|
|
|
+ if(tenantDto.getId() == null){
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ //修改租户信息
|
|
|
+// tenantDto.setUpdateBy(loginUser.getUsername());
|
|
|
+// tenantDto.setDateUpdate(new Date());
|
|
|
+ tenantMapper.update(tenantDto);
|
|
|
+ //修改管理员信息
|
|
|
+ UserEntity userEntity =new UserEntity();
|
|
|
+ userEntity.setId(tenantDto.getUserId());
|
|
|
+ userEntity.setTenantId(tenantDto.getCode());//此字段到底取标识还是id
|
|
|
+ userEntity.setUpdateBy(tenantDto.getUpdateBy());
|
|
|
+ userEntity.setDateUpdate(new Date());
|
|
|
+ userEntity.setPhone(tenantDto.getPhone());
|
|
|
+ userEntity.setUsername(tenantDto.getUserName());
|
|
|
+ userService.updateUserById(userEntity);
|
|
|
+ //修改租户菜单信息
|
|
|
+ //界面传回的租户菜单id
|
|
|
+ List<Integer > newTenantMenuIds = tenantDto.getTenantMenuIds();
|
|
|
+ //数据库中已存在的租户菜单id
|
|
|
+ List<Integer > oldTenantMenuIds = tenantMapper.selectTenantMenuIds(tenantDto.getId());
|
|
|
+ //相同的暂时不改动
|
|
|
+
|
|
|
+ //新增的id(需要新增的)
|
|
|
+ List<Integer> addTenantMenuIds = newTenantMenuIds.stream().filter(item -> !oldTenantMenuIds.contains(item)).collect(Collectors.toList());
|
|
|
+ //创建租户菜单信息
|
|
|
+ if(addTenantMenuIds.size()>0){
|
|
|
+ tenantMapper.createTenantMenu(tenantDto.getUpdateBy(),tenantDto.getId(),addTenantMenuIds);
|
|
|
+ }
|
|
|
+ //去掉的id(需要删除的)
|
|
|
+ List<Integer> deleteTenantMenuIds = oldTenantMenuIds.stream().filter(item -> !newTenantMenuIds.contains(item)).collect(Collectors.toList());
|
|
|
+ if(deleteTenantMenuIds.size()>0){
|
|
|
+ tenantMapper.deleteTenantMenuIds(tenantDto.getId(),deleteTenantMenuIds);
|
|
|
+ }
|
|
|
|
|
|
- return this.tenantMapper.update(tenantEntity);
|
|
|
+ return 1;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -94,7 +161,9 @@ public class TenantServiceImpl implements TenantService {
|
|
|
*/
|
|
|
@Override
|
|
|
public int deleteById(Integer id) {
|
|
|
- return this.tenantMapper.deleteById(id);
|
|
|
+ //先删除租户菜单
|
|
|
+ tenantMapper.deleteTenantMenuIds(id,null);
|
|
|
+ return tenantMapper.deleteById(id);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -104,7 +173,7 @@ public class TenantServiceImpl implements TenantService {
|
|
|
*/
|
|
|
@Override
|
|
|
public int count() {
|
|
|
- return this.tenantMapper.count();
|
|
|
+ return tenantMapper.count();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -113,7 +182,7 @@ public class TenantServiceImpl implements TenantService {
|
|
|
* @return 对象列表
|
|
|
*/
|
|
|
@Override
|
|
|
- public IPage<TenantEntity> selectPage(TenantEntity tenantEntity, IPage<TenantEntity> page) {
|
|
|
- return this.tenantMapper.selectPage(page, tenantEntity);
|
|
|
+ public IPage<TenantDto> selectPage(IPage<TenantDto> page, TenantDto tenantDto) {
|
|
|
+ return tenantMapper.selectPage(page, tenantDto);
|
|
|
}
|
|
|
}
|