public RecommendUrlSettingsEntity GetSettings(Guid domainId, string appId)
        {
            if (String.IsNullOrEmpty(appId))
            {
                return(null);
            }

            List <CommandParameter> parameterList = new List <CommandParameter>();

            parameterList.Add(new CommandParameter("@domainId", domainId));
            parameterList.Add(new CommandParameter("@appId", appId));

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

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

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

            RecommendUrlSettingsEntity settings = new RecommendUrlSettingsEntity()
            {
                Domain = domainId,
                AppId  = appId
            };

            return(settings);
        }
        /// <summary>
        /// 刷新指定域下面分组信息,将调用微信API获取最新分组信息
        /// </summary>
        /// <param name="domainContext"></param>
        public void SyncGroupList(DomainContext domainContext)
        {
            RequestApiResult <WeixinGetGroupListResult> result = GroupApiWrapper.GetGroupList(domainContext);

            if (result.Success)
            {
                List <CommandParameter> parameterList = new List <CommandParameter>();
                parameterList.Add(new CommandParameter("@domain", domainContext.Domain.Id));
                parameterList.Add(new CommandParameter("@appId", domainContext.AppId));

                _dataBase.ExecuteNonQuery("DELETE FROM [MemberGroup] WHERE [Domain] = @domain AND [AppId] = @appId",
                                          parameterList);

                foreach (WeixinGetGroupListResult_Group item in result.ApiResult.GroupList)
                {
                    MemberGroupEntity group = new MemberGroupEntity();
                    group.GroupId = item.Id;
                    group.Name    = item.Name;
                    group.Domain  = domainContext.Domain.Id;
                    group.AppId   = domainContext.AppId;
                    _dataBase.Insert(group);
                }

                //过滤用户,将已不存在的分组置为0
            }
            else
            {
                _log.Write("RefreshGroupList 失败", result.Message, TraceEventType.Warning);
            }
        }
        /// <summary>
        /// 刷新指定域下面分组信息,将调用微信API获取最新分组信息
        /// </summary>
        /// <param name="domainContext"></param>
        public void SyncTagList(DomainContext domainContext)
        {
            RequestApiResult <WeixinGetTagListResult> result = TagsApiWrapper.GetTagList(domainContext);

            if (result.Success)
            {
                List <CommandParameter> parameterList = new List <CommandParameter>();
                parameterList.Add(new CommandParameter("@domain", domainContext.Domain.Id));
                parameterList.Add(new CommandParameter("@appId", domainContext.AppId));

                _dataBase.ExecuteNonQuery("DELETE FROM [MemberTag] WHERE [Domain] = @domain AND [AppId] = @appId",
                                          parameterList);

                foreach (WeixinGetTagListResult_Tag item in result.ApiResult.TagList)
                {
                    MemberTagEntity tag = new MemberTagEntity();
                    tag.TagId  = item.Id;
                    tag.Name   = item.Name;
                    tag.Domain = domainContext.Domain.Id;
                    tag.AppId  = domainContext.AppId;
                    _dataBase.Insert(tag);
                }

                //过滤用户,将已不存在的分组置为0
            }
            else
            {
                _log.Write("RefreshTagList 失败", result.Message, TraceEventType.Warning);
            }
        }
        public void RemoveAdvancedArticle(Guid id)
        {
            List <CommandParameter> parameterList = new List <CommandParameter>();

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

            _dataBase.ExecuteNonQuery("DELETE FROM [AdvancedArticle] WHERE [Id] = @id", parameterList);
        }
