【实战】6-1 分类管理模块

来源:互联网 发布:程序员首先学什么 编辑:程序博客网 时间:2024/06/06 04:18

前言

跟用户模块一样,也是先给出这个模块的一些概况,主要是接口设计,定义好输入与返回值,然后在代码中按照相关定义进行操作。

功能介绍

主要会有以下几个功能:

  1. 获取节点
  2. 增加节点
  3. 修改名字
  4. 获取分类ID
  5. 递归子节点ID

学习目标

1、如何设计及封装无线层级的树状数据结构
这个还是要通过合理的DB设计,所以之前在数据表设计时每个类别都有一个父类别ID就是这个用的
2、递归算法的设计思想
这个学过算法的小伙伴都会了解的哈,这里看看老师有没有什么在生产实践中比较好的写法规范
3、如何处理复杂对象的排重
4、重写hashcode和equals的注意事项
这个不少面试都会有问的啊,重写equals就要重写hashcode,保证相同的对象hashcode也相同

数据表设计

ok,这个也在前面的章节讲到过了,大家自行回想就行,主要就是注意到设计了parent_id这一个字段,为的是可以设计出无限层级的分类表。sort_order是为了以后排序留的一个拓展。

接口设计

这里大概就是4个接口,没有用户模块那么多,这里把定义好的接口展示给大家。

1、获取品类子节点(平级)
/manage/category/get_category.do
/manage表示后台管理的,这个接口获取某一个类别的下一个级别的全部类别,注意只往下找一级,不会全部找出来

request    categoryId(default=0)通过SpringMVC的requestparam进行设置默认值response    success    {        "status": 0,        "data":{            {                "id":2,                "parentId":1,                "name":"手机",                "status":true,                "sortOrder":3,                "createTime":1479622913000,                "updateTime":1479622913000            },            {                "id":4,                "parentId":1,                "name":"移动座机",                "status":true,                "sortOrder":5,                "createTime":1480059935000,                "updateTime":1480059935000            }        }    }    fail    {        "status": 10,        "msg": "用户未登录,请登录"    }    或    {        "status": 1,        "msg": "未找到该品类"    }

2、增加节点
/manage/category/add_category.do

request    parentId(default=0)    categoryNameresponse    success    {        "status": 0,        "msg": "添加品类成功"    }    fail    {        "status": 1,        "msg": "添加品类失败"    }

3、修改品类名字
/manage/category/set_category_name.do

request    categoryId    categoryNameresponse    success    {        "status": 0,        "msg": "更改品类名字成功"    }    fail    {        "status": 1,        "msg": "更改品类名字失败"    }

4、获取当前分类的id及递归子节点的categoryId
/manage/category/get_deep_category.do
这个跟第一个接口的区别好像是这个会返回所有,包括子节点的子节点一直下去,具体的看看代码怎么写的再做定论。

request    categoryIdresponse    success    {        "status": 0,        "data":{            100009,            100010,            100001,            100006,            100007,            100008        }    }    fail    {        "status": 1,        "msg": "无权限"    }
阅读全文
0 0
原创粉丝点击