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. 【CF1000C】Covered Points Count(离散化+差分)

    点此看题面 大致题意: 给出\(n\)条线段,分别求有多少点被覆盖\(1\)次.\(2\)次...\(n\)次. 正常的算法 好吧,这道题目确实有个很简单的贪心做法(只可惜我做的时候没有想到,结果想了 ...

  2. 解决linux系统CentOS下调整home和根分区大小《转》

    转自http://www.php114.net/2013/1019/637.html 目标:将VolGroup-lv_home缩小到20G,并将剩余的空间添加给VolGroup-lv_root   1 ...

  3. cin对象的一些常用方法使用总结

    >> 最初定义的是右移,当但是出现在 cin >>中的时候这个符号被重载了,变成了一个流操作,在用户通过键盘输入信息的时候,所有内容都会先直接存储在一个叫输入缓冲区的的地方,c ...

  4. IDEA搭建Maven 的聚合项目

    今天突然想把自己学习在eclipse上的maven聚合项目搭建到IDEA上,结果IDEA有太多的配置步骤,导致失败了很多次,终于在网上找到了一篇博客 https://blog.csdn.net/for ...

  5. AngularJS 应用

    AngularJS模块(Module)定义了AngularJS的应用. AngularJS控制器(Controller)用于控制AngularJS应用. ng-app指令定义了应用,ng-contro ...

  6. XAMPP安装过程中,出现的问题

    这次运行一个简单的前端(html+css+js+ajax)+php后端项目,运行XAMPP的时候,出现两个问题: phpmyadmin运行不起来,一直报1544错误 请求本地图片及php文件报403错 ...

  7. 关于union的一些问题

    创建一个测试数据表 CREATE TABLE `temp_table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT ...

  8. centos7安装mongodb3.6

    1. 安装一下centos(6.5) + 虚拟机,在VMware中安装mongodb 2. 下载mongodb最新版本:mongodb-linux-x86_64-3.6.4.tgz,传到centos ...

  9. Python_三级目录

    程序要求: 1. 使用字典存储 1. 可以一层一层的进入到所有层2. 可以在每层返回上一层3. 可以在任意层退出 三级目录写了两个版本,第一个版本是刚看完字典写出来的,代码很多冗余,很多重复. men ...

  10. Linux 服务器用户权限管理改造方案与实施项目

    Linux 服务器用户权限管理改造方案与实施项目 在了解公司业务流程后,提出权限整改方案改进公司超级权限root泛滥的现状. 我首先撰写方案后,给boss看,取得boss的支持后,召集大家开会讨论. ...