Пример #5
0
        public void UpdateLastUpdateTime(Guid domainId)
        {
            List <CommandParameter> parameterList = new List <CommandParameter>();

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

            _dataBase.ExecuteNonQuery("UPDATE [Domain] SET [LastUpdateTime]=GETDATE() WHERE [Id] = @id", parameterList);
        }
        public void Remove(Guid id)
        {
            List <CommandParameter> parameterList = new List <CommandParameter>();

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

            _dataBase.ExecuteNonQuery("DELETE FROM [ScenicQRCode] WHERE [Id] = @id", parameterList);
            _dataBase.ExecuteNonQuery("DELETE FROM [ScenicQRCodeLandingLog] WHERE [QRCodeId] = @id", parameterList);
        }
        public void RemovePointCommodity(Guid id)
        {
            List <CommandParameter> parameterList = new List <CommandParameter>();

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

            _dataBase.ExecuteNonQuery("UPDATE [PointCommodity] SET [Remove] = 1 WHERE [Id] = @id",
                                      parameterList);
        }
        //解除授权
        public void Unauthorized(Guid domainId, string appId)
        {
            List <CommandParameter> parameterList = new List <CommandParameter>();

            parameterList.Add(new CommandParameter("@domainId", domainId));
            parameterList.Add(new CommandParameter("@appId", appId));

            _dataBase.ExecuteNonQuery(
                "UPDATE [Authorizer] SET [Online] = 0 WHERE [AppId] = @appId AND [Domain] = @domainId",
                parameterList);

            //更新LastUpdateTime
            DomainManager.Instance.UpdateLastDockingTime(domainId);
        }
Пример #9
0
        public void RemoveAutoReplyOnKeyWordsRule(Guid domainId, Guid id)
        {
            List <CommandParameter> parameterList = new List <CommandParameter>();

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

            _dataBase.ExecuteNonQuery("DELETE FROM [AutoReplyOnKeyWordsRule] WHERE [Id] = @id",
                                      parameterList);

            _dataBase.ExecuteNonQuery("DELETE FROM [AutoReplyOnKeyWordsContent] WHERE [RuleId] = @id",
                                      parameterList);

            _domainManager.UpdateLastUpdateTime(domainId);
        }
        public void RemoveTemplate(Guid id)
        {
            List <CommandParameter> parameterList = new List <CommandParameter>();

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

            _dataBase.ExecuteNonQuery("DELETE FROM [PortalPresetTemplate] WHERE [Id] = @id", parameterList);
        }
        /// <summary>
        /// 0 删除成功 1 指定的用户是域的最初拥有者
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public NormalResult RemoveUser(Guid id)
        {
            NormalResult            result        = new NormalResult(false);
            List <CommandParameter> parameterList = new List <CommandParameter>();

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

            //判断是否是DomainOwner
            bool domainOwner = false;

            _dataBase.ExecuteScalar <bool>(
                "SELECT [DomainOwner] FROM [User] WHERE [Removed] = 0 AND [Id] = @id",
                parameterList, (scalarValue) => { domainOwner = scalarValue; });
            if (domainOwner)
            {
                result.Reason = 1;
                return(result);
            }

            _dataBase.ExecuteNonQuery("UPDATE [User] SET [Removed] = 1 WHERE [Id] = @id",
                                      parameterList);

            result.Reason  = 0;
            result.Success = true;
            return(result);
        }
        public void PageVisit(Guid campaignId)
        {
            List <CommandParameter> parameterList = new List <CommandParameter>();

            parameterList.Add(new CommandParameter("@campaignId", campaignId));

            DataBase.ExecuteNonQuery("UPDATE [Campaign] SET [PageVisitCount] = [PageVisitCount] + 1 WHERE [Id] = @campaignId",
                                     parameterList);
        }
