package com.paic.pay.merchant.web;

import com.paic.pay.merchant.entity.MerchantUser;
import com.paic.pay.merchant.exception.Error;
import com.paic.pay.merchant.exception.UserNotFoundException;
import com.paic.pay.merchant.mapper.UserRegisterMapper;
import com.paic.pay.merchant.vo.Pizza;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest;
import java.util.UUID; /**
* Created tangxin pc on 2017/1/17.
*/
@Slf4j
@RestController
@RequestMapping(value = "/v1")
public class RegisterController { @Autowired
private UserRegisterMapper userRegisterMapper; /**
* 商户注册
* @return
*/
@PostMapping(value = "/reg")
public String reg(){
return "reg";
} @PostMapping(value = "/cache")
public void cache(HttpServletRequest request){
long date = System.currentTimeMillis();
String threadIndex = request.getParameter("threadIndex");
String url = request.getRequestURI();
log.info("url:{} date:{} threadIndex:{}",url,date,threadIndex);
} @GetMapping(value = "/uuid")
public String uuid(){
return UUID.randomUUID().toString();
} @GetMapping(value = "/pizza")
public Pizza getPizza(){
Pizza pizza = new Pizza("中国比萨");
return pizza;
} @GetMapping(value = "/getUser")
public MerchantUser getMerchantUser(String userId){
MerchantUser merchantUser = userRegisterMapper.getMerchantUser(userId);
return merchantUser;
} @GetMapping(value = "/student")
public String xml(String time){
log.info("params:{}",time);
return "<?xml version=\"1.0\" encoding=\"UTF-8\"?><student>唐欣</student>";
} @GetMapping(value = "/getUser2")
public ResponseEntity<MerchantUser> getMerchantUser2(String userId){
MerchantUser merchantUser = userRegisterMapper.getMerchantUser(userId);
HttpStatus status = merchantUser!=null ? HttpStatus.OK : HttpStatus.NOT_FOUND;
return new ResponseEntity<>(merchantUser,status);
} @GetMapping(value = "/getUser3")
public ResponseEntity<?> getMerchantUser3(String userId){
MerchantUser merchantUser = userRegisterMapper.getMerchantUser(userId);
if(merchantUser==null){
Error error = new Error(4,"用户["+userId+"]不存在");
return new ResponseEntity<>(error,HttpStatus.NOT_FOUND);
}
return new ResponseEntity<>(merchantUser,HttpStatus.OK);
} /**
* 当查询结果为null时抛出异常 由异常处理器返回代码
* @param userId
* @return 正常返回:{"userId":1000,"userName":张三}
* 异常返回:{"code":4,"message":"用户[16]不存在"}
*/
@GetMapping(value = "/getUser4")
public ResponseEntity<MerchantUser> getMerchantUser4(String userId){
MerchantUser merchantUser = userRegisterMapper.getMerchantUser(userId);
if(merchantUser==null){throw new UserNotFoundException(userId);}
return new ResponseEntity<>(merchantUser,HttpStatus.OK);
} /**
* 异常处理器
* @param e
* @return
*/
@ExceptionHandler(UserNotFoundException.class)
public ResponseEntity<Error> userNotFound(UserNotFoundException e){
String userId = e.getUserId();
Error error = new Error(4,"用户["+userId+"]不存在");
return new ResponseEntity<>(error,HttpStatus.NOT_FOUND);
}
}

