Пример #1
0
        public virtual void SaveLike(long mid)
        {
            if (ctx.viewer.IsLogin == false)
            {
                echoJsonMsg("请先登录", false, "");
                return;
            }

            if (mid <= 0)
            {
                echoText("mid=" + mid);
                return;
            }

            Microblog microblog = Microblog.findById(mid);

            if (microblog == null)
            {
                echoText("microblog is null. mid=" + mid);
                return;
            }

            // 检查是否已经like
            MicroblogLike flike = MicroblogLike.find("UserId=" + ctx.viewer.Id + " and MicroblogId=" + mid).first();

            if (flike != null)
            {
                echoText("您已经赞过");
                return;
            }

            microblog.Likes = microblog.Likes + 1;
            microblog.update();

            MicroblogLike microblogLike = new MicroblogLike();

            microblogLike.User      = ctx.viewer.obj as User;
            microblogLike.Microblog = microblog;
            microblogLike.Ip        = ctx.Ip;
            microblogLike.insert();

            // target likes
            if (strUtil.HasText(microblog.DataType))
            {
                Type targetType = Entity.GetType(microblog.DataType);
                if (targetType != null)
                {
                    ILike target = ndb.findById(targetType, microblog.DataId) as ILike;
                    if (target != null)
                    {
                        target.Likes = microblog.Likes;
                        db.update(target);
                    }
                }
            }

            echoAjaxOk();
        }
Пример #2
0
        public void SaveLike( int mid )
        {
            if (ctx.viewer.IsLogin == false) {
                echoJsonMsg( "请先登录", false, "" );
                return;
            }

            if (mid <= 0) {
                echoText( "mid=" + mid );
                return;
            }

            Microblog microblog = Microblog.findById( mid );
            if (microblog == null) {
                echoText( "microblog is null. mid=" + mid );
                return;
            }

            // 检查是否已经like
            MicroblogLike flike = MicroblogLike.find( "UserId=" + ctx.viewer.Id + " and MicroblogId=" + mid ).first();
            if (flike != null) {
                echoText( "您已经赞过" );
                return;
            }

            microblog.Likes = microblog.Likes + 1;
            microblog.update();

            MicroblogLike microblogLike = new MicroblogLike();
            microblogLike.User = ctx.viewer.obj as User;
            microblogLike.Microblog = microblog;
            microblogLike.Ip = ctx.Ip;
            microblogLike.insert();

            // target likes
            if (strUtil.HasText( microblog.DataType )) {

                Type targetType = Entity.GetType( microblog.DataType );
                if (targetType != null) {
                    ILike target = ndb.findById( targetType, microblog.DataId ) as ILike;
                    if (target != null) {
                        target.Likes = microblog.Likes;
                        db.update( target );
                    }

                }

            }

            echoAjaxOk();
        }