Пример #13
0
        public void RemoveCustomForm(Guid id)
        {
            List <CommandParameter> parameterList = new List <CommandParameter>();

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

            _dataBase.ExecuteNonQuery("DELETE FROM [CustomForm] WHERE [Id] = @id", parameterList);
            _dataBase.ExecuteNonQuery("DELETE FROM [CustomFormContent] WHERE [Form] = @id", parameterList);
        }
        /// <summary>
        /// 预约更新用户信息的标记,由Windows服务更新
        /// </summary>
        /// <param name="domainId"></param>
        /// <param name="appId"></param>
        /// <param name="memberId"></param>
        public void NeedUpdate(Guid memberId, bool needUpdate)
        {
            List <CommandParameter> parameterList = new List <CommandParameter>();

            //parameterList.Add(new CommandParameter("@domainId", domainId));
            //parameterList.Add(new CommandParameter("@appId", appId));
            parameterList.Add(new CommandParameter("@id", memberId));
            parameterList.Add(new CommandParameter("@needUpdate", needUpdate));

            _dataBase.ExecuteNonQuery(
                "UPDATE [Member] SET [NeedUpdate] = @needUpdate WHERE [Id] = @id",
                parameterList);
        }
        /// <summary>
        /// 推送component_verify_ticket协议
        /// </summary>
        /// <param name="xml"></param>
        private void ProcessComponentVerifyTicket(XElement xml)
        {
            string componentVerifyTicket = xml.XPathSelectElement("ComponentVerifyTicket").Value;

            if (String.IsNullOrEmpty(componentVerifyTicket))
            {
                return;
            }

            //写缓存
            //_caching.Set("ComponentVerifyTicket", componentVerifyTicket);
            _componentVerifyTicket = componentVerifyTicket;

            //写数据库
            try
            {
                List <CommandParameter> parameterList = new List <CommandParameter>();
                parameterList.Add(new CommandParameter("@componentVerifyTicket", componentVerifyTicket));

                object objCount = _dataBase.ExecuteScalar("SELECT Count(1) FROM [ThirdParty]");
                if (objCount == null || objCount == DBNull.Value || int.Parse(objCount.ToString()) == 0)
                {
                    _dataBase.ExecuteNonQuery("INSERT INTO [ThirdParty] ([ComponentVerifyTicket]) VALUES (@componentVerifyTicket)",
                                              parameterList);
                }
                else
                {
                    _dataBase.ExecuteNonQuery("UPDATE [ThirdParty] SET [ComponentVerifyTicket] = @componentVerifyTicket",
                                              parameterList);
                }
            }
            catch (Exception ex)
            {
                _logService.Write("ComponentVerifyTicket", "写入数据库失败。" + ex.Message, TraceEventType.Error);
            }
        }
        public void RemoveInformation(Guid id)
        {
            List <CommandParameter> parameterList = new List <CommandParameter>();

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

            _dataBase.ExecuteNonQuery("DELETE FROM [Information] WHERE [Id] = @id", parameterList);
            _dataBase.ExecuteNonQuery("DELETE FROM [InformationCategory] WHERE [Information] = @id", parameterList);
            _dataBase.ExecuteNonQuery("DELETE FROM [InformationItem] WHERE [Information] = @id", parameterList);
        }
        public void Finish(Guid domainId, string appId, ReceivingXMLMessage_GroupMessageFinishEvent message)
        {
            List <CommandParameter> parameterList = new List <CommandParameter>();

            parameterList.Add(new CommandParameter("@domain", domainId));
            parameterList.Add(new CommandParameter("@appId", appId));
            parameterList.Add(new CommandParameter("@msgId", message.MsgId));
            parameterList.Add(new CommandParameter("@status", message.Status));
            parameterList.Add(new CommandParameter("@totalCount", message.TotalCount));
            parameterList.Add(new CommandParameter("@filterCount", message.FilterCount));
            parameterList.Add(new CommandParameter("@sentCount", message.SentCount));
            parameterList.Add(new CommandParameter("@errorCount", message.ErrorCount));

            _dataBase.ExecuteNonQuery(
                "UPDATE [GroupMessage] SET [Status] = @status, [TotalCount] = @totalCount,[FilterCount] = @filterCount,[SentCount] = @sentCount, [ErrorCount] = @errorCount WHERE [Domain] = @domain AND [AppId] = @appId AND [MsgId] = @msgId",
                parameterList);
        }
Пример #18
0
        public string RemoveNormalMaterial(DomainContext domainContext, Guid id, string mediaId)
        {
            RequestApiResult requestApiResult = MaterialApiWrapper.RemoveMaterial(domainContext, mediaId);

            if (requestApiResult.Success == false)
            {
                return(requestApiResult.Message);
            }

            List <CommandParameter> parameterList = new List <CommandParameter>();

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

            _dataBase.ExecuteNonQuery("DELETE FROM [NormalMaterial] WHERE [Id] = @id AND [MediaId] = @mediaId",
                                      parameterList);

            return(null);
        }
