1.页面效果展示
实现效果如下
- 订单管理页面
- 产品管理页面
2.具体实现
2.1 订单管理模块
2.1.1 订单展示页面
点击订单管理,url跳转地址如下所示:
//分页的写法
@RequestMapping("/findAll.do")
@Secured("ROLE_ADMIN")
public ModelAndView findAll(@RequestParam(name = "page", required = true, defaultValue = "1") Integer page, @RequestParam(name = "size", required = true, defaultValue = "4") Integer size) throws Exception {
ModelAndView mv = new ModelAndView();
List<Orders> ordersList = ordersService.findAll(page, size);
//PageInfo就是一个分页Bean
PageInfo pageInfo = new PageInfo(ordersList);
mv.addObject("pageInfo", pageInfo);
mv.setViewName("orders-page-list");
return mv;
}
@Override
public List<Orders> findAll(int page,int size) throws Exception {
//参数PageNum是页码值 参数pageSize代表是每页显示条数
PageHelper.startPage(page,size);//这行代码必须写在真正调用分页的代码之前
return ordersDao.findAll();
}
- dao层
由于页面的数据展示涉及到两张表的内容,分别是orders表和product表,这两张表的关系如下图所示:
因此在查询时需要两张表联合查询:
@Select("select * from orders")
@Results({
@Result(id = true, property = "id", column = "id"),
@Result(property = "orderNum", column = "orderNum"),
@Result(property = "orderTime", column = "orderTime"),
@Result(property = "orderStatus", column = "orderStatus"),
@Result(property = "peopleCount", column = "peopleCount"),
@Result(property = "payType", column = "payType"),
@Result(property = "orderDesc", column = "orderDesc"),
@Result(property = "product", column = "productId", javaType = Product1.class, one = @One(select = "com.GTMStudio.admintelssm.dao.IProductDao.findById"))
})
List<Orders> findAll() throws Exception;
//根据id查询产品
@Select("select * from product where id=#{id}")
public Product1 findById(String id) throws Exception;
2.1.2 订单详情页面
实现效果
在页面上点击详情后的跳转路径如下图所示:
@RequestMapping("/findById.do")
public ModelAndView findById(@RequestParam(name = "id", required = true) String id) throws Exception {
ModelAndView mv = new ModelAndView();
Orders orders = ordersService.findById(id);
mv.addObject("orders", orders);
mv.setViewName("orders-show");
return mv;
}
@Override
public Orders findById(String id) throws Exception {
return ordersDao.findById(id);
}
- dao层
如下图所示,详情页面涉及到了三张表:product表、orders表、travellers表和members表,dao层三表联合查询
上述三张表的关系如下图所示:
dao层代码
@Select("select * from orders where id=#{id}")
@Results({
@Result(id = true, column = "id", property = "id"),
@Result(column = "orderNum", property = "orderNum"),
@Result(column = "orderTime", property = "orderTime"),
@Result(column = "orderStatus", property = "orderStatus"),
@Result(column = "peopleCount", property = "peopleCount"),
@Result(column = "payType", property = "payType"),
@Result(column = "orderDesc", property = "orderDesc"),
@Result(column = "productId", property = "product", one = @One(select = "com.GTMStudio.admintelssm.dao.IProductDao.findById")),
@Result(column = "id", property = "travellers", many = @Many(select = "com.GTMStudio.admintelssm.dao.ITravellerDao.findByOrdersId")),
@Result(column = "memberId", property = "members", one = @One(select = "com.GTMStudio.admintelssm.dao.IMemberDao.findById"))
})
Orders findById(String id);
//根据id查询产品
@Select("select * from product where id=#{id}")
public Product1 findById(String id) throws Exception;
@Select("select * from traveller where id in(select travellerId from order_traveller where orderId=#{ordersId})")
List<Traveller> findByOrdersId(String ordersId) throws Exception;
@Select("select * from members where id=#{id}")
Members findById(String id) throws Exception;