Example #1
0
 public static bool SaveCourseTags(int cid, int tagid)
 {
     db.ObjectTags.Add(new ObjectTags()
     {
         Obj_TagID = tagid, Obj_Type = 32, Obj_ID = cid
     });
     return(db.SaveChanges() > 0 ? true : false);
 }
Example #2
0
        //-----------------------------------------------------提交笔记
        /// <summary>
        ///
        /// </summary>
        /// <param name="uid"></param>
        /// <param name="title"></param>
        /// <param name="content"></param>
        /// <param name="content_style"></param>
        /// <param name="tags"></param>
        /// <returns></returns>
        public static bool Submit_Note(int uid, string title, string content, string content_style, List <string> tags)
        {
            ZZULIEntities ef = GetEntity();
            //提交笔记
            Notes note = new Notes()
            {
                User_ID = uid, N_Title = title, N_Content = content, N_Content_Style = content_style, N_Time = DateTime.Now, N_IsOriginal = true
            };

            ef.Notes.Add(note);
            ef.SaveChanges();
            int nid = note.N_ID;

            //提交标签
            var           taglist  = ef.Navigations.Where(n => n.Nav_ID > 0);
            List <string> exits_id = taglist.Select(n => n.Nav_Name).ToList();

            tags.ForEach(t =>
            {
                //如果用户提交的标签不存在,就将该标签添加到数据库
                if (!exits_id.Contains(t))
                {
                    Navigations nav = new Navigations()
                    {
                        Nav_Name = t, Nav_Type = 3, Nav_UseNum = 1, Ower_ID = 0, Nav_Describe = "", Nav_FollowNum = 0
                    };
                    ef.Navigations.Add(nav);
                    ef.SaveChanges();
                    int tid = nav.Nav_ID;
                    ef.ObjectTags.Add(new ObjectTags()
                    {
                        Obj_ID = nid, Obj_TagID = tid, Obj_Type = 34
                    });
                }
                else//如果用户提交的标签已经存在,就将标签的使用量加1
                {
                    var ta = taglist.Single(tag => tag.Nav_Name == t);
                    ef.ObjectTags.Add(new ObjectTags()
                    {
                        Obj_ID = nid, Obj_TagID = ta.Nav_ID, Obj_Type = 34
                    });
                    ta.Nav_UseNum++;
                }
            });
            //保存用户为笔记设置的标签

            return(ef.SaveChanges() > 0 ? true : false);
        }
