diff --git a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseServiceImpl.java b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseServiceImpl.java index 1fb32e5e..0cf9293f 100644 --- a/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseServiceImpl.java +++ b/continew-admin-common/src/main/java/top/charles7c/cnadmin/common/base/BaseServiceImpl.java @@ -32,6 +32,11 @@ import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; import com.baomidou.mybatisplus.core.toolkit.Assert; 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.collection.CollUtil; @@ -246,4 +251,51 @@ public abstract class BaseServiceImpl, T, V, D, Q, C ext protected Class currentDetailVoClass() { return (Class)ReflectionKit.getSuperClassGenericType(this.getClass(), BaseServiceImpl.class, 3); } + + /** + * 链式查询 + * + * @return QueryWrapper 的包装类 + */ + protected QueryChainWrapper query() { + return ChainWrappers.queryChain(baseMapper); + } + + /** + * 链式查询(lambda 式) + * + * @return LambdaQueryWrapper 的包装类 + */ + protected LambdaQueryChainWrapper lambdaQuery() { + return ChainWrappers.lambdaQueryChain(baseMapper, entityClass); + } + + /** + * 链式查询(lambda 式) + * + * @param entity + * 实体对象 + * @return LambdaQueryWrapper 的包装类 + */ + protected LambdaQueryChainWrapper lambdaQuery(T entity) { + return ChainWrappers.lambdaQueryChain(baseMapper, entity); + } + + /** + * 链式更改 + * + * @return UpdateWrapper 的包装类 + */ + protected UpdateChainWrapper update() { + return ChainWrappers.updateChain(baseMapper); + } + + /** + * 链式更改(lambda 式) + * + * @return LambdaUpdateWrapper 的包装类 + */ + protected LambdaUpdateChainWrapper lambdaUpdate() { + return ChainWrappers.lambdaUpdateChain(baseMapper); + } } diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DeptServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DeptServiceImpl.java index 6b7576cb..75dc4d86 100644 --- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DeptServiceImpl.java +++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DeptServiceImpl.java @@ -26,8 +26,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; - import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.tree.Tree; @@ -62,8 +60,8 @@ public class DeptServiceImpl extends BaseServiceImpl isExist, String.format("新增失败,'%s'已存在", deptName)); + boolean isExists = this.checkNameExists(deptName, request.getParentId(), request.getDeptId()); + CheckUtils.throwIf(() -> isExists, String.format("新增失败,'%s'已存在", deptName)); // 保存信息 request.setStatus(DisEnableStatusEnum.ENABLE); @@ -74,8 +72,8 @@ public class DeptServiceImpl extends BaseServiceImpl isExist, String.format("新增失败,'%s'已存在", deptName)); + boolean isExists = this.checkNameExists(deptName, request.getParentId(), request.getDeptId()); + CheckUtils.throwIf(() -> isExists, String.format("修改失败,'%s'已存在", deptName)); super.update(request); } @@ -85,7 +83,7 @@ public class DeptServiceImpl extends BaseServiceImpl ids) { CheckUtils.throwIf(() -> userService.countByDeptIds(ids) > 0, "所选部门存在用户关联,请解除关联后重试"); super.delete(ids); - baseMapper.delete(Wrappers.lambdaQuery().in(DeptDO::getParentId, ids)); + super.lambdaUpdate().in(DeptDO::getParentId, ids).remove(); } @Override @@ -109,18 +107,18 @@ public class DeptServiceImpl extends BaseServiceImpl deDuplication(List list) { List deDuplicationList = new ArrayList<>(); - for (DeptVO outerDept : list) { + for (DeptVO outer : list) { boolean flag = true; - for (DeptVO innerDept : list) { + for (DeptVO inner : list) { // 忽略重复子列表 - if (innerDept.getDeptId().equals(outerDept.getParentId())) { + if (inner.getDeptId().equals(outer.getParentId())) { flag = false; break; } } if (flag) { - deDuplicationList.add(outerDept); + deDuplicationList.add(outer); } } return deDuplicationList; @@ -153,17 +151,17 @@ public class DeptServiceImpl extends BaseServiceImpllambdaQuery().eq(DeptDO::getDeptName, deptName) - .eq(DeptDO::getParentId, parentId).ne(deptId != null, DeptDO::getDeptId, deptId)); + private boolean checkNameExists(String name, Long parentId, Long id) { + return super.lambdaQuery().eq(DeptDO::getDeptName, name).eq(DeptDO::getParentId, parentId) + .ne(id != null, DeptDO::getDeptId, id).exists(); } @Override diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/RoleServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/RoleServiceImpl.java index 412ae743..ccdf13eb 100644 --- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/RoleServiceImpl.java +++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/RoleServiceImpl.java @@ -23,8 +23,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; - import top.charles7c.cnadmin.common.base.BaseServiceImpl; import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; import top.charles7c.cnadmin.common.util.validate.CheckUtils; @@ -54,7 +52,7 @@ public class RoleServiceImpl extends BaseServiceImpl isExist, String.format("新增失败,'%s'已存在", roleName)); // 保存信息 @@ -66,7 +64,7 @@ public class RoleServiceImpl extends BaseServiceImpl isExist, String.format("修改失败,'%s'已存在", roleName)); super.update(request); @@ -82,14 +80,13 @@ public class RoleServiceImpl extends BaseServiceImpllambdaQuery().eq(RoleDO::getRoleName, roleName).ne(roleId != null, - RoleDO::getRoleId, roleId)); + private boolean checkNameExists(String name, Long id) { + return super.lambdaQuery().eq(RoleDO::getRoleName, name).ne(id != null, RoleDO::getRoleId, id).exists(); } }