节点我们在上一节能够完整的展示出来了,我们这个所需要做的就是根据在我们读取出来的节点上进行修改,也就是我们的右键的内容:如下图所示:
按照上一节的逻辑,我们分析可以得到,还是针对上节的同一个表进行的操作,只不过那个是简单的查询,而这个则是需要对数据库的内容进行更改了。所以我们知道了需要操作的表,之后我们需要分析一下从页面到后台数据库的流程:
添加操作:
参数:1、parentId父节点id;2、name:当前节点的名称;返回值:TaotaoResult。其中包含节点pojo对象。
所以我们可以完成添加功能了:
Dao层:
因为分析了解还是对上节的同一个表进行操作,所以我们仍旧可以使用逆向工程生成的代码。
Service层:
功能:接收两个参数parentId父节点id、name:当前节点的名称。向tb_content_category表中添加一条记录。返回TaoTaoResult包含记录的pojo对象。
需要返回主键信息:需要修改mapper文件,返回主键信息。
这主要是因为id是自增长的,所以当我们插入的时候,id会自动增加1,但是,我们insert之前是没有的,所以我们需要获取相应的时,需要获取最后一个插入的ID。改写好后,设计的代码如下:
@Override
public NewstylesResult insertContentCategory(long parentId, String name) {
// TODO Auto-generated method stub
// 创建一个pojo
TbContentCategory contentCartgory = new TbContentCategory();
//注意修改mapper文件*******
//在插入数据之后才可以取到
contentCartgory.setName(name);
contentCartgory.setIsParent(false);
//状态:1:正常,2删除
contentCartgory.setStatus(1);
contentCartgory.setParentId(parentId);
contentCartgory.setSortOrder(1);
contentCartgory.setCreated(new Date());
contentCartgory.setUpdated(new Date());
contentCategoryMapper.insert(contentCartgory);
//查看父节点的isParent的属性是否为true
TbContentCategory parentCat = contentCategoryMapper.selectByPrimaryKey(parentId);
if(!parentCat.getIsParent()){
parentCat.setIsParent(true);
//跟新父节点
contentCategoryMapper.updateByPrimaryKey(parentCat);
}
return NewstylesResult.ok(contentCartgory) ;
}
Controller层:
接收两个参数parentid、name。调用Service添加记录。返回TaotaoResult。应该返回json数据。
在上节的Controller层中添加下面的内容:
@RequestMapping("/category/create")
@ResponseBody
public NewstylesResult createContentCategory(long parentId,String name){
NewstylesResult result = contentCargoryService.insertContentCategory(parentId, name);
return result;
}
至此,节点的添加操作就已经完成,这样实现了在页面请求添加节点的需求。方便了内容的管理,而有时候我们需要修改节点的名称,南无我们怎么修改呢?
重命名操作:
紧接着上面分析的页面的代码,我们可以发现请求的逻辑为update,所以我们就不在重复分析了。直接展开我们的业务逻辑:Dao层:
Service层:
@Override
public NewstylesResult updateContentCategoryName(long id, String name) {
//查询到对应的节点
TbContentCategory tbContentCat = contentCategoryMapper.selectByPrimaryKey(id);
tbContentCat.setName(name);
tbContentCat.setUpdated(new Date());
contentCategoryMapper.updateByPrimaryKey(tbContentCat);
return NewstylesResult.ok();
}
之后,我们需要注意,此处也是需要两个参数,而参数的判定也是根据页面进行确定的,多以在这里还是需要id和name进行更新。
Controller层:
@RequestMapping("/category/update")
@ResponseBody
public NewstylesResult updateContentCategoryName(long id ,String name){
NewstylesResult result = contentCargoryService.updateContentCategoryName(id, name);
return result;
}
这样这个业务逻辑就可以告一段落了。