一、@ApiImplicitParams注解的详细使用

业务需求:

1.根据服务员类别id(单个id)+服务员星级id(id的list)查询对应的服务员列表

1.controller代码:

点击查看代码
//根据服务员星级+服务员类别,查询对应的服务员list(服务员名称、服务员id)
@GetMapping("/waiter_list")
@ApiOperation("【根据服务员星级+服务员类别查询服务员列表】")
@ApiImplicitParams({
@ApiImplicitParam(name = "waiterCategoryId", value = "服务员类别id", paramType = "query", dataType="String"),
@ApiImplicitParam(name = "waiterGradeIds", value = "服务员星级ids", paramType = "query", dataType="Long",allowMultiple = true,required = true),
@ApiImplicitParam(name = "hotelId", value = "所属酒店id(平台超级管理员可以选择指定酒店查询,酒店管理员默认为自己的酒店id)",required = true, paramType = "query", dataType="String")
})
public Result<List<Map>> waiterList(@ApiIgnore @RequestParam Map<String, Object> params){
List<Map> map = orderService.waiterList(params);
return new Result<List<Map>>().ok(map);
}

2.service代码

点击查看代码
 /**
* 根据服务员星级+服务员类别查询服务员列表
* @param params
* @return
*/
List<Map> waiterList(Map<String, Object> params);

3.serviceImpl代码

点击查看代码
@Override
public List<Map> waiterList(Map<String, Object> params) {
log.info("6666666"+params.get("waiterGradeIds"));
List<Map> map=orderDao.getMap(params);
log.info("根据条件查询出的服务员列表信息"+map);
return map;
}

4.dao代码

点击查看代码
/**
* 根据服务员星级+服务员类别查询服务员列表
* @param params
* @return
*/
List<Map> getMap(Map<String, Object> params);

5.dao.xml代码

点击查看代码
<select id="getMap" resultType="java.util.Map">
SELECT
distinct A.id,
A.name
FROM
waiter_user A,
waiter_category B,
waiter_grade C
<where>
<if test="waiterCategoryId != null and waiterCategoryId.trim() != ''">
AND A.waiter_category_id = #{waiterCategoryId}
</if>
<if test="waiterGradeIds != null and waiterGradeIds.trim() != ''">
AND A.waiter_grade_id IN
<foreach item="item" index="index" collection="waiterGradeIds.split(',')" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="hotelId != null and hotelId.trim() != ''">
AND
A.hotel_id = #{hotelId}
AND
B.hotel_id = #{hotelId}
AND
C.hotel_id = #{hotelId}
</if>
</where>
</select>

二、提示

1.前端传递字段

前端传递字段 accountType: a,b,c buType: d,e

2.通过myBatis自带功能foreach,直接把逗号分隔的字符串传到mapper.xml即可,后台不用过多操作,Mapper.xml拼接部分sql如下:

点击查看代码
<if test="q.buType != null and q.buType !='' ">
and bu.bu_type in
<foreach item="item" index="index" collection="q.buType.split(',')" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="q.accountType !=null and q.accountType !='' ">
and coa.mgmt_control_category in
<foreach item="item" index="index" collection="q.accountType.split(',')" open="(" separator="," close=")">
#{item}
</foreach>
</if>

3.注意:

.split(’,’)进行切割,注意是英文输入状态的单引号.

