从b站学习springcloud项目,现在进行总结,该总结除去了视频中出现的小错误,对有些易错的地方进行了提醒
b站链接:https://www.bilibili.com/video/av55629580?p=1
资料链接:
https://pan.baidu.com/s/1o0Aju3IydKA15Vo1pP4z5w
提取码: 21ru
上一节链接:
https://blog.csdn.net/qq_40893824/article/details/103641158
下一节链接:
https://blog.csdn.net/qq_40893824/article/details/103644807
下面的内容总结:
order/entity新建OrderVO→order/repository/OrderRepository修改添加→order/OrderHandler修改添加→检查
order/OrderHandler修改删除→检查→client/index.html 和 client/order.html修改→client/entity的OrderVO→client/entity/Order添加→client/feign/OrderFeign→order/OrderRepository修改→client/OrderHandler修改→测试
实现细节:
1.在order/entity新建实体类OrderVO,加入代码:
package com.southwind.entity;
import lombok.Data;
import java.util.List;
@Data
public class OrderVO {
private int code;
private String msg;
private int count;
private List<Order> data;
}
2.在order/repository/OrderRepository接口中添加代码 public void count();修改findAll为:
public List<Order> findAllByUid(int index, int limit, int uid);
public int countByUid(int uid);
3.在order/mapping/OrderRepository.xml中修改、添加代码:
param1,param2,param3是指传过来的第1、2、3参数
<select id="findAllByUid" resultMap="orderMap">
select id,mid,date,state from t_order where uid = #{param3} limit #{param1},#{param2}
</select>
<select id="countByUid" parameterType="int" resultType="int">
select count(*) from t_order where uid=#{id}
</select>
4.在order/OrderHandler中修改findAll代码 和 添加 countByUid代码:
@GetMapping("/findAllByUid/{index}/{limit}/{uid}")
public List<Order> findAllByUid(@PathVariable("index")int index, @PathVariable("limit")int limit,@PathVariable("uid")int uid){
return orderRepository.findAllByUid(index, limit, uid);
}
@GetMapping("/countByUid/{uid}")
public int count(@PathVariable("uid")int uid){
return orderRepository.countByUid(uid);
}
检查:重启order
5. 进入 http://localhost:8010/order/findAllByUid/0/10/1
进入 http://localhost:8010/order/findAllByUid/0/10/2
6. 进入 http://localhost:8010/order/countByUid/1
说明1下单数为12
进入 http://localhost:8010/order/countByUid/2
说明2下单数为2
先来来实现网页查询功能:
1.在order/OrderHandler中修改findByUid,
类型List< Order> 改为 OrderVO:
@GetMapping("/findAllByUid/{index}/{limit}/{uid}")
public OrderVO findAllByUid(@PathVariable("index")int index, @PathVariable("limit")int limit, @PathVariable("uid")int uid){
OrderVO orderVO = new OrderVO();
orderVO.setMsg("");
orderVO.setCount(orderRepository.countByUid(uid));
orderVO.setData(orderRepository.findAllByUid(index, limit, uid));
return orderVO;
}
再删除countByUid部分的代码
2.检查一下 进入 http://localhost:8010/order/findAllByUid/0/10/1
3.在client/index.html 和 client/order.html 中第13行
<a href="/account/redirect/order"改为<a href="/menu/redirect/order"
4.将order/entity中OrderVO复制至client/entity中
在client/entity/Order中添加private long id;
5.在client/feign/OrderFeign中添加代码:
@GetMapping("/order/findAllByUid/{index}/{limit}/{uid}")
public OrderVO findAllByUid(@PathVariable("index")int index, @PathVariable("limit")int limit, @PathVariable("uid")long uid);
6.在order/OrderRepository中 findAllByUid 和 countByUid 的uid改为long类型
order/OrderHandler中uid同样改为long类型
order/mapping/OrderRepository.xml中parameterType="int"改为parameterType=“long”
7.在client/OrderHandler中添加代码:
注意@ResponseBody不可省略!
@GetMapping("/findAllByUid")
@ResponseBody
public OrderVO findAllByUid(@RequestParam("page")int page, @RequestParam("limit")int limit, HttpSession session){
User user = (User) session.getAttribute("user");
int index = (page - 1)*limit;
return orderFeign.findAllByUid(index, limit, user.getId());
}
测试:
8. 进入http://localhost:8030/login.html 登录zhangsan后:
点击张三后:
再点击首页:
9.在client/controller/OrderHandler的save部分return “index”;改为return “order”;
重新 进入http://localhost:8030/login.html 登录zhangsan后:选择最后一个菜订购,页面就跳转到用户张三的订单记录页面:
下单成功,记录添加成功!
上一节链接:
https://blog.csdn.net/qq_40893824/article/details/103641158
下一节链接:
https://blog.csdn.net/qq_40893824/article/details/103644807