!296 add 新增租户套餐同步功能
* update 修改按钮简化为同步套餐
* update 修改同步租户套餐接口message错误描述
* update 修改同步租户套餐权限字符
* update 修改状态修改权限字符
* add 租户管理新增租户套餐同步功能
| | |
| | | * 状态修改 |
| | | */ |
| | | @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) |
| | | @SaCheckPermission("system:tenantPackage:edit") |
| | | @Log(title = "租户套餐", businessType = BusinessType.UPDATE) |
| | | @SaCheckPermission("system:tenant:edit") |
| | | @Log(title = "租户", businessType = BusinessType.UPDATE) |
| | | @PutMapping("/changeStatus") |
| | | public R<Void> changeStatus(@RequestBody SysTenantBo bo) { |
| | | return toAjax(sysTenantService.updateTenantStatus(bo)); |
| | |
| | | return R.ok(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 同步租户套餐 |
| | | * |
| | | * @param tenantId 租户id |
| | | * @param packageId 套餐id |
| | | */ |
| | | @SaCheckRole(TenantConstants.SUPER_ADMIN_ROLE_KEY) |
| | | @SaCheckPermission("system:tenant:edit") |
| | | @Log(title = "租户", businessType = BusinessType.UPDATE) |
| | | @GetMapping("/syncTenantPackage") |
| | | public R<Void> syncTenantPackage(@NotBlank(message = "租户ID不能为空") String tenantId, @NotBlank(message = "套餐ID不能为空") String packageId) { |
| | | return toAjax(sysTenantService.syncTenantPackage(tenantId, packageId)); |
| | | } |
| | | |
| | | } |
| | |
| | | * 校验有效期 |
| | | */ |
| | | String checkExpireTime(String tenantId); |
| | | |
| | | /** |
| | | * 同步租户套餐 |
| | | */ |
| | | Boolean syncTenantPackage(String tenantId, String packageId); |
| | | } |
| | |
| | | return TenantConstants.NOT_PASS; |
| | | } |
| | | |
| | | /** |
| | | * 同步租户套餐 |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Boolean syncTenantPackage(String tenantId, String packageId) { |
| | | TenantHelper.enableIgnore(); |
| | | SysTenantPackage tenantPackage = sysTenantPackageMapper.selectById(packageId); |
| | | List<SysRole> roles = sysRoleMapper.selectList( |
| | | new LambdaQueryWrapper<SysRole>().eq(SysRole::getTenantId, tenantId)); |
| | | List<Long> roleIds = new ArrayList<>(roles.size() - 1); |
| | | List<Long> menuIds = StringUtils.splitTo(tenantPackage.getMenuIds(), Convert::toLong); |
| | | roles.forEach(item -> { |
| | | if (TenantConstants.TENANT_ADMIN_ROLE_KEY.equals(item.getRoleKey())) { |
| | | List<SysRoleMenu> roleMenus = new ArrayList<>(menuIds.size()); |
| | | menuIds.forEach(menuId -> { |
| | | SysRoleMenu roleMenu = new SysRoleMenu(); |
| | | roleMenu.setRoleId(item.getRoleId()); |
| | | roleMenu.setMenuId(menuId); |
| | | roleMenus.add(roleMenu); |
| | | }); |
| | | sysRoleMenuMapper.delete(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, item.getRoleId())); |
| | | sysRoleMenuMapper.insertBatch(roleMenus); |
| | | } else { |
| | | roleIds.add(item.getRoleId()); |
| | | } |
| | | }); |
| | | if (!roleIds.isEmpty()) { |
| | | sysRoleMenuMapper.delete( |
| | | new LambdaQueryWrapper<SysRoleMenu>().in(SysRoleMenu::getRoleId, roleIds).notIn(!menuIds.isEmpty(), SysRoleMenu::getMenuId, menuIds)); |
| | | } |
| | | TenantHelper.disableIgnore(); |
| | | return true; |
| | | } |
| | | } |
| | |
| | | }) |
| | | } |
| | | |
| | | // 同步租户套餐 |
| | | export function syncTenantPackage(tenantId, packageId) { |
| | | const data = { |
| | | tenantId, |
| | | packageId |
| | | } |
| | | return request({ |
| | | url: '/system/tenant/syncTenantPackage', |
| | | method: 'get', |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleSyncTenantPackage(scope.row)" |
| | | v-hasPermi="['system:tenant:edit']" |
| | | >同步套餐</el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:tenant:remove']" |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { listTenant, getTenant, delTenant, addTenant, updateTenant, changeTenantStatus } from "@/api/system/tenant"; |
| | | import { listTenant, getTenant, delTenant, addTenant, updateTenant, changeTenantStatus, syncTenantPackage} from "@/api/system/tenant"; |
| | | import { listTenantPackage } from "@/api/system/tenantPackage"; |
| | | |
| | | export default { |
| | |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | /** 同步租户套餐按钮操作 */ |
| | | handleSyncTenantPackage(row) { |
| | | this.$modal.confirm('是否确认同步租户套餐租户编号为"' + row.tenantId + '"的数据项?').then(() => { |
| | | this.loading = true; |
| | | return syncTenantPackage(row.tenantId, row.packageId); |
| | | }).then(() => { |
| | | this.loading = false; |
| | | this.getList(); |
| | | this.$modal.msgSuccess("同步成功"); |
| | | }).catch(() => { |
| | | }).finally(() => { |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | | this.download('system/tenant/export', { |