系列文章:
1、环境搭建及测试- - -附免费视频教程
2、Logback配置与使用
3、店铺注册功能模块(一)
4、店铺注册功能模块(二)
5、店铺编辑和列表修改
6、商品类别模块
7、商品模块
8、前端页面模块
附上github地址:https://github.com/tyronczt/imooc-o2o
先上效果图:
前端页面模块主要分四个小模块:
- 首页的轮播图展示
- 店铺类别展示(一级展示在首页,二级展示在店铺详情页)
- 店铺列表和详情展示
- 商品列表和详情展示
首页轮播图
展示之前首先需要后台添加轮播图所需图片,基于开发进度考虑,图片添加暂时在test层完成:HeadLineDaoTest.java,如果该项目有实际需求,将会新增代码通过页面实现对轮播图的增删查改。
后端功能实现:HeadLineDao.xml ----> HeadLineDao.java ----> HeadLineService.java ----> MainPageController.java
前端页面展示:front/index.html配合front/index.js、front/index.css
店铺类别展示
店铺类别展示分首页的一级店铺类别,和店铺详情的二级店铺类别,展示形式不同,但是实现方式是一样的。
后端功能实现:ShopCategoryDao.xml ----> ShopCategoryDao.java ----> ShopCategoryService.java ----> MainPageController.java和ShopDetailController.java
店铺列表和详情展示
根据查询条件(店铺名(模糊查询)、区域信息、商铺状态、商铺类别),查询店铺列表,点击店铺查询店铺详情。
后端实现:ShopDao.xml ----> ShopDao.java ----> ShopService.java ----> ShopListController.java 和 ShopDetailController.java
商品列表和详情展示
店铺详情中展示商品列表,可根据条件查询商品,点击商品显示商品详情。
后端实现:ProductDao.xml ----> ProductDao.java ----> ProductService.java ----> ProductDetailController.java
改进
将参数返回值使用枚举类型
例如: ShopListController.java的125、126行
modelMap.put("success", false);
modelMap.put("errMsg", OperationStatusEnum.PAGIN_EMPTY.getStateInfo());
个人理由:
- 将相同返回信息用枚举类显示,便于管理,防止不同一些提示的信息不统一;
- 考虑过使用常量返回,但是鉴于service层中返回参数带有枚举参数,所以暂时都使用了枚举类。
在《阿里巴巴JAVA开发手册》中有类似的规则:
【强制】二方库里可以定义枚举类型,参数可以使用枚举类型,但是接口返回值不允许使用枚举类型或者包含枚举类型的POJO对象。
这里所说的环境是二方库,即公司内部其他项目提供的依赖,之所以不用枚举类是由于升级原因,导致双方的枚举类不尽相同,在接口解析,类反序列化时出现异常。(引自孤尽的解答)
使用阿里巴巴的开发规范
插件安装参考:https://github.com/alibaba/p3c/blob/master/eclipse-plugin/README_cn.md