diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm index 137484a33..472fbcd33 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm @@ -1,14 +1,12 @@ package ${packageName}.service.impl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.dromara.common.core.utils.MapstructUtils; -import org.dromara.common.core.utils.StringUtils; #if($table.crud) import org.dromara.common.core.domain.PageResult; import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; #end -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -56,7 +54,7 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { */ @Override 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); return PageResult.build(result.getRecords(), result.getTotal()); } @@ -70,38 +68,44 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { */ @Override public List<${ClassName}Vo> queryList(${ClassName}Bo bo) { - LambdaQueryWrapper<${ClassName}> wrapper = buildQueryWrapper(bo); + MPJLambdaWrapper<${ClassName}> wrapper = buildQueryWrapper(bo); return baseMapper.selectVoList(wrapper); } - private LambdaQueryWrapper<${ClassName}> buildQueryWrapper(${ClassName}Bo bo) { + private MPJLambdaWrapper<${ClassName}> buildQueryWrapper(${ClassName}Bo bo) { Map params = bo.getParams(); - LambdaQueryWrapper<${ClassName}> wrapper = Wrappers.lambdaQuery(); -#foreach($column in $columns) -#if($column.query) -#set($queryType=$column.queryType) -#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); -#end -#end + MPJLambdaWrapper<${ClassName}> wrapper = new MPJLambdaWrapper<>(); + #foreach($column in $columns) + #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + $column.javaField.substring(1)) + #if($column.isPk==1) + wrapper.orderByAsc(${ClassName}::get$AttrName); + #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; }