@ApiImplicitParams注解的详细使用的更多相关文章

  1. paip.java 注解的详细使用代码

    paip.java 注解的详细使用代码 作者Attilax 艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/att ...

  2. IDEA中的lombok插件安装以及各注解的详细介绍

    IDEA中的lombok插件安装以及各注解的详细介绍 其实对于我们来说, 写好实体类后,直接用快捷方式生成get,set方法,还有 构造方法就行了,但是对于字段比较多的, 如果修改一个属性的话,就要再 ...

  3. Spring MVC 3.0 深入及对注解的详细讲解

    核心原理 1.       用户发送请求给服务器.url:user.do 2.       服务器收到请求.发现Dispatchservlet可以处理.于是调用DispatchServlet. 3.  ...

  4. Spring MVC 3.0 深入及对注解的详细讲解[转载]

    http://blog.csdn.net/jzhf2012/article/details/8463783 核心原理 1.       用户发送请求给服务器.url:user.do 2.       ...

  5. springmvc4 相关注解的详细讲解

    首先我是一个初学springmvc,抱着去加深印象的目的去整理相关springmvc4的相关注解,同时也希望给需要相关查阅的读者带来帮助. 1.@ControllerController控制器是通过服 ...

  6. Spring 注解学习 详细代码示例

    学习Sping注解,编写示例,最终整理成文章.如有错误,请指出. 该文章主要是针对新手的简单使用示例,讲述如何使用该注释,没有过多的原理解析. 已整理的注解请看右侧目录.写的示例代码也会在结尾附出. ...

  7. Java编译期注解处理器详细使用方法

    目录 Java编译期注解处理器 启用注解处理器 遍历语法树 语法树中的源节点 语法树节点的操作 给类增加注解 给类增加import语句 构建一个内部类 使用方法 chainDots方法 总结 Java ...

  8. @RequestParam注解的详细介绍

    @RequestParam (org.springframework.web.bind.annotation.RequestParam)用于将指定的请求参数赋值给方法中的形参. 有三个属性: (1)v ...

  9. SSH全注解-annotation详细配置

    web.xml的配置: <!--Spring的装载器 --> <listener> <listener-class> org.springframework.web ...

  10. swagger2 注解说明 ( @ApiImplicitParams )

    @Api:用在请求的类上,表示对类的说明 tags="说明该类的作用,可以在UI界面上看到的注解" value="该参数没什么意义,在UI界面上也看到,所以不需要配置&q ...

随机推荐

  1. 常量的定义(const和#define)

    定义常量的方法 //均要在调用前(区别全局变量!!) 1.使用#define预处理器 2.使用const关键字 1.#define #define 常量名 常量值 //定义形式,常量名不可以是数字开头 ...

  2. <一>关于进程虚拟地址空间区域内存划分和布局

    C++代码在编译完成后会生产.exe程序(windows平台), .EXE以文件的形式存储在磁盘上,当运行.exe程序的时候 操作系统会将磁盘上的.exe文件加载到内存中,那么在加载到内存中的时候,操 ...

  3. vue实现功能 单选 取消单选 全选 取消全选

    vue实现功能 单选 取消单选 全选 取消全选 代码部分 <template> <div class=""> <h1>全选框</h1> ...

  4. Java云原生崛起微服务框架Quarkus入门实践

    @ 目录 概述 定义 GraalVM简介 为何使用 特性 官方性能 实战 入门示例 步骤 安装GraalVM 创建quarkus工程 Idea导入项目 Idea运行和调试 打包成普通的Jar 打包成依 ...

  5. Linux实战笔记__Centos7上搭建DVWA网站(基于宝塔)

    安装宝塔套件 宝塔官网有远程安装代码https://www.bt.cn/bbs/thread-19376-1-1.html 下载DVWA并上传至/www/wwwroot目录 下载地址: 配置数据库连接 ...

  6. 齐博x1非正常修改后台入口admin.php导致的问题

    如果你不是从后台基础设置修改后台入口admin.php文件名的话,也即强行通过FTP修改admin.php文件的名的话,就会导致网站会运行异常 比如会出现不能上传文件之类的.如下图所示

  7. [Oracle]复习笔记-SQL部分内容

    Oracle笔记--SQL部分 整体框架 语句的执行顺序:from →where →group by→having→select→order by select * from * where * gr ...

  8. Redis 01: 非关系型数据库 + 配置Redis

    数据库应用的发展历程 单机数据库时代:一个应用,一个数据库实例 缓存时代:对某些表中的数据访问频繁,则对这些数据设置缓存(此时数据库中总的数据量不是很大) 水平切分时代:将数据库中的表存放到不同数据库 ...

  9. 使用 nvm 对 node 进行版本管理

    前端项目工程化,基本都依赖于 nodejs, 不同的项目对于 nodejs 的版本会有要求,nvm 就是可以让我们在各个版本之间进行快速切换的工具. Linux 系统 下载解压 查看所有版本 , 选择 ...

  10. 更改DataFrame列顺序

    使用pandas进行数据分析的时候,有时会由于各种需求添加了一些列.可是列的顺序并不能符合自己的期望.这个时候就需要对于列的顺序进行调整. import numpy as np import pand ...