Merge remote-tracking branch 'origin/boot3.0' into boot3.0

boot3.0
21407 2025-02-23 22:42:57 +08:00
commit ee7b1a53f4
20 changed files with 786 additions and 42 deletions

View File

@ -3,10 +3,8 @@ package com.muyu.common.system.domain;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.annotation.Excel; import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.annotation.Excel.ColumnType; import com.muyu.common.core.annotation.Excel.ColumnType;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder; 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") @Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date accessTime; private Date accessTime;
} }

View File

@ -1,8 +1,8 @@
package com.muyu.common.system.remote.factory; package com.muyu.common.system.remote.factory;
import com.muyu.common.core.domain.Result; 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.domain.SysLogininfor;
import com.muyu.common.system.remote.RemoteLogService;
import com.muyu.common.system.domain.SysOperLog; import com.muyu.common.system.domain.SysOperLog;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;

View File

@ -12,9 +12,12 @@ import com.muyu.common.redis.service.RedisService;
import com.muyu.common.security.annotation.InnerAuth; import com.muyu.common.security.annotation.InnerAuth;
import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.common.system.domain.SysLogininfor; 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.SysLogininforExportModel;
import com.muyu.system.domain.model.SysLogininforListModel; 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.rep.SysLogininforListReq;
import com.muyu.system.domain.resp.SysLogininforListResp;
import com.muyu.system.service.SysLogininforService; import com.muyu.system.service.SysLogininforService;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -38,10 +41,17 @@ public class SysLogininforController extends BaseController {
@RequiresPermissions("system:logininfor:list") @RequiresPermissions("system:logininfor:list")
@PostMapping("/list") @PostMapping("/list")
public Result<DataPageResp<SysLogininfor>> list (@RequestBody SysLogininforListReq sysLogininforListReq) { public Result<DataPageResp<SysLogininforListResp>> list (@RequestBody SysLogininforListReq sysLogininforListReq) {
PageQueryModel<SysLogininfor> pageQueryModel = logininforService.pageQuery(SysLogininforListModel.reqBuild(sysLogininforListReq)); PageQueryModel<SysLogininforListModel> pageQueryModel = logininforService.pageQuery(SysLogininforListModel.reqBuild(sysLogininforListReq));
DataPageResp<SysLogininforListModel> sysLogininforListModelDataPageResp = DataPageResp.of(pageQueryModel);
return Result.success( 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 @InnerAuth
@PostMapping @PostMapping
public Result add (@RequestBody SysLogininfor logininfor) { public Result add (@RequestBody SysLogininforAddReq logininforAddReq) {
logininforService.insertLogininfor(logininfor); logininforService.insertLogininfor(SysLogininforAddModel.of(logininforAddReq));
return Result.success(); return Result.success();
} }
} }

View File

@ -9,7 +9,10 @@ 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.SysMenuListModel;
import com.muyu.system.domain.rep.SysMenuListReq;
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.service.SysMenuService; import com.muyu.system.service.SysMenuService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -33,10 +36,12 @@ public class SysMenuController extends BaseController {
*/ */
@RequiresPermissions("system:menu:list") @RequiresPermissions("system:menu:list")
@PostMapping("/list") @PostMapping("/list")
public Result list (@RequestBody SysMenu menu) { public Result<List<SysMenuListResp>> list (@RequestBody SysMenuListReq sysMenuListReq) {
Long userId = SecurityUtils.getUserId(); Long userId = SecurityUtils.getUserId();
List<SysMenu> menus = menuService.selectMenuList(menu, userId); List<SysMenuListModel> menus = menuService.selectMenuList(SysMenuListModel.of(sysMenuListReq), userId);
return success(menus); return success(menus.stream()
.map(SysMenuListResp::buildSysMenuListResp)
.toList());
} }
/** /**
@ -52,10 +57,10 @@ public class SysMenuController extends BaseController {
* *
*/ */
@GetMapping("/treeselect") @GetMapping("/treeselect")
public Result treeselect (SysMenu menu) { public Result treeselect (SysMenuListReq sysMenuListReq) {
Long userId = SecurityUtils.getUserId(); Long userId = SecurityUtils.getUserId();
List<SysMenu> menus = menuService.selectMenuList(menu, userId); List<SysMenuListModel> sysMenus = menuService.selectMenuList(SysMenuListModel.of(sysMenuListReq), userId);
return success(menuService.buildMenuTreeSelect(menus)); return success(menuService.buildMenuTreeSelect(sysMenus));
} }
/** /**
@ -64,7 +69,7 @@ public class SysMenuController extends BaseController {
@GetMapping(value = "/roleMenuTreeselect/{roleId}") @GetMapping(value = "/roleMenuTreeselect/{roleId}")
public Result roleMenuTreeselect (@PathVariable("roleId") Long roleId) { public Result roleMenuTreeselect (@PathVariable("roleId") Long roleId) {
Long userId = SecurityUtils.getUserId(); Long userId = SecurityUtils.getUserId();
List<SysMenu> menus = menuService.selectMenuList(userId); List<SysMenuListModel> menus = menuService.selectMenuList(userId);
return Result.success( return Result.success(
RoleMenuTreeResp.builder() RoleMenuTreeResp.builder()
.menus(menuService.buildMenuTreeSelect(menus)) .menus(menuService.buildMenuTreeSelect(menus))

View File

@ -5,6 +5,7 @@ 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.SysMenuListModel;
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;
@ -155,4 +156,45 @@ public class SysMenu extends BaseEntity {
return perms; 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();
}
} }

View File

@ -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();
}
}

View File

@ -1,6 +1,8 @@
package com.muyu.system.domain.model; package com.muyu.system.domain.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.web.model.QueryModel; import com.muyu.common.core.web.model.QueryModel;
import com.muyu.common.system.domain.SysLogininfor;
import com.muyu.system.domain.rep.SysLogininforListReq; import com.muyu.system.domain.rep.SysLogininforListReq;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
@ -17,6 +19,10 @@ import java.util.Date;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class SysLogininforListModel extends QueryModel<SysLogininforListModel> { public class SysLogininforListModel extends QueryModel<SysLogininforListModel> {
/**
* 访ID
*/
private Long infoId;
/** /**
* IP * IP
*/ */
@ -42,6 +48,16 @@ public class SysLogininforListModel extends QueryModel<SysLogininforListModel> {
*/ */
private Date endTime; 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){ public static SysLogininforListModel reqBuild(SysLogininforListReq req){
return SysLogininforListModel.builder() return SysLogininforListModel.builder()
.ipaddr(req.getIpaddr()) .ipaddr(req.getIpaddr())
@ -51,4 +67,14 @@ public class SysLogininforListModel extends QueryModel<SysLogininforListModel> {
.build() .build()
.domainBuild(req); .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();
}
} }

View File

@ -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();
}
}

View File

@ -1,6 +1,7 @@
package com.muyu.system.domain.model; package com.muyu.system.domain.model;
import com.muyu.common.core.web.model.QueryModel; import com.muyu.common.core.web.model.QueryModel;
import com.muyu.system.domain.rep.SysMenuAddReq;
import com.muyu.system.domain.rep.SysMenuListReq; import com.muyu.system.domain.rep.SysMenuListReq;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;

View File

@ -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;
}

