Commit 531629634b207486dc09fc57c5eb0aca80cce2f7

Authored by YunaiV
2 parents fe7a68c4 fcf13bb6

Merge branch 'master' of https://gitee.com/zhijiantianya/ruoyi-vue-pro into feature/activiti

Showing 16 changed files with 295 additions and 125 deletions
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/definition/BpmUserGroupMapper.java
... ... @@ -4,7 +4,7 @@ import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.B
4 4 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
5 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 6 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
7   -import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
  7 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
8 8 import org.apache.ibatis.annotations.Mapper;
9 9  
10 10 import java.util.List;
... ... @@ -18,15 +18,15 @@ import java.util.List;
18 18 public interface BpmUserGroupMapper extends BaseMapperX<BpmUserGroupDO> {
19 19  
20 20 default PageResult<BpmUserGroupDO> selectPage(BpmUserGroupPageReqVO reqVO) {
21   - return selectPage(reqVO, new QueryWrapperX<BpmUserGroupDO>()
22   - .likeIfPresent("name", reqVO.getName())
23   - .eqIfPresent("status", reqVO.getStatus())
24   - .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
25   - .orderByDesc("id"));
  21 + return selectPage(reqVO, new LambdaQueryWrapperX<BpmUserGroupDO>()
  22 + .likeIfPresent(BpmUserGroupDO::getName, reqVO.getName())
  23 + .eqIfPresent(BpmUserGroupDO::getStatus, reqVO.getStatus())
  24 + .betweenIfPresent(BpmUserGroupDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
  25 + .orderByDesc(BpmUserGroupDO::getId));
26 26 }
27 27  
28 28 default List<BpmUserGroupDO> selectListByStatus(Integer status) {
29   - return selectList("status", status);
  29 + return selectList(BpmUserGroupDO::getStatus, status);
30 30 }
31 31  
32 32 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/mysql/task/BpmTaskExtMapper.java
... ... @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.task;
2 2  
3 3 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmTaskExtDO;
4 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5   -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
6 6 import org.apache.ibatis.annotations.Mapper;
7 7  
8 8 import java.util.Collection;
... ... @@ -12,11 +12,11 @@ import java.util.List;
12 12 public interface BpmTaskExtMapper extends BaseMapperX<BpmTaskExtDO> {
13 13  
14 14 default void updateByTaskId(BpmTaskExtDO entity) {
15   - update(entity, new QueryWrapper<BpmTaskExtDO>().eq("task_id", entity.getTaskId()));
  15 + update(entity, new LambdaQueryWrapper<BpmTaskExtDO>().eq(BpmTaskExtDO::getTaskId, entity.getTaskId()));
16 16 }
17 17  
18 18 default List<BpmTaskExtDO> selectListByTaskIds(Collection<String> taskIds) {
19   - return selectList("task_id", taskIds);
  19 + return selectList(BpmTaskExtDO::getTaskId, taskIds);
20 20 }
21 21  
22 22 default List<BpmTaskExtDO> selectListByProcessInstanceId(String processInstanceId) {
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/mysql/job/InfJobMapper.java
1 1 package cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.job;
2 2  
3   -import cn.iocoder.yudao.framework.common.pojo.PageResult;
4   -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5   -import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
6 3 import cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.job.InfJobExportReqVO;
7 4 import cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.job.InfJobPageReqVO;
8 5 import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.job.InfJobDO;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  7 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  8 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
9 9 import org.apache.ibatis.annotations.Mapper;
10 10  
11 11 import java.util.List;
... ... @@ -19,22 +19,22 @@ import java.util.List;
19 19 public interface InfJobMapper extends BaseMapperX<InfJobDO> {
20 20  
21 21 default InfJobDO selectByHandlerName(String handlerName) {
22   - return selectOne("handler_name", handlerName);
  22 + return selectOne(InfJobDO::getHandlerName, handlerName);
23 23 }
24 24  
25 25 default PageResult<InfJobDO> selectPage(InfJobPageReqVO reqVO) {
26   - return selectPage(reqVO, new QueryWrapperX<InfJobDO>()
27   - .likeIfPresent("name", reqVO.getName())
28   - .eqIfPresent("status", reqVO.getStatus())
29   - .likeIfPresent("handler_name", reqVO.getHandlerName())
  26 + return selectPage(reqVO, new LambdaQueryWrapperX<InfJobDO>()
  27 + .likeIfPresent(InfJobDO::getName, reqVO.getName())
  28 + .eqIfPresent(InfJobDO::getStatus, reqVO.getStatus())
  29 + .likeIfPresent(InfJobDO::getHandlerName, reqVO.getHandlerName())
30 30 );
31 31 }
32 32  
33 33 default List<InfJobDO> selectList(InfJobExportReqVO reqVO) {
34   - return selectList(new QueryWrapperX<InfJobDO>()
35   - .likeIfPresent("name", reqVO.getName())
36   - .eqIfPresent("status", reqVO.getStatus())
37   - .likeIfPresent("handler_name", reqVO.getHandlerName())
  34 + return selectList(new LambdaQueryWrapperX<InfJobDO>()
  35 + .likeIfPresent(InfJobDO::getName, reqVO.getName())
  36 + .eqIfPresent(InfJobDO::getStatus, reqVO.getStatus())
  37 + .likeIfPresent(InfJobDO::getHandlerName, reqVO.getHandlerName())
38 38 );
39 39 }
40 40  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/dept/SysDeptMapper.java
1 1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dept;
2 2  
  3 +import cn.iocoder.yudao.adminserver.modules.tool.enums.SqlConstants;
3 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  5 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
4 6 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
5 7 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptListReqVO;
6 8 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
  9 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
7 10 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
8 11 import org.apache.ibatis.annotations.Mapper;
9 12  
... ... @@ -14,22 +17,22 @@ import java.util.List;
14 17 public interface SysDeptMapper extends BaseMapperX<SysDeptDO> {
15 18  
16 19 default List<SysDeptDO> selectList(SysDeptListReqVO reqVO) {
17   - return selectList(new QueryWrapperX<SysDeptDO>().likeIfPresent("name", reqVO.getName())
18   - .eqIfPresent("status", reqVO.getStatus()));
  20 + return selectList(new LambdaQueryWrapperX<SysDeptDO>().likeIfPresent(SysDeptDO::getName, reqVO.getName())
  21 + .eqIfPresent(SysDeptDO::getStatus, reqVO.getStatus()));
19 22 }
20 23  
21 24 default SysDeptDO selectByParentIdAndName(Long parentId, String name) {
22   - return selectOne(new QueryWrapper<SysDeptDO>().eq("parent_id", parentId)
23   - .eq("name", name));
  25 + return selectOne(new LambdaQueryWrapper<SysDeptDO>().eq(SysDeptDO::getParentId, parentId)
  26 + .eq(SysDeptDO::getParentId, name));
24 27 }
25 28  
26 29 default Integer selectCountByParentId(Long parentId) {
27   - return selectCount("parent_id", parentId);
  30 + return selectCount(SysDeptDO::getParentId, parentId);
28 31 }
29 32  
30 33 default boolean selectExistsByUpdateTimeAfter(Date maxUpdateTime) {
31   - return selectOne(new QueryWrapper<SysDeptDO>().select("id")
32   - .gt("update_time", maxUpdateTime).last("LIMIT 1")) != null;
  34 + return selectOne(new LambdaQueryWrapper<SysDeptDO>().select(SysDeptDO::getId)
  35 + .gt(SysDeptDO::getUpdateTime, maxUpdateTime).last(SqlConstants.LIMIT1)) != null;
33 36 }
34 37  
35 38 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/dict/SysDictDataMapper.java
... ... @@ -2,13 +2,15 @@ package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dict;
2 2  
3 3 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataExportReqVO;
4 4 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataPageReqVO;
  5 +import cn.iocoder.yudao.adminserver.modules.tool.enums.SqlConstants;
5 6 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO;
6 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 8 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
8   -import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
9   -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  9 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  10 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
10 11 import org.apache.ibatis.annotations.Mapper;
11 12  
  13 +import java.util.Arrays;
12 14 import java.util.Collection;
13 15 import java.util.Date;
14 16 import java.util.List;
... ... @@ -17,36 +19,36 @@ import java.util.List;
17 19 public interface SysDictDataMapper extends BaseMapperX<SysDictDataDO> {
18 20  
19 21 default SysDictDataDO selectByDictTypeAndValue(String dictType, String value) {
20   - return selectOne(new QueryWrapper<SysDictDataDO>().eq("dict_type", dictType)
21   - .eq("value", value));
  22 + return selectOne(new LambdaQueryWrapper<SysDictDataDO>().eq(SysDictDataDO::getDictType, dictType)
  23 + .eq(SysDictDataDO::getValue, value));
22 24 }
23 25  
24 26 default List<SysDictDataDO> selectByDictTypeAndValues(String dictType, Collection<String> values) {
25   - return selectList(new QueryWrapper<SysDictDataDO>().eq("dict_type", dictType)
26   - .in("value", values));
  27 + return selectList(new LambdaQueryWrapper<SysDictDataDO>().eq(SysDictDataDO::getDictType, dictType)
  28 + .in(SysDictDataDO::getValue, values));
27 29 }
28 30  
29 31 default int selectCountByDictType(String dictType) {
30   - return selectCount("dict_type", dictType);
  32 + return selectCount(SysDictDataDO::getDictType, dictType);
31 33 }
32 34  
33 35 default PageResult<SysDictDataDO> selectPage(SysDictDataPageReqVO reqVO) {
34   - return selectPage(reqVO, new QueryWrapperX<SysDictDataDO>()
35   - .likeIfPresent("label", reqVO.getLabel())
36   - .likeIfPresent("dict_type", reqVO.getDictType())
37   - .eqIfPresent("status", reqVO.getStatus())
38   - .orderByAsc("dict_type", "sort"));
  36 + return selectPage(reqVO, new LambdaQueryWrapperX<SysDictDataDO>()
  37 + .likeIfPresent(SysDictDataDO::getLabel, reqVO.getLabel())
  38 + .likeIfPresent(SysDictDataDO::getDictType, reqVO.getDictType())
  39 + .eqIfPresent(SysDictDataDO::getStatus, reqVO.getStatus())
  40 + .orderByAsc(Arrays.asList(SysDictDataDO::getDictType, SysDictDataDO::getSort)));
39 41 }
40 42  
41 43 default List<SysDictDataDO> selectList(SysDictDataExportReqVO reqVO) {
42   - return selectList(new QueryWrapperX<SysDictDataDO>().likeIfPresent("label", reqVO.getLabel())
43   - .likeIfPresent("dict_type", reqVO.getDictType())
44   - .eqIfPresent("status", reqVO.getStatus()));
  44 + return selectList(new LambdaQueryWrapperX<SysDictDataDO>().likeIfPresent(SysDictDataDO::getLabel, reqVO.getLabel())
  45 + .likeIfPresent(SysDictDataDO::getDictType, reqVO.getDictType())
  46 + .eqIfPresent(SysDictDataDO::getStatus, reqVO.getStatus()));
45 47 }
46 48  
47 49 default boolean selectExistsByUpdateTimeAfter(Date maxUpdateTime) {
48   - return selectOne(new QueryWrapper<SysDictDataDO>().select("id")
49   - .gt("update_time", maxUpdateTime).last("LIMIT 1")) != null;
  50 + return selectOne(new LambdaQueryWrapper<SysDictDataDO>().select(SysDictDataDO::getId)
  51 + .gt(SysDictDataDO::getUpdateTime, maxUpdateTime).last(SqlConstants.LIMIT1)) != null;
50 52 }
51 53  
52 54 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/permission/SysMenuMapper.java
1 1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.permission;
2 2  
3   -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
4   -import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
5 3 import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.menu.SysMenuListReqVO;
6 4 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysMenuDO;
7   -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5 +import cn.iocoder.yudao.adminserver.modules.tool.enums.SqlConstants;
  6 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  7 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  8 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
8 9 import org.apache.ibatis.annotations.Mapper;
9 10  
10 11 import java.util.Date;
... ... @@ -14,22 +15,22 @@ import java.util.List;
14 15 public interface SysMenuMapper extends BaseMapperX<SysMenuDO> {
15 16  
16 17 default SysMenuDO selectByParentIdAndName(Long parentId, String name) {
17   - return selectOne(new QueryWrapper<SysMenuDO>().eq("parent_id", parentId)
18   - .eq("name", name));
  18 + return selectOne(new LambdaQueryWrapper<SysMenuDO>().eq(SysMenuDO::getParentId, parentId)
  19 + .eq(SysMenuDO::getName, name));
19 20 }
20 21  
21 22 default Integer selectCountByParentId(Long parentId) {
22   - return selectCount("parent_id", parentId);
  23 + return selectCount(SysMenuDO::getParentId, parentId);
23 24 }
24 25  
25 26 default List<SysMenuDO> selectList(SysMenuListReqVO reqVO) {
26   - return selectList(new QueryWrapperX<SysMenuDO>().likeIfPresent("name", reqVO.getName())
27   - .eqIfPresent("status", reqVO.getStatus()));
  27 + return selectList(new LambdaQueryWrapperX<SysMenuDO>().likeIfPresent(SysMenuDO::getParentId, reqVO.getName())
  28 + .eqIfPresent(SysMenuDO::getStatus, reqVO.getStatus()));
28 29 }
29 30  
30 31 default boolean selectExistsByUpdateTimeAfter(Date maxUpdateTime) {
31   - return selectOne(new QueryWrapper<SysMenuDO>().select("id")
32   - .gt("update_time", maxUpdateTime).last("LIMIT 1")) != null;
  32 + return selectOne(new LambdaQueryWrapper<SysMenuDO>().select(SysMenuDO::getId)
  33 + .gt(SysMenuDO::getUpdateTime, maxUpdateTime).last(SqlConstants.LIMIT1)) != null;
33 34 }
34 35  
35 36 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/sms/SysSmsTemplateMapper.java
... ... @@ -5,7 +5,7 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.Sy
5 5 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;
6 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
8   -import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
  8 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
9 9 import org.apache.ibatis.annotations.Mapper;
10 10  
11 11 import java.util.List;
... ... @@ -14,35 +14,36 @@ import java.util.List;
14 14 public interface SysSmsTemplateMapper extends BaseMapperX<SysSmsTemplateDO> {
15 15  
16 16 default SysSmsTemplateDO selectByCode(String code) {
17   - return selectOne("code", code);
  17 + return selectOne(SysSmsTemplateDO::getCode, code);
18 18 }
19 19  
  20 + // TODO 这种参数都一样的得想办法封装一下
20 21 default PageResult<SysSmsTemplateDO> selectPage(SysSmsTemplatePageReqVO reqVO) {
21   - return selectPage(reqVO, new QueryWrapperX<SysSmsTemplateDO>()
22   - .eqIfPresent("type", reqVO.getType())
23   - .eqIfPresent("status", reqVO.getStatus())
24   - .likeIfPresent("code", reqVO.getCode())
25   - .likeIfPresent("content", reqVO.getContent())
26   - .likeIfPresent("api_template_id", reqVO.getApiTemplateId())
27   - .eqIfPresent("channel_id", reqVO.getChannelId())
28   - .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
29   - .orderByDesc("id"));
  22 + return selectPage(reqVO, new LambdaQueryWrapperX<SysSmsTemplateDO>()
  23 + .eqIfPresent(SysSmsTemplateDO::getType, reqVO.getType())
  24 + .eqIfPresent(SysSmsTemplateDO::getStatus, reqVO.getStatus())
  25 + .likeIfPresent(SysSmsTemplateDO::getCode, reqVO.getCode())
  26 + .likeIfPresent(SysSmsTemplateDO::getContent, reqVO.getContent())
  27 + .likeIfPresent(SysSmsTemplateDO::getApiTemplateId, reqVO.getApiTemplateId())
  28 + .eqIfPresent(SysSmsTemplateDO::getChannelId, reqVO.getChannelId())
  29 + .betweenIfPresent(SysSmsTemplateDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
  30 + .orderByDesc(SysSmsTemplateDO::getId));
30 31 }
31 32  
32 33 default List<SysSmsTemplateDO> selectList(SysSmsTemplateExportReqVO reqVO) {
33   - return selectList(new QueryWrapperX<SysSmsTemplateDO>()
34   - .eqIfPresent("type", reqVO.getType())
35   - .eqIfPresent("status", reqVO.getStatus())
36   - .likeIfPresent("code", reqVO.getCode())
37   - .likeIfPresent("content", reqVO.getContent())
38   - .likeIfPresent("api_template_id", reqVO.getApiTemplateId())
39   - .eqIfPresent("channel_id", reqVO.getChannelId())
40   - .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
41   - .orderByDesc("id"));
  34 + return selectList(new LambdaQueryWrapperX<SysSmsTemplateDO>()
  35 + .eqIfPresent(SysSmsTemplateDO::getType, reqVO.getType())
  36 + .eqIfPresent(SysSmsTemplateDO::getStatus, reqVO.getStatus())
  37 + .likeIfPresent(SysSmsTemplateDO::getCode, reqVO.getCode())
  38 + .likeIfPresent(SysSmsTemplateDO::getContent, reqVO.getContent())
  39 + .likeIfPresent(SysSmsTemplateDO::getApiTemplateId, reqVO.getApiTemplateId())
  40 + .eqIfPresent(SysSmsTemplateDO::getChannelId, reqVO.getChannelId())
  41 + .betweenIfPresent(SysSmsTemplateDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
  42 + .orderByDesc(SysSmsTemplateDO::getId));
42 43 }
43 44  
44 45 default Integer selectCountByChannelId(Long channelId) {
45   - return selectCount("channel_id", channelId);
  46 + return selectCount(SysSmsTemplateDO::getChannelId, channelId);
46 47 }
47 48  
48 49 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/tenant/SysTenantMapper.java
... ... @@ -5,7 +5,7 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.tenant.vo.SysTenan
5 5 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.tenant.SysTenantDO;
6 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
8   -import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
  8 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
9 9 import org.apache.ibatis.annotations.Mapper;
10 10  
11 11 import java.util.List;
... ... @@ -19,26 +19,26 @@ import java.util.List;
19 19 public interface SysTenantMapper extends BaseMapperX<SysTenantDO> {
20 20  
21 21 default PageResult<SysTenantDO> selectPage(SysTenantPageReqVO reqVO) {
22   - return selectPage(reqVO, new QueryWrapperX<SysTenantDO>()
23   - .likeIfPresent("name", reqVO.getName())
24   - .likeIfPresent("contact_name", reqVO.getContactName())
25   - .likeIfPresent("contact_mobile", reqVO.getContactMobile())
26   - .eqIfPresent("status", reqVO.getStatus())
27   - .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
28   - .orderByDesc("id"));
  22 + return selectPage(reqVO, new LambdaQueryWrapperX<SysTenantDO>()
  23 + .likeIfPresent(SysTenantDO::getName, reqVO.getName())
  24 + .likeIfPresent(SysTenantDO::getContactName, reqVO.getContactName())
  25 + .likeIfPresent(SysTenantDO::getContactMobile, reqVO.getContactMobile())
  26 + .eqIfPresent(SysTenantDO::getStatus, reqVO.getStatus())
  27 + .betweenIfPresent(SysTenantDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
  28 + .orderByDesc(SysTenantDO::getId));
29 29 }
30 30  
31 31 default List<SysTenantDO> selectList(SysTenantExportReqVO reqVO) {
32   - return selectList(new QueryWrapperX<SysTenantDO>()
33   - .likeIfPresent("name", reqVO.getName())
34   - .likeIfPresent("contact_name", reqVO.getContactName())
35   - .likeIfPresent("contact_mobile", reqVO.getContactMobile())
36   - .eqIfPresent("status", reqVO.getStatus())
37   - .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
38   - .orderByDesc("id"));
  32 + return selectList(new LambdaQueryWrapperX<SysTenantDO>()
  33 + .likeIfPresent(SysTenantDO::getName, reqVO.getName())
  34 + .likeIfPresent(SysTenantDO::getContactName, reqVO.getContactName())
  35 + .likeIfPresent(SysTenantDO::getContactMobile, reqVO.getContactMobile())
  36 + .eqIfPresent(SysTenantDO::getStatus, reqVO.getStatus())
  37 + .betweenIfPresent(SysTenantDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
  38 + .orderByDesc(SysTenantDO::getId));
39 39 }
40 40  
41 41 default SysTenantDO selectByName(String name) {
42   - return selectOne("name", name);
  42 + return selectOne(SysTenantDO::getName, name);
43 43 }
44 44 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/user/SysUserMapper.java
1 1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.user;
2 2  
3   -import cn.hutool.core.util.StrUtil;
4 3 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.SysUserExportReqVO;
5 4 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.SysUserPageReqVO;
6 5 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
7 6 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
8 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 8 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
10   -import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
11   -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  9 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  10 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  11 +import jodd.util.StringPool;
12 12 import org.apache.ibatis.annotations.Mapper;
13 13  
14 14 import java.util.Collection;
... ... @@ -19,57 +19,58 @@ import java.util.Optional;
19 19 public interface SysUserMapper extends BaseMapperX<SysUserDO> {
20 20  
21 21 default SysUserDO selectByUsername(String username) {
22   - return selectOne(new QueryWrapper<SysUserDO>().eq("username", username));
  22 + return selectOne(new LambdaQueryWrapper<SysUserDO>().eq(SysUserDO::getUsername, username));
23 23 }
24 24  
25 25 default SysUserDO selectByEmail(String email) {
26   - return selectOne(new QueryWrapper<SysUserDO>().eq("email", email));
  26 + return selectOne(new LambdaQueryWrapper<SysUserDO>().eq(SysUserDO::getEmail, email));
27 27 }
28 28  
29 29 default SysUserDO selectByMobile(String mobile) {
30   - return selectOne(new QueryWrapper<SysUserDO>().eq("mobile", mobile));
  30 + return selectOne(new LambdaQueryWrapper<SysUserDO>().eq(SysUserDO::getMobile, mobile));
31 31 }
32 32  
33 33 default PageResult<SysUserDO> selectPage(SysUserPageReqVO reqVO, Collection<Long> deptIds) {
34   - return selectPage(reqVO, new QueryWrapperX<SysUserDO>()
35   - .likeIfPresent("username", reqVO.getUsername())
36   - .likeIfPresent("mobile", reqVO.getMobile())
37   - .eqIfPresent("status", reqVO.getStatus())
38   - .betweenIfPresent("create_time", reqVO.getBeginTime(), reqVO.getEndTime())
39   - .inIfPresent("dept_id", deptIds));
  34 + return selectPage(reqVO, new LambdaQueryWrapperX<SysUserDO>()
  35 + .likeIfPresent(SysUserDO::getUsername, reqVO.getUsername())
  36 + .likeIfPresent(SysUserDO::getMobile, reqVO.getMobile())
  37 + .eqIfPresent(SysUserDO::getStatus, reqVO.getStatus())
  38 + .betweenIfPresent(SysUserDO::getCreateTime, reqVO.getBeginTime(), reqVO.getEndTime())
  39 + .inIfPresent(SysUserDO::getDeptId, deptIds));
40 40 }
41 41  
42 42 default List<SysUserDO> selectList(SysUserExportReqVO reqVO, Collection<Long> deptIds) {
43   - return selectList(new QueryWrapperX<SysUserDO>().likeIfPresent("username", reqVO.getUsername())
44   - .likeIfPresent("mobile", reqVO.getMobile())
45   - .eqIfPresent("status", reqVO.getStatus())
46   - .betweenIfPresent("create_time", reqVO.getBeginTime(), reqVO.getEndTime())
47   - .inIfPresent("dept_id", deptIds));
  43 + return selectList(new LambdaQueryWrapperX<SysUserDO>()
  44 + .likeIfPresent(SysUserDO::getUsername, reqVO.getUsername())
  45 + .likeIfPresent(SysUserDO::getMobile, reqVO.getMobile())
  46 + .eqIfPresent(SysUserDO::getStatus, reqVO.getStatus())
  47 + .betweenIfPresent(SysUserDO::getCreateTime, reqVO.getBeginTime(), reqVO.getEndTime())
  48 + .inIfPresent(SysUserDO::getDeptId, deptIds));
48 49 }
49 50  
50 51 default List<SysUserDO> selectListByNickname(String nickname) {
51   - return selectList(new QueryWrapperX<SysUserDO>().like("nickname", nickname));
  52 + return selectList(new LambdaQueryWrapperX<SysUserDO>().like(SysUserDO::getNickname, nickname));
52 53 }
53 54  
54 55 default List<SysUserDO> selectListByUsername(String username) {
55   - return selectList(new QueryWrapperX<SysUserDO>().like("username", username));
  56 + return selectList(new LambdaQueryWrapperX<SysUserDO>().like(SysUserDO::getUsername, username));
56 57 }
57 58  
58 59 // TODO 芋艿:可废弃该方法
59 60 default List<SysUserDO> selectListByDepartIdAndPostId(Long departId, Long postId) {
60   - return selectList(new QueryWrapperX<SysUserDO>()
61   - .eq("status", CommonStatusEnum.ENABLE.getStatus())
62   - .eq("dept_id", departId)
  61 + return selectList(new LambdaQueryWrapperX<SysUserDO>()
  62 + .eq(SysUserDO::getStatus, CommonStatusEnum.ENABLE.getStatus())
  63 + .eq(SysUserDO::getDeptId, departId)
63 64 // TODO @jason: 封装一个 StringUtils .toString 。如果空的时候,设置为 null。会更简洁
64   - .likeIfPresent("post_ids", Optional.ofNullable(postId).map(t -> String.valueOf(postId)).orElse("")));
  65 + .likeIfPresent(SysUserDO::getPostIds, Optional.ofNullable(postId).map(t -> String.valueOf(postId)).orElse(StringPool.EMPTY)));
65 66 }
66 67  
67 68 default List<SysUserDO> selectListByStatus(Integer status) {
68   - return selectList("status", status);
  69 + return selectList(SysUserDO::getStatus, status);
69 70 }
70 71  
71 72 default List<SysUserDO> selectListByDeptIds(Collection<Long> deptIds) {
72   - return selectList("dept_id", deptIds);
  73 + return selectList(SysUserDO::getDeptId, deptIds);
73 74 }
74 75  
75 76 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/enums/SqlConstants.java 0 → 100644
  1 +package cn.iocoder.yudao.adminserver.modules.tool.enums;
  2 +
  3 +/**
  4 + * SQL相关常量类
  5 + */
  6 +public interface SqlConstants {
  7 +
  8 +
  9 + String LIMIT1 = "LIMIT 1";
  10 +
  11 +}
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/infra/dal/mysql/file/InfFileCoreMapper.java
... ... @@ -9,7 +9,7 @@ import org.apache.ibatis.annotations.Mapper;
9 9 public interface InfFileCoreMapper extends BaseMapperX<InfFileDO> {
10 10  
11 11 default Integer selectCountById(String id) {
12   - return selectCount("id", id);
  12 + return selectCount(InfFileDO::getId, id);
13 13 }
14 14  
15 15 /**
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/mysql/merchant/PayChannelCoreMapper.java
... ... @@ -11,7 +11,7 @@ import java.util.Date;
11 11 public interface PayChannelCoreMapper extends BaseMapperX<PayChannelDO> {
12 12  
13 13 default PayChannelDO selectByAppIdAndCode(Long appId, String code) {
14   - return selectOne("app_id", appId, "code", code);
  14 + return selectOne(PayChannelDO::getAppId, appId, PayChannelDO::getCode, code);
15 15 }
16 16  
17 17 @Select("SELECT id FROM pay_channel WHERE update_time > #{maxUpdateTime} LIMIT 1")
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/mysql/order/PayOrderExtensionCoreMapper.java
... ... @@ -2,19 +2,19 @@ package cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.order;
2 2  
3 3 import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderExtensionDO;
4 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5   -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
6 6 import org.apache.ibatis.annotations.Mapper;
7 7  
8 8 @Mapper
9 9 public interface PayOrderExtensionCoreMapper extends BaseMapperX<PayOrderExtensionDO> {
10 10  
11 11 default PayOrderExtensionDO selectByNo(String no) {
12   - return selectOne("no", no);
  12 + return selectOne(PayOrderExtensionDO::getNo, no);
13 13 }
14 14  
15 15 default int updateByIdAndStatus(Long id, Integer status, PayOrderExtensionDO update) {
16   - return update(update, new QueryWrapper<PayOrderExtensionDO>()
17   - .eq("id", id).eq("status", status));
  16 + return update(update, new LambdaQueryWrapper<PayOrderExtensionDO>()
  17 + .eq(PayOrderExtensionDO::getId, id).eq(PayOrderExtensionDO::getStatus, status));
18 18 }
19 19  
20 20 }
... ...
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java
... ... @@ -4,9 +4,11 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 5 import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils;
6 6 import com.baomidou.mybatisplus.core.conditions.Wrapper;
  7 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
7 8 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
8 9 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
9 10 import com.baomidou.mybatisplus.core.metadata.IPage;
  11 +import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
10 12 import org.apache.ibatis.annotations.Param;
11 13  
12 14 import java.util.Collection;
... ... @@ -29,14 +31,26 @@ public interface BaseMapperX&lt;T&gt; extends BaseMapper&lt;T&gt; {
29 31 return selectOne(new QueryWrapper<T>().eq(field, value));
30 32 }
31 33  
  34 + default T selectOne(SFunction<T, ?> field, Object value) {
  35 + return selectOne(new LambdaQueryWrapper<T>().eq(field, value));
  36 + }
  37 +
32 38 default T selectOne(String field1, Object value1, String field2, Object value2) {
33 39 return selectOne(new QueryWrapper<T>().eq(field1, value1).eq(field2, value2));
34 40 }
35 41  
  42 + default T selectOne(SFunction<T, ?> field1, Object value1, SFunction<T, ?> field2, Object value2) {
  43 + return selectOne(new LambdaQueryWrapper<T>().eq(field1, value1).eq(field2, value2));
  44 + }
  45 +
36 46 default Integer selectCount(String field, Object value) {
37 47 return selectCount(new QueryWrapper<T>().eq(field, value)).intValue();
38 48 }
39 49  
  50 + default Integer selectCount(SFunction<T, ?> field, Object value) {
  51 + return selectCount(new LambdaQueryWrapper<T>().eq(field, value)).intValue();
  52 + }
  53 +
40 54 default List<T> selectList() {
41 55 return selectList(new QueryWrapper<>());
42 56 }
... ... @@ -45,10 +59,18 @@ public interface BaseMapperX&lt;T&gt; extends BaseMapper&lt;T&gt; {
45 59 return selectList(new QueryWrapper<T>().eq(field, value));
46 60 }
47 61  
  62 + default List<T> selectList(SFunction<T, ?> field, Object value) {
  63 + return selectList(new LambdaQueryWrapper<T>().eq(field, value));
  64 + }
  65 +
48 66 default List<T> selectList(String field, Collection<?> values) {
49 67 return selectList(new QueryWrapper<T>().in(field, values));
50 68 }
51 69  
  70 + default List<T> selectList(SFunction<T, ?> field, Collection<?> values) {
  71 + return selectList(new LambdaQueryWrapper<T>().in(field, values));
  72 + }
  73 +
52 74 default void insertBatch(Collection<T> entities) {
53 75 // TODO 芋艿:修改成支持批量的
54 76 entities.forEach(this::insert);
... ...
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/query/LambdaQueryWrapperX.java 0 → 100644
  1 +package cn.iocoder.yudao.framework.mybatis.core.query;
  2 +
  3 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4 +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5 +import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
  6 +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
  7 +import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
  8 +import org.springframework.util.StringUtils;
  9 +
  10 +import java.util.Collection;
  11 +
  12 +/**
  13 + * 拓展 MyBatis Plus QueryWrapper 类,主要增加如下功能:
  14 + *
  15 + * 1. 拼接条件的方法,增加 xxxIfPresent 方法,用于判断值不存在的时候,不要拼接到条件中。
  16 + *
  17 + * @param <T> 数据类型
  18 + */
  19 +public class LambdaQueryWrapperX<T> extends LambdaQueryWrapper<T> {
  20 +
  21 + public LambdaQueryWrapperX<T> likeIfPresent(SFunction<T, ?> column, String val) {
  22 + if (StringUtils.hasText(val)) {
  23 + return (LambdaQueryWrapperX<T>) super.like(column, val);
  24 + }
  25 + return this;
  26 + }
  27 +
  28 + public LambdaQueryWrapperX<T> inIfPresent(SFunction<T, ?> column, Collection<?> values) {
  29 + if (!CollectionUtils.isEmpty(values)) {
  30 + return (LambdaQueryWrapperX<T>) super.in(column, values);
  31 + }
  32 + return this;
  33 + }
  34 +
  35 + public LambdaQueryWrapperX<T> inIfPresent(SFunction<T, ?> column, Object... values) {
  36 + if (!ArrayUtils.isEmpty(values)) {
  37 + return (LambdaQueryWrapperX<T>) super.in(column, values);
  38 + }
  39 + return this;
  40 + }
  41 +
  42 + public LambdaQueryWrapperX<T> eqIfPresent(SFunction<T, ?> column, Object val) {
  43 + if (val != null) {
  44 + return (LambdaQueryWrapperX<T>) super.eq(column, val);
  45 + }
  46 + return this;
  47 + }
  48 +
  49 + public LambdaQueryWrapperX<T> neIfPresent(SFunction<T, ?> column, Object val) {
  50 + if (val != null) {
  51 + return (LambdaQueryWrapperX<T>) super.ne(column, val);
  52 + }
  53 + return this;
  54 + }
  55 +
  56 + public LambdaQueryWrapperX<T> gtIfPresent(SFunction<T, ?> column, Object val) {
  57 + if (val != null) {
  58 + return (LambdaQueryWrapperX<T>) super.gt(column, val);
  59 + }
  60 + return this;
  61 + }
  62 +
  63 + public LambdaQueryWrapperX<T> geIfPresent(SFunction<T, ?> column, Object val) {
  64 + if (val != null) {
  65 + return (LambdaQueryWrapperX<T>) super.ge(column, val);
  66 + }
  67 + return this;
  68 + }
  69 +
  70 + public LambdaQueryWrapperX<T> ltIfPresent(SFunction<T, ?> column, Object val) {
  71 + if (val != null) {
  72 + return (LambdaQueryWrapperX<T>) super.lt(column, val);
  73 + }
  74 + return this;
  75 + }
  76 +
  77 + public LambdaQueryWrapperX<T> leIfPresent(SFunction<T, ?> column, Object val) {
  78 + if (val != null) {
  79 + return (LambdaQueryWrapperX<T>) super.le(column, val);
  80 + }
  81 + return this;
  82 + }
  83 +
  84 + public LambdaQueryWrapperX<T> betweenIfPresent(SFunction<T, ?> column, Object val1, Object val2) {
  85 + if (val1 != null && val2 != null) {
  86 + return (LambdaQueryWrapperX<T>) super.between(column, val1, val2);
  87 + }
  88 + if (val1 != null) {
  89 + return (LambdaQueryWrapperX<T>) ge(column, val1);
  90 + }
  91 + if (val2 != null) {
  92 + return (LambdaQueryWrapperX<T>) le(column, val2);
  93 + }
  94 + return this;
  95 + }
  96 +
  97 + // ========== 重写父类方法,方便链式调用 ==========
  98 +
  99 + @Override
  100 + public LambdaQueryWrapperX<T> eq(boolean condition, SFunction<T, ?> column, Object val) {
  101 + super.eq(condition, column, val);
  102 + return this;
  103 + }
  104 +
  105 + @Override
  106 + public LambdaQueryWrapperX<T> eq(SFunction<T, ?> column, Object val) {
  107 + super.eq(column, val);
  108 + return this;
  109 + }
  110 +
  111 + @Override
  112 + public LambdaQueryWrapperX<T> orderByDesc(SFunction<T, ?> column) {
  113 + super.orderByDesc(true, column);
  114 + return this;
  115 + }
  116 +
  117 + @Override
  118 + public LambdaQueryWrapperX<T> last(String lastSql) {
  119 + super.last(lastSql);
  120 + return this;
  121 + }
  122 +
  123 + @Override
  124 + public LambdaQueryWrapperX<T> in(SFunction<T, ?> column, Collection<?> coll) {
  125 + super.in(column, coll);
  126 + return this;
  127 + }
  128 +
  129 +}
... ...
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/member/dal/mysql/user/MbrUserMapper.java
... ... @@ -13,7 +13,7 @@ import org.apache.ibatis.annotations.Mapper;
13 13 public interface MbrUserMapper extends BaseMapperX<MbrUserDO> {
14 14  
15 15 default MbrUserDO selectByMobile(String mobile) {
16   - return selectOne("mobile", mobile);
  16 + return selectOne(MbrUserDO::getMobile, mobile);
17 17 }
18 18  
19 19 }
... ...