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. win10安装mac系统

    https://baijiahao.baidu.com/s?id=1587241720383991895&wfr=spider&for=pc https://mp.weixin.qq. ...

  2. 前台使用load一个集合后台接受的方法

    前台: var imageCaseList = []; }; imageCaseList.push(data); $('#showData').load(url, { querys: imageCas ...

  3. 5分钟了解Java 12 八大新特性

    Java 12 终于发布了,我们一起来看一看 Java 12 中的新特性.通过本文可以在5分钟内快速了解 Java 12 新特性. 1 Switch 表达式 使用Java 12,switch不仅可以作 ...

  4. 小弟在研究CUDA时出现一个问题,求解

    这是<GPU高性能编程CUDA中文实战>中的例子,第七章,热传导模拟,但是出现下面的问题,求牛人解读.小弟跪谢... 主要问题就是关键字变白. 但是添加需要的头文件后一些系统自带的关键字也 ...

  5. CUDA:Supercomputing for the Masses (用于大量数据的超级计算)-第三节

    原文链接 第三节:错误处理和全局内存性能局限 恭喜!通过对CUDA(Compute Unified DeviceArchitecture,即计算统一设备架构的首字母缩写)系列文章第一节和第二节,您现在 ...

  6. ES6 Proxy拦截器详解

    Proxy 拦截器 如有错误,麻烦指正,共同学习 Proxy的原意是"拦截",可以理解为对目标对象的访问和操作之前进行一次拦截.提供了这种机制,所以可以对目标对象进行修改和过滤的操 ...

  7. HTML <input> 标签如何屏蔽浏览器的自动填写?

    autocomplete = "off",实测无效. <input type="text" autocomplete = "off"/ ...

  8. Linux更改文件权限(一)

    更改文件权限(一)============================== (参考于千锋教育教学笔记) 设置权限 1.更改文件的属主.属组chown (change owner)[root@ami ...

  9. 使用Navicat连接阿里云ECS服务器上的MySQL数据库

    一.首先要mysql授权 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的mysql数据库密码' WITH GR ...

  10. 【CSS】非常简单的css实现div悬浮页面底部

    <div id="demo_div"></div> <style> #demo_div{ left:; position: fixed; bot ...