diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/controller.java.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/controller.java.vm index 6438971..eb26311 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/controller.java.vm +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/controller.java.vm @@ -112,4 +112,15 @@ public class ${ClassName}Controller extends BaseController { @PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) { return toAjax(${className}Service.deleteWithValidByIds(List.of(${pkColumn.javaField}s), true)); } + + /** + * 下拉框查询${functionName}列表 + */ + @SaCheckPermission("${permissionPrefix}:list") + @GetMapping("/get${ClassName}List") + public R> get${ClassName}List(${ClassName}Bo bo) { + List<${ClassName}Vo> list = ${className}Service.queryList(bo); + return R.ok(list); + } + } diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/mapper.java.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/mapper.java.vm index 0922401..701b274 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/mapper.java.vm +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/mapper.java.vm @@ -3,6 +3,12 @@ package ${packageName}.mapper; import ${packageName}.domain.${ClassName}; import ${packageName}.domain.vo.${ClassName}Vo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import org.apache.ibatis.annotations.Param; +import java.util.List; +import java.util.Collection; /** * ${functionName}Mapper接口 @@ -12,4 +18,95 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface ${ClassName}Mapper extends BaseMapperPlus<${ClassName}, ${ClassName}Vo> { + /** + * 查询${functionName}列表(自定义条件) + * + * @param queryWrapper 条件 + * @return ${functionName}集合 + */ + List<${ClassName}Vo> selectCustom${ClassName}VoList(@Param(Constants.WRAPPER) Wrapper<${ClassName}> queryWrapper); + + /** + * 根据ID查询${functionName}详情 + * + * @param ${pkColumn.javaField} 主键ID + * @return ${functionName}对象 + */ + ${ClassName}Vo selectCustom${ClassName}VoById(@Param("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}); + + /** + * 根据ID列表批量查询${functionName} + * + * @param ids ID集合 + * @return ${functionName}集合 + */ + List<${ClassName}Vo> selectCustom${ClassName}VoByIds(@Param("ids") Collection<${pkColumn.javaType}> ids); + + /** + * 统计${functionName}记录数 + * + * @param queryWrapper 查询条件 + * @return 记录总数 + */ + Long countCustom${ClassName}(@Param(Constants.WRAPPER) Wrapper<${ClassName}> queryWrapper); + + /** + * 分页查询${functionName}(自定义条件) + * + * @param page 分页对象 + * @param queryWrapper 查询条件 + * @return 分页结果 + */ + Page<${ClassName}Vo> selectCustom${ClassName}VoPage(@Param("page") Page<${ClassName}> page, @Param(Constants.WRAPPER) Wrapper<${ClassName}> queryWrapper); + + /** + * 批量插入${functionName} + * + * @param list ${functionName}对象集合 + * @return 影响行数 + */ + int batchInsert${ClassName}(@Param("list") List<${ClassName}> list); + + /** + * 批量更新${functionName} + * + * @param list ${functionName}对象集合 + * @return 影响行数 + */ + int batchUpdate${ClassName}(@Param("list") List<${ClassName}> list); + + /** + * 根据自定义条件删除${functionName} + * + * @param queryWrapper 删除条件 + * @return 影响行数 + */ + int deleteCustom${ClassName}(@Param(Constants.WRAPPER) Wrapper<${ClassName}> queryWrapper); + + /** + * 根据ID列表批量删除${functionName} + * + * @param ids ID集合 + * @return 影响行数 + */ + int deleteCustom${ClassName}ByIds(@Param("ids") Collection<${pkColumn.javaType}> ids); + + /** + * 检查${functionName}是否存在 + * + * @param queryWrapper 查询条件 + * @return 是否存在 + */ + Boolean exists${ClassName}(@Param(Constants.WRAPPER) Wrapper<${ClassName}> queryWrapper); + +#if($table.sub) + /** + * 批量插入${subTable.functionName} + * + * @param list ${subTable.functionName}对象集合 + * @return 影响行数 + */ + int batch${subClassName}(@Param("list") List<${subClassName}> list); +#end + } 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 be6c3bf..c8a11d1 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 @@ -43,7 +43,7 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { */ @Override public ${ClassName}Vo queryById(${pkColumn.javaType} ${pkColumn.javaField}){ - return baseMapper.selectVoById(${pkColumn.javaField}); + return baseMapper.selectCustom${ClassName}VoById(${pkColumn.javaField}); } #if($table.crud) @@ -57,7 +57,8 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { @Override public TableDataInfo<${ClassName}Vo> queryPageList(${ClassName}Bo bo, PageQuery pageQuery) { LambdaQueryWrapper<${ClassName}> lqw = buildQueryWrapper(bo); - Page<${ClassName}Vo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); + // 使用自定义 Mapper XML + MyBatis-Plus Wrapper 进行分页查询 + Page<${ClassName}Vo> result = baseMapper.selectCustom${ClassName}VoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } #end @@ -71,7 +72,8 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { @Override public List<${ClassName}Vo> queryList(${ClassName}Bo bo) { LambdaQueryWrapper<${ClassName}> lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + // 使用自定义 Mapper XML + MyBatis-Plus Wrapper 查询列表 + return baseMapper.selectCustom${ClassName}VoList(lqw); } private LambdaQueryWrapper<${ClassName}> buildQueryWrapper(${ClassName}Bo bo) { diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm index 1c76ad8..b08e298 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm @@ -3,4 +3,140 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + + + + + + + + + + + + + + + + insert into ${tableName}( +#foreach($column in $columns) +#if(!$column.increment) + $column.columnName#if($foreach.count != $columns.size()),#end + +#end +#end + ) + values + + ( +#foreach($column in $columns) +#if(!$column.increment) + #{item.$column.javaField}#if($foreach.count != $columns.size()),#end + +#end +#end + ) + + + + + + + update ${tableName} + +#foreach($column in $columns) +#if(!$column.pk && !$column.increment) + + $column.columnName = #{item.$column.javaField}#if($foreach.count != $columns.size()),#end + +#end +#end + + where ${pkColumn.columnName} = #{item.${pkColumn.javaField}} + + + + + + delete from ${tableName} + + ${ew.customSqlSegment} + + + + + + delete from ${tableName} + where ${pkColumn.columnName} in + + #{id} + + + + + + +#if($table.sub) + + + insert into ${subTableName}( +#foreach($column in $subTable.columns) +#if(!$column.increment) + $column.columnName#if($foreach.count != $subTable.columns.size()),#end + +#end +#end + ) + values + + ( +#foreach($column in $subTable.columns) +#if(!$column.increment) + #{item.$column.javaField}#if($foreach.count != $subTable.columns.size()),#end + +#end +#end + ) + + +#end +