一、@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. ELK 性能优化实践 ---总结篇

    版本及硬件配置 JDK:JDK1.8_171-b11 (64 位) ES集群:由3台16核32G的虚拟机部署 ES 集群,每个节点分配 20 G 堆内存 ELK版本:6.3.0 垃圾回收器:ES 默认 ...

  2. while循环控制

    基本语法 例(输出五句hello): int i = 1; //循环变量初始化 while(i<=5){ //循环条件 printf("\n hello!"); //循环语句 ...

  3. 在图片不被裁剪时opencv绕图片中任意点旋转任意角度

    opencv绕图片中任意角度旋转任意角度   最近在做项目需要把把图片绕图片中任意点旋转任意角度,考虑到自己旋转需要编写插值算法,所以想到了用opencv,但是网上都是围绕图片中点旋转任意角度的,都是 ...

  4. count(*), count(1), count(列名)的区别

    1.从结果上来看 count(1)和count(*)之间没有区别,因为count(*)count(1)都不会去过滤空值,但count(列名)就有区别了,因为count(列名)会去过滤空值. 2.从执行 ...

  5. 洛谷P2367 语文成绩(差分)

    标准的差分应用题,不要想的太复杂,写成了线段树. 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=5e6+10 ...

  6. Spring bean装配流程和三级缓存

    马士兵 源码方法论 不要忽略源码中的注释 先梳理脉络,再深入细节 大胆猜测.小心求证 见名知意 hold on 对源码有兴趣的都是变态 为了钱! Spring IoC Spring容器帮助管理对象,不 ...

  7. linux 安装/卸载go环境

    linux 安装/卸载go环境(基于centos8) 安装 下载go的安装包 Golang官网下载地址:https://golang.org/dl/ 将安装包解压放到到usr/local中,并解压 c ...

  8. HTML+CSS基础知识(4)简单的广告界面

    文章目录 1.网页实例 1.1 代码 1.2 测试效果 1.网页实例 1.1 代码 css样式 /* 清除页面样式 */ *{ margin:0; padding: 0; } /* 统一页面的样式 * ...

  9. 表单快速启用城市地区功能 齐博x1齐博x2齐博x3齐博x4齐博x5齐博x6齐博x7齐博x8齐博x9齐博x10

    比如分类系统\application\fenlei\config.php 修改这个文件,里边加入参数 'use_area'=>true, 那么会员中心与后台的,修改发布页面,都会自动加上城市地区 ...

  10. 部署RAID 10

    额外添加4块硬盘,用于搭建RAID 10 检查linux的磁盘 [root@local-pyyu ~]# fdisk -l |grep '/dev/sd[a-z]' 磁盘 /dev/sda:21.5 ...