Example #3
0
        public static bool Collect(int target_id, int optionType)
        {
            ZZULIEntities ef = GetEntity();

            switch (optionType)
            {
            case 8:
                var course = ef.Courses.Where(c => c.Cou_ID == target_id).FirstOrDefault();
                course.Cou_CollectNum++;
                break;

            case 9:
                var question = ef.Questions.Where(q => q.Q_ID == target_id).FirstOrDefault();
                question.Q_CollectNum++;
                break;

            case 10:
                var note = ef.Notes.Where(n => n.N_ID == target_id).FirstOrDefault();
                note.N_CollectNum++;
                break;

            default:
                break;
            }
            if (ef.SaveChanges() > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #4
0
        /// <summary>
        /// 取消关注分类
        /// </summary>
        /// <param name="u_id"></param>
        /// <param name="target_id"></param>
        /// <returns></returns>
        public static bool AbortFollow(int u_id, int target_id)
        {
            ZZULIEntities ef   = GetEntity();
            var           data = ef.Navigations.Where(n => n.Nav_ID == target_id).FirstOrDefault();

            data.Nav_FollowNum--;
            return(ef.SaveChanges() > 0 ? true : false);
        }
Example #5
0
        //记录用户的推荐操作
        /// <summary>
        /// 记录用户的推荐操作
        /// </summary>
        /// <param name="u_id">用户ID</param>
        /// <param name="target_id">操作对象ID</param>
        /// <param name="type_id">操作对象类型</param>
        /// <returns></returns>
        public static bool Recommend(int u_id, int target_id, int type_id)
        {
            UserLikes data = new UserLikes()
            {
                User_ID = u_id, UL_Type = type_id, UL_Target = target_id, UL_Time = DateTime.Now
            };

            db.UserLikes.Add(data);
            return(db.SaveChanges() > 0 ? true : false);
        }
Example #6
0
        /// <summary>
        /// 取消踩
        /// </summary>
        /// <param name="target_id"></param>
        /// <param name="error"></param>
        /// <returns></returns>
        public static bool AbortNotLike(int target_id, int optionType)
        {
            ZZULIEntities ef  = GetEntity();
            bool          res = false;

            switch (optionType)
            {
            case 18:    //课程
                var course = ef.Courses.Where(c => c.Cou_ID == target_id).FirstOrDefault();
                course.Cou_NotLikes--;
                if (ef.SaveChanges() > 0)
                {
                    ef.SP_UpdateCourseHotByCou_ID(target_id);
                    res = true;
                }
                break;

            case 19:    //问题回复
                var answer = ef.Answers.Where(a => a.A_ID == target_id).FirstOrDefault();
                answer.A_NotLikes--;
                if (ef.SaveChanges() > 0)
                {
                    ef.SP_UpdateQuestionHotByQ_ID(target_id);
                    res = true;
                }
                break;

            case 20:    //笔记
                var note = ef.Notes.Where(n => n.N_ID == target_id).FirstOrDefault();
                note.N_NotLikes--;
                if (ef.SaveChanges() > 0)
                {
                    ef.SP_UpdateNoteHotByN_ID(target_id);
                    res = true;
                }
                break;

            default:
                res = false;
                break;
            }
            return(res);
        }
Example #7
0
        //-----------------------------------------------------回复问题的回复
        public static bool Submit_QuestionAnswerOfAnswer(int uid, int qid, int aid, string content)
        {
            ZZULIEntities ef = GetEntity();

            ef.Answers.Add(new Answers()
            {
                User_ID = uid, Q_ID = qid, A_Target = aid, A_Content = content, A_Time = DateTime.Now
            });
            return(ef.SaveChanges() > 0 ? true : false);
        }
Example #8
0
        //-----------------------------------------------------提交笔记评论
        public static bool Submit_NoteComment(int uid, int nid, string content)
        {
            ZZULIEntities ef = GetEntity();

            ef.NotesComments.Add(new NotesComments()
            {
                N_ID = nid, User_ID = uid, NC_Content = content, NC_Time = DateTime.Now
            });
            return(ef.SaveChanges() > 0 ? true : false);
        }
Example #9
0
        //-----------------------------------------------------提交课程问题
        public static bool Submit_CourseQuestion(int uid, int cid, int mid, string title, string content)
        {
            ZZULIEntities ef = GetEntity();

            ef.CoursesQuestions.Add(new CoursesQuestions()
            {
                User_ID = uid, Cou_ID = cid, Mov_ID = mid, CQ_Title = title, CQ_Content = content, CQ_Time = DateTime.Now
            });
            return(ef.SaveChanges() > 0 ? true : false);
        }
Example #10
0
        //______________________________________________________课程评论
        /// <summary>
        /// 提交课程评论
        /// </summary>
        /// <param name="uid">用户ID</param>
        /// <param name="couid">课程ID</param>
        /// <param name="movid">章节ID</param>
        /// <param name="content">评论内容</param>
        /// <returns></returns>
        public static bool Submit_CourseComment(int uid, int couid, int movid, string content)
        {
            ZZULIEntities  ef = GetEntity();
            CoursesComment cc = new CoursesComment()
            {
                User_ID = uid, Cou_ID = couid, Mov_ID = movid, CCom_Content = content, CCom_Likes = 0, CCom_Time = DateTime.Now
            };

            ef.CoursesComment.Add(cc);
            return(ef.SaveChanges() > 0 ? true : false);
        }
Example #11
0
        //______________________________________________________课程笔记

        public static bool Submit_CourseNote(int uid, int couid, int movid, string content)
        {
            ZZULIEntities ef = GetEntity();
            CoursesNotes  cn = new CoursesNotes()
            {
                User_ID = uid, Cou_ID = couid, Mov_ID = movid, CN_Content = content, CN_Time = DateTime.Now
            };

            ef.CoursesNotes.Add(cn);
            return(ef.SaveChanges() > 0 ? true : false);
        }
Example #12
0
        /// <summary>
        /// 记录用户的浏览行为
        /// </summary>
        /// <param name="uid">用户id,如果用户尚未登录,则为-1</param>
        /// <param name="target">浏览的对象</param>
        /// <param name="optionType">浏览对象的类型</param>
        public static bool PageView(int target, int optionType, int uid = 0)
        {
            ZZULIEntities ef = GetEntity();

            if (uid == 0)
            {
                ef.UserPageViews.Add(new UserPageViews()
                {
                    UPV_Target = target, UPV_Type = optionType, UPV_Time = DateTime.Now
                });
            }
            else
            {
                ef.UserPageViews.Add(new UserPageViews()
                {
                    UPV_Target = target, UPV_Type = optionType, User_ID = uid, UPV_Time = DateTime.Now
                });
            }
            return(ef.SaveChanges() > 0 ? true : false);
        }
Example #13
0
        /// <summary>
        /// 修改浏览量的值
        /// </summary>
        /// <param name="target"></param>
        /// <param name="optionType"></param>
        /// <returns></returns>
        public static bool ModifyPageView(int target, int optionType)
        {
            ZZULIEntities ef = GetEntity();

            switch (optionType)
            {
            case 1:    //浏览课程
                break;

            case 2:    //浏览问题
                var question = ef.Questions.Where(q => q.Q_ID == target).FirstOrDefault();
                question.Q_PageViews++;
                break;

            case 3:    //浏览笔记
                var note = ef.Notes.Where(n => n.N_ID == target).FirstOrDefault();
                note.N_PageViews++;
                break;

            default:
                break;
            }
            return(ef.SaveChanges() > 0 ? true : false);
        }
Example #14
0
        public static bool AbortCollect(int target_id, int optionType)
        {
            ZZULIEntities ef   = GetEntity();
            var           data = ef.UserCollections.Where(u => u.UC_Target == target_id && u.UC_Type == optionType && u.User_ID == Common.UserInfo.User_ID).FirstOrDefault();

            ef.UserCollections.Remove(data);

            switch (optionType)
            {
            case 8:
                var course = ef.Courses.Where(c => c.Cou_ID == target_id).FirstOrDefault();
                course.Cou_CollectNum--;
                break;

            case 9:
                var question = ef.Questions.Where(q => q.Q_ID == target_id).FirstOrDefault();
                question.Q_CollectNum--;
                break;

            case 10:
                var note = ef.Notes.Where(n => n.N_ID == target_id).FirstOrDefault();
                note.N_CollectNum--;
                break;

            default:
                break;
            }
            if (ef.SaveChanges() > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #15
0
        //[Route("upload")]
        public ActionResult uploadbigfile()
        {
            //前端传输是否为切割文件最后一个小文件
            var isLast = System.Web.HttpContext.Current.Request["isLast"];
            //前端传输当前为第几次切割小文件
            var count = System.Web.HttpContext.Current.Request["count"];
            //获取前端处理过的传输文件名
            string fileName = System.Web.HttpContext.Current.Request["name"];
            //存储接受到的切割文件
            HttpPostedFile file = System.Web.HttpContext.Current.Request.Files[0];
            //获取重传次数
            var retransNum_Part = System.Web.HttpContext.Current.Request["retransNum_Part"];



            //处理文件名称(去除.part*,还原真实文件名称)
            string newFileName = fileName.Substring(0, fileName.LastIndexOf('.'));

            //获取临时文件夹、压缩包文件、解压文件夹的路径
            string tempUrl  = Server.MapPath(@"\upload\temp\");
            string videoUrl = Server.MapPath(@"\video\");

            //判断指定目录是否存在临时存储文件夹,没有就创建
            if (!System.IO.Directory.Exists(tempUrl + "\\" + newFileName))
            {
                //不存在就创建目录
                System.IO.Directory.CreateDirectory(tempUrl + "\\" + newFileName);
            }
            if (file == null)
            {
                return(Json("{'status':'2','statusText':'" + "分片文件保存失败!" + "','partIndex':'" + count + "','retransNum_Part':'" + retransNum_Part + "'}"));
            }

            try
            {
                //存储文件
                file.SaveAs(tempUrl + "\\" + newFileName + "\\" + fileName);
            }
            catch
            {
                if (Convert.ToInt32(retransNum_Part) >= 3)
                {
                    Upload.ClearErrorFile(0, newFileName, tempUrl, Server.MapPath(@"\upload\zip\"), Server.MapPath(@"\upload\unzip\"), videoUrl);
                }
                return(Json("{'status':'2','statusText':'" + "分片文件保存失败!" + "','partIndex':'" + count + "','retransNum_Part':'" + retransNum_Part + "'}"));
            }

            //判断是否为最后一次切割文件传输
            int cid = 0;

            int errorNum = 0;

            bool res = false;

            if (isLast == "true")
            {
                //课程名称
                var couName = System.Web.HttpContext.Current.Request["Cou_Name"];
                //课程介绍
                var couDescribe = System.Web.HttpContext.Current.Request["Cou_Describe"];
                //课程标签
                int            couTag = Convert.ToInt32(System.Web.HttpContext.Current.Request["Cou_Tag"]);
                int            num    = System.Web.HttpContext.Current.Request.Files.Count;
                HttpPostedFile image  = System.Web.HttpContext.Current.Request.Files[1];

                //获取重传次数
                var retransNum = System.Web.HttpContext.Current.Request["retransNum"];


                string zipUrl   = Server.MapPath(@"\upload\zip\");
                string unzipUrl = Server.MapPath(@"\upload\unzip\");
                //将课程的信息保存到数据库中,此时课程的状态为正在上传,用户不可以查看和学习该课程
                cid = Upload.SaveCourseInfo(couName, couDescribe);


                while (cid <= 0 && errorNum < 3)
                {
                    cid = Upload.SaveCourseInfo(couName, couDescribe);
                    errorNum++;
                }
                if (cid <= 0)
                {
                    return(Json("{'status':'3','statusText':'" + "保存课程信息失败!" + "'}"));
                }
                errorNum = 0;

                //将分片文件,组合成上传的压缩包源文件
                res = Upload.ComposeFile(cid, newFileName, zipUrl, tempUrl);

                while (!res && errorNum < 3)
                {
                    res = Upload.ComposeFile(cid, newFileName, zipUrl, tempUrl);
                    errorNum++;
                }
                if (!res)
                {
                    Upload.ClearErrorFile(cid, newFileName, tempUrl, zipUrl, unzipUrl, videoUrl);
                    return(Json("{'status':'4','statusText':'" + "文件合成失败!" + "'}"));
                }
                errorNum = 0;
                res      = false;

                //解压课程文件
                res = Upload.UnZip(cid, newFileName, zipUrl + cid + ".zip", unzipUrl);

                while (!res && errorNum < 3)
                {
                    res = Upload.ComposeFile(cid, newFileName, zipUrl + cid + ".zip", unzipUrl);
                    errorNum++;
                }
                if (!res)
                {
                    return(Json("{'status':'5','statusText':'" + "文件解压失败!" + "'}"));
                }
                errorNum = 0;
                res      = false;



                //检查文件是否是有效的文件
                res = Upload.CheckCourseFile(unzipUrl + cid);
                if (!res)
                {
                    Upload.ClearErrorFile(cid, newFileName, tempUrl, zipUrl, unzipUrl, videoUrl);
                    return(Json("{'status':'6','statusText':'" + "该文件不符合上传要求!" + "'}"));
                }
                errorNum = 0;
                res      = false;
                //将课程的章节放到video对应目录下,并将章节信息写入数据库,并将数据库中课程对应的状态为已上传,允许用户访问
                res = Upload.SaveChapterSectionInfo(cid, unzipUrl + cid, Server.MapPath(@"\video\"));

                while (!res && errorNum < 3)
                {
                    res = Upload.SaveChapterSectionInfo(cid, unzipUrl + cid, videoUrl);
                    errorNum++;
                }
                if (!res)
                {
                    return(Json("{'status':'7','statusText':'" + "课程章节信息保存失败!" + "'}"));
                }
                errorNum = 0;
                res      = false;

                var course = db.Courses.Where(c => c.Cou_ID == cid).FirstOrDefault();
                course.Is_UpLoading = false;
                db.SaveChanges();

                //将课程的标签保存到数据库中
                res = Upload.SaveCourseTags(cid, couTag);
                while (!res && errorNum < 3)
                {
                    res = Upload.SaveCourseTags(cid, couTag);
                    errorNum++;
                }
                if (!res)
                {
                    return(Json("{'status':'8','statusText':'" + "课程标签保存失败!" + "'}"));
                }
                errorNum = 0;
                res      = false;

                //保存课程图片
                res = Upload.SaveCourseImage(cid, image, Server.MapPath(@"\images\course\") + cid + ".png");
                if (res == null)
                {
                    return(Json("{'status':'9','statusText':'" + "课程图片保存失败!" + "','retransNum':'" + retransNum + "'}"));
                }
                while (!res && errorNum < 3)
                {
                    res = Upload.SaveCourseImage(cid, image, Server.MapPath(@"\images\course\") + cid + ".png");
                    errorNum++;
                }
                if (!res)
                {
                    Upload.ClearErrorFile(cid, newFileName, tempUrl, zipUrl, unzipUrl, videoUrl);
                    return(Json("{'status':'9','statusText':'" + "课程图片保存失败!" + "'}"));
                }
            }
            return(Json("{'status':'1','statusText':'" + cid + "'}"));
            //return int.Parse(count) + 1;
        }
Example #16
0
 /// <summary>
 /// 向数据库中添加一条数据
 /// </summary>
 /// <param name="model">要添加数据的实体对象</param>
 /// <returns></returns>
 public int Add(T model)
 {
     EF.Set <T>().Add(model);
     return(EF.SaveChanges());
 }
Example #17
0
        public void Test()
        {
            ZZULIEntities ZZUL = new ZZULIEntities();

            #region 重置数据库
            using (ZZULIEntities ZZU = new ZZULIEntities())
            {
                var na = ZZU.Database.ExecuteSqlCommand("truncate table UserAry");
                var nl = ZZU.Database.ExecuteSqlCommand("truncate table NewAry");
                ZZU.SaveChanges();
            }
            #endregion
            var UID = ZZUL.PR_UserID().ToArray();  //获取所有用户ID
            var AID = ZZUL.PR_AllID().ToArray();   //获取浏览、推荐、收藏用户ID
            var LID = ZZUL.PR_learnID().ToArray(); //获取学习课程用户ID
            var CID = ZZUL.PR_CouID().ToArray();   //获取所有课程所属标签ID
            #region 原始矩阵
            #region 学习
            //查找用户的学习记录,如果有 5分
            if (LID.Length > 0)
            {
                for (int i = 0; i < LID.Length; i++)                       //控制用户
                {
                    for (int j = 0; j < CID.Length; j++)                   //控制课程
                    {
                        var num = ZZUL.PR_Learn(LID[i], CID[j]).ToArray(); //判断用户是否学习过该课程
                        if (num[0] > 0)
                        {
                            ZZUL.PR_UserAry(LID[i], CID[j], 5);    //将用户ID,课程ID,分数增加到UserAry中
                            continue;
                        }
                    }
                }
                ZZUL.SaveChanges();
            }

            #endregion
            #region 收藏、推荐、浏览

            //先查找用户在改标签是否学习过,如果有结束,如果没在进行判断收藏4,,推荐3,浏览1
            int sum;
            //操作类型
            if (AID.Length != 0)                     //判断是否有数据
            {
                for (int i = 0; i < AID.Length; i++) //控制用户
                {
                    for (int j = 0; j < CID.Length; j++)
                    {
                        sum = 0;
                        var num = ZZUL.PR_Learn(AID[i], CID[j]).ToArray();
                        if (num[0] > 0) //判断用户是否学习过该课程
                        {
                            continue;
                        }
                        else
                        {
                            var n = ZZUL.PR_ALL(AID[i], CID[j]).ToArray(); //如果用户进行过收藏、浏览、推荐,返回推荐类型
                            if (n.Length > 0)                              //判断用户是否进行过推荐收藏、浏览、推荐
                            {
                                for (int p = 0; p < n.Length; p++)
                                {
                                    sum += Convert.ToInt32(n[p]);
                                }


                                switch (sum)
                                {
                                case 20:                                            //该用户对该课程都进行过浏览、推荐、收藏,取最高分收藏
                                case 19:                                            //该用户对该课程进行过推荐、收藏,取最高分收藏

                                case 9:                                             //该用户对该课程进行过浏览、收藏,取最高分收藏
                                case 8: ZZUL.PR_UserAry(AID[i], CID[j], 4); break;  //8代表收藏 4分

                                case 12:                                            //该用户对该课程进行过浏览、推荐、取最高分推荐
                                case 11: ZZUL.PR_UserAry(AID[i], CID[j], 3); break; //推荐 3分

                                case 1: ZZUL.PR_UserAry(AID[i], CID[j], 1); break;  //浏览一分
                                }
                            }
                            else
                            {
                                ZZUL.PR_UserAry(AID[i], CID[j], 0); //用户未对该课程进行过任何操作,0
                            }
                        }
                    }
                }
            }
            ZZUL.SaveChanges();
            //有些用户只进行过学习操作,则需要下面循环来给0分
            for (int i = 0; i < LID.Length; i++)     //控制用户
            {
                for (int j = 0; j < CID.Length; j++) //控制课程
                {
                    var num = ZZUL.PR_SelAll(LID[i], CID[j]).ToArray();
                    if (num.Length == 0)
                    {
                        ZZUL.PR_UserAry(LID[i], CID[j], 0);
                    }
                }
            }
            ZZUL.SaveChanges();
            #endregion
            #endregion
            #region 矩阵分解
            var U    = ZZUL.PR_SelectAll().GroupBy(G => G.User_ID).Select(G => G.Key).ToArray();//查找原始矩阵中的所有用户ID
            var list = ZZUL.PR_SelectAll().ToList();
            List <List <double> > shu = new List <List <double> >();
            for (int p = 0; p < U.Length; p++)
            {
                List <double> a = new List <double>();
                foreach (var i in list)
                {
                    if (i.User_ID == U[p])
                    {
                        a.Add(Convert.ToDouble(i.Ary_Sco));
                    }
                }
                shu.Add(a);
            }
            Matix_Decompose matrix = new Matix_Decompose(UID.Length, CID.Length);
            matrix.get_Matrix(shu);
            #endregion
            #region 将分解后的矩阵写会数据库
            double[,] NewArr = new double[U.Length, CID.Length];
            NewArr           = matrix.GetR(); //得到分解后的矩阵
            var ArrID = ZZUL.PR_SelectAll().GroupBy(G => G.User_ID).Select(G => G.Key).ToArray();

            for (int i = 0; i < U.Length; i++)
            {
                for (int j = 0; j < CID.Length; j++)
                {
                    ZZUL.PR_NewAry(U[i], CID[j], NewArr[i, j]);
                }
            }
            ZZUL.SaveChanges();
            #endregion
        }
Example #18
0
        /// <summary>
        /// 取消点赞
        /// </summary>
        /// <param name="target_id"></param>
        /// <param name="error"></param>
        /// <returns></returns>
        public static bool AbortLike(int target_id, int optionType)
        {
            ZZULIEntities ef  = GetEntity();
            bool          res = false;

            switch (optionType)
            {
            case 11:    //课程
                var course = ef.Courses.Where(cou => cou.Cou_ID == target_id).FirstOrDefault();
                course.Cou_Likes--;
                if (ef.SaveChanges() > 0)
                {
                    ef.SP_UpdateCourseHotByCou_ID(target_id);
                    res = true;
                }
                break;

            case 12:    //课程评论
                var ccom = ef.CoursesComment.Where(cc => cc.CCom_ID == target_id).FirstOrDefault();
                ccom.CCom_Likes--;
                if (ef.SaveChanges() > 0)
                {
                    ef.SP_UpdateCourseHotByCou_ID(target_id);
                    res = true;
                }
                break;

            case 13:    //课程问题回复
                var couA = ef.CoursesAnswers.Where(ca => ca.CA_ID == target_id).FirstOrDefault();
                couA.CA_Likes--;
                if (ef.SaveChanges() > 0)
                {
                    ef.SP_UpdateCourseQuestionHot(target_id);
                    res = true;
                }
                break;

            case 14:    //课程笔记
                var couN = ef.CoursesNotes.Where(cn => cn.CN_ID == target_id).FirstOrDefault();
                couN.CN_Likes--;
                if (ef.SaveChanges() > 0)
                {
                    ef.SP_UpdateCourseNoteHot(target_id);
                    res = true;
                }
                break;

            case 15:    //问题回复
                var answer = ef.Answers.Where(a => a.A_ID == target_id).FirstOrDefault();
                answer.A_Likes--;
                if (ef.SaveChanges() > 0)
                {
                    ef.SP_UpdateQuestionHotByQ_ID(target_id);
                    res = true;
                }
                break;

            case 16:    //笔记
                var note = ef.Notes.Where(n => n.N_ID == target_id).FirstOrDefault();
                note.N_Likes--;
                if (ef.SaveChanges() > 0)
                {
                    ef.SP_UpdateNoteHotByN_ID(target_id);
                    res = true;
                }
                break;

            case 17:    //笔记评论
                var ncom = ef.NotesComments.Where(nc => nc.NC_ID == target_id).FirstOrDefault();
                ncom.NC_Likes--;
                if (ef.SaveChanges() > 0)
                {
                    ef.SP_UpdateNoteHotByN_ID(target_id);
                    res = true;
                }
                break;

            default:
                break;
            }
            return(res);
        }