Spring4.0实战 rest相关的更多相关文章

  1. 【Spring实战-2】Spring4.0.4整合Hibernate4.3.6

    作者:ssslinppp      源程序下载:http://download.csdn.net/detail/ssslinppp/8751185  1. 摘要 本文主要讲解如何在Spring4.0. ...

  2. [CXF REST标准实战系列] 二、Spring4.0 整合 CXF3.0,实现测试接口(转)

    转自:[CXF REST标准实战系列] 二.Spring4.0 整合 CXF3.0,实现测试接口 文章Points: 1.介绍RESTful架构风格 2.Spring配置CXF 3.三层初设计,实现W ...

  3. [CXF REST标准实战系列] 二、Spring4.0 整合 CXF3.0,实现测试接口

    Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want. 文章Points: 1.介绍RESTful架构 ...

  4. 项目ITP(六) spring4.0 整合 Quartz 实现动态任务调度

    前言 系列文章:[传送门] 项目需求: http://www.cnblogs.com/Alandre/p/3733249.html 上一博客写的是基本调度,后来这只能用于,像每天定个时间 进行数据库备 ...

  5. 项目ITP(五) spring4.0 整合 Quartz 实现任务调度

    前言 系列文章:[传送门] 项目需求: 二维码推送到一体机上,给学生签到扫描用.然后需要的是 上课前20分钟 ,幸好在帮带我的学长做 p2p 的时候,接触过.自然 quartz 是首选.所以我就配置了 ...

  6. Spring4.0编程式定时任务配置

    看过很多定时调度的配置,大多使用XML配置,觉得比较麻烦,也比较老套.这里介绍一种基于spring4.0注解编程式配置定时任务,简单清晰,使用方便.. 至于引入spring相关jar这里不多说,直接切 ...

  7. Spring4.0系列9-websocket简单应用

    http://wiselyman.iteye.com/blog/2003336 ******************************************* Spring4.0系列1-新特性 ...

  8. vue.js2.0实战(1):搭建开发环境及构建项目

    Vue.js学习系列: vue.js2.0实战(1):搭建开发环境及构建项目 https://my.oschina.net/brillantzhao/blog/1541638 vue.js2.0实战( ...

  9. [转]Struts2.3.16.1+Hibernate4.3.4+Spring4.0.2 框架整合

    原文地址:http://blog.csdn.net/ycb1689/article/details/22928519 最新版Struts2+Hibernate+Spring整合 目前为止三大框架最新版 ...

随机推荐

  1. js 中的 Math.ceil() Math.floor Math.round()

    alert(Math.ceil(25.9)); alert(Math.ceil(25.5)); alert(Math.ceil(25.1)); alert(Math.round(25.9)); ale ...

  2. POJ 2010 Moo University - Financial Aid(堆维护滑窗kth,二分)

    按照score排序,贪心,从左到右用堆维护并且记录前面的最小N/2个花费之和. 然后从右向左枚举中位数,维护N/2个数之和加上并判断是否满足条件.(stl的队列没有clear(),只能一个一个pop. ...

  3. mkfs.xfs 命令找不到的解决方法

    对硬盘进行格式化: # mkfs.xfs /dev/sdb1 系统显示: mkfs.xfs error: command not found. 可能是系统不完全安装 运行 which mkfs  查看 ...

  4. opencv与灰度图

    https://blog.csdn.net/qq_32211827/article/details/56854985 首先,灰度图可以是一个通道存成图片,也可以是3个通道存成图片,3个通道存成图片,其 ...

  5. mongo 4.0以下版本 类型转换

    .文档格式 "Values" : [ { "key" : "姓名", "value" : "jenny&quo ...

  6. Drupal常用的模块

    CCK (Content Construction Kit ) : 添加字段模块 Views:生成列表 Tinymce:(Wysiwyg Editor) 常用的编辑器之一 Ajax Form Buil ...

  7. React后台管理系统-商品列表搜索框listSearch组件

    1.商品列表搜索框 2.搜索框页面的结构为 <div className="row search-wrap">               <div classN ...

  8. linux的一些指令

    linux的一些指令 █查看指令參數man 指令,如:man ls ,按q鍵退出 █查看文件列表ls -lht 按時間排序ll 列表ls 列表 目錄cd 目錄名稱 進入路徑cd .. 返回上層路徑 █ ...

  9. 洛谷P1111修复公路并查集改

    看了他们的题解感觉很震惊,为什么要用kruskal,这题要用到最小生成树吗??? 38行短短的程序就可以了,我觉得学习不是一种套用,套自己学的,而且题解很大一部分都是kruskal. 个人认为自己的程 ...

  10. 工具之UltraEdit之正则表达式