示例#1
0
文件: LogRepo.cs 项目: wjydc/YueDu_v3
        public int ChapterReadLogLocalSync(NovelReadRecordInfo novelReadRecordInfo)
        {
            string spName = "Wap.NovelReadRecord_LocalSync";

            var p = new DynamicParameters();

            p.Add("@NovelId", novelReadRecordInfo.NovelId);
            p.Add("@ChapterId", novelReadRecordInfo.ChapterId);
            p.Add("@ChapterCode", novelReadRecordInfo.ChapterCode);
            p.Add("@Position", novelReadRecordInfo.Position);
            p.Add("@RecentReadTime", novelReadRecordInfo.RecentReadTime);
            p.Add("@CookieId", novelReadRecordInfo.CookieId);
            p.Add("@UserId", novelReadRecordInfo.UserId);
            p.Add("@UserName", novelReadRecordInfo.UserName);
            p.Add("@ClientId", novelReadRecordInfo.ClientId);
            p.Add("@Version", novelReadRecordInfo.Version);
            p.Add("@UserAgent", novelReadRecordInfo.UserAgent);
            p.Add("@IMEI", novelReadRecordInfo.IMEI);
            p.Add("@IMSI", novelReadRecordInfo.IMSI);
            p.Add("@ChannelId", novelReadRecordInfo.ChannelId);
            p.Add("@SourceType", novelReadRecordInfo.SourceType);
            p.Add("@AddTime", novelReadRecordInfo.AddTime);
            p.Add("@RouteChannelId", novelReadRecordInfo.RouteChannelId);
            p.Add("@ROut", dbType: DbType.Int32, direction: ParameterDirection.Output);

            DbManage.Execute(spName, p, CommandType.StoredProcedure);

            return(p.Get <int>("@ROut"));
        }
示例#2
0
        public int ChapterReadLogLocalSync(NovelReadRecordInfo novelReadRecordInfo)
        {
            if (novelReadRecordInfo == null)
            {
                return(0);
            }

            using (var conn = DbConnection(DbOperation.Write))
            {
                var repo = new Repository.LogRepo(conn);
                return(repo.ChapterReadLogLocalSync(novelReadRecordInfo));
            }
        }
示例#3
0
        public int ChapterReadLog(ChapterLogInfo chapterLogInfo, NovelReadRecordInfo novelReadRecordInfo)
        {
            if (chapterLogInfo == null || novelReadRecordInfo == null)
            {
                return(0);
            }

            using (var conn = DbConnection(DbOperation.Write))
            {
                var repo = new Repository.LogRepo(conn);
                return(repo.ChapterReadLog(chapterLogInfo, novelReadRecordInfo));
            }
        }
示例#4
0
        public static NovelReadRecordInfo GetRecentChapter(string cookieName, ILogService logService, string userName)
        {
            NovelReadRecordInfo model = null;

            if (string.Compare(Constants.SecurityKey.NovelRecentRead_CookieName.ToString(), cookieName, true) == 0)
            {
                model = logService.GetRecentChapterByType(userName, 0);
            }
            else
            {
                model = logService.GetRecentChapterExceptType(userName, 0);
            }
            return(model);
        }
示例#5
0
        public void Read()
        {
            string userName = currentUser.UserName;

            if (!string.IsNullOrEmpty(userName) && NovelId > 0)
            {
                ILogService         service = DataContext.ResolveService <ILogService>();
                NovelReadRecordInfo model   = service.GetRecentChapter(userName, NovelId);
                if (model != null && model.Id > 0)
                {
                    ChapterCode = model.ChapterCode;
                }
            }

            Redirect(ChapterContext.GetUrl("/chapter/detail", NovelId, ChapterCode, ChapterDirection, channelId: RouteChannelId));
        }
示例#6
0
        protected void ChapterReadLogSync(string userName, string cookieName, int userId = 0)
        {
            if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(cookieName))
            {
                return;
            }

            try
            {
                NovelRecentReadListView readLog = RecentReadContext.Get(cookieName, userId);
                if (readLog != null && !readLog.List.IsNullOrEmpty <NovelRecentReadView>())
                {
                    ILogService service = DataContext.ResolveService <ILogService>();

                    NovelReadRecordInfo novelReadRecordInfo = null;
                    foreach (NovelRecentReadView item in readLog.List)
                    {
                        novelReadRecordInfo                = new NovelReadRecordInfo();
                        novelReadRecordInfo.AddTime        = DateTime.Now;
                        novelReadRecordInfo.ChannelId      = "";
                        novelReadRecordInfo.ChapterCode    = item.ChapterCode;
                        novelReadRecordInfo.ChapterId      = 0;
                        novelReadRecordInfo.ClientId       = 0;
                        novelReadRecordInfo.CookieId       = "";
                        novelReadRecordInfo.IMEI           = "";
                        novelReadRecordInfo.IMSI           = "";
                        novelReadRecordInfo.NovelId        = item.Id;
                        novelReadRecordInfo.Position       = 0;
                        novelReadRecordInfo.RecentReadTime = item.ReadTime;
                        novelReadRecordInfo.RouteChannelId = item.RouteChannelId;
                        novelReadRecordInfo.SourceType     = (int)Constants.Version.wap;
                        novelReadRecordInfo.UserAgent      = "";
                        novelReadRecordInfo.UserId         = userId;
                        novelReadRecordInfo.UserName       = userName;
                        novelReadRecordInfo.Version        = "";
                        service.ChapterReadLogLocalSync(novelReadRecordInfo);
                    }
                }
            }
            catch { }
        }
