fit():修改sysMenu菜单新增,修改ddd模型
parent
11d790a0f4
commit
b813bf2c6e
|
@ -88,7 +88,7 @@ public class SysLogininforController extends BaseController {
|
||||||
return success();
|
return success();
|
||||||
}
|
}
|
||||||
|
|
||||||
@InnerAuth
|
/*@InnerAuth*/
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public Result add (@RequestBody SysLogininforAddReq logininforAddReq) {
|
public Result add (@RequestBody SysLogininforAddReq logininforAddReq) {
|
||||||
logininforService.insertLogininfor(SysLogininforAddModel.of(logininforAddReq));
|
logininforService.insertLogininfor(SysLogininforAddModel.of(logininforAddReq));
|
||||||
|
|
|
@ -9,8 +9,12 @@ import com.muyu.common.log.enums.BusinessType;
|
||||||
import com.muyu.common.security.annotation.RequiresPermissions;
|
import com.muyu.common.security.annotation.RequiresPermissions;
|
||||||
import com.muyu.common.security.utils.SecurityUtils;
|
import com.muyu.common.security.utils.SecurityUtils;
|
||||||
import com.muyu.system.domain.SysMenu;
|
import com.muyu.system.domain.SysMenu;
|
||||||
|
import com.muyu.system.domain.model.SysMenuAddModel;
|
||||||
import com.muyu.system.domain.model.SysMenuListModel;
|
import com.muyu.system.domain.model.SysMenuListModel;
|
||||||
|
import com.muyu.system.domain.model.SysMenuUpdModel;
|
||||||
|
import com.muyu.system.domain.rep.SysMenuAddReq;
|
||||||
import com.muyu.system.domain.rep.SysMenuListReq;
|
import com.muyu.system.domain.rep.SysMenuListReq;
|
||||||
|
import com.muyu.system.domain.rep.SysMenuUpdReq;
|
||||||
import com.muyu.system.domain.resp.RoleMenuTreeResp;
|
import com.muyu.system.domain.resp.RoleMenuTreeResp;
|
||||||
import com.muyu.system.domain.resp.SysMenuListResp;
|
import com.muyu.system.domain.resp.SysMenuListResp;
|
||||||
import com.muyu.system.service.SysMenuService;
|
import com.muyu.system.service.SysMenuService;
|
||||||
|
@ -84,14 +88,16 @@ public class SysMenuController extends BaseController {
|
||||||
@RequiresPermissions("system:menu:add")
|
@RequiresPermissions("system:menu:add")
|
||||||
@Log(title = "菜单管理", businessType = BusinessType.INSERT)
|
@Log(title = "菜单管理", businessType = BusinessType.INSERT)
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public Result add (@Validated @RequestBody SysMenu menu) {
|
public Result add (@Validated @RequestBody SysMenuAddReq sysMenuAddReq) {
|
||||||
if (!menuService.checkMenuNameUnique(menu)) {
|
SysMenuAddModel sysMenuAddModel = SysMenuAddModel.of(sysMenuAddReq);
|
||||||
return error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
|
if (!menuService.checkMenuNameUnique(sysMenuAddModel)) {
|
||||||
} else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) {
|
return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败,菜单名称已存在");
|
||||||
return error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");
|
} else if (UserConstants.YES_FRAME.equals(sysMenuAddModel.getIsFrame()) && !StringUtils.ishttp(sysMenuAddModel.getPath())) {
|
||||||
|
return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败,地址必须以http(s)://开头");
|
||||||
}
|
}
|
||||||
|
SysMenu menu = SysMenu.buildSysMenu(sysMenuAddReq);
|
||||||
menu.setCreateBy(SecurityUtils.getUsername());
|
menu.setCreateBy(SecurityUtils.getUsername());
|
||||||
menuService.insertMenu(menu);
|
menuService.insertMenu(SysMenuAddModel.of(sysMenuAddReq));
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -101,16 +107,17 @@ public class SysMenuController extends BaseController {
|
||||||
@RequiresPermissions("system:menu:edit")
|
@RequiresPermissions("system:menu:edit")
|
||||||
@Log(title = "菜单管理", businessType = BusinessType.UPDATE)
|
@Log(title = "菜单管理", businessType = BusinessType.UPDATE)
|
||||||
@PutMapping
|
@PutMapping
|
||||||
public Result edit (@Validated @RequestBody SysMenu menu) {
|
public Result edit (@Validated @RequestBody SysMenuUpdReq sysMenuUpdReq) {
|
||||||
if (!menuService.checkMenuNameUnique(menu)) {
|
SysMenuAddModel sysMenuAddModel = SysMenuAddModel.buildSysMenuAddModel(sysMenuUpdReq);
|
||||||
return error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
|
if (!menuService.checkMenuNameUnique(sysMenuAddModel)) {
|
||||||
} else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) {
|
return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败,菜单名称已存在");
|
||||||
return error("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");
|
} else if (UserConstants.YES_FRAME.equals(sysMenuAddModel.getIsFrame()) && !StringUtils.ishttp(sysMenuAddModel.getPath())) {
|
||||||
} else if (menu.getMenuId().equals(menu.getParentId())) {
|
return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败,地址必须以http(s)://开头");
|
||||||
return error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己");
|
|
||||||
}
|
}
|
||||||
|
SysMenu menu = SysMenu.buildSysMenu(sysMenuAddModel);
|
||||||
|
menu.setCreateBy(SecurityUtils.getUsername());
|
||||||
menu.setUpdateBy(SecurityUtils.getUsername());
|
menu.setUpdateBy(SecurityUtils.getUsername());
|
||||||
menuService.updateMenu(menu);
|
menuService.updateMenu(SysMenuUpdModel.of(sysMenuUpdReq));
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,10 @@ import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.muyu.common.core.web.domain.BaseEntity;
|
import com.muyu.common.core.web.domain.BaseEntity;
|
||||||
|
import com.muyu.system.domain.model.SysMenuAddModel;
|
||||||
import com.muyu.system.domain.model.SysMenuListModel;
|
import com.muyu.system.domain.model.SysMenuListModel;
|
||||||
|
import com.muyu.system.domain.model.SysMenuUpdModel;
|
||||||
|
import com.muyu.system.domain.rep.SysMenuAddReq;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import jakarta.validation.constraints.Size;
|
import jakarta.validation.constraints.Size;
|
||||||
|
@ -123,6 +126,7 @@ public class SysMenu extends BaseEntity {
|
||||||
* 子菜单
|
* 子菜单
|
||||||
*/
|
*/
|
||||||
@Builder.Default
|
@Builder.Default
|
||||||
|
@TableField(exist = false)
|
||||||
private List<SysMenu> children = new ArrayList<SysMenu>();
|
private List<SysMenu> children = new ArrayList<SysMenu>();
|
||||||
|
|
||||||
@NotBlank(message = "菜单名称不能为空")
|
@NotBlank(message = "菜单名称不能为空")
|
||||||
|
@ -197,4 +201,65 @@ public class SysMenu extends BaseEntity {
|
||||||
.children(sysMenuListModel.getChildren())
|
.children(sysMenuListModel.getChildren())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static SysMenu buildSysMenu(SysMenuAddReq sysMenuAddReq) {
|
||||||
|
return SysMenu.builder()
|
||||||
|
.menuId(sysMenuAddReq.getMenuId())
|
||||||
|
.menuName(sysMenuAddReq.getMenuName())
|
||||||
|
.parentName(sysMenuAddReq.getParentName())
|
||||||
|
.parentId(sysMenuAddReq.getParentId())
|
||||||
|
.orderNum(sysMenuAddReq.getOrderNum())
|
||||||
|
.path(sysMenuAddReq.getPath())
|
||||||
|
.component(sysMenuAddReq.getComponent())
|
||||||
|
.query(sysMenuAddReq.getQuery())
|
||||||
|
.isFrame(sysMenuAddReq.getIsFrame())
|
||||||
|
.isCache(sysMenuAddReq.getIsCache())
|
||||||
|
.menuType(sysMenuAddReq.getMenuType())
|
||||||
|
.visible(sysMenuAddReq.getVisible())
|
||||||
|
.status(sysMenuAddReq.getStatus())
|
||||||
|
.perms(sysMenuAddReq.getPerms())
|
||||||
|
.icon(sysMenuAddReq.getIcon())
|
||||||
|
.children(sysMenuAddReq.getChildren())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SysMenu buildSysMenu(SysMenuAddModel sysMenuAddModel) {
|
||||||
|
return SysMenu.builder()
|
||||||
|
.menuName(sysMenuAddModel.getMenuName())
|
||||||
|
.parentId(sysMenuAddModel.getParentId())
|
||||||
|
.orderNum(sysMenuAddModel.getOrderNum())
|
||||||
|
.path(sysMenuAddModel.getPath())
|
||||||
|
.component(sysMenuAddModel.getComponent())
|
||||||
|
.query(sysMenuAddModel.getQuery())
|
||||||
|
.isFrame(sysMenuAddModel.getIsFrame())
|
||||||
|
.isCache(sysMenuAddModel.getIsCache())
|
||||||
|
.menuType(sysMenuAddModel.getMenuType())
|
||||||
|
.visible(sysMenuAddModel.getVisible())
|
||||||
|
.status(sysMenuAddModel.getStatus())
|
||||||
|
.perms(sysMenuAddModel.getPerms())
|
||||||
|
.icon(sysMenuAddModel.getIcon())
|
||||||
|
.children(sysMenuAddModel.getChildren())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SysMenu buildSysMenu(SysMenuUpdModel sysMenuUpdModel) {
|
||||||
|
return SysMenu.builder()
|
||||||
|
.menuId(sysMenuUpdModel.getMenuId())
|
||||||
|
.menuName(sysMenuUpdModel.getMenuName())
|
||||||
|
.parentId(sysMenuUpdModel.getParentId())
|
||||||
|
.orderNum(sysMenuUpdModel.getOrderNum())
|
||||||
|
.path(sysMenuUpdModel.getPath())
|
||||||
|
.component(sysMenuUpdModel.getComponent())
|
||||||
|
.query(sysMenuUpdModel.getQuery())
|
||||||
|
.isFrame(sysMenuUpdModel.getIsFrame())
|
||||||
|
.isCache(sysMenuUpdModel.getIsCache())
|
||||||
|
.menuType(sysMenuUpdModel.getMenuType())
|
||||||
|
.visible(sysMenuUpdModel.getVisible())
|
||||||
|
.status(sysMenuUpdModel.getStatus())
|
||||||
|
.perms(sysMenuUpdModel.getPerms())
|
||||||
|
.icon(sysMenuUpdModel.getIcon())
|
||||||
|
.children(sysMenuUpdModel.getChildren())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,140 @@
|
||||||
|
package com.muyu.system.domain.model;
|
||||||
|
|
||||||
|
import com.muyu.system.domain.SysMenu;
|
||||||
|
import com.muyu.system.domain.rep.SysMenuAddReq;
|
||||||
|
import com.muyu.system.domain.rep.SysMenuUpdReq;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: 菜单添加模型
|
||||||
|
* @author yangchoashun
|
||||||
|
* @date 2025/2/23 17:24
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SysMenuAddModel {
|
||||||
|
/**
|
||||||
|
* 菜单ID
|
||||||
|
*/
|
||||||
|
private Long menuId;
|
||||||
|
/**
|
||||||
|
* 菜单名称
|
||||||
|
*/
|
||||||
|
private String menuName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 父菜单ID
|
||||||
|
*/
|
||||||
|
|
||||||
|
private Long parentId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 显示顺序
|
||||||
|
*/
|
||||||
|
private Integer orderNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 路由地址
|
||||||
|
*/
|
||||||
|
private String path;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组件路径
|
||||||
|
*/
|
||||||
|
private String component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 路由参数
|
||||||
|
*/
|
||||||
|
private String query;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否为外链(0是 1否)
|
||||||
|
*/
|
||||||
|
private String isFrame;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否缓存(0缓存 1不缓存)
|
||||||
|
*/
|
||||||
|
private String isCache;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类型(M目录 C菜单 F按钮)
|
||||||
|
*/
|
||||||
|
private String menuType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 显示状态(0显示 1隐藏)
|
||||||
|
*/
|
||||||
|
private String visible;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单状态(0正常 1停用)
|
||||||
|
*/
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 权限字符串
|
||||||
|
*/
|
||||||
|
private String perms;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单图标
|
||||||
|
*/
|
||||||
|
private String icon;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 子菜单
|
||||||
|
*/
|
||||||
|
private List<SysMenu> children = new ArrayList<SysMenu>();
|
||||||
|
|
||||||
|
public static SysMenuAddModel of(SysMenuAddReq sysMenuAddReq) {
|
||||||
|
return SysMenuAddModel.builder()
|
||||||
|
.menuName(sysMenuAddReq.getMenuName())
|
||||||
|
.parentId(sysMenuAddReq.getParentId())
|
||||||
|
.orderNum(sysMenuAddReq.getOrderNum())
|
||||||
|
.path(sysMenuAddReq.getPath())
|
||||||
|
.component(sysMenuAddReq.getComponent())
|
||||||
|
.query(sysMenuAddReq.getQuery())
|
||||||
|
.isFrame(sysMenuAddReq.getIsFrame())
|
||||||
|
.isCache(sysMenuAddReq.getIsCache())
|
||||||
|
.menuType(sysMenuAddReq.getMenuType())
|
||||||
|
.visible(sysMenuAddReq.getVisible())
|
||||||
|
.status(sysMenuAddReq.getStatus())
|
||||||
|
.perms(sysMenuAddReq.getPerms())
|
||||||
|
.icon(sysMenuAddReq.getIcon())
|
||||||
|
.children(sysMenuAddReq.getChildren())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SysMenuAddModel buildSysMenuAddModel(SysMenuUpdReq sysMenuUpdReq){
|
||||||
|
return SysMenuAddModel.builder()
|
||||||
|
.menuName(sysMenuUpdReq.getMenuName())
|
||||||
|
.parentId(sysMenuUpdReq.getParentId())
|
||||||
|
.orderNum(sysMenuUpdReq.getOrderNum())
|
||||||
|
.path(sysMenuUpdReq.getPath())
|
||||||
|
.component(sysMenuUpdReq.getComponent())
|
||||||
|
.query(sysMenuUpdReq.getQuery())
|
||||||
|
.isFrame(sysMenuUpdReq.getIsFrame())
|
||||||
|
.isCache(sysMenuUpdReq.getIsCache())
|
||||||
|
.menuType(sysMenuUpdReq.getMenuType())
|
||||||
|
.visible(sysMenuUpdReq.getVisible())
|
||||||
|
.status(sysMenuUpdReq.getStatus())
|
||||||
|
.perms(sysMenuUpdReq.getPerms())
|
||||||
|
.icon(sysMenuUpdReq.getIcon())
|
||||||
|
.children(sysMenuUpdReq.getChildren())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,119 @@
|
||||||
|
package com.muyu.system.domain.model;
|
||||||
|
|
||||||
|
import com.muyu.system.domain.SysMenu;
|
||||||
|
import com.muyu.system.domain.rep.SysMenuAddReq;
|
||||||
|
import com.muyu.system.domain.rep.SysMenuUpdReq;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: 菜单修改模型
|
||||||
|
* @author yangchoashun
|
||||||
|
* @date 2025/2/23 17:24
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SysMenuUpdModel {
|
||||||
|
/**
|
||||||
|
* 菜单ID
|
||||||
|
*/
|
||||||
|
private Long menuId;
|
||||||
|
/**
|
||||||
|
* 菜单名称
|
||||||
|
*/
|
||||||
|
private String menuName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 父菜单ID
|
||||||
|
*/
|
||||||
|
|
||||||
|
private Long parentId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 显示顺序
|
||||||
|
*/
|
||||||
|
private Integer orderNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 路由地址
|
||||||
|
*/
|
||||||
|
private String path;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组件路径
|
||||||
|
*/
|
||||||
|
private String component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 路由参数
|
||||||
|
*/
|
||||||
|
private String query;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否为外链(0是 1否)
|
||||||
|
*/
|
||||||
|
private String isFrame;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否缓存(0缓存 1不缓存)
|
||||||
|
*/
|
||||||
|
private String isCache;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类型(M目录 C菜单 F按钮)
|
||||||
|
*/
|
||||||
|
private String menuType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 显示状态(0显示 1隐藏)
|
||||||
|
*/
|
||||||
|
private String visible;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单状态(0正常 1停用)
|
||||||
|
*/
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 权限字符串
|
||||||
|
*/
|
||||||
|
private String perms;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单图标
|
||||||
|
*/
|
||||||
|
private String icon;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 子菜单
|
||||||
|
*/
|
||||||
|
private List<SysMenu> children = new ArrayList<SysMenu>();
|
||||||
|
|
||||||
|
public static SysMenuUpdModel of(SysMenuUpdReq sysMenuUpdReq) {
|
||||||
|
return SysMenuUpdModel.builder()
|
||||||
|
.menuName(sysMenuUpdReq.getMenuName())
|
||||||
|
.parentId(sysMenuUpdReq.getParentId())
|
||||||
|
.orderNum(sysMenuUpdReq.getOrderNum())
|
||||||
|
.path(sysMenuUpdReq.getPath())
|
||||||
|
.component(sysMenuUpdReq.getComponent())
|
||||||
|
.query(sysMenuUpdReq.getQuery())
|
||||||
|
.isFrame(sysMenuUpdReq.getIsFrame())
|
||||||
|
.isCache(sysMenuUpdReq.getIsCache())
|
||||||
|
.menuType(sysMenuUpdReq.getMenuType())
|
||||||
|
.visible(sysMenuUpdReq.getVisible())
|
||||||
|
.status(sysMenuUpdReq.getStatus())
|
||||||
|
.perms(sysMenuUpdReq.getPerms())
|
||||||
|
.icon(sysMenuUpdReq.getIcon())
|
||||||
|
.children(sysMenuUpdReq.getChildren())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,6 +1,8 @@
|
||||||
package com.muyu.system.domain.rep;
|
package com.muyu.system.domain.rep;
|
||||||
|
|
||||||
import com.muyu.system.domain.SysMenu;
|
import com.muyu.system.domain.SysMenu;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -25,6 +27,7 @@ public class SysMenuAddReq {
|
||||||
/**
|
/**
|
||||||
* 菜单名称
|
* 菜单名称
|
||||||
*/
|
*/
|
||||||
|
@NotBlank(message = "菜单名称不能为空")
|
||||||
private String menuName;
|
private String menuName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -41,19 +44,19 @@ public class SysMenuAddReq {
|
||||||
/**
|
/**
|
||||||
* 显示顺序
|
* 显示顺序
|
||||||
*/
|
*/
|
||||||
|
@NotNull(message = "显示顺序不能为空")
|
||||||
private Integer orderNum;
|
private Integer orderNum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 路由地址
|
* 路由地址
|
||||||
*/
|
*/
|
||||||
|
@NotBlank(message = "路由地址不能为空")
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 组件路径
|
* 组件路径
|
||||||
*/
|
*/
|
||||||
|
@NotBlank(message = "组件路径不能为空")
|
||||||
private String component;
|
private String component;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -64,26 +67,31 @@ public class SysMenuAddReq {
|
||||||
/**
|
/**
|
||||||
* 是否为外链(0是 1否)
|
* 是否为外链(0是 1否)
|
||||||
*/
|
*/
|
||||||
|
@NotBlank(message = "是否为外链不能为空")
|
||||||
private String isFrame;
|
private String isFrame;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否缓存(0缓存 1不缓存)
|
* 是否缓存(0缓存 1不缓存)
|
||||||
*/
|
*/
|
||||||
|
@NotBlank(message = "是否缓存不能为空")
|
||||||
private String isCache;
|
private String isCache;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 类型(M目录 C菜单 F按钮)
|
* 类型(M目录 C菜单 F按钮)
|
||||||
*/
|
*/
|
||||||
|
@NotBlank(message = "类型不能为空")
|
||||||
private String menuType;
|
private String menuType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 显示状态(0显示 1隐藏)
|
* 显示状态(0显示 1隐藏)
|
||||||
*/
|
*/
|
||||||
|
@NotBlank(message = "显示状态不能为空")
|
||||||
private String visible;
|
private String visible;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 菜单状态(0正常 1停用)
|
* 菜单状态(0正常 1停用)
|
||||||
*/
|
*/
|
||||||
|
@NotBlank(message = "菜单状态不能为空")
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -94,10 +102,12 @@ public class SysMenuAddReq {
|
||||||
/**
|
/**
|
||||||
* 菜单图标
|
* 菜单图标
|
||||||
*/
|
*/
|
||||||
|
@NotBlank(message = "菜单图标不能为空")
|
||||||
private String icon;
|
private String icon;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 子菜单
|
* 子菜单
|
||||||
*/
|
*/
|
||||||
private List<SysMenu> children = new ArrayList<SysMenu>();
|
private List<SysMenu> children = new ArrayList<SysMenu>();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,113 @@
|
||||||
|
package com.muyu.system.domain.rep;
|
||||||
|
|
||||||
|
import com.muyu.system.domain.SysMenu;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: 菜单添加请求
|
||||||
|
* @author yangchoashun
|
||||||
|
* @date 2025/2/23 17:24
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SysMenuUpdReq {
|
||||||
|
private Long menuId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单名称
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "菜单名称不能为空")
|
||||||
|
private String menuName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 父菜单名称
|
||||||
|
*/
|
||||||
|
private String parentName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 父菜单ID
|
||||||
|
*/
|
||||||
|
|
||||||
|
private Long parentId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 显示顺序
|
||||||
|
*/
|
||||||
|
@NotNull(message = "显示顺序不能为空")
|
||||||
|
private Integer orderNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 路由地址
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "路由地址不能为空")
|
||||||
|
private String path;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组件路径
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "组件路径不能为空")
|
||||||
|
private String component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 路由参数
|
||||||
|
*/
|
||||||
|
private String query;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否为外链(0是 1否)
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "是否为外链不能为空")
|
||||||
|
private String isFrame;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否缓存(0缓存 1不缓存)
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "是否缓存不能为空")
|
||||||
|
private String isCache;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类型(M目录 C菜单 F按钮)
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "类型不能为空")
|
||||||
|
private String menuType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 显示状态(0显示 1隐藏)
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "显示状态不能为空")
|
||||||
|
private String visible;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单状态(0正常 1停用)
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "菜单状态不能为空")
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 权限字符串
|
||||||
|
*/
|
||||||
|
private String perms;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜单图标
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "菜单图标不能为空")
|
||||||
|
private String icon;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 子菜单
|
||||||
|
*/
|
||||||
|
private List<SysMenu> children = new ArrayList<SysMenu>();
|
||||||
|
|
||||||
|
}
|
|
@ -2,7 +2,9 @@ package com.muyu.system.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.muyu.system.domain.SysMenu;
|
import com.muyu.system.domain.SysMenu;
|
||||||
|
import com.muyu.system.domain.model.SysMenuAddModel;
|
||||||
import com.muyu.system.domain.model.SysMenuListModel;
|
import com.muyu.system.domain.model.SysMenuListModel;
|
||||||
|
import com.muyu.system.domain.model.SysMenuUpdModel;
|
||||||
import com.muyu.system.domain.vo.RouterVo;
|
import com.muyu.system.domain.vo.RouterVo;
|
||||||
import com.muyu.system.domain.vo.TreeSelect;
|
import com.muyu.system.domain.vo.TreeSelect;
|
||||||
|
|
||||||
|
@ -127,16 +129,16 @@ public interface SysMenuService extends IService<SysMenu> {
|
||||||
/**
|
/**
|
||||||
* 新增保存菜单信息
|
* 新增保存菜单信息
|
||||||
*
|
*
|
||||||
* @param menu 菜单信息
|
* @param sysMenuAddModel 菜单信息
|
||||||
*/
|
*/
|
||||||
public void insertMenu (SysMenu menu);
|
public void insertMenu (SysMenuAddModel sysMenuAddModel);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改保存菜单信息
|
* 修改保存菜单信息
|
||||||
*
|
*
|
||||||
* @param menu 菜单信息
|
* @param sysMenuUpdModel 菜单信息
|
||||||
*/
|
*/
|
||||||
public void updateMenu (SysMenu menu);
|
public void updateMenu (SysMenuUpdModel sysMenuUpdModel);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除菜单管理信息
|
* 删除菜单管理信息
|
||||||
|
@ -148,10 +150,10 @@ public interface SysMenuService extends IService<SysMenu> {
|
||||||
/**
|
/**
|
||||||
* 校验菜单名称是否唯一
|
* 校验菜单名称是否唯一
|
||||||
*
|
*
|
||||||
* @param menu 菜单信息
|
* @param sysMenuAddModel 菜单信息
|
||||||
*
|
*
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public boolean checkMenuNameUnique (SysMenu menu);
|
public boolean checkMenuNameUnique (SysMenuAddModel sysMenuAddModel);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ import com.muyu.system.service.SysLogininforService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -36,6 +37,7 @@ public class SysLogininforServiceImpl extends ServiceImpl<SysLogininforMapper, S
|
||||||
@Override
|
@Override
|
||||||
public void insertLogininfor (SysLogininforAddModel logininforAddModel) {
|
public void insertLogininfor (SysLogininforAddModel logininforAddModel) {
|
||||||
SysLogininfor logininfor = SysLogininforAddModel.of(logininforAddModel);
|
SysLogininfor logininfor = SysLogininforAddModel.of(logininforAddModel);
|
||||||
|
logininfor.setAccessTime(new Date());
|
||||||
this.save(logininfor);
|
this.save(logininfor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,9 @@ import com.muyu.common.security.utils.SecurityUtils;
|
||||||
import com.muyu.common.system.domain.SysRole;
|
import com.muyu.common.system.domain.SysRole;
|
||||||
import com.muyu.common.system.domain.SysUser;
|
import com.muyu.common.system.domain.SysUser;
|
||||||
import com.muyu.system.domain.SysMenu;
|
import com.muyu.system.domain.SysMenu;
|
||||||
|
import com.muyu.system.domain.model.SysMenuAddModel;
|
||||||
import com.muyu.system.domain.model.SysMenuListModel;
|
import com.muyu.system.domain.model.SysMenuListModel;
|
||||||
|
import com.muyu.system.domain.model.SysMenuUpdModel;
|
||||||
import com.muyu.system.domain.vo.MetaVo;
|
import com.muyu.system.domain.vo.MetaVo;
|
||||||
import com.muyu.system.domain.vo.RouterVo;
|
import com.muyu.system.domain.vo.RouterVo;
|
||||||
import com.muyu.system.domain.vo.TreeSelect;
|
import com.muyu.system.domain.vo.TreeSelect;
|
||||||
|
@ -301,25 +303,26 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||||
/**
|
/**
|
||||||
* 新增保存菜单信息
|
* 新增保存菜单信息
|
||||||
*
|
*
|
||||||
* @param menu 菜单信息
|
* @param sysMenuAddModel 菜单信息
|
||||||
*
|
*
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void insertMenu (SysMenu menu) {
|
public void insertMenu (SysMenuAddModel sysMenuAddModel) {
|
||||||
|
SysMenu menu = SysMenu.buildSysMenu(sysMenuAddModel);
|
||||||
this.save(menu);
|
this.save(menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改保存菜单信息
|
* 修改保存菜单信息
|
||||||
*
|
*
|
||||||
* @param menu 菜单信息
|
* @param sysMenuUpdModel 菜单信息
|
||||||
*
|
*
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void updateMenu (SysMenu menu) {
|
public void updateMenu (SysMenuUpdModel sysMenuUpdModel) {
|
||||||
this.updateById(menu);
|
this.updateById(SysMenu.buildSysMenu(sysMenuUpdModel));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -337,12 +340,13 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||||
/**
|
/**
|
||||||
* 校验菜单名称是否唯一
|
* 校验菜单名称是否唯一
|
||||||
*
|
*
|
||||||
* @param menu 菜单信息
|
* @param sysMenuAddModel 菜单信息
|
||||||
*
|
*
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean checkMenuNameUnique (SysMenu menu) {
|
public boolean checkMenuNameUnique (SysMenuAddModel sysMenuAddModel) {
|
||||||
|
SysMenu menu = SysMenu.buildSysMenu(sysMenuAddModel);
|
||||||
LambdaQueryWrapper<SysMenu> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SysMenu> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper.eq(SysMenu::getMenuName, menu.getMenuName());
|
lambdaQueryWrapper.eq(SysMenu::getMenuName, menu.getMenuName());
|
||||||
lambdaQueryWrapper.ne(menu.getMenuId() != null, SysMenu::getParentId, menu.getParentId());
|
lambdaQueryWrapper.ne(menu.getMenuId() != null, SysMenu::getParentId, menu.getParentId());
|
||||||
|
|
Loading…
Reference in New Issue