[重大更新] 增加mybatis-plus扩展工具 大幅简化整体业务代码写法 优雅舒适
This commit is contained in:
+4
-5
@@ -1,7 +1,6 @@
|
||||
package org.dromara.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
import com.github.yulichang.toolkit.JoinWrappers;
|
||||
@@ -9,7 +8,6 @@ import org.dromara.common.core.utils.StreamUtils;
|
||||
import org.dromara.common.mybatis.annotation.DataColumn;
|
||||
import org.dromara.common.mybatis.annotation.DataPermission;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.common.mybatis.helper.DataBaseHelper;
|
||||
import org.dromara.system.domain.SysDept;
|
||||
import org.dromara.system.domain.SysRole;
|
||||
import org.dromara.system.domain.SysRoleDept;
|
||||
@@ -66,7 +64,7 @@ public interface SysDeptMapper extends BaseMapperPlus<SysDept, SysDeptVo>, MPJBa
|
||||
@DataColumn(key = "deptName", value = "dept_id")
|
||||
})
|
||||
default long countDeptById(Long deptId) {
|
||||
return this.selectCount(new LambdaQueryWrapper<SysDept>().eq(SysDept::getDeptId, deptId));
|
||||
return this.lambda().eq(SysDept::getDeptId, deptId).count();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -76,9 +74,10 @@ public interface SysDeptMapper extends BaseMapperPlus<SysDept, SysDeptVo>, MPJBa
|
||||
* @return 包含子部门的列表
|
||||
*/
|
||||
default List<SysDept> selectListByParentId(Long parentId) {
|
||||
return this.selectList(new LambdaQueryWrapper<SysDept>()
|
||||
return this.lambda()
|
||||
.select(SysDept::getDeptId)
|
||||
.apply(DataBaseHelper.findInSet(parentId, "ancestors")));
|
||||
.findInSet(parentId, SysDept::getAncestors)
|
||||
.list();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+4
-5
@@ -1,6 +1,5 @@
|
||||
package org.dromara.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.system.domain.SysDictData;
|
||||
import org.dromara.system.domain.vo.SysDictDataVo;
|
||||
@@ -21,9 +20,9 @@ public interface SysDictDataMapper extends BaseMapperPlus<SysDictData, SysDictDa
|
||||
* @return 符合条件的字典数据列表
|
||||
*/
|
||||
default List<SysDictDataVo> selectDictDataByType(String dictType) {
|
||||
return selectVoList(
|
||||
new LambdaQueryWrapper<SysDictData>()
|
||||
.eq(SysDictData::getDictType, dictType)
|
||||
.orderByAsc(SysDictData::getDictSort));
|
||||
return this.lambda()
|
||||
.eq(SysDictData::getDictType, dictType)
|
||||
.orderByAsc(SysDictData::getDictSort)
|
||||
.voList();
|
||||
}
|
||||
}
|
||||
|
||||
+3
-4
@@ -1,7 +1,6 @@
|
||||
package org.dromara.system.mapper;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
import com.github.yulichang.toolkit.JoinWrappers;
|
||||
import org.dromara.common.core.constant.SystemConstants;
|
||||
@@ -97,12 +96,12 @@ public interface SysMenuMapper extends BaseMapperPlus<SysMenu, SysMenuVo>, MPJBa
|
||||
* @return 菜单列表
|
||||
*/
|
||||
default List<SysMenu> selectMenuTreeAll() {
|
||||
LambdaQueryWrapper<SysMenu> lqw = new LambdaQueryWrapper<SysMenu>()
|
||||
return this.lambda()
|
||||
.in(SysMenu::getMenuType, SystemConstants.TYPE_DIR, SystemConstants.TYPE_MENU)
|
||||
.eq(SysMenu::getStatus, SystemConstants.NORMAL)
|
||||
.orderByAsc(SysMenu::getParentId)
|
||||
.orderByAsc(SysMenu::getOrderNum);
|
||||
return this.selectList(lqw);
|
||||
.orderByAsc(SysMenu::getOrderNum)
|
||||
.list();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+1
-2
@@ -1,7 +1,6 @@
|
||||
package org.dromara.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
import com.github.yulichang.toolkit.JoinWrappers;
|
||||
@@ -62,7 +61,7 @@ public interface SysPostMapper extends BaseMapperPlus<SysPost, SysPostVo>, MPJBa
|
||||
@DataColumn(key = "userName", value = "create_by")
|
||||
})
|
||||
default long selectPostCount(Collection<Long> postIds) {
|
||||
return this.selectCount(new LambdaQueryWrapper<SysPost>().in(SysPost::getPostId, postIds));
|
||||
return this.lambda().in(SysPost::getPostId, postIds).count();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+1
-2
@@ -1,7 +1,6 @@
|
||||
package org.dromara.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
@@ -64,7 +63,7 @@ public interface SysRoleMapper extends BaseMapperPlus<SysRole, SysRoleVo>, MPJBa
|
||||
@DataColumn(key = "userName", value = "create_by")
|
||||
})
|
||||
default long selectRoleCount(Collection<Long> roleIds) {
|
||||
return this.selectCount(new LambdaQueryWrapper<SysRole>().in(SysRole::getRoleId, roleIds));
|
||||
return this.lambda().in(SysRole::getRoleId, roleIds).count();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+1
-2
@@ -1,6 +1,5 @@
|
||||
package org.dromara.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.system.domain.SysRoleMenu;
|
||||
|
||||
@@ -20,7 +19,7 @@ public interface SysRoleMenuMapper extends BaseMapperPlus<SysRoleMenu, SysRoleMe
|
||||
* @return 结果
|
||||
*/
|
||||
default int deleteByMenuIds(Collection<Long> menuIds) {
|
||||
return this.delete(new LambdaUpdateWrapper<SysRoleMenu>().in(SysRoleMenu::getMenuId, menuIds));
|
||||
return this.lambda().in(SysRoleMenu::getMenuId, menuIds).deleteCount();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-2
@@ -1,7 +1,6 @@
|
||||
package org.dromara.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
@@ -136,7 +135,7 @@ public interface SysUserMapper extends BaseMapperPlus<SysUser, SysUserVo>, MPJBa
|
||||
@DataColumn(key = "userName", value = "create_by")
|
||||
})
|
||||
default long countUserById(Long userId) {
|
||||
return this.selectCount(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserId, userId));
|
||||
return lambda().eq(SysUser::getUserId, userId).count();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+5
-4
@@ -1,6 +1,6 @@
|
||||
package org.dromara.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.system.domain.SysUserRole;
|
||||
|
||||
@@ -20,9 +20,10 @@ public interface SysUserRoleMapper extends BaseMapperPlus<SysUserRole, SysUserRo
|
||||
* @return 关联到指定角色的用户ID列表
|
||||
*/
|
||||
default List<Long> selectUserIdsByRoleId(Long roleId) {
|
||||
return this.selectObjs(new LambdaQueryWrapper<SysUserRole>()
|
||||
.select(SysUserRole::getUserId).eq(SysUserRole::getRoleId, roleId)
|
||||
);
|
||||
return this.lambda()
|
||||
.select(SysUserRole::getUserId)
|
||||
.eq(SysUserRole::getRoleId, roleId)
|
||||
.objs(Convert::toLong);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+16
-16
@@ -4,8 +4,6 @@ import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.crypto.SecureUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -14,6 +12,7 @@ import org.dromara.common.core.domain.PageResult;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.query.QueryBuilder;
|
||||
import org.dromara.system.domain.SysClient;
|
||||
import org.dromara.system.domain.bo.SysClientBo;
|
||||
import org.dromara.system.domain.vo.SysClientVo;
|
||||
@@ -64,7 +63,7 @@ public class SysClientServiceImpl implements ISysClientService {
|
||||
@Cacheable(cacheNames = CacheNames.SYS_CLIENT, key = "#clientId")
|
||||
@Override
|
||||
public SysClientVo queryByClientId(String clientId) {
|
||||
SysClientVo vo = baseMapper.selectVoOne(new LambdaQueryWrapper<SysClient>().eq(SysClient::getClientId, clientId));
|
||||
SysClientVo vo = baseMapper.lambda().eq(SysClient::getClientId, clientId).voOne();
|
||||
fillClientRuleFields(vo);
|
||||
return vo;
|
||||
}
|
||||
@@ -105,13 +104,13 @@ public class SysClientServiceImpl implements ISysClientService {
|
||||
* @return 包含 clientId、clientKey、状态等条件的查询包装器
|
||||
*/
|
||||
private LambdaQueryWrapper<SysClient> buildQueryWrapper(SysClientBo bo) {
|
||||
LambdaQueryWrapper<SysClient> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getClientId()), SysClient::getClientId, bo.getClientId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getClientKey()), SysClient::getClientKey, bo.getClientKey());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getClientSecret()), SysClient::getClientSecret, bo.getClientSecret());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysClient::getStatus, bo.getStatus());
|
||||
lqw.orderByAsc(SysClient::getId);
|
||||
return lqw;
|
||||
return QueryBuilder.lambda(SysClient.class)
|
||||
.eqIfText(SysClient::getClientId, bo.getClientId())
|
||||
.eqIfText(SysClient::getClientKey, bo.getClientKey())
|
||||
.eqIfText(SysClient::getClientSecret, bo.getClientSecret())
|
||||
.eqIfText(SysClient::getStatus, bo.getStatus())
|
||||
.orderByAsc(SysClient::getId)
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -163,10 +162,10 @@ public class SysClientServiceImpl implements ISysClientService {
|
||||
@CacheEvict(cacheNames = CacheNames.SYS_CLIENT, key = "#clientId")
|
||||
@Override
|
||||
public int updateClientStatus(String clientId, String status) {
|
||||
return baseMapper.update(null,
|
||||
new LambdaUpdateWrapper<SysClient>()
|
||||
.set(SysClient::getStatus, status)
|
||||
.eq(SysClient::getClientId, clientId));
|
||||
return baseMapper.lambda()
|
||||
.set(SysClient::getStatus, status)
|
||||
.eq(SysClient::getClientId, clientId)
|
||||
.updateCount();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -190,9 +189,10 @@ public class SysClientServiceImpl implements ISysClientService {
|
||||
*/
|
||||
@Override
|
||||
public boolean checkClickKeyUnique(SysClientBo client) {
|
||||
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysClient>()
|
||||
boolean exist = baseMapper.lambda()
|
||||
.eq(SysClient::getClientKey, client.getClientKey())
|
||||
.ne(ObjectUtil.isNotNull(client.getId()), SysClient::getId, client.getId()));
|
||||
.neIfPresent(SysClient::getId, client.getId())
|
||||
.exists();
|
||||
return !exist;
|
||||
}
|
||||
|
||||
|
||||
+15
-15
@@ -4,7 +4,6 @@ import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.constant.CacheNames;
|
||||
@@ -17,6 +16,7 @@ import org.dromara.common.core.utils.SpringUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.json.utils.JsonUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.query.QueryBuilder;
|
||||
import org.dromara.common.redis.utils.CacheUtils;
|
||||
import org.dromara.system.api.ConfigService;
|
||||
import org.dromara.system.domain.SysConfig;
|
||||
@@ -77,8 +77,7 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService {
|
||||
@Cacheable(cacheNames = CacheNames.SYS_CONFIG, key = "#configKey")
|
||||
@Override
|
||||
public String selectConfigByKey(String configKey) {
|
||||
SysConfig retConfig = baseMapper.selectOne(new LambdaQueryWrapper<SysConfig>()
|
||||
.eq(SysConfig::getConfigKey, configKey));
|
||||
SysConfig retConfig = baseMapper.lambda().eq(SysConfig::getConfigKey, configKey).one();
|
||||
return ObjectUtils.notNullGetter(retConfig, SysConfig::getConfigValue, StringUtils.EMPTY);
|
||||
}
|
||||
|
||||
@@ -112,14 +111,13 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService {
|
||||
*/
|
||||
private LambdaQueryWrapper<SysConfig> buildQueryWrapper(SysConfigBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SysConfig> lqw = Wrappers.lambdaQuery();
|
||||
lqw.like(StringUtils.isNotBlank(bo.getConfigName()), SysConfig::getConfigName, bo.getConfigName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getConfigType()), SysConfig::getConfigType, bo.getConfigType());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getConfigKey()), SysConfig::getConfigKey, bo.getConfigKey());
|
||||
lqw.between(params.get("beginTime") != null && params.get("endTime") != null,
|
||||
SysConfig::getCreateTime, params.get("beginTime"), params.get("endTime"));
|
||||
lqw.orderByAsc(SysConfig::getConfigId);
|
||||
return lqw;
|
||||
return QueryBuilder.lambda(SysConfig.class)
|
||||
.likeIfText(SysConfig::getConfigName, bo.getConfigName())
|
||||
.eqIfText(SysConfig::getConfigType, bo.getConfigType())
|
||||
.likeIfText(SysConfig::getConfigKey, bo.getConfigKey())
|
||||
.betweenParams(SysConfig::getCreateTime, params, "beginTime", "endTime")
|
||||
.orderByAsc(SysConfig::getConfigId)
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -158,8 +156,9 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService {
|
||||
row = baseMapper.updateById(config);
|
||||
} else {
|
||||
CacheUtils.evict(CacheNames.SYS_CONFIG, config.getConfigKey());
|
||||
row = baseMapper.update(config, new LambdaQueryWrapper<SysConfig>()
|
||||
.eq(SysConfig::getConfigKey, config.getConfigKey()));
|
||||
row = baseMapper.lambda()
|
||||
.eq(SysConfig::getConfigKey, config.getConfigKey())
|
||||
.updateCount(config);
|
||||
}
|
||||
if (row > 0) {
|
||||
return config.getConfigValue();
|
||||
@@ -200,9 +199,10 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService {
|
||||
*/
|
||||
@Override
|
||||
public boolean checkConfigKeyUnique(SysConfigBo config) {
|
||||
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysConfig>()
|
||||
boolean exist = baseMapper.lambda()
|
||||
.eq(SysConfig::getConfigKey, config.getConfigKey())
|
||||
.ne(ObjectUtil.isNotNull(config.getConfigId()), SysConfig::getConfigId, config.getConfigId()));
|
||||
.neIfPresent(SysConfig::getConfigId, config.getConfigId())
|
||||
.exists();
|
||||
return !exist;
|
||||
}
|
||||
|
||||
|
||||
+4
-5
@@ -3,7 +3,6 @@ package org.dromara.system.service.impl;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.constant.CacheNames;
|
||||
import org.dromara.common.core.utils.StreamUtils;
|
||||
@@ -44,10 +43,10 @@ public class SysDataScopeServiceImpl implements ISysDataScopeService {
|
||||
if (ObjectUtil.isNull(roleId)) {
|
||||
return "-1";
|
||||
}
|
||||
List<SysRoleDept> list = roleDeptMapper.selectList(
|
||||
new LambdaQueryWrapper<SysRoleDept>()
|
||||
.select(SysRoleDept::getDeptId)
|
||||
.eq(SysRoleDept::getRoleId, roleId));
|
||||
List<SysRoleDept> list = roleDeptMapper.lambda()
|
||||
.select(SysRoleDept::getDeptId)
|
||||
.eq(SysRoleDept::getRoleId, roleId)
|
||||
.list();
|
||||
if (CollUtil.isNotEmpty(list)) {
|
||||
return StreamUtils.join(list, rd -> Convert.toStr(rd.getDeptId()));
|
||||
}
|
||||
|
||||
+39
-41
@@ -6,8 +6,6 @@ import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.constant.CacheNames;
|
||||
@@ -16,7 +14,8 @@ import org.dromara.common.core.domain.PageResult;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.*;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.helper.DataBaseHelper;
|
||||
import org.dromara.common.mybatis.core.query.LambdaQueryBuilder;
|
||||
import org.dromara.common.mybatis.core.query.QueryBuilder;
|
||||
import org.dromara.common.redis.utils.CacheUtils;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.system.api.DeptService;
|
||||
@@ -97,27 +96,23 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
|
||||
*/
|
||||
private LambdaQueryWrapper<SysDept> buildQueryWrapper(SysDeptBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SysDept> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(SysDept::getDelFlag, SystemConstants.NORMAL);
|
||||
lqw.eq(ObjectUtil.isNotNull(bo.getDeptId()), SysDept::getDeptId, bo.getDeptId());
|
||||
lqw.eq(ObjectUtil.isNotNull(bo.getParentId()), SysDept::getParentId, bo.getParentId());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getDeptName()), SysDept::getDeptName, bo.getDeptName());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getDeptCategory()), SysDept::getDeptCategory, bo.getDeptCategory());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysDept::getStatus, bo.getStatus());
|
||||
lqw.between(params.get("beginTime") != null && params.get("endTime") != null,
|
||||
SysDept::getCreateTime, params.get("beginTime"), params.get("endTime"));
|
||||
lqw.orderByAsc(SysDept::getAncestors);
|
||||
lqw.orderByAsc(SysDept::getParentId);
|
||||
lqw.orderByAsc(SysDept::getOrderNum);
|
||||
lqw.orderByAsc(SysDept::getDeptId);
|
||||
LambdaQueryBuilder<SysDept> builder = QueryBuilder.lambda(SysDept.class)
|
||||
.eq(SysDept::getDelFlag, SystemConstants.NORMAL)
|
||||
.eqIfPresent(SysDept::getDeptId, bo.getDeptId())
|
||||
.eqIfPresent(SysDept::getParentId, bo.getParentId())
|
||||
.likeIfText(SysDept::getDeptName, bo.getDeptName())
|
||||
.likeIfText(SysDept::getDeptCategory, bo.getDeptCategory())
|
||||
.eqIfText(SysDept::getStatus, bo.getStatus())
|
||||
.betweenParams(SysDept::getCreateTime, params, "beginTime", "endTime")
|
||||
.orderByAsc(SysDept::getAncestors, SysDept::getParentId, SysDept::getOrderNum, SysDept::getDeptId);
|
||||
if (ObjectUtil.isNotNull(bo.getBelongDeptId())) {
|
||||
//部门树搜索
|
||||
lqw.and(x -> {
|
||||
builder.and(x -> {
|
||||
List<Long> deptIds = baseMapper.selectDeptAndChildById(bo.getBelongDeptId());
|
||||
x.in(SysDept::getDeptId, deptIds);
|
||||
});
|
||||
}
|
||||
return lqw;
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -169,8 +164,10 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
|
||||
if (ObjectUtil.isNull(dept)) {
|
||||
return null;
|
||||
}
|
||||
SysDeptVo parentDept = baseMapper.selectVoOne(new LambdaQueryWrapper<SysDept>()
|
||||
.select(SysDept::getDeptName).eq(SysDept::getDeptId, dept.getParentId()));
|
||||
SysDeptVo parentDept = baseMapper.lambda()
|
||||
.select(SysDept::getDeptName)
|
||||
.eq(SysDept::getDeptId, dept.getParentId())
|
||||
.voOne();
|
||||
dept.setParentName(ObjectUtils.notNullGetter(parentDept, SysDeptVo::getDeptName));
|
||||
return dept;
|
||||
}
|
||||
@@ -183,10 +180,11 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
|
||||
*/
|
||||
@Override
|
||||
public List<SysDeptVo> selectDeptByIds(Collection<Long> deptIds) {
|
||||
return baseMapper.selectDeptList(new LambdaQueryWrapper<SysDept>()
|
||||
return baseMapper.selectDeptList(baseMapper.lambda()
|
||||
.select(SysDept::getDeptId, SysDept::getDeptName, SysDept::getLeader)
|
||||
.eq(SysDept::getStatus, SystemConstants.NORMAL)
|
||||
.in(CollUtil.isNotEmpty(deptIds), SysDept::getDeptId, deptIds));
|
||||
.in(CollUtil.isNotEmpty(deptIds), SysDept::getDeptId, deptIds)
|
||||
.build());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -226,9 +224,10 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
|
||||
*/
|
||||
@Override
|
||||
public List<DeptDTO> selectDeptsByList() {
|
||||
List<SysDeptVo> list = baseMapper.selectDeptList(new LambdaQueryWrapper<SysDept>()
|
||||
List<SysDeptVo> list = baseMapper.selectDeptList(baseMapper.lambda()
|
||||
.select(SysDept::getDeptId, SysDept::getDeptName, SysDept::getParentId)
|
||||
.eq(SysDept::getStatus, SystemConstants.NORMAL));
|
||||
.eq(SysDept::getStatus, SystemConstants.NORMAL)
|
||||
.build());
|
||||
return BeanUtil.copyToList(list, DeptDTO.class);
|
||||
}
|
||||
|
||||
@@ -240,9 +239,10 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
|
||||
*/
|
||||
@Override
|
||||
public long selectNormalChildrenDeptById(Long deptId) {
|
||||
return baseMapper.selectCount(new LambdaQueryWrapper<SysDept>()
|
||||
return baseMapper.lambda()
|
||||
.eq(SysDept::getStatus, SystemConstants.NORMAL)
|
||||
.apply(DataBaseHelper.findInSet(deptId, "ancestors")));
|
||||
.findInSet(deptId, SysDept::getAncestors)
|
||||
.count();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -253,8 +253,7 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
|
||||
*/
|
||||
@Override
|
||||
public boolean hasChildByDeptId(Long deptId) {
|
||||
return baseMapper.exists(new LambdaQueryWrapper<SysDept>()
|
||||
.eq(SysDept::getParentId, deptId));
|
||||
return baseMapper.lambda().eq(SysDept::getParentId, deptId).exists();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -265,8 +264,7 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
|
||||
*/
|
||||
@Override
|
||||
public boolean checkDeptExistUser(Long deptId) {
|
||||
return userMapper.exists(new LambdaQueryWrapper<SysUser>()
|
||||
.eq(SysUser::getDeptId, deptId));
|
||||
return userMapper.lambda().eq(SysUser::getDeptId, deptId).exists();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -277,10 +275,11 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
|
||||
*/
|
||||
@Override
|
||||
public boolean checkDeptNameUnique(SysDeptBo dept) {
|
||||
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysDept>()
|
||||
boolean exist = baseMapper.lambda()
|
||||
.eq(SysDept::getDeptName, dept.getDeptName())
|
||||
.eq(SysDept::getParentId, dept.getParentId())
|
||||
.ne(ObjectUtil.isNotNull(dept.getDeptId()), SysDept::getDeptId, dept.getDeptId()));
|
||||
.neIfPresent(SysDept::getDeptId, dept.getDeptId())
|
||||
.exists();
|
||||
return !exist;
|
||||
}
|
||||
|
||||
@@ -374,9 +373,10 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
|
||||
private void updateParentDeptStatusNormal(SysDept dept) {
|
||||
String ancestors = dept.getAncestors();
|
||||
Long[] deptIds = Convert.toLongArray(ancestors);
|
||||
baseMapper.update(null, new LambdaUpdateWrapper<SysDept>()
|
||||
baseMapper.lambda()
|
||||
.set(SysDept::getStatus, SystemConstants.NORMAL)
|
||||
.in(SysDept::getDeptId, Arrays.asList(deptIds)));
|
||||
.in(SysDept::getDeptId, Arrays.asList(deptIds))
|
||||
.update();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -387,8 +387,7 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
|
||||
* @param oldAncestors 旧的父ID集合
|
||||
*/
|
||||
private void updateDeptChildren(Long deptId, String newAncestors, String oldAncestors) {
|
||||
List<SysDept> children = baseMapper.selectList(new LambdaQueryWrapper<SysDept>()
|
||||
.apply(DataBaseHelper.findInSet(deptId, "ancestors")));
|
||||
List<SysDept> children = baseMapper.lambda().findInSet(deptId, SysDept::getAncestors).list();
|
||||
List<SysDept> list = new ArrayList<>();
|
||||
for (SysDept child : children) {
|
||||
SysDept dept = new SysDept();
|
||||
@@ -430,11 +429,10 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
|
||||
if (CollUtil.isEmpty(deptIds)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
List<SysDept> list = baseMapper.selectList(
|
||||
new LambdaQueryWrapper<SysDept>()
|
||||
.select(SysDept::getDeptId, SysDept::getDeptName)
|
||||
.in(SysDept::getDeptId, deptIds)
|
||||
);
|
||||
List<SysDept> list = baseMapper.lambda()
|
||||
.select(SysDept::getDeptId, SysDept::getDeptName)
|
||||
.in(SysDept::getDeptId, deptIds)
|
||||
.list();
|
||||
return StreamUtils.toMap(list, SysDept::getDeptId, SysDept::getDeptName);
|
||||
}
|
||||
|
||||
|
||||
+15
-15
@@ -1,16 +1,14 @@
|
||||
package org.dromara.system.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.constant.CacheNames;
|
||||
import org.dromara.common.core.domain.PageResult;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.query.QueryBuilder;
|
||||
import org.dromara.common.redis.utils.CacheUtils;
|
||||
import org.dromara.system.domain.SysDictData;
|
||||
import org.dromara.system.domain.bo.SysDictDataBo;
|
||||
@@ -67,12 +65,12 @@ public class SysDictDataServiceImpl implements ISysDictDataService {
|
||||
* @return 包含排序号、标签和字典类型条件的查询包装器
|
||||
*/
|
||||
private LambdaQueryWrapper<SysDictData> buildQueryWrapper(SysDictDataBo bo) {
|
||||
LambdaQueryWrapper<SysDictData> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getDictSort() != null, SysDictData::getDictSort, bo.getDictSort());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getDictLabel()), SysDictData::getDictLabel, bo.getDictLabel());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDictType()), SysDictData::getDictType, bo.getDictType());
|
||||
lqw.orderByAsc(SysDictData::getDictSort, SysDictData::getDictCode);
|
||||
return lqw;
|
||||
return QueryBuilder.lambda(SysDictData.class)
|
||||
.eqIfPresent(SysDictData::getDictSort, bo.getDictSort())
|
||||
.likeIfText(SysDictData::getDictLabel, bo.getDictLabel())
|
||||
.eqIfText(SysDictData::getDictType, bo.getDictType())
|
||||
.orderByAsc(SysDictData::getDictSort, SysDictData::getDictCode)
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -84,10 +82,11 @@ public class SysDictDataServiceImpl implements ISysDictDataService {
|
||||
*/
|
||||
@Override
|
||||
public String selectDictLabel(String dictType, String dictValue) {
|
||||
return baseMapper.selectOne(new LambdaQueryWrapper<SysDictData>()
|
||||
.select(SysDictData::getDictLabel)
|
||||
.eq(SysDictData::getDictType, dictType)
|
||||
.eq(SysDictData::getDictValue, dictValue))
|
||||
return baseMapper.lambda()
|
||||
.select(SysDictData::getDictLabel)
|
||||
.eq(SysDictData::getDictType, dictType)
|
||||
.eq(SysDictData::getDictValue, dictValue)
|
||||
.one()
|
||||
.getDictLabel();
|
||||
}
|
||||
|
||||
@@ -156,10 +155,11 @@ public class SysDictDataServiceImpl implements ISysDictDataService {
|
||||
*/
|
||||
@Override
|
||||
public boolean checkDictDataUnique(SysDictDataBo dict) {
|
||||
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysDictData>()
|
||||
boolean exist = baseMapper.lambda()
|
||||
.eq(SysDictData::getDictType, dict.getDictType())
|
||||
.eq(SysDictData::getDictValue, dict.getDictValue())
|
||||
.ne(ObjectUtil.isNotNull(dict.getDictCode()), SysDictData::getDictCode, dict.getDictCode()));
|
||||
.neIfPresent(SysDictData::getDictCode, dict.getDictCode())
|
||||
.exists();
|
||||
return !exist;
|
||||
}
|
||||
|
||||
|
||||
+14
-14
@@ -4,8 +4,6 @@ import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.constant.CacheNames;
|
||||
@@ -19,6 +17,7 @@ import org.dromara.common.core.utils.SpringUtils;
|
||||
import org.dromara.common.core.utils.StreamUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.query.QueryBuilder;
|
||||
import org.dromara.common.redis.utils.CacheUtils;
|
||||
import org.dromara.system.domain.SysDictData;
|
||||
import org.dromara.system.domain.SysDictType;
|
||||
@@ -81,11 +80,11 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
|
||||
* @return 包含名称、类型与创建时间区间的查询包装器
|
||||
*/
|
||||
private LambdaQueryWrapper<SysDictType> buildQueryWrapper(SysDictTypeBo bo) {
|
||||
LambdaQueryWrapper<SysDictType> lqw = Wrappers.lambdaQuery();
|
||||
lqw.like(StringUtils.isNotBlank(bo.getDictName()), SysDictType::getDictName, bo.getDictName());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getDictType()), SysDictType::getDictType, bo.getDictType());
|
||||
lqw.orderByAsc(SysDictType::getDictId);
|
||||
return lqw;
|
||||
return QueryBuilder.lambda(SysDictType.class)
|
||||
.likeIfText(SysDictType::getDictName, bo.getDictName())
|
||||
.likeIfText(SysDictType::getDictType, bo.getDictType())
|
||||
.orderByAsc(SysDictType::getDictId)
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -131,7 +130,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
|
||||
@Cacheable(cacheNames = CacheNames.SYS_DICT_TYPE, key = "#dictType")
|
||||
@Override
|
||||
public SysDictTypeVo selectDictTypeByType(String dictType) {
|
||||
return baseMapper.selectVoOne(new LambdaQueryWrapper<SysDictType>().eq(SysDictType::getDictType, dictType));
|
||||
return baseMapper.lambda().eq(SysDictType::getDictType, dictType).voOne();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -143,8 +142,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
|
||||
public void deleteDictTypeByIds(Collection<Long> dictIds) {
|
||||
List<SysDictType> list = baseMapper.selectByIds(dictIds);
|
||||
list.forEach(x -> {
|
||||
boolean assigned = dictDataMapper.exists(new LambdaQueryWrapper<SysDictData>()
|
||||
.eq(SysDictData::getDictType, x.getDictType()));
|
||||
boolean assigned = dictDataMapper.lambda().eq(SysDictData::getDictType, x.getDictType()).exists();
|
||||
if (assigned) {
|
||||
throw new ServiceException("{}已分配,不能删除", x.getDictName());
|
||||
}
|
||||
@@ -195,9 +193,10 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
|
||||
public List<SysDictDataVo> updateDictType(SysDictTypeBo bo) {
|
||||
SysDictType dict = MapstructUtils.convert(bo, SysDictType.class);
|
||||
SysDictType oldDict = baseMapper.selectById(dict.getDictId());
|
||||
dictDataMapper.update(null, new LambdaUpdateWrapper<SysDictData>()
|
||||
dictDataMapper.lambda()
|
||||
.set(SysDictData::getDictType, dict.getDictType())
|
||||
.eq(SysDictData::getDictType, oldDict.getDictType()));
|
||||
.eq(SysDictData::getDictType, oldDict.getDictType())
|
||||
.update();
|
||||
int row = baseMapper.updateById(dict);
|
||||
if (row > 0) {
|
||||
CacheUtils.evict(CacheNames.SYS_DICT, oldDict.getDictType());
|
||||
@@ -215,9 +214,10 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
|
||||
*/
|
||||
@Override
|
||||
public boolean checkDictTypeUnique(SysDictTypeBo dictType) {
|
||||
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysDictType>()
|
||||
boolean exist = baseMapper.lambda()
|
||||
.eq(SysDictType::getDictType, dictType.getDictType())
|
||||
.ne(ObjectUtil.isNotNull(dictType.getDictId()), SysDictType::getDictId, dictType.getDictId()));
|
||||
.neIfPresent(SysDictType::getDictId, dictType.getDictId())
|
||||
.exists();
|
||||
return !exist;
|
||||
}
|
||||
|
||||
|
||||
+19
-16
@@ -3,7 +3,6 @@ package org.dromara.system.service.impl;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.http.useragent.UserAgent;
|
||||
import cn.hutool.http.useragent.UserAgentUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -16,6 +15,7 @@ import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.core.utils.ip.AddressUtils;
|
||||
import org.dromara.common.log.event.LoginInfoEvent;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.mapper.LambdaCrudChainWrapper;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.system.domain.SysLoginInfo;
|
||||
import org.dromara.system.domain.bo.SysLoginInfoBo;
|
||||
@@ -122,13 +122,7 @@ public class SysLoginInfoServiceImpl implements ISysLoginInfoService {
|
||||
*/
|
||||
@Override
|
||||
public PageResult<SysLoginInfoVo> selectPageLoginInfoList(SysLoginInfoBo loginInfo, PageQuery pageQuery) {
|
||||
Map<String, Object> params = loginInfo.getParams();
|
||||
LambdaQueryWrapper<SysLoginInfo> lqw = new LambdaQueryWrapper<SysLoginInfo>()
|
||||
.like(StringUtils.isNotBlank(loginInfo.getIpaddr()), SysLoginInfo::getIpaddr, loginInfo.getIpaddr())
|
||||
.eq(StringUtils.isNotBlank(loginInfo.getStatus()), SysLoginInfo::getStatus, loginInfo.getStatus())
|
||||
.like(StringUtils.isNotBlank(loginInfo.getUserName()), SysLoginInfo::getUserName, loginInfo.getUserName())
|
||||
.between(params.get("beginTime") != null && params.get("endTime") != null,
|
||||
SysLoginInfo::getLoginTime, params.get("beginTime"), params.get("endTime"));
|
||||
LambdaCrudChainWrapper<SysLoginInfo, SysLoginInfoVo> lqw = buildQueryWrapper(loginInfo);
|
||||
if (StringUtils.isBlank(pageQuery.getOrderByColumn())) {
|
||||
lqw.orderByDesc(SysLoginInfo::getInfoId);
|
||||
}
|
||||
@@ -156,16 +150,25 @@ public class SysLoginInfoServiceImpl implements ISysLoginInfoService {
|
||||
*/
|
||||
@Override
|
||||
public List<SysLoginInfoVo> selectLoginInfoList(SysLoginInfoBo loginInfo) {
|
||||
Map<String, Object> params = loginInfo.getParams();
|
||||
return baseMapper.selectVoList(new LambdaQueryWrapper<SysLoginInfo>()
|
||||
.like(StringUtils.isNotBlank(loginInfo.getIpaddr()), SysLoginInfo::getIpaddr, loginInfo.getIpaddr())
|
||||
.eq(StringUtils.isNotBlank(loginInfo.getStatus()), SysLoginInfo::getStatus, loginInfo.getStatus())
|
||||
.like(StringUtils.isNotBlank(loginInfo.getUserName()), SysLoginInfo::getUserName, loginInfo.getUserName())
|
||||
.between(params.get("beginTime") != null && params.get("endTime") != null,
|
||||
SysLoginInfo::getLoginTime, params.get("beginTime"), params.get("endTime"))
|
||||
return baseMapper.selectVoList(buildQueryWrapper(loginInfo)
|
||||
.orderByDesc(SysLoginInfo::getInfoId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 构造登录日志列表查询条件。
|
||||
*
|
||||
* @param loginInfo 登录日志筛选条件
|
||||
* @return 登录日志查询包装器
|
||||
*/
|
||||
private LambdaCrudChainWrapper<SysLoginInfo, SysLoginInfoVo> buildQueryWrapper(SysLoginInfoBo loginInfo) {
|
||||
Map<String, Object> params = loginInfo.getParams();
|
||||
return baseMapper.lambda()
|
||||
.likeIfText(SysLoginInfo::getIpaddr, loginInfo.getIpaddr())
|
||||
.eqIfText(SysLoginInfo::getStatus, loginInfo.getStatus())
|
||||
.likeIfText(SysLoginInfo::getUserName, loginInfo.getUserName())
|
||||
.betweenParams(SysLoginInfo::getLoginTime, params, "beginTime", "endTime");
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除系统登录日志
|
||||
*
|
||||
@@ -182,6 +185,6 @@ public class SysLoginInfoServiceImpl implements ISysLoginInfoService {
|
||||
*/
|
||||
@Override
|
||||
public void cleanLoginInfo() {
|
||||
baseMapper.delete(new LambdaQueryWrapper<>());
|
||||
baseMapper.lambda().delete();
|
||||
}
|
||||
}
|
||||
|
||||
+23
-21
@@ -3,7 +3,6 @@ package org.dromara.system.service.impl;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.constant.Constants;
|
||||
@@ -64,15 +63,15 @@ public class SysMenuServiceImpl implements ISysMenuService {
|
||||
public List<SysMenuVo> selectMenuList(SysMenuBo menu, Long userId) {
|
||||
// 管理员显示所有菜单信息 不是管理员 按用户id过滤菜单
|
||||
if (LoginHelper.isSuperAdmin(userId)) {
|
||||
return baseMapper.selectVoList(
|
||||
new LambdaQueryWrapper<SysMenu>()
|
||||
.like(StringUtils.isNotBlank(menu.getMenuName()), SysMenu::getMenuName, menu.getMenuName())
|
||||
.eq(StringUtils.isNotBlank(menu.getVisible()), SysMenu::getVisible, menu.getVisible())
|
||||
.eq(StringUtils.isNotBlank(menu.getStatus()), SysMenu::getStatus, menu.getStatus())
|
||||
.eq(StringUtils.isNotBlank(menu.getMenuType()), SysMenu::getMenuType, menu.getMenuType())
|
||||
.eq(ObjectUtil.isNotNull(menu.getParentId()), SysMenu::getParentId, menu.getParentId())
|
||||
.orderByAsc(SysMenu::getParentId)
|
||||
.orderByAsc(SysMenu::getOrderNum));
|
||||
return baseMapper.lambda()
|
||||
.likeIfText(SysMenu::getMenuName, menu.getMenuName())
|
||||
.eqIfText(SysMenu::getVisible, menu.getVisible())
|
||||
.eqIfText(SysMenu::getStatus, menu.getStatus())
|
||||
.eqIfText(SysMenu::getMenuType, menu.getMenuType())
|
||||
.eqIfPresent(SysMenu::getParentId, menu.getParentId())
|
||||
.orderByAsc(SysMenu::getParentId)
|
||||
.orderByAsc(SysMenu::getOrderNum)
|
||||
.voList();
|
||||
}
|
||||
return baseMapper.selectMenuListByUserId(menu, userId);
|
||||
}
|
||||
@@ -246,7 +245,7 @@ public class SysMenuServiceImpl implements ISysMenuService {
|
||||
*/
|
||||
@Override
|
||||
public boolean hasChildByMenuId(Long menuId) {
|
||||
return baseMapper.exists(new LambdaQueryWrapper<SysMenu>().eq(SysMenu::getParentId, menuId));
|
||||
return baseMapper.lambda().eq(SysMenu::getParentId, menuId).exists();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -257,7 +256,10 @@ public class SysMenuServiceImpl implements ISysMenuService {
|
||||
*/
|
||||
@Override
|
||||
public boolean hasChildByMenuId(Collection<Long> menuIds) {
|
||||
return baseMapper.exists(new LambdaQueryWrapper<SysMenu>().in(SysMenu::getParentId, menuIds).notIn(SysMenu::getMenuId, menuIds));
|
||||
return baseMapper.lambda()
|
||||
.in(SysMenu::getParentId, menuIds)
|
||||
.notIn(SysMenu::getMenuId, menuIds)
|
||||
.exists();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -268,7 +270,7 @@ public class SysMenuServiceImpl implements ISysMenuService {
|
||||
*/
|
||||
@Override
|
||||
public boolean checkMenuExistRole(Long menuId) {
|
||||
return roleMenuMapper.exists(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getMenuId, menuId));
|
||||
return roleMenuMapper.lambda().eq(SysRoleMenu::getMenuId, menuId).exists();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -326,10 +328,11 @@ public class SysMenuServiceImpl implements ISysMenuService {
|
||||
*/
|
||||
@Override
|
||||
public boolean checkMenuNameUnique(SysMenuBo menu) {
|
||||
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysMenu>()
|
||||
boolean exist = baseMapper.lambda()
|
||||
.eq(SysMenu::getMenuName, menu.getMenuName())
|
||||
.eq(SysMenu::getParentId, menu.getParentId())
|
||||
.ne(ObjectUtil.isNotNull(menu.getMenuId()), SysMenu::getMenuId, menu.getMenuId()));
|
||||
.neIfPresent(SysMenu::getMenuId, menu.getMenuId())
|
||||
.exists();
|
||||
return !exist;
|
||||
}
|
||||
|
||||
@@ -349,12 +352,11 @@ public class SysMenuServiceImpl implements ISysMenuService {
|
||||
Long parentId = menu.getParentId();
|
||||
String path = menu.getPath();
|
||||
String routeName = StringUtils.isEmpty(menu.getRouteName()) ? path : menu.getRouteName();
|
||||
List<SysMenu> sysMenuList = baseMapper.selectList(
|
||||
new LambdaQueryWrapper<SysMenu>()
|
||||
.in(SysMenu::getMenuType, SystemConstants.TYPE_DIR, SystemConstants.TYPE_MENU)
|
||||
.and(w ->
|
||||
w.eq(SysMenu::getPath, path).or().eq(SysMenu::getPath, routeName)
|
||||
));
|
||||
List<SysMenu> sysMenuList = baseMapper.lambda()
|
||||
.in(SysMenu::getMenuType, SystemConstants.TYPE_DIR, SystemConstants.TYPE_MENU)
|
||||
.and(w -> {
|
||||
w.eq(SysMenu::getPath, path).or().eq(SysMenu::getPath, routeName);
|
||||
}).list();
|
||||
for (SysMenu sysMenu : sysMenuList) {
|
||||
if (!sysMenu.getMenuId().equals(menuId)) {
|
||||
Long dbParentId = sysMenu.getParentId();
|
||||
|
||||
+13
-17
@@ -2,8 +2,6 @@ package org.dromara.system.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.enums.PushSourceEnum;
|
||||
@@ -11,7 +9,6 @@ import org.dromara.common.core.enums.PushTypeEnum;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.json.utils.JsonUtils;
|
||||
import org.dromara.common.mybatis.helper.DataBaseHelper;
|
||||
import org.dromara.common.mybatis.utils.IdGeneratorUtil;
|
||||
import org.dromara.common.push.helper.PushHelper;
|
||||
import org.dromara.system.api.MessageService;
|
||||
@@ -207,20 +204,19 @@ public class SysMessageServiceImpl implements ISysMessageService, MessageService
|
||||
* @return 消息VO列表
|
||||
*/
|
||||
private List<SysMessageVo> selectMessageList(String category, Long userId) {
|
||||
LambdaQueryWrapper<SysMessage> lqw = Wrappers.lambdaQuery();
|
||||
// 分类匹配
|
||||
lqw.eq(SysMessage::getCategory, category);
|
||||
// 仅查询30天内消息
|
||||
lqw.ge(SysMessage::getCreateTime, LocalDateTime.now().minusDays(BOX_DAYS));
|
||||
// 全局消息 或 当前用户在接收人范围内
|
||||
lqw.and(wrapper -> wrapper.eq(SysMessage::getSendUserIds, GLOBAL_USER_IDS)
|
||||
.or()
|
||||
.apply(DataBaseHelper.findInSet(userId, "send_user_ids")));
|
||||
// 按创建时间+消息ID倒序
|
||||
lqw.orderByDesc(SysMessage::getCreateTime, SysMessage::getMessageId);
|
||||
// 分页查询(只查第一页,最多100条)
|
||||
List<SysMessage> list = baseMapper.selectList(new Page<>(1, BOX_LIMIT, false), lqw);
|
||||
// 转换为VO并返回
|
||||
List<SysMessage> list = baseMapper.lambda()
|
||||
.eq(SysMessage::getCategory, category)
|
||||
// 仅查询30天内消息
|
||||
.ge(SysMessage::getCreateTime, LocalDateTime.now().minusDays(BOX_DAYS))
|
||||
// 全局消息 或 当前用户在接收人范围内
|
||||
.and(wrapper -> {
|
||||
wrapper.eq(SysMessage::getSendUserIds, GLOBAL_USER_IDS)
|
||||
.or()
|
||||
.findInSet(userId, SysMessage::getSendUserIds);
|
||||
})
|
||||
.orderByDesc(SysMessage::getCreateTime, SysMessage::getMessageId)
|
||||
// 分页查询(只查第一页,最多100条)
|
||||
.list(new Page<>(1, BOX_LIMIT, false));
|
||||
return list.stream().map(this::buildVo).toList();
|
||||
}
|
||||
|
||||
|
||||
+8
-8
@@ -1,7 +1,6 @@
|
||||
package org.dromara.system.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.PageResult;
|
||||
@@ -9,6 +8,8 @@ import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.ObjectUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.query.LambdaQueryBuilder;
|
||||
import org.dromara.common.mybatis.core.query.QueryBuilder;
|
||||
import org.dromara.system.domain.SysNotice;
|
||||
import org.dromara.system.domain.SysUser;
|
||||
import org.dromara.system.domain.bo.SysNoticeBo;
|
||||
@@ -78,15 +79,14 @@ public class SysNoticeServiceImpl implements ISysNoticeService {
|
||||
* @return 包含标题、类型、创建人和排序条件的查询包装器
|
||||
*/
|
||||
private LambdaQueryWrapper<SysNotice> buildQueryWrapper(SysNoticeBo bo) {
|
||||
LambdaQueryWrapper<SysNotice> lqw = Wrappers.lambdaQuery();
|
||||
lqw.like(StringUtils.isNotBlank(bo.getNoticeTitle()), SysNotice::getNoticeTitle, bo.getNoticeTitle());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getNoticeType()), SysNotice::getNoticeType, bo.getNoticeType());
|
||||
LambdaQueryBuilder<SysNotice> builder = QueryBuilder.lambda(SysNotice.class)
|
||||
.likeIfText(SysNotice::getNoticeTitle, bo.getNoticeTitle())
|
||||
.eqIfText(SysNotice::getNoticeType, bo.getNoticeType());
|
||||
if (StringUtils.isNotBlank(bo.getCreateByName())) {
|
||||
SysUserVo sysUser = userMapper.selectVoOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, bo.getCreateByName()));
|
||||
lqw.eq(SysNotice::getCreateBy, ObjectUtils.notNullGetter(sysUser, SysUserVo::getUserId));
|
||||
SysUserVo sysUser = userMapper.lambda().eq(SysUser::getUserName, bo.getCreateByName()).voOne();
|
||||
builder.eq(SysNotice::getCreateBy, ObjectUtils.notNullGetter(sysUser, SysUserVo::getUserId));
|
||||
}
|
||||
lqw.orderByAsc(SysNotice::getNoticeId);
|
||||
return lqw;
|
||||
return builder.orderByAsc(SysNotice::getNoticeId).build();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+15
-15
@@ -10,6 +10,7 @@ import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.core.utils.ip.AddressUtils;
|
||||
import org.dromara.common.log.event.OperLogEvent;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.query.QueryBuilder;
|
||||
import org.dromara.system.domain.SysOperLog;
|
||||
import org.dromara.system.domain.bo.SysOperLogBo;
|
||||
import org.dromara.system.domain.vo.SysOperLogVo;
|
||||
@@ -74,9 +75,9 @@ public class SysOperLogServiceImpl implements ISysOperLogService {
|
||||
*/
|
||||
private LambdaQueryWrapper<SysOperLog> buildQueryWrapper(SysOperLogBo operLog) {
|
||||
Map<String, Object> params = operLog.getParams();
|
||||
return new LambdaQueryWrapper<SysOperLog>()
|
||||
.like(StringUtils.isNotBlank(operLog.getOperIp()), SysOperLog::getOperIp, operLog.getOperIp())
|
||||
.like(StringUtils.isNotBlank(operLog.getTitle()), SysOperLog::getTitle, operLog.getTitle())
|
||||
return QueryBuilder.lambda(SysOperLog.class)
|
||||
.likeIfText(SysOperLog::getOperIp, operLog.getOperIp())
|
||||
.likeIfText(SysOperLog::getTitle, operLog.getTitle())
|
||||
.eq(operLog.getBusinessType() != null && operLog.getBusinessType() > 0,
|
||||
SysOperLog::getBusinessType, operLog.getBusinessType())
|
||||
.func(f -> {
|
||||
@@ -84,17 +85,16 @@ public class SysOperLogServiceImpl implements ISysOperLogService {
|
||||
f.in(SysOperLog::getBusinessType, Arrays.asList(operLog.getBusinessTypes()));
|
||||
}
|
||||
})
|
||||
.eq(operLog.getStatus() != null,
|
||||
SysOperLog::getStatus, operLog.getStatus())
|
||||
.like(StringUtils.isNotBlank(operLog.getOperName()), SysOperLog::getOperName, operLog.getOperName())
|
||||
.eq(operLog.getUserId() != null, SysOperLog::getUserId, operLog.getUserId())
|
||||
.eq(operLog.getDeptId() != null, SysOperLog::getDeptId, operLog.getDeptId())
|
||||
.eq(StringUtils.isNotBlank(operLog.getClientKey()), SysOperLog::getClientKey, operLog.getClientKey())
|
||||
.eq(StringUtils.isNotBlank(operLog.getDeviceType()), SysOperLog::getDeviceType, operLog.getDeviceType())
|
||||
.like(StringUtils.isNotBlank(operLog.getBrowser()), SysOperLog::getBrowser, operLog.getBrowser())
|
||||
.like(StringUtils.isNotBlank(operLog.getOs()), SysOperLog::getOs, operLog.getOs())
|
||||
.between(params.get("beginTime") != null && params.get("endTime") != null,
|
||||
SysOperLog::getOperTime, params.get("beginTime"), params.get("endTime"));
|
||||
.eqIfPresent(SysOperLog::getStatus, operLog.getStatus())
|
||||
.likeIfText(SysOperLog::getOperName, operLog.getOperName())
|
||||
.eqIfPresent(SysOperLog::getUserId, operLog.getUserId())
|
||||
.eqIfPresent(SysOperLog::getDeptId, operLog.getDeptId())
|
||||
.eqIfText(SysOperLog::getClientKey, operLog.getClientKey())
|
||||
.eqIfText(SysOperLog::getDeviceType, operLog.getDeviceType())
|
||||
.likeIfText(SysOperLog::getBrowser, operLog.getBrowser())
|
||||
.likeIfText(SysOperLog::getOs, operLog.getOs())
|
||||
.betweenParams(SysOperLog::getOperTime, params, "beginTime", "endTime")
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -148,6 +148,6 @@ public class SysOperLogServiceImpl implements ISysOperLogService {
|
||||
*/
|
||||
@Override
|
||||
public void cleanOperLog() {
|
||||
baseMapper.delete(new LambdaQueryWrapper<>());
|
||||
baseMapper.lambda().delete();
|
||||
}
|
||||
}
|
||||
|
||||
+18
-19
@@ -3,8 +3,6 @@ package org.dromara.system.service.impl;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -17,6 +15,7 @@ import org.dromara.common.core.utils.ObjectUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.json.utils.JsonUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.query.QueryBuilder;
|
||||
import org.dromara.common.oss.constant.OssConstant;
|
||||
import org.dromara.common.redis.utils.CacheUtils;
|
||||
import org.dromara.common.redis.utils.RedisUtils;
|
||||
@@ -94,12 +93,12 @@ public class SysOssConfigServiceImpl implements ISysOssConfigService {
|
||||
* @return 包含配置标识、桶名称和状态条件的查询包装器
|
||||
*/
|
||||
private LambdaQueryWrapper<SysOssConfig> buildQueryWrapper(SysOssConfigBo bo) {
|
||||
LambdaQueryWrapper<SysOssConfig> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getConfigKey()), SysOssConfig::getConfigKey, bo.getConfigKey());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getBucketName()), SysOssConfig::getBucketName, bo.getBucketName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysOssConfig::getStatus, bo.getStatus());
|
||||
lqw.orderByAsc(SysOssConfig::getOssConfigId);
|
||||
return lqw;
|
||||
return QueryBuilder.lambda(SysOssConfig.class)
|
||||
.eqIfText(SysOssConfig::getConfigKey, bo.getConfigKey())
|
||||
.likeIfText(SysOssConfig::getBucketName, bo.getBucketName())
|
||||
.eqIfText(SysOssConfig::getStatus, bo.getStatus())
|
||||
.orderByAsc(SysOssConfig::getOssConfigId)
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -131,13 +130,13 @@ public class SysOssConfigServiceImpl implements ISysOssConfigService {
|
||||
public Boolean updateByBo(SysOssConfigBo bo) {
|
||||
SysOssConfig config = MapstructUtils.convert(bo, SysOssConfig.class);
|
||||
validEntityBeforeSave(config);
|
||||
LambdaUpdateWrapper<SysOssConfig> luw = new LambdaUpdateWrapper<>();
|
||||
luw.set(ObjectUtil.isNull(config.getPrefix()), SysOssConfig::getPrefix, "");
|
||||
luw.set(ObjectUtil.isNull(config.getRegion()), SysOssConfig::getRegion, "");
|
||||
luw.set(ObjectUtil.isNull(config.getExt1()), SysOssConfig::getExt1, "");
|
||||
luw.set(ObjectUtil.isNull(config.getRemark()), SysOssConfig::getRemark, "");
|
||||
luw.eq(SysOssConfig::getOssConfigId, config.getOssConfigId());
|
||||
boolean flag = baseMapper.update(config, luw) > 0;
|
||||
boolean flag = baseMapper.lambda()
|
||||
.set(ObjectUtil.isNull(config.getPrefix()), SysOssConfig::getPrefix, "")
|
||||
.set(ObjectUtil.isNull(config.getRegion()), SysOssConfig::getRegion, "")
|
||||
.set(ObjectUtil.isNull(config.getExt1()), SysOssConfig::getExt1, "")
|
||||
.set(ObjectUtil.isNull(config.getRemark()), SysOssConfig::getRemark, "")
|
||||
.eq(SysOssConfig::getOssConfigId, config.getOssConfigId())
|
||||
.update(config);
|
||||
if (flag) {
|
||||
// 从数据库查询完整的数据做缓存
|
||||
config = baseMapper.selectById(config.getOssConfigId());
|
||||
@@ -193,9 +192,10 @@ public class SysOssConfigServiceImpl implements ISysOssConfigService {
|
||||
*/
|
||||
private boolean checkConfigKeyUnique(SysOssConfig sysOssConfig) {
|
||||
long ossConfigId = ObjectUtils.notNull(sysOssConfig.getOssConfigId(), -1L);
|
||||
SysOssConfig info = baseMapper.selectOne(new LambdaQueryWrapper<SysOssConfig>()
|
||||
SysOssConfig info = baseMapper.lambda()
|
||||
.select(SysOssConfig::getOssConfigId, SysOssConfig::getConfigKey)
|
||||
.eq(SysOssConfig::getConfigKey, sysOssConfig.getConfigKey()));
|
||||
.eq(SysOssConfig::getConfigKey, sysOssConfig.getConfigKey())
|
||||
.one();
|
||||
if (ObjectUtil.isNotNull(info) && info.getOssConfigId() != ossConfigId) {
|
||||
return false;
|
||||
}
|
||||
@@ -212,8 +212,7 @@ public class SysOssConfigServiceImpl implements ISysOssConfigService {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int updateOssConfigStatus(SysOssConfigBo bo) {
|
||||
SysOssConfig sysOssConfig = MapstructUtils.convert(bo, SysOssConfig.class);
|
||||
int row = baseMapper.update(null, new LambdaUpdateWrapper<SysOssConfig>()
|
||||
.set(SysOssConfig::getStatus, SystemConstants.NO));
|
||||
int row = baseMapper.lambda().set(SysOssConfig::getStatus, SystemConstants.NO).updateCount();
|
||||
row += baseMapper.updateById(sysOssConfig);
|
||||
if (row > 0) {
|
||||
RedisUtils.setCacheObject(OssConstant.DEFAULT_CONFIG_KEY, sysOssConfig.getConfigKey());
|
||||
|
||||
+11
-12
@@ -5,7 +5,6 @@ import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -19,6 +18,7 @@ import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.core.utils.file.FileUtils;
|
||||
import org.dromara.common.json.utils.JsonUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.query.QueryBuilder;
|
||||
import org.dromara.common.oss.client.OssClient;
|
||||
import org.dromara.common.oss.enums.AccessPolicy;
|
||||
import org.dromara.common.oss.factory.OssFactory;
|
||||
@@ -157,17 +157,16 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
|
||||
*/
|
||||
private LambdaQueryWrapper<SysOss> buildQueryWrapper(SysOssBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SysOss> lqw = Wrappers.lambdaQuery();
|
||||
lqw.like(StringUtils.isNotBlank(bo.getFileName()), SysOss::getFileName, bo.getFileName());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getOriginalName()), SysOss::getOriginalName, bo.getOriginalName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileSuffix()), SysOss::getFileSuffix, bo.getFileSuffix());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getUrl()), SysOss::getUrl, bo.getUrl());
|
||||
lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null,
|
||||
SysOss::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime"));
|
||||
lqw.eq(ObjectUtil.isNotNull(bo.getCreateBy()), SysOss::getCreateBy, bo.getCreateBy());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getService()), SysOss::getService, bo.getService());
|
||||
lqw.orderByAsc(SysOss::getOssId);
|
||||
return lqw;
|
||||
return QueryBuilder.lambda(SysOss.class)
|
||||
.likeIfText(SysOss::getFileName, bo.getFileName())
|
||||
.likeIfText(SysOss::getOriginalName, bo.getOriginalName())
|
||||
.eqIfText(SysOss::getFileSuffix, bo.getFileSuffix())
|
||||
.eqIfText(SysOss::getUrl, bo.getUrl())
|
||||
.betweenParams(SysOss::getCreateTime, params, "beginCreateTime", "endCreateTime")
|
||||
.eqIfPresent(SysOss::getCreateBy, bo.getCreateBy())
|
||||
.eqIfText(SysOss::getService, bo.getService())
|
||||
.orderByAsc(SysOss::getOssId)
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+24
-25
@@ -2,8 +2,7 @@ package org.dromara.system.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.constant.SystemConstants;
|
||||
@@ -11,7 +10,6 @@ import org.dromara.common.core.domain.PageResult;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StreamUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.system.api.PostService;
|
||||
import org.dromara.system.domain.SysPost;
|
||||
@@ -83,15 +81,14 @@ public class SysPostServiceImpl implements ISysPostService, PostService {
|
||||
* @param bo 查询条件对象
|
||||
* @return 构建好的查询包装器
|
||||
*/
|
||||
private LambdaQueryWrapper<SysPost> buildQueryWrapper(SysPostBo bo) {
|
||||
private Wrapper<SysPost> buildQueryWrapper(SysPostBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SysPost> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.like(StringUtils.isNotBlank(bo.getPostCode()), SysPost::getPostCode, bo.getPostCode())
|
||||
.like(StringUtils.isNotBlank(bo.getPostCategory()), SysPost::getPostCategory, bo.getPostCategory())
|
||||
.like(StringUtils.isNotBlank(bo.getPostName()), SysPost::getPostName, bo.getPostName())
|
||||
.eq(StringUtils.isNotBlank(bo.getStatus()), SysPost::getStatus, bo.getStatus())
|
||||
.between(params.get("beginTime") != null && params.get("endTime") != null,
|
||||
SysPost::getCreateTime, params.get("beginTime"), params.get("endTime"))
|
||||
var wrapper = baseMapper.lambda()
|
||||
.likeIfText(SysPost::getPostCode, bo.getPostCode())
|
||||
.likeIfText(SysPost::getPostCategory, bo.getPostCategory())
|
||||
.likeIfText(SysPost::getPostName, bo.getPostName())
|
||||
.eqIfText(SysPost::getStatus, bo.getStatus())
|
||||
.betweenParams(SysPost::getCreateTime, params, "beginTime", "endTime")
|
||||
.orderByAsc(SysPost::getPostSort);
|
||||
if (ObjectUtil.isNotNull(bo.getDeptId())) {
|
||||
//优先单部门搜索
|
||||
@@ -113,7 +110,7 @@ public class SysPostServiceImpl implements ISysPostService, PostService {
|
||||
*/
|
||||
@Override
|
||||
public List<SysPostVo> selectPostAll() {
|
||||
return baseMapper.selectVoList(new QueryWrapper<>());
|
||||
return baseMapper.lambda().voList();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -147,10 +144,11 @@ public class SysPostServiceImpl implements ISysPostService, PostService {
|
||||
*/
|
||||
@Override
|
||||
public List<SysPostVo> selectPostByIds(Collection<Long> postIds) {
|
||||
return baseMapper.selectVoList(new LambdaQueryWrapper<SysPost>()
|
||||
return baseMapper.lambda()
|
||||
.select(SysPost::getPostId, SysPost::getPostName, SysPost::getPostCode)
|
||||
.eq(SysPost::getStatus, SystemConstants.NORMAL)
|
||||
.in(CollUtil.isNotEmpty(postIds), SysPost::getPostId, postIds));
|
||||
.in(CollUtil.isNotEmpty(postIds), SysPost::getPostId, postIds)
|
||||
.voList();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -161,10 +159,11 @@ public class SysPostServiceImpl implements ISysPostService, PostService {
|
||||
*/
|
||||
@Override
|
||||
public boolean checkPostNameUnique(SysPostBo post) {
|
||||
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysPost>()
|
||||
boolean exist = baseMapper.lambda()
|
||||
.eq(SysPost::getPostName, post.getPostName())
|
||||
.eq(SysPost::getDeptId, post.getDeptId())
|
||||
.ne(ObjectUtil.isNotNull(post.getPostId()), SysPost::getPostId, post.getPostId()));
|
||||
.neIfPresent(SysPost::getPostId, post.getPostId())
|
||||
.exists();
|
||||
return !exist;
|
||||
}
|
||||
|
||||
@@ -176,9 +175,10 @@ public class SysPostServiceImpl implements ISysPostService, PostService {
|
||||
*/
|
||||
@Override
|
||||
public boolean checkPostCodeUnique(SysPostBo post) {
|
||||
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysPost>()
|
||||
boolean exist = baseMapper.lambda()
|
||||
.eq(SysPost::getPostCode, post.getPostCode())
|
||||
.ne(ObjectUtil.isNotNull(post.getPostId()), SysPost::getPostId, post.getPostId()));
|
||||
.neIfPresent(SysPost::getPostId, post.getPostId())
|
||||
.exists();
|
||||
return !exist;
|
||||
}
|
||||
|
||||
@@ -190,7 +190,7 @@ public class SysPostServiceImpl implements ISysPostService, PostService {
|
||||
*/
|
||||
@Override
|
||||
public long countUserPostById(Long postId) {
|
||||
return userPostMapper.selectCount(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getPostId, postId));
|
||||
return userPostMapper.lambda().eq(SysUserPost::getPostId, postId).count();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -201,7 +201,7 @@ public class SysPostServiceImpl implements ISysPostService, PostService {
|
||||
*/
|
||||
@Override
|
||||
public long countPostByDeptId(Long deptId) {
|
||||
return baseMapper.selectCount(new LambdaQueryWrapper<SysPost>().eq(SysPost::getDeptId, deptId));
|
||||
return baseMapper.lambda().eq(SysPost::getDeptId, deptId).count();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -267,11 +267,10 @@ public class SysPostServiceImpl implements ISysPostService, PostService {
|
||||
if (CollUtil.isEmpty(postIds)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
List<SysPost> list = baseMapper.selectList(
|
||||
new LambdaQueryWrapper<SysPost>()
|
||||
.select(SysPost::getPostId, SysPost::getPostName)
|
||||
.in(SysPost::getPostId, postIds)
|
||||
);
|
||||
List<SysPost> list = baseMapper.lambda()
|
||||
.select(SysPost::getPostId, SysPost::getPostName)
|
||||
.in(SysPost::getPostId, postIds)
|
||||
.list();
|
||||
return StreamUtils.toMap(list, SysPost::getPostId, SysPost::getPostName);
|
||||
}
|
||||
|
||||
|
||||
+40
-39
@@ -6,9 +6,6 @@ import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.constant.CacheNames;
|
||||
@@ -19,6 +16,7 @@ import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StreamUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.query.QueryBuilder;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.system.api.RoleService;
|
||||
import org.dromara.system.api.model.LoginUser;
|
||||
@@ -85,15 +83,14 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
||||
*/
|
||||
private Wrapper<SysRole> buildQueryWrapper(SysRoleBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SysRole> wrapper = Wrappers.lambdaQuery();
|
||||
wrapper.eq(ObjectUtil.isNotNull(bo.getRoleId()), SysRole::getRoleId, bo.getRoleId())
|
||||
.like(StringUtils.isNotBlank(bo.getRoleName()), SysRole::getRoleName, bo.getRoleName())
|
||||
.eq(StringUtils.isNotBlank(bo.getStatus()), SysRole::getStatus, bo.getStatus())
|
||||
.like(StringUtils.isNotBlank(bo.getRoleKey()), SysRole::getRoleKey, bo.getRoleKey())
|
||||
.between(params.get("beginTime") != null && params.get("endTime") != null,
|
||||
SysRole::getCreateTime, params.get("beginTime"), params.get("endTime"))
|
||||
.orderByAsc(SysRole::getRoleSort).orderByAsc(SysRole::getCreateTime);
|
||||
return wrapper;
|
||||
return QueryBuilder.lambda(SysRole.class)
|
||||
.eqIfPresent(SysRole::getRoleId, bo.getRoleId())
|
||||
.likeIfText(SysRole::getRoleName, bo.getRoleName())
|
||||
.eqIfText(SysRole::getStatus, bo.getStatus())
|
||||
.likeIfText(SysRole::getRoleKey, bo.getRoleKey())
|
||||
.betweenParams(SysRole::getCreateTime, params, "beginTime", "endTime")
|
||||
.orderByAsc(SysRole::getRoleSort, SysRole::getCreateTime)
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -186,9 +183,10 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
||||
*/
|
||||
@Override
|
||||
public List<SysRoleVo> selectRoleByIds(Collection<Long> roleIds) {
|
||||
return baseMapper.selectRoleList(new LambdaQueryWrapper<SysRole>()
|
||||
return baseMapper.selectRoleList(baseMapper.lambda()
|
||||
.eq(SysRole::getStatus, SystemConstants.NORMAL)
|
||||
.in(CollUtil.isNotEmpty(roleIds), SysRole::getRoleId, roleIds));
|
||||
.inIfNotEmpty(SysRole::getRoleId, roleIds)
|
||||
.build());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -199,9 +197,10 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
||||
*/
|
||||
@Override
|
||||
public boolean checkRoleNameUnique(SysRoleBo role) {
|
||||
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysRole>()
|
||||
boolean exist = baseMapper.lambda()
|
||||
.eq(SysRole::getRoleName, role.getRoleName())
|
||||
.ne(ObjectUtil.isNotNull(role.getRoleId()), SysRole::getRoleId, role.getRoleId()));
|
||||
.neIfPresent(SysRole::getRoleId, role.getRoleId())
|
||||
.exists();
|
||||
return !exist;
|
||||
}
|
||||
|
||||
@@ -213,9 +212,10 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
||||
*/
|
||||
@Override
|
||||
public boolean checkRoleKeyUnique(SysRoleBo role) {
|
||||
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysRole>()
|
||||
boolean exist = baseMapper.lambda()
|
||||
.eq(SysRole::getRoleKey, role.getRoleKey())
|
||||
.ne(ObjectUtil.isNotNull(role.getRoleId()), SysRole::getRoleId, role.getRoleId()));
|
||||
.neIfPresent(SysRole::getRoleId, role.getRoleId())
|
||||
.exists();
|
||||
return !exist;
|
||||
}
|
||||
|
||||
@@ -286,7 +286,7 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
||||
*/
|
||||
@Override
|
||||
public long countUserRoleByRoleId(Long roleId) {
|
||||
return userRoleMapper.selectCount(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getRoleId, roleId));
|
||||
return userRoleMapper.lambda().eq(SysUserRole::getRoleId, roleId).count();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -337,10 +337,10 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
||||
// 更新权限相关配置字段(数据范围、树联动)。
|
||||
baseMapper.updateById(role);
|
||||
// 先清理旧菜单权限,再重建。
|
||||
roleMenuMapper.delete(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, role.getRoleId()));
|
||||
roleMenuMapper.lambda().eq(SysRoleMenu::getRoleId, role.getRoleId()).delete();
|
||||
insertRoleMenu(bo);
|
||||
// 先清理旧数据权限,再按当前配置重建。
|
||||
roleDeptMapper.delete(new LambdaQueryWrapper<SysRoleDept>().eq(SysRoleDept::getRoleId, role.getRoleId()));
|
||||
roleDeptMapper.lambda().eq(SysRoleDept::getRoleId, role.getRoleId()).delete();
|
||||
return insertRoleDept(bo);
|
||||
}
|
||||
|
||||
@@ -356,10 +356,10 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
||||
if (SystemConstants.DISABLE.equals(status) && this.countUserRoleByRoleId(roleId) > 0) {
|
||||
throw new ServiceException("角色已分配,不能禁用!");
|
||||
}
|
||||
return baseMapper.update(null,
|
||||
new LambdaUpdateWrapper<SysRole>()
|
||||
.set(SysRole::getStatus, status)
|
||||
.eq(SysRole::getRoleId, roleId));
|
||||
return baseMapper.lambda()
|
||||
.set(SysRole::getStatus, status)
|
||||
.eq(SysRole::getRoleId, roleId)
|
||||
.updateCount();
|
||||
}
|
||||
|
||||
|
||||
@@ -417,9 +417,9 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int deleteRoleById(Long roleId) {
|
||||
// 删除角色与菜单关联
|
||||
roleMenuMapper.delete(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, roleId));
|
||||
roleMenuMapper.lambda().eq(SysRoleMenu::getRoleId, roleId).delete();
|
||||
// 删除角色与部门关联
|
||||
roleDeptMapper.delete(new LambdaQueryWrapper<SysRoleDept>().eq(SysRoleDept::getRoleId, roleId));
|
||||
roleDeptMapper.lambda().eq(SysRoleDept::getRoleId, roleId).delete();
|
||||
return baseMapper.deleteById(roleId);
|
||||
}
|
||||
|
||||
@@ -442,9 +442,9 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
||||
}
|
||||
}
|
||||
// 删除角色与菜单关联
|
||||
roleMenuMapper.delete(new LambdaQueryWrapper<SysRoleMenu>().in(SysRoleMenu::getRoleId, roleIds));
|
||||
roleMenuMapper.lambda().in(SysRoleMenu::getRoleId, roleIds).delete();
|
||||
// 删除角色与部门关联
|
||||
roleDeptMapper.delete(new LambdaQueryWrapper<SysRoleDept>().in(SysRoleDept::getRoleId, roleIds));
|
||||
roleDeptMapper.lambda().in(SysRoleDept::getRoleId, roleIds).delete();
|
||||
return baseMapper.deleteByIds(roleIds);
|
||||
}
|
||||
|
||||
@@ -459,9 +459,10 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
||||
if (LoginHelper.getUserId().equals(userRole.getUserId())) {
|
||||
throw new ServiceException("不允许修改当前用户角色!");
|
||||
}
|
||||
int rows = userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>()
|
||||
int rows = userRoleMapper.lambda()
|
||||
.eq(SysUserRole::getRoleId, userRole.getRoleId())
|
||||
.eq(SysUserRole::getUserId, userRole.getUserId()));
|
||||
.eq(SysUserRole::getUserId, userRole.getUserId())
|
||||
.deleteCount();
|
||||
if (rows > 0) {
|
||||
cleanOnlineUser(List.of(userRole.getUserId()));
|
||||
}
|
||||
@@ -480,9 +481,10 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
||||
if (userIds.contains(LoginHelper.getUserId())) {
|
||||
throw new ServiceException("不允许修改当前用户角色!");
|
||||
}
|
||||
int rows = userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>()
|
||||
int rows = userRoleMapper.lambda()
|
||||
.eq(SysUserRole::getRoleId, roleId)
|
||||
.in(SysUserRole::getUserId, userIds));
|
||||
.in(SysUserRole::getUserId, userIds)
|
||||
.deleteCount();
|
||||
if (rows > 0) {
|
||||
cleanOnlineUser(userIds);
|
||||
}
|
||||
@@ -532,7 +534,7 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
||||
@Override
|
||||
public void cleanOnlineUserByRole(Long roleId) {
|
||||
// 如果角色未绑定用户 直接返回
|
||||
Long num = userRoleMapper.selectCount(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getRoleId, roleId));
|
||||
Long num = userRoleMapper.lambda().eq(SysUserRole::getRoleId, roleId).count();
|
||||
if (num == 0) {
|
||||
return;
|
||||
}
|
||||
@@ -607,11 +609,10 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
||||
if (CollUtil.isEmpty(roleIds)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
List<SysRole> list = baseMapper.selectList(
|
||||
new LambdaQueryWrapper<SysRole>()
|
||||
.select(SysRole::getRoleId, SysRole::getRoleName)
|
||||
.in(SysRole::getRoleId, roleIds)
|
||||
);
|
||||
List<SysRole> list = baseMapper.lambda()
|
||||
.select(SysRole::getRoleId, SysRole::getRoleName)
|
||||
.in(SysRole::getRoleId, roleIds)
|
||||
.list();
|
||||
return StreamUtils.toMap(list, SysRole::getRoleId, SysRole::getRoleName);
|
||||
}
|
||||
|
||||
|
||||
+7
-10
@@ -1,10 +1,7 @@
|
||||
package org.dromara.system.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.system.domain.SysSocial;
|
||||
import org.dromara.system.domain.bo.SysSocialBo;
|
||||
import org.dromara.system.domain.vo.SysSocialVo;
|
||||
@@ -46,11 +43,11 @@ public class SysSocialServiceImpl implements ISysSocialService {
|
||||
*/
|
||||
@Override
|
||||
public List<SysSocialVo> queryList(SysSocialBo bo) {
|
||||
LambdaQueryWrapper<SysSocial> lqw = new LambdaQueryWrapper<SysSocial>()
|
||||
.eq(ObjectUtil.isNotNull(bo.getUserId()), SysSocial::getUserId, bo.getUserId())
|
||||
.eq(StringUtils.isNotBlank(bo.getAuthId()), SysSocial::getAuthId, bo.getAuthId())
|
||||
.eq(StringUtils.isNotBlank(bo.getSource()), SysSocial::getSource, bo.getSource());
|
||||
return baseMapper.selectVoList(lqw);
|
||||
return baseMapper.lambda()
|
||||
.eqIfPresent(SysSocial::getUserId, bo.getUserId())
|
||||
.eqIfText(SysSocial::getAuthId, bo.getAuthId())
|
||||
.eqIfText(SysSocial::getSource, bo.getSource())
|
||||
.voList();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -61,7 +58,7 @@ public class SysSocialServiceImpl implements ISysSocialService {
|
||||
*/
|
||||
@Override
|
||||
public List<SysSocialVo> queryListByUserId(Long userId) {
|
||||
return baseMapper.selectVoList(new LambdaQueryWrapper<SysSocial>().eq(SysSocial::getUserId, userId));
|
||||
return baseMapper.lambda().eq(SysSocial::getUserId, userId).voList();
|
||||
}
|
||||
|
||||
|
||||
@@ -129,7 +126,7 @@ public class SysSocialServiceImpl implements ISysSocialService {
|
||||
*/
|
||||
@Override
|
||||
public List<SysSocialVo> selectByAuthId(String authId) {
|
||||
return baseMapper.selectVoList(new LambdaQueryWrapper<SysSocial>().eq(SysSocial::getAuthId, authId));
|
||||
return baseMapper.lambda().eq(SysSocial::getAuthId, authId).voList();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+88
-77
@@ -7,8 +7,6 @@ import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -18,6 +16,7 @@ import org.dromara.common.core.domain.PageResult;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.*;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.query.QueryBuilder;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.system.api.UserService;
|
||||
import org.dromara.system.api.domain.UserDTO;
|
||||
@@ -88,20 +87,21 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
*/
|
||||
private Wrapper<SysUser> buildQueryWrapper(SysUserBo user) {
|
||||
Map<String, Object> params = user.getParams();
|
||||
LambdaQueryWrapper<SysUser> wrapper = Wrappers.lambdaQuery();
|
||||
wrapper.eq(SysUser::getDelFlag, SystemConstants.NORMAL)
|
||||
.eq(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId())
|
||||
LambdaQueryWrapper<SysUser> wrapper = QueryBuilder.lambda(SysUser.class)
|
||||
.eq(SysUser::getDelFlag, SystemConstants.NORMAL)
|
||||
.eqIfPresent(SysUser::getUserId, user.getUserId())
|
||||
.in(StringUtils.isNotBlank(user.getUserIds()), SysUser::getUserId, StringUtils.splitTo(user.getUserIds(), Convert::toLong))
|
||||
.like(StringUtils.isNotBlank(user.getUserName()), SysUser::getUserName, user.getUserName())
|
||||
.like(StringUtils.isNotBlank(user.getNickName()), SysUser::getNickName, user.getNickName())
|
||||
.eq(StringUtils.isNotBlank(user.getStatus()), SysUser::getStatus, user.getStatus())
|
||||
.like(StringUtils.isNotBlank(user.getPhoneNumber()), SysUser::getPhoneNumber, user.getPhoneNumber())
|
||||
.between(params.get("beginTime") != null && params.get("endTime") != null,
|
||||
SysUser::getCreateTime, params.get("beginTime"), params.get("endTime"))
|
||||
.likeIfText(SysUser::getUserName, user.getUserName())
|
||||
.likeIfText(SysUser::getNickName, user.getNickName())
|
||||
.eqIfText(SysUser::getStatus, user.getStatus())
|
||||
.likeIfText(SysUser::getPhoneNumber, user.getPhoneNumber())
|
||||
.betweenParams(SysUser::getCreateTime, params, "beginTime", "endTime")
|
||||
.and(ObjectUtil.isNotNull(user.getDeptId()), w -> {
|
||||
List<Long> ids = deptMapper.selectDeptAndChildById(user.getDeptId());
|
||||
w.in(SysUser::getDeptId, ids);
|
||||
}).orderByAsc(SysUser::getUserId);
|
||||
})
|
||||
.orderByAsc(SysUser::getUserId)
|
||||
.build();
|
||||
if (StringUtils.isNotBlank(user.getExcludeUserIds())) {
|
||||
wrapper.notIn(SysUser::getUserId, StringUtils.splitTo(user.getExcludeUserIds(), Convert::toLong));
|
||||
}
|
||||
@@ -141,7 +141,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
*/
|
||||
@Override
|
||||
public SysUserVo selectUserByUserName(String userName) {
|
||||
return baseMapper.selectVoOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, userName));
|
||||
return baseMapper.lambda().eq(SysUser::getUserName, userName).voOne();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -152,7 +152,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
*/
|
||||
@Override
|
||||
public SysUserVo selectUserByPhoneNumber(String phoneNumber) {
|
||||
return baseMapper.selectVoOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhoneNumber, phoneNumber));
|
||||
return baseMapper.lambda().eq(SysUser::getPhoneNumber, phoneNumber).voOne();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -180,11 +180,12 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
*/
|
||||
@Override
|
||||
public List<SysUserVo> selectUserByIds(Collection<Long> userIds, Long deptId) {
|
||||
return baseMapper.selectUserList(new LambdaQueryWrapper<SysUser>()
|
||||
return baseMapper.selectUserList(baseMapper.lambda()
|
||||
.select(SysUser::getUserId, SysUser::getUserName, SysUser::getNickName)
|
||||
.eq(SysUser::getStatus, SystemConstants.NORMAL)
|
||||
.eq(ObjectUtil.isNotNull(deptId), SysUser::getDeptId, deptId)
|
||||
.in(CollUtil.isNotEmpty(userIds), SysUser::getUserId, userIds));
|
||||
.eqIfPresent(SysUser::getDeptId, deptId)
|
||||
.inIfNotEmpty(SysUser::getUserId, userIds)
|
||||
.build());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -225,9 +226,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
*/
|
||||
@Override
|
||||
public boolean checkUserNameUnique(SysUserBo user) {
|
||||
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>()
|
||||
boolean exist = baseMapper.lambda()
|
||||
.eq(SysUser::getUserName, user.getUserName())
|
||||
.ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
|
||||
.neIfPresent(SysUser::getUserId, user.getUserId())
|
||||
.exists();
|
||||
return !exist;
|
||||
}
|
||||
|
||||
@@ -238,9 +240,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
*/
|
||||
@Override
|
||||
public boolean checkPhoneUnique(SysUserBo user) {
|
||||
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>()
|
||||
boolean exist = baseMapper.lambda()
|
||||
.eq(SysUser::getPhoneNumber, user.getPhoneNumber())
|
||||
.ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
|
||||
.neIfPresent(SysUser::getUserId, user.getUserId())
|
||||
.exists();
|
||||
return !exist;
|
||||
}
|
||||
|
||||
@@ -251,9 +254,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
*/
|
||||
@Override
|
||||
public boolean checkEmailUnique(SysUserBo user) {
|
||||
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>()
|
||||
boolean exist = baseMapper.lambda()
|
||||
.eq(SysUser::getEmail, user.getEmail())
|
||||
.ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
|
||||
.neIfPresent(SysUser::getUserId, user.getUserId())
|
||||
.exists();
|
||||
return !exist;
|
||||
}
|
||||
|
||||
@@ -365,10 +369,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
*/
|
||||
@Override
|
||||
public int updateUserStatus(Long userId, String status) {
|
||||
return baseMapper.update(null,
|
||||
new LambdaUpdateWrapper<SysUser>()
|
||||
.set(SysUser::getStatus, status)
|
||||
.eq(SysUser::getUserId, userId));
|
||||
return baseMapper.lambda()
|
||||
.set(SysUser::getStatus, status)
|
||||
.eq(SysUser::getUserId, userId)
|
||||
.updateCount();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -380,13 +384,13 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
@CacheEvict(cacheNames = CacheNames.SYS_NICKNAME, key = "#user.userId")
|
||||
@Override
|
||||
public int updateUserProfile(SysUserBo user) {
|
||||
return baseMapper.update(null,
|
||||
new LambdaUpdateWrapper<SysUser>()
|
||||
.set(ObjectUtil.isNotNull(user.getNickName()), SysUser::getNickName, user.getNickName())
|
||||
.set(SysUser::getPhoneNumber, user.getPhoneNumber())
|
||||
.set(SysUser::getEmail, user.getEmail())
|
||||
.set(SysUser::getGender, user.getGender())
|
||||
.eq(SysUser::getUserId, user.getUserId()));
|
||||
return baseMapper.lambda()
|
||||
.setIfPresent(SysUser::getNickName, user.getNickName())
|
||||
.set(SysUser::getPhoneNumber, user.getPhoneNumber())
|
||||
.set(SysUser::getEmail, user.getEmail())
|
||||
.set(SysUser::getGender, user.getGender())
|
||||
.eq(SysUser::getUserId, user.getUserId())
|
||||
.updateCount();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -398,10 +402,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
*/
|
||||
@Override
|
||||
public boolean updateUserAvatar(Long userId, Long avatar) {
|
||||
return baseMapper.update(null,
|
||||
new LambdaUpdateWrapper<SysUser>()
|
||||
.set(SysUser::getAvatar, avatar)
|
||||
.eq(SysUser::getUserId, userId)) > 0;
|
||||
return baseMapper.lambda()
|
||||
.set(SysUser::getAvatar, avatar)
|
||||
.eq(SysUser::getUserId, userId)
|
||||
.update();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -413,10 +417,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
*/
|
||||
@Override
|
||||
public int resetUserPwd(Long userId, String password) {
|
||||
return baseMapper.update(null,
|
||||
new LambdaUpdateWrapper<SysUser>()
|
||||
.set(SysUser::getPassword, password)
|
||||
.eq(SysUser::getUserId, userId));
|
||||
return baseMapper.lambda()
|
||||
.set(SysUser::getPassword, password)
|
||||
.eq(SysUser::getUserId, userId)
|
||||
.updateCount();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -449,7 +453,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
|
||||
// 是否清除旧的用户岗位绑定
|
||||
if (clear) {
|
||||
userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getUserId, user.getUserId()));
|
||||
userPostMapper.lambda().eq(SysUserPost::getUserId, user.getUserId()).delete();
|
||||
}
|
||||
|
||||
// 构建用户岗位关联列表并批量插入
|
||||
@@ -494,7 +498,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
|
||||
// 是否清除原有绑定
|
||||
if (clear) {
|
||||
userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
|
||||
userRoleMapper.lambda().eq(SysUserRole::getUserId, userId).delete();
|
||||
}
|
||||
|
||||
// 批量插入用户-角色关联
|
||||
@@ -518,9 +522,9 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int deleteUserById(Long userId) {
|
||||
// 删除用户与角色关联
|
||||
userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
|
||||
userRoleMapper.lambda().eq(SysUserRole::getUserId, userId).delete();
|
||||
// 删除用户与岗位表
|
||||
userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getUserId, userId));
|
||||
userPostMapper.lambda().eq(SysUserPost::getUserId, userId).delete();
|
||||
// 防止更新失败导致的数据删除
|
||||
int flag = baseMapper.deleteById(userId);
|
||||
if (flag < 1) {
|
||||
@@ -544,9 +548,9 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
}
|
||||
List<Long> ids = List.of(userIds);
|
||||
// 删除用户与角色关联
|
||||
userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().in(SysUserRole::getUserId, ids));
|
||||
userRoleMapper.lambda().in(SysUserRole::getUserId, ids).delete();
|
||||
// 删除用户与岗位表
|
||||
userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().in(SysUserPost::getUserId, ids));
|
||||
userPostMapper.lambda().in(SysUserPost::getUserId, ids).delete();
|
||||
// 防止更新失败导致的数据删除
|
||||
int flag = baseMapper.deleteByIds(ids);
|
||||
if (flag < 1) {
|
||||
@@ -563,10 +567,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
*/
|
||||
@Override
|
||||
public List<SysUserVo> selectUserListByDept(Long deptId) {
|
||||
LambdaQueryWrapper<SysUser> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(SysUser::getDeptId, deptId);
|
||||
lqw.orderByAsc(SysUser::getUserId);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
return baseMapper.lambda()
|
||||
.eq(SysUser::getDeptId, deptId)
|
||||
.orderByAsc(SysUser::getUserId)
|
||||
.voList();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -578,8 +582,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
@Cacheable(cacheNames = CacheNames.SYS_USER_NAME, key = "#userId")
|
||||
@Override
|
||||
public String selectUserNameById(Long userId) {
|
||||
SysUser sysUser = baseMapper.selectOne(new LambdaQueryWrapper<SysUser>()
|
||||
.select(SysUser::getUserName).eq(SysUser::getUserId, userId));
|
||||
SysUser sysUser = baseMapper.lambda()
|
||||
.select(SysUser::getUserName)
|
||||
.eq(SysUser::getUserId, userId)
|
||||
.one();
|
||||
return ObjectUtils.notNullGetter(sysUser, SysUser::getUserName);
|
||||
}
|
||||
|
||||
@@ -592,8 +598,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
@Override
|
||||
@Cacheable(cacheNames = CacheNames.SYS_NICKNAME, key = "#userId")
|
||||
public String selectNicknameById(Long userId) {
|
||||
SysUser sysUser = baseMapper.selectOne(new LambdaQueryWrapper<SysUser>()
|
||||
.select(SysUser::getNickName).eq(SysUser::getUserId, userId));
|
||||
SysUser sysUser = baseMapper.lambda()
|
||||
.select(SysUser::getNickName)
|
||||
.eq(SysUser::getUserId, userId)
|
||||
.one();
|
||||
return ObjectUtils.notNullGetter(sysUser, SysUser::getNickName);
|
||||
}
|
||||
|
||||
@@ -623,8 +631,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
*/
|
||||
@Override
|
||||
public String selectPhonenumberById(Long userId) {
|
||||
SysUser sysUser = baseMapper.selectOne(new LambdaQueryWrapper<SysUser>()
|
||||
.select(SysUser::getPhoneNumber).eq(SysUser::getUserId, userId));
|
||||
SysUser sysUser = baseMapper.lambda()
|
||||
.select(SysUser::getPhoneNumber)
|
||||
.eq(SysUser::getUserId, userId)
|
||||
.one();
|
||||
return ObjectUtils.notNullGetter(sysUser, SysUser::getPhoneNumber);
|
||||
}
|
||||
|
||||
@@ -636,8 +646,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
*/
|
||||
@Override
|
||||
public String selectEmailById(Long userId) {
|
||||
SysUser sysUser = baseMapper.selectOne(new LambdaQueryWrapper<SysUser>()
|
||||
.select(SysUser::getEmail).eq(SysUser::getUserId, userId));
|
||||
SysUser sysUser = baseMapper.lambda()
|
||||
.select(SysUser::getEmail)
|
||||
.eq(SysUser::getUserId, userId)
|
||||
.one();
|
||||
return ObjectUtils.notNullGetter(sysUser, SysUser::getEmail);
|
||||
}
|
||||
|
||||
@@ -649,13 +661,14 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
*/
|
||||
@Override
|
||||
public UserDTO selectById(Long userId) {
|
||||
SysUserVo vo = baseMapper.selectVoOne(new LambdaQueryWrapper<SysUser>()
|
||||
SysUserVo vo = baseMapper.lambda()
|
||||
.select(SysUser::getUserId, SysUser::getDeptId, SysUser::getUserName,
|
||||
SysUser::getNickName, SysUser::getUserType, SysUser::getEmail,
|
||||
SysUser::getPhoneNumber, SysUser::getGender, SysUser::getStatus,
|
||||
SysUser::getCreateTime)
|
||||
.eq(SysUser::getStatus, SystemConstants.NORMAL)
|
||||
.eq(SysUser::getUserId, userId));
|
||||
.eq(SysUser::getUserId, userId)
|
||||
.voOne();
|
||||
return BeanUtil.copyProperties(vo, UserDTO.class);
|
||||
}
|
||||
|
||||
@@ -670,13 +683,14 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
if (CollUtil.isEmpty(userIds)) {
|
||||
return List.of();
|
||||
}
|
||||
List<SysUserVo> list = baseMapper.selectVoList(new LambdaQueryWrapper<SysUser>()
|
||||
List<SysUserVo> list = baseMapper.lambda()
|
||||
.select(SysUser::getUserId, SysUser::getDeptId, SysUser::getUserName,
|
||||
SysUser::getNickName, SysUser::getUserType, SysUser::getEmail,
|
||||
SysUser::getPhoneNumber, SysUser::getGender, SysUser::getStatus,
|
||||
SysUser::getCreateTime)
|
||||
.eq(SysUser::getStatus, SystemConstants.NORMAL)
|
||||
.in(SysUser::getUserId, userIds));
|
||||
.in(SysUser::getUserId, userIds)
|
||||
.voList();
|
||||
return BeanUtil.copyToList(list, UserDTO.class);
|
||||
}
|
||||
|
||||
@@ -691,8 +705,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
if (CollUtil.isEmpty(roleIds)) {
|
||||
return List.of();
|
||||
}
|
||||
List<SysUserRole> userRoles = userRoleMapper.selectList(
|
||||
new LambdaQueryWrapper<SysUserRole>().in(SysUserRole::getRoleId, roleIds));
|
||||
List<SysUserRole> userRoles = userRoleMapper.lambda().in(SysUserRole::getRoleId, roleIds).list();
|
||||
return StreamUtils.toList(userRoles, SysUserRole::getUserId);
|
||||
}
|
||||
|
||||
@@ -709,8 +722,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
}
|
||||
|
||||
// 通过角色ID获取用户角色信息
|
||||
List<SysUserRole> userRoles = userRoleMapper.selectList(
|
||||
new LambdaQueryWrapper<SysUserRole>().in(SysUserRole::getRoleId, roleIds));
|
||||
List<SysUserRole> userRoles = userRoleMapper.lambda().in(SysUserRole::getRoleId, roleIds).list();
|
||||
|
||||
// 获取用户ID列表
|
||||
Set<Long> userIds = StreamUtils.toSet(userRoles, SysUserRole::getUserId);
|
||||
@@ -729,10 +741,11 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
if (CollUtil.isEmpty(deptIds)) {
|
||||
return List.of();
|
||||
}
|
||||
List<SysUserVo> list = baseMapper.selectVoList(new LambdaQueryWrapper<SysUser>()
|
||||
List<SysUserVo> list = baseMapper.lambda()
|
||||
.select(SysUser::getUserId, SysUser::getUserName, SysUser::getNickName, SysUser::getEmail, SysUser::getPhoneNumber)
|
||||
.eq(SysUser::getStatus, SystemConstants.NORMAL)
|
||||
.in(SysUser::getDeptId, deptIds));
|
||||
.in(SysUser::getDeptId, deptIds)
|
||||
.voList();
|
||||
return BeanUtil.copyToList(list, UserDTO.class);
|
||||
}
|
||||
|
||||
@@ -749,8 +762,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
}
|
||||
|
||||
// 通过岗位ID获取用户岗位信息
|
||||
List<SysUserPost> userPosts = userPostMapper.selectList(
|
||||
new LambdaQueryWrapper<SysUserPost>().in(SysUserPost::getPostId, postIds));
|
||||
List<SysUserPost> userPosts = userPostMapper.lambda().in(SysUserPost::getPostId, postIds).list();
|
||||
|
||||
// 获取用户ID列表
|
||||
Set<Long> userIds = StreamUtils.toSet(userPosts, SysUserPost::getUserId);
|
||||
@@ -769,11 +781,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
if (CollUtil.isEmpty(userIds)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
List<SysUser> list = baseMapper.selectList(
|
||||
new LambdaQueryWrapper<SysUser>()
|
||||
.select(SysUser::getUserId, SysUser::getNickName)
|
||||
.in(SysUser::getUserId, userIds)
|
||||
);
|
||||
List<SysUser> list = baseMapper.lambda()
|
||||
.select(SysUser::getUserId, SysUser::getNickName)
|
||||
.in(SysUser::getUserId, userIds)
|
||||
.list();
|
||||
return StreamUtils.toMap(list, SysUser::getUserId, SysUser::getNickName);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user