示例#7
0
        /// <summary>
        /// 章节详情日志,小说阅读记录
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="novelId"></param>
        /// <param name="chapterId"></param>
        /// <param name="chapterCode"></param>
        protected void ReadLog(string userName, int novelId, int chapterId, int chapterCode)
        {
            ChapterLogInfo model = new ChapterLogInfo();

            model             = GetLogInfo(model) as ChapterLogInfo;
            model.CookieId    = GetCookieId();
            model.NovelId     = novelId;
            model.ChapterId   = chapterId;
            model.ChapterCode = chapterCode;
            model.AddTime     = DateTime.Now;
            model.UserName    = userName;

            NovelReadRecordInfo novelReadRecordInfo = new NovelReadRecordInfo();

            novelReadRecordInfo.Position       = 0;
            novelReadRecordInfo.RecentReadTime = System.DateTime.Now;

            ILogService service = DataContext.ResolveService <ILogService>();

            service.ChapterReadLog(model, novelReadRecordInfo);
        }
示例#8
0
        /// <summary>
        /// 获取最近阅读记录
        /// </summary>
        /// <param name="cookieName"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public static NovelRecentReadView First(string cookieName, ILogService logService, string userName, int id = 0)
        {
            if (logService != null && !string.IsNullOrEmpty(userName))
            {
                NovelReadRecordInfo recordInfo = GetRecentChapter(cookieName, logService, userName);
                if (recordInfo != null && recordInfo.Id > 0)
                {
                    NovelRecentReadView readInfo = new NovelRecentReadView();
                    readInfo.Id             = recordInfo.NovelId;
                    readInfo.ChapterName    = recordInfo.ChapterName;
                    readInfo.ChapterCode    = recordInfo.ChapterCode;
                    readInfo.ContentType    = recordInfo.NovelContentType;
                    readInfo.Title          = recordInfo.NovelTitle;
                    readInfo.ReadTime       = recordInfo.RecentReadTime;
                    readInfo.RouteChannelId = recordInfo.RouteChannelId;
                    return(readInfo);
                }
            }

            return(First(cookieName, id));
        }
示例#9
0
文件: LogRepo.cs 项目: wjydc/YueDu_v3
        public int ChapterReadLogSync(ChapterLogInfo chapterLogInfo, NovelReadRecordInfo novelReadRecordInfo)
        {
            string spName = "Wap.Chapter_ReadSync";

            var p = new DynamicParameters();

            p.Add("@NovelId", chapterLogInfo.NovelId);
            p.Add("@ChapterId", chapterLogInfo.ChapterId);
            p.Add("@ChapterCode", chapterLogInfo.ChapterCode);
            p.Add("@Position", novelReadRecordInfo.Position);
            p.Add("@RecentReadTime", novelReadRecordInfo.RecentReadTime);
            p.Add("@CookieId", chapterLogInfo.CookieId);
            p.Add("@UserId", chapterLogInfo.UserId);
            p.Add("@UserName", chapterLogInfo.UserName);
            p.Add("@ClientId", chapterLogInfo.ClientId);
            p.Add("@Version", chapterLogInfo.Version);
            p.Add("@UserAgent", chapterLogInfo.UserAgent);
            p.Add("@IMEI", chapterLogInfo.IMEI);
            p.Add("@IMSI", chapterLogInfo.IMSI);
            p.Add("@ChannelId", chapterLogInfo.ChannelId);
            p.Add("@SourceType", chapterLogInfo.SourceType);
            p.Add("@Mobile", chapterLogInfo.Mobile);
            p.Add("@NetType", chapterLogInfo.NetType);
            p.Add("@Province", chapterLogInfo.Province);
            p.Add("@City", chapterLogInfo.City);
            p.Add("@ReferUrl", chapterLogInfo.ReferUrl);
            p.Add("@IPAddress", chapterLogInfo.IPAddress);
            p.Add("@RemoteHost", chapterLogInfo.RemoteHost);
            p.Add("@AddTime", chapterLogInfo.AddTime);
            p.Add("@PromotionCode", chapterLogInfo.PromotionCode);
            p.Add("@RouteChannelId", novelReadRecordInfo.RouteChannelId);
            p.Add("@ROut", dbType: DbType.Int32, direction: ParameterDirection.Output);

            DbManage.Execute(spName, p, CommandType.StoredProcedure);

            return(p.Get <int>("@ROut"));
        }