Пример #19
0
        public void Execute(IJobExecutionContext context)
        {
            List <PointCommodityOrderEntity> orderList = _pointCommodityManager.GetOverdueOrderList();

            if (orderList == null || orderList.Count == 0)
            {
                return;
            }

            _log.Write("释放过期的积分商城订单", String.Format("取得过期订单:{0}", orderList.Count), TraceEventType.Verbose);

            foreach (PointCommodityOrderEntity item in orderList)
            {
                List <CommandParameter> parameterList = new List <CommandParameter>();
                parameterList.Add(new CommandParameter("@orderId", item.Id));

                _dataBase.ExecuteNonQuery(CommandType.StoredProcedure, "ReleaseOverduePointCommodityOrder",
                                          parameterList);
            }
        }
 /// <summary>
 /// 商品上架
 /// </summary>
 private void CommodityForSale()
 {
     _dataBase.ExecuteNonQuery(CommandType.StoredProcedure, "OneDollarBuyingCommodityPutOnSale");
 }
Пример #21
0
        public NormalResult RefreshPayOrder(string outTradeNo, AuthorizerPayConfig config)
        {
            NormalResult result = new NormalResult();

            if (config == null)
            {
                result.Success = false;
                result.Message = "当前公众号没有微信支付所需配置信息。";
                return(result);
            }

            WeixinPayOrderQueryArgs orderQueryArgs = new WeixinPayOrderQueryArgs();

            orderQueryArgs.AppId      = config.AppId;
            orderQueryArgs.MchId      = config.MchId;
            orderQueryArgs.OutTradeNo = outTradeNo;

            WxPayArgs wxPayArgs = config.GetWxPayArgs(false);

            RequestPayApiResult <WeixinPayOrderQueryResult> orderQueryResult =
                WxPayApi.OrderQuery(orderQueryArgs, wxPayArgs);

            if (orderQueryResult.Success == false)
            {
                _log.Write("OrderQuery 失败",
                           orderQueryResult.Message + "\r\n"
                           + JsonHelper.Serializer(orderQueryArgs) + " "
                           + JsonHelper.Serializer(orderQueryResult),
                           TraceEventType.Warning);

                result.Success = false;
                result.Message = orderQueryResult.Message;
                return(result);
            }

            WeixinPayOrderQueryResult orderQuery = orderQueryResult.ApiResult;

            Guid payOrderId;

            if (Guid.TryParse(orderQuery.Attach, out payOrderId) == false)
            {
                string attacth = String.Empty;
                if (orderQuery.Attach != null)
                {
                    attacth = orderQuery.Attach;
                }
                _log.Write("Attach 无法转为本地订单Id" + attacth, orderQuery.OutTradeNo, TraceEventType.Verbose);
                result.Success = false;
                result.Message = "Attach 无法转为本地订单Id。" + attacth;
                return(result);
            }

            PayOrderEntity payOrder = GetPayOrder(payOrderId);

            SqlStructureBuild sqlBuild = new SqlStructureBuild();

            sqlBuild.Table = "PayOrder";
            sqlBuild.Type  = SqlExpressionType.Update;
            sqlBuild.AddParameter("Id", payOrderId, true);
            sqlBuild.AddParameter("TradeState", EnumHelper.GetEnumFieldByValue <EnumPayTradeState>(orderQuery.TradeState));
            sqlBuild.AddParameter("TradeStateDesc", orderQuery.TradeStateDesc);
            sqlBuild.AddParameter("BankType", orderQuery.BankType);
            sqlBuild.AddParameter("FeeType", orderQuery.FeeType);
            sqlBuild.AddParameter("CouponFee", orderQuery.CouponFee);
            sqlBuild.AddParameter("CouponCount", orderQuery.CouponCount);
            sqlBuild.AddParameter("TransactionId", orderQuery.TransactionId);
            if (orderQuery.TimeEnd != null)
            {
                sqlBuild.AddParameter("TimeEnd", WeixinApiHelper.ConvertStringToDateTime(orderQuery.TimeEnd));
            }
            sqlBuild.AddParameter("Notify_ReturnCode", orderQuery.ReturnCode);
            sqlBuild.AddParameter("Notify_ReturnMsg", orderQuery.ReturnMsg);
            sqlBuild.AddParameter("Notify_ResultCode", orderQuery.ResultCode);
            sqlBuild.AddParameter("Notify_ErrCode", orderQuery.ErrCode);
            sqlBuild.AddParameter("Notify_ErrCodeDes", orderQuery.ErrCodeDes);
            int affectedRowCount = _dataBase.ExcuteSqlExpression(sqlBuild.GetSqlExpression());

            if (affectedRowCount == 0)
            {
                _log.Write("本地订单不存在", orderQuery.OutTradeNo, TraceEventType.Warning);
                result.Success = false;
                result.Message = "本地订单不存在。";
                return(result);
            }

            if (orderQuery.CouponCount > 0)
            {
                List <CommandParameter> parameterList = new List <CommandParameter>();
                parameterList.Add(new CommandParameter("@payOrderId", payOrder.Id));

                _dataBase.ExecuteNonQuery(
                    "DELETE FROM [PayOrderCoupon] WHERE [PayOrderId] = @payOrderId", parameterList);

                foreach (WeixinPayOrderQueryResult_Coupon coupon in orderQuery.CouponList)
                {
                    coupon.PayOrderId = payOrder.Id;
                    _dataBase.Insert(coupon);
                }
            }

            result.Success = true;
            return(result);
        }
