Ejemplo n.º 1
0
        /// <summary>
        /// Query查询
        /// </summary>
        /// <param name="filter"></param>
        /// <returns></returns>
        public static QueryResult QueryRules(FreeShippingChargeRuleQueryFilter filter)
        {
            int       count = 0;
            DataTable dt    = FreeShippingChargeRuleDA.Query(filter, out count);

            return(new QueryResult(dt, filter, count));
        }
Ejemplo n.º 2
0
        public QueryResult QueryRules(FreeShippingChargeRuleQueryFilter filter)
        {
            int totalCount;
            var dataTable = ObjectFactory <IFreeShippingChargeRuleQueryDA> .Instance.Query(filter, out totalCount);

            return(new QueryResult()
            {
                Data = dataTable,
                TotalCount = totalCount
            });
        }
        public void Query(FreeShippingChargeRuleQueryVM model, EventHandler <RestClientEventArgs <dynamic> > callback)
        {
            FreeShippingChargeRuleQueryFilter filter = model.ConvertVM <FreeShippingChargeRuleQueryVM, FreeShippingChargeRuleQueryFilter>();

            string relativeUrl = "/CommonService/FreeShippingChargeRule/Query";

            restClient.QueryDynamicData(relativeUrl, filter, (_, args) =>
            {
                if (args.FaultsHandle())
                {
                    return;
                }
                callback(this, new RestClientEventArgs <dynamic>(args.Result, this.Page));
            });
        }
Ejemplo n.º 4
0
        public static DataTable Query(FreeShippingChargeRuleQueryFilter filter, out int totalCount)
        {
            CustomDataCommand command = DataCommandManager.CreateCustomDataCommandFromConfig("QueryFreeShippingChargeRule");

            using (DynamicQuerySqlBuilder builder = new DynamicQuerySqlBuilder(command.CommandText, command, filter, "[SysNo] DESC"))
            {
                if (filter.StartDate.HasValue || filter.EndDate.HasValue)
                {
                    builder.ConditionConstructor.BeginGroupCondition(QueryConditionRelationType.AND);
                    #region 构造时间条件
                    builder.ConditionConstructor.BeginGroupCondition(QueryConditionRelationType.OR);
                    // s1 ≤ start && t1 ≥ start
                    builder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "StartDate", DbType.Date,
                                                              "@StartDate1", QueryConditionOperatorType.MoreThanOrEqual, filter.StartDate);
                    builder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "StartDate", DbType.Date,
                                                              "@EndDate1", QueryConditionOperatorType.LessThanOrEqual, filter.EndDate);
                    builder.ConditionConstructor.EndGroupCondition();

                    builder.ConditionConstructor.BeginGroupCondition(QueryConditionRelationType.OR);
                    // s1 ≥ start && t1 ≤ end
                    builder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "StartDate", DbType.Date,
                                                              "@StartDate2", QueryConditionOperatorType.LessThanOrEqual, filter.StartDate);
                    builder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "EndDate", DbType.Date,
                                                              "@EndDate2", QueryConditionOperatorType.MoreThanOrEqual, filter.EndDate);
                    builder.ConditionConstructor.EndGroupCondition();

                    builder.ConditionConstructor.BeginGroupCondition(QueryConditionRelationType.OR);
                    // s1 ≤ end && t1 ≥ end
                    builder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "EndDate", DbType.Date,
                                                              "@StartDate3", QueryConditionOperatorType.MoreThanOrEqual, filter.StartDate);
                    builder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "EndDate", DbType.Date,
                                                              "@EndDate3", QueryConditionOperatorType.LessThanOrEqual, filter.EndDate);
                    builder.ConditionConstructor.EndGroupCondition();
                    #endregion
                    builder.ConditionConstructor.EndGroupCondition();
                }

                builder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "AmountSettingValue", DbType.Decimal,
                                                          "@AmtFrom", QueryConditionOperatorType.MoreThanOrEqual, filter.AmtFrom);

                builder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "AmountSettingValue", DbType.Decimal,
                                                          "@AmtTo", QueryConditionOperatorType.LessThanOrEqual, filter.AmtTo);

                if (filter.PayTypeSysNo.HasValue)
                {
                    builder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "PayTypeSettingValue", DbType.AnsiString,
                                                              "@PayTypeSettingValueLike", QueryConditionOperatorType.Like, string.Format(",{0},", filter.PayTypeSysNo));
                }

                if (filter.ProvinceSysNo.HasValue)
                {
                    builder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "ShipAreaSettingValue", DbType.AnsiString,
                                                              "@ShipAreaSettingValueLike", QueryConditionOperatorType.Like, string.Format(",{0},", filter.ProvinceSysNo));
                }

                builder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "Status", DbType.AnsiStringFixedLength,
                                                          "@Status", QueryConditionOperatorType.Equal, filter.Status);

                builder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "AmountSettingType", DbType.Int32,
                                                          "@AmountSettingType", QueryConditionOperatorType.Equal, filter.AmountSettingType);

                command.SetParameterValue("@SellerSysNo", filter.SellerSysNo);

                command.CommandText = builder.BuildQuerySql();

                EnumColumnList enumList = new EnumColumnList();
                enumList.Add("AmountSettingType", typeof(FreeShippingAmountSettingType));
                enumList.Add("Status", typeof(FreeShippingAmountSettingStatus));


                DataTable dt = command.ExecuteDataTable(enumList);

                if (dt != null && dt.Rows.Count > 0)
                {
                    string   areaSettingName = String.Empty;
                    string[] areaNameParts;
                    foreach (DataRow row in dt.Rows)
                    {
                        if (!(row["AreaSettingName"] is DBNull) && row["AreaSettingName"] != null)
                        {
                            areaSettingName = Convert.ToString(row["AreaSettingName"]);
                            areaNameParts   = areaSettingName.Split(new char[] { ',' }, StringSplitOptions.None);
                            if (areaNameParts.Length > 4)
                            {
                                row["AreaSettingName"] = string.Format("{0}等{1}个地区",
                                                                       string.Join(",", areaNameParts.ToList().GetRange(0, 4)), areaNameParts.Length);
                            }
                        }
                    }
                }

                totalCount = Convert.ToInt32(command.GetParameterValue("@TotalCount"));
                return(dt);
            }
        }