fit():修改SysLoginfor和SysMenu
parent
9a4819aa9d
commit
4314791e7c
|
@ -3,10 +3,8 @@ package com.muyu.common.system.domain;
|
|||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.muyu.common.core.annotation.Excel;
|
||||
import com.muyu.common.core.annotation.Excel.ColumnType;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
|
@ -57,7 +55,8 @@ public class SysLogininfor {
|
|||
/**
|
||||
* 访问时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date accessTime;
|
||||
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package com.muyu.common.system.remote.factory;
|
||||
|
||||
import com.muyu.common.core.domain.Result;
|
||||
import com.muyu.common.system.remote.RemoteLogService;
|
||||
import com.muyu.common.system.domain.SysLogininfor;
|
||||
import com.muyu.common.system.remote.RemoteLogService;
|
||||
import com.muyu.common.system.domain.SysOperLog;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
|
@ -12,9 +12,12 @@ import com.muyu.common.redis.service.RedisService;
|
|||
import com.muyu.common.security.annotation.InnerAuth;
|
||||
import com.muyu.common.security.annotation.RequiresPermissions;
|
||||
import com.muyu.common.system.domain.SysLogininfor;
|
||||
import com.muyu.system.domain.model.SysLogininforAddModel;
|
||||
import com.muyu.system.domain.model.SysLogininforExportModel;
|
||||
import com.muyu.system.domain.model.SysLogininforListModel;
|
||||
import com.muyu.system.domain.rep.SysLogininforAddReq;
|
||||
import com.muyu.system.domain.rep.SysLogininforListReq;
|
||||
import com.muyu.system.domain.resp.SysLogininforListResp;
|
||||
import com.muyu.system.service.SysLogininforService;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -36,12 +39,19 @@ public class SysLogininforController extends BaseController {
|
|||
@Autowired
|
||||
private RedisService redisService;
|
||||
|
||||
@RequiresPermissions("system:logininfor:list")
|
||||
/*@RequiresPermissions("system:logininfor:list")*/
|
||||
@PostMapping("/list")
|
||||
public Result<DataPageResp<SysLogininfor>> list (@RequestBody SysLogininforListReq sysLogininforListReq) {
|
||||
PageQueryModel<SysLogininfor> pageQueryModel = logininforService.pageQuery(SysLogininforListModel.reqBuild(sysLogininforListReq));
|
||||
public Result<DataPageResp<SysLogininforListResp>> list (@RequestBody SysLogininforListReq sysLogininforListReq) {
|
||||
PageQueryModel<SysLogininforListModel> pageQueryModel = logininforService.pageQuery(SysLogininforListModel.reqBuild(sysLogininforListReq));
|
||||
DataPageResp<SysLogininforListModel> sysLogininforListModelDataPageResp = DataPageResp.of(pageQueryModel);
|
||||
return Result.success(
|
||||
DataPageResp.of(pageQueryModel)
|
||||
DataPageResp.<SysLogininforListResp>builder()
|
||||
.rows(sysLogininforListModelDataPageResp.getRows()
|
||||
.stream()
|
||||
.map(SysLogininforListResp::buildSysLogininforResp)
|
||||
.toList())
|
||||
.total(sysLogininforListModelDataPageResp.getTotal())
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -80,8 +90,8 @@ public class SysLogininforController extends BaseController {
|
|||
|
||||
@InnerAuth
|
||||
@PostMapping
|
||||
public Result add (@RequestBody SysLogininfor logininfor) {
|
||||
logininforService.insertLogininfor(logininfor);
|
||||
public Result add (@RequestBody SysLogininforAddReq logininforAddReq) {
|
||||
logininforService.insertLogininfor(SysLogininforAddModel.of(logininforAddReq));
|
||||
return Result.success();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,10 @@ import com.muyu.common.log.enums.BusinessType;
|
|||
import com.muyu.common.security.annotation.RequiresPermissions;
|
||||
import com.muyu.common.security.utils.SecurityUtils;
|
||||
import com.muyu.system.domain.SysMenu;
|
||||
import com.muyu.system.domain.model.SysMenuListModel;
|
||||
import com.muyu.system.domain.rep.SysMenuListReq;
|
||||
import com.muyu.system.domain.resp.RoleMenuTreeResp;
|
||||
import com.muyu.system.domain.resp.SysMenuListResp;
|
||||
import com.muyu.system.service.SysMenuService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
@ -33,10 +36,12 @@ public class SysMenuController extends BaseController {
|
|||
*/
|
||||
@RequiresPermissions("system:menu:list")
|
||||
@PostMapping("/list")
|
||||
public Result list (@RequestBody SysMenu menu) {
|
||||
public Result<List<SysMenuListResp>> list (@RequestBody SysMenuListReq sysMenuListReq) {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
List<SysMenu> menus = menuService.selectMenuList(menu, userId);
|
||||
return success(menus);
|
||||
List<SysMenuListModel> menus = menuService.selectMenuList(SysMenuListModel.of(sysMenuListReq), userId);
|
||||
return success(menus.stream()
|
||||
.map(SysMenuListResp::buildSysMenuListResp)
|
||||
.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -52,10 +57,10 @@ public class SysMenuController extends BaseController {
|
|||
* 获取菜单下拉树列表
|
||||
*/
|
||||
@GetMapping("/treeselect")
|
||||
public Result treeselect (SysMenu menu) {
|
||||
public Result treeselect (SysMenuListReq sysMenuListReq) {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
List<SysMenu> menus = menuService.selectMenuList(menu, userId);
|
||||
return success(menuService.buildMenuTreeSelect(menus));
|
||||
List<SysMenuListModel> sysMenus = menuService.selectMenuList(SysMenuListModel.of(sysMenuListReq), userId);
|
||||
return success(menuService.buildMenuTreeSelect(sysMenus));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -64,7 +69,7 @@ public class SysMenuController extends BaseController {
|
|||
@GetMapping(value = "/roleMenuTreeselect/{roleId}")
|
||||
public Result roleMenuTreeselect (@PathVariable("roleId") Long roleId) {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
List<SysMenu> menus = menuService.selectMenuList(userId);
|
||||
List<SysMenuListModel> menus = menuService.selectMenuList(userId);
|
||||
return Result.success(
|
||||
RoleMenuTreeResp.builder()
|
||||
.menus(menuService.buildMenuTreeSelect(menus))
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
|
|||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import com.muyu.system.domain.model.SysMenuListModel;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
|
@ -155,4 +156,45 @@ public class SysMenu extends BaseEntity {
|
|||
return perms;
|
||||
}
|
||||
|
||||
public static SysMenu of(SysMenuListModel sysMenuListModel) {
|
||||
return SysMenu.builder()
|
||||
.menuId(sysMenuListModel.getMenuId())
|
||||
.menuName(sysMenuListModel.getMenuName())
|
||||
.parentName(sysMenuListModel.getParentName())
|
||||
.parentId(sysMenuListModel.getParentId())
|
||||
.orderNum(sysMenuListModel.getOrderNum())
|
||||
.path(sysMenuListModel.getPath())
|
||||
.component(sysMenuListModel.getComponent())
|
||||
.query(sysMenuListModel.getQuery())
|
||||
.isFrame(sysMenuListModel.getIsFrame())
|
||||
.isCache(sysMenuListModel.getIsCache())
|
||||
.menuType(sysMenuListModel.getMenuType())
|
||||
.visible(sysMenuListModel.getVisible())
|
||||
.status(sysMenuListModel.getStatus())
|
||||
.perms(sysMenuListModel.getPerms())
|
||||
.icon(sysMenuListModel.getIcon())
|
||||
.children(sysMenuListModel.getChildren())
|
||||
.build();
|
||||
}
|
||||
|
||||
public static SysMenu buildSysMenu(SysMenuListModel sysMenuListModel) {
|
||||
return SysMenu.builder()
|
||||
.menuId(sysMenuListModel.getMenuId())
|
||||
.menuName(sysMenuListModel.getMenuName())
|
||||
.parentName(sysMenuListModel.getParentName())
|
||||
.parentId(sysMenuListModel.getParentId())
|
||||
.orderNum(sysMenuListModel.getOrderNum())
|
||||
.path(sysMenuListModel.getPath())
|
||||
.component(sysMenuListModel.getComponent())
|
||||
.query(sysMenuListModel.getQuery())
|
||||
.isFrame(sysMenuListModel.getIsFrame())
|
||||
.isCache(sysMenuListModel.getIsCache())
|
||||
.menuType(sysMenuListModel.getMenuType())
|
||||
.visible(sysMenuListModel.getVisible())
|
||||
.status(sysMenuListModel.getStatus())
|
||||
.perms(sysMenuListModel.getPerms())
|
||||
.icon(sysMenuListModel.getIcon())
|
||||
.children(sysMenuListModel.getChildren())
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
package com.muyu.system.domain.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.muyu.common.system.domain.SysLogininfor;
|
||||
import com.muyu.system.domain.rep.SysLogininforAddReq;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @description: 登录添加模型
|
||||
* @author yangchoashun
|
||||
* @date 2025/2/23 17:24
|
||||
* @version 1.0
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class SysLogininforAddModel {
|
||||
/**
|
||||
* 访问ID
|
||||
*/
|
||||
private Long infoId;
|
||||
/**
|
||||
* 用户账号
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 状态 0成功 1失败
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 地址
|
||||
*/
|
||||
private String ipaddr;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String msg;
|
||||
|
||||
/**
|
||||
* 访问时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date accessTime;
|
||||
|
||||
public static SysLogininforAddModel of(SysLogininforAddReq sysLogininforAddReq) {
|
||||
return SysLogininforAddModel.builder()
|
||||
.infoId(sysLogininforAddReq.getInfoId())
|
||||
.userName(sysLogininforAddReq.getUserName())
|
||||
.status(sysLogininforAddReq.getStatus())
|
||||
.ipaddr(sysLogininforAddReq.getIpaddr())
|
||||
.msg(sysLogininforAddReq.getMsg())
|
||||
.accessTime(sysLogininforAddReq.getAccessTime())
|
||||
.build();
|
||||
}
|
||||
|
||||
public static SysLogininfor of(SysLogininforAddModel sysLogininforAddModel) {
|
||||
return SysLogininfor.builder()
|
||||
.infoId(sysLogininforAddModel.getInfoId())
|
||||
.userName(sysLogininforAddModel.getUserName())
|
||||
.status(sysLogininforAddModel.getStatus())
|
||||
.ipaddr(sysLogininforAddModel.getIpaddr())
|
||||
.msg(sysLogininforAddModel.getMsg())
|
||||
.accessTime(sysLogininforAddModel.getAccessTime())
|
||||
.build();
|
||||
}
|
||||
}
|
|
@ -1,6 +1,8 @@
|
|||
package com.muyu.system.domain.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.muyu.common.core.web.model.QueryModel;
|
||||
import com.muyu.common.system.domain.SysLogininfor;
|
||||
import com.muyu.system.domain.rep.SysLogininforListReq;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
|
@ -17,6 +19,10 @@ import java.util.Date;
|
|||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class SysLogininforListModel extends QueryModel<SysLogininforListModel> {
|
||||
/**
|
||||
* 访问ID
|
||||
*/
|
||||
private Long infoId;
|
||||
/**
|
||||
* IP地址
|
||||
*/
|
||||
|
@ -42,6 +48,16 @@ public class SysLogininforListModel extends QueryModel<SysLogininforListModel> {
|
|||
*/
|
||||
private Date endTime;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String msg;
|
||||
|
||||
/**
|
||||
* 访问时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date accessTime;
|
||||
public static SysLogininforListModel reqBuild(SysLogininforListReq req){
|
||||
return SysLogininforListModel.builder()
|
||||
.ipaddr(req.getIpaddr())
|
||||
|
@ -51,4 +67,14 @@ public class SysLogininforListModel extends QueryModel<SysLogininforListModel> {
|
|||
.build()
|
||||
.domainBuild(req);
|
||||
}
|
||||
|
||||
public static SysLogininforListModel buildSysLogininforListModel(SysLogininfor sysLogininfor) {
|
||||
return SysLogininforListModel.builder()
|
||||
.ipaddr(sysLogininfor.getIpaddr())
|
||||
.userName(sysLogininfor.getUserName())
|
||||
.status(sysLogininfor.getStatus())
|
||||
.msg(sysLogininfor.getMsg())
|
||||
.accessTime(sysLogininfor.getAccessTime())
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,146 @@
|
|||
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.SysMenuListReq;
|
||||
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 SysMenuListModel {
|
||||
private Long menuId;
|
||||
|
||||
/**
|
||||
* 菜单名称
|
||||
*/
|
||||
private String menuName;
|
||||
|
||||
/**
|
||||
* 父菜单名称
|
||||
*/
|
||||
private String parentName;
|
||||
|
||||
/**
|
||||
* 父菜单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 SysMenuListModel of(SysMenuListReq sysMenuListReq) {
|
||||
return SysMenuListModel.builder()
|
||||
.menuId(sysMenuListReq.getMenuId())
|
||||
.menuName(sysMenuListReq.getMenuName())
|
||||
.parentName(sysMenuListReq.getParentName())
|
||||
.parentId(sysMenuListReq.getParentId())
|
||||
.orderNum(sysMenuListReq.getOrderNum())
|
||||
.path(sysMenuListReq.getPath())
|
||||
.component(sysMenuListReq.getComponent())
|
||||
.query(sysMenuListReq.getQuery())
|
||||
.isFrame(sysMenuListReq.getIsFrame())
|
||||
.isCache(sysMenuListReq.getIsCache())
|
||||
.menuType(sysMenuListReq.getMenuType())
|
||||
.visible(sysMenuListReq.getVisible())
|
||||
.status(sysMenuListReq.getStatus())
|
||||
.perms(sysMenuListReq.getPerms())
|
||||
.icon(sysMenuListReq.getIcon())
|
||||
.children(sysMenuListReq.getChildren())
|
||||
.build();
|
||||
}
|
||||
|
||||
public static SysMenuListModel buildSysMenuListModel(SysMenu sysMenu) {
|
||||
return SysMenuListModel.builder()
|
||||
.menuId(sysMenu.getMenuId())
|
||||
.menuName(sysMenu.getMenuName())
|
||||
.parentName(sysMenu.getParentName())
|
||||
.parentId(sysMenu.getParentId())
|
||||
.orderNum(sysMenu.getOrderNum())
|
||||
.path(sysMenu.getPath())
|
||||
.component(sysMenu.getComponent())
|
||||
.query(sysMenu.getQuery())
|
||||
.isFrame(sysMenu.getIsFrame())
|
||||
.isCache(sysMenu.getIsCache())
|
||||
.menuType(sysMenu.getMenuType())
|
||||
.visible(sysMenu.getVisible())
|
||||
.status(sysMenu.getStatus())
|
||||
.perms(sysMenu.getPerms())
|
||||
.icon(sysMenu.getIcon())
|
||||
.children(sysMenu.getChildren())
|
||||
.build();
|
||||
}
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
package com.muyu.system.domain.model;
|
||||
|
||||
import com.muyu.common.core.web.model.QueryModel;
|
||||
import com.muyu.system.domain.rep.SysMenuAddReq;
|
||||
import com.muyu.system.domain.rep.SysMenuListReq;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
package com.muyu.system.domain.rep;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.muyu.common.core.annotation.Excel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @description: 登录添加请求
|
||||
* @author yangchoashun
|
||||
* @date 2025/2/23 17:24
|
||||
* @version 1.0
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class SysLogininforAddReq {
|
||||
/**
|
||||
* 访问ID
|
||||
*/
|
||||
private Long infoId;
|
||||
/**
|
||||
* 用户账号
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 状态 0成功 1失败
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 地址
|
||||
*/
|
||||
private String ipaddr;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String msg;
|
||||
|
||||
/**
|
||||
* 访问时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date accessTime;
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package com.muyu.system.domain.rep;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.muyu.common.core.web.page.PageReq;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
|
@ -34,10 +35,12 @@ public class SysLogininforListReq extends PageReq {
|
|||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date beginTime;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date endTime;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,103 @@
|
|||
package com.muyu.system.domain.rep;
|
||||
|
||||
import com.muyu.system.domain.SysMenu;
|
||||
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 SysMenuAddReq {
|
||||
private Long menuId;
|
||||
|
||||
/**
|
||||
* 菜单名称
|
||||
*/
|
||||
private String menuName;
|
||||
|
||||
/**
|
||||
* 父菜单名称
|
||||
*/
|
||||
private String parentName;
|
||||
|
||||
/**
|
||||
* 父菜单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>();
|
||||
}
|
|
@ -1,12 +1,16 @@
|
|||
package com.muyu.system.domain.rep;
|
||||
|
||||
import com.muyu.common.core.web.page.PageReq;
|
||||
import com.muyu.system.domain.SysMenu;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 菜单信息请求列表查询对象
|
||||
*
|
||||
|
@ -21,12 +25,84 @@ import lombok.experimental.SuperBuilder;
|
|||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class SysMenuListReq extends PageReq {
|
||||
private Long menuId;
|
||||
|
||||
/**
|
||||
* 菜单名称
|
||||
*/
|
||||
private String menuName;
|
||||
|
||||
/**
|
||||
* 父菜单名称
|
||||
*/
|
||||
private String parentName;
|
||||
|
||||
/**
|
||||
* 父菜单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>();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
package com.muyu.system.domain.resp;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.muyu.system.domain.model.SysLogininforListModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author yangchaoshun
|
||||
* @version 1.0
|
||||
* @description: 登录信息返回对象
|
||||
* @date 2025/2/23 18:18
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class SysLogininforListResp {
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
private Long infoId;
|
||||
|
||||
/**
|
||||
* 用户账号
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 状态 0成功 1失败
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 地址
|
||||
*/
|
||||
private String ipaddr;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String msg;
|
||||
|
||||
/**
|
||||
* 访问时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date accessTime;
|
||||
|
||||
public static SysLogininforListResp buildSysLogininforResp(SysLogininforListModel sysLogininforListModel) {
|
||||
return SysLogininforListResp.builder()
|
||||
.infoId(sysLogininforListModel.getInfoId())
|
||||
.userName(sysLogininforListModel.getUserName())
|
||||
.status(sysLogininforListModel.getStatus())
|
||||
.ipaddr(sysLogininforListModel.getIpaddr())
|
||||
.msg(sysLogininforListModel.getMsg())
|
||||
.accessTime(sysLogininforListModel.getAccessTime())
|
||||
.build();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,127 @@
|
|||
package com.muyu.system.domain.resp;
|
||||
|
||||
import com.muyu.system.domain.SysMenu;
|
||||
import com.muyu.system.domain.model.SysMenuListModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 菜单信息请求列表查询对象
|
||||
*
|
||||
* @ClassName SysMenuListReq
|
||||
* @Author AnNan.Wang
|
||||
* @Date 2024/12/16 10:55
|
||||
*/
|
||||
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class SysMenuListResp {
|
||||
private Long menuId;
|
||||
|
||||
/**
|
||||
* 菜单名称
|
||||
*/
|
||||
private String menuName;
|
||||
|
||||
/**
|
||||
* 父菜单名称
|
||||
*/
|
||||
private String parentName;
|
||||
|
||||
/**
|
||||
* 父菜单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 SysMenuListResp buildSysMenuListResp(SysMenuListModel sysMenuListModel){
|
||||
return SysMenuListResp.builder()
|
||||
.menuId(sysMenuListModel.getMenuId())
|
||||
.menuName(sysMenuListModel.getMenuName())
|
||||
.parentName(sysMenuListModel.getParentName())
|
||||
.parentId(sysMenuListModel.getParentId())
|
||||
.orderNum(sysMenuListModel.getOrderNum())
|
||||
.path(sysMenuListModel.getPath())
|
||||
.component(sysMenuListModel.getComponent())
|
||||
.query(sysMenuListModel.getQuery())
|
||||
.isFrame(sysMenuListModel.getIsFrame())
|
||||
.isCache(sysMenuListModel.getIsCache())
|
||||
.menuType(sysMenuListModel.getMenuType())
|
||||
.visible(sysMenuListModel.getVisible())
|
||||
.status(sysMenuListModel.getStatus())
|
||||
.perms(sysMenuListModel.getPerms())
|
||||
.icon(sysMenuListModel.getIcon())
|
||||
.children(sysMenuListModel.getChildren())
|
||||
.build();
|
||||
}
|
||||
}
|
|
@ -3,6 +3,7 @@ package com.muyu.system.service;
|
|||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.muyu.common.core.web.page.PageQueryModel;
|
||||
import com.muyu.common.system.domain.SysLogininfor;
|
||||
import com.muyu.system.domain.model.SysLogininforAddModel;
|
||||
import com.muyu.system.domain.model.SysLogininforExportModel;
|
||||
import com.muyu.system.domain.model.SysLogininforListModel;
|
||||
|
||||
|
@ -17,9 +18,9 @@ public interface SysLogininforService extends IService<SysLogininfor> {
|
|||
/**
|
||||
* 新增系统登录日志
|
||||
*
|
||||
* @param logininfor 访问日志对象
|
||||
* @param logininforAddModel 访问日志对象
|
||||
*/
|
||||
public void insertLogininfor (SysLogininfor logininfor);
|
||||
public void insertLogininfor (SysLogininforAddModel logininforAddModel);
|
||||
|
||||
/**
|
||||
* 查询系统登录日志集合
|
||||
|
@ -28,7 +29,7 @@ public interface SysLogininforService extends IService<SysLogininfor> {
|
|||
*
|
||||
* @return 登录记录集合
|
||||
*/
|
||||
public PageQueryModel<SysLogininfor> pageQuery(SysLogininforListModel sysLogininforListModel);
|
||||
public PageQueryModel<SysLogininforListModel> pageQuery(SysLogininforListModel sysLogininforListModel);
|
||||
|
||||
/**
|
||||
* 批量删除系统登录日志
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.muyu.system.service;
|
|||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.muyu.system.domain.SysMenu;
|
||||
import com.muyu.system.domain.model.SysMenuListModel;
|
||||
import com.muyu.system.domain.vo.RouterVo;
|
||||
import com.muyu.system.domain.vo.TreeSelect;
|
||||
|
||||
|
@ -21,17 +22,17 @@ public interface SysMenuService extends IService<SysMenu> {
|
|||
*
|
||||
* @return 菜单列表
|
||||
*/
|
||||
public List<SysMenu> selectMenuList (Long userId);
|
||||
public List<SysMenuListModel> selectMenuList (Long userId);
|
||||
|
||||
/**
|
||||
* 根据用户查询系统菜单列表
|
||||
*
|
||||
* @param menu 菜单信息
|
||||
* @param sysMenuListModel 菜单信息
|
||||
* @param userId 用户ID
|
||||
*
|
||||
* @return 菜单列表
|
||||
*/
|
||||
public List<SysMenu> selectMenuList (SysMenu menu, Long userId);
|
||||
public List<SysMenuListModel> selectMenuList (SysMenuListModel sysMenuListModel, Long userId);
|
||||
|
||||
/**
|
||||
* 根据用户ID查询权限
|
||||
|
@ -94,7 +95,7 @@ public interface SysMenuService extends IService<SysMenu> {
|
|||
*
|
||||
* @return 下拉树结构列表
|
||||
*/
|
||||
public List<TreeSelect> buildMenuTreeSelect (List<SysMenu> menus);
|
||||
public List<TreeSelect> buildMenuTreeSelect (List<SysMenuListModel> menus);
|
||||
|
||||
/**
|
||||
* 根据菜单ID查询信息
|
||||
|
|
|
@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||
import com.muyu.common.core.utils.StringUtils;
|
||||
import com.muyu.common.core.web.page.PageQueryModel;
|
||||
import com.muyu.common.system.domain.SysLogininfor;
|
||||
import com.muyu.system.domain.model.SysLogininforAddModel;
|
||||
import com.muyu.system.domain.model.SysLogininforExportModel;
|
||||
import com.muyu.system.domain.model.SysLogininforListModel;
|
||||
import com.muyu.system.mapper.SysLogininforMapper;
|
||||
|
@ -30,10 +31,11 @@ public class SysLogininforServiceImpl extends ServiceImpl<SysLogininforMapper, S
|
|||
/**
|
||||
* 新增系统登录日志
|
||||
*
|
||||
* @param logininfor 访问日志对象
|
||||
* @param logininforAddModel 访问日志对象
|
||||
*/
|
||||
@Override
|
||||
public void insertLogininfor (SysLogininfor logininfor) {
|
||||
public void insertLogininfor (SysLogininforAddModel logininforAddModel) {
|
||||
SysLogininfor logininfor = SysLogininforAddModel.of(logininforAddModel);
|
||||
this.save(logininfor);
|
||||
}
|
||||
|
||||
|
@ -45,14 +47,19 @@ public class SysLogininforServiceImpl extends ServiceImpl<SysLogininforMapper, S
|
|||
* @return 登录记录集合
|
||||
*/
|
||||
@Override
|
||||
public PageQueryModel<SysLogininfor> pageQuery(SysLogininforListModel pageQueryModel) {
|
||||
LambdaQueryWrapper<SysLogininfor> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.like(StringUtils.isNotEmpty(pageQueryModel.getIpaddr()), SysLogininfor::getIpaddr, pageQueryModel.getIpaddr());
|
||||
queryWrapper.eq(StringUtils.isNotEmpty(pageQueryModel.getStatus()), SysLogininfor::getStatus, pageQueryModel.getStatus());
|
||||
queryWrapper.like(StringUtils.isNotEmpty(pageQueryModel.getUserName()), SysLogininfor::getUserName, pageQueryModel.getUserName());
|
||||
queryWrapper.between(!ObjectUtil.hasNull(pageQueryModel.getBeginTime(),pageQueryModel.getEndTime()), SysLogininfor::getAccessTime, pageQueryModel.getBeginTime(), pageQueryModel.getEndTime());
|
||||
public PageQueryModel<SysLogininforListModel> pageQuery(SysLogininforListModel pageQueryModel) {
|
||||
LambdaQueryWrapper<SysLogininfor> queryWrapper = new LambdaQueryWrapper<SysLogininfor>()
|
||||
.like(StringUtils.isNotEmpty(pageQueryModel.getIpaddr()), SysLogininfor::getIpaddr, pageQueryModel.getIpaddr())
|
||||
.eq(StringUtils.isNotEmpty(pageQueryModel.getStatus()), SysLogininfor::getStatus, pageQueryModel.getStatus())
|
||||
.like(StringUtils.isNotEmpty(pageQueryModel.getUserName()), SysLogininfor::getUserName, pageQueryModel.getUserName())
|
||||
.between(!ObjectUtil.hasNull(pageQueryModel.getBeginTime(),pageQueryModel.getEndTime()), SysLogininfor::getAccessTime, pageQueryModel.getBeginTime(), pageQueryModel.getEndTime());
|
||||
Page<SysLogininfor> page = this.page(pageQueryModel.buildPage(), queryWrapper);
|
||||
return PageQueryModel.of(page);
|
||||
return new PageQueryModel<SysLogininforListModel>(){{
|
||||
setDataList(page.getRecords().stream()
|
||||
.map(SysLogininforListModel::buildSysLogininforListModel)
|
||||
.toList());
|
||||
setTotal(page.getTotal());
|
||||
}};
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -9,6 +9,7 @@ import com.muyu.common.security.utils.SecurityUtils;
|
|||
import com.muyu.common.system.domain.SysRole;
|
||||
import com.muyu.common.system.domain.SysUser;
|
||||
import com.muyu.system.domain.SysMenu;
|
||||
import com.muyu.system.domain.model.SysMenuListModel;
|
||||
import com.muyu.system.domain.vo.MetaVo;
|
||||
import com.muyu.system.domain.vo.RouterVo;
|
||||
import com.muyu.system.domain.vo.TreeSelect;
|
||||
|
@ -48,35 +49,39 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
* @return 菜单列表
|
||||
*/
|
||||
@Override
|
||||
public List<SysMenu> selectMenuList (Long userId) {
|
||||
return selectMenuList(new SysMenu(), userId);
|
||||
public List<SysMenuListModel> selectMenuList (Long userId) {
|
||||
return selectMenuList(new SysMenuListModel(), userId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询系统菜单列表
|
||||
*
|
||||
* @param menu 菜单信息
|
||||
* @param sysMenuListModel 菜单信息
|
||||
*
|
||||
* @return 菜单列表
|
||||
*/
|
||||
@Override
|
||||
public List<SysMenu> selectMenuList (SysMenu menu, Long userId) {
|
||||
public List<SysMenuListModel> selectMenuList (SysMenuListModel sysMenuListModel, Long userId) {
|
||||
List<SysMenu> menuList = null;
|
||||
// 管理员显示所有菜单信息
|
||||
if (SysUser.isAdmin(userId)) {
|
||||
LambdaQueryWrapper<SysMenu> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.like(StringUtils.isNotBlank(menu.getMenuName()), SysMenu::getMenuName, menu.getMenuName());
|
||||
lambdaQueryWrapper.eq(StringUtils.isNotBlank(menu.getVisible()), SysMenu::getVisible, menu.getVisible());
|
||||
lambdaQueryWrapper.eq(StringUtils.isNotEmpty(menu.getStatus()), SysMenu::getStatus, menu.getStatus());
|
||||
lambdaQueryWrapper.like(StringUtils.isNotBlank(sysMenuListModel.getMenuName()), SysMenu::getMenuName, sysMenuListModel.getMenuName());
|
||||
lambdaQueryWrapper.eq(StringUtils.isNotBlank(sysMenuListModel.getVisible()), SysMenu::getVisible, sysMenuListModel.getVisible());
|
||||
lambdaQueryWrapper.eq(StringUtils.isNotEmpty(sysMenuListModel.getStatus()), SysMenu::getStatus, sysMenuListModel.getStatus());
|
||||
lambdaQueryWrapper.orderByAsc(
|
||||
SysMenu::getParentId, SysMenu::getOrderNum
|
||||
);
|
||||
menuList = this.list(lambdaQueryWrapper);
|
||||
} else {
|
||||
SysMenu menu = SysMenu.of(sysMenuListModel);
|
||||
menu.getParams().put("userId", userId);
|
||||
menuList = menuMapper.selectMenuListByUserId(menu);
|
||||
}
|
||||
return menuList;
|
||||
|
||||
return menuList.stream()
|
||||
.map(SysMenuListModel::buildSysMenuListModel)
|
||||
.toList();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -247,8 +252,8 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
* @return 下拉树结构列表
|
||||
*/
|
||||
@Override
|
||||
public List<TreeSelect> buildMenuTreeSelect (List<SysMenu> menus) {
|
||||
List<SysMenu> menuTrees = buildMenuTree(menus);
|
||||
public List<TreeSelect> buildMenuTreeSelect (List<SysMenuListModel> menus) {
|
||||
List<SysMenu> menuTrees = buildMenuTree(menus.stream().map(SysMenu::buildSysMenu).collect(Collectors.toList()));
|
||||
return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ nacos:
|
|||
spring:
|
||||
main:
|
||||
allow-bean-definition-overriding: true
|
||||
allow-circular-references: true
|
||||
application:
|
||||
# 应用名称
|
||||
name: cloud-system
|
||||
|
|
Loading…
Reference in New Issue