代码生成器ServiceImpl修改适配MPJ

This commit is contained in:
LukewarmMe 2026-03-26 16:48:33 +08:00
parent 6edf618b6c
commit caf01de59c

View File

@ -1,14 +1,12 @@
package ${packageName}.service.impl; package ${packageName}.service.impl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
#if($table.crud) #if($table.crud)
import org.dromara.common.core.domain.PageResult; import org.dromara.common.core.domain.PageResult;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
#end #end
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -56,7 +54,7 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service {
*/ */
@Override @Override
public PageResult<${ClassName}Vo> queryPageList(${ClassName}Bo bo, PageQuery pageQuery) { public PageResult<${ClassName}Vo> queryPageList(${ClassName}Bo bo, PageQuery pageQuery) {
LambdaQueryWrapper<${ClassName}> wrapper = buildQueryWrapper(bo); MPJLambdaWrapper<${ClassName}> wrapper = buildQueryWrapper(bo);
Page<${ClassName}Vo> result = baseMapper.selectVoPage(pageQuery.build(), wrapper); Page<${ClassName}Vo> result = baseMapper.selectVoPage(pageQuery.build(), wrapper);
return PageResult.build(result.getRecords(), result.getTotal()); return PageResult.build(result.getRecords(), result.getTotal());
} }
@ -70,38 +68,44 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service {
*/ */
@Override @Override
public List<${ClassName}Vo> queryList(${ClassName}Bo bo) { public List<${ClassName}Vo> queryList(${ClassName}Bo bo) {
LambdaQueryWrapper<${ClassName}> wrapper = buildQueryWrapper(bo); MPJLambdaWrapper<${ClassName}> wrapper = buildQueryWrapper(bo);
return baseMapper.selectVoList(wrapper); return baseMapper.selectVoList(wrapper);
} }
private LambdaQueryWrapper<${ClassName}> buildQueryWrapper(${ClassName}Bo bo) { private MPJLambdaWrapper<${ClassName}> buildQueryWrapper(${ClassName}Bo bo) {
Map<String, Object> params = bo.getParams(); Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<${ClassName}> wrapper = Wrappers.lambdaQuery(); MPJLambdaWrapper<${ClassName}> wrapper = new MPJLambdaWrapper<>();
#foreach($column in $columns) #foreach($column in $columns)
#if($column.query) #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + $column.javaField.substring(1))
#set($queryType=$column.queryType) #if($column.isPk==1)
#set($javaField=$column.javaField)
#set($javaType=$column.javaType)
#set($columnName=$column.columnName)
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
#set($mpMethod=$column.queryType.toLowerCase())
#if($queryType != 'BETWEEN')
#if($javaType == 'String')
#set($condition='StringUtils.isNotBlank(bo.get'+$AttrName+'())')
#else
#set($condition='bo.get'+$AttrName+'() != null')
#end
wrapper.$mpMethod($condition, ${ClassName}::get$AttrName, bo.get$AttrName());
#else
wrapper.between(params.get("begin$AttrName") != null && params.get("end$AttrName") != null,
${ClassName}::get$AttrName ,params.get("begin$AttrName"), params.get("end$AttrName"));
#end
#end
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
#if($column.isPk==1)
wrapper.orderByAsc(${ClassName}::get$AttrName); wrapper.orderByAsc(${ClassName}::get$AttrName);
#end #end
#end #if($column.query)
#set($queryType=$column.queryType.toLowerCase())
#set($javaField=$column.javaField)
#if($queryType == 'eq')
wrapper.eqIfExists(${ClassName}::get$AttrName, bo.get$AttrName());
#elseif($queryType == 'like')
wrapper.likeIfExists(${ClassName}::get$AttrName, bo.get$AttrName());
#elseif($queryType == 'likeleft')
wrapper.likeLeftIfExists(${ClassName}::get$AttrName, bo.get$AttrName());
#elseif($queryType == 'likeright')
wrapper.likeRightIfExists(${ClassName}::get$AttrName, bo.get$AttrName());
#elseif($queryType == 'gt')
wrapper.gtIfExists(${ClassName}::get$AttrName, bo.get$AttrName());
#elseif($queryType == 'lt')
wrapper.ltIfExists(${ClassName}::get$AttrName, bo.get$AttrName());
#elseif($queryType == 'ge')
wrapper.geIfExists(${ClassName}::get$AttrName, bo.get$AttrName());
#elseif($queryType == 'le')
wrapper.leIfExists(${ClassName}::get$AttrName, bo.get$AttrName());
#elseif($queryType == 'in')
wrapper.inIfExists(${ClassName}::get$AttrName, bo.get$AttrName());
#elseif($queryType == 'between')
wrapper.betweenIfExists(${ClassName}::get$AttrName, params.get("begin$AttrName"), params.get("end$AttrName"));
#end
#end
#end
return wrapper; return wrapper;
} }