Пример #22
0
        public void Sync(Guid domainId, string appId, MovieTimesBundle bundle)
        {
            if (bundle == null)
            {
                return;
            }

            List <CommandParameter> parameterList = new List <CommandParameter>();

            parameterList.Add(new CommandParameter("@domainId", domainId));
            parameterList.Add(new CommandParameter("@appId", appId));

            _dataBase.ExecuteNonQuery(
                "UPDATE [MovieSettings] SET [SyncTime] = GETDATE() WHERE [Domain] = @domainId AND [AppId] = @appId",
                parameterList);

            parameterList = new List <CommandParameter>();
            parameterList.Add(new CommandParameter("@domainId", domainId));
            parameterList.Add(new CommandParameter("@appId", appId));
            parameterList.Add(new CommandParameter("@date", bundle.Date));
            _dataBase.ExecuteNonQuery(
                "DELETE FROM [MoviePlan] WHERE [Domain] = @domainId AND [AppId] = @appId AND [Date] = @date",
                parameterList);

            _dataBase.ExecuteNonQuery(
                "DELETE FROM [MovieTimes] WHERE [Domain] = @domainId AND [AppId] = @appId AND CONVERT(VARCHAR(10),[Time],120) = CONVERT(VARCHAR(10),@date,120)",
                parameterList);

            int i = 0;

            foreach (MovieEntity movie in bundle.MovieList)
            {
                i++;

                parameterList = new List <CommandParameter>();
                parameterList.Add(new CommandParameter("@mtimeId", movie.MtimeId));

                List <MovieEntity> movieList = _dataBase.Select <MovieEntity>(
                    "SELECT * FROM [Movie] WHERE [MtimeId] = @mtimeId", parameterList);
                if (movieList.Count == 0)
                {
                    _dataBase.Insert(movie);
                }
                else
                {
                    movie.Id = movieList[0].Id;
                }

                MoviePlanEntity plan = new MoviePlanEntity();
                plan.Domain = domainId;
                plan.AppId  = appId;
                plan.Date   = bundle.Date;
                plan.Movie  = movie.Id;
                plan.Sort   = i;
                _dataBase.Insert(plan);

                foreach (MovieTimesEntity item in movie.TimesList)
                {
                    item.Domain = domainId;
                    item.AppId  = appId;
                    item.Movie  = movie.Id;
                    _dataBase.Insert(item);
                }
            }
        }