博客系统在增加友情链接的时候,发现存在疑问的地方
- 增加友情链接的时候,需要判断数据库是否存在
- 更新友情链接的时候,提交空的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个接口,就是在自己测试过程中,进行扩展的。 我们在提交接口的时候,多点几次,或者参数故意乱写,就会发现其他情况了。 康师傅给我们带来了这么好的视频教程,带着我这个小白入门。 万分感谢。



 断点-含光君  回复 @loneliness
 断点-含光君  回复 @loneliness  喜欢藏风里  回复 @loneliness
 喜欢藏风里  回复 @loneliness 





