示例#10
0
        /// <summary>
        /// 书籍详情
        /// </summary>
        /// <param name="nid"></param>
        /// <returns></returns>
        public async Task <ActionResult> Detail(int novelId = 0)
        {
            string loginUserName = currentUser.UserName;
            Novel  novel         = null;

            if (novelId > 0)
            {
                novel = _bookService.GetNovel(novelId);
            }

            if (novel == null || novel.Id <= 0)
            {
                return(Redirect(DataContext.GetErrorUrl(ErrorMessage.小说不存在, channelId: RouteChannelId)));
            }

            BookDetailView view = novel.ToBookDetailView();
            //活动截止时间
            var packageInfo = await Task.Run(() => _packageService.GetNovelPackage(Constants.PackageType.LimitFree, novelId));

            if (packageInfo != null)
            {
                view.PackageEndTime = packageInfo.EndTime;
            }
            else
            {
                view.PackageEndTime = null;
            }

            //是否收藏
            bool isAddMark = await Task.Run(() => _bookmarkService.Exists(novelId, loginUserName));

            view.IsAddMark = isAddMark;
            //是否全本优惠
            view.IsOrder = await Task.Run(() => IsOrder(_orderService));

            //阅读记录
            ILogService         logService = DataContext.ResolveService <ILogService>();
            NovelReadRecordInfo readRecord = await Task.Run(() => logService.GetRecentChapter(loginUserName, novelId));

            if (readRecord != null)
            {
                view.RecentReadChapterCode = readRecord.ChapterCode;
            }

            //作者的话
            string column = "Message";

            string where = "and novelId = @novelId and authorId = @authorId ";
            string orderby      = " order by id desc";
            var    authorNotice = await Task.Run(() => _bookService.GetAuthorNotice(column, where, orderby, new { novelId = novelId, authorId = novel.UserId }));

            view.AuthorNotice = authorNotice == null ? null : authorNotice.Message;

            //章节信息
            var lastChapter = await Task.Run(() => _chapterService.GetLatestChapter(novelId));

            view.RecentChapterName       = lastChapter == null ? null : lastChapter.ChapterName;
            view.RecentChapterUpdateTime = lastChapter == null ? default(DateTime) : lastChapter.OnlineTime;
            view.RecentChapterCode       = lastChapter == null ? 0 : lastChapter.ChapterCode;
            int rowCount    = 0;
            var chapterList = await Task.Run(() => GetChapterList(out rowCount, novelId, novel.ContentType));

            view.TotalChapterCount = rowCount;
            view.ChapterList       = new SimpleResponse <IEnumerable <ChapterView> >(!chapterList.IsNullOrEmpty(), chapterList);

            //评论信息
            int commentCount = 0;
            var commentList  = await Task.Run(() => GetCommentList(out commentCount, novel.Id));

            view.CommentCount = commentCount;
            view.CommentList  = new SimpleResponse <IEnumerable <CommentView> >(!commentList.IsNullOrEmpty(), commentList);

            //猜你喜欢
            bool IsCartoonType = novel.ContentType == (int)Constants.Novel.ContentType.漫画;

            view.RecClassId = IsCartoonType ? RecSection.CartoonDetail.GuessRec : RecSection.BookDetail.GuessRec;
            if (IsCartoonType)
            {
                //漫画详情-来源
                var cp = await Task.Run(() => _bookService.GetCP("CnName", "and Id = @cpId and status = @status", "order by id ", new { cpId = novel.CPId, status = 1 }));

                view.CPName = cp == null ? null : cp.CnName;
            }

            //记录日志

            NovelLogInfo log = new NovelLogInfo();

            log          = GetLogInfo(log) as NovelLogInfo;
            log.CookieId = GetCookieId();
            log.NovelId  = novelId;
            log.AddTime  = DateTime.Now;
            var service = DataContext.ResolveService <ILogService>();
            await Task.Run(() => service.NovelReadLog(log));

            var model = new SimpleResponse <BookDetailView>(view != null, view);

            if (IsCartoonType)
            {
                return(View("/Views/Cartoon/Detail.cshtml", model));
            }
            else
            {
                return(View(model));
            }
        }