Commit 8bef5d8b authored by 吴春's avatar 吴春

提交代码

parent a963b588
using Mall.Common.AOP;
using Mall.Common.Enum.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.MarketingCenter
{
/// <summary>
/// 优惠券指定商品/分类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Member_CouponProduct
{ /// <summary>
/// 价格
/// </summary>
public int MemberCouponId { get; set; }
/// <summary>
/// 商品/分类id
/// </summary>
public int ProductId { get; set; }
public int ID { get; set; }
/// <summary>
/// 商户id
/// </summary>
public int TenantId { get; set; }
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId { get; set; }
public UseTypeEnum DiscountCouponType { get; set; }
public int Status { get; set; }
public DateTime CreateDate { get; set; }
public DateTime UpdateDate { get; set; }
}
}
......@@ -103,5 +103,43 @@ namespace Mall.Model.Entity.User
/// 领取方式0-自行领取(领劵中心领取),1-分享,2-购买并付款,3-新人领取
/// </summary>
public int GetType { get; set; }
/// <summary>
/// 1-满减券,2-打折券
/// </summary>
public CouponTypeEnum CouponType { get; set; }
/// <summary>
/// 1-指定商品类型,2-指定商品,3-全场通用,4-当面付
/// </summary>
public UseTypeEnum UseType { get; set; }
/// <summary>
/// 最低消费金额(元)
/// </summary>
public decimal MinConsumePrice { get; set; }
/// <summary>
/// 优惠金额/折扣
/// </summary>
public decimal DiscountsPrice { get; set; }
/// <summary>
///最多优惠(元)
/// </summary>
public decimal MaxDiscountsPrice { get; set; }
/// <summary>
/// 优惠券名称
/// </summary>
public string Name { get; set; }
}
}
......@@ -23,7 +23,10 @@ namespace Mall.Model.Extend.MarketingCenter
/// </summary>
public string UserIds { get; set; }
/// <summary>
/// 0-未领取 >0已领取
/// </summary>
public int MemberNum { get; set; }
/// <summary>
/// 发放数量
......@@ -40,11 +43,17 @@ namespace Mall.Model.Extend.MarketingCenter
public int[] MemberLevelList { get; set; }
/// <summary>
/// 发放优惠券的时候会员id
/// </summary>
public int UserId { get; set; }
/// <summary>
/// 使用状态 0-未使用,1:已使用,2:已过期
/// </summary>
public int UseState { get; set; }
}
}
using Mall.Model.Entity.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Extend.User
{
public class RB_Member_CouponProduct_Extend : RB_Member_CouponProduct
{
/// <summary>
/// 关联信息(商品图片/分类名称)
/// </summary>
public string Relevance { get; set; }
}
}
......@@ -23,42 +23,25 @@ namespace Mall.Model.Extend.User
/// </summary>
public DateTime? OrderCreateDate { get; set; }
/// <summary>
/// 优惠券名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 优惠方式
/// </summary>
public CouponTypeEnum CouponType { get; set; }
/// <summary>
/// 最低消费金额
/// </summary>
public decimal MinConsumePrice { get; set; }
/// <summary>
/// 会员昵称
/// </summary>
public string AliasName { get; set; }
/// <summary>
/// 下单开始时间
/// </summary>
public DateTime? StartDate { get; set; }
/// <summary>
/// 下单结束时间
/// </summary>
public DateTime? EndDate { get; set; }
/// <summary>
/// 优惠卷ids
/// </summary>
public string CouponIds { get; set; }
public List<RB_Member_CouponProduct_Extend> ProductList { get; set; }
}
}
......@@ -4,6 +4,12 @@
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Compile Remove="Query\Applet\**" />
<EmbeddedResource Remove="Query\Applet\**" />
<None Remove="Query\Applet\**" />
</ItemGroup>
<ItemGroup>
<Compile Remove="Extend\BaseSetUp\RB_Logistics_Pinkage_Extend.cs" />
</ItemGroup>
......
using Mall.Common.AOP;
using NPOI.SS.Formula.Functions;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Query.Applet
{
/// <summary>
/// 个人中心-领劵中心
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_DiscountCoupon_Applet
{
/// <summary>
/// 优惠券id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 小程序id
/// </summary>
public int Mall_Id { get; set; }
/// <summary>
/// 优惠券名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 优惠券类型
/// </summary>
public int Type { get; set; }
/// <summary>
/// 折扣
/// </summary>
public decimal Discount { get; set; }
/// <summary>
///
/// </summary>
public string Pic_Url { get; set; }
/// <summary>
///
/// </summary>
public string Desc { get; set; }
/// <summary>
/// 最低消费
/// </summary>
public decimal Min_Price { get; set; }
/// <summary>
///
/// </summary>
public decimal Sub_Price { get; set; }
/// <summary>
///
/// </summary>
public int Total_Count { get; set; }
/// <summary>
/// 排序
/// </summary>
public int Sort { get; set; }
/// <summary>
/// 优惠券有效期
/// </summary>
public int Expire_Type { get; set; }
/// <summary>
/// 有效天数
/// </summary>
public string Expire_Day { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public string Begin_Time { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public string End_Time { get; set; }
/// <summary>
///
/// </summary>
public int Appoint_Type { get; set; }
/// <summary>
/// 规则
/// </summary>
public string Rule { get; set; }
/// <summary>
///
/// </summary>
public int Is_Member { get; set; }
/// <summary>
///
/// </summary>
public int Is_Delete { get; set; }
/// <summary>
///
/// </summary>
public string Deleted_At { get; set; }
/// <summary>
///
/// </summary>
public string Created_At { get; set; }
/// <summary>
///
/// </summary>
public string Updated_At { get; set; }
/// <summary>
/// 优惠上限
/// </summary>
public string Discount_Limit { get; set; }
/// <summary>
///
/// </summary>
public int Is_Receive { get; set; }
/// <summary>
///
/// </summary>
public string Page_Url { get; set; }
/// <summary>
///
/// </summary>
public string Share_Type { get; set; }
}
public class Category
{
public int Id { get; set; }
public int Mall_Id { get; set; }
public int Mch_Id { get; set; }
public int Parent_Id { get; set; }
public string Name { get; set; }
}
}
......@@ -27,6 +27,11 @@ namespace Mall.Module.MarketingCenter
private RB_Coupon_SelfMotionRepository selfMotionRepository = new RB_Coupon_SelfMotionRepository();
private Repository.User.RB_Member_CouponProductRepository userProductRepository = new Repository.User.RB_Member_CouponProductRepository();
#region 卡券列表
/// <summary>
/// 卡券信息列表
......@@ -282,8 +287,8 @@ namespace Mall.Module.MarketingCenter
Dictionary<string, object> cols = new Dictionary<string, object>()
{
{ nameof(RB_DiscountCoupon_Product.Status),1},
{ nameof(RB_DiscountCoupon_Product.UpdateDate),DateTime.Now},
{ nameof(RB_Member_CouponProduct.Status),1},
{ nameof(RB_Member_CouponProduct.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
......@@ -369,19 +374,31 @@ namespace Mall.Module.MarketingCenter
/// <param name="list"></param>
/// <param name="model"></param>
/// <returns></returns>
public bool GrantCoupon(List<RB_Member_DiscountCoupon> list, RB_DiscountCoupon_Extend model)
public bool GrantCoupon(List<RB_Member_DiscountCoupon_Extend> list, RB_DiscountCoupon_Extend model)
{
bool flag = false;
var trans = memberCouponRepository.DbTransaction;
try
{
flag = memberCouponRepository.InsertBatch(list);
foreach (var item in list)
{
int id = 0;
id = memberCouponRepository.Insert(item,trans);
if (item.ProductList != null && item.ProductList.Any())
{
item.ProductList.ForEach(x => x.MemberCouponId = id);
userProductRepository.InsertBatch(item.ProductList, trans);
}
flag = id > 0;
}
if (model != null && flag)
{
Dictionary<string, object> cols1 = new Dictionary<string, object>()
{
{ nameof(RB_DiscountCoupon.ReceiveNum),model.ReceiveNum+list.Count()},
{ nameof(RB_DiscountCoupon.TotalNum),model.TotalNum-list.Count()},
{ nameof(RB_DiscountCoupon.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres1 = new List<WhereHelper>()
......@@ -402,7 +419,7 @@ namespace Mall.Module.MarketingCenter
OperatorEnum=OperatorEnum.Equal
}
};
flag = discountCouponRepository.Update(cols1, wheres1);
flag = discountCouponRepository.Update(cols1, wheres1, trans);
}
memberCouponRepository.DBSession.Commit();
}
......@@ -684,7 +701,95 @@ namespace Mall.Module.MarketingCenter
{
return memberCouponRepository.GetExportCouponStatisticslList(query);
}
#endregion
#endregion
#region 小程序个人中心-领劵中心
/// <summary>
/// 领劵中心优惠券
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_DiscountCoupon_Extend> GetAllCouponList(int pageIndex, int pageSize, out long rowCount, RB_DiscountCoupon_Extend query)
{
var list = discountCouponRepository.GetAllCouponList(pageIndex, pageSize, out rowCount, query);
//获取特定商品或者分类的数据
string Ids = string.Join(",", list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category).Select(x => x.ID));
if (!string.IsNullOrWhiteSpace(Ids))
{
query.UseType = Common.Enum.MarketingCenter.UseTypeEnum.Category;
var listProduct = productRepository.GetListByDiscountCouponIds(query, Ids);
foreach (var item in list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category))
{
item.ProductList = new List<RB_DiscountCoupon_Product_Extend>();
item.ProductList = listProduct.Where(x => x.DiscountCouponId == item.ID).ToList();
}
}
Ids = string.Join(",", list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product).Select(x => x.ID));
if (!string.IsNullOrWhiteSpace(Ids))
{
query.UseType = Common.Enum.MarketingCenter.UseTypeEnum.Product;
var listProduct = productRepository.GetListByDiscountCouponIds(query, Ids);
foreach (var item in list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product))
{
item.ProductList = new List<RB_DiscountCoupon_Product_Extend>();
item.ProductList = listProduct.Where(x => x.DiscountCouponId == item.ID).ToList();
}
}
return list;
}
#endregion
#region 会员优惠券
/// <summary>
/// 会员优惠券
/// </summary>
/// <returns></returns>
public List<RB_Member_DiscountCoupon_Extend> GetMemberDiscountCouponList(RB_Member_DiscountCoupon_Extend query)
{
return memberCouponRepository.GetList(query);
}
/// <summary>
/// 我的优惠券
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Member_DiscountCoupon_Extend> GetMemberCouponPageList(int pageIndex, int pageSize, out long rowCount, RB_Member_DiscountCoupon_Extend query)
{
var list = memberCouponRepository.GetMemberCouponPageList(pageIndex, pageSize, out rowCount, query);
//获取特定商品或者分类的数据
string Ids = string.Join(",", list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category).Select(x => x.Id));
if (!string.IsNullOrWhiteSpace(Ids))
{
query.UseType = Common.Enum.MarketingCenter.UseTypeEnum.Category;
var listProduct = userProductRepository.GetMemberCouponProduct(query, Ids);
foreach (var item in list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category))
{
item.ProductList = new List<RB_Member_CouponProduct_Extend>();
item.ProductList = listProduct.Where(x => x.MemberCouponId == item.Id).ToList();
}
}
Ids = string.Join(",", list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product).Select(x => x.Id));
if (!string.IsNullOrWhiteSpace(Ids))
{
query.UseType = Common.Enum.MarketingCenter.UseTypeEnum.Product;
var listProduct = userProductRepository.GetMemberCouponProduct(query, Ids);
foreach (var item in list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product))
{
item.ProductList = new List<RB_Member_CouponProduct_Extend>();
item.ProductList = listProduct.Where(x => x.MemberCouponId == item.Id).ToList();
}
}
return list;
}
#endregion
}
}
using Mall.Model.Entity.MarketingCenter;
using Mall.Model.Entity.User;
using Mall.Model.Extend.MarketingCenter;
using Mall.Model.Extend.User;
using System;
using System.Collections.Generic;
using System.Linq;
......@@ -96,7 +97,7 @@ namespace Mall.Repository.MarketingCenter
/// <returns></returns>
public List<RB_DiscountCoupon_Extend> GetNoUseCouponList(RB_DiscountCoupon_Extend query)
{
string where = " and a.StartDate<NOW() and a.EndDate>NOW() and b.`Status`=0 and a.UseState=0 ";
string where = " and a.StartDate<NOW() and a.EndDate>NOW() and a.UseState=0 ";
string goodsClassWhere = "";//分类
string goodsWhere = "";//商品
string allWhere = "";//通用
......@@ -124,11 +125,11 @@ namespace Mall.Repository.MarketingCenter
{
if (!string.IsNullOrWhiteSpace(goodsWhere))
{
goodsWhere += $" or (c.ProductId = {item.ProductId} and b.MinConsumePrice<= {item.GoodsPrice}) ";
goodsWhere += $" or (c.ProductId = {item.ProductId} and a.MinConsumePrice<= {item.GoodsPrice}) ";
}
else
{
goodsWhere += $" (c.ProductId = {item.ProductId} and b.MinConsumePrice<= {item.GoodsPrice}) ";
goodsWhere += $" (c.ProductId = {item.ProductId} and a.MinConsumePrice<= {item.GoodsPrice}) ";
}
allGoodsClass.AddRange(item.GoodsClassId.ToList());
}
......@@ -149,40 +150,80 @@ namespace Mall.Repository.MarketingCenter
}
if (!string.IsNullOrWhiteSpace(goodsClassWhere))
{
goodsClassWhere += $" or (c.ProductId = {item.Key} and b.MinConsumePrice<= {nowPrice}) ";
goodsClassWhere += $" or (c.ProductId = {item.Key} and a.MinConsumePrice<= {nowPrice}) ";
}
else
{
goodsClassWhere += $" (c.ProductId = {item.Key} and b.MinConsumePrice<= {nowPrice}) ";
goodsClassWhere += $" (c.ProductId = {item.Key} and a.MinConsumePrice<= {nowPrice}) ";
}
}
goodsClassWhere = " and (" + goodsClassWhere + ")";
decimal allPrice = query.ProductList.Sum(x => x.GoodsPrice);
allWhere = $" and b.MinConsumePrice<= {allPrice} ";
allWhere = $" and a.MinConsumePrice<= {allPrice} ";
}
}
string sql = @$" SELECT a.ID,a.UserId,b.`Name`,b.CouponType,b.UseType,b.MinConsumePrice,b.DiscountsPrice,b.MaxDiscountsPrice,b.Describe,a.StartDate,a.EndDate from rb_discountcoupon as b
LEFT JOIN rb_discountcoupon_product as c on b.ID=c.DiscountCouponId
LEFT JOIN rb_member_discountcoupon as a on a.CouponId=b.ID
where b.UseType=1 and c.`Status`=0 {where} {goodsClassWhere}
string sql = @$" SELECT a.ID,a.UserId,a.`Name`,a.CouponType,a.UseType,a.MinConsumePrice,a.DiscountsPrice,a.MaxDiscountsPrice,a.Description,a.StartDate,a.EndDate from rb_member_discountcoupon as a
LEFT JOIN rb_member_couponproduct as c on a.ID=c.MemberCouponId
where a.UseType=1 and c.`Status`=0 {where} {goodsClassWhere}
UNION ALL
SELECT a.ID,a.UserId,b.`Name`,b.CouponType,b.UseType,b.MinConsumePrice,b.DiscountsPrice,b.MaxDiscountsPrice,b.Describe,a.StartDate,a.EndDate from rb_discountcoupon as b
LEFT JOIN rb_discountcoupon_product as c on b.ID=c.DiscountCouponId
LEFT JOIN rb_member_discountcoupon as a on a.CouponId=b.ID
where b.UseType=2 and c.`Status`=0 {where} {goodsWhere}
SELECT a.ID,a.UserId,a.`Name`,a.CouponType,a.UseType,a.MinConsumePrice,a.DiscountsPrice,a.MaxDiscountsPrice,a.Description,a.StartDate,a.EndDate from rb_member_discountcoupon as a
LEFT JOIN rb_member_couponproduct as c on a.ID=c.MemberCouponId
where a.UseType=2 and c.`Status`=0 {where} {goodsWhere}
UNION all
SELECT a.ID,a.UserId,b.`Name`,b.CouponType,b.UseType,b.MinConsumePrice,b.DiscountsPrice,b.MaxDiscountsPrice,b.Describe,a.StartDate,a.EndDate from rb_discountcoupon as b
LEFT JOIN rb_member_discountcoupon as a on a.CouponId=b.ID
where b.UseType=3 {where} {allWhere}";
SELECT a.ID,a.UserId,a.`Name`,a.CouponType,a.UseType,a.MinConsumePrice,a.DiscountsPrice,a.MaxDiscountsPrice,a.Description,a.StartDate,a.EndDate from rb_member_discountcoupon as a
LEFT JOIN rb_member_couponproduct as c on a.ID=c.MemberCouponId
where a.UseType=3 {where} {allWhere}";
return Get<RB_DiscountCoupon_Extend>(sql).ToList();
}
#region 小程序个人中心-领劵中心
/// <summary>
/// 领劵中心优惠券
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_DiscountCoupon_Extend> GetAllCouponList(int pageIndex, int pageSize, out long rowCount, RB_DiscountCoupon_Extend query)
{
string where = " where a.`Status`=0 and a.PickupCenter=1";
string userWhere = "";//分类
if (query != null)
{
if (query.TenantId > 0)
{
where += $" AND a.{nameof(RB_DiscountCoupon_Extend.TenantId)}={query.TenantId}";
userWhere += $" AND {nameof(RB_DiscountCoupon_Extend.TenantId)}={query.TenantId}";
}
if (query.MallBaseId > 0)
{
where += $" AND a.{nameof(RB_DiscountCoupon_Extend.MallBaseId)}={query.MallBaseId}";
userWhere += $" AND {nameof(RB_DiscountCoupon_Extend.MallBaseId)}={query.MallBaseId}";
}
if (query.UserId > 0)
{
userWhere += $" AND {nameof(RB_DiscountCoupon_Extend.UserId)}={query.UserId}";
}
}
string sql = @$" SELECT t.*,c.MemberNum from (SELECT a.ID,a.`Name`,a.`Describe`,a.CouponType,a.UseType,a.StartDate,a.EndDate,a.MinConsumePrice,a.MaxDiscountsPrice,a.DiscountsPrice,a.IndateDay,a.IndateType from rb_discountcoupon as a
{where} and a.CouponType=1
UNION ALL
SELECT a.ID,a.`Name`,a.`Describe`,a.CouponType,a.UseType,a.StartDate,a.EndDate,a.MinConsumePrice,a.MaxDiscountsPrice,a.DiscountsPrice,a.IndateDay,a.IndateType from rb_discountcoupon as a
{where} and a.CouponType=2 and a.StartDate>NOW() and a.EndDate<NOW() )
as t LEFT JOIN (SELECT CouponId,COUNT(*) as MemberNum from rb_member_discountcoupon where `Status`=0 and UseState!=2 {userWhere} GROUP BY CouponId) as c on t.ID=c.CouponId ";
return GetPage<RB_DiscountCoupon_Extend>(pageIndex, pageSize, out rowCount, sql).ToList();
}
#endregion
}
}
......@@ -19,6 +19,11 @@ namespace Mall.Repository.MarketingCenter
/// </summary>
public string PCategoryTableName { get { return nameof(Model.Entity.Product.RB_Product_Category); } }
/// <summary>
/// 表名称
/// </summary>
public string GoodsTableName { get { return nameof(Model.Entity.Product.RB_Goods); } }
/// <summary>
/// 优惠券对应的商品/分类列表
/// </summary>
......@@ -75,14 +80,14 @@ namespace Mall.Repository.MarketingCenter
{
builder.Append($" AND a.{nameof(RB_DiscountCoupon_Product.DiscountCouponId)} in ({DiscountCouponIds})");
}
string sql = $"SELECT a.* from {TableName} as a WHERE a.{nameof(RB_DiscountCoupon_Product.Status)}=0 {builder.ToString()} ";
string sql = $"SELECT a.* from {TableName} as a WHERE a.{nameof(RB_Member_CouponProduct.Status)}=0 {builder.ToString()} ";
if (query.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category)
{
sql = $" SELECT a.*,b.`Name` as Relevance from {TableName} as a LEFT JOIN {PCategoryTableName} as b on a.ProductId=b.Id WHERE a.{nameof(RB_DiscountCoupon_Product.Status)}=0 {builder.ToString()} ";
}
else if (query.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product)
{
sql = $" SELECT a.*,b.`Name` as Relevance from {TableName} as a LEFT JOIN {PCategoryTableName} as b on a.ProductId=b.Id WHERE a.{nameof(RB_DiscountCoupon_Product.Status)}=0 {builder.ToString()} ";
sql = $" SELECT a.*,b.`Name` as Relevance from {TableName} as a LEFT JOIN {GoodsTableName} as b on a.ProductId=b.Id WHERE a.{nameof(RB_DiscountCoupon_Product.Status)}=0 {builder.ToString()} ";
}
return Get<RB_DiscountCoupon_Product_Extend>(sql).ToList();
}
......
using Mall.Model.Entity.MarketingCenter;
using Mall.Model.Extend.User;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.User
{
public class RB_Member_CouponProductRepository : RepositoryBase<RB_Member_CouponProduct>
{
/// <summary>
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_DiscountCoupon_Product); } }
/// <summary>
/// 表名称
/// </summary>
public string PCategoryTableName { get { return nameof(Model.Entity.Product.RB_Product_Category); } }
/// <summary>
/// 表名称
/// </summary>
public string GoodsTableName { get { return nameof(Model.Entity.Product.RB_Goods); } }
/// <summary>
/// 优惠券对应的商品/分类列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Member_CouponProduct_Extend> GetMemberCouponProduct(RB_Member_DiscountCoupon_Extend query, string DiscountCouponIds)
{
StringBuilder builder = new StringBuilder();
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Member_CouponProduct.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Member_CouponProduct.MallBaseId)}={query.MallBaseId}");
}
}
if (!string.IsNullOrWhiteSpace(DiscountCouponIds))
{
builder.Append($" AND a.{nameof(RB_Member_CouponProduct.MemberCouponId)} in ({DiscountCouponIds})");
}
string sql = $"SELECT a.* from {TableName} as a WHERE a.{nameof(RB_Member_CouponProduct.Status)}=0 {builder.ToString()} ";
if (query.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category)
{
sql = $" SELECT a.*,b.`Name` as Relevance from {TableName} as a LEFT JOIN {PCategoryTableName} as b on a.ProductId=b.Id WHERE a.{nameof(RB_Member_CouponProduct.Status)}=0 {builder.ToString()} ";
}
else if (query.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product)
{
sql = $" SELECT a.*,b.`Name` as Relevance from {TableName} as a LEFT JOIN {PCategoryTableName} as b on a.ProductId=b.Id WHERE a.{nameof(RB_Member_CouponProduct.Status)}=0 {builder.ToString()} ";
}
return Get<RB_Member_CouponProduct_Extend>(sql).ToList();
}
}
}
......@@ -337,5 +337,48 @@ LEFT JOIN rb_member_user as d on d.AliasName=a.UserId where a.UseState=1 {buil
return GetPage<RB_Member_DiscountCoupon_Extend>(pageIndex, pageSize, out rowCount, sql).ToList();
}
/// <summary>
/// 我的优惠券
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Member_DiscountCoupon_Extend> GetMemberCouponPageList(int pageIndex, int pageSize, out long rowCount, RB_Member_DiscountCoupon_Extend query)
{
string where = " where a.`Status`=0 ";
if (query != null)
{
if (query.TenantId > 0)
{
where += $" AND a.{nameof(RB_Member_DiscountCoupon_Extend.TenantId)}={query.TenantId}";
}
if (query.MallBaseId > 0)
{
where += $" AND a.{nameof(RB_Member_DiscountCoupon_Extend.MallBaseId)}={query.MallBaseId}";
}
if (query.UserId > 0)
{
where += $" AND a.{nameof(RB_Member_DiscountCoupon_Extend.UserId)}={query.UserId}";
}
if (query.UseState == 0)
{
where += $" AND a.{nameof(RB_Member_DiscountCoupon_Extend.UseState)}={query.UseState} AND a.{nameof(RB_Member_DiscountCoupon_Extend.EndDate)}> NOW()";
}
else if (query.UseState == 1)
{
where += $" AND a.{nameof(RB_Member_DiscountCoupon_Extend.UseState)}={query.UseState}";
}
else if (query.UseState == 2)
{
where += $" AND a.{nameof(RB_Member_DiscountCoupon_Extend.EndDate)}<NOW() AND a.{nameof(RB_Member_DiscountCoupon_Extend.UseState)}=0";
}
}
string sql = @$" SELECT a.* from rb_member_discountcoupon as a {where} ";
return GetPage<RB_Member_DiscountCoupon_Extend>(pageIndex, pageSize, out rowCount, sql).ToList();
}
}
}
......@@ -389,14 +389,14 @@ namespace Mall.WebApi.Controllers.MarketingCenter
{
return ApiResult.Failed("请选择发放对象");
}
List<RB_Member_DiscountCoupon> list = new List<RB_Member_DiscountCoupon>();
List<RB_Member_DiscountCoupon_Extend> list = new List<RB_Member_DiscountCoupon_Extend>();
for (int i = 0; i < query.GrantNum; i++)
{
foreach (var item in query.UserIds.Split(","))
{
if (!string.IsNullOrWhiteSpace(item))
{
RB_Member_DiscountCoupon memberCoupon = new RB_Member_DiscountCoupon();
RB_Member_DiscountCoupon_Extend memberCoupon = new RB_Member_DiscountCoupon_Extend();
memberCoupon.Id = 0;
memberCoupon.UserId = Convert.ToInt32(item);
memberCoupon.Description = oldLogisticsModel.Describe;
......@@ -415,13 +415,33 @@ namespace Mall.WebApi.Controllers.MarketingCenter
memberCoupon.StartDate = oldLogisticsModel.StartDate;
memberCoupon.EndDate = oldLogisticsModel.EndDate;
}
memberCoupon.ProductList = new List<RB_Member_CouponProduct_Extend>();
foreach (var itemProduct in oldLogisticsModel.ProductList)
{
RB_Member_CouponProduct_Extend model = new RB_Member_CouponProduct_Extend();
model.CreateDate = memberCoupon.CreateDate.Value;
model.DiscountCouponType = itemProduct.DiscountCouponType;
model.ID = 0;
model.MallBaseId = memberCoupon.MallBaseId;
model.TenantId = memberCoupon.TenantId;
model.ProductId = itemProduct.ProductId;
model.Status = 0;
model.UpdateDate = memberCoupon.CreateDate.Value;
memberCoupon.ProductList.Add(model);
}
list.Add(memberCoupon);
}
}
}
if (oldLogisticsModel.TotalNum != -1)
{
if ((oldLogisticsModel.TotalNum - oldLogisticsModel.ReceiveNum) < list.Count())
//if ((oldLogisticsModel.TotalNum - oldLogisticsModel.ReceiveNum) < list.Count())
//{
// return ApiResult.Failed("优惠券剩余" + (oldLogisticsModel.TotalNum - oldLogisticsModel.ReceiveNum) + "张");
//}
if (oldLogisticsModel.TotalNum < list.Count())
{
return ApiResult.Failed("优惠券剩余" + (oldLogisticsModel.TotalNum - oldLogisticsModel.ReceiveNum) + "张");
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment