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. BZOJ3932(主席树上二分+差分

    按时间作为主席树的版本,每个版本的主席树都是一个权值线段树. 差分消去时间影响 对于当前时间版本的主席树查询前K大即可. 树上二分时结束后切记判定l==r的状态(易错 l==r叶子节点可能存在多个值( ...

  2. 【BZOJ1833】[ZJOI2010] count 数字计数(数位DP)

    点此看题面 大致题意: 求在给定的两个正整数\(a\)和\(b\)中的所有整数中,\(0\sim9\)各出现了多少次. 数位\(DP\) 很显然,这是一道数位\(DP\)题. 我们可以用前缀和的思想, ...

  3. python_74_pickle反序列化

    import pickle def say(name):#序列化时用完会释放,要想反序列化,要重新写上该函数,否则会出错 print('我的高中', name)#可以和之前的序列化函数不同 f=ope ...

  4. json文件的读取

    在客户端读取后台的json文件,使用jquery的$.getJSON,读取后台文件内容. jQuery中的$.getJSON( )方法函数主要用来从服务器加载json编码的数据,它使用的是GET HT ...

  5. 面向对象编程 -------JavaScrip

    本文摘要:http://www.liaoxuefeng.com/ 一定明白面向对象的两个基本概念: 类:类是对象的类型模板,例如,定义Student类来表示学生,类本身是一种类型,Student表示学 ...

  6. react的redux无状态组件

    Provider功能主要为以下两点: 在原应用组件上包裹一层,使原来整个应用成为Provider的子组件 接收Redux的store作为props,通过context对象传递给子孙组件上的connec ...

  7. PHP namespace、abstract、interface、trait使用介绍

    小菜鸟一枚,一直搞不懂 namespace.abstract.interface.trait 这些关系,就抽出几天时间研究,做个总结,不足之处希望大家指正交流. namespace 命名空间 介绍:顾 ...

  8. LeetCode949-给定数字能组成的最大时间

    问题: 给定一个由 4 位数字组成的数组,返回可以设置的符合 24 小时制的最大时间. 最小的 24 小时制时间是 00:00,而最大的是 23:59.从 00:00 (午夜)开始算起,过得越久,时间 ...

  9. PHP添加扩展模块的方法

    进入源码包对应扩展模块目录下 ##extname 代表扩展模块名 cd /usr/local/src/php-5.5.36/ext/extname 然后执行phpize##phpize是一个shell ...

  10. oop 单例模式