refactor: 项目代码重构,优化管理系统代码细节
This commit is contained in:
@@ -65,7 +65,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
|
||||
Long parentId = dept.getParentId();
|
||||
// 不在缓存ID列表的parentId是顶级节点ID,以此作为递归开始
|
||||
if (cacheDeptIds.contains(parentId) == false) {
|
||||
list.addAll(recurDepartments(parentId, deptList));
|
||||
list.addAll(recurDeptList(parentId, deptList));
|
||||
cacheDeptIds.add(parentId); // 避免重复递归
|
||||
}
|
||||
}
|
||||
@@ -85,18 +85,18 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归生成部门层级列表
|
||||
* 递归生成部门树形列表
|
||||
*
|
||||
* @param parentId
|
||||
* @param deptList
|
||||
* @return
|
||||
*/
|
||||
public List<DeptVO> recurDepartments(Long parentId, List<SysDept> deptList) {
|
||||
public List<DeptVO> recurDeptList(Long parentId, List<SysDept> deptList) {
|
||||
List<DeptVO> list = deptList.stream()
|
||||
.filter(dept -> dept.getParentId().equals(parentId))
|
||||
.map(dept -> {
|
||||
DeptVO deptVO = deptConverter.entity2Vo(dept);
|
||||
List<DeptVO> children = recurDepartments(dept.getId(), deptList);
|
||||
List<DeptVO> children = recurDeptList(dept.getId(), deptList);
|
||||
deptVO.setChildren(children);
|
||||
return deptVO;
|
||||
}).collect(Collectors.toList());
|
||||
@@ -181,13 +181,15 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
|
||||
@Override
|
||||
public boolean deleteByIds(String ids) {
|
||||
// 删除部门及子部门
|
||||
Optional.ofNullable(Arrays.stream(ids.split(",")))
|
||||
.ifPresent(deptIds -> deptIds.forEach(deptId ->
|
||||
this.remove(new LambdaQueryWrapper<SysDept>()
|
||||
.eq(SysDept::getId, deptId)
|
||||
.or()
|
||||
.apply("concat (',',tree_path,',') like concat('%,',{0},',%')", deptId))
|
||||
));
|
||||
if (StrUtil.isNotBlank(ids)) {
|
||||
String[] menuIds = ids.split(",");
|
||||
for (String deptId : menuIds) {
|
||||
this.remove(new LambdaQueryWrapper<SysDept>()
|
||||
.eq(SysDept::getId, deptId)
|
||||
.or()
|
||||
.apply("CONCAT (',',tree_path,',') LIKE CONCAT('%,',{0},',%')", deptId));
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,142 +0,0 @@
|
||||
package com.youlai.system.service.impl;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
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 com.youlai.system.converter.DictItemConverter;
|
||||
import com.youlai.system.mapper.SysDictItemMapper;
|
||||
import com.youlai.system.pojo.entity.SysDictItem;
|
||||
import com.youlai.system.pojo.form.DictItemForm;
|
||||
import com.youlai.system.pojo.query.DictItemPageQuery;
|
||||
import com.youlai.system.pojo.vo.DictItemPageVO;
|
||||
import com.youlai.system.service.SysDictItemService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 数据字典项业务实现类
|
||||
*
|
||||
* @author haoxr
|
||||
* @date 2022/10/12
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class SysDictItemServiceImpl extends ServiceImpl<SysDictItemMapper, SysDictItem> implements SysDictItemService {
|
||||
|
||||
private final DictItemConverter dictItemConverter;
|
||||
|
||||
/**
|
||||
* 字典数据项分页列表
|
||||
*
|
||||
* @param queryParams
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Page<DictItemPageVO> listDictItemPages(DictItemPageQuery queryParams) {
|
||||
// 查询参数
|
||||
int pageNum = queryParams.getPageNum();
|
||||
int pageSize = queryParams.getPageSize();
|
||||
String keywords = queryParams.getKeywords();
|
||||
String typeCode = queryParams.getTypeCode();
|
||||
|
||||
// 查询数据
|
||||
Page<SysDictItem> dictItemPage = this.page(
|
||||
new Page<>(pageNum, pageSize),
|
||||
new LambdaQueryWrapper<SysDictItem>()
|
||||
.like(StrUtil.isNotBlank(keywords), SysDictItem::getName, keywords)
|
||||
.eq(StrUtil.isNotBlank(typeCode), SysDictItem::getTypeCode, typeCode)
|
||||
.select(SysDictItem::getId, SysDictItem::getName, SysDictItem::getValue, SysDictItem::getStatus)
|
||||
);
|
||||
|
||||
// 实体转换
|
||||
Page<DictItemPageVO> pageResult = dictItemConverter.entity2Page(dictItemPage);
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典数据项表单详情
|
||||
*
|
||||
* @param id 字典数据项ID
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public DictItemForm getDictItemForm(Long id) {
|
||||
// 获取entity
|
||||
SysDictItem entity = this.getOne(new LambdaQueryWrapper<SysDictItem>()
|
||||
.eq(SysDictItem::getId, id)
|
||||
.select(
|
||||
SysDictItem::getId,
|
||||
SysDictItem::getTypeCode,
|
||||
SysDictItem::getName,
|
||||
SysDictItem::getValue,
|
||||
SysDictItem::getStatus,
|
||||
SysDictItem::getSort,
|
||||
SysDictItem::getRemark
|
||||
));
|
||||
Assert.isTrue(entity != null, "字典数据项不存在");
|
||||
|
||||
// 实体转换
|
||||
DictItemForm dictItemForm = dictItemConverter.entity2Form(entity);
|
||||
return dictItemForm;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增字典数据项
|
||||
*
|
||||
* @param dictItemForm 字典数据项表单
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean saveDictItem(DictItemForm dictItemForm) {
|
||||
// 实体对象转换 form->entity
|
||||
SysDictItem entity = dictItemConverter.form2Entity(dictItemForm);
|
||||
// 持久化
|
||||
boolean result = this.save(entity);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改字典数据项
|
||||
*
|
||||
* @param id 字典数据项ID
|
||||
* @param dictItemForm 字典数据项表单
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean updateDictItem(Long id, DictItemForm dictItemForm) {
|
||||
SysDictItem entity = dictItemConverter.form2Entity(dictItemForm);
|
||||
boolean result = this.updateById(entity);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除字典数据项
|
||||
*
|
||||
* @param idsStr 字典数据项ID,多个以英文逗号(,)分割
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean deleteDictItems(String idsStr) {
|
||||
Assert.isTrue(StrUtil.isNotBlank(idsStr), "删除数据为空");
|
||||
//
|
||||
List<Long> ids = Arrays.asList(idsStr.split(","))
|
||||
.stream()
|
||||
.map(id -> Long.parseLong(id))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 删除字典数据项
|
||||
boolean result = this.removeByIds(ids);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,166 @@
|
||||
package com.youlai.system.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
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 com.youlai.system.converter.DictConverter;
|
||||
import com.youlai.system.mapper.SysDictMapper;
|
||||
import com.youlai.system.pojo.entity.SysDict;
|
||||
import com.youlai.system.pojo.form.DictForm;
|
||||
import com.youlai.system.pojo.query.DictPageQuery;
|
||||
import com.youlai.system.pojo.vo.DictPageVO;
|
||||
import com.youlai.system.pojo.vo.Option;
|
||||
import com.youlai.system.service.SysDictService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 数据字典项业务实现类
|
||||
*
|
||||
* @author haoxr
|
||||
* @date 2022/10/12
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> implements SysDictService {
|
||||
|
||||
private final DictConverter dictConverter;
|
||||
|
||||
/**
|
||||
* 字典数据项分页列表
|
||||
*
|
||||
* @param queryParams
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Page<DictPageVO> getDictPage(DictPageQuery queryParams) {
|
||||
// 查询参数
|
||||
int pageNum = queryParams.getPageNum();
|
||||
int pageSize = queryParams.getPageSize();
|
||||
String keywords = queryParams.getKeywords();
|
||||
String typeCode = queryParams.getTypeCode();
|
||||
|
||||
// 查询数据
|
||||
Page<SysDict> dictItemPage = this.page(
|
||||
new Page<>(pageNum, pageSize),
|
||||
new LambdaQueryWrapper<SysDict>()
|
||||
.like(StrUtil.isNotBlank(keywords), SysDict::getName, keywords)
|
||||
.eq(StrUtil.isNotBlank(typeCode), SysDict::getTypeCode, typeCode)
|
||||
.select(SysDict::getId, SysDict::getName, SysDict::getValue, SysDict::getStatus)
|
||||
);
|
||||
|
||||
// 实体转换
|
||||
Page<DictPageVO> pageResult = dictConverter.entity2Page(dictItemPage);
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* 字典数据项表单详情
|
||||
*
|
||||
* @param id 字典数据项ID
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public DictForm getDictForm(Long id) {
|
||||
// 获取entity
|
||||
SysDict entity = this.getOne(new LambdaQueryWrapper<SysDict>()
|
||||
.eq(SysDict::getId, id)
|
||||
.select(
|
||||
SysDict::getId,
|
||||
SysDict::getTypeCode,
|
||||
SysDict::getName,
|
||||
SysDict::getValue,
|
||||
SysDict::getStatus,
|
||||
SysDict::getSort,
|
||||
SysDict::getRemark
|
||||
));
|
||||
Assert.isTrue(entity != null, "字典数据项不存在");
|
||||
|
||||
// 实体转换
|
||||
DictForm dictForm = dictConverter.entity2Form(entity);
|
||||
return dictForm;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增字典数据项
|
||||
*
|
||||
* @param dictForm 字典数据项表单
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean saveDict(DictForm dictForm) {
|
||||
// 实体对象转换 form->entity
|
||||
SysDict entity = dictConverter.form2Entity(dictForm);
|
||||
// 持久化
|
||||
boolean result = this.save(entity);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改字典数据项
|
||||
*
|
||||
* @param id 字典数据项ID
|
||||
* @param dictForm 字典数据项表单
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean updateDict(Long id, DictForm dictForm) {
|
||||
SysDict entity = dictConverter.form2Entity(dictForm);
|
||||
boolean result = this.updateById(entity);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除字典数据项
|
||||
*
|
||||
* @param idsStr 字典数据项ID,多个以英文逗号(,)分割
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean deleteDict(String idsStr) {
|
||||
Assert.isTrue(StrUtil.isNotBlank(idsStr), "删除数据为空");
|
||||
//
|
||||
List<Long> ids = Arrays.asList(idsStr.split(","))
|
||||
.stream()
|
||||
.map(id -> Long.parseLong(id))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 删除字典数据项
|
||||
boolean result = this.removeByIds(ids);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取字典下拉列表
|
||||
*
|
||||
* @param typeCode
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<Option> listDictOptions(String typeCode) {
|
||||
// 数据字典项
|
||||
List<SysDict> dictList = this.list(new LambdaQueryWrapper<SysDict>()
|
||||
.eq(SysDict::getTypeCode, typeCode)
|
||||
.select(SysDict::getValue, SysDict::getName)
|
||||
);
|
||||
|
||||
// 转换下拉数据
|
||||
List<Option> options = CollectionUtil.emptyIfNull(dictList)
|
||||
.stream()
|
||||
.map(dictItem -> new Option(dictItem.getValue(), dictItem.getName()))
|
||||
.collect(Collectors.toList());
|
||||
return options;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -7,15 +7,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.youlai.system.pojo.entity.SysDict;
|
||||
import com.youlai.system.pojo.vo.Option;
|
||||
import com.youlai.system.converter.DictTypeConverter;
|
||||
import com.youlai.system.mapper.SysDictTypeMapper;
|
||||
import com.youlai.system.pojo.entity.SysDictItem;
|
||||
import com.youlai.system.pojo.entity.SysDictType;
|
||||
import com.youlai.system.pojo.form.DictTypeForm;
|
||||
import com.youlai.system.pojo.query.DictTypePageQuery;
|
||||
import com.youlai.system.pojo.vo.DictTypePageVO;
|
||||
import com.youlai.system.service.SysDictItemService;
|
||||
import com.youlai.system.service.SysDictService;
|
||||
import com.youlai.system.service.SysDictTypeService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -36,7 +36,7 @@ import java.util.stream.Collectors;
|
||||
public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDictType> implements SysDictTypeService {
|
||||
|
||||
|
||||
private final SysDictItemService dictItemService;
|
||||
private final SysDictService dictItemService;
|
||||
private final DictTypeConverter dictTypeConverter;
|
||||
|
||||
/**
|
||||
@@ -46,7 +46,7 @@ public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDi
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Page<DictTypePageVO> listDictTypePages(DictTypePageQuery queryParams) {
|
||||
public Page<DictTypePageVO> getDictTypePage(DictTypePageQuery queryParams) {
|
||||
// 查询参数
|
||||
int pageNum = queryParams.getPageNum();
|
||||
int pageSize = queryParams.getPageSize();
|
||||
@@ -74,7 +74,7 @@ public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDi
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public DictTypeForm getDictTypeFormData(Long id) {
|
||||
public DictTypeForm getDictTypeForm(Long id) {
|
||||
// 获取entity
|
||||
SysDictType entity = this.getOne(new LambdaQueryWrapper<SysDictType>()
|
||||
.eq(SysDictType::getId, id)
|
||||
@@ -128,9 +128,9 @@ public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDi
|
||||
String oldCode = sysDictType.getCode();
|
||||
String newCode = dictTypeForm.getCode();
|
||||
if (!StrUtil.equals(oldCode, newCode)) {
|
||||
dictItemService.update(new LambdaUpdateWrapper<SysDictItem>()
|
||||
.eq(SysDictItem::getTypeCode, oldCode)
|
||||
.set(SysDictItem::getTypeCode, newCode)
|
||||
dictItemService.update(new LambdaUpdateWrapper<SysDict>()
|
||||
.eq(SysDict::getTypeCode, oldCode)
|
||||
.set(SysDict::getTypeCode, newCode)
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -162,8 +162,8 @@ public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDi
|
||||
.collect(Collectors.toList()
|
||||
);
|
||||
if (CollectionUtil.isNotEmpty(dictTypeCodes)) {
|
||||
dictItemService.remove(new LambdaQueryWrapper<SysDictItem>()
|
||||
.in(SysDictItem::getTypeCode, dictTypeCodes));
|
||||
dictItemService.remove(new LambdaQueryWrapper<SysDict>()
|
||||
.in(SysDict::getTypeCode, dictTypeCodes));
|
||||
}
|
||||
// 删除字典类型
|
||||
boolean result = this.removeByIds(ids);
|
||||
@@ -179,9 +179,9 @@ public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDi
|
||||
@Override
|
||||
public List<Option> listDictItemsByTypeCode(String typeCode) {
|
||||
// 数据字典项
|
||||
List<SysDictItem> dictItems = dictItemService.list(new LambdaQueryWrapper<SysDictItem>()
|
||||
.eq(SysDictItem::getTypeCode, typeCode)
|
||||
.select(SysDictItem::getValue, SysDictItem::getName)
|
||||
List<SysDict> dictItems = dictItemService.list(new LambdaQueryWrapper<SysDict>()
|
||||
.eq(SysDict::getTypeCode, typeCode)
|
||||
.select(SysDict::getValue, SysDict::getName)
|
||||
);
|
||||
|
||||
// 转换下拉数据
|
||||
|
||||
@@ -50,7 +50,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Page<RolePageVO> listRolePages(RolePageQuery queryParams) {
|
||||
public Page<RolePageVO> getRolePage(RolePageQuery queryParams) {
|
||||
// 查询参数
|
||||
int pageNum = queryParams.getPageNum();
|
||||
int pageSize = queryParams.getPageSize();
|
||||
@@ -88,11 +88,13 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
||||
);
|
||||
|
||||
// 实体转换
|
||||
List<Option> list = roleConverter.roles2Options(roleList);
|
||||
List<Option> list = roleConverter.entities2Options(roleList);
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存角色
|
||||
*
|
||||
* @param roleForm
|
||||
* @return
|
||||
*/
|
||||
@@ -116,12 +118,25 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取角色表单数据
|
||||
*
|
||||
* @param roleId 角色ID
|
||||
* @return {@link RoleForm} – 角色表单数据
|
||||
*/
|
||||
@Override
|
||||
public RoleForm getRoleForm(Long roleId) {
|
||||
SysRole entity = this.getById(roleId);
|
||||
RoleForm roleForm = roleConverter.entity2Form(entity);
|
||||
return roleForm;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改角色状态
|
||||
*
|
||||
* @param roleId
|
||||
* @param status
|
||||
* @return
|
||||
* @param roleId 角色ID
|
||||
* @param status 角色状态(1:启用;0:禁用)
|
||||
* @return {@link Boolean}
|
||||
*/
|
||||
@Override
|
||||
public boolean updateRoleStatus(Long roleId, Integer status) {
|
||||
@@ -134,7 +149,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
||||
/**
|
||||
* 批量删除角色
|
||||
*
|
||||
* @param ids
|
||||
* @param ids 角色ID,多个使用英文逗号(,)分割
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@@ -154,14 +169,13 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取角色的资源ID集合,资源包括菜单和权限
|
||||
* 获取角色的菜单ID集合
|
||||
*
|
||||
* @param roleId
|
||||
* @return
|
||||
* @param roleId 角色ID
|
||||
* @return 菜单ID集合(包括按钮权限ID)
|
||||
*/
|
||||
@Override
|
||||
public List<Long> getRoleMenuIds(Long roleId) {
|
||||
// 获取角色拥有的菜单ID集合
|
||||
List<Long> menuIds = sysRoleMenuService.listMenuIdsByRoleId(roleId);
|
||||
return menuIds;
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public IPage<UserPageVO> listUserPages(UserPageQuery queryParams) {
|
||||
public IPage<UserPageVO> getUserPage(UserPageQuery queryParams) {
|
||||
|
||||
// 参数构建
|
||||
int pageNum = queryParams.getPageNum();
|
||||
@@ -73,7 +73,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
Page<UserBO> page = new Page<>(pageNum, pageSize);
|
||||
|
||||
// 查询数据
|
||||
Page<UserBO> userBoPage = this.baseMapper.listUserPages(page, queryParams);
|
||||
Page<UserBO> userBoPage = this.baseMapper.getUserPage(page, queryParams);
|
||||
|
||||
// 实体转换
|
||||
Page<UserPageVO> userVoPage = userConverter.bo2Vo(userBoPage);
|
||||
|
||||
Reference in New Issue
Block a user