/// <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)); }
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)); }); }
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); } }