/// <summary>
        /// 记录一次访问
        /// </summary>
        /// <param name="recommendUrlId"></param>
        /// <param name="openId"></param>
        public void Log(Guid recommendUrlId, string openId)
        {
            RecommendUrlEntity url = Get(recommendUrlId);

            if (url == null)
            {
                return;
            }

            RecommendUrlLogEntity log = new RecommendUrlLogEntity();

            log.Domain       = url.Domain;
            log.AppId        = url.AppId;
            log.UrlOwnMember = url.Member;
            log.VisitOpenId  = openId;
            log.Time         = DateTime.Now;
            _dataBase.Insert(log);

            //递增访问量计数
            List <CommandParameter> parameterList = new List <CommandParameter>();

            parameterList.Add(new CommandParameter("@id", recommendUrlId));

            _dataBase.ExecuteNonQuery(
                "UPDATE [RecommendUrl] SET [LandingCount] = [LandingCount] + 1 WHERE [Id] = @id",
                parameterList);
        }
        public RecommendUrlEntity Get(Guid id)
        {
            RecommendUrlEntity recommendUrl = new RecommendUrlEntity();

            recommendUrl.Id = id;

            if (_dataBase.Fill <RecommendUrlEntity>(recommendUrl))
            {
                return(recommendUrl);
            }
            else
            {
                return(null);
            }
        }
        public RecommendUrlEntity Get(DomainContext domainContext, Guid memberId)
        {
            List <CommandParameter> parameterList = new List <CommandParameter>();

            parameterList.Add(new CommandParameter("@domainId", domainContext.Domain.Id));
            parameterList.Add(new CommandParameter("@appId", domainContext.AppId));
            parameterList.Add(new CommandParameter("@memberId", memberId));

            List <RecommendUrlEntity> list = _dataBase.Select <RecommendUrlEntity>(
                "SELECT * FROM [RecommendUrl] WHERE [Domain] = @domainId AND [AppId] = @appId AND [Member] = @memberId", parameterList);

            if (list.Count > 0)
            {
                return(list[0]);
            }

            Guid id = Guid.NewGuid();

            string url = "{0}Function/RecommendUrl/{1}?id={2}";

            url = String.Format(url, _settingsManager.GetClientAddress(domainContext.AppId), domainContext.Domain.Id, id);
            string shortUrl = String.Empty;
            RequestApiResult <WeixinCreateShortUrlResult> getShortUrlResult = ShortUrlApiWrapper.GetShortUrl(domainContext, url);

            if (getShortUrlResult.Success)
            {
                shortUrl = getShortUrlResult.ApiResult.ShortUrl;
            }

            parameterList.Add(new CommandParameter("@id", id));
            parameterList.Add(new CommandParameter("@url", url));
            parameterList.Add(new CommandParameter("@shortUrl", shortUrl));

            _dataBase.ExecuteNonQuery(CommandType.StoredProcedure, "CreateRecommendUrl", parameterList);

            RecommendUrlEntity recommendUrl = new RecommendUrlEntity()
            {
                Id       = id,
                Domain   = domainContext.Domain.Id,
                AppId    = domainContext.AppId,
                Member   = memberId,
                Url      = url,
                ShortUrl = shortUrl
            };

            return(recommendUrl);
        }