newstyles项目实战(十六)CMS管理系统之添加、重命名节点

      节点我们在上一节能够完整的展示出来了,我们这个所需要做的就是根据在我们读取出来的节点上进行修改,也就是我们的右键的内容:如下图所示:



按照上一节的逻辑,我们分析可以得到,还是针对上节的同一个表进行的操作,只不过那个是简单的查询,而这个则是需要对数据库的内容进行更改了。所以我们知道了需要操作的表,之后我们需要分析一下从页面到后台数据库的流程:

添加操作:

首先,我们点击右键就会发出我们的需求,我们需要添加一个节点,所以会需要我们有一个服务来支持此操作,所以我们还是回归上节课分析的content-category.jsp页面,可以发现,有我们的添加对应的内容的js代码:


从上面的代码中可以分析得到以下内容:

参数: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层:

在上面的Service层(ContentCategoryServiceImpl)中添加如下代码,完成重命名的逻辑:》
	@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层:

在上面的Controller文件中添加下面的内容,完成页面控制:
	@RequestMapping("/category/update")
	@ResponseBody
	public NewstylesResult updateContentCategoryName(long id ,String name){
		NewstylesResult result = contentCargoryService.updateContentCategoryName(id, name);
		return result;
	}

这样这个业务逻辑就可以告一段落了。
测试:
右键新建一个内容和重命名一个节点:

因为使用的ajax请求的方式,我们为了验证真的能够添加节点,所以我们刷新页面和检查表中的内容:
刷新之后存在:

同时更改“”重命名分类“”为rename:
再次刷新:

数据库中经过上述操作后的内容:


测试成功!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值