模糊匹配_in查询list_集合_参数为集合

本文介绍了一个RESTful API,用于根据用户输入的条件进行操作日志的模糊查询,包括时间范围、终端分类、操作类型和结果。服务接口、ServiceImpl和Mapper的实现展示了如何将参数转换为SQL查询并返回结果。
摘要由CSDN通过智能技术生成

controller

 /**
     * 根据条件,快捷查询   条件通过字符串拼接
     * @param startTime     开始时间
     * @param endTime       结束时间
     * @param zdfl          终端分类
     * @param czlx          操作类型
     * @param czjg          操作结果
     * @param fuzzyQuery    用户名 / 单位名称 / 终端标识  匹配
     * @return
     */
    @PostMapping("FuzzyQuery")
    @ApiOperation("快速查询操作日志_操作日志")
    @ApiImplicitParams({
            @ApiImplicitParam(name="startTime", value="开始时间",paramType="query", dataType="date", dataTypeClass=Date.class, required=false, defaultValue=""),
            @ApiImplicitParam(name="endTime", value="结束时间",paramType="query", dataType="date", dataTypeClass=Date.class, required=false, defaultValue=""),
            @ApiImplicitParam(name="zdfl", value="终端分类",paramType="query", dataType="string", dataTypeClass=String.class, required=false, defaultValue=""),
            @ApiImplicitParam(name="czlx", value="操作类型",paramType="query", dataType="string", dataTypeClass=String.class, required=false, defaultValue=""),
            @ApiImplicitParam(name="czjg", value="操作结果",paramType="query", dataType="string", dataTypeClass=String.class, required=false, defaultValue=""),
            @ApiImplicitParam(name="fuzzyQuery", value="按条件快速匹配",paramType="query", dataType="string", dataTypeClass=String.class, required=false, defaultValue=""),
    })
    public ResponseEntity<List<Czrz>> FuzzyQuery( @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,
                                                  @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime,
                                                  @RequestParam(required = false) String zdfl,
                                                  @RequestParam(required = false) String czlx,
                                                  @RequestParam(required = false) String czjg,
                                                  @RequestParam(required = false) String fuzzyQuery) throws ParseException {
        List<Czrz> czrzList = czrzService.FuzzyQuery(startTime, endTime, zdfl, czlx, czjg, fuzzyQuery);
        return ResponseEntity.ok(czrzList);
    }

service

  List<Czrz> FuzzyQuery(Date startTime, Date endTime, String zdfl, String czlx, String czjg, String fuzzyQuery);

serivceImpl

@Override
	 public List<Czrz> FuzzyQuery(Date startTime, Date endTime, String zdfl, String czlx, String czjg, String fuzzyQuery) {


		/
		 //终端分类
		 ArrayList<Integer> zdflList = new ArrayList<>();
		 if (zdfl != null && !zdfl.equals("")) {
			 String[] split = zdfl.split(",");
			 for (String fl : split) {
				 zdflList.add(Integer.parseInt(fl));
			 }

		 }

		 //操作类型
		 ArrayList<Integer> czlxList = new ArrayList<>();
		 if (czlx != null && !czlx.equals("")) {
			 String[] split = czlx.split(",");
			 for (String lx : split) {
				 czlxList.add(Integer.parseInt(lx));
			 }
		 }

		 //操作结果
		 ArrayList<Integer> czjgList = new ArrayList<>();
		 if (czjg != null && !czjg.equals("")) {
			 String[] split = czjg.split(",");
			 for (String jg : split) {
				 czjgList.add(Integer.parseInt(jg));
			 }
		 }

		List<Czrz> czrzList =  czrzMapper.fuzzyQuery(startTime, endTime, zdflList, czlxList, czjgList, fuzzyQuery);
		 if (czrzList.size() > 0) {
			 return czrzList;
		 }
		 return null;
	 }

mapper

 List<Czrz> fuzzyQuery(@Param("startTime") Date startTime,
                      @Param("endTime")  Date endTime,
                      @Param("zdflList")   ArrayList<Integer> zdflList, 
                      @Param("czlxList")  ArrayList<Integer> czlxList,
                      @Param("czjgList")  ArrayList<Integer> czjgList, 
                      @Param("fuzzyQuery")  String fuzzyQuery);

xml

<select id="fuzzyQuery" resultMap="ControlledFileMap">
        SELECT
        *
        FROM
        tb_fw_czrz
        WHERE 1 = 1
         <if test="zdflList != null and zdflList.size()>0">
             AND ZDFL IN
             <foreach collection="zdflList" item="item" open="(" separator="," close=")">
                 #{item}
             </foreach>
         </if>
        <if test="czlxList != null and czlxList.size()>0">
            AND CZLX IN
            <foreach collection="czlxList" item="item" open="(" separator="," close=")">
                #{item}
            </foreach>
        </if>
        <if test="czjgList != null and czjgList.size()>0">
            AND CZJG IN
            <foreach collection="czjgList" item="item" open="(" separator="," close=")">
                #{item}
            </foreach>
        </if>
        <if test="fuzzyQuery != null and fuzzyQuery != ''">
            AND YHM like concat('%',#{fuzzyQuery},'%')  OR DWMC like concat('%',#{fuzzyQuery},'%')  OR ZDBS like concat('%',#{fuzzyQuery},'%')
        </if>
        <if test="startTime != null">
            AND CZSJ <![CDATA[>=]]> #{startTime}
        </if>
        <if test="endTime != null">
            AND CZSJ <![CDATA[<=]]> #{endTime}
        </if>
        order by CZSJ DESC

    </select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值