RuoYi
2024-06-02 b21d5faebba533a7d0fe276c97d47a11178178f6
优化代码生成主子表关联查询方式
已修改2个文件
27 ■■■■■ 文件已修改
src/main/java/com/ruoyi/framework/security/service/SysLoginService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/vm/xml/mapper.xml.vm 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/framework/security/service/SysLoginService.java
@@ -115,12 +115,12 @@
        {
            String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + StringUtils.nvl(uuid, "");
            String captcha = redisCache.getCacheObject(verifyKey);
            redisCache.deleteObject(verifyKey);
            if (captcha == null)
            {
                AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire")));
                throw new CaptchaExpireException();
            }
            redisCache.deleteObject(verifyKey);
            if (!code.equalsIgnoreCase(captcha))
            {
                AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error")));
src/main/resources/vm/xml/mapper.xml.vm
@@ -12,12 +12,12 @@
#if($table.sub)
    <resultMap id="${ClassName}${subClassName}Result" type="${ClassName}" extends="${ClassName}Result">
        <collection property="${subclassName}List" notNullColumn="sub_${subTable.pkColumn.columnName}" javaType="java.util.List" resultMap="${subClassName}Result" />
        <collection property="${subclassName}List" ofType="${subClassName}" column="${subTableFkName}" select="select${subClassName}List" />
    </resultMap>
    <resultMap type="${subClassName}" id="${subClassName}Result">
#foreach ($column in $subTable.columns)
        <result property="${column.javaField}"    column="sub_${column.columnName}"    />
        <result property="${column.javaField}"    column="${column.columnName}"    />
#end
    </resultMap>
#end
@@ -63,15 +63,20 @@
        <include refid="select${ClassName}Vo"/>
        where ${pkColumn.columnName} = #{${pkColumn.javaField}}
#elseif($table.sub)
        select#foreach($column in $columns) a.$column.columnName#if($foreach.count != $columns.size()),#end#end,
           #foreach($column in $subTable.columns) b.$column.columnName as sub_$column.columnName#if($foreach.count != $subTable.columns.size()),#end#end
        from ${tableName} a
        left join ${subTableName} b on b.${subTableFkName} = a.${pkColumn.columnName}
        where a.${pkColumn.columnName} = #{${pkColumn.javaField}}
        select#foreach($column in $columns) $column.columnName#if($foreach.count != $columns.size()),#end#end
        from ${tableName}
        where ${pkColumn.columnName} = #{${pkColumn.javaField}}
#end
    </select>
#if($table.sub)
    <select id="select${subClassName}List" resultType="${subClassName}" resultMap="${subClassName}Result">
        select#foreach ($column in $subTable.columns) $column.columnName#if($foreach.count != $subTable.columns.size()),#end#end
        from ${subTableName}
        where ${subTableFkName} = #{${subTableFkName}}
    </select>
#end
    <insert id="insert${ClassName}" parameterType="${ClassName}"#if($pkColumn.increment) useGeneratedKeys="true" keyProperty="$pkColumn.javaField"#end>
        insert into ${tableName}
        <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -127,7 +132,7 @@
    <insert id="batch${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 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>