/// <summary> /// 分页获取优惠券 /// </summary> /// <param name="filter">筛选条件</param> /// <returns>分页列表</returns> /// <remarks> /// 2013-08-21 黄志勇 创建 /// 2014-01-09 朱家宏 增加使用平台查询 /// </remarks> public Pager <CBSpCoupon> DoCouponQuery(ParaCoupon filter) { if (filter.UsePlatform != null) { switch (filter.UsePlatform) { case (int)PromotionStatus.促销使用平台.PC商城: filter.WebPlatform = 1; break; case (int)PromotionStatus.促销使用平台.门店: filter.ShopPlatform = 1; break; case (int)PromotionStatus.促销使用平台.手机商城: filter.MallAppPlatform = 1; break; case (int)PromotionStatus.促销使用平台.物流App: filter.LogisticsAppPlatform = 1; break; } } return(ISpCouponDao.Instance.GetCoupon(filter)); }
/// <summary> /// 待绑定到用户的优惠卷 /// </summary> /// <param name="filter">筛选条件</param> /// <returns>分页列表</returns> /// <remarks>2013-12-06 朱家宏 创建</remarks> public Pager <CBSpCoupon> GetCouponsToBeAssigned(ParaCoupon filter) { /* * 查询条件:所选优惠卷为系统、优惠卷状态为已审核、结束日期大于当前、允许使用数量>0、平台查询权限 */ if (filter == null) { filter = new ParaCoupon(); } filter.Type = (int)PromotionStatus.优惠券类型.系统; filter.Status = (int)PromotionStatus.优惠券状态.已审核; filter.ExpiredTime = DateTime.Now; filter.UseQuantity = 1; filter.IsCouponCard = (int)PromotionStatus.是否优惠卡.否; if (filter.WebPlatform == null && filter.ShopPlatform == null && filter.MallAppPlatform == null && filter.LogisticsAppPlatform == null) { filter.Permissions = GetQueryPermissions(); if (!filter.Permissions.Contains(true)) { //无权限 return(new Pager <CBSpCoupon>()); } } return(ISpCouponDao.Instance.GetCoupon(filter)); }
/// <summary> /// 获取优惠券(必须是系统和优惠卡) /// </summary> /// <param name="filter">筛选条件</param> /// <returns>获取优惠券(必须是系统和优惠卡)</returns> /// <remarks>2014-01-08 朱成果 创建</remarks> public Pager <CBSpCoupon> GetCouponsToCard(ParaCoupon filter) { if (filter == null) { filter = new ParaCoupon(); } filter.Type = (int)PromotionStatus.优惠券类型.系统; filter.Status = (int)PromotionStatus.优惠券状态.已审核; filter.ExpiredTime = DateTime.Now; filter.IsCouponCard = PromotionStatus.是否优惠卡.是.GetHashCode(); filter.UseQuantity = 1; return(ISpCouponDao.Instance.GetCoupon(filter)); }
/// <summary> /// 分页获取优惠券 /// </summary> /// <param name="filter">筛选条件</param> /// <returns>分页列表</returns> /// <remarks>2013-08-21 黄志勇 创建</remarks> public abstract Pager <CBSpCoupon> GetCoupon(ParaCoupon filter);
/// <summary> /// 分页获取优惠券 /// </summary> /// <param name="filter">筛选条件</param> /// <returns>分页列表</returns> /// <remarks> /// 2013-08-21 黄志勇 创建 /// 2013-12-06 朱家宏 增加 过期时间、优惠卷代码、允许使用数量查询 /// 2014-01-07 朱家宏 重构 /// </remarks> public override Pager <CBSpCoupon> GetCoupon(ParaCoupon filter) { var sql = @"SpCoupon a left join CrCustomer b on a.CustomerSysNo = b.SysNo left join SpPromotion c on a.PromotionSysNo = c.SysNo where {0} "; #region 构造sql var paras = new ArrayList(); var where = "1=1 "; int i = 0; if (!string.IsNullOrWhiteSpace(filter.CustomerName)) { //客户名 where += " and charindex(b.Name,@p0p" + i + ")>0"; paras.Add(filter.CustomerName); i++; } if (filter.Type != null) { //优惠券类型 where += " and a.Type= @p0p" + i + ""; paras.Add(filter.Type); i++; } if (!string.IsNullOrWhiteSpace(filter.SourceDescription)) { //来源描述 where += " and charindex(a.SourceDescription,@p0p" + i + ">0"; paras.Add(filter.SourceDescription); i++; } if (filter.Status != null) { //状态 where += " and a.Status=@p0p" + i + ""; paras.Add(filter.Status); i++; } if (filter.StartTime != null) { //有效时间(起) where += " and a.StartTime>=@p0p" + i + ""; paras.Add(filter.StartTime); i++; } if (filter.EndTime != null) { //有效时间(止) where += " and a.EndTime<@p0p" + i + ""; paras.Add(filter.EndTime); i++; } if (filter.ExpiredTime != null) { //过期时间 where += " and a.EndTime>=@p0p" + i + ""; paras.Add(filter.ExpiredTime); i++; } if (!string.IsNullOrWhiteSpace(filter.CouponCode)) { //优惠卷代码 where += " and a.CouponCode=@p0p" + i + ""; paras.Add(filter.CouponCode); i++; } if (filter.UseQuantity != null) { //允许使用数量 where += " and a.UseQuantity>=@p0p" + i + " and a.UsedQuantity < a.UseQuantity"; paras.Add(filter.UseQuantity); i++; } if (!string.IsNullOrWhiteSpace(filter.Description)) { //描述 where += " and charindex(a.Description,@p0p" + i + ")>0"; paras.Add(filter.Description); i++; } if (filter.IsCouponCard != null) { //优惠卡 where += " and a.IsCouponCard=@p0p" + i + ""; paras.Add(filter.IsCouponCard); i++; } if (filter.WebPlatform != null) { where += " and a.WebPlatform=@p0p" + i + ""; paras.Add(filter.WebPlatform); i++; } if (filter.ShopPlatform != null) { where += " and a.ShopPlatform=@p0p" + i + ""; paras.Add(filter.ShopPlatform); i++; } if (filter.MallAppPlatform != null) { where += " and a.MallAppPlatform=@p0p" + i + ""; paras.Add(filter.MallAppPlatform); i++; } if (filter.LogisticsAppPlatform != null) { where += " and a.LogisticsAppPlatform=@p0p" + i + ""; paras.Add(filter.LogisticsAppPlatform); i++; } if (filter.Permissions != null && filter.Permissions.Contains(true)) { var tmpWhere = ""; if (filter.Permissions[0]) { tmpWhere += "a.WebPlatform=" + (int)PromotionStatus.商城使用.是 + " or"; } if (filter.Permissions[1]) { tmpWhere += " a.ShopPlatform=" + (int)PromotionStatus.门店使用.是 + " or"; } if (filter.Permissions[2]) { tmpWhere += " a.MallAppPlatform=" + (int)PromotionStatus.手机商城使用.是 + " or"; } if (filter.Permissions[3]) { tmpWhere += " a.LogisticsAppPlatform=" + (int)PromotionStatus.物流App使用.是 + " or"; } tmpWhere = tmpWhere.Substring(0, tmpWhere.Length - 2); where += " and (" + tmpWhere + ")"; } sql = string.Format(sql, where); #endregion var dataList = Context.Select <CBSpCoupon>( @"a.sysno, a.promotionsysno, a.couponcode, a.couponamount, a.requirementamount, a.starttime, a.endtime, a.type, a.sourcedescription, a.usequantity, a.usedquantity, a.customersysno, a.status, a.description, a.auditorsysno, a.auditdate, a.createdby, a.createddate, a.lastupdateby, a.lastupdatedate, a.parentsysno, a.iscouponcard, a.webplatform, a.shopplatform, a.mallappplatform,a.LogisticsAppPlatform, b.Name CustomerName,c.Name PromotionName").From(sql); var dataCount = Context.Select <int>("count(0)").From(sql); dataList.Parameters(paras); dataCount.Parameters(paras); var pager = new Pager <CBSpCoupon> { CurrentPage = filter.Id.Value, PageSize = filter.PageSize }; var totalRows = dataCount.QuerySingle(); var rows = dataList.OrderBy("a.SysNo desc").Paging(pager.CurrentPage, pager.PageSize).QueryMany(); pager.TotalRows = totalRows; pager.Rows = rows; return(pager); }