您当前的位置: 首页 > 

java持续实践

暂无认证

  • 1浏览

    0关注

    746博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

黑马十次方项目day07-14删除好友更新关注数和粉丝数

java持续实践 发布时间:2019-02-17 20:28:40 ,浏览量:1

文章目录
      • 一.Controller层
      • 二. Service层
      • 三. Dao
      • 四.测试

一.Controller层

在FriendController中,添加如下的代码 其中,此处进行了Feign的远程调用,把user模块中,粉丝数和关注数进行了减一的操作.

  @RequestMapping(value = "/{friendid}", method = RequestMethod.DELETE)
    public Result addFriend(@PathVariable String friendid) {
        //验证是否登录, 并且拿到登录用户的id
        Claims claims = (Claims) request.getAttribute("claims_user");
        if (claims == null) {
            //说明当前用户没有user角色
            return new Result(false, StatusCode.LOGINERROR, "权限不足");
        }
        //得到当前登录的用户id
        String userId = claims.getId();

        friendService.deleteFriend(userId, friendid);

        //更新粉丝数和关注数
        userClient.updateFanscountAndFollowcount(-1,userId,friendid);
        return new Result(true, StatusCode.OK, "删除好友成功");
    }

二. Service层

在FriendService中,添加如下的代码,进行用户的删除. 首先删除tb_friend表中的记录. 其次是修改被喜欢者的字段为0 接着是在 tb_nofriend表中添加一条不喜欢的人记录

/**
     * 删除用户
     * @param userId
     * @param friendid
     */
    public void deleteFriend(String userId, String friendid) {
        //删除好友表中userid到friendid的数据
        friendDao.deleteFriend(userId,friendid);

        //更新friendid到userid的islike字段为0
        //即更新被关注者的islike字段为0 ,原本可能是1的,但由于对方不喜欢她了,因此要改成0
        //但也可能找不到该字段,为空操作.
        friendDao.updateIsLike("0",friendid,userId);

        //非好友列表中添加数据
        NoFriend noFriend = new NoFriend();
        noFriend.setUserid(userId);
        noFriend.setFriendid(friendid);
        noFriendDao.save(noFriend);
    }
三. Dao

dao层完整的代码如下

package com.tensquare.friend.dao;

import com.tensquare.friend.pojo.Friend;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

/**
 * 类名称:FriendDao
 * 类描述:交友模块的dao层
 *
 * @author: taohongchao
 * 创建时间:2019/2/17 15:42
 * Version 1.0
 */
public interface FriendDao extends JpaRepository {

    /**
     * 方法名: findByUseridAndFriendid
     * 方法描述: 通过当前用户和操作的用户查找
     * 修改日期: 2019/2/17 15:48
      * @param userid
     * @param friendid
     * @return com.tensquare.friend.pojo.Friend
     * @author taohongchao
     * @throws
     */
    public Friend findByUseridAndFriendid(String userid, String friendid);

    /**
     * 方法名: updateIsLike
     * 方法描述: 更新喜欢的状态
     * 修改日期: 2019/2/17 16:36
      * @param islike
     * @param userid
     * @param friendid
     * @return void
     * @author taohongchao
     * @throws
     */
    @Modifying
    @Query(value = "update  tb_friend set islike=? where userid=? and friendid = ?", nativeQuery = true)
    public void updateIsLike(String islike, String userid, String friendid);


    /**
     * 方法名: deleteFriend
     * 方法描述: 删除好友表中的信息
     * 修改日期: 2019/2/17 19:52
      * @param userid
     * @param friendid
     * @return void
     * @author taohongchao
     * @throws
     */
    @Modifying
    @Query(value = "delete  from  tb_friend where userid=? and friendid = ?", nativeQuery = true)
    public void deleteFriend(String userid, String friendid);
}


四.测试

启动Eureka项目, tensquare_user项目和tensquare_friend id为111的用户登录,获取token 带上该token ,发送如下的delete请求. 代表id为111的用户不喜欢id为222的用户了. http://localhost:9010/friend/222 响应的数据如下. 在数据库中可以看到tb_friend的数据为空了,代表删除了该表中的一条数据 在tb_nofriend表中,新增了一条数据userid为111, friendid为222 在tb_user表中,fanscount和followcount的数量变成了0

关注
打赏
1658054974
查看更多评论
立即登录/注册

微信扫码登录

0.2939s