first commit
This commit is contained in:
@ -0,0 +1,52 @@
|
||||
package org.dromara.app.system.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.dromara.app.system.domain.dto.menu.AppMenuCreateReq;
|
||||
import org.dromara.app.system.domain.dto.menu.AppMenuUpdateReq;
|
||||
import org.dromara.app.system.service.AppMenuService;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* app菜单信息
|
||||
*
|
||||
* @author lilemy
|
||||
* @date 2025-07-23 15:13
|
||||
*/
|
||||
@Validated
|
||||
@RestController
|
||||
@RequestMapping("/app/system/menu")
|
||||
public class AppMenuController extends BaseController {
|
||||
|
||||
@Resource
|
||||
private AppMenuService appMenuService;
|
||||
|
||||
/**
|
||||
* 新增app菜单信息
|
||||
*/
|
||||
@SaCheckPermission("contractor:contractorToolRecord:add")
|
||||
@Log(title = "app菜单信息", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated @RequestBody AppMenuCreateReq req) {
|
||||
return toAjax(appMenuService.insertByReq(req));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改app菜单信息
|
||||
*/
|
||||
@SaCheckPermission("contractor:contractorToolRecord:edit")
|
||||
@Log(title = "app菜单信息", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated @RequestBody AppMenuUpdateReq req) {
|
||||
return toAjax(appMenuService.updateByReq(req));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,91 @@
|
||||
package org.dromara.app.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* app菜单
|
||||
*
|
||||
* @TableName app_menu
|
||||
*/
|
||||
@Data
|
||||
@TableName(value = "app_menu")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class AppMenu extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 菜单名称
|
||||
*/
|
||||
private String menuName;
|
||||
|
||||
/**
|
||||
* 父菜单ID
|
||||
*/
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 显示顺序
|
||||
*/
|
||||
private Integer orderNum;
|
||||
|
||||
/**
|
||||
* 路由地址
|
||||
*/
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 组件路径
|
||||
*/
|
||||
private String component;
|
||||
|
||||
/**
|
||||
* 路由参数
|
||||
*/
|
||||
private String queryParam;
|
||||
|
||||
/**
|
||||
* 菜单类型(M目录 C菜单 F按钮)
|
||||
*/
|
||||
private String menuType;
|
||||
|
||||
/**
|
||||
* 显示状态(0显示 1隐藏)
|
||||
*/
|
||||
private String visible;
|
||||
|
||||
/**
|
||||
* 菜单状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 权限标识
|
||||
*/
|
||||
private String perms;
|
||||
|
||||
/**
|
||||
* 菜单图标
|
||||
*/
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
@Serial
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
package org.dromara.app.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* app角色
|
||||
*
|
||||
* @TableName app_role
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName(value = "app_role")
|
||||
@Data
|
||||
public class AppRole extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 角色名称
|
||||
*/
|
||||
private String roleName;
|
||||
|
||||
/**
|
||||
* 角色权限字符串
|
||||
*/
|
||||
private String roleKey;
|
||||
|
||||
/**
|
||||
* 显示顺序
|
||||
*/
|
||||
private Integer orderNum;
|
||||
|
||||
/**
|
||||
* 数据范围(1:全部数据权限 2:自定数据权限)
|
||||
*/
|
||||
private String dataScope;
|
||||
|
||||
/**
|
||||
* 角色状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
@Serial
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
package org.dromara.app.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* app角色和菜单关联
|
||||
*
|
||||
* @TableName app_role_menu
|
||||
*/
|
||||
@TableName(value = "app_role_menu")
|
||||
@Data
|
||||
public class AppRoleMenu implements Serializable {
|
||||
|
||||
/**
|
||||
* 角色ID
|
||||
*/
|
||||
@TableId(type = IdType.INPUT)
|
||||
private Long roleId;
|
||||
|
||||
/**
|
||||
* 菜单ID
|
||||
*/
|
||||
private Long menuId;
|
||||
|
||||
@Serial
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
package org.dromara.app.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* app用户和角色关联
|
||||
*
|
||||
* @TableName app_user_role
|
||||
*/
|
||||
@TableName(value = "app_user_role")
|
||||
@Data
|
||||
public class AppUserRole implements Serializable {
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
@TableId(type = IdType.INPUT)
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 角色ID
|
||||
*/
|
||||
private Long roleId;
|
||||
|
||||
@Serial
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
}
|
@ -0,0 +1,84 @@
|
||||
package org.dromara.app.system.domain.dto.menu;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025-07-23 14:53
|
||||
*/
|
||||
@Data
|
||||
public class AppMenuCreateReq implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 5959650762623651138L;
|
||||
|
||||
/**
|
||||
* 菜单名称
|
||||
*/
|
||||
@NotBlank(message = "菜单名称不能为空")
|
||||
private String menuName;
|
||||
|
||||
/**
|
||||
* 父菜单ID
|
||||
*/
|
||||
@NotNull(message = "父菜单不能为空")
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 显示顺序
|
||||
*/
|
||||
private Integer orderNum;
|
||||
|
||||
/**
|
||||
* 路由地址
|
||||
*/
|
||||
@NotBlank(message = "路由地址不能为空")
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 组件路径
|
||||
*/
|
||||
private String component;
|
||||
|
||||
/**
|
||||
* 路由参数
|
||||
*/
|
||||
private String queryParam;
|
||||
|
||||
/**
|
||||
* 菜单类型(M目录 C菜单 F按钮)
|
||||
*/
|
||||
@NotBlank(message = "菜单类型不能为空")
|
||||
private String menuType;
|
||||
|
||||
/**
|
||||
* 显示状态(0显示 1隐藏)
|
||||
*/
|
||||
private String visible;
|
||||
|
||||
/**
|
||||
* 菜单状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 权限标识
|
||||
*/
|
||||
private String perms;
|
||||
|
||||
/**
|
||||
* 菜单图标
|
||||
*/
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
package org.dromara.app.system.domain.dto.menu;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025-07-23 14:55
|
||||
*/
|
||||
@Data
|
||||
public class AppMenuQueryReq implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 430846650497878659L;
|
||||
|
||||
/**
|
||||
* 菜单名称
|
||||
*/
|
||||
private String menuName;
|
||||
|
||||
/**
|
||||
* 菜单类型(M目录 C菜单 F按钮)
|
||||
*/
|
||||
private String menuType;
|
||||
|
||||
/**
|
||||
* 显示状态(0显示 1隐藏)
|
||||
*/
|
||||
private String visible;
|
||||
|
||||
/**
|
||||
* 菜单状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
}
|
@ -0,0 +1,90 @@
|
||||
package org.dromara.app.system.domain.dto.menu;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025-07-23 14:54
|
||||
*/
|
||||
@Data
|
||||
public class AppMenuUpdateReq implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = -2001348573190432371L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "菜单ID不能为空")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 菜单名称
|
||||
*/
|
||||
@NotBlank(message = "菜单名称不能为空")
|
||||
private String menuName;
|
||||
|
||||
/**
|
||||
* 父菜单ID
|
||||
*/
|
||||
@NotNull(message = "父菜单不能为空")
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 显示顺序
|
||||
*/
|
||||
@NotNull(message = "显示顺序不能为空")
|
||||
private Integer orderNum;
|
||||
|
||||
/**
|
||||
* 路由地址
|
||||
*/
|
||||
@NotBlank(message = "路由地址不能为空")
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 组件路径
|
||||
*/
|
||||
private String component;
|
||||
|
||||
/**
|
||||
* 路由参数
|
||||
*/
|
||||
private String queryParam;
|
||||
|
||||
/**
|
||||
* 菜单类型(M目录 C菜单 F按钮)
|
||||
*/
|
||||
@NotBlank(message = "菜单类型不能为空")
|
||||
private String menuType;
|
||||
|
||||
/**
|
||||
* 显示状态(0显示 1隐藏)
|
||||
*/
|
||||
private String visible;
|
||||
|
||||
/**
|
||||
* 菜单状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 权限标识
|
||||
*/
|
||||
private String perms;
|
||||
|
||||
/**
|
||||
* 菜单图标
|
||||
*/
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package org.dromara.app.system.domain.dto.role;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025-07-23 14:55
|
||||
*/
|
||||
@Data
|
||||
public class AppRoleCreateReq implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = -282693316523798371L;
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package org.dromara.app.system.domain.dto.role;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025-07-23 14:55
|
||||
*/
|
||||
@Data
|
||||
public class AppRoleQueryReq implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = -7355276515541220943L;
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package org.dromara.app.system.domain.dto.role;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025-07-23 14:55
|
||||
*/
|
||||
@Data
|
||||
public class AppRoleUpdateReq implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 6996190784775829966L;
|
||||
|
||||
}
|
@ -0,0 +1,83 @@
|
||||
package org.dromara.app.system.domain.vo.menu;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025-07-23 14:50
|
||||
*/
|
||||
@Data
|
||||
public class AppMenuVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 466794582748236105L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 菜单名称
|
||||
*/
|
||||
private String menuName;
|
||||
|
||||
/**
|
||||
* 父菜单ID
|
||||
*/
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 显示顺序
|
||||
*/
|
||||
private Integer orderNum;
|
||||
|
||||
/**
|
||||
* 路由地址
|
||||
*/
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 组件路径
|
||||
*/
|
||||
private String component;
|
||||
|
||||
/**
|
||||
* 路由参数
|
||||
*/
|
||||
private String queryParam;
|
||||
|
||||
/**
|
||||
* 菜单类型(M目录 C菜单 F按钮)
|
||||
*/
|
||||
private String menuType;
|
||||
|
||||
/**
|
||||
* 显示状态(0显示 1隐藏)
|
||||
*/
|
||||
private String visible;
|
||||
|
||||
/**
|
||||
* 菜单状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 权限标识
|
||||
*/
|
||||
private String perms;
|
||||
|
||||
/**
|
||||
* 菜单图标
|
||||
*/
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package org.dromara.app.system.domain.vo.role;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025-07-23 14:50
|
||||
*/
|
||||
@Data
|
||||
public class AppRoleVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 222190798885808758L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 角色名称
|
||||
*/
|
||||
private String roleName;
|
||||
|
||||
/**
|
||||
* 角色权限字符串
|
||||
*/
|
||||
private String roleKey;
|
||||
|
||||
/**
|
||||
* 显示顺序
|
||||
*/
|
||||
private Integer orderNum;
|
||||
|
||||
/**
|
||||
* 数据范围(1:全部数据权限 2:自定数据权限)
|
||||
*/
|
||||
private String dataScope;
|
||||
|
||||
/**
|
||||
* 角色状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package org.dromara.app.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.dromara.app.system.domain.AppMenu;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @description 针对表【app_menu(app菜单)】的数据库操作Mapper
|
||||
* @createDate 2025-07-23 14:39:56
|
||||
*/
|
||||
public interface AppMenuMapper extends BaseMapper<AppMenu> {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,17 @@
|
||||
package org.dromara.app.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.dromara.app.system.domain.AppRole;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @description 针对表【app_role(app角色)】的数据库操作Mapper
|
||||
* @createDate 2025-07-23 14:39:56
|
||||
*/
|
||||
public interface AppRoleMapper extends BaseMapper<AppRole> {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,17 @@
|
||||
package org.dromara.app.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.dromara.app.system.domain.AppRoleMenu;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @description 针对表【app_role_menu(app角色和菜单关联)】的数据库操作Mapper
|
||||
* @createDate 2025-07-23 14:39:56
|
||||
*/
|
||||
public interface AppRoleMenuMapper extends BaseMapper<AppRoleMenu> {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,17 @@
|
||||
package org.dromara.app.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.dromara.app.system.domain.AppUserRole;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @description 针对表【app_user_role(app用户和角色关联)】的数据库操作Mapper
|
||||
* @createDate 2025-07-23 14:39:56
|
||||
*/
|
||||
public interface AppUserRoleMapper extends BaseMapper<AppUserRole> {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,59 @@
|
||||
package org.dromara.app.system.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.dromara.app.system.domain.AppMenu;
|
||||
import org.dromara.app.system.domain.dto.menu.AppMenuCreateReq;
|
||||
import org.dromara.app.system.domain.dto.menu.AppMenuQueryReq;
|
||||
import org.dromara.app.system.domain.dto.menu.AppMenuUpdateReq;
|
||||
import org.dromara.app.system.domain.vo.menu.AppMenuVo;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @description 针对表【app_menu(app菜单)】的数据库操作Service
|
||||
* @createDate 2025-07-23 14:39:56
|
||||
*/
|
||||
public interface AppMenuService extends IService<AppMenu> {
|
||||
|
||||
/**
|
||||
* 新增app菜单
|
||||
*
|
||||
* @param req app菜单创建请求
|
||||
* @return 是否成功
|
||||
*/
|
||||
Boolean insertByReq(AppMenuCreateReq req);
|
||||
|
||||
/**
|
||||
* 修改app菜单
|
||||
*
|
||||
* @param req app菜单更新请求
|
||||
* @return 是否成功
|
||||
*/
|
||||
Boolean updateByReq(AppMenuUpdateReq req);
|
||||
|
||||
/**
|
||||
* 获取app菜单视图
|
||||
*
|
||||
* @param menu app菜单
|
||||
* @return app菜单视图
|
||||
*/
|
||||
AppMenuVo getVo(AppMenu menu);
|
||||
|
||||
/**
|
||||
* 构建查询条件封装
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 查询条件封装
|
||||
*/
|
||||
LambdaQueryWrapper<AppMenu> buildQueryWrapper(AppMenuQueryReq req);
|
||||
|
||||
/**
|
||||
* 获取app菜单分页对象视图
|
||||
*
|
||||
* @param menuPage app菜单分页对象
|
||||
* @return app菜单分页对象视图
|
||||
*/
|
||||
Page<AppMenuVo> getVoPage(Page<AppMenu> menuPage);
|
||||
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package org.dromara.app.system.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.dromara.app.system.domain.AppRoleMenu;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @description 针对表【app_role_menu(app角色和菜单关联)】的数据库操作Service
|
||||
* @createDate 2025-07-23 14:39:56
|
||||
*/
|
||||
public interface AppRoleMenuService extends IService<AppRoleMenu> {
|
||||
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package org.dromara.app.system.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.dromara.app.system.domain.AppRole;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @description 针对表【app_role(app角色)】的数据库操作Service
|
||||
* @createDate 2025-07-23 14:39:56
|
||||
*/
|
||||
public interface AppRoleService extends IService<AppRole> {
|
||||
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package org.dromara.app.system.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.dromara.app.system.domain.AppUserRole;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @description 针对表【app_user_role(app用户和角色关联)】的数据库操作Service
|
||||
* @createDate 2025-07-23 14:39:56
|
||||
*/
|
||||
public interface AppUserRoleService extends IService<AppUserRole> {
|
||||
|
||||
}
|
@ -0,0 +1,118 @@
|
||||
package org.dromara.app.system.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.app.system.domain.AppMenu;
|
||||
import org.dromara.app.system.domain.dto.menu.AppMenuCreateReq;
|
||||
import org.dromara.app.system.domain.dto.menu.AppMenuQueryReq;
|
||||
import org.dromara.app.system.domain.dto.menu.AppMenuUpdateReq;
|
||||
import org.dromara.app.system.domain.vo.menu.AppMenuVo;
|
||||
import org.dromara.app.system.mapper.AppMenuMapper;
|
||||
import org.dromara.app.system.service.AppMenuService;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @description 针对表【app_menu(app菜单)】的数据库操作Service实现
|
||||
* @createDate 2025-07-23 14:39:56
|
||||
*/
|
||||
@Service
|
||||
public class AppMenuServiceImpl extends ServiceImpl<AppMenuMapper, AppMenu>
|
||||
implements AppMenuService {
|
||||
|
||||
/**
|
||||
* 新增app菜单
|
||||
*
|
||||
* @param req app菜单创建请求
|
||||
* @return 是否成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByReq(AppMenuCreateReq req) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改app菜单
|
||||
*
|
||||
* @param req app菜单更新请求
|
||||
* @return 是否成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByReq(AppMenuUpdateReq req) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取app菜单视图
|
||||
*
|
||||
* @param menu app菜单
|
||||
* @return app菜单视图
|
||||
*/
|
||||
@Override
|
||||
public AppMenuVo getVo(AppMenu menu) {
|
||||
AppMenuVo menuVo = new AppMenuVo();
|
||||
if (menu == null) {
|
||||
return menuVo;
|
||||
}
|
||||
BeanUtils.copyProperties(menu, menuVo);
|
||||
return menuVo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建查询条件封装
|
||||
*
|
||||
* @param req 查询条件
|
||||
* @return 查询条件封装
|
||||
*/
|
||||
@Override
|
||||
public LambdaQueryWrapper<AppMenu> buildQueryWrapper(AppMenuQueryReq req) {
|
||||
LambdaQueryWrapper<AppMenu> lqw = new LambdaQueryWrapper<>();
|
||||
if (req == null) {
|
||||
return lqw;
|
||||
}
|
||||
String menuName = req.getMenuName();
|
||||
String menuType = req.getMenuType();
|
||||
String visible = req.getVisible();
|
||||
String status = req.getStatus();
|
||||
lqw.like(StringUtils.isNotBlank(menuName), AppMenu::getMenuName, menuName);
|
||||
lqw.eq(StringUtils.isNotBlank(menuType), AppMenu::getMenuType, menuType);
|
||||
lqw.eq(StringUtils.isNotBlank(visible), AppMenu::getVisible, visible);
|
||||
lqw.eq(StringUtils.isNotBlank(status), AppMenu::getStatus, status);
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取app菜单分页对象视图
|
||||
*
|
||||
* @param menuPage app菜单分页对象
|
||||
* @return app菜单分页对象视图
|
||||
*/
|
||||
@Override
|
||||
public Page<AppMenuVo> getVoPage(Page<AppMenu> menuPage) {
|
||||
List<AppMenu> menuList = menuPage.getRecords();
|
||||
Page<AppMenuVo> menuVoPage = new Page<>(
|
||||
menuPage.getCurrent(),
|
||||
menuPage.getSize(),
|
||||
menuPage.getTotal());
|
||||
if (CollUtil.isEmpty(menuList)) {
|
||||
return menuVoPage;
|
||||
}
|
||||
List<AppMenuVo> menuVoList = menuList.stream().map(entity -> {
|
||||
AppMenuVo menuVo = new AppMenuVo();
|
||||
BeanUtils.copyProperties(entity, menuVo);
|
||||
return menuVo;
|
||||
}).toList();
|
||||
menuVoPage.setRecords(menuVoList);
|
||||
return menuVoPage;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,22 @@
|
||||
package org.dromara.app.system.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.app.system.domain.AppRoleMenu;
|
||||
import org.dromara.app.system.mapper.AppRoleMenuMapper;
|
||||
import org.dromara.app.system.service.AppRoleMenuService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @description 针对表【app_role_menu(app角色和菜单关联)】的数据库操作Service实现
|
||||
* @createDate 2025-07-23 14:39:56
|
||||
*/
|
||||
@Service
|
||||
public class AppRoleMenuServiceImpl extends ServiceImpl<AppRoleMenuMapper, AppRoleMenu>
|
||||
implements AppRoleMenuService {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,22 @@
|
||||
package org.dromara.app.system.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.app.system.domain.AppRole;
|
||||
import org.dromara.app.system.mapper.AppRoleMapper;
|
||||
import org.dromara.app.system.service.AppRoleService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @description 针对表【app_role(app角色)】的数据库操作Service实现
|
||||
* @createDate 2025-07-23 14:39:56
|
||||
*/
|
||||
@Service
|
||||
public class AppRoleServiceImpl extends ServiceImpl<AppRoleMapper, AppRole>
|
||||
implements AppRoleService {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,22 @@
|
||||
package org.dromara.app.system.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.app.system.domain.AppUserRole;
|
||||
import org.dromara.app.system.mapper.AppUserRoleMapper;
|
||||
import org.dromara.app.system.service.AppUserRoleService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @description 针对表【app_user_role(app用户和角色关联)】的数据库操作Service实现
|
||||
* @createDate 2025-07-23 14:39:56
|
||||
*/
|
||||
@Service
|
||||
public class AppUserRoleServiceImpl extends ServiceImpl<AppUserRoleMapper, AppUserRole>
|
||||
implements AppUserRoleService {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
0
ruoyi-modules/ruoyi-app/src/main/resources/app/1
Normal file
0
ruoyi-modules/ruoyi-app/src/main/resources/app/1
Normal file
@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.app.system.mapper.AppMenuMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="org.dromara.app.system.domain.AppMenu">
|
||||
<id property="id" column="id"/>
|
||||
<result property="menuName" column="menu_name"/>
|
||||
<result property="parentId" column="parent_id"/>
|
||||
<result property="orderNum" column="order_num"/>
|
||||
<result property="path" column="path"/>
|
||||
<result property="component" column="component"/>
|
||||
<result property="queryParam" column="query_param"/>
|
||||
<result property="menuType" column="menu_type"/>
|
||||
<result property="visible" column="visible"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="perms" column="perms"/>
|
||||
<result property="icon" column="icon"/>
|
||||
<result property="createDept" column="create_dept"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id,menu_name,parent_id,order_num,path,component,
|
||||
query_param,menu_type,visible,status,perms,
|
||||
icon,create_dept,remark,create_by,update_by,
|
||||
create_time,update_time
|
||||
</sql>
|
||||
</mapper>
|
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.app.system.mapper.AppRoleMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="org.dromara.app.system.domain.AppRole">
|
||||
<id property="id" column="id"/>
|
||||
<result property="roleName" column="role_name"/>
|
||||
<result property="roleKey" column="role_key"/>
|
||||
<result property="orderNum" column="order_num"/>
|
||||
<result property="dataScope" column="data_scope"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="createDept" column="create_dept"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id,role_name,role_key,order_num,data_scope,status,
|
||||
create_dept,remark,create_by,update_by,create_time,
|
||||
update_time
|
||||
</sql>
|
||||
</mapper>
|
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.app.system.mapper.AppRoleMenuMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="org.dromara.app.system.domain.AppRoleMenu">
|
||||
<id property="roleId" column="role_id"/>
|
||||
<id property="menuId" column="menu_id"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
role_id,menu_id
|
||||
</sql>
|
||||
</mapper>
|
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.app.system.mapper.AppUserRoleMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="org.dromara.app.system.domain.AppUserRole">
|
||||
<id property="userId" column="user_id"/>
|
||||
<id property="roleId" column="role_id"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
user_id,role_id
|
||||
</sql>
|
||||
</mapper>
|
Reference in New Issue
Block a user