View File

@ -1,5 +1,6 @@
package com.muyu.system.domain.rep; package com.muyu.system.domain.rep;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.web.page.PageReq; import com.muyu.common.core.web.page.PageReq;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; 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; private Date beginTime;
/** /**
* *
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date endTime; private Date endTime;
} }

View File

@ -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>();
}

View File

@ -1,12 +1,16 @@
package com.muyu.system.domain.rep; package com.muyu.system.domain.rep;
import com.muyu.common.core.web.page.PageReq; import com.muyu.common.core.web.page.PageReq;
import com.muyu.system.domain.SysMenu;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
import java.util.ArrayList;
import java.util.List;
/** /**
* *
* *
@ -21,12 +25,84 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor @AllArgsConstructor
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class SysMenuListReq extends PageReq { public class SysMenuListReq extends PageReq {
private Long menuId;
/** /**
* *
*/ */
private String menuName; 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 * 0 1
*/ */
private String status; private String status;
/**
*
*/
private String perms;
/**
*
*/
private String icon;
/**
*
*/
private List<SysMenu> children = new ArrayList<SysMenu>();
} }

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -3,6 +3,7 @@ package com.muyu.system.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.core.web.page.PageQueryModel; import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.common.system.domain.SysLogininfor; 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.SysLogininforExportModel;
import com.muyu.system.domain.model.SysLogininforListModel; 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 * @return
*/ */
public PageQueryModel<SysLogininfor> pageQuery(SysLogininforListModel sysLogininforListModel); public PageQueryModel<SysLogininforListModel> pageQuery(SysLogininforListModel sysLogininforListModel);
/** /**
* *

View File

@ -2,6 +2,7 @@ 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.SysMenuListModel;
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;
@ -21,17 +22,17 @@ public interface SysMenuService extends IService<SysMenu> {
* *
* @return * @return
*/ */
public List<SysMenu> selectMenuList (Long userId); public List<SysMenuListModel> selectMenuList (Long userId);
/** /**
* *
* *
* @param menu * @param sysMenuListModel
* @param userId ID * @param userId ID
* *
* @return * @return
*/ */
public List<SysMenu> selectMenuList (SysMenu menu, Long userId); public List<SysMenuListModel> selectMenuList (SysMenuListModel sysMenuListModel, Long userId);
/** /**
* ID * ID
@ -94,7 +95,7 @@ public interface SysMenuService extends IService<SysMenu> {
* *
* @return * @return
*/ */
public List<TreeSelect> buildMenuTreeSelect (List<SysMenu> menus); public List<TreeSelect> buildMenuTreeSelect (List<SysMenuListModel> menus);
/** /**
* ID * ID

View File

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.StringUtils;
import com.muyu.common.core.web.page.PageQueryModel; import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.common.system.domain.SysLogininfor; 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.SysLogininforExportModel;
import com.muyu.system.domain.model.SysLogininforListModel; import com.muyu.system.domain.model.SysLogininforListModel;
import com.muyu.system.mapper.SysLogininforMapper; import com.muyu.system.mapper.SysLogininforMapper;
@ -30,10 +31,11 @@ public class SysLogininforServiceImpl extends ServiceImpl<SysLogininforMapper, S
/** /**
* *
* *
* @param logininfor 访 * @param logininforAddModel 访
*/ */
@Override @Override
public void insertLogininfor (SysLogininfor logininfor) { public void insertLogininfor (SysLogininforAddModel logininforAddModel) {
SysLogininfor logininfor = SysLogininforAddModel.of(logininforAddModel);
this.save(logininfor); this.save(logininfor);
} }
@ -45,14 +47,19 @@ public class SysLogininforServiceImpl extends ServiceImpl<SysLogininforMapper, S
* @return * @return
*/ */
@Override @Override
public PageQueryModel<SysLogininfor> pageQuery(SysLogininforListModel pageQueryModel) { public PageQueryModel<SysLogininforListModel> pageQuery(SysLogininforListModel pageQueryModel) {
LambdaQueryWrapper<SysLogininfor> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysLogininfor> queryWrapper = new LambdaQueryWrapper<SysLogininfor>()
queryWrapper.like(StringUtils.isNotEmpty(pageQueryModel.getIpaddr()), SysLogininfor::getIpaddr, pageQueryModel.getIpaddr()); .like(StringUtils.isNotEmpty(pageQueryModel.getIpaddr()), SysLogininfor::getIpaddr, pageQueryModel.getIpaddr())
queryWrapper.eq(StringUtils.isNotEmpty(pageQueryModel.getStatus()), SysLogininfor::getStatus, pageQueryModel.getStatus()); .eq(StringUtils.isNotEmpty(pageQueryModel.getStatus()), SysLogininfor::getStatus, pageQueryModel.getStatus())
queryWrapper.like(StringUtils.isNotEmpty(pageQueryModel.getUserName()), SysLogininfor::getUserName, pageQueryModel.getUserName()); .like(StringUtils.isNotEmpty(pageQueryModel.getUserName()), SysLogininfor::getUserName, pageQueryModel.getUserName())
queryWrapper.between(!ObjectUtil.hasNull(pageQueryModel.getBeginTime(),pageQueryModel.getEndTime()), SysLogininfor::getAccessTime, pageQueryModel.getBeginTime(), pageQueryModel.getEndTime()); .between(!ObjectUtil.hasNull(pageQueryModel.getBeginTime(),pageQueryModel.getEndTime()), SysLogininfor::getAccessTime, pageQueryModel.getBeginTime(), pageQueryModel.getEndTime());
Page<SysLogininfor> page = this.page(pageQueryModel.buildPage(), queryWrapper); 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());
}};
} }
/** /**

View File

@ -9,6 +9,7 @@ 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.SysMenuListModel;
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;
@ -48,35 +49,39 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* @return * @return
*/ */
@Override @Override
public List<SysMenu> selectMenuList (Long userId) { public List<SysMenuListModel> selectMenuList (Long userId) {
return selectMenuList(new SysMenu(), userId); return selectMenuList(new SysMenuListModel(), userId);
} }
/** /**
* *
* *
* @param menu * @param sysMenuListModel
* *
* @return * @return
*/ */
@Override @Override
public List<SysMenu> selectMenuList (SysMenu menu, Long userId) { public List<SysMenuListModel> selectMenuList (SysMenuListModel sysMenuListModel, Long userId) {
List<SysMenu> menuList = null; List<SysMenu> menuList = null;
// 管理员显示所有菜单信息 // 管理员显示所有菜单信息
if (SysUser.isAdmin(userId)) { if (SysUser.isAdmin(userId)) {
LambdaQueryWrapper<SysMenu> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysMenu> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.like(StringUtils.isNotBlank(menu.getMenuName()), SysMenu::getMenuName, menu.getMenuName()); lambdaQueryWrapper.like(StringUtils.isNotBlank(sysMenuListModel.getMenuName()), SysMenu::getMenuName, sysMenuListModel.getMenuName());
lambdaQueryWrapper.eq(StringUtils.isNotBlank(menu.getVisible()), SysMenu::getVisible, menu.getVisible()); lambdaQueryWrapper.eq(StringUtils.isNotBlank(sysMenuListModel.getVisible()), SysMenu::getVisible, sysMenuListModel.getVisible());
lambdaQueryWrapper.eq(StringUtils.isNotEmpty(menu.getStatus()), SysMenu::getStatus, menu.getStatus()); lambdaQueryWrapper.eq(StringUtils.isNotEmpty(sysMenuListModel.getStatus()), SysMenu::getStatus, sysMenuListModel.getStatus());
lambdaQueryWrapper.orderByAsc( lambdaQueryWrapper.orderByAsc(
SysMenu::getParentId, SysMenu::getOrderNum SysMenu::getParentId, SysMenu::getOrderNum
); );
menuList = this.list(lambdaQueryWrapper); menuList = this.list(lambdaQueryWrapper);
} else { } else {
SysMenu menu = SysMenu.of(sysMenuListModel);
menu.getParams().put("userId", userId); menu.getParams().put("userId", userId);
menuList = menuMapper.selectMenuListByUserId(menu); 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 * @return
*/ */
@Override @Override
public List<TreeSelect> buildMenuTreeSelect (List<SysMenu> menus) { public List<TreeSelect> buildMenuTreeSelect (List<SysMenuListModel> menus) {
List<SysMenu> menuTrees = buildMenuTree(menus); List<SysMenu> menuTrees = buildMenuTree(menus.stream().map(SysMenu::buildSysMenu).collect(Collectors.toList()));
return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
} }

View File

@ -12,6 +12,7 @@ nacos:
spring: spring:
main: main:
allow-bean-definition-overriding: true allow-bean-definition-overriding: true
allow-circular-references: true
application: application:
# 应用名称 # 应用名称
name: cloud-system name: cloud-system