1. Controller接收Date类型的数据

核心使用@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") 来将传递过来的时间字符串转化为Date类型

@RestController
@RequestMapping("res")
public class BaseFlowController extends BaseController { private static final Logger log = LoggerFactory.getLogger(BaseFlowController.class); @Resource
protected FamaOrderMapper orderMapper; @Resource
private FamaUserMapper userMapper; @GetMapping("/query-all")
@ApiException(QUERY_FLOW_FAILED)
public Result query(@RequestParam(value = "beginTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date start,
@RequestParam(value = "endTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date end,
@RequestParam(value = "processInstanceId", required = false) Integer processInstanceId,
@RequestParam(value = "state", required = false) ApproveStatus state,
@RequestParam(value = "applyType", required = false) ApplyType applyType) {
Map<String, Object> data = Maps.newHashMap();
try {
LoginContext context = LoginContext.getLoginContext();
String user = context == null ? "xxxxxx" : context.getPin();
QueryWrapper<FamaUser> queryWrapper = Wrappers.query();
queryWrapper.eq("erp",user);
queryWrapper.eq("role_type", RoleType.SYS_ADMIN);
FamaUser admin = userMapper.selectOne(queryWrapper);
if (Optional.ofNullable(admin).isPresent()) {
user = "";
}
List<FamaOrder> orders = orderMapper.selectByParam(user, start, end, applyType, processInstanceId, state);
List<QueryResult> queryResults = ModuleHelper.mapAll(orders, QueryResult.class);
queryResults.sort((o1, o2) -> o2.getCreateTime().compareTo(o1.getCreateTime()));
data.put(Constants.DATA_LIST, queryResults);
data.put(Constants.STATUS, SUCCESS);
data.put(Constants.MSG, SUCCESS.getMsg());
} catch (Exception e) {
log.warn("create xbp order failed", e);
data.put(Constants.STATUS, QUERY_FLOW_FAILED);
data.put(Constants.MSG, QUERY_FLOW_FAILED.getMsg());
}
return returnDataList(data);
}
}

2.Controller 接收枚举类型数据

EnvType env,直接进行映射,不需要再别的操作

@GetMapping(value = "/query-details-instance-types-cost-times")
public Result queryDetailsInstanceTypesCostTimes(
@RequestParam("env") EnvType env,
@RequestParam("instanceId") String instanceId,
@RequestParam("regionId") String regionId) {
Map<String, Object> data;
try {
RdsContext context = RdsContext.builder().setEnvType(env).setRegionId(regionId).setInstanceId(instanceId).build();
RdsRegionGetter getter = RdsRegionGetter.newInstance(context);
data = getter.queryDetailsInstanceTypesCostTimes();
} catch (Exception e) {
logger.error("query-details-instance-types", e);
data = Maps.newHashMap();
}
return returnDataList(data);
}

Spring的controller接受Date类型数据,接受枚举类型数据的更多相关文章

  1. 2基本类型数组和枚举类型——重拾Java

    2.1 标识符和关键字 2.1.1标识符 标识符:用来标志类名.变量名.方法名.类型名.数组名.文件名的有效字符序列称为标识符.简单地说,标识符就是一个名字. Java关于标识符的语法规则 标识符由字 ...

  2. Go 自定义类型来实现枚举类型限制

    今天使用iota 发现一个问题.定义别名类型的时候 调用函数报错.废话不多说,我们看一段示例(关于iota的用法这里就不介绍了,手册介绍滴比较详细): package main import &quo ...

  3. DELPHI中枚举类型数据的介绍和使用方法

    在看delphi程序的时候看到aa=(a,b,c,d);这样的东西,还以为是数组,同事说是函数,呵呵,当然这两个都不屑一击,原来这样式子是在声明并付值一个枚举类型的数据.下边写下来DELPHI中枚举类 ...

  4. C#语言基础——结构体和枚举类型

    结构体和枚举类型 一.结构体(struct) 结构类型是用户自己定义的一种类型,它是由其他类型组合而成的,可包含构造函数.常数.字段.方法.属性.索引器.运算符.事件和嵌套类型的值类型.结构在几个重要 ...

  5. Delphi的枚举类型

    参考:http://blog.csdn.net/kissdeath/article/details/2060573 Delphi程序不仅可以用于数值处理,还更广泛的用于处理非数值的数据.例如:性别.月 ...

  6. 【转】掌握java枚举类型(enum type)

    原文网址:http://iaiai.iteye.com/blog/1843553 1   背景 在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量.之前我们通常利用 ...

  7. Java的枚举类型使用方法详解

    1.背景在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量.之前我们通常利用public final static 方法定义的代码如下,分别用1 表示春天,2表示夏 ...

  8. 0521Day03命名规范 Data函数 可变长参数 枚举类型

    [重点] 命名规范 枚举类型 Date函数 可变长参数 pirnt,println 命名规范 1. 驼峰命名法:main,username,setUsername 用于变量.方法的命名 2. Pasc ...

  9. golang枚举类型 - iota用法拾遗

    在c#.java等高级语言中,经常会用到枚举类型来表示状态等.在golang中并没有枚举类型,如何实现枚举呢?首先从枚举的概念入手. 1.枚举类型定义 从百度百科查询解释如下:http://baike ...

  10. java 枚举类型知识点记录

    在日常开发中,我们常用接口装常量或者在类里面写静态常量,java1.5以后加入了枚举类型enum.枚举类型是由一组固定的常量组成的类型.枚举本质是int值.因为枚举类型没有可以访问的构造器,所以枚举类 ...

随机推荐

  1. 基于vite2+electron12后台管理模板|Electron后台框架系统

    前一溜时间有给大家分享一个 electron+vite跨端短视频 项目.这次分享的是vite2.x和electron实现跨平台后台框架,支持国际化多语言配置.导航菜单+树形菜单两种路由菜单模式.展开/ ...

  2. 【译】Android API 规范

    [译]Android API 规范 译者按: 修改R代码遇到Lint tool的报错,搜到了这篇文档,aosp仓库地址:Android API Guidelines. 58e9b5f Project ...

  3. Thinkphp5之laypage分页插件的实现

    //一下是laypage所用到的 js <script type="text/javascript" src="__STATIC__/lib/laypage/1.2 ...

  4. Windows PE变形练手2-开发一套自己的PE嵌入模板

    PE嵌入模板 编写一段代码,生成一个已经处理过重定位信息,同时所有的内容都在代码段里,并且没有导入表的PE程序,把这个程序嵌入到其他PE的相关位置,能够独立的运行,接下来是整理了2个模板,一个是Hel ...

  5. Day003 位运算

    位运算 & 按位与,全1才为1,否则为0 | 按位或,全0才为0,否则为1 ^ 按位异或,相同则为0,不通则为1 ~按位取反 <<左移,相当于*2 >>右移,相当于/2 ...

  6. 【前端】vue2.x 配合 bootstrapTable 动态添加元素和绑定点击事件,事件无效 解决

    背景: 使用bootstrap-table 表格插件时,每一行的最后一班会加操作按钮列.如果不加入vue的话,使用插件自己的列属性formatter:function(value, row, inde ...

  7. php基础-php中使用变量

  8. Base64文件上传(Use C#)

    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,它是一种基于64个可打印字符来表示二进制数据的方法. 使用base64进行文件上传的具体流程是:前台使用js将文件转换为base64格 ...

  9. (转)elasticsearch6.0版本安装head插件

    1.1 前言 不知道是我电脑问题还是最近的开源软件都比较**,mysql和elasticsearch新版本变动都比较大. elasticsearch6.0貌似已经不支持命令行安装head插件了,反正我 ...

  10. Django(21)migrate报错的解决方案

    前言 在讲解如何解决migrate报错原因前,我们先要了解migrate做了什么事情,migrate:将新生成的迁移脚本.映射到数据库中.创建新的表或者修改表的结构. 问题1:migrate怎么判断哪 ...