add SysTenantPackage 新增字段 menuCheckStrictly 用于前端展示 ;

update sql SysTenantPackage 新增字段 menuCheckStrictly ;
update SysMenuServiceImpl#selectMenuListByTenantPackageId 更新获取菜单列表 SQL 参数以及判断空值判断 ;
update SysTenantPackageServiceImpl#insertByBo 更新接口菜单id参数保存 ;
update SysMenuMapper#selectMenuListByTenantPackageMenuId 更新获取选中菜单接口 ;
This commit is contained in:
zlyx 2023-02-06 10:29:05 +08:00
parent 4fd3029488
commit bbfd0d1580
14 changed files with 103 additions and 40 deletions

View File

@ -37,6 +37,10 @@ public class SysTenantPackage extends BaseEntity {
* 备注
*/
private String remark;
/**
* 菜单树选择项是否关联显示 0父子不互相关联显示 1父子互相关联显示
*/
private Boolean menuCheckStrictly;
/**
* 状态0正常 1停用
*/

View File

@ -33,13 +33,18 @@ public class SysTenantPackageBo extends BaseEntity {
/**
* 关联菜单id
*/
private String menuIds;
private Long[] menuIds;
/**
* 备注
*/
private String remark;
/**
* 菜单树选择项是否关联显示
*/
private Boolean menuCheckStrictly;
/**
* 状态0正常 1停用
*/

View File

@ -46,6 +46,12 @@ public class SysTenantPackageVo implements Serializable {
@ExcelProperty(value = "备注")
private String remark;
/**
* 菜单树选择项是否关联显示
*/
@ExcelProperty(value = "菜单树选择项是否关联显示")
private Boolean menuCheckStrictly;
/**
* 状态0正常 1停用
*/

View File

@ -81,11 +81,11 @@ public interface SysMenuMapper extends BaseMapperPlus<SysMenuMapper, SysMenu, Sy
List<Long> selectMenuListByRoleId(@Param("roleId") Long roleId, @Param("menuCheckStrictly") boolean menuCheckStrictly);
/**
* 根据租户套餐ID查询菜单树信息 TODO
* 根据租户套餐菜单ID查询菜单树信息
*
* @param packageId 租户套餐ID
* @param menuIds 租户套餐菜单ID
* @return 选中菜单列表
*/
List<Long> selectMenuListByTenantPackageId(@Param("packageId") Long packageId);
List<Long> selectMenuListByTenantPackageMenuId(@Param("menuIds") String menuIds);
}

View File

@ -3,6 +3,7 @@ package com.ruoyi.system.mapper;
import com.ruoyi.system.domain.SysTenantPackage;
import com.ruoyi.system.domain.vo.SysTenantPackageVo;
import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Param;
/**
* 租户套餐Mapper接口
@ -11,4 +12,12 @@ import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
*/
public interface SysTenantPackageMapper extends BaseMapperPlus<SysTenantPackageMapper, SysTenantPackage, SysTenantPackageVo> {
/**
* 获取租户套餐菜单id
*
* @param packageId 租户套餐id
* @return 菜单id
*/
String selectMenuIds(@Param("packageId") Long packageId);
}

View File

@ -23,6 +23,7 @@ import com.ruoyi.system.domain.vo.SysMenuVo;
import com.ruoyi.system.mapper.SysMenuMapper;
import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.mapper.SysRoleMenuMapper;
import com.ruoyi.system.mapper.SysTenantPackageMapper;
import com.ruoyi.system.service.ISysMenuService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@ -41,6 +42,7 @@ public class SysMenuServiceImpl implements ISysMenuService {
private final SysMenuMapper baseMapper;
private final SysRoleMapper roleMapper;
private final SysRoleMenuMapper roleMenuMapper;
private final SysTenantPackageMapper sysTenantPackageMapper;
/**
* 根据用户查询系统菜单列表
@ -157,7 +159,9 @@ public class SysMenuServiceImpl implements ISysMenuService {
*/
@Override
public List<Long> selectMenuListByTenantPackageId(Long packageId) {
return baseMapper.selectMenuListByTenantPackageId(packageId);
String menuIds = sysTenantPackageMapper.selectMenuIds(packageId);
return StringUtils.isNotBlank(menuIds)
? baseMapper.selectMenuListByTenantPackageMenuId(menuIds) : new ArrayList<>();
}
/**

View File

@ -1,6 +1,7 @@
package com.ruoyi.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.mybatis.core.page.TableDataInfo;
import com.ruoyi.common.mybatis.core.page.PageQuery;
@ -16,6 +17,7 @@ import com.ruoyi.system.mapper.SysTenantPackageMapper;
import com.ruoyi.system.service.ISysTenantPackageService;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Collection;
@ -74,6 +76,13 @@ public class SysTenantPackageServiceImpl implements ISysTenantPackageService {
public Boolean insertByBo(SysTenantPackageBo bo) {
SysTenantPackage add = BeanUtil.toBean(bo, SysTenantPackage.class);
validEntityBeforeSave(add);
// 保存菜单id
List<Long> menuIds = Arrays.asList(bo.getMenuIds());
if (CollUtil.isNotEmpty(menuIds)) {
add.setMenuIds(StringUtils.join(menuIds, ", "));
} else {
add.setMenuIds("");
}
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setPackageId(add.getPackageId());
@ -89,6 +98,13 @@ public class SysTenantPackageServiceImpl implements ISysTenantPackageService {
public Boolean updateByBo(SysTenantPackageBo bo) {
SysTenantPackage update = BeanUtil.toBean(bo, SysTenantPackage.class);
validEntityBeforeSave(update);
// 保存菜单id
List<Long> menuIds = Arrays.asList(bo.getMenuIds());
if (CollUtil.isNotEmpty(menuIds)) {
update.setMenuIds(StringUtils.join(menuIds, ", "));
} else {
update.setMenuIds("");
}
return baseMapper.updateById(update) > 0;
}

View File

@ -82,8 +82,10 @@
where m.status = '0' and rm.role_id = #{roleId}
</select>
<select id="selectMenuListByTenantPackageId" resultType="java.lang.Long">
<select id="selectMenuListByTenantPackageMenuId" resultType="java.lang.Long">
select m.menu_id
from sys_menu m
where m.menu_id in (${menuIds})
</select>
</mapper>

View File

@ -4,4 +4,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.SysTenantPackageMapper">
<select id="selectMenuIds" resultType="java.lang.String">
SELECT menu_ids
FROM sys_tenant_package
WHERE package_id = #{packageId}
</select>
</mapper>

View File

@ -247,6 +247,11 @@ export default {
},
//
reset() {
if (this.$refs.menu != undefined) {
this.$refs.menu.setCheckedKeys([]);
}
this.menuExpand = false;
this.menuNodeAll = false;
this.form = {
packageId: undefined,
packageName: undefined,
@ -335,6 +340,7 @@ export default {
if (valid) {
this.buttonLoading = true;
if (this.form.packageId != null) {
this.form.menuIds = this.getMenuAllCheckedKeys();
updateTenantPackage(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
@ -343,6 +349,7 @@ export default {
this.buttonLoading = false;
});
} else {
this.form.menuIds = this.getMenuAllCheckedKeys();
addTenantPackage(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;

View File

@ -56,17 +56,18 @@ insert into sys_tenant values(1, '000000', '管理组', '15888888888', 'XXX有
-- 租户套餐表
-- ----------------------------
create table sys_tenant_package (
package_id number(20) not null,
package_name varchar2(20) default '',
menu_ids varchar2(3000) default '',
remark varchar2(200) default '',
status char(1) default '0',
del_flag char(1) default '0',
create_dept number(20) default null,
create_by number(20) default null,
create_time date,
update_by number(20) default null,
update_time date
package_id number(20) not null,
package_name varchar2(20) default '',
menu_ids varchar2(3000) default '',
remark varchar2(200) default '',
menu_check_strictly number(1) default 1,
status char(1) default '0',
del_flag char(1) default '0',
create_dept number(20) default null,
create_by number(20) default null,
create_time date,
update_by number(20) default null,
update_time date
);
alter table sys_tenant_package add constraint pk_sys_tenant_package primary key (package_id);

View File

@ -61,17 +61,18 @@ insert into sys_tenant values(1, '000000', '管理组', '15888888888', 'XXX有
drop table if exists sys_tenant_package;
create table if not exists sys_tenant_package
(
package_id int8,
package_name varchar(20) default ''::varchar,
menu_ids varchar(3000) default ''::varchar,
remark varchar(200) default ''::varchar,
status char default '0'::bpchar,
del_flag char default '0'::bpchar,
create_dept int8,
create_by int8,
create_time timestamp,
update_by int8,
update_time timestamp,
package_id int8,
package_name varchar(20) default ''::varchar,
menu_ids varchar(3000) default ''::varchar,
remark varchar(200) default ''::varchar,
menu_check_strictly bool default true,
status char default '0'::bpchar,
del_flag char default '0'::bpchar,
create_dept int8,
create_by int8,
create_time timestamp,
update_by int8,
update_time timestamp,
constraint "pk_sys_tenant_package" primary key (package_id)
);

View File

@ -39,17 +39,18 @@ insert into sys_tenant values(1, '000000', '管理组', '15888888888', 'XXX有
-- ----------------------------
drop table if exists sys_tenant_package;
create table sys_tenant_package (
package_id bigint(20) not null comment '租户套餐id',
package_name varchar(20) comment '套餐名称',
menu_ids varchar(3000) comment '关联菜单id',
remark varchar(200) comment '备注',
status char(1) default '0' comment '状态0正常 1停用',
del_flag char(1) default '0' comment '删除标志0代表存在 2代表删除',
create_dept bigint(20) comment '创建部门',
create_by bigint(20) comment '创建者',
create_time datetime comment '创建时间',
update_by bigint(20) comment '更新者',
update_time datetime comment '更新时间',
package_id bigint(20) not null comment '租户套餐id',
package_name varchar(20) comment '套餐名称',
menu_ids varchar(3000) comment '关联菜单id',
remark varchar(200) comment '备注',
menu_check_strictly tinyint(1) default 1 comment '菜单树选择项是否关联显示',
status char(1) default '0' comment '状态0正常 1停用',
del_flag char(1) default '0' comment '删除标志0代表存在 2代表删除',
create_dept bigint(20) comment '创建部门',
create_by bigint(20) comment '创建者',
create_time datetime comment '创建时间',
update_by bigint(20) comment '更新者',
update_time datetime comment '更新时间',
primary key (package_id)
) engine=innodb comment = '租户套餐表';

View File

@ -156,6 +156,7 @@ CREATE TABLE [sys_tenant_package]
[package_name] nvarchar(20) NOT NULL,
[menu_ids] nvarchar(20) NULL,
[remark] nvarchar(200) NULL,
[menu_check_strictly] tinyint DEFAULT ((1)) NULL,
[status] nchar(1) DEFAULT ('0') NULL,
[del_flag] nchar(1) DEFAULT ('0') NULL,
[create_dept] bigint NULL,