博客系统在增加友情链接的时候,发现存在疑问的地方
- 增加友情链接的时候,需要判断数据库是否存在
- 更新友情链接的时候,提交空的body也算成功的问题
新增
public ResponseResult addFriendLink(FriendLink friendLink) {
//判断数据是否不为空
String url = friendLink.getUrl();
if (TextUtils.isEmpty(url)) {
return ResponseResult.FAILED("链接不能为空");
}
String logo = friendLink.getLogo();
if (TextUtils.isEmpty(logo)) {
return ResponseResult.FAILED("logo不能为空");
}
String name = friendLink.getName();
if (TextUtils.isEmpty(name)) {
return ResponseResult.FAILED("网站名字不能为空");
}
//判断数据库是否存在
FriendLink dbLink = friendLinkDao.findOneByName(name);
if (dbLink != null) {
//这个判断规则,我是根据链接名字来新增的
//也可以使用url做唯一链接
return ResponseResult.FAILED("该名字的链接已经存在");
}
//补全数据
friendLink.setId(String.valueOf(idWorker.nextId()));
friendLink.setUpdateTime(new Date());
friendLink.setCreateTime(new Date());
//save db
friendLinkDao.save(friendLink);
return ResponseResult.SUCCESS("友情链接添加成功");
}
更新链接
public ResponseResult updateFriendLink(String friendLinkId, FriendLink link) {
FriendLink dbLink = friendLinkDao.findOneById(friendLinkId);
if (dbLink == null) {
return ResponseResult.FAILED("链接不存在");
}
//判断link的字段,是否符合要求
//name
String name = link.getName();
String logo = link.getLogo();
String url = link.getUrl();
boolean empty = true;
if (!TextUtils.isEmpty(name)) {
dbLink.setName(name.trim());
empty = false;
}
//logo
if (!TextUtils.isEmpty(logo)) {
dbLink.setLogo(logo.trim());
empty = false;
}
//url
if (!TextUtils.isEmpty(url)) {
dbLink.setUrl(url.trim());
empty = false;
}
//测试发现,如果body传递{},以前的代码做法,也会提示更新成功。
//其实就是什么也没有做,就操作数据库了。
//在我们平时的场景,更新,通常是更新name,logo,url,或者order
//其中一个或者多个。我们如果判断到基础的3个数据都没有提交上来的时候,就提示用户
//还有处理字段中,可能存在的左右空隙。虽然我们写前端的时候,都有习惯去2边空格
//在公司项目中,ios登录没有去除两边空格,导致登录失败,后台也没有进行去空格处理。
//这个情况也会别客户吐槽,无法登录。说我们做的垃圾。。。。?
if (empty) {
return ResponseResult.FAILED("请输入名字,logo,或者url");
}
dbLink.setOrder(link.getOrder());
//保存数据
friendLinkDao.save(dbLink);
return ResponseResult.SUCCESS("更新成功");
}
上面2个接口,就是在自己测试过程中,进行扩展的。 我们在提交接口的时候,多点几次,或者参数故意乱写,就会发现其他情况了。 康师傅给我们带来了这么好的视频教程,带着我这个小白入门。 万分感谢。