Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        //
        /// <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();
        }
Exemplo n.º 4
0
        /// <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();
        }
Exemplo n.º 5
0
 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);
     }
 }
Exemplo n.º 6
0
        /// <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);
            }
        }
Exemplo n.º 7
0
        /// <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();
            }
        }
Exemplo n.º 8
0
        /// <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);
            }
        }
Exemplo n.º 9
0
        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);
            }
        }
Exemplo n.º 10
0
        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);
            }
        }
Exemplo n.º 11
0
        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);
            }
        }
Exemplo n.º 12
0
        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);
            }
        }