后台菜单重构:菜单类型分组排序(软件在前/后台在后)、新增同类型末尾排序;任务中心分组移除,视频任务记录归入记录与版本、店铺数据记录归入店铺管理;界面名词优化(菜单权限配置/去重数据汇总/无效ASIN数据/视频任务记录/店铺数据记录/生成记录)
Build Backend JAR / build (push) Has been cancelled
Build Backend JAR / build (push) Has been cancelled
This commit is contained in:
+49
@@ -584,6 +584,55 @@ class PermissionMenuServiceTest {
|
||||
assertThat(inserted.getValue().getColumnId()).isEqualTo(76L);
|
||||
}
|
||||
|
||||
@Test
|
||||
void fullCatalogOrdersAppMenusBeforeAdminMenus() {
|
||||
PermissionMenuMapper menuMapper = mock(PermissionMenuMapper.class);
|
||||
UserColumnPermissionMapper permissionMapper = mock(UserColumnPermissionMapper.class);
|
||||
AdminUserMapper userMapper = mock(AdminUserMapper.class);
|
||||
PermissionMenuService service = new PermissionMenuService(menuMapper, permissionMapper, userMapper);
|
||||
|
||||
// 全量目录:app/admin 交错出现,且各自 sort_order 交叉。期望先按类型分组
|
||||
// (app 在 admin 之前),组内再按 sort_order 升序。
|
||||
when(menuMapper.selectList(any())).thenReturn(List.of(
|
||||
menu(11L, null, "admin", 20),
|
||||
menu(21L, null, "app", 120),
|
||||
menu(12L, null, "admin", 10),
|
||||
menu(22L, null, "app", 110)));
|
||||
|
||||
List<PermissionMenuItemVo> result = service.list(null);
|
||||
|
||||
assertThat(result).extracting(PermissionMenuItemVo::getId)
|
||||
.containsExactly(22L, 21L, 12L, 11L);
|
||||
}
|
||||
|
||||
@Test
|
||||
void createWithoutSortOrderAppendsWithinSameMenuType() {
|
||||
PermissionMenuMapper menuMapper = mock(PermissionMenuMapper.class);
|
||||
UserColumnPermissionMapper permissionMapper = mock(UserColumnPermissionMapper.class);
|
||||
AdminUserMapper userMapper = mock(AdminUserMapper.class);
|
||||
PermissionMenuService service = new PermissionMenuService(menuMapper, permissionMapper, userMapper);
|
||||
|
||||
// create 内部依次用 selectOne 做唯一性校验(column_key、route_path),
|
||||
// 最后 resolveSortOrder 取同类型尾项(admin 最后一个 sort_order = 134)。
|
||||
PermissionMenuEntity adminTail = menu(9L, null, "admin", 134);
|
||||
adminTail.setName("admin tail");
|
||||
when(menuMapper.selectOne(any())).thenReturn(null, null, adminTail);
|
||||
// create 成功后 getMenuById(insert 未回填的 id) 会走 selectById
|
||||
when(menuMapper.selectById(any())).thenReturn(adminTail);
|
||||
|
||||
PermissionMenuCreateRequest request = createRequest(null, "admin");
|
||||
request.setName("新菜单");
|
||||
request.setColumnKey("new_admin_menu");
|
||||
request.setRoutePath("new-admin-menu");
|
||||
|
||||
service.create(request);
|
||||
|
||||
ArgumentCaptor<PermissionMenuEntity> inserted = ArgumentCaptor.forClass(PermissionMenuEntity.class);
|
||||
verify(menuMapper).insert(inserted.capture());
|
||||
assertThat(inserted.getValue().getSortOrder()).isEqualTo(135);
|
||||
assertThat(inserted.getValue().getMenuType()).isEqualTo("admin");
|
||||
}
|
||||
|
||||
private PermissionMenuCreateRequest createRequest(Long parentId, String menuType) {
|
||||
PermissionMenuCreateRequest request = new PermissionMenuCreateRequest();
|
||||
request.setName("child");
|
||||
|
||||
Reference in New Issue
Block a user