浏览代码

优化代码生成

jun hu 1 年之前
父节点
当前提交
e41625dd61

+ 0 - 1
README.md

@@ -13,7 +13,6 @@ RuoYi-Vue-Ks基于RuoYi-Vue优化改造,集成mybatisplus、knife4j、hutool
 
 * 建数据表必须包含5个默认字段(create_by、create_time、update_by、update_time、remark)。
 * 如需使用逻辑删除功能,只需在数据表中添加deleted字段(0表示未删除,1表示已删除)。
-* 生成主子表增删改查代码时,子表的mapper接口、xml文件需要单独生成。
 
 <p align="center">
 	<img alt="logo" src="https://oscimg.oschina.net/oscnet/up-d3d0a9303e11d522a06cd263f3079027715.png">

+ 8 - 0
ruoyi-generator/src/main/resources/vm/java/mapper.java.vm

@@ -31,5 +31,13 @@ public interface ${ClassName}Mapper extends BaseMapper<${ClassName}> {
      * @return 结果
      */
     int delete${subClassName}By${subTableFkClassName}(@Param("${pkColumn.javaField}")${pkColumn.javaType} ${pkColumn.javaField});
+
+    /**
+     * 批量新增${subTable.functionName}
+     *
+     * @param ${subclassName}List ${subTable.functionName}列表
+     * @return 结果
+     */
+    int batchInsert${subClassName}(List<${subClassName}> ${subclassName}List);
 #end
 }

+ 1 - 6
ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm

@@ -12,7 +12,6 @@ import java.util.Map;
 import java.util.Arrays;
 import org.springframework.transaction.annotation.Transactional;
 import ${packageName}.domain.${subClassName};
-import ${packageName}.mapper.${subClassName}Mapper;
 #end
 import ${packageName}.mapper.${ClassName}Mapper;
 import ${packageName}.domain.${ClassName};
@@ -29,10 +28,6 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C
 
     @Autowired
     private ${ClassName}Mapper ${className}Mapper;
-#if($table.sub)
-    @Autowired
-    private ${subClassName}Mapper ${subclassName}Mapper;
-#end
 
     /**
      * 查询${functionName}列表
@@ -144,8 +139,8 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C
         if (StringUtils.isNotNull(${subclassName}List)) {
             for (${subClassName} ${subclassName} : ${subclassName}List) {
                 ${subclassName}.set${subTableFkClassName}(${pkColumn.javaField});
-                ${subclassName}Mapper.insert(${subclassName});
             }
+            ${className}Mapper.batchInsert${subClassName}(${subclassName}List);
         }
     }
 #end

+ 14 - 1
ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm

@@ -11,7 +11,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
 #if($table.sub)
-    <select id="select${subClassName}By${pkColumn.capJavaField}" parameterType="${pkColumn.javaType}" resultType="${packageName}.domain.${ClassName}">
+    <resultMap type="${subClassName}" id="${subClassName}Result">
+        #foreach ($column in $subTable.columns)
+            <result property="${column.javaField}"    column="sub_${column.columnName}"    />
+        #end
+    </resultMap>
+
+    <select id="select${subClassName}By${pkColumn.capJavaField}" parameterType="${pkColumn.javaType}" resultType="${packageName}.domain.${subClassName}">
         select * from ${subTableName} where ${subTableFkName} = #{${pkColumn.javaField}}
     </select>
 
@@ -19,5 +25,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         delete from ${subTableName} where ${subTableFkName} = #{${pkColumn.javaField}}
     </delete>
 
+    <insert id="batchInsert${subClassName}">
+        insert into ${subTableName}(#foreach($column in $subTable.columns) $column.columnName#if($foreach.count != $subTable.columns.size()),#end#end) values
+        <foreach item="item" index="index" collection="list" separator=",">
+            (#foreach($column in $subTable.columns) #{item.$column.javaField}#if($foreach.count != $subTable.columns.size()),#end#end)
+        </foreach>
+    </insert>
 #end
+
 </mapper>