Browse Source

优化新建租户逻辑,增加参数管理配置读取

test
smallchill 5 years ago
parent
commit
3ebd7a2f2d
  1. 59
      blade-common/src/main/java/org/springblade/common/constant/TenantConstant.java
  2. 5
      blade-service/blade-system/src/main/java/org/springblade/system/controller/ParamController.java
  3. 27
      blade-service/blade-system/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java

59
blade-common/src/main/java/org/springblade/common/constant/TenantConstant.java

@ -0,0 +1,59 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package org.springblade.common.constant;
import java.util.Arrays;
import java.util.List;
/**
* 租户常量
*
* @author Chill
*/
public interface TenantConstant {
/**
* 租户默认密码KEY
*/
String PASSWORD_KEY = "tenant.default.password";
/**
* 租户默认账号额度KEY
*/
String ACCOUNT_NUMBER_KEY = "tenant.default.accountNumber";
/**
* 租户默认菜单集合KEY
*/
String ACCOUNT_MENU_CODE_KEY = "tenant.default.menuCode";
/**
* 租户默认密码
*/
String DEFAULT_PASSWORD = "123456";
/**
* 租户默认账号额度
*/
Integer DEFAULT_ACCOUNT_NUMBER = -1;
/**
* 租户默认菜单集合
*/
List<String> MENU_CODES = Arrays.asList(
"desk", "flow", "work", "monitor", "resource", "role", "user", "dept", "dictbiz", "topmenu"
);
}

5
blade-service/blade-system/src/main/java/org/springblade/system/controller/ParamController.java

@ -27,12 +27,15 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.entity.Param;
import org.springblade.system.service.IParamService;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.validation.Valid;
import java.util.Map;
import static org.springblade.core.cache.constant.CacheConstant.PARAM_CACHE;
/**
* 控制器
*
@ -79,6 +82,7 @@ public class ParamController extends BladeController {
@PostMapping("/submit")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "新增或修改", notes = "传入param")
@CacheEvict(cacheNames = {PARAM_CACHE}, allEntries = true)
public R submit(@Valid @RequestBody Param param) {
return R.status(paramService.saveOrUpdate(param));
}
@ -90,6 +94,7 @@ public class ParamController extends BladeController {
@PostMapping("/remove")
@ApiOperationSupport(order = 4)
@ApiOperation(value = "逻辑删除", notes = "传入ids")
@CacheEvict(cacheNames = {PARAM_CACHE}, allEntries = true)
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
return R.status(paramService.deleteLogic(Func.toLongList(ids)));
}

27
blade-service/blade-system/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java

@ -25,6 +25,7 @@ import org.springblade.core.tenant.TenantId;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.cache.ParamCache;
import org.springblade.system.entity.*;
import org.springblade.system.mapper.TenantMapper;
import org.springblade.system.service.*;
@ -33,9 +34,14 @@ import org.springblade.system.user.feign.IUserClient;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
import static org.springblade.common.constant.TenantConstant.*;
/**
* 服务实现类
*
@ -52,13 +58,6 @@ public class TenantServiceImpl extends BaseServiceImpl<TenantMapper, Tenant> imp
private final IRoleMenuService roleMenuService;
private final IUserClient userClient;
/**
* 新建默认租户角色所分配的菜单主节点
*/
private final List<String> menuCodes = Arrays.asList(
"desk", "flow", "work", "monitor", "resource", "role", "user", "dept", "dictbiz", "topmenu"
);
@Override
public IPage<Tenant> selectTenantPage(IPage<Tenant> page, Tenant tenant) {
return page.setRecords(baseMapper.selectTenantPage(page, tenant));
@ -77,7 +76,9 @@ public class TenantServiceImpl extends BaseServiceImpl<TenantMapper, Tenant> imp
List<String> codes = tenants.stream().map(Tenant::getTenantId).collect(Collectors.toList());
String tenantId = getTenantId(codes);
tenant.setTenantId(tenantId);
tenant.setAccountNumber(-1);
// 获取参数配置的账号额度
int accountNumber = Func.toInt(ParamCache.getValue(ACCOUNT_NUMBER_KEY), DEFAULT_ACCOUNT_NUMBER);
tenant.setAccountNumber(accountNumber);
// 新建租户对应的默认角色
Role role = new Role();
role.setTenantId(tenantId);
@ -89,7 +90,9 @@ public class TenantServiceImpl extends BaseServiceImpl<TenantMapper, Tenant> imp
roleService.save(role);
// 新建租户对应的角色菜单权限
LinkedList<Menu> userMenus = new LinkedList<>();
List<Menu> menus = getMenus(menuCodes, userMenus);
// 获取参数配置的默认菜单集合,逗号隔开
List<String> menuCodes = Func.toStrList(ParamCache.getValue(ACCOUNT_MENU_CODE_KEY));
List<Menu> menus = getMenus((menuCodes.size() > 0 ? menuCodes : MENU_CODES), userMenus);
List<RoleMenu> roleMenus = new ArrayList<>();
menus.forEach(menu -> {
RoleMenu roleMenu = new RoleMenu();
@ -115,7 +118,9 @@ public class TenantServiceImpl extends BaseServiceImpl<TenantMapper, Tenant> imp
user.setName("admin");
user.setRealName("admin");
user.setAccount("admin");
user.setPassword("admin");
// 获取参数配置的密码
String password = Func.toStr(ParamCache.getValue(PASSWORD_KEY), DEFAULT_PASSWORD);
user.setPassword(password);
user.setRoleId(String.valueOf(role.getId()));
user.setDeptId(String.valueOf(dept.getId()));
user.setBirthday(new Date());

Loading…
Cancel
Save