Skip to content
关注公众号,获取新课通知

关注用户


控制器:app/controller/user.js

js
	// 关注
    async follow() {
        const { ctx, service, app } = this;
        let currentUser = ctx.authUser;

        ctx.validate({
            follow_id: {
                type: 'int',
                required: true,
                desc: '用户ID'
            },
        });

        let { follow_id } = ctx.request.body;

        let where = {
            user_id: currentUser.id,
            follow_id
        }

        let follow = await app.model.Follow.findOne({ where });

        if (follow) {
            return ctx.apiFail('你已经关注过了');
        }

        // 用户是否存在
        if (!await service.user.exist(follow_id)) {
            return ctx.apiFail('对方不存在');
        }

        // 不能关注自己
        if (currentUser.id === follow_id) {
            return ctx.apiFail('不能关注自己');
        }

        let res = await app.model.Follow.create({ ...where });

        ctx.apiSuccess({
            status: true,
            msg: "关注成功"
        });
    }

服务:app/service/user.js

js
// 是否存在
   async exist(user_id) {
       const { app } = this;
       return await app.model.User.findOne({
           where: {
               id: user_id
           }
       });
   }

路由:app/router.js

js
// 关注
router.post("/user/follow", controller.user.follow);