Spring的controller接受Date类型数据,接受枚举类型数据
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);
}
原创:做时间的朋友
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示