diff --git a/ZR.Admin.WebApi/Controllers/System/SysMenuController.cs b/ZR.Admin.WebApi/Controllers/System/SysMenuController.cs
index 10e2f16..3c432fe 100644
--- a/ZR.Admin.WebApi/Controllers/System/SysMenuController.cs
+++ b/ZR.Admin.WebApi/Controllers/System/SysMenuController.cs
@@ -9,6 +9,7 @@ using ZR.Model.System.Dto;
using ZR.Model.System;
using ZR.Service.System.IService;
using ZR.Model;
+using Mapster;
namespace ZR.Admin.WebApi.Controllers.System
{
@@ -87,28 +88,34 @@ namespace ZR.Admin.WebApi.Controllers.System
///
/// 修改菜单 √
///
- ///
+ ///
///
[HttpPost("edit")]
[Log(Title = "菜单管理", BusinessType = BusinessType.UPDATE)]
[ActionPermissionFilter(Permission = "system:menu:edit")]
- public IActionResult MenuEdit([FromBody] SysMenu MenuDto)
+ public IActionResult MenuEdit([FromBody] MenuDto menuDto)
{
- if (MenuDto == null) { return ToResponse(ApiResult.Error(101, "请求参数错误")); }
+ if (menuDto == null) { return ToResponse(ApiResult.Error(101, "请求参数错误")); }
//if (UserConstants.NOT_UNIQUE.Equals(sysMenuService.CheckMenuNameUnique(MenuDto)))
//{
// return ToResponse(ApiResult.Error($"修改菜单'{MenuDto.menuName}'失败,菜单名称已存在"));
//}
- if (UserConstants.YES_FRAME.Equals(MenuDto.isFrame) && !MenuDto.path.StartsWith("http"))
+ var config = new TypeAdapterConfig();
+ //映射规则
+ config.ForType()
+ .NameMatchingStrategy(NameMatchingStrategy.IgnoreCase);//忽略字段名称的大小写;//忽略除以上配置的所有字段
+
+ var modal = menuDto.Adapt(config).ToUpdate(HttpContext);
+ if (UserConstants.YES_FRAME.Equals(modal.isFrame) && !modal.path.StartsWith("http"))
{
- return ToResponse(ApiResult.Error($"修改菜单'{MenuDto.menuName}'失败,地址必须以http(s)://开头"));
+ return ToResponse(ApiResult.Error($"修改菜单'{modal.MenuName}'失败,地址必须以http(s)://开头"));
}
- if (MenuDto.menuId.Equals(MenuDto.parentId))
+ if (modal.MenuId.Equals(modal.parentId))
{
- return ToResponse(ApiResult.Error($"修改菜单'{MenuDto.menuName}'失败,上级菜单不能选择自己"));
+ return ToResponse(ApiResult.Error($"修改菜单'{modal.MenuName}'失败,上级菜单不能选择自己"));
}
- MenuDto.Update_by = User.Identity.Name;
- int result = sysMenuService.EditMenu(MenuDto);
+ modal.Update_by = HttpContext.GetName();
+ int result = sysMenuService.EditMenu(modal);
return ToResponse(result);
}
@@ -126,11 +133,11 @@ namespace ZR.Admin.WebApi.Controllers.System
if (MenuDto == null) { return ToResponse(ApiResult.Error(101, "请求参数错误")); }
if (UserConstants.NOT_UNIQUE.Equals(sysMenuService.CheckMenuNameUnique(MenuDto)))
{
- return ToResponse(ApiResult.Error($"新增菜单'{MenuDto.menuName}'失败,菜单名称已存在"));
+ return ToResponse(ApiResult.Error($"新增菜单'{MenuDto.MenuName}'失败,菜单名称已存在"));
}
if (UserConstants.YES_FRAME.Equals(MenuDto.isFrame) && !MenuDto.path.StartsWith("http"))
{
- return ToResponse(ApiResult.Error($"新增菜单'{MenuDto.menuName}'失败,地址必须以http(s)://开头"));
+ return ToResponse(ApiResult.Error($"新增菜单'{MenuDto.MenuName}'失败,地址必须以http(s)://开头"));
}
MenuDto.Create_by = User.Identity.Name;
diff --git a/ZR.Model/System/Dto/MenuDto.cs b/ZR.Model/System/Dto/MenuDto.cs
index 0fa5671..76714b8 100644
--- a/ZR.Model/System/Dto/MenuDto.cs
+++ b/ZR.Model/System/Dto/MenuDto.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
using System.Text;
namespace ZR.Model.System.Dto
@@ -7,18 +8,65 @@ namespace ZR.Model.System.Dto
public class MenuDto
{
//{"parentId":0,"menuName":"aaa","icon":"documentation","menuType":"M","orderNum":999,"visible":0,"status":0,"path":"aaa"}
- public int parentId { get; set; }
- public string menuName { get; set; }
- public string icon { get; set; } = "";
- public string menuType { get; set; }
- public int orderNum { get; set; }
- public int visible { get; set; }
- public int status { get; set; }
- public string path { get; set; } = "#";
+ [Required(ErrorMessage = "菜单id不能为空")]
public int MenuId { get; set; }
+ public string MenuName { get; set; }
+ ///
+ /// 父菜单ID
+ ///
+ public long parentId { get; set; }
+
+ ///
+ /// 显示顺序
+ ///
+ public int orderNum { get; set; }
+
+ ///
+ /// 路由地址
+ ///
+ public string path { get; set; } = "#";
+
+ ///
+ /// 组件路径
+ ///
public string component { get; set; }
- public int isCache { get; set; }
- public int isFrame { get; set; }
- public string perms { get; set; } = "";
+
+ ///
+ /// 是否缓存(1缓存 0不缓存)
+ ///
+ [Required(ErrorMessage = "是否缓存不能为空")]
+ public string isCache { get; set; }
+ ///
+ /// 是否外链 1、是 0、否
+ ///
+ public string isFrame { get; set; }
+
+ ///
+ /// 类型(M目录 C菜单 F按钮 L链接)
+ ///
+ [Required(ErrorMessage = "菜单类型不能为空")]
+ public string menuType { get; set; }
+
+ ///
+ /// 显示状态(0显示 1隐藏)
+ ///
+ [Required(ErrorMessage = "显示状态不能为空")]
+ public string visible { get; set; }
+
+ ///
+ /// 菜单状态(0正常 1停用)
+ ///
+ [Required(ErrorMessage = "菜单状态不能为空")]
+ public string status { get; set; }
+
+ ///
+ /// 权限字符串
+ ///
+ public string perms { get; set; }
+
+ ///
+ /// 菜单图标
+ ///
+ public string icon { get; set; } = string.Empty;
}
}
diff --git a/ZR.Model/System/SysMenu.cs b/ZR.Model/System/SysMenu.cs
index d82e380..b44da88 100644
--- a/ZR.Model/System/SysMenu.cs
+++ b/ZR.Model/System/SysMenu.cs
@@ -14,12 +14,12 @@ namespace ZR.Model.System
/// 菜单ID
///
//[Key]//非自动增长主键时使用ExplicitKey
- [SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
- public long menuId { get; set; }
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public long MenuId { get; set; }
///
/// 菜单名称
///
- public string menuName { get; set; }
+ public string MenuName { get; set; }
///
/// 父菜单名称
diff --git a/ZR.Model/System/Vo/TreeSelectVo.cs b/ZR.Model/System/Vo/TreeSelectVo.cs
index 46ed195..83409c7 100644
--- a/ZR.Model/System/Vo/TreeSelectVo.cs
+++ b/ZR.Model/System/Vo/TreeSelectVo.cs
@@ -24,8 +24,8 @@ namespace ZR.Model.Vo.System
public TreeSelectVo(SysMenu menu)
{
- Id = menu.menuId;
- Label = menu.menuName;
+ Id = menu.MenuId;
+ Label = menu.MenuName;
//menu.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); java写法
List child = new List();
diff --git a/ZR.Repository/System/SysMenuRepository.cs b/ZR.Repository/System/SysMenuRepository.cs
index 6becc3b..b66b914 100644
--- a/ZR.Repository/System/SysMenuRepository.cs
+++ b/ZR.Repository/System/SysMenuRepository.cs
@@ -21,7 +21,7 @@ namespace ZR.Repository.System
public List SelectTreeMenuList(SysMenu menu)
{
return Context.Queryable()
- .WhereIF(!string.IsNullOrEmpty(menu.menuName), it => it.menuName.Contains(menu.menuName))
+ .WhereIF(!string.IsNullOrEmpty(menu.MenuName), it => it.MenuName.Contains(menu.MenuName))
.WhereIF(!string.IsNullOrEmpty(menu.visible), it => it.visible == menu.visible)
.WhereIF(!string.IsNullOrEmpty(menu.status), it => it.status == menu.status)
.OrderBy(it => new { it.parentId, it.orderNum })
@@ -40,8 +40,8 @@ namespace ZR.Repository.System
.Where(r => roles.Contains(r.Role_id));
return Context.Queryable()
- .InnerJoin(roleMenus, (c, j) => c.menuId == j.Menu_id)
- .WhereIF(!string.IsNullOrEmpty(sysMenu.menuName), (c, j) => c.menuName.Contains(sysMenu.menuName))
+ .InnerJoin(roleMenus, (c, j) => c.MenuId == j.Menu_id)
+ .WhereIF(!string.IsNullOrEmpty(sysMenu.MenuName), (c, j) => c.MenuName.Contains(sysMenu.MenuName))
.WhereIF(!string.IsNullOrEmpty(sysMenu.visible), (c, j) => c.visible == sysMenu.visible)
.WhereIF(!string.IsNullOrEmpty(sysMenu.status), (c, j) => c.status == sysMenu.status)
.OrderBy((c, j) => new { c.parentId, c.orderNum })
@@ -56,7 +56,7 @@ namespace ZR.Repository.System
public List SelectMenuList(SysMenu menu)
{
return Context.Queryable()
- .WhereIF(!string.IsNullOrEmpty(menu.menuName), it => it.menuName.Contains(menu.menuName))
+ .WhereIF(!string.IsNullOrEmpty(menu.MenuName), it => it.MenuName.Contains(menu.MenuName))
.WhereIF(!string.IsNullOrEmpty(menu.visible), it => it.visible == menu.visible)
.WhereIF(!string.IsNullOrEmpty(menu.status), it => it.status == menu.status)
.OrderBy(it => new { it.parentId, it.orderNum })
@@ -75,9 +75,9 @@ namespace ZR.Repository.System
.Where(r => roles.Contains(r.Role_id));
return Context.Queryable()
- .InnerJoin(roleMenus, (c, j) => c.menuId == j.Menu_id)
+ .InnerJoin(roleMenus, (c, j) => c.MenuId == j.Menu_id)
.Where((c, j) => c.status == "0")
- .WhereIF(!string.IsNullOrEmpty(sysMenu.menuName), (c, j) => c.menuName.Contains(sysMenu.menuName))
+ .WhereIF(!string.IsNullOrEmpty(sysMenu.MenuName), (c, j) => c.MenuName.Contains(sysMenu.MenuName))
.WhereIF(!string.IsNullOrEmpty(sysMenu.visible), (c, j) => c.visible == sysMenu.visible)
.OrderBy((c, j) => new { c.parentId, c.orderNum })
.Select(c => c)
@@ -111,7 +111,7 @@ namespace ZR.Repository.System
.Where((menu) =>
menuTypes.Contains(menu.menuType)
&& menu.status == "0"
- && SqlFunc.Subqueryable().Where( s => roleIds.Contains(s.Role_id) && s.Menu_id == menu.menuId).Any())
+ && SqlFunc.Subqueryable().Where( s => roleIds.Contains(s.Role_id) && s.Menu_id == menu.MenuId).Any())
.OrderBy((menu) => new { menu.parentId, menu.orderNum })
.Select((menu) => menu).ToList();
}
@@ -125,7 +125,7 @@ namespace ZR.Repository.System
///
public SysMenu SelectMenuById(int menuId)
{
- return Context.Queryable().Where(it => it.menuId == menuId).Single();
+ return Context.Queryable().Where(it => it.MenuId == menuId).Single();
}
///
@@ -137,7 +137,7 @@ namespace ZR.Repository.System
{
var Db = Context;
menu.Create_time = Db.GetDate();
- menu.menuId = Db.Insertable(menu).ExecuteReturnIdentity();
+ menu.MenuId = Db.Insertable(menu).ExecuteReturnIdentity();
return 1;
}
@@ -158,7 +158,7 @@ namespace ZR.Repository.System
///
public int DeleteMenuById(int menuId)
{
- return Context.Deleteable().Where(it => it.menuId == menuId).ExecuteCommand();
+ return Context.Deleteable().Where(it => it.MenuId == menuId).ExecuteCommand();
}
///
@@ -168,7 +168,7 @@ namespace ZR.Repository.System
///
public int ChangeSortMenu(MenuDto menuDto)
{
- var result = Context.Updateable(new SysMenu() { menuId = menuDto.MenuId, orderNum = menuDto.orderNum })
+ var result = Context.Updateable(new SysMenu() { MenuId = menuDto.MenuId, orderNum = menuDto.orderNum })
.UpdateColumns(it => new { it.orderNum }).ExecuteCommand();
return result;
}
@@ -181,7 +181,7 @@ namespace ZR.Repository.System
public List SelectMenuPermsByUserId(long userId)
{
return Context.Queryable((m, rm, ur, r) => new JoinQueryInfos(
- JoinType.Left, m.menuId == rm.Menu_id,
+ JoinType.Left, m.MenuId == rm.Menu_id,
JoinType.Left, rm.Role_id == ur.RoleId,
JoinType.Left, ur.RoleId == r.RoleId
))
@@ -198,7 +198,7 @@ namespace ZR.Repository.System
public SysMenu CheckMenuNameUnique(SysMenu menu)
{
return Context.Queryable()
- .Where(it => it.menuName == menu.menuName && it.parentId == menu.parentId).Single();
+ .Where(it => it.MenuName == menu.MenuName && it.parentId == menu.parentId).Single();
}
///
diff --git a/ZR.Service/System/SysMenuService.cs b/ZR.Service/System/SysMenuService.cs
index 90bb284..ac6da4e 100644
--- a/ZR.Service/System/SysMenuService.cs
+++ b/ZR.Service/System/SysMenuService.cs
@@ -114,14 +114,14 @@ namespace ZR.Service
///
public string CheckMenuNameUnique(SysMenu menu)
{
- long menuId = menu.menuId == 0 ? -1 : menu.menuId;
+ long menuId = menu.MenuId == 0 ? -1 : menu.MenuId;
SysMenu info = MenuRepository.CheckMenuNameUnique(menu);
//if (info != null && menuId != info.menuId && menu.menuName.Equals(info.menuName))
//{
// return UserConstants.NOT_UNIQUE;
//}
- if (info != null && info.menuId != menu.menuId)
+ if (info != null && info.MenuId != menu.MenuId)
{
return UserConstants.NOT_UNIQUE;
}
@@ -253,7 +253,7 @@ namespace ZR.Service
///
private List GetChildList(List list, SysMenu sysMenu)
{
- return list.Where(p => p.parentId == sysMenu.menuId).ToList();
+ return list.Where(p => p.parentId == sysMenu.MenuId).ToList();
}
///
@@ -273,7 +273,7 @@ namespace ZR.Service
Name = GetRouteName(menu),
Path = GetRoutePath(menu),
Component = GetComponent(menu),
- Meta = new Meta(menu.menuName, menu.icon, "1".Equals(menu.isCache))
+ Meta = new Meta(menu.MenuName, menu.icon, "1".Equals(menu.isCache))
};
List cMenus = menu.children;
@@ -292,7 +292,7 @@ namespace ZR.Service
Path = menu.path,
Component = menu.component,
Name = string.IsNullOrEmpty(menu.path) ? "" : menu.path.ToLower(),
- Meta = new Meta(menu.menuName, menu.icon, "1".Equals(menu.isCache))
+ Meta = new Meta(menu.MenuName, menu.icon, "1".Equals(menu.isCache))
};
childrenList.Add(children);
router.Children = childrenList;
@@ -311,7 +311,7 @@ namespace ZR.Service
public List BuildMenuTree(List menus)
{
List returnList = new List();
- List tempList = menus.Select(f => f.menuId).ToList();
+ List tempList = menus.Select(f => f.MenuId).ToList();
foreach (var menu in menus)
{