一、@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. Docker/K8s 解决容器内时区不一致方案

    转载自:https://cloud.tencent.com/developer/article/1433215 1.背景介绍 我们知道,使用 docker 容器启动服务后,如果使用默认 Centos ...

  2. vue3基础

    什么是CDN? 内容分发网络--通过相互链接的网络系统,利用最靠近用户的服务器,更快更可靠的发送给用户. vue的cdn引入 method中的函数为什么不能用this? this的主要使用是来获取da ...

  3. 报错 Invalid options in vue.config.js: "baseUrl" is not allowed 问题解决

    报错 Invalid options in vue.config.js: "baseUrl" is not allowed vue3.0版本中 执行 npm run build会出 ...

  4. 非swoole的方式实现简单的异步(nginx模式下)

    set_time_limit(0);echo '任务开始'.time();/*即时打印*/register_shutdown_function([$this, "test"]);/ ...

  5. Java注解(2):实现自己的ORM

    搞过Java的码农都知道,在J2EE开发中一个(确切地说,应该是一类)很重要的框架,那就是ORM(Object Relational Mapping,对象关系映射).它把Java中的类和数据库中的表关 ...

  6. 聊一聊被 .NET程序员 遗忘的 COM 组件

    一:背景 1.讲故事 最近遇到了好几起和 COM 相关的Dump,由于对 COM 整体运作不是很了解,所以分析此类dump还是比较头疼的,比如下面这个经典的 COM 调用栈. 0:044> ~~ ...

  7. 齐博x1直播神器聊天小插件

    下载地址如下:https://down.php168.com/livemsg.rar 本插件由论坛网友笨熊提供 非常感谢他给大家提供那么一个非常好用的直播必备神器. 如下图所示,大家在直播的时候,这个 ...

  8. flutter系列之:flutter中可以建索引的栈布局IndexedStack

    目录 简介 IndexedStack简介 IndexedStack的使用 总结 简介 之前我们介绍了一个flutter的栈结构的layout组件叫做Stack,通过Stack我们可以将一些widget ...

  9. 4.pygame快速入门-事件监听

    事件event:游戏启动后,用户针对游戏的所有操作 监听:在游戏循环中,判断用户的具体操作 pygame中通过pygame.event.get()可以获得当前用户所做动作的事件列表   事件监听 wh ...

  10. 【React】学习笔记(二)——组件的生命周期、React脚手架使用

    原教程视频:ttps://www.bilibili.com/video/BV1wy4y1D7JT?p=2&spm_id_from=pageDriver 目录 一.组件的生命周期 1.1.生命周 ...