.NET Core实战项目之CMS 第十五章 各层联动工作实现增删改查业务 (3)

至于为什么这里的Headers设置为X-CSRF-TOKEN-yilezhu这个你可以看我的上一节课程《.NET Core实战项目之CMS 第十四章 开发篇-防止跨站请求伪造(XSRF/CSRF)攻击处理》

里面有讲述,所以这里就不做过多的讲述了。我们直接上结果提交的代码吧。

1547348249807

很简洁对不对?寥寥几行代码,可是实现真的这么简单吗?看看服务层你就知道了。

public BaseResult AddOrModify(MenuAddOrModifyModel item) { var result = new BaseResult(); Menu model; if (item.Id == 0) { //TODO ADD model = _mapper.Map<Menu>(item); model.AddManagerId = 1; model.IsDelete = false; model.AddTime = DateTime.Now; if (_repository.Insert(model) > 0) { result.ResultCode = ResultCodeAddMsgKeys.CommonObjectSuccessCode; result.ResultMsg = ResultCodeAddMsgKeys.CommonObjectSuccessMsg; } else { result.ResultCode = ResultCodeAddMsgKeys.CommonExceptionCode; result.ResultMsg = ResultCodeAddMsgKeys.CommonExceptionMsg; } } else { //TODO Modify model = _repository.Get(item.Id); if (model != null) { _mapper.Map(item, model); model.ModifyManagerId = 1; model.ModifyTime = DateTime.Now; if (_repository.Update(model) > 0) { result.ResultCode = ResultCodeAddMsgKeys.CommonObjectSuccessCode; result.ResultMsg = ResultCodeAddMsgKeys.CommonObjectSuccessMsg; } else { result.ResultCode = ResultCodeAddMsgKeys.CommonExceptionCode; result.ResultMsg = ResultCodeAddMsgKeys.CommonExceptionMsg; } } else { result.ResultCode = ResultCodeAddMsgKeys.CommonFailNoDataCode; result.ResultMsg = ResultCodeAddMsgKeys.CommonFailNoDataMsg; } } return result; }

是不是业务还蛮复杂的,如果都放在控制器处理想想控制器是不是很恐怖,所以说引入服务层很有必要,把一些逻辑移到服务层让控制器只用来显示数据多好!

删除功能实现

你以为删除功能很简单吗?没错,是很简单,可是我们在设计数据库的时候加入了IsDeleted,看到这个相信你已经猜到了,我们所有的删除操作都是软删除哦!至于为什么这样做?原因就是不想删错了后悔!我只能说这么多了,只有经历惨痛的经历可能才会这样做!还有就是删除之前我会进行js的弹窗提醒,如下图所示,提醒您是否真的要删除!

1547377563781

好了,按照惯例我们第一步是不是要上js的代码啊?那还等什么?立马奉上

1547377653057

注意这里删除的时候也是需要进行防伪验证的,防止别人进行接口恶意删除,下面看下控制器中的代码,哇真干净就一行代码啊,有木有!

1547377792361

其实我想说服务层的代码有超过二十行,不信?我截图给你看吧!好好数数,加上换行是不是有二十行。

1547377883804

总结

今天讲的内容比较简单就是我们这个CMS系统设计的各层之前如何联动工作来实现增删改查业务的,望对大家了解这个系统有所帮助!至于其他的业务功能大家都可以参照这个进行开发!比如角色管理,用户管理等等!下节我们就来实现用户登录模块的功能。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzfzfz.html