mirror of https://gitee.com/stylefeng/roses
【menu】更新菜单和按钮的逻辑
parent
31e5d2d12f
commit
5c7d5159d5
|
@ -11,17 +11,11 @@ import cn.stylefeng.roses.kernel.system.constants.SystemConstants;
|
||||||
* @date 2021/1/9 11:32
|
* @date 2021/1/9 11:32
|
||||||
*/
|
*/
|
||||||
public enum SysMenuButtonExceptionEnum implements AbstractExceptionEnum {
|
public enum SysMenuButtonExceptionEnum implements AbstractExceptionEnum {
|
||||||
/**
|
|
||||||
* 按钮code重复
|
|
||||||
*/
|
|
||||||
BUTTON_CODE_REPEAT(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "90", "按钮code重复,请检查buttonCode参数"),
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 菜单按钮不存在
|
* 菜单按钮不存在
|
||||||
*/
|
*/
|
||||||
MENU_BUTTON_NOT_EXIST(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "91", "菜单按钮不存在"),
|
MENU_BUTTON_NOT_EXIST(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "91", "菜单按钮不存在");
|
||||||
|
|
||||||
;
|
|
||||||
|
|
||||||
private final String errorCode;
|
private final String errorCode;
|
||||||
|
|
||||||
|
|
|
@ -20,52 +20,7 @@ public enum SysMenuExceptionEnum implements AbstractExceptionEnum {
|
||||||
/**
|
/**
|
||||||
* 菜单不存在
|
* 菜单不存在
|
||||||
*/
|
*/
|
||||||
MENU_NOT_EXIST(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "81", "菜单不存在"),
|
MENU_NOT_EXIST(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "81", "菜单不存在");
|
||||||
|
|
||||||
/**
|
|
||||||
* 菜单编码重复
|
|
||||||
*/
|
|
||||||
MENU_CODE_REPEAT(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "82", "菜单编码重复,请检查code参数"),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 菜单名称重复
|
|
||||||
*/
|
|
||||||
MENU_NAME_REPEAT(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "83", "菜单名称重复,请检查name参数"),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 路由地址为空
|
|
||||||
*/
|
|
||||||
MENU_ROUTER_EMPTY(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "84", "路由地址为空,请检查router参数"),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 组件地址为空
|
|
||||||
*/
|
|
||||||
MENU_COMPONENT_EMPTY(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "85", "组件地址为空,请检查component参数"),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 打开方式为空
|
|
||||||
*/
|
|
||||||
MENU_OPEN_TYPE_EMPTY(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "86", "打开方式为空,请检查openType参数"),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 权限标识格式为空
|
|
||||||
*/
|
|
||||||
MENU_PERMISSION_EMPTY(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "87", "权限标识为空,请检查permission参数"),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 权限标识格式错误
|
|
||||||
*/
|
|
||||||
MENU_PERMISSION_ERROR(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "88", "权限标识格式错误,请检查permission参数"),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 权限不存在
|
|
||||||
*/
|
|
||||||
MENU_PERMISSION_NOT_EXIST(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "89", "权限不存在,请检查permission参数"),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 父级菜单不能为当前节点,请从新选择父级菜单
|
|
||||||
*/
|
|
||||||
PID_CANT_EQ_ID(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "811", "父级菜单不能为当前节点,请从新选择父级菜单");
|
|
||||||
|
|
||||||
private final String errorCode;
|
private final String errorCode;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package cn.stylefeng.roses.kernel.system.pojo.menu;
|
package cn.stylefeng.roses.kernel.system.pojo.menu;
|
||||||
|
|
||||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||||
|
import cn.stylefeng.roses.kernel.validator.validators.unique.TableUniqueValue;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
@ -47,6 +48,13 @@ public class SysMenuButtonRequest extends BaseRequest {
|
||||||
* 按钮的编码
|
* 按钮的编码
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "按钮编码不能为空,请检查buttonCode参数", groups = {add.class, edit.class})
|
@NotBlank(message = "按钮编码不能为空,请检查buttonCode参数", groups = {add.class, edit.class})
|
||||||
|
@TableUniqueValue(
|
||||||
|
message = "按钮编码存在重复",
|
||||||
|
groups = {add.class, edit.class},
|
||||||
|
tableName = "sys_menu_button",
|
||||||
|
columnName = "button_code",
|
||||||
|
idFieldName = "button_id",
|
||||||
|
excludeLogicDeleteItems = true)
|
||||||
private String buttonCode;
|
private String buttonCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
package cn.stylefeng.roses.kernel.system.pojo.menu;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 系统菜单按钮响应实体
|
|
||||||
*
|
|
||||||
* @author luojie
|
|
||||||
* @date 2021/1/9 11:19
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class SysMenuButtonResponse implements Serializable {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 6909784065876106042L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 主键
|
|
||||||
*/
|
|
||||||
private Long buttonId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 菜单id,按钮需要挂在菜单下
|
|
||||||
*/
|
|
||||||
private Long menuId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 按钮的名称
|
|
||||||
*/
|
|
||||||
private String buttonName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 按钮的编码
|
|
||||||
*/
|
|
||||||
private String buttonCode;
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,6 +1,7 @@
|
||||||
package cn.stylefeng.roses.kernel.menu.modular.controller;
|
package cn.stylefeng.roses.kernel.menu.modular.controller;
|
||||||
|
|
||||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||||
|
import cn.stylefeng.roses.kernel.menu.modular.entity.SysMenuButton;
|
||||||
import cn.stylefeng.roses.kernel.menu.modular.service.SysMenuButtonService;
|
import cn.stylefeng.roses.kernel.menu.modular.service.SysMenuButtonService;
|
||||||
import cn.stylefeng.roses.kernel.resource.api.annotation.ApiResource;
|
import cn.stylefeng.roses.kernel.resource.api.annotation.ApiResource;
|
||||||
import cn.stylefeng.roses.kernel.resource.api.annotation.GetResource;
|
import cn.stylefeng.roses.kernel.resource.api.annotation.GetResource;
|
||||||
|
@ -8,7 +9,6 @@ import cn.stylefeng.roses.kernel.resource.api.annotation.PostResource;
|
||||||
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
||||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||||
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuButtonRequest;
|
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuButtonRequest;
|
||||||
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuButtonResponse;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
@ -50,7 +50,7 @@ public class SysMenuButtonController {
|
||||||
*/
|
*/
|
||||||
@GetResource(name = "获取菜单按钮详情", path = "/sysMenuButton/detail")
|
@GetResource(name = "获取菜单按钮详情", path = "/sysMenuButton/detail")
|
||||||
public ResponseData detail(@Validated(SysMenuButtonRequest.detail.class) SysMenuButtonRequest sysMenuButtonRequest) {
|
public ResponseData detail(@Validated(SysMenuButtonRequest.detail.class) SysMenuButtonRequest sysMenuButtonRequest) {
|
||||||
SysMenuButtonResponse detail = sysMenuButtonService.detail(sysMenuButtonRequest);
|
SysMenuButton detail = sysMenuButtonService.detail(sysMenuButtonRequest);
|
||||||
return new SuccessResponseData(detail);
|
return new SuccessResponseData(detail);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ public class SysMenuButtonController {
|
||||||
*/
|
*/
|
||||||
@GetResource(name = "获取菜单按钮列表", path = "/sysMenuButton/pageList")
|
@GetResource(name = "获取菜单按钮列表", path = "/sysMenuButton/pageList")
|
||||||
public ResponseData pageList(@Validated(SysMenuButtonRequest.list.class) SysMenuButtonRequest sysMenuButtonRequest) {
|
public ResponseData pageList(@Validated(SysMenuButtonRequest.list.class) SysMenuButtonRequest sysMenuButtonRequest) {
|
||||||
PageResult<SysMenuButtonResponse> pageResult = sysMenuButtonService.pageList(sysMenuButtonRequest);
|
PageResult<SysMenuButton> pageResult = sysMenuButtonService.pageList(sysMenuButtonRequest);
|
||||||
return new SuccessResponseData(pageResult);
|
return new SuccessResponseData(pageResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@ package cn.stylefeng.roses.kernel.menu.modular.service;
|
||||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||||
import cn.stylefeng.roses.kernel.menu.modular.entity.SysMenuButton;
|
import cn.stylefeng.roses.kernel.menu.modular.entity.SysMenuButton;
|
||||||
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuButtonRequest;
|
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuButtonRequest;
|
||||||
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuButtonResponse;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -31,7 +30,7 @@ public interface SysMenuButtonService extends IService<SysMenuButton> {
|
||||||
* @author luojie
|
* @author luojie
|
||||||
* @date 2021/1/9 11:53
|
* @date 2021/1/9 11:53
|
||||||
*/
|
*/
|
||||||
SysMenuButtonResponse detail(SysMenuButtonRequest sysMenuButtonRequest);
|
SysMenuButton detail(SysMenuButtonRequest sysMenuButtonRequest);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编辑系统菜单按钮
|
* 编辑系统菜单按钮
|
||||||
|
@ -68,7 +67,7 @@ public interface SysMenuButtonService extends IService<SysMenuButton> {
|
||||||
* @author luojie
|
* @author luojie
|
||||||
* @date 2021/1/9 12:53
|
* @date 2021/1/9 12:53
|
||||||
*/
|
*/
|
||||||
PageResult<SysMenuButtonResponse> pageList(SysMenuButtonRequest sysMenuButtonRequest);
|
PageResult<SysMenuButton> pageList(SysMenuButtonRequest sysMenuButtonRequest);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据菜单id删除该菜单下的所有按钮
|
* 根据菜单id删除该菜单下的所有按钮
|
||||||
|
@ -78,4 +77,5 @@ public interface SysMenuButtonService extends IService<SysMenuButton> {
|
||||||
* @date 2021/1/9 14:45
|
* @date 2021/1/9 14:45
|
||||||
*/
|
*/
|
||||||
void deleteMenuButtonByMenuId(Long menuId);
|
void deleteMenuButtonByMenuId(Long menuId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,17 +7,14 @@ import cn.hutool.core.util.StrUtil;
|
||||||
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
|
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
|
||||||
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
||||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||||
import cn.stylefeng.roses.kernel.menu.modular.entity.SysMenu;
|
|
||||||
import cn.stylefeng.roses.kernel.menu.modular.entity.SysMenuButton;
|
import cn.stylefeng.roses.kernel.menu.modular.entity.SysMenuButton;
|
||||||
import cn.stylefeng.roses.kernel.menu.modular.mapper.SysMenuButtonMapper;
|
import cn.stylefeng.roses.kernel.menu.modular.mapper.SysMenuButtonMapper;
|
||||||
import cn.stylefeng.roses.kernel.menu.modular.service.SysMenuButtonService;
|
import cn.stylefeng.roses.kernel.menu.modular.service.SysMenuButtonService;
|
||||||
import cn.stylefeng.roses.kernel.menu.modular.service.SysMenuService;
|
import cn.stylefeng.roses.kernel.menu.modular.service.SysMenuService;
|
||||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
import cn.stylefeng.roses.kernel.system.exception.SystemModularException;
|
||||||
import cn.stylefeng.roses.kernel.system.exception.enums.SysMenuButtonExceptionEnum;
|
import cn.stylefeng.roses.kernel.system.exception.enums.SysMenuButtonExceptionEnum;
|
||||||
import cn.stylefeng.roses.kernel.system.exception.enums.SysMenuExceptionEnum;
|
|
||||||
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuButtonRequest;
|
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuButtonRequest;
|
||||||
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuButtonResponse;
|
|
||||||
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuRequest;
|
import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuRequest;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
@ -26,9 +23,7 @@ import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 系统菜单按钮service接口实现类
|
* 系统菜单按钮service接口实现类
|
||||||
|
@ -46,80 +41,57 @@ public class SysMenuButtonServiceImpl extends ServiceImpl<SysMenuButtonMapper, S
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void add(SysMenuButtonRequest sysMenuButtonRequest) {
|
public void add(SysMenuButtonRequest sysMenuButtonRequest) {
|
||||||
|
|
||||||
Long menuId = sysMenuButtonRequest.getMenuId();
|
// 判断菜单是否存在
|
||||||
|
findMenuExist(sysMenuButtonRequest.getMenuId());
|
||||||
// 根据传过来的菜单id查询是否存在
|
|
||||||
findMenuExist(menuId);
|
|
||||||
|
|
||||||
// 查询菜单按钮code是否存在
|
|
||||||
findMenuButtonCodeExist(sysMenuButtonRequest);
|
|
||||||
|
|
||||||
SysMenuButton sysMenuButton = new SysMenuButton();
|
SysMenuButton sysMenuButton = new SysMenuButton();
|
||||||
BeanUtil.copyProperties(sysMenuButtonRequest, sysMenuButton);
|
BeanUtil.copyProperties(sysMenuButtonRequest, sysMenuButton);
|
||||||
|
|
||||||
// 设置未删除
|
// 设置未删除
|
||||||
sysMenuButton.setDelFlag(YesOrNotEnum.N.getCode());
|
sysMenuButton.setDelFlag(YesOrNotEnum.N.getCode());
|
||||||
|
|
||||||
this.save(sysMenuButton);
|
this.save(sysMenuButton);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SysMenuButtonResponse detail(SysMenuButtonRequest sysMenuButtonRequest) {
|
public SysMenuButton detail(SysMenuButtonRequest sysMenuButtonRequest) {
|
||||||
// 构建查询条件 查询未删除的按钮
|
return this.queryButton(sysMenuButtonRequest);
|
||||||
LambdaQueryWrapper<SysMenuButton> lqw = new LambdaQueryWrapper<>();
|
|
||||||
lqw.eq(SysMenuButton::getButtonId, sysMenuButtonRequest.getButtonId());
|
|
||||||
lqw.eq(SysMenuButton::getDelFlag, YesOrNotEnum.N.getCode());
|
|
||||||
lqw.last("LIMIT 1");
|
|
||||||
|
|
||||||
SysMenuButton sysMenuButton = this.getOne(lqw);
|
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(sysMenuButton)) {
|
|
||||||
throw new ServiceException(SysMenuButtonExceptionEnum.MENU_BUTTON_NOT_EXIST);
|
|
||||||
}
|
|
||||||
|
|
||||||
SysMenuButtonResponse response = new SysMenuButtonResponse();
|
|
||||||
BeanUtil.copyProperties(sysMenuButton, response);
|
|
||||||
return response;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void edit(SysMenuButtonRequest sysMenuButtonRequest) {
|
public void edit(SysMenuButtonRequest sysMenuButtonRequest) {
|
||||||
Long menuId = sysMenuButtonRequest.getMenuId();
|
|
||||||
|
|
||||||
// 查询按钮是否存在
|
// 查询按钮所属菜单是否存在
|
||||||
this.detail(sysMenuButtonRequest);
|
findMenuExist(sysMenuButtonRequest.getMenuId());
|
||||||
|
|
||||||
// 根据传过来的菜单id查询是否存在
|
SysMenuButton button = this.queryButton(sysMenuButtonRequest);
|
||||||
findMenuExist(menuId);
|
BeanUtil.copyProperties(sysMenuButtonRequest, button);
|
||||||
|
|
||||||
SysMenuButton sysMenuButton = new SysMenuButton();
|
|
||||||
BeanUtil.copyProperties(sysMenuButtonRequest, sysMenuButton);
|
|
||||||
// 不更新删除状态
|
// 不更新删除状态
|
||||||
sysMenuButton.setDelFlag(null);
|
button.setDelFlag(null);
|
||||||
// 不更新所属菜单id
|
|
||||||
sysMenuButton.setMenuId(null);
|
|
||||||
// 不更新菜单code
|
|
||||||
sysMenuButton.setButtonCode(null);
|
|
||||||
|
|
||||||
this.updateById(sysMenuButton);
|
// 不更新所属菜单id
|
||||||
|
button.setMenuId(null);
|
||||||
|
|
||||||
|
// 不更新菜单code
|
||||||
|
button.setButtonCode(null);
|
||||||
|
|
||||||
|
this.updateById(button);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void delete(SysMenuButtonRequest sysMenuButtonRequest) {
|
public void delete(SysMenuButtonRequest sysMenuButtonRequest) {
|
||||||
// 查询按钮是否存在
|
|
||||||
this.detail(sysMenuButtonRequest);
|
|
||||||
|
|
||||||
// 查询条件
|
// 查询按钮
|
||||||
LambdaQueryWrapper<SysMenuButton> lqw = new LambdaQueryWrapper<>();
|
SysMenuButton button = this.queryButton(sysMenuButtonRequest);
|
||||||
lqw.eq(SysMenuButton::getButtonId, sysMenuButtonRequest.getButtonId());
|
|
||||||
lqw.eq(SysMenuButton::getDelFlag, YesOrNotEnum.N.getCode());
|
|
||||||
|
|
||||||
// 设置为删除状态
|
// 设置为删除状态
|
||||||
SysMenuButton entity = new SysMenuButton();
|
button.setDelFlag(YesOrNotEnum.Y.getCode());
|
||||||
entity.setDelFlag(YesOrNotEnum.Y.getCode());
|
|
||||||
|
|
||||||
this.update(entity, lqw);
|
this.updateById(button);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -128,29 +100,20 @@ public class SysMenuButtonServiceImpl extends ServiceImpl<SysMenuButtonMapper, S
|
||||||
Set<Long> buttonIds = sysMenuButtonRequest.getButtonIds();
|
Set<Long> buttonIds = sysMenuButtonRequest.getButtonIds();
|
||||||
if (ArrayUtil.isNotEmpty(buttonIds)) {
|
if (ArrayUtil.isNotEmpty(buttonIds)) {
|
||||||
// 查询条件
|
// 查询条件
|
||||||
LambdaQueryWrapper<SysMenuButton> lqw = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SysMenuButton> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
lqw.in(SysMenuButton::getButtonId, buttonIds);
|
lambdaQueryWrapper.in(SysMenuButton::getButtonId, buttonIds);
|
||||||
lqw.eq(SysMenuButton::getDelFlag, YesOrNotEnum.N.getCode());
|
lambdaQueryWrapper.eq(SysMenuButton::getDelFlag, YesOrNotEnum.N.getCode());
|
||||||
|
|
||||||
// 设置为删除状态
|
// 设置为删除状态
|
||||||
SysMenuButton entity = new SysMenuButton();
|
SysMenuButton entity = new SysMenuButton();
|
||||||
entity.setDelFlag(YesOrNotEnum.Y.getCode());
|
entity.setDelFlag(YesOrNotEnum.Y.getCode());
|
||||||
|
|
||||||
this.update(entity, lqw);
|
this.update(entity, lambdaQueryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 分页获取菜单按钮列表
|
|
||||||
*
|
|
||||||
* @param sysMenuButtonRequest 菜单id
|
|
||||||
* @return 菜单按钮列表
|
|
||||||
* @author luojie
|
|
||||||
* @date 2021/1/9 12:53
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<SysMenuButtonResponse> pageList(SysMenuButtonRequest sysMenuButtonRequest) {
|
public PageResult<SysMenuButton> pageList(SysMenuButtonRequest sysMenuButtonRequest) {
|
||||||
String buttonName = sysMenuButtonRequest.getButtonName();
|
String buttonName = sysMenuButtonRequest.getButtonName();
|
||||||
|
|
||||||
// 构造查询条件 根据菜单id查询菜单按钮列表
|
// 构造查询条件 根据菜单id查询菜单按钮列表
|
||||||
|
@ -162,27 +125,9 @@ public class SysMenuButtonServiceImpl extends ServiceImpl<SysMenuButtonMapper, S
|
||||||
wrapper.eq(SysMenuButton::getDelFlag, YesOrNotEnum.N.getCode());
|
wrapper.eq(SysMenuButton::getDelFlag, YesOrNotEnum.N.getCode());
|
||||||
Page<SysMenuButton> page = this.page(PageFactory.defaultPage(), wrapper);
|
Page<SysMenuButton> page = this.page(PageFactory.defaultPage(), wrapper);
|
||||||
|
|
||||||
// 实体转换
|
return PageResultFactory.createPageResult(page);
|
||||||
List<SysMenuButton> sysButtonList = page.getRecords();
|
|
||||||
List<SysMenuButtonResponse> sysButtonResponseList = sysButtonList.stream().map(b -> {
|
|
||||||
SysMenuButtonResponse sysButtonResponse = new SysMenuButtonResponse();
|
|
||||||
BeanUtil.copyProperties(b, sysButtonResponse);
|
|
||||||
return sysButtonResponse;
|
|
||||||
}).collect(Collectors.toList());
|
|
||||||
|
|
||||||
PageResult<SysMenuButtonResponse> pageResult = new PageResult<>();
|
|
||||||
BeanUtil.copyProperties(PageResultFactory.createPageResult(page), pageResult);
|
|
||||||
pageResult.setRows(sysButtonResponseList);
|
|
||||||
return pageResult;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据菜单id删除该菜单下的所有按钮
|
|
||||||
*
|
|
||||||
* @param menuId 菜单id
|
|
||||||
* @author luojie
|
|
||||||
* @date 2021/1/9 14:45
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void deleteMenuButtonByMenuId(Long menuId) {
|
public void deleteMenuButtonByMenuId(Long menuId) {
|
||||||
|
@ -204,42 +149,30 @@ public class SysMenuButtonServiceImpl extends ServiceImpl<SysMenuButtonMapper, S
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询菜单是否存在
|
* 查询菜单是否存在,为空会抛出异常
|
||||||
*
|
*
|
||||||
* @param menuId 菜单id
|
* @param menuId 菜单id
|
||||||
* @author luojie
|
* @author luojie
|
||||||
* @date 2021/1/9 12:10
|
* @date 2021/1/9 12:10
|
||||||
*/
|
*/
|
||||||
public void findMenuExist(Long menuId) {
|
private void findMenuExist(Long menuId) {
|
||||||
// 根据传过来的菜单id查询是否存在
|
|
||||||
SysMenuRequest sysMenuRequest = new SysMenuRequest();
|
SysMenuRequest sysMenuRequest = new SysMenuRequest();
|
||||||
sysMenuRequest.setMenuId(menuId);
|
sysMenuRequest.setMenuId(menuId);
|
||||||
SysMenu sysMenu = sysMenuService.detail(sysMenuRequest);
|
sysMenuService.detail(sysMenuRequest);
|
||||||
if (ObjectUtil.isEmpty(sysMenu)) {
|
|
||||||
throw new ServiceException(SysMenuExceptionEnum.MENU_NOT_EXIST);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询菜单按钮code是否存在
|
* 获取按钮
|
||||||
*
|
*
|
||||||
* @param sysMenuButtonRequest 菜单按钮请求参数
|
* @author fengshuonan
|
||||||
* @author luojie
|
* @date 2020/3/27 9:13
|
||||||
* @date 2021/1/9 11:38
|
|
||||||
*/
|
*/
|
||||||
public void findMenuButtonCodeExist(SysMenuButtonRequest sysMenuButtonRequest) {
|
private SysMenuButton queryButton(SysMenuButtonRequest sysMenuButtonRequest) {
|
||||||
// 查询菜单按钮code是否存在
|
SysMenuButton button = this.getById(sysMenuButtonRequest.getButtonId());
|
||||||
LambdaQueryWrapper<SysMenuButton> wrapper = new LambdaQueryWrapper<>();
|
if (ObjectUtil.isNull(button) || YesOrNotEnum.Y.getCode().equals(button.getDelFlag())) {
|
||||||
wrapper.select(SysMenuButton::getButtonId);
|
throw new SystemModularException(SysMenuButtonExceptionEnum.MENU_BUTTON_NOT_EXIST);
|
||||||
wrapper.eq(SysMenuButton::getButtonCode, sysMenuButtonRequest.getButtonCode());
|
|
||||||
wrapper.eq(SysMenuButton::getDelFlag, YesOrNotEnum.N.getCode());
|
|
||||||
if (ObjectUtil.isNotEmpty(sysMenuButtonRequest.getButtonId())) {
|
|
||||||
wrapper.ne(SysMenuButton::getButtonId, sysMenuButtonRequest.getButtonId());
|
|
||||||
}
|
|
||||||
wrapper.last("LIMIT 1");
|
|
||||||
SysMenuButton button = getOne(wrapper);
|
|
||||||
if (ObjectUtil.isNotEmpty(button)) {
|
|
||||||
throw new ServiceException(SysMenuButtonExceptionEnum.BUTTON_CODE_REPEAT);
|
|
||||||
}
|
}
|
||||||
|
return button;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -346,7 +346,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||||
*/
|
*/
|
||||||
private SysMenu querySysMenu(SysMenuRequest sysMenuRequest) {
|
private SysMenu querySysMenu(SysMenuRequest sysMenuRequest) {
|
||||||
SysMenu sysMenu = this.getById(sysMenuRequest.getMenuId());
|
SysMenu sysMenu = this.getById(sysMenuRequest.getMenuId());
|
||||||
if (ObjectUtil.isNull(sysMenu)) {
|
if (ObjectUtil.isNull(sysMenu) || YesOrNotEnum.Y.getCode().equals(sysMenu.getDelFlag())) {
|
||||||
throw new ServiceException(SysMenuExceptionEnum.MENU_NOT_EXIST);
|
throw new ServiceException(SysMenuExceptionEnum.MENU_NOT_EXIST);
|
||||||
}
|
}
|
||||||
return sysMenu;
|
return sysMenu;
|
||||||
|
|
Loading…
Reference in New Issue