前端传多个数组集合,后端接收并匹配

摘要:
=空'˃˂!

传参格式

前端传多个数组集合,后端接收并匹配第1张

前端传多个数组集合,后端接收并匹配第2张

 后端接收并在SQL匹配

 @GetMapping(value = "xj/node/openApi/subnets")
    @ApiOperation(value = "查询openApi子网接口", httpMethod = "GET", response = String.class)
    public Map<String, Object> listResourceOpenApiSubnets(
            @ApiParam(value = "子网地址", required = false) @RequestParam(required = false, name = "subnetIp") String subnetIp,
            @ApiParam(value = "子网名称", required = false) @RequestParam(required = false, name = "subnetName") String subnetName,
            @ApiParam(value = "关键字", required = false) @RequestParam(required = false, name = "key") String key,
            @ApiParam(value = "子网", required = false) @RequestParam(required = false, name = "subnetIps") String subnetIps) {
        HashMap<String, Object> paramMap = new HashMap<>();
        Optional.ofNullable(subnetIp).map(t -> paramMap.put("subnetIp", t));
        Optional.ofNullable(subnetName).map(t -> paramMap.put("subnetName", t));
        Optional.ofNullable(key).map(t -> paramMap.put("key", t));
        String[] subnetIpArray = subnetIps.split(",");
        List<String> subnetIpList = new ArrayList<>();
        for (String item : subnetIpArray) {
            StringBuffer stringBuffer = new StringBuffer();
            stringBuffer.append("'");
            stringBuffer.append(item);
            stringBuffer.append("'");
            subnetIpList.add(stringBuffer.toString());
        }
        paramMap.put("subnetIpList", StringUtils.join(subnetIpList, ","));

        val resultList = resourceService.listResourceOpenApiSubnets(getCurrentLoginId(), paramMap);
        val resultMap = new HashMap<String, Object>();
        resultMap.put("record", resultList);
        return resultMap;
    }

SQL

<select   parameterType="map" resultType="java.util.LinkedHashMap">
        <![CDATA[
            SELECT a.*,b.use FROM xjyd_openapi_subnet a
            left join (SELECT a.subnet_id,group_CONCAT(a.`use`) `use` FROM xjyd_openapi_subnet_use a GROUP BY a.subnet_id) b on a.subnet_id = b.subnet_id
        ]]>
        <where>
            <if test='subnetName != null'>
                <![CDATA[ and a.subnet_name = #{subnetName} ]]>
            </if>
            <if test='subnetIp != null'>
                <![CDATA[ and CONCAT('%.',a.subnet_ip,'.%') like CONCAT('%.',#{subnetIp},'.%') ]]>
            </if>
            <if test='subnetIpList != null'>
                <![CDATA[ and a.subnet_ip in (${subnetIpList}) ]]>
            </if>
            <if test='key != null'>
                <![CDATA[ and (CONCAT('%.',a.subnet_ip,'.%') like CONCAT('%.',#{key},'.%')
                               or a.subnet_name like CONCAT('%',#{key},'%')
                               )
                ]]>
            </if>
        </where>
    </select>

免责声明:文章转载自《前端传多个数组集合,后端接收并匹配》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用 @Query 注解实现查询iOS-代码修改Info.plist文件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

干掉mapper.xml!MyBatis新特性动态SQL真香!

干掉mapper.xml!MyBatis新特性动态SQL真香! 当我们使用MyBatis的时候,需要在mapper.xml中书写大量的SQL语句。当我们使用MyBatis Generator(MBG)作为代码生成器时,也会生成大量的mapper.xml文件。其实从MBG 1.3.6版本以后,MyBatis官方已经推荐使用Dynamic SQL,使用这一新特...

Java Enum枚举 遍历判断 四种方式(包括 Lambda 表达式过滤)

示例代码如下: package com.miracle.luna.lambda; import java.util.Arrays; /** * @Author Miracle Luna * @Date 2019/6/9 23:40 * @Version 1.0 */ public enum AlarmGrade {...

Clob类型转换为String

SQL CLOB 是内置类型,它将字符大对象存储为数据库表某一行中的一个列值,使用CHAR来存储数据,如XML文档。 如下是一个Clob转换为String的静态方法,可将其放在自己常用的工具类中,想直接用的话,自己稍作修改即可 public static String clobToStr(Clob clob) { if(clob == null) {...

java zip打包与乱码的解决

应用场景:主要使用在对系统文件进行归档,如果中则需要对公文中的附件或正文进行打包归档 示例代码:解决乱码的问题主要是引用apache的包ant.jar。然后注意下面红色代码部分,java自带的包中也有这两个类。如果乱码最好是采用apache的这两个类。这样才会有设置编码的zos.setEncoding("gbk")这个方法。这样就可解决java zip 打...

android环境下的即时通讯

首先了解一下即时通信的概念。通过消息通道 传输消息对象,一个账号发往另外一账号,只要账号在线,可以即时获取到消息,这就是最简单的即使通讯。消息通道可由TCP/IP UDP实现。通俗讲就是把一个人要发送给另外一个人的消息对象(文字,音视频,文件)通过消息通道(C/S实时通信)进行传输的服务。即时通讯应该包括四种形式,在线直传、在线代理、离线代理、离线扩展。在...

WebApi使用Token(OAUTH 2.0方式)

1.在项目中添加引用 Microsoft.AspNet.WebApi.Owin Microsoft.Owin.Host.SystemWeb Microsoft.Owin.Security.OAuth Microsoft.Owin.Security.Cookies Microsoft.AspNet.Identity.Owin Microsoft.Owin.C...