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. JQUERY操作JSON数组添加新的属性和值

    语法: var data = {}; data["Order"] =order; data["Sort"] = sort; 但是需要注意的是,如果data后面还 ...

  2. javaweb基础(33)_jdbc的crud操作

    一.statement对象介绍 Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可. Statement对象的exe ...

  3. java编程基础——栈压入和弹出序列

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压 ...

  4. 关于JavaScript中的事件代理(例子:ul中无数的li上添加点击事件)

    面试题:一个ul中有一千个li,如何给这一千个li绑定一个鼠标点击事件,当鼠标点击时alert出这个li的内容和li的位置坐标xy. 看到这个题目,我们一般首先想到的思路是,for循环,遍历1000次 ...

  5. react的redux中间件

    redux 的中间件(对dispatch功能的拦截和增强,一般不用自己写,有插件) dispath是一个方法,可以自行中间拦截更改: store.dispatch = function(action) ...

  6. SpringMVC解决前台传入的数组或集合类型数据

    1前台处理如下: $.ajax({ url:"saveMapInfo", type:"POST", dataType:"json", con ...

  7. javascript的基本类型和引用类型

    一.基本类型和引用类型 基本的数据类型有5个:undefined,boolean,number,string,null ? 1 2 3 4 5 typeof null; //"object& ...

  8. Python 正则表达式 search vs match

    search()和match()函数都是正则表达式中的匹配函数,二者有何区别呢? 1.match()从string的开始位置进行正则匹配,即从0位置开始匹配,若匹配上则返回一个match对象,否则返回 ...

  9. phpstrom怎样显示类的方法或函数列表

    phpstorm是能显示类的函数或方法列表的. 打开phpstorm,鼠标放到编辑器的右下角(矩形加一个下划线,跟电视机的图标差不多),不用点击就能显示出来一个弹窗: 让后点击Structure,就出 ...

  10. JZOJ 5196. 【NOIP2017提高组模拟7.3】B

    5196. [NOIP2017提高组模拟7.3]B Time Limits: 1000 ms  Memory Limits: 262144 KB  Detailed Limits   Goto Pro ...