Commit fcf13bb67c651b7b483e9bc54fd22e6b7def0c8d

Authored by 芋道源码
Committed by Gitee
2 parents 70fe3d31 43ae3c81

!64 新建LambdaQueryWrapperX,改成使用lambda的方式选择字段

Merge pull request !64 from keep/style/use_lambda_query_wapper
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,7 +4,7 @@ import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.group.B
4 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO; 4 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmUserGroupDO;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 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 import org.apache.ibatis.annotations.Mapper; 8 import org.apache.ibatis.annotations.Mapper;
9 9
10 import java.util.List; 10 import java.util.List;
@@ -18,15 +18,15 @@ import java.util.List; @@ -18,15 +18,15 @@ import java.util.List;
18 public interface BpmUserGroupMapper extends BaseMapperX<BpmUserGroupDO> { 18 public interface BpmUserGroupMapper extends BaseMapperX<BpmUserGroupDO> {
19 19
20 default PageResult<BpmUserGroupDO> selectPage(BpmUserGroupPageReqVO reqVO) { 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 default List<BpmUserGroupDO> selectListByStatus(Integer status) { 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,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.task;
2 2
3 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmTaskExtDO; 3 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmTaskExtDO;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 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 import org.apache.ibatis.annotations.Mapper; 6 import org.apache.ibatis.annotations.Mapper;
7 7
8 import java.util.Collection; 8 import java.util.Collection;
@@ -12,11 +12,11 @@ import java.util.List; @@ -12,11 +12,11 @@ import java.util.List;
12 public interface BpmTaskExtMapper extends BaseMapperX<BpmTaskExtDO> { 12 public interface BpmTaskExtMapper extends BaseMapperX<BpmTaskExtDO> {
13 13
14 default void updateByTaskId(BpmTaskExtDO entity) { 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 default List<BpmTaskExtDO> selectListByTaskIds(Collection<String> taskIds) { 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 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/mysql/job/InfJobMapper.java
1 package cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.job; 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 import cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.job.InfJobExportReqVO; 3 import cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.job.InfJobExportReqVO;
7 import cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.job.InfJobPageReqVO; 4 import cn.iocoder.yudao.adminserver.modules.infra.controller.job.vo.job.InfJobPageReqVO;
8 import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.job.InfJobDO; 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 import org.apache.ibatis.annotations.Mapper; 9 import org.apache.ibatis.annotations.Mapper;
10 10
11 import java.util.List; 11 import java.util.List;
@@ -19,22 +19,22 @@ import java.util.List; @@ -19,22 +19,22 @@ import java.util.List;
19 public interface InfJobMapper extends BaseMapperX<InfJobDO> { 19 public interface InfJobMapper extends BaseMapperX<InfJobDO> {
20 20
21 default InfJobDO selectByHandlerName(String handlerName) { 21 default InfJobDO selectByHandlerName(String handlerName) {
22 - return selectOne("handler_name", handlerName); 22 + return selectOne(InfJobDO::getHandlerName, handlerName);
23 } 23 }
24 24
25 default PageResult<InfJobDO> selectPage(InfJobPageReqVO reqVO) { 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 default List<InfJobDO> selectList(InfJobExportReqVO reqVO) { 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 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dept; 1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dept;
2 2
  3 +import cn.iocoder.yudao.adminserver.modules.tool.enums.SqlConstants;
3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  5 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
4 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 6 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
5 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptListReqVO; 7 import cn.iocoder.yudao.adminserver.modules.system.controller.dept.vo.dept.SysDeptListReqVO;
6 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO; 8 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
  9 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
7 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 10 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
8 import org.apache.ibatis.annotations.Mapper; 11 import org.apache.ibatis.annotations.Mapper;
9 12
@@ -14,22 +17,22 @@ import java.util.List; @@ -14,22 +17,22 @@ import java.util.List;
14 public interface SysDeptMapper extends BaseMapperX<SysDeptDO> { 17 public interface SysDeptMapper extends BaseMapperX<SysDeptDO> {
15 18
16 default List<SysDeptDO> selectList(SysDeptListReqVO reqVO) { 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 default SysDeptDO selectByParentIdAndName(Long parentId, String name) { 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 default Integer selectCountByParentId(Long parentId) { 29 default Integer selectCountByParentId(Long parentId) {
27 - return selectCount("parent_id", parentId); 30 + return selectCount(SysDeptDO::getParentId, parentId);
28 } 31 }
29 32
30 default boolean selectExistsByUpdateTimeAfter(Date maxUpdateTime) { 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,13 +2,15 @@ package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dict;
2 2
3 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataExportReqVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataExportReqVO;
4 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataPageReqVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataPageReqVO;
  5 +import cn.iocoder.yudao.adminserver.modules.tool.enums.SqlConstants;
5 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO; 6 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO;
6 import cn.iocoder.yudao.framework.common.pojo.PageResult; 7 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.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 import org.apache.ibatis.annotations.Mapper; 11 import org.apache.ibatis.annotations.Mapper;
11 12
  13 +import java.util.Arrays;
12 import java.util.Collection; 14 import java.util.Collection;
13 import java.util.Date; 15 import java.util.Date;
14 import java.util.List; 16 import java.util.List;
@@ -17,36 +19,36 @@ import java.util.List; @@ -17,36 +19,36 @@ import java.util.List;
17 public interface SysDictDataMapper extends BaseMapperX<SysDictDataDO> { 19 public interface SysDictDataMapper extends BaseMapperX<SysDictDataDO> {
18 20
19 default SysDictDataDO selectByDictTypeAndValue(String dictType, String value) { 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 default List<SysDictDataDO> selectByDictTypeAndValues(String dictType, Collection<String> values) { 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 default int selectCountByDictType(String dictType) { 31 default int selectCountByDictType(String dictType) {
30 - return selectCount("dict_type", dictType); 32 + return selectCount(SysDictDataDO::getDictType, dictType);
31 } 33 }
32 34
33 default PageResult<SysDictDataDO> selectPage(SysDictDataPageReqVO reqVO) { 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 default List<SysDictDataDO> selectList(SysDictDataExportReqVO reqVO) { 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 default boolean selectExistsByUpdateTimeAfter(Date maxUpdateTime) { 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 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.permission; 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 import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.menu.SysMenuListReqVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.permission.vo.menu.SysMenuListReqVO;
6 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysMenuDO; 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 import org.apache.ibatis.annotations.Mapper; 9 import org.apache.ibatis.annotations.Mapper;
9 10
10 import java.util.Date; 11 import java.util.Date;
@@ -14,22 +15,22 @@ import java.util.List; @@ -14,22 +15,22 @@ import java.util.List;
14 public interface SysMenuMapper extends BaseMapperX<SysMenuDO> { 15 public interface SysMenuMapper extends BaseMapperX<SysMenuDO> {
15 16
16 default SysMenuDO selectByParentIdAndName(Long parentId, String name) { 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 default Integer selectCountByParentId(Long parentId) { 22 default Integer selectCountByParentId(Long parentId) {
22 - return selectCount("parent_id", parentId); 23 + return selectCount(SysMenuDO::getParentId, parentId);
23 } 24 }
24 25
25 default List<SysMenuDO> selectList(SysMenuListReqVO reqVO) { 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 default boolean selectExistsByUpdateTimeAfter(Date maxUpdateTime) { 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,7 +5,7 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.Sy
5 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO; 5 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;
6 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 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 import org.apache.ibatis.annotations.Mapper; 9 import org.apache.ibatis.annotations.Mapper;
10 10
11 import java.util.List; 11 import java.util.List;
@@ -14,35 +14,36 @@ import java.util.List; @@ -14,35 +14,36 @@ import java.util.List;
14 public interface SysSmsTemplateMapper extends BaseMapperX<SysSmsTemplateDO> { 14 public interface SysSmsTemplateMapper extends BaseMapperX<SysSmsTemplateDO> {
15 15
16 default SysSmsTemplateDO selectByCode(String code) { 16 default SysSmsTemplateDO selectByCode(String code) {
17 - return selectOne("code", code); 17 + return selectOne(SysSmsTemplateDO::getCode, code);
18 } 18 }
19 19
  20 + // TODO 这种参数都一样的得想办法封装一下
20 default PageResult<SysSmsTemplateDO> selectPage(SysSmsTemplatePageReqVO reqVO) { 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 default List<SysSmsTemplateDO> selectList(SysSmsTemplateExportReqVO reqVO) { 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 default Integer selectCountByChannelId(Long channelId) { 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,7 +5,7 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.tenant.vo.SysTenan
5 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.tenant.SysTenantDO; 5 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.tenant.SysTenantDO;
6 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 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 import org.apache.ibatis.annotations.Mapper; 9 import org.apache.ibatis.annotations.Mapper;
10 10
11 import java.util.List; 11 import java.util.List;
@@ -19,26 +19,26 @@ import java.util.List; @@ -19,26 +19,26 @@ import java.util.List;
19 public interface SysTenantMapper extends BaseMapperX<SysTenantDO> { 19 public interface SysTenantMapper extends BaseMapperX<SysTenantDO> {
20 20
21 default PageResult<SysTenantDO> selectPage(SysTenantPageReqVO reqVO) { 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 default List<SysTenantDO> selectList(SysTenantExportReqVO reqVO) { 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 default SysTenantDO selectByName(String name) { 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 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.user; 1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.user;
2 2
3 -import cn.hutool.core.util.StrUtil;  
4 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.SysUserExportReqVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.SysUserExportReqVO;
5 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.SysUserPageReqVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.SysUserPageReqVO;
6 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; 5 import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
7 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 6 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
8 import cn.iocoder.yudao.framework.common.pojo.PageResult; 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 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 import org.apache.ibatis.annotations.Mapper; 12 import org.apache.ibatis.annotations.Mapper;
13 13
14 import java.util.Collection; 14 import java.util.Collection;
@@ -19,57 +19,58 @@ import java.util.Optional; @@ -19,57 +19,58 @@ import java.util.Optional;
19 public interface SysUserMapper extends BaseMapperX<SysUserDO> { 19 public interface SysUserMapper extends BaseMapperX<SysUserDO> {
20 20
21 default SysUserDO selectByUsername(String username) { 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 default SysUserDO selectByEmail(String email) { 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 default SysUserDO selectByMobile(String mobile) { 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 default PageResult<SysUserDO> selectPage(SysUserPageReqVO reqVO, Collection<Long> deptIds) { 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 default List<SysUserDO> selectList(SysUserExportReqVO reqVO, Collection<Long> deptIds) { 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 default List<SysUserDO> selectListByNickname(String nickname) { 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 default List<SysUserDO> selectListByUsername(String username) { 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 // TODO 芋艿:可废弃该方法 59 // TODO 芋艿:可废弃该方法
59 default List<SysUserDO> selectListByDepartIdAndPostId(Long departId, Long postId) { 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 // TODO @jason: 封装一个 StringUtils .toString 。如果空的时候,设置为 null。会更简洁 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 default List<SysUserDO> selectListByStatus(Integer status) { 68 default List<SysUserDO> selectListByStatus(Integer status) {
68 - return selectList("status", status); 69 + return selectList(SysUserDO::getStatus, status);
69 } 70 }
70 71
71 default List<SysUserDO> selectListByDeptIds(Collection<Long> deptIds) { 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,7 +9,7 @@ import org.apache.ibatis.annotations.Mapper;
9 public interface InfFileCoreMapper extends BaseMapperX<InfFileDO> { 9 public interface InfFileCoreMapper extends BaseMapperX<InfFileDO> {
10 10
11 default Integer selectCountById(String id) { 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,7 +11,7 @@ import java.util.Date;
11 public interface PayChannelCoreMapper extends BaseMapperX<PayChannelDO> { 11 public interface PayChannelCoreMapper extends BaseMapperX<PayChannelDO> {
12 12
13 default PayChannelDO selectByAppIdAndCode(Long appId, String code) { 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 @Select("SELECT id FROM pay_channel WHERE update_time > #{maxUpdateTime} LIMIT 1") 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,19 +2,19 @@ package cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.order;
2 2
3 import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderExtensionDO; 3 import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderExtensionDO;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 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 import org.apache.ibatis.annotations.Mapper; 6 import org.apache.ibatis.annotations.Mapper;
7 7
8 @Mapper 8 @Mapper
9 public interface PayOrderExtensionCoreMapper extends BaseMapperX<PayOrderExtensionDO> { 9 public interface PayOrderExtensionCoreMapper extends BaseMapperX<PayOrderExtensionDO> {
10 10
11 default PayOrderExtensionDO selectByNo(String no) { 11 default PayOrderExtensionDO selectByNo(String no) {
12 - return selectOne("no", no); 12 + return selectOne(PayOrderExtensionDO::getNo, no);
13 } 13 }
14 14
15 default int updateByIdAndStatus(Long id, Integer status, PayOrderExtensionDO update) { 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,9 +4,11 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; 5 import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils;
6 import com.baomidou.mybatisplus.core.conditions.Wrapper; 6 import com.baomidou.mybatisplus.core.conditions.Wrapper;
  7 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
7 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 8 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
8 import com.baomidou.mybatisplus.core.mapper.BaseMapper; 9 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
9 import com.baomidou.mybatisplus.core.metadata.IPage; 10 import com.baomidou.mybatisplus.core.metadata.IPage;
  11 +import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
10 import org.apache.ibatis.annotations.Param; 12 import org.apache.ibatis.annotations.Param;
11 13
12 import java.util.Collection; 14 import java.util.Collection;
@@ -29,14 +31,26 @@ public interface BaseMapperX&lt;T&gt; extends BaseMapper&lt;T&gt; { @@ -29,14 +31,26 @@ public interface BaseMapperX&lt;T&gt; extends BaseMapper&lt;T&gt; {
29 return selectOne(new QueryWrapper<T>().eq(field, value)); 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 default T selectOne(String field1, Object value1, String field2, Object value2) { 38 default T selectOne(String field1, Object value1, String field2, Object value2) {
33 return selectOne(new QueryWrapper<T>().eq(field1, value1).eq(field2, value2)); 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 default Integer selectCount(String field, Object value) { 46 default Integer selectCount(String field, Object value) {
37 return selectCount(new QueryWrapper<T>().eq(field, value)).intValue(); 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 default List<T> selectList() { 54 default List<T> selectList() {
41 return selectList(new QueryWrapper<>()); 55 return selectList(new QueryWrapper<>());
42 } 56 }
@@ -45,10 +59,18 @@ public interface BaseMapperX&lt;T&gt; extends BaseMapper&lt;T&gt; { @@ -45,10 +59,18 @@ public interface BaseMapperX&lt;T&gt; extends BaseMapper&lt;T&gt; {
45 return selectList(new QueryWrapper<T>().eq(field, value)); 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 default List<T> selectList(String field, Collection<?> values) { 66 default List<T> selectList(String field, Collection<?> values) {
49 return selectList(new QueryWrapper<T>().in(field, values)); 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 default void insertBatch(Collection<T> entities) { 74 default void insertBatch(Collection<T> entities) {
53 // TODO 芋艿:修改成支持批量的 75 // TODO 芋艿:修改成支持批量的
54 entities.forEach(this::insert); 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,7 +13,7 @@ import org.apache.ibatis.annotations.Mapper;
13 public interface MbrUserMapper extends BaseMapperX<MbrUserDO> { 13 public interface MbrUserMapper extends BaseMapperX<MbrUserDO> {
14 14
15 default MbrUserDO selectByMobile(String mobile) { 15 default MbrUserDO selectByMobile(String mobile) {
16 - return selectOne("mobile", mobile); 16 + return selectOne(MbrUserDO::getMobile, mobile);
17 } 17 }
18 18
19 } 19 }