private object GetDbValue(object value) { if (value == null || value == DBNull.Value) { return(DBNull.Value); } Type type = value.GetType(); if (type.IsEnum || (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable <>) && type.GetGenericArguments() != null && type.GetGenericArguments().Length == 1 && type.GetGenericArguments()[0].IsEnum)) { object code; if (EnumCodeMapper.TryGetCode(value, out code)) { return(code); } else { return((int)value); } } return(value); }
public ConsignToAcctLogInfo CreateConsignToAccountLog(ConsignToAcctLogInfo logInfo) { DataCommand command = DataCommandManager.GetDataCommand("CreateConsignToAccountLog"); command.SetParameterValue("@SysNo", logInfo.LogSysNo); command.SetParameterValue("@ProductSysNo", logInfo.ProductSysNo); command.SetParameterValue("@VendorSysNo", logInfo.VendorSysNo); command.SetParameterValue("@StockSysNo", logInfo.StockSysNo); command.SetParameterValue("@Quantity", logInfo.ProductQuantity); command.SetParameterValue("@CreateCost", logInfo.CreateCost); command.SetParameterValue("@SettleCost", logInfo.SettleCost); command.SetParameterValue("@ConsignToAccType", (int)logInfo.ConsignToAccType); command.SetParameterValue("@Note", logInfo.Note); object getCode = ""; EnumCodeMapper.TryGetCode(logInfo.ConsignToAccStatus, out getCode); if (null != getCode) { command.SetParameterValue("@Status", getCode.ToString()); } command.SetParameterValue("@SettleType", logInfo.SettleType.ToString()); command.SetParameterValue("@SettlePercentage", logInfo.SettlePercentage); command.SetParameterValue("@SalePrice", logInfo.SalePrice); command.SetParameterValue("@Point", logInfo.Point); command.SetParameterValue("@OrderSysNo", logInfo.OrderSysNo); command.SetParameterValue("@CompanyCode", logInfo.CompanyCode); logInfo.LogSysNo = System.Convert.ToInt32(command.ExecuteScalar()); return(logInfo); }
// /// <summary> /// 根据团购编号修改所有团购订单的处理状态 /// </summary> /// <param name="groupBuySysNo">团购编号</param> /// <param name="settlementStatus">处理状态</param> public void UpdateGroupBuySOSettlementStatusByGroupBuySysNo(int groupBuySysNo, SettlementStatus settlementStatus) { DataCommand command = DataCommandManager.GetDataCommand("SO_Update_GroupBuySettlementStatusByGroupBuySysNo"); command.SetParameterValue("@ReferenceSysNo", groupBuySysNo); object status = null; EnumCodeMapper.TryGetCode(settlementStatus, out status); command.SetParameterValue("@SettlementStatus", status); command.ExecuteNonQuery(); }
/// <summary> /// 修改团购处理状态 /// </summary> /// <param name="sysNo"></param> /// <param name="settlementStatus"></param> public void UpdateGroupBuySettlementStatus(int sysNo, GroupBuyingSettlementStatus settlementStatus) { DataCommand command = DataCommandManager.GetDataCommand("ChangeGroupBuySettlement"); command.SetParameterValue("@SysNo", sysNo); object status = "N"; EnumCodeMapper.TryGetCode(settlementStatus, out status); command.SetParameterValue("@SettlementStatus", status); command.ExecuteNonQuery(); }
public static int SaveGiftPromotionMasterInfo(SalesGiftInfo info) { if (!info.SysNo.HasValue) { DataCommand cmd = DataCommandManager.GetDataCommand("SaleGift_CreateSaleGiftMaster"); cmd.SetParameterValue("@PromotionName", info.Title); cmd.SetParameterValue("@PromotionDesc", info.Description); object typeCode = null; EnumCodeMapper.TryGetCode(info.Type.Value, out typeCode); cmd.SetParameterValue("@Type", typeCode.ToString()); cmd.SetParameterValue("@Status", SaleGiftStatus.Origin); cmd.SetParameterValue("@BeginDate", info.BeginDate.Value); cmd.SetParameterValue("@Enddate", info.EndDate.Value); cmd.SetParameterValue("@AmountLimit", !info.OrderMinAmount.HasValue ? 0 : info.OrderMinAmount.Value); cmd.SetParameterValue("@PromotionLink", info.PromotionLink); cmd.SetParameterValue("@Memo", info.Memo); cmd.SetParameterValue("@InUser", info.InUserName ?? ""); cmd.SetParameterValue("@DisCountType", SaleGiftDiscountBelongType.BelongMasterItem); cmd.SetParameterValue("@IsGlobal", info.IsGlobalProduct == true ? "Y" : "N"); cmd.SetParameterValue("@CompanyCode", info.CompanyCode); cmd.SetParameterValue("@VendorSysNo", info.SellerSysNo); cmd.ExecuteNonQuery(); info.SysNo = (int)cmd.GetParameterValue("@SysNo"); return(info.SysNo.Value); } else { DataCommand cmd = DataCommandManager.GetDataCommand("SaleGift_UpdateSaleGiftMaster"); cmd.SetParameterValue("@SysNo", info.SysNo); cmd.SetParameterValue("@PromotionName", info.Title); object typeCode = null; EnumCodeMapper.TryGetCode(info.Type.Value, out typeCode); cmd.SetParameterValue("@Type", typeCode); cmd.SetParameterValue("@PromotionDesc", info.Description); cmd.SetParameterValue("@BeginDate", info.BeginDate); cmd.SetParameterValue("@Enddate", info.EndDate.Value); cmd.SetParameterValue("@AmountLimit", !info.OrderMinAmount.HasValue ? 0 : info.OrderMinAmount.Value); cmd.SetParameterValue("@PromotionLink", info.PromotionLink); cmd.SetParameterValue("@Memo", info.Memo); cmd.SetParameterValue("@EditUser", info.EditUser); cmd.SetParameterValue("@DisCountType", SaleGiftDiscountBelongType.BelongMasterItem); cmd.SetParameterValue("@VendorSysNo", info.VendorSysNo); cmd.ExecuteNonQuery(); return(info.SysNo.Value); } }
/// <summary> /// 查询配送方式-产品 /// </summary> /// <param name="filter"></param> /// <param name="totalCount"></param> /// <returns></returns> public DataTable QueryShipTypeProductList(ShipTypeProductQueryFilter filter, out int totalCount) { totalCount = 0; object _itemRange = null;; object _type = null; CustomDataCommand cmd = DataCommandManager.CreateCustomDataCommandFromConfig("ShipTypeProduct_QueryShipTypeProduct"); PagingInfoEntity pagingInfo = ToPagingInfo(filter.PagingInfo); using (DynamicQuerySqlBuilder sqlBuilder = new DynamicQuerySqlBuilder(cmd.CommandText, cmd, pagingInfo, "SPI.SysNo DESC")) { if (filter.ShipTypeProductType.HasValue) { sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SPI.[Type]", DbType.String, "@Type", QueryConditionOperatorType.Equal, EnumCodeMapper.TryGetCode(filter.ShipTypeProductType, out _type)); } sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SPI.Description", DbType.String, "@Description", QueryConditionOperatorType.Like, filter.Description); if (filter.ProductRange.HasValue) { sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SPI.ItemRange", DbType.String, "@ItemRange", QueryConditionOperatorType.Equal, EnumCodeMapper.TryGetCode(filter.ProductRange, out _itemRange)); } sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SPI.ProductID", DbType.String, "@ProductID", QueryConditionOperatorType.Equal, filter.ProductID); sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SPM.ShipTypeSysNo", DbType.Int32, "@ShipTypeSysNo", QueryConditionOperatorType.Equal, filter.ShippingType); sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "SPM.StockSysNo", DbType.Int32, "@StockSysNo", QueryConditionOperatorType.Equal, filter.WareHouse); cmd.CommandText = sqlBuilder.BuildQuerySql(); EnumColumnList EnumList = new EnumColumnList(); EnumList.Add("ItemRange", typeof(ECCentral.BizEntity.Common.ProductRange)); EnumList.Add("Type", typeof(ECCentral.BizEntity.Common.ShipTypeProductType)); DataTable dt = cmd.ExecuteDataTable(EnumList); totalCount = int.Parse(cmd.GetParameterValue("TotalCount").ToString()); return(dt); } }
/// <summary> /// 添加配送方式-产品 /// </summary> /// <param name="ShipTypeProductInfo"></param> /// <returns></returns> public void CreateShipTypeProduct(ShipTypeProductInfo ShipTypeProductInfo) { object obj = null; DataCommand cmd = DataCommandManager.GetDataCommand("ShipTypeProduct_Master_Create"); cmd.SetParameterValue("@StockSysNo", ShipTypeProductInfo.WareHouse); cmd.SetParameterValue("@ShipTypeSysNo", ShipTypeProductInfo.ShippingType); if (!ShipTypeProductInfo.CitySysNo.HasValue && !ShipTypeProductInfo.ProvinceSysNo.HasValue) { cmd.SetParameterValue("@AreaSysNo", null); } if (!ShipTypeProductInfo.CitySysNo.HasValue && ShipTypeProductInfo.ProvinceSysNo.HasValue) { cmd.SetParameterValue("@AreaSysNo", ShipTypeProductInfo.ProvinceSysNo); } if (ShipTypeProductInfo.CitySysNo.HasValue && !ShipTypeProductInfo.DistrictSysNo.HasValue) { cmd.SetParameterValue("@AreaSysNo", ShipTypeProductInfo.CitySysNo); } if (ShipTypeProductInfo.DistrictSysNo.HasValue) { cmd.SetParameterValue("@AreaSysNo", ShipTypeProductInfo.AreaSysNo); } cmd.SetParameterValue("@InUser", ServiceContext.Current.UserSysNo); cmd.SetParameterValue("@EditUser", ServiceContext.Current.UserSysNo); cmd.SetParameterValue("@Status", "A"); cmd.SetParameterValue("@CompanyCode", ShipTypeProductInfo.CompanyCode); cmd.SetParameterValue("@StoreCompanyCode", ShipTypeProductInfo.CompanyCode); cmd.SetParameterValue("@LanguageCode", "zh-CN"); cmd.ExecuteNonQuery(); ShipTypeProductInfo.SysNo = (int)cmd.GetParameterValue("@SysNo"); CustomDataCommand cmd_item = DataCommandManager.CreateCustomDataCommandFromConfig("ShipTypeProduct_Item_Create"); StringBuilder builersql = new StringBuilder();; if (ShipTypeProductInfo.ListProductInfo == null && ShipTypeProductInfo.ListCategoryInfo == null) { return; } if (ShipTypeProductInfo.ListProductInfo != null && ShipTypeProductInfo.ListCategoryInfo == null) { for (int i = 0; i < ShipTypeProductInfo.ListProductInfo.Count; i++) { cmd_item.SetParameterValue("@MasterSysNo", ShipTypeProductInfo.SysNo); cmd_item.SetParameterValue("@CompanyCode", ShipTypeProductInfo.CompanyCode); cmd_item.SetParameterValue("@Status", "A"); cmd_item.SetParameterValue("@Description", ShipTypeProductInfo.Description); if (EnumCodeMapper.TryGetCode(ShipTypeProductInfo.ShipTypeProductType, out obj)) { cmd_item.SetParameterValue("@Type", obj); } if (EnumCodeMapper.TryGetCode(ShipTypeProductInfo.ProductRange, out obj)) { cmd_item.SetParameterValue("@ItemRange", obj); } cmd_item.SetParameterValue("@InUser", ServiceContext.Current.UserSysNo); cmd_item.SetParameterValue("@EditUser", ServiceContext.Current.UserSysNo); cmd_item.SetParameterValue("@StoreCompanyCode", ShipTypeProductInfo.CompanyCode); cmd_item.SetParameterValue("@LanguageCode", "zh-CN"); cmd_item.SetParameterValue("@CompanyCustomer", 0); builersql.Append(cmd_item.CommandText.Replace("#DynamicData#", ShipTypeProductInfo.ListProductInfo[i].SysNo.ToString() + ",'" + ShipTypeProductInfo.ListProductInfo[i].ProductID.ToString() + "'")); } cmd_item.CommandText = builersql.ToString(); cmd_item.ExecuteNonQuery(); } if (ShipTypeProductInfo.ListProductInfo == null && ShipTypeProductInfo.ListCategoryInfo != null) { for (int i = 0; i < ShipTypeProductInfo.ListCategoryInfo.Count; i++) { cmd_item.SetParameterValue("@MasterSysNo", ShipTypeProductInfo.SysNo); cmd_item.SetParameterValue("@CompanyCode", ShipTypeProductInfo.CompanyCode); cmd_item.SetParameterValue("@Status", "A"); cmd_item.SetParameterValue("@Description", ShipTypeProductInfo.Description); if (EnumCodeMapper.TryGetCode(ShipTypeProductInfo.ShipTypeProductType, out obj)) { cmd_item.SetParameterValue("@Type", obj); } if (EnumCodeMapper.TryGetCode(ShipTypeProductInfo.ProductRange, out obj)) { cmd_item.SetParameterValue("@ItemRange", obj); } cmd_item.SetParameterValue("@InUser", ServiceContext.Current.UserSysNo); cmd_item.SetParameterValue("@EditUser", ServiceContext.Current.UserSysNo); cmd_item.SetParameterValue("@StoreCompanyCode", ShipTypeProductInfo.CompanyCode); cmd_item.SetParameterValue("@LanguageCode", "zh-CN"); cmd_item.SetParameterValue("@CompanyCustomer", 0); builersql.Append(cmd_item.CommandText.Replace("#DynamicData#", ShipTypeProductInfo.ListCategoryInfo[i].SysNo + ",null")); } cmd_item.CommandText = builersql.ToString(); cmd_item.ExecuteNonQuery(); } }
/// <summary> /// 查询配送方式-产品 /// </summary> /// <param name="filter"></param> /// <param name="totalCount"></param> /// <returns></returns> public DataTable QueryShipTypeProductList(ShipTypeProductQueryFilter filter, out int totalCount) { MapSortField(filter); totalCount = 0; object _itemRange = null;; object _type = null; object _companyCustomer; CustomDataCommand cmd = DataCommandManager.CreateCustomDataCommandFromConfig("ShipTypeProduct_QueryShipTypeProduct"); PagingInfoEntity pagingInfo = ToPagingInfo(filter.PagingInfo); using (DynamicQuerySqlBuilder sqlBuilder = new DynamicQuerySqlBuilder(cmd.CommandText, cmd, pagingInfo, "B.SysNo DESC")) { if (filter.ShipTypeProductType.HasValue && EnumCodeMapper.TryGetCode(filter.ShipTypeProductType, out _type)) { sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "B.[Type]", DbType.String, "@Type", QueryConditionOperatorType.Equal, _type); } sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "B.Description", DbType.String, "@Description", QueryConditionOperatorType.Like, filter.Description); if (filter.ProductRange.HasValue && EnumCodeMapper.TryGetCode(filter.ProductRange, out _itemRange)) { sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "B.ItemRange", DbType.String, "@ItemRange", QueryConditionOperatorType.Equal, _itemRange); } if (filter.CompanyCustomer != null && EnumCodeMapper.TryGetCode(filter.CompanyCustomer, out _companyCustomer)) { sqlBuilder.ConditionConstructor.AddCondition( QueryConditionRelationType.AND, "B.CompanyCustomer", DbType.String, "@CompanyCustomer", QueryConditionOperatorType.Equal, _companyCustomer); } sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "B.ProductID", DbType.String, "@ProductID", QueryConditionOperatorType.Equal, filter.ProductID); sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "A.ShipTypeSysNo", DbType.Int32, "@ShipTypeSysNo", QueryConditionOperatorType.Equal, filter.ShippingType); sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "A.StockSysNo", DbType.Int32, "@StockSysNo", QueryConditionOperatorType.Equal, filter.WareHouse); if (!filter.Category2.HasValue) { sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "E.Category1Sysno", DbType.Int32, "@C1SysNo", QueryConditionOperatorType.Equal, filter.Category1); } if (filter.Category2.HasValue && !filter.Category3.HasValue) { sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "E.Category2Sysno", DbType.Int32, "@C2SysNo", QueryConditionOperatorType.Equal, filter.Category2); } if (filter.Category3.HasValue) { sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "E.Category3Sysno", DbType.Int32, "@C3SysNo", QueryConditionOperatorType.Equal, filter.Category3); } if (filter.AreaSysNo.HasValue) { sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "D.SysNO", DbType.Int32, "@AreaSysNo", QueryConditionOperatorType.Equal, filter.AreaSysNo); } else if (filter.CitySysNo != null && filter.DistrictSysNo == null) { sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "D.SysNo", DbType.Int32, "@SysNo", QueryConditionOperatorType.Equal, filter.CitySysNo); sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.OR, "D.CitySysNo", DbType.Int32, "@CitySysNo", QueryConditionOperatorType.Equal, filter.CitySysNo); } else if (filter.ProvinceSysNo.HasValue) { sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "D.SysNo", DbType.Int32, "@AreaSysNo", QueryConditionOperatorType.Equal, filter.ProvinceSysNo); sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.OR, "D.ProvinceSysNo", DbType.Int32, "@ProvinceSysNo", QueryConditionOperatorType.Equal, filter.ProvinceSysNo); } cmd.CommandText = sqlBuilder.BuildQuerySql(); EnumColumnList EnumList = new EnumColumnList(); EnumList.Add("ItemRange", typeof(ECCentral.BizEntity.Common.ProductRange)); EnumList.Add("Type", typeof(ECCentral.BizEntity.Common.ShipTypeProductType)); EnumList.Add("CompanyCustomer", typeof(ECCentral.BizEntity.Common.CompanyCustomer)); DataTable dt = cmd.ExecuteDataTable(EnumList); totalCount = int.Parse(cmd.GetParameterValue("TotalCount").ToString()); return(dt); } }
public DataSet Query(GroupBuyingLotteryQueryFilter filter, out int totalCount) { PagingInfoEntity pagingEntity = new PagingInfoEntity(); pagingEntity.SortField = filter.PagingInfo.SortBy; pagingEntity.MaximumRows = filter.PagingInfo.PageSize; pagingEntity.StartRowIndex = filter.PagingInfo.PageIndex * filter.PagingInfo.PageSize; var cmd = DataCommandManager.CreateCustomDataCommandFromConfig("GetGroupBuyingLotteryList"); using (var sqlBuilder = new DynamicQuerySqlBuilder(cmd.CommandText, cmd, pagingEntity, "M.SysNo DESC")) { sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "M.[ProductGroupBuyingSysNo]", DbType.Int32, "@ProductGroupBuyingSysNo", QueryConditionOperatorType.Equal, filter.GroupBuyingSysNo); sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "M.LotteryDate", DbType.DateTime, "@BeginDateFrom", QueryConditionOperatorType.MoreThanOrEqual, filter.BeginDateFrom); //sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, // "M.LotteryDate", DbType.DateTime, "@BeginDateTo", // QueryConditionOperatorType.LessThan, // filter.BeginDateTo); //sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, // "M.LotteryDate", DbType.DateTime, "@EndDateFrom", // QueryConditionOperatorType.MoreThanOrEqual, // filter.EndDateFrom); if (filter.EndDateTo != null) { sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "M.LotteryDate", DbType.DateTime, "@EndDateTo", QueryConditionOperatorType.LessThan, filter.EndDateTo.Value.AddDays(1)); } object _rank; if (filter.RankType != null && EnumCodeMapper.TryGetCode(filter.RankType, out _rank)) { sqlBuilder.ConditionConstructor.AddCondition( QueryConditionRelationType.AND, "C.Rank", DbType.Int32, "@Rank", QueryConditionOperatorType.Equal, _rank); } sqlBuilder.ConditionConstructor.AddCondition( QueryConditionRelationType.AND, "M.CompanyCode", DbType.AnsiStringFixedLength, "@CompanyCode", QueryConditionOperatorType.Equal, filter.CompanyCode); cmd.CommandText = sqlBuilder.BuildQuerySql(); var ds = cmd.ExecuteDataSet(); cmd.ConvertEnumColumn(ds.Tables[0], new EnumColumnList { { "Rank", typeof(CustomerRank) } }); totalCount = Convert.ToInt32(cmd.GetParameterValue("@TotalCount")); return(ds); } }
public void SetParameterValue <T>(InputMap <T> map, T entity, char sqlParamSplitter, bool ignoreCase, bool throwOnPropertyNotExist) where T : class { List <ParameterProperty <T> > maps = (map == null) ? null : map.GetMaps(); if (maps == null) { maps = new List <ParameterProperty <T> >(0); } for (int i = 0; i < m_DbParameterList.Count; i++) { string property = m_PropertyNameList[i]; ConfigKeyWord keyword; ParameterProperty <T> pp = maps.Find(p => p.Parameter == m_DbParameterList[i].ParameterName || ("@" + p.Parameter == m_DbParameterList[i].ParameterName)); string[] proArray; if (pp != null) { proArray = pp.PropertyList.ToArray(); } else if (ConfigHelper.IsKeyWord(property, out keyword)) { // 构造函数的时候,就已经对这种自动赋值的param已经赋过值了,这里不用再赋了 //if (keyword == ConfigKeyWord.UserSysNo) //{ // m_DbParameterList[i].Value = ServiceContext.Current.UserSysNo; //} //else if (keyword == ConfigKeyWord.UserAcct) //{ // string acct = ConfigHelper.CurrentUserAcct; // m_DbParameterList[i].Value = (acct == null ? DBNull.Value : (object)acct); //} //else //{ // m_DbParameterList[i].Value = DateTime.Now; //} continue; } else { char[] sep = sqlParamSplitter == '.' ? new char[] { sqlParamSplitter } : new char[] { sqlParamSplitter, '.' }; proArray = property.Split(sep, StringSplitOptions.RemoveEmptyEntries); } object tmp = DataMapper.GetFieldValueAllowNull(entity, proArray, ignoreCase, throwOnPropertyNotExist); if (tmp != null) { Type type = tmp.GetType(); if (type.IsEnum || (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable <>) && type.GetGenericArguments() != null && type.GetGenericArguments().Length == 1 && type.GetGenericArguments()[0].IsEnum)) { object code; if (EnumCodeMapper.TryGetCode(tmp, out code)) { tmp = code; } else if (m_DbParameterList[i].DbType == DbType.Int16 || m_DbParameterList[i].DbType == DbType.Int32 || m_DbParameterList[i].DbType == DbType.Int64) { tmp = (int)tmp; } else { tmp = tmp.ToString(); } } } m_DbParameterList[i].Value = (tmp == null ? DBNull.Value : tmp); } }
public DataTable Query(AdvertisingQueryFilter filter, out int totalCount) { PagingInfoEntity pagingEntity = new PagingInfoEntity(); pagingEntity.SortField = filter.PageInfo.SortBy; pagingEntity.MaximumRows = filter.PageInfo.PageSize; pagingEntity.StartRowIndex = filter.PageInfo.PageIndex * filter.PageInfo.PageSize; var cmd = DataCommandManager.CreateCustomDataCommandFromConfig("AdvertisingQuery"); using (var sqlBuilder = new DynamicQuerySqlBuilder(cmd.CommandText, cmd, pagingEntity, "product.InDate DESC")) { sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "category.SysNo", DbType.Int32, "@ProductLineCategorySysNo", QueryConditionOperatorType.Equal, filter.ProductLineCategorySysNo); sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "Link.ProductLineSysNo", DbType.Int32, "@ProductLineSysNo", QueryConditionOperatorType.Equal, filter.ProductLineSysNo); sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "Link.InUser", DbType.String, "@InUser", QueryConditionOperatorType.Like, filter.InUser); string sql = string.Empty; if (filter.OperateDateFrom.HasValue) { sql = string.Format(@" Link.InDate >= '{0}'", filter.OperateDateFrom); } if (filter.OperateDateTo.HasValue) { sql = string.Format(@" Link.InDate <= '{0}' or Link.EditDate <='{0}'", filter.OperateDateTo.Value.AddDays(1).AddSeconds(-1)); } if (filter.OperateDateFrom.HasValue && filter.OperateDateTo.HasValue) { sql = string.Format(@" ((Link.InDate >= '{0}' AND Link.InDate <='{1}') OR (Link.EditDate >= '{0}' AND Link.EditDate <='{1}'))", filter.OperateDateFrom, filter.OperateDateTo.Value.AddDays(1).AddSeconds(-1)); } if (!string.IsNullOrEmpty(sql)) { sqlBuilder.ConditionConstructor.AddCustomCondition(QueryConditionRelationType.AND, sql); } sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "Link.ImageWidth", DbType.Int32, "@ImageWidth", QueryConditionOperatorType.Equal, filter.ImageWidth); sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "Link.ImageHeight", DbType.Int32, "@ImageHeight", QueryConditionOperatorType.Equal, filter.ImageHeight); object _type; if (filter.Type != null && EnumCodeMapper.TryGetCode(filter.Type, out _type)) { sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND, "Link.Type", DbType.String, "@Type", QueryConditionOperatorType.Like, _type); } cmd.CommandText = sqlBuilder.BuildQuerySql(); EnumColumnList enumList = new EnumColumnList(); enumList.Add("Type", typeof(AdvertisingType)); enumList.Add("Status", typeof(ValidStatus)); var dt = cmd.ExecuteDataTable(enumList); totalCount = Convert.ToInt32(cmd.GetParameterValue("@TotalCount")); return(dt); } }
public DataTable Query(OrderQueryFilter filter, out int totalCount) { PagingInfoEntity pagingEntity = new PagingInfoEntity(); pagingEntity.SortField = filter.PageInfo.SortBy; pagingEntity.MaximumRows = filter.PageInfo.PageSize; pagingEntity.StartRowIndex = filter.PageInfo.PageIndex * filter.PageInfo.PageSize; var cmd = DataCommandManager.CreateCustomDataCommandFromConfig("CPSOrderQuery"); StringBuilder whereStrSO = new StringBuilder("WHERE 1 = 1 "); StringBuilder whereStrRMA = new StringBuilder("WHERE 1 = 1 "); using (var sqlBuilder = new DynamicQuerySqlBuilder(cmd.CommandText, cmd, pagingEntity, "SysNo DESC")) { //单据类型 object _type; if (filter.OrderType != null && EnumCodeMapper.TryGetCode(filter.OrderType, out _type)) { whereStrSO.Append(" AND csItem.Type = @Type "); whereStrRMA.Append(" AND csItem.Type = @Type "); cmd.AddInputParameter("@Type", DbType.String, filter.OrderType); } if (!string.IsNullOrEmpty(filter.OrderSysNoList)) { string orderSysNoList = filter.OrderSysNoList.Replace('.', ','); whereStrSO.Append(" AND csItem.OrderSysNo IN (" + orderSysNoList + ") "); whereStrRMA.Append(" AND csItem.OrderSysNo IN (" + orderSysNoList + ") "); } //主渠道名称 if (!string.IsNullOrEmpty(filter.MasterChannelID)) { whereStrSO.Append(" AND cpsUser.CustomerID = @MasterChannelID "); whereStrRMA.Append(" AND cpsUser.CustomerID = @MasterChannelID "); cmd.AddInputParameter("@MasterChannelID", DbType.String, filter.MasterChannelID); } //渠道来源【Source】 if (!string.IsNullOrEmpty(filter.SubChannelID)) { whereStrSO.Append(" AND channel.Source = @SubChannelID "); whereStrRMA.Append(" AND channel.Source = @SubChannelID "); cmd.AddInputParameter("@SubChannelID", DbType.String, filter.SubChannelID); } //下单时间【SO RMA创建时间】 if (filter.CreateDateBegin.HasValue) { whereStrSO.Append(" AND ippSO.OrderDate >= @CreateDateBegin "); whereStrRMA.Append(" AND cpsRMA.CreateTime >= @CreateDateBegin "); cmd.AddInputParameter("@CreateDateBegin", DbType.DateTime, filter.CreateDateBegin); } if (filter.CreateDateEnd.HasValue) { whereStrSO.Append(" AND ippSO.OrderDate < @CreateDateEnd "); whereStrRMA.Append(" AND cpsRMA.CreateTime < @CreateDateEnd "); cmd.AddInputParameter("@CreateDateEnd", DbType.DateTime, filter.CreateDateEnd.Value.AddDays(1)); } //交易完成日期 if (filter.FinishDateBegin.HasValue) { whereStrSO.Append(" AND ippSO.OutTime >= @FinishDateBegin "); whereStrRMA.Append(" AND cpsRMA.RefundTime >= @FinishDateBegin "); cmd.AddInputParameter("@FinishDateBegin", DbType.DateTime, filter.FinishDateBegin); } if (filter.FinishDateEnd.HasValue) { whereStrSO.Append(" AND ippSO.OutTime < @FinishDateEnd "); whereStrRMA.Append(" AND cpsRMA.RefundTime < @FinishDateEnd "); cmd.AddInputParameter("@FinishDateEnd", DbType.DateTime, filter.FinishDateEnd.Value.AddDays(1)); } //结算日期 if (filter.SettlementDateBegin.HasValue) { whereStrSO.Append(" AND csMaster.SettledTime >= @SettlementDateBegin "); whereStrRMA.Append(" AND csMaster.SettledTime >= @SettlementDateBegin "); cmd.AddInputParameter("@SettlementDateBegin", DbType.DateTime, filter.SettlementDateBegin); } if (filter.SettlementDateEnd.HasValue) { whereStrSO.Append(" AND csMaster.SettledTime < @SettlementDateEnd "); whereStrRMA.Append(" AND csMaster.SettledTime < @SettlementDateEnd "); cmd.AddInputParameter("@SettlementDateEnd", DbType.DateTime, filter.SettlementDateEnd.Value.AddDays(1)); } //结算状态 object _status; if (filter.SettledStatus != null && EnumCodeMapper.TryGetCode(filter.SettledStatus, out _status)) { whereStrSO.Append(" AND csItem.Status = @SettledStatus "); whereStrRMA.Append(" AND csItem.Status = @SettledStatus "); cmd.AddInputParameter("@SettledStatus", DbType.String, filter.SettledStatus); } cmd.CommandText = sqlBuilder.BuildQuerySql(); cmd.CommandText = cmd.CommandText.Replace("#StrWhereSO#", whereStrSO.ToString()); cmd.CommandText = cmd.CommandText.Replace("#StrWhereRMA#", whereStrRMA.ToString()); EnumColumnList enumList = new EnumColumnList(); enumList.Add("SettledStatus", typeof(FinanceStatus)); var dt = cmd.ExecuteDataTable(enumList); totalCount = Convert.ToInt32(cmd.GetParameterValue("@TotalCount")); if (totalCount > 0) { dt = this.GetOrderStatus(dt, "OrderStatus"); } return(dt); } }