前台系统和后台系统的功能整合
目录
2.ProductService按照定义的后台接口文件进行发送请求代码
3.2ProductService添加client访问后台商品数据
4.1ProductController和页面交互逻辑不发生变动
一.首页的分页查询
前台已经完成了/后台也已经完成了
同时启动前台和后台,首页当中的分页查询效果就出现了;
1.把前台、后台系统启动查看效果
注意:多个系统的调用,测试绝对不能在启动多个系统后,从后端系统断点,会导致http请求超时,报错!!!
二.单个商品根据id查询
1前台系统的controller和页面交互逻辑不变
//商品根据id查询对象数据
@RequestMapping(value="product/findProductById/{productId}"
,method={RequestMethod.GET,RequestMethod.POST})
public String queryById(@PathVariable String productId
,Model model){
//控制层无需处理数据调用,业务逻辑
Product product=productService.queryById(productId);
//model携带数据
model.addAttribute("product", product);
return "product_info";
}
2.ProductService按照定义的后台接口文件进行发送请求代码
public Product queryById(String productId) {
//url地址根据接口文件完成
String url="http://product.easymall.com/product/queryById/"+
productId;
try{
String productJson = client.doGet(url);
return MapperUtils.MP.readValue(productJson, Product.class);
}catch(Exception e){
e.printStackTrace();
return null;
}
}
3.测试结果
三.商品后台页面分页查询逻辑
3.1ProductController无需发生任何变动
@RequestMapping(value="product/query",method=RequestMethod.GET)
@ResponseBody
public EasyUIResult queryByPageMange(Integer page,Integer rows){
//调用业务层封装查询结果result,包含总条数,包含分页的pList
EasyUIResult result=
productService.queryByPageManage(page,rows);
return result;
}
3.2ProductService添加client访问后台商品数据
public EasyUIResult queryByPageManage(Integer page, Integer rows) {
//url
String url="http://product.easymall.com/product/manage/queryByPage?"
+ "page="+page+"&rows="+rows;
try{
String easyUIResultJson = client.doGet(url);
return MapperUtils.MP.readValue(easyUIResultJson
, EasyUIResult.class);
}catch(Exception e){
e.printStackTrace();
return null;
}
}
3.测试结果
四.商品的新增功能
4.1ProductController和页面交互逻辑不发生变动
//商品的新增功能
@RequestMapping(value="product/save",method=RequestMethod.POST)
@ResponseBody
public SysResult productSave(Product product){
//调用业务层新增数据
try{
productService.saveProduct(product);
//返回status==200的sysresult
return SysResult.build(200, null, null);
}catch(Exception e){
//返回一个status==201
return SysResult.build(201, e.getMessage(), null);
}
}
4.2ProductService调用client访问后台
//商品的新增功能
public void saveProduct(Product product) {
String url="http://product.easymall.com/product/saveProduct";
//client中doPost使用逻辑
/* <"productName":"haha">
<"productPrice":"300">
<"productCategory":"手机">*/
//将map结构放到请求体 productName=哈哈&productPrice=300&productCategory=手机
try{
//参数map,属性名称封装key值
Map<String, Object> param=new HashMap<String,Object>();
param.put("productName", product.getProductName());
param.put("productPrice", product.getProductPrice());
param.put("productCategory", product.getProductCategory());
param.put("productDescription", product.getProductDescription());
param.put("productNum", product.getProductNum());
param.put("productImgurl", product.getProductImgurl());
client.doPost(url, param);
}catch(Exception e){
e.printStackTrace();
}
}
3.测试结果
五.商品数据的修改
5.1ProductController
//商品数据的修改
@RequestMapping(value="product/update",method=RequestMethod.POST)
@ResponseBody
public SysResult updateProductById(Product product){
try{
//业务层调用执行更新商品数据逻辑
productService.updateProductById(product);
//执行成功返回status=200的sysResult对象
return SysResult.build(200, "ok", null);
}catch(Exception e){
e.printStackTrace();
return SysResult.build(201, e.getMessage(), null);
}
}
5.2ProductService
//商品数据的修改
public void updateProductById(Product product) {
String url="http://product.easymall.com/product/updateProduct";
try{
//参数map,属性名称封装key值
Map<String, Object> param=new HashMap<String,Object>();
param.put("productName", product.getProductName());
param.put("productPrice", product.getProductPrice());
param.put("productCategory", product.getProductCategory());
param.put("productDescription", product.getProductDescription());
param.put("productNum", product.getProductNum());
param.put("productImgurl", product.getProductImgurl());
param.put("productId", product.getProductId());
client.doPost(url, param);
}catch(Exception e){
e.printStackTrace();
}
}
3.测试结果