寻找写代码感觉(十三)之 编辑功能的开发
写在前面
昨晚又失眠了,四点半才睡着,还做了两个很糟心的梦,八点半就醒了,感觉好累,好想一醉方休呀,不行呀,害怕酒驾,哈哈哈。

今年要做的事依旧很多,必须行动起来,自己尽管努力就好,剩下就看天意了。
任务拆解
上篇文章已经把前端页面画好,那么现在就是写后端逻辑的过程了,也就是编辑后的保存功能,拆解如下:
- 增加后端保存接口
- 点击保存时,调用保存接口
- 保存成功刷新列表
编辑功能实现
1、增加后端保存接口
同样还是两步走,第一,先在controller中调用,第二,在service中实现。
首先,需要在controller中加入调用保存方法,示例代码如下:
/**
* 保存或更新操作
*
* @param eBookSaveReq
* @return
*/
@PostMapping("/save")
public CommonResp save(@RequestBody EBookSaveReq eBookSaveReq) {
CommonResp resp = new CommonResp<>();
eBookService.save(eBookSaveReq);
return resp;
}
同样, 我们在service中实现,示例代码如下:
/**
* 保存或更新操作
* @param eBookSaveReq
*/
public void save(EBookSaveReq eBookSaveReq) {
EBook eBook = copy(eBookSaveReq, EBook.class);
if(ObjectUtils.isEmpty(eBook.getId())){
//数据库中没查到,走新增方法
eBookMapper.insert(eBook);
}else{
//数据库中查到,有该条信息,走编辑操作
eBookMapper.updateByPrimaryKey(eBook);
}
}
知识点:
EBookSaveReq是拷贝domain中的实体Ebook,早期代码中的EBookReq让我改为EBookQueryReq,仅为查询时候所用,这样做的好处就是专类专用,可能有的人会说,这不是代码冗余吗,真的是个人习惯。

EBook eBook = copy(eBookSaveReq, EBook.class);,这段代码是单体拷贝,不懂得同学可以参考这篇文章。
2、点击保存时,调用保存方法,保存成功并刷新列表
后端逻辑写完了,这时候我们可以用PostMan本地测试下,该接口是否可用,这里我就直接在页面里调用测试了。
这时我们需要对点击保存时候的方法进行修改,示例代码如下:
{{ text }}
Name
编辑
删除
知识点:
- 响应式变量声明,贯穿始终,需要慢慢使用;
- 入参是
json对象,所以在controller中需要加入@RequestBody - 在table组件使用时需要加上
@change="handleTableChange",handleTableChange为方法实现分页跳转 - 前端代码也需要好好处理下,让人看起来不那么难受至少,惭愧呀,因为我的变量声明和使用扔的哪都是,尴尬
3、编译运行,查看效果

写在最后
如果你闲着无聊没什么事做,建议去学习或者做自己不擅长的事,这样时间会过得很快,不做情绪的奴隶,只做快乐的小跟班。
到此编辑功能开发完毕,有兴趣的同学,请自行尝试!
坚持下去,其实你就是大神!