From 3ebd7a2f2d4c307de2cb52d0b4ee442a0ea0b3f9 Mon Sep 17 00:00:00 2001 From: smallchill Date: Fri, 13 Mar 2020 19:47:51 +0800 Subject: [PATCH] =?UTF-8?q?:zap:=20=E4=BC=98=E5=8C=96=E6=96=B0=E5=BB=BA?= =?UTF-8?q?=E7=A7=9F=E6=88=B7=E9=80=BB=E8=BE=91=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E7=AE=A1=E7=90=86=E9=85=8D=E7=BD=AE=E8=AF=BB?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/TenantConstant.java | 59 +++++++++++++++++++ .../system/controller/ParamController.java | 5 ++ .../service/impl/TenantServiceImpl.java | 27 +++++---- 3 files changed, 80 insertions(+), 11 deletions(-) create mode 100644 blade-common/src/main/java/org/springblade/common/constant/TenantConstant.java diff --git a/blade-common/src/main/java/org/springblade/common/constant/TenantConstant.java b/blade-common/src/main/java/org/springblade/common/constant/TenantConstant.java new file mode 100644 index 00000000..945237c7 --- /dev/null +++ b/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 MENU_CODES = Arrays.asList( + "desk", "flow", "work", "monitor", "resource", "role", "user", "dept", "dictbiz", "topmenu" + ); + +} diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/ParamController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/ParamController.java index e4cf5cae..65531c03 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/ParamController.java +++ b/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))); } diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java index 6793e9b5..445260c3 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java +++ b/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 imp private final IRoleMenuService roleMenuService; private final IUserClient userClient; - /** - * 新建默认租户角色所分配的菜单主节点 - */ - private final List menuCodes = Arrays.asList( - "desk", "flow", "work", "monitor", "resource", "role", "user", "dept", "dictbiz", "topmenu" - ); - @Override public IPage selectTenantPage(IPage page, Tenant tenant) { return page.setRecords(baseMapper.selectTenantPage(page, tenant)); @@ -77,7 +76,9 @@ public class TenantServiceImpl extends BaseServiceImpl imp List 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 imp roleService.save(role); // 新建租户对应的角色菜单权限 LinkedList userMenus = new LinkedList<>(); - List menus = getMenus(menuCodes, userMenus); + // 获取参数配置的默认菜单集合,逗号隔开 + List menuCodes = Func.toStrList(ParamCache.getValue(ACCOUNT_MENU_CODE_KEY)); + List menus = getMenus((menuCodes.size() > 0 ? menuCodes : MENU_CODES), userMenus); List roleMenus = new ArrayList<>(); menus.forEach(menu -> { RoleMenu roleMenu = new RoleMenu(); @@ -115,7 +118,9 @@ public class TenantServiceImpl extends BaseServiceImpl 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());