mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-31 22:57:17 +08:00 
			
		
		
		
	优化:优化使用 MyBatis Plus ChainWrapper 的方式
This commit is contained in:
		| @@ -18,6 +18,12 @@ package top.charles7c.cnadmin.common.base; | |||||||
|  |  | ||||||
| import java.util.Collection; | import java.util.Collection; | ||||||
|  |  | ||||||
|  | import com.baomidou.mybatisplus.core.toolkit.ReflectionKit; | ||||||
|  | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; | ||||||
|  | import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper; | ||||||
|  | import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; | ||||||
|  | import com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper; | ||||||
|  | import com.baomidou.mybatisplus.extension.toolkit.ChainWrappers; | ||||||
| import com.baomidou.mybatisplus.extension.toolkit.Db; | import com.baomidou.mybatisplus.extension.toolkit.Db; | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @@ -40,4 +46,60 @@ public interface BaseMapper<T> extends com.baomidou.mybatisplus.core.mapper.Base | |||||||
|     default boolean insertBatch(Collection<T> entityList) { |     default boolean insertBatch(Collection<T> entityList) { | ||||||
|         return Db.saveBatch(entityList); |         return Db.saveBatch(entityList); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 链式查询 | ||||||
|  |      * | ||||||
|  |      * @return QueryWrapper 的包装类 | ||||||
|  |      */ | ||||||
|  |     default QueryChainWrapper<T> query() { | ||||||
|  |         return ChainWrappers.queryChain(this); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 链式查询(lambda 式) | ||||||
|  |      * | ||||||
|  |      * @return LambdaQueryWrapper 的包装类 | ||||||
|  |      */ | ||||||
|  |     default LambdaQueryChainWrapper<T> lambdaQuery() { | ||||||
|  |         return ChainWrappers.lambdaQueryChain(this, this.currentEntityClass()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 链式查询(lambda 式) | ||||||
|  |      * | ||||||
|  |      * @param entity | ||||||
|  |      *            实体对象 | ||||||
|  |      * @return LambdaQueryWrapper 的包装类 | ||||||
|  |      */ | ||||||
|  |     default LambdaQueryChainWrapper<T> lambdaQuery(T entity) { | ||||||
|  |         return ChainWrappers.lambdaQueryChain(this, entity); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 链式更改 | ||||||
|  |      * | ||||||
|  |      * @return UpdateWrapper 的包装类 | ||||||
|  |      */ | ||||||
|  |     default UpdateChainWrapper<T> update() { | ||||||
|  |         return ChainWrappers.updateChain(this); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 链式更改(lambda 式) | ||||||
|  |      * | ||||||
|  |      * @return LambdaUpdateWrapper 的包装类 | ||||||
|  |      */ | ||||||
|  |     default LambdaUpdateChainWrapper<T> lambdaUpdate() { | ||||||
|  |         return ChainWrappers.lambdaUpdateChain(this); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 获取实体类 Class 对象 | ||||||
|  |      * | ||||||
|  |      * @return 实体类 Class 对象 | ||||||
|  |      */ | ||||||
|  |     default Class<T> currentEntityClass() { | ||||||
|  |         return (Class<T>)ReflectionKit.getSuperClassGenericType(this.getClass(), BaseMapper.class, 0); | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -34,11 +34,6 @@ import com.baomidou.mybatisplus.core.metadata.TableInfo; | |||||||
| import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; | import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; | ||||||
| import com.baomidou.mybatisplus.core.toolkit.Assert; | import com.baomidou.mybatisplus.core.toolkit.Assert; | ||||||
| import com.baomidou.mybatisplus.core.toolkit.ReflectionKit; | import com.baomidou.mybatisplus.core.toolkit.ReflectionKit; | ||||||
| import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |  | ||||||
| import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper; |  | ||||||
| import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; |  | ||||||
| import com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper; |  | ||||||
| import com.baomidou.mybatisplus.extension.toolkit.ChainWrappers; |  | ||||||
|  |  | ||||||
| import cn.hutool.core.bean.BeanUtil; | import cn.hutool.core.bean.BeanUtil; | ||||||
| import cn.hutool.core.bean.copier.CopyOptions; | import cn.hutool.core.bean.copier.CopyOptions; | ||||||
| @@ -267,53 +262,6 @@ public abstract class BaseServiceImpl<M extends BaseMapper<T>, T, V, D, Q, C ext | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * 链式查询 |  | ||||||
|      * |  | ||||||
|      * @return QueryWrapper 的包装类 |  | ||||||
|      */ |  | ||||||
|     protected QueryChainWrapper<T> query() { |  | ||||||
|         return ChainWrappers.queryChain(baseMapper); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * 链式查询(lambda 式) |  | ||||||
|      * |  | ||||||
|      * @return LambdaQueryWrapper 的包装类 |  | ||||||
|      */ |  | ||||||
|     protected LambdaQueryChainWrapper<T> lambdaQuery() { |  | ||||||
|         return ChainWrappers.lambdaQueryChain(baseMapper, entityClass); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * 链式查询(lambda 式) |  | ||||||
|      * |  | ||||||
|      * @param entity |  | ||||||
|      *            实体对象 |  | ||||||
|      * @return LambdaQueryWrapper 的包装类 |  | ||||||
|      */ |  | ||||||
|     protected LambdaQueryChainWrapper<T> lambdaQuery(T entity) { |  | ||||||
|         return ChainWrappers.lambdaQueryChain(baseMapper, entity); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * 链式更改 |  | ||||||
|      * |  | ||||||
|      * @return UpdateWrapper 的包装类 |  | ||||||
|      */ |  | ||||||
|     protected UpdateChainWrapper<T> update() { |  | ||||||
|         return ChainWrappers.updateChain(baseMapper); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * 链式更改(lambda 式) |  | ||||||
|      * |  | ||||||
|      * @return LambdaUpdateWrapper 的包装类 |  | ||||||
|      */ |  | ||||||
|     protected LambdaUpdateChainWrapper<T> lambdaUpdate() { |  | ||||||
|         return ChainWrappers.lambdaUpdateChain(baseMapper); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 获取实体类 ID 名称 |      * 获取实体类 ID 名称 | ||||||
|      * |      * | ||||||
|   | |||||||
| @@ -78,9 +78,9 @@ public class MybatisPlusConfiguration { | |||||||
|         // 对于单一数据库类型来说,都建议配置该值,避免每次分页都去抓取数据库类型 |         // 对于单一数据库类型来说,都建议配置该值,避免每次分页都去抓取数据库类型 | ||||||
|         // PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(); |         // PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(); | ||||||
|         PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL); |         PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL); | ||||||
|         // 溢出总页数后是否进行处理 |         // 溢出总页数后是否进行处理,默认不处理 | ||||||
|         paginationInnerInterceptor.setOverflow(false); |         paginationInnerInterceptor.setOverflow(false); | ||||||
|         // 单页分页条数限制 |         // 单页分页条数限制,默认无限制 | ||||||
|         paginationInnerInterceptor.setMaxLimit(-1L); |         paginationInnerInterceptor.setMaxLimit(-1L); | ||||||
|         return paginationInnerInterceptor; |         return paginationInnerInterceptor; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -26,7 +26,6 @@ import lombok.NoArgsConstructor; | |||||||
| import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||||
|  |  | ||||||
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||||||
| import com.baomidou.mybatisplus.core.toolkit.Wrappers; |  | ||||||
|  |  | ||||||
| import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||||
| import cn.hutool.core.util.ObjectUtil; | import cn.hutool.core.util.ObjectUtil; | ||||||
| @@ -56,7 +55,7 @@ public class QueryHelper { | |||||||
|      * @return MyBatis Plus 查询条件封装对象 |      * @return MyBatis Plus 查询条件封装对象 | ||||||
|      */ |      */ | ||||||
|     public static <Q, R> QueryWrapper<R> build(Q query) { |     public static <Q, R> QueryWrapper<R> build(Q query) { | ||||||
|         QueryWrapper<R> queryWrapper = Wrappers.query(); |         QueryWrapper<R> queryWrapper = new QueryWrapper<>(); | ||||||
|         // 没有查询条件,直接返回 |         // 没有查询条件,直接返回 | ||||||
|         if (query == null) { |         if (query == null) { | ||||||
|             return queryWrapper; |             return queryWrapper; | ||||||
|   | |||||||
| @@ -59,7 +59,6 @@ public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptVO, | |||||||
|         boolean isExists = this.checkNameExists(deptName, request.getParentId(), request.getDeptId()); |         boolean isExists = this.checkNameExists(deptName, request.getParentId(), request.getDeptId()); | ||||||
|         CheckUtils.throwIf(() -> isExists, String.format("新增失败,'%s'已存在", deptName)); |         CheckUtils.throwIf(() -> isExists, String.format("新增失败,'%s'已存在", deptName)); | ||||||
|  |  | ||||||
|         // 保存信息 |  | ||||||
|         request.setStatus(DisEnableStatusEnum.ENABLE); |         request.setStatus(DisEnableStatusEnum.ENABLE); | ||||||
|         return super.add(request); |         return super.add(request); | ||||||
|     } |     } | ||||||
| @@ -79,7 +78,7 @@ public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptVO, | |||||||
|     public void delete(List<Long> ids) { |     public void delete(List<Long> ids) { | ||||||
|         CheckUtils.throwIf(() -> userService.countByDeptIds(ids) > 0, "所选部门存在用户关联,请解除关联后重试"); |         CheckUtils.throwIf(() -> userService.countByDeptIds(ids) > 0, "所选部门存在用户关联,请解除关联后重试"); | ||||||
|         super.delete(ids); |         super.delete(ids); | ||||||
|         super.lambdaUpdate().in(DeptDO::getParentId, ids).remove(); |         baseMapper.lambdaUpdate().in(DeptDO::getParentId, ids).remove(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
| @@ -103,7 +102,7 @@ public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptVO, | |||||||
|      * @return 是否存在 |      * @return 是否存在 | ||||||
|      */ |      */ | ||||||
|     private boolean checkNameExists(String name, Long parentId, Long id) { |     private boolean checkNameExists(String name, Long parentId, Long id) { | ||||||
|         return super.lambdaQuery().eq(DeptDO::getDeptName, name).eq(DeptDO::getParentId, parentId) |         return baseMapper.lambdaQuery().eq(DeptDO::getDeptName, name).eq(DeptDO::getParentId, parentId) | ||||||
|             .ne(id != null, DeptDO::getDeptId, id).exists(); |             .ne(id != null, DeptDO::getDeptId, id).exists(); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -51,7 +51,6 @@ public class MenuServiceImpl extends BaseServiceImpl<MenuMapper, MenuDO, MenuVO, | |||||||
|         boolean isExists = this.checkNameExists(menuName, request.getParentId(), request.getMenuId()); |         boolean isExists = this.checkNameExists(menuName, request.getParentId(), request.getMenuId()); | ||||||
|         CheckUtils.throwIf(() -> isExists, String.format("新增失败,'%s'已存在", menuName)); |         CheckUtils.throwIf(() -> isExists, String.format("新增失败,'%s'已存在", menuName)); | ||||||
|  |  | ||||||
|         // 保存信息 |  | ||||||
|         request.setStatus(DisEnableStatusEnum.ENABLE); |         request.setStatus(DisEnableStatusEnum.ENABLE); | ||||||
|         return super.add(request); |         return super.add(request); | ||||||
|     } |     } | ||||||
| @@ -63,7 +62,6 @@ public class MenuServiceImpl extends BaseServiceImpl<MenuMapper, MenuDO, MenuVO, | |||||||
|         boolean isExists = this.checkNameExists(menuName, request.getParentId(), request.getMenuId()); |         boolean isExists = this.checkNameExists(menuName, request.getParentId(), request.getMenuId()); | ||||||
|         CheckUtils.throwIf(() -> isExists, String.format("修改失败,'%s'已存在", menuName)); |         CheckUtils.throwIf(() -> isExists, String.format("修改失败,'%s'已存在", menuName)); | ||||||
|  |  | ||||||
|         // 更新信息 |  | ||||||
|         super.update(request); |         super.update(request); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -71,7 +69,7 @@ public class MenuServiceImpl extends BaseServiceImpl<MenuMapper, MenuDO, MenuVO, | |||||||
|     @Transactional(rollbackFor = Exception.class) |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public void delete(List<Long> ids) { |     public void delete(List<Long> ids) { | ||||||
|         super.delete(ids); |         super.delete(ids); | ||||||
|         super.lambdaUpdate().in(MenuDO::getParentId, ids).remove(); |         baseMapper.lambdaUpdate().in(MenuDO::getParentId, ids).remove(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
| @@ -91,7 +89,7 @@ public class MenuServiceImpl extends BaseServiceImpl<MenuMapper, MenuDO, MenuVO, | |||||||
|      * @return 是否存在 |      * @return 是否存在 | ||||||
|      */ |      */ | ||||||
|     private boolean checkNameExists(String name, Long parentId, Long id) { |     private boolean checkNameExists(String name, Long parentId, Long id) { | ||||||
|         return super.lambdaQuery().eq(MenuDO::getMenuName, name).eq(MenuDO::getParentId, parentId) |         return baseMapper.lambdaQuery().eq(MenuDO::getMenuName, name).eq(MenuDO::getParentId, parentId) | ||||||
|             .ne(id != null, MenuDO::getMenuId, id).exists(); |             .ne(id != null, MenuDO::getMenuId, id).exists(); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -23,8 +23,6 @@ import lombok.RequiredArgsConstructor; | |||||||
|  |  | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
|  |  | ||||||
| import com.baomidou.mybatisplus.core.toolkit.Wrappers; |  | ||||||
|  |  | ||||||
| import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.system.mapper.RoleDeptMapper; | import top.charles7c.cnadmin.system.mapper.RoleDeptMapper; | ||||||
| @@ -49,7 +47,7 @@ public class RoleDeptServiceImpl implements RoleDeptService { | |||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|         // 删除原有关联 |         // 删除原有关联 | ||||||
|         roleDeptMapper.delete(Wrappers.<RoleDeptDO>lambdaQuery().eq(RoleDeptDO::getRoleId, roleId)); |         roleDeptMapper.lambdaUpdate().eq(RoleDeptDO::getRoleId, roleId).remove(); | ||||||
|         // 保存最新关联 |         // 保存最新关联 | ||||||
|         List<RoleDeptDO> roleDeptList = |         List<RoleDeptDO> roleDeptList = | ||||||
|             deptIds.stream().map(deptId -> new RoleDeptDO(roleId, deptId)).collect(Collectors.toList()); |             deptIds.stream().map(deptId -> new RoleDeptDO(roleId, deptId)).collect(Collectors.toList()); | ||||||
|   | |||||||
| @@ -24,8 +24,6 @@ import lombok.RequiredArgsConstructor; | |||||||
|  |  | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
|  |  | ||||||
| import com.baomidou.mybatisplus.core.toolkit.Wrappers; |  | ||||||
|  |  | ||||||
| import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.system.mapper.RoleMenuMapper; | import top.charles7c.cnadmin.system.mapper.RoleMenuMapper; | ||||||
| @@ -50,7 +48,7 @@ public class RoleMenuServiceImpl implements RoleMenuService { | |||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|         // 删除原有关联 |         // 删除原有关联 | ||||||
|         roleMenuMapper.delete(Wrappers.<RoleMenuDO>lambdaQuery().eq(RoleMenuDO::getRoleId, roleId)); |         roleMenuMapper.lambdaUpdate().eq(RoleMenuDO::getRoleId, roleId).remove(); | ||||||
|         // 保存最新关联 |         // 保存最新关联 | ||||||
|         List<RoleMenuDO> roleMenuList = |         List<RoleMenuDO> roleMenuList = | ||||||
|             menuIds.stream().map(menuId -> new RoleMenuDO(roleId, menuId)).collect(Collectors.toList()); |             menuIds.stream().map(menuId -> new RoleMenuDO(roleId, menuId)).collect(Collectors.toList()); | ||||||
|   | |||||||
| @@ -68,7 +68,7 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleVO, | |||||||
|         CheckUtils.throwIf(() -> this.checkCodeExists(roleCode, request.getRoleId()), |         CheckUtils.throwIf(() -> this.checkCodeExists(roleCode, request.getRoleId()), | ||||||
|             String.format("新增失败,'%s'已存在", roleCode)); |             String.format("新增失败,'%s'已存在", roleCode)); | ||||||
|  |  | ||||||
|         // 新增角色 |         // 新增信息 | ||||||
|         request.setStatus(DisEnableStatusEnum.ENABLE); |         request.setStatus(DisEnableStatusEnum.ENABLE); | ||||||
|         Long roleId = super.add(request); |         Long roleId = super.add(request); | ||||||
|         // 保存角色和菜单关联 |         // 保存角色和菜单关联 | ||||||
| @@ -88,7 +88,7 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleVO, | |||||||
|         CheckUtils.throwIf(() -> this.checkCodeExists(roleCode, request.getRoleId()), |         CheckUtils.throwIf(() -> this.checkCodeExists(roleCode, request.getRoleId()), | ||||||
|             String.format("修改失败,'%s'已存在", roleCode)); |             String.format("修改失败,'%s'已存在", roleCode)); | ||||||
|  |  | ||||||
|         // 更新角色 |         // 更新信息 | ||||||
|         super.update(request); |         super.update(request); | ||||||
|         Long roleId = request.getRoleId(); |         Long roleId = request.getRoleId(); | ||||||
|         // 保存角色和菜单关联 |         // 保存角色和菜单关联 | ||||||
| @@ -131,14 +131,16 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleVO, | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public List<String> listRoleNamesByRoleIds(List<Long> roleIds) { |     public List<String> listRoleNamesByRoleIds(List<Long> roleIds) { | ||||||
|         List<RoleDO> roleList = super.lambdaQuery().select(RoleDO::getRoleName).in(RoleDO::getRoleId, roleIds).list(); |         List<RoleDO> roleList = | ||||||
|  |             baseMapper.lambdaQuery().select(RoleDO::getRoleName).in(RoleDO::getRoleId, roleIds).list(); | ||||||
|         return roleList.stream().map(RoleDO::getRoleName).collect(Collectors.toList()); |         return roleList.stream().map(RoleDO::getRoleName).collect(Collectors.toList()); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public Set<String> listRoleCodesByUserId(Long userId) { |     public Set<String> listRoleCodesByUserId(Long userId) { | ||||||
|         List<Long> roleIds = userRoleService.listRoleIdsByUserId(userId); |         List<Long> roleIds = userRoleService.listRoleIdsByUserId(userId); | ||||||
|         List<RoleDO> roleList = super.lambdaQuery().select(RoleDO::getRoleCode).in(RoleDO::getRoleId, roleIds).list(); |         List<RoleDO> roleList = | ||||||
|  |             baseMapper.lambdaQuery().select(RoleDO::getRoleCode).in(RoleDO::getRoleId, roleIds).list(); | ||||||
|         return roleList.stream().map(RoleDO::getRoleCode).collect(Collectors.toSet()); |         return roleList.stream().map(RoleDO::getRoleCode).collect(Collectors.toSet()); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -152,7 +154,7 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleVO, | |||||||
|      * @return 是否存在 |      * @return 是否存在 | ||||||
|      */ |      */ | ||||||
|     private boolean checkNameExists(String name, Long id) { |     private boolean checkNameExists(String name, Long id) { | ||||||
|         return super.lambdaQuery().eq(RoleDO::getRoleName, name).ne(id != null, RoleDO::getRoleId, id).exists(); |         return baseMapper.lambdaQuery().eq(RoleDO::getRoleName, name).ne(id != null, RoleDO::getRoleId, id).exists(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
| @@ -165,6 +167,6 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleVO, | |||||||
|      * @return 是否存在 |      * @return 是否存在 | ||||||
|      */ |      */ | ||||||
|     private boolean checkCodeExists(String code, Long id) { |     private boolean checkCodeExists(String code, Long id) { | ||||||
|         return super.lambdaQuery().eq(RoleDO::getRoleCode, code).ne(id != null, RoleDO::getRoleId, id).exists(); |         return baseMapper.lambdaQuery().eq(RoleDO::getRoleCode, code).ne(id != null, RoleDO::getRoleId, id).exists(); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -23,8 +23,6 @@ import lombok.RequiredArgsConstructor; | |||||||
|  |  | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
|  |  | ||||||
| import com.baomidou.mybatisplus.core.toolkit.Wrappers; |  | ||||||
|  |  | ||||||
| import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.system.mapper.UserRoleMapper; | import top.charles7c.cnadmin.system.mapper.UserRoleMapper; | ||||||
| @@ -49,7 +47,7 @@ public class UserRoleServiceImpl implements UserRoleService { | |||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|         // 删除原有关联 |         // 删除原有关联 | ||||||
|         userRoleMapper.delete(Wrappers.<UserRoleDO>lambdaQuery().eq(UserRoleDO::getUserId, userId)); |         userRoleMapper.lambdaUpdate().eq(UserRoleDO::getUserId, userId).remove(); | ||||||
|         // 保存最新关联 |         // 保存最新关联 | ||||||
|         List<UserRoleDO> userRoleList = |         List<UserRoleDO> userRoleList = | ||||||
|             roleIds.stream().map(roleId -> new UserRoleDO(userId, roleId)).collect(Collectors.toList()); |             roleIds.stream().map(roleId -> new UserRoleDO(userId, roleId)).collect(Collectors.toList()); | ||||||
| @@ -58,7 +56,7 @@ public class UserRoleServiceImpl implements UserRoleService { | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public Long countByRoleIds(List<Long> roleIds) { |     public Long countByRoleIds(List<Long> roleIds) { | ||||||
|         return userRoleMapper.selectCount(Wrappers.<UserRoleDO>lambdaQuery().in(UserRoleDO::getRoleId, roleIds)); |         return userRoleMapper.lambdaQuery().in(UserRoleDO::getRoleId, roleIds).count(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|   | |||||||
| @@ -77,10 +77,10 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO, | |||||||
|         boolean isExists = this.checkNameExists(username, request.getUserId()); |         boolean isExists = this.checkNameExists(username, request.getUserId()); | ||||||
|         CheckUtils.throwIf(() -> isExists, String.format("新增失败,'%s'已存在", username)); |         CheckUtils.throwIf(() -> isExists, String.format("新增失败,'%s'已存在", username)); | ||||||
|  |  | ||||||
|         // 新增用户 |         // 新增信息 | ||||||
|         request.setStatus(DisEnableStatusEnum.ENABLE); |         request.setStatus(DisEnableStatusEnum.ENABLE); | ||||||
|         Long userId = super.add(request); |         Long userId = super.add(request); | ||||||
|         super.lambdaUpdate() |         baseMapper.lambdaUpdate() | ||||||
|             .set(UserDO::getPassword, SecureUtils.md5Salt(SysConsts.DEFAULT_PASSWORD, userId.toString())) |             .set(UserDO::getPassword, SecureUtils.md5Salt(SysConsts.DEFAULT_PASSWORD, userId.toString())) | ||||||
|             .set(UserDO::getPwdResetTime, LocalDateTime.now()).eq(UserDO::getUserId, userId).update(); |             .set(UserDO::getPwdResetTime, LocalDateTime.now()).eq(UserDO::getUserId, userId).update(); | ||||||
|         // 保存用户和角色关联 |         // 保存用户和角色关联 | ||||||
| @@ -95,7 +95,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO, | |||||||
|         boolean isExists = this.checkNameExists(username, request.getUserId()); |         boolean isExists = this.checkNameExists(username, request.getUserId()); | ||||||
|         CheckUtils.throwIf(() -> isExists, String.format("修改失败,'%s'已存在", username)); |         CheckUtils.throwIf(() -> isExists, String.format("修改失败,'%s'已存在", username)); | ||||||
|  |  | ||||||
|         // 更新用户 |         // 更新信息 | ||||||
|         super.update(request); |         super.update(request); | ||||||
|         Long userId = request.getUserId(); |         Long userId = request.getUserId(); | ||||||
|         // 保存用户和角色关联 |         // 保存用户和角色关联 | ||||||
| @@ -133,7 +133,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO, | |||||||
|  |  | ||||||
|         // 更新用户头像 |         // 更新用户头像 | ||||||
|         String newAvatar = newAvatarFile.getName(); |         String newAvatar = newAvatarFile.getName(); | ||||||
|         super.lambdaUpdate().set(UserDO::getAvatar, newAvatar).eq(UserDO::getUserId, userId).update(); |         baseMapper.lambdaUpdate().set(UserDO::getAvatar, newAvatar).eq(UserDO::getUserId, userId).update(); | ||||||
|  |  | ||||||
|         // 删除原头像 |         // 删除原头像 | ||||||
|         LoginUser loginUser = LoginHelper.getLoginUser(); |         LoginUser loginUser = LoginHelper.getLoginUser(); | ||||||
| @@ -157,7 +157,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO, | |||||||
|  |  | ||||||
|         // 更新密码和密码重置时间 |         // 更新密码和密码重置时间 | ||||||
|         LocalDateTime now = LocalDateTime.now(); |         LocalDateTime now = LocalDateTime.now(); | ||||||
|         super.lambdaUpdate().set(UserDO::getPassword, SecureUtils.md5Salt(newPassword, userId.toString())) |         baseMapper.lambdaUpdate().set(UserDO::getPassword, SecureUtils.md5Salt(newPassword, userId.toString())) | ||||||
|             .set(UserDO::getPwdResetTime, now).eq(UserDO::getUserId, userId).update(); |             .set(UserDO::getPwdResetTime, now).eq(UserDO::getUserId, userId).update(); | ||||||
|  |  | ||||||
|         // 更新登录用户信息 |         // 更新登录用户信息 | ||||||
| @@ -172,12 +172,12 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO, | |||||||
|         UserDO userDO = super.getById(userId); |         UserDO userDO = super.getById(userId); | ||||||
|         CheckUtils.throwIfNotEqual(SecureUtils.md5Salt(currentPassword, userId.toString()), userDO.getPassword(), |         CheckUtils.throwIfNotEqual(SecureUtils.md5Salt(currentPassword, userId.toString()), userDO.getPassword(), | ||||||
|             "当前密码错误"); |             "当前密码错误"); | ||||||
|         Long count = super.lambdaQuery().eq(UserDO::getEmail, newEmail).count(); |         Long count = baseMapper.lambdaQuery().eq(UserDO::getEmail, newEmail).count(); | ||||||
|         CheckUtils.throwIf(() -> count > 0, "邮箱已绑定其他账号,请更换其他邮箱"); |         CheckUtils.throwIf(() -> count > 0, "邮箱已绑定其他账号,请更换其他邮箱"); | ||||||
|         CheckUtils.throwIfEqual(newEmail, userDO.getEmail(), "新邮箱不能与当前邮箱相同"); |         CheckUtils.throwIfEqual(newEmail, userDO.getEmail(), "新邮箱不能与当前邮箱相同"); | ||||||
|  |  | ||||||
|         // 更新邮箱 |         // 更新邮箱 | ||||||
|         super.lambdaUpdate().set(UserDO::getEmail, newEmail).eq(UserDO::getUserId, userId).update(); |         baseMapper.lambdaUpdate().set(UserDO::getEmail, newEmail).eq(UserDO::getUserId, userId).update(); | ||||||
|  |  | ||||||
|         // 更新登录用户信息 |         // 更新登录用户信息 | ||||||
|         LoginUser loginUser = LoginHelper.getLoginUser(); |         LoginUser loginUser = LoginHelper.getLoginUser(); | ||||||
| @@ -202,12 +202,12 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO, | |||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public UserDO getByUsername(String username) { |     public UserDO getByUsername(String username) { | ||||||
|         return super.lambdaQuery().eq(UserDO::getUsername, username).one(); |         return baseMapper.lambdaQuery().eq(UserDO::getUsername, username).one(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public Long countByDeptIds(List<Long> deptIds) { |     public Long countByDeptIds(List<Long> deptIds) { | ||||||
|         return super.lambdaQuery().in(UserDO::getDeptId, deptIds).count(); |         return baseMapper.lambdaQuery().in(UserDO::getDeptId, deptIds).count(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
| @@ -225,6 +225,6 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO, | |||||||
|      * @return 是否存在 |      * @return 是否存在 | ||||||
|      */ |      */ | ||||||
|     private boolean checkNameExists(String name, Long id) { |     private boolean checkNameExists(String name, Long id) { | ||||||
|         return super.lambdaQuery().eq(UserDO::getUsername, name).ne(id != null, UserDO::getUserId, id).exists(); |         return baseMapper.lambdaQuery().eq(UserDO::getUsername, name).ne(id != null, UserDO::getUserId, id).exists(); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user