Commit bcdf2478 authored by 吴春's avatar 吴春

提交优惠券

parent ba6a229f
using Mall.Common.AOP;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.MarketingCenter
{
/// <summary>
/// 自动发放优惠券
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Coupon_SelfMotion
{
public int ID { get; set; }
/// <summary>
/// 商户id
/// </summary>
public int TenantId { get; set; }
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId { get; set; }
public int Status { get; set; }
public DateTime CreateDate { get; set; }
public DateTime UpdateDate { get; set; }
/// <summary>
/// 触发事件,1-分享,2-购买并付款,3-新人领券
/// </summary>
public int TriggerType { get; set; }
/// <summary>
/// 优惠券id
/// </summary>
public int DiscountCouponId { get; set; }
/// <summary>
/// 发放次数,0-无限制
/// </summary>
public int GrantNum { get; set; }
/// <summary>
/// 0-所有人,1-指定用户
/// </summary>
public int IsAll { get; set; }
}
}
using Mall.Common.AOP;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.MarketingCenter
{
/// <summary>
/// 自动发放优惠券-指定会员
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Coupon_SelfMotionMember
{
/// <summary>
/// 自动发放id
/// </summary>
public int SelfMotionId { get; set; }
/// <summary>
/// 会员id
/// </summary>
public int UserId { get; set; }
public int ID { get; set; }
/// <summary>
/// 商户id
/// </summary>
public int TenantId { get; set; }
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId { get; set; }
public int Status { get; set; }
public DateTime CreateDate { get; set; }
public DateTime UpdateDate { get; set; }
}
}
......@@ -6,6 +6,9 @@ using System.Text;
namespace Mall.Model.Entity.MarketingCenter
{
/// <summary>
/// 优惠券指定商品/分类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_DiscountCoupon_Product
......
using Mall.Common.AOP;
using Mall.Common.Enum.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.User
{
/// <summary>
/// 会员优惠券实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Member_DiscountCoupon
{
/// <summary>
/// Id
/// </summary>
public int Id
{
get;
set;
}
/// <summary>
/// 用户id
/// </summary>
public int? UserId { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Description
{
get;
set;
}
/// <summary>
/// 领取时间
/// </summary>
public DateTime? CreateDate
{
get;
set;
}
/// <summary>
/// 商户号id
/// </summary>
public int TenantId
{
get;
set;
}
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId
{
get;
set;
}
/// <summary>
/// 备注
/// </summary>
public string Remarks { get; set; }
/// <summary>
/// 平台类型
/// </summary>
public PlatformTypeEnum? PlatformType { get; set; }
/// <summary>
/// 使用状态 0-未使用,1:已使用,2:已作废
/// </summary>
public int UseState { get; set; }
/// <summary>
/// 优惠券id
/// </summary>
public int CouponId { get; set; }
/// <summary>
/// 使用时间
/// </summary>
public DateTime? UseDate { get; set; }
/// <summary>
/// 订单号
/// </summary>
public int OrderId { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
}
}
using Mall.Common.AOP;
using Mall.Model.Entity.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Extend.MarketingCenter
{
/// <summary>
/// 自动发放优惠券-指定会员扩展表
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Coupon_SelfMotionMember_Extend : RB_Coupon_SelfMotionMember
{
/// <summary>
/// 会员名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 会员头像
/// </summary>
public string Photo { get; set; }
}
}
using Mall.Common.AOP;
using Mall.Model.Entity.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Extend.MarketingCenter
{
/// <summary>
/// 自动发放优惠券扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Coupon_SelfMotion_Extend: RB_Coupon_SelfMotion
{
public List<RB_Coupon_SelfMotionMember_Extend> UserList { get; set; }
}
}
......@@ -16,6 +16,16 @@ namespace Mall.Model.Extend.MarketingCenter
/// <summary>
/// 商品/分类id
/// </summary>
public List<RB_DiscountCoupon_Product> ProductList { get; set; }
public List<RB_DiscountCoupon_Product_Extend> ProductList { get; set; }
/// <summary>
/// 发放优惠券的时候会员id
/// </summary>
public string UserIds { get; set; }
/// <summary>
/// 发放数量
/// </summary>
public int GrantNum { get; set; }
}
}
using Mall.Common.AOP;
using Mall.Model.Entity.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Extend.MarketingCenter
{
/// <summary>
/// 优惠券指定商品、分类扩展表
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_DiscountCoupon_Product_Extend : RB_DiscountCoupon_Product
{
/// <summary>
/// 关联信息(商品图片/分类名称)
/// </summary>
public string Relevance { get; set; }
}
}
using Mall.Common.AOP;
using Mall.Model.Entity.User;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Extend.User
{
/// <summary>
/// 会员优惠券扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Member_DiscountCoupon_Extend : RB_Member_DiscountCoupon
{
}
}
......@@ -532,10 +532,10 @@ namespace Mall.Module.BaseSetUp
}
if (model.List != null && model.List.Any())
{
model.List.ForEach(x => x.TenantId = rulesId);
model.List.ForEach(x => x.TenantId = model.TenantId);
model.List.ForEach(x => x.CreateDate = System.DateTime.Now);
model.List.ForEach(x => x.ID = 0);
model.List.ForEach(x => x.RulesPriceId = model.TenantId);
model.List.ForEach(x => x.RulesPriceId =rulesId);
model.List.ForEach(x => x.RulesType = model.RulesType);
model.List.ForEach(x => x.MallBaseId = model.MallBaseId);
flag = logisticsRulesRegionRepository.InsertBatch(model.List, trans);
......
using Mall.Common.Plugin;
using Mall.Model.Entity.MarketingCenter;
using Mall.Model.Entity.User;
using Mall.Model.Extend.MarketingCenter;
using Mall.Repository;
using Mall.Repository.MarketingCenter;
......@@ -15,6 +16,13 @@ namespace Mall.Module.MarketingCenter
private RB_CouponRepository couponRepository = new RB_CouponRepository();
private RB_DiscountCouponRepository discountCouponRepository = new RB_DiscountCouponRepository();
private RB_DiscountCoupon_ProductRepository productRepository = new RB_DiscountCoupon_ProductRepository();
private Repository.User.RB_Member_CouponRepository memberCouponRepository = new Repository.User.RB_Member_CouponRepository();
private RB_Coupon_SelfMotionMemberRepository selfMotionMemberRepository = new RB_Coupon_SelfMotionMemberRepository();
private RB_Coupon_SelfMotionRepository selfMotionRepository = new RB_Coupon_SelfMotionRepository();
#region 卡券列表
/// <summary>
/// 卡券信息列表
......@@ -120,7 +128,19 @@ namespace Mall.Module.MarketingCenter
/// <returns></returns>
public List<RB_DiscountCoupon_Extend> GetDiscountCouponList(RB_DiscountCoupon_Extend query)
{
return discountCouponRepository.GetDiscountCouponList(query);
var list = discountCouponRepository.GetDiscountCouponList(query);
if (list != null && list.Any())
{
string Ids = string.Join(",", list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category || x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product).Select(x => x.ID));
var listProduct = productRepository.GetListByDiscountCouponIds(query, Ids);
foreach (var item in list)
{
item.ProductList = new List<RB_DiscountCoupon_Product_Extend>();
item.ProductList = listProduct.Where(x => x.DiscountCouponId == item.ID).ToList();
}
}
return list;
}
......@@ -193,7 +213,6 @@ namespace Mall.Module.MarketingCenter
return flag;
}
/// <summary>
/// 删除优惠券
/// </summary>
......@@ -202,40 +221,340 @@ namespace Mall.Module.MarketingCenter
/// <returns></returns>
public bool DelDiscountCoupon(int id, int uid, int mallBaseId)
{
bool flag = false;
var trans = discountCouponRepository.DbTransaction;
try
{
Dictionary<string, object> cols1 = new Dictionary<string, object>()
{
{ nameof(RB_DiscountCoupon.Status),1},
{ nameof(RB_DiscountCoupon.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_DiscountCoupon.ID),
FiledValue=id,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_DiscountCoupon.TenantId),
FiledValue=Convert.ToInt32(uid),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_DiscountCoupon.MallBaseId),
FiledValue=Convert.ToInt32(mallBaseId),
OperatorEnum=OperatorEnum.Equal
}
};
flag = discountCouponRepository.Update(cols1, wheres1);
Dictionary<string, object> cols = new Dictionary<string, object>()
{
{ nameof(RB_Coupon.Status),1},
{ nameof(RB_Coupon.UpdateDate),DateTime.Now},
{
{ nameof(RB_DiscountCoupon_Product.Status),1},
{ nameof(RB_DiscountCoupon_Product.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_DiscountCoupon_Product.DiscountCouponId),
FiledValue=id,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_DiscountCoupon_Product.TenantId),
FiledValue=Convert.ToInt32(uid),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_DiscountCoupon_Product.MallBaseId),
FiledValue=Convert.ToInt32(mallBaseId),
OperatorEnum=OperatorEnum.Equal
}
};
flag = productRepository.Update(cols, wheres);
discountCouponRepository.DBSession.Commit();
}
catch (Exception ex)
{
LogHelper.Write(ex, "DelDiscountCoupon");
discountCouponRepository.DBSession.Rollback("DelDiscountCoupon");
return false;
}
return flag;
}
/// <summary>
/// 领劵中心
/// </summary>
/// <param name="gradeId"></param>
/// <param name="uid"></param>
/// <returns></returns>
public bool UpdatePickupType(int id, int uid, int mallBaseId)
{
try
{
var model = discountCouponRepository.GetEntity(id);
Dictionary<string, object> cols1 = new Dictionary<string, object>()
{
{ nameof(RB_DiscountCoupon.PickupType),model.PickupType==Common.Enum.MarketingCenter.PickupTypeEnum.CouponCenter?Common.Enum.MarketingCenter.PickupTypeEnum.OnlyMember:Common.Enum.MarketingCenter.PickupTypeEnum.CouponCenter},
{ nameof(RB_DiscountCoupon.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Coupon.ID),
FiledName=nameof(RB_DiscountCoupon.ID),
FiledValue=id,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Coupon.TenantId),
FiledName=nameof(RB_DiscountCoupon.TenantId),
FiledValue=Convert.ToInt32(uid),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Coupon.MallBaseId),
FiledName=nameof(RB_DiscountCoupon.MallBaseId),
FiledValue=Convert.ToInt32(mallBaseId),
OperatorEnum=OperatorEnum.Equal
}
};
return discountCouponRepository.Update(cols, wheres1);
};
return discountCouponRepository.Update(cols1, wheres1);
}
catch (Exception ex)
{
LogHelper.Write(ex, "DelDiscountCoupon");
LogHelper.Write(ex, "UpdatePickupType");
return false;
}
}
/// <summary>
/// 发放优惠券
/// </summary>
/// <param name="list"></param>
/// <param name="model"></param>
/// <returns></returns>
public bool GrantCoupon(List<RB_Member_DiscountCoupon> list, RB_DiscountCoupon_Extend model)
{
bool flag = false;
var trans = memberCouponRepository.DbTransaction;
try
{
flag = memberCouponRepository.InsertBatch(list);
if (model != null && flag)
{
Dictionary<string, object> cols1 = new Dictionary<string, object>()
{
{ nameof(RB_DiscountCoupon.ReceiveNum),model.ReceiveNum+list.Count()},
{ nameof(RB_DiscountCoupon.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres1 = new List<WhereHelper>()
{
new WhereHelper(){
FiledName=nameof(RB_DiscountCoupon.ID),
FiledValue=model.ID,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_DiscountCoupon.TenantId),
FiledValue=model.TenantId,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_DiscountCoupon.MallBaseId),
FiledValue=model.MallBaseId,
OperatorEnum=OperatorEnum.Equal
}
};
flag = discountCouponRepository.Update(cols1, wheres1);
}
memberCouponRepository.DBSession.Commit();
}
catch (Exception ex)
{
LogHelper.Write(ex, "GrantCoupon");
memberCouponRepository.DBSession.Rollback("GrantCoupon");
return false;
}
return flag;
}
#endregion
#region 自动发放优惠券规则
/// <summary>
/// 自动发放优惠券规则列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Coupon_SelfMotion_Extend> GetSelfMotionPageLis(int pageIndex, int pageSize, out long rowCount, RB_Coupon_SelfMotion_Extend query)
{
return selfMotionRepository.GetSelfMotionPageLis(pageIndex, pageSize, out rowCount, query);
}
/// <summary>
/// 自动发放优惠券规则列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Coupon_SelfMotion_Extend> GettRepositoryList(RB_Coupon_SelfMotion_Extend query)
{
return selfMotionRepository.GettRepositoryList(query);
}
/// <summary>
/// 新增/修改自动发放优惠券
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool AddOrUpdateSelfMotion(RB_Coupon_SelfMotion_Extend model)
{
bool flag = false;
var trans = selfMotionRepository.DbTransaction;
try
{
int id = 0;
if (model.ID == 0)
{
id = selfMotionRepository.Insert(model, trans);
if (id > 0 && model.UserList != null && model.UserList.Any())
{
model.UserList.ForEach(x => x.MallBaseId = model.MallBaseId);
model.UserList.ForEach(x => x.TenantId = model.TenantId);
model.UserList.ForEach(x => x.CreateDate = model.CreateDate);
model.UserList.ForEach(x => x.UpdateDate = model.UpdateDate);
model.UserList.ForEach(x => x.SelfMotionId = id);
flag = selfMotionMemberRepository.InsertBatch(model.UserList, trans);
}
flag = id > 0;
}
else
{
id = model.ID;
flag = selfMotionRepository.Update(model, trans);
var listProduct = selfMotionMemberRepository.GetListRepository(new RB_Coupon_SelfMotionMember_Extend { TenantId = model.TenantId, MallBaseId = model.MallBaseId, SelfMotionId = id });
if (listProduct != null && listProduct.Any())
{
foreach (var item in model.UserList)
{
IDictionary<string, object> fileds = new Dictionary<string, object>()
{
{ nameof(RB_Coupon_SelfMotionMember.Status),1},
{ nameof(RB_Coupon_SelfMotionMember.UpdateDate),model.UpdateDate},
};
IList<WhereHelper> whereHelpers = new List<WhereHelper>()
{
new WhereHelper (){ FiledName=nameof(RB_Coupon_SelfMotionMember.ID),FiledValue=item.ID,OperatorEnum=OperatorEnum.Equal}
};
flag = productRepository.Update(fileds, whereHelpers, trans);
}
}
if (model.UserList != null && model.UserList.Any())
{
model.UserList.ForEach(x => x.MallBaseId = model.MallBaseId);
model.UserList.ForEach(x => x.TenantId = model.TenantId);
model.UserList.ForEach(x => x.CreateDate = model.CreateDate);
model.UserList.ForEach(x => x.UpdateDate = model.UpdateDate);
model.UserList.ForEach(x => x.SelfMotionId = id);
flag = selfMotionMemberRepository.InsertBatch(model.UserList, trans);
}
}
selfMotionRepository.DBSession.Commit();
}
catch (Exception ex)
{
LogHelper.Write(ex, "AddOrUpdateSelfMotion");
selfMotionRepository.DBSession.Rollback("AddOrUpdateSelfMotion");
return false;
}
return flag;
}
#endregion
/// <summary>
/// 删除自动发放优惠券
/// </summary>
/// <param name="gradeId"></param>
/// <param name="uid"></param>
/// <returns></returns>
public bool DelDiscountSelfMotion(int id, int uid, int mallBaseId)
{
bool flag = false;
var trans = selfMotionRepository.DbTransaction;
try
{
Dictionary<string, object> cols1 = new Dictionary<string, object>()
{
{ nameof(RB_Coupon_SelfMotion.Status),1},
{ nameof(RB_Coupon_SelfMotion.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Coupon_SelfMotion.ID),
FiledValue=id,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Coupon_SelfMotion.TenantId),
FiledValue=Convert.ToInt32(uid),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Coupon_SelfMotion.MallBaseId),
FiledValue=Convert.ToInt32(mallBaseId),
OperatorEnum=OperatorEnum.Equal
}
};
flag = selfMotionRepository.Update(cols1, wheres1);
Dictionary<string, object> cols = new Dictionary<string, object>()
{
{ nameof(RB_Coupon_SelfMotionMember.Status),1},
{ nameof(RB_Coupon_SelfMotionMember.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Coupon_SelfMotionMember.SelfMotionId),
FiledValue=id,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Coupon_SelfMotionMember.TenantId),
FiledValue=Convert.ToInt32(uid),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Coupon_SelfMotionMember.MallBaseId),
FiledValue=Convert.ToInt32(mallBaseId),
OperatorEnum=OperatorEnum.Equal
}
};
flag = selfMotionMemberRepository.Update(cols, wheres);
selfMotionRepository.DBSession.Commit();
}
catch (Exception ex)
{
LogHelper.Write(ex, "DelDiscountSelfMotion");
selfMotionRepository.DBSession.Rollback("DelDiscountSelfMotion");
return false;
}
return flag;
}
#endregion
}
......
......@@ -40,7 +40,7 @@ LEFT JOIN {DestinationTableName} as c on b.ParentID = c.ID WHERE a.{nameof(RB_
{
builder.Append($" AND a.{nameof(RB_Logistics_RulesRegion_Extend.RulesType)}={(int)query.RulesType}");
}
if (query.TenantId > 0)
if (query.MallBaseId > 0)
{
builder.Append($" AND a.{nameof(RB_Logistics_RulesRegion_Extend.MallBaseId)}={query.MallBaseId}");
}
......
using Mall.Model.Entity.MarketingCenter;
using Mall.Model.Entity.User;
using Mall.Model.Extend.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.MarketingCenter
{
public class RB_Coupon_SelfMotionMemberRepository : RepositoryBase<RB_Coupon_SelfMotionMember>
{
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Coupon_SelfMotionMember); } }
// <summary>
/// 表名称
/// </summary>
public string UserTableName { get { return nameof(RB_Member_User); } }
/// <summary>
/// 获取物流地区列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Coupon_SelfMotionMember_Extend> GetListRepository(RB_Coupon_SelfMotionMember_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append(@$" SELECT a.*,b.`Name`,b.Photo as GrandpaID FROM {TableName} as a
LEFT JOIN {UserTableName} as b on a.UserId = b.ID WHERE a.{nameof(RB_Coupon_SelfMotionMember_Extend.Status)}=0");
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Coupon_SelfMotionMember_Extend.TenantId)}={query.TenantId}");
}
if (query.MallBaseId > 0)
{
builder.Append($" AND a.{nameof(RB_Coupon_SelfMotionMember_Extend.MallBaseId)}={query.MallBaseId}");
}
if (query.SelfMotionId > 0)
{
builder.Append($" AND a.{nameof(RB_Coupon_SelfMotionMember_Extend.SelfMotionId)}={query.SelfMotionId}");
}
if (query.UserId > 0)
{
builder.Append($" AND a.{nameof(RB_Coupon_SelfMotionMember_Extend.UserId)}={query.UserId}");
}
//if (!string.IsNullOrWhiteSpace(query.PriceIds))
//{
// builder.Append($" AND a.{nameof(RB_Coupon_SelfMotionMember_Extend.RulesPriceId)} in ({query.PriceIds})");
//}
}
return Get<RB_Coupon_SelfMotionMember_Extend>(builder.ToString()).ToList();
}
}
}
using Mall.Model.Entity.MarketingCenter;
using Mall.Model.Extend.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.MarketingCenter
{
/// <summary>
/// 自动发放优惠券仓储层
/// </summary>
public class RB_Coupon_SelfMotionRepository : RepositoryBase<RB_Coupon_SelfMotion>
{
/// <summary>
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Coupon_SelfMotion); } }
/// <summary>
/// 自动发放优惠券规则列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Coupon_SelfMotion_Extend> GetSelfMotionPageLis(int pageIndex, int pageSize, out long rowCount, RB_Coupon_SelfMotion_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append($" SELECT * FROM {TableName} WHERE {nameof(RB_Coupon_SelfMotion_Extend.Status)}=0");
if (query != null)
{
// where += $@" and {nameof(RB_Customer_InfoCreate.CustomerId)}={dmodel.CustomerId}";
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Coupon_SelfMotion_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Coupon_SelfMotion_Extend.MallBaseId)}={query.MallBaseId}");
}
if (query.DiscountCouponId > 0)
{
builder.Append($" AND {nameof(RB_Coupon_SelfMotion_Extend.DiscountCouponId)}={query.DiscountCouponId}");
}
}
return GetPage<RB_Coupon_SelfMotion_Extend>(pageIndex, pageSize, out rowCount, builder.ToString()).ToList();
}
/// <summary>
/// 自动发放优惠券规则列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Coupon_SelfMotion_Extend> GettRepositoryList(RB_Coupon_SelfMotion_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append($" SELECT * FROM {TableName} WHERE {nameof(RB_Coupon_SelfMotion_Extend.Status)}=0 ");
if (query != null)
{
if (query != null)
{
// where += $@" and {nameof(RB_Customer_InfoCreate.CustomerId)}={dmodel.CustomerId}";
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Coupon_SelfMotion_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Coupon_SelfMotion_Extend.MallBaseId)}={query.MallBaseId}");
}
if (query.DiscountCouponId > 0)
{
builder.Append($" AND {nameof(RB_Coupon_SelfMotion_Extend.DiscountCouponId)}={query.DiscountCouponId}");
}
}
}
return Get<RB_Coupon_SelfMotion_Extend>(builder.ToString()).ToList();
}
}
}
using Mall.Model.Entity.MarketingCenter;
using Mall.Model.Extend.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Linq;
......@@ -13,6 +14,11 @@ namespace Mall.Repository.MarketingCenter
/// </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>
......@@ -43,5 +49,42 @@ namespace Mall.Repository.MarketingCenter
}
return Get<RB_DiscountCoupon_Product>(builder.ToString()).ToList();
}
/// <summary>
/// 优惠券对应的商品/分类列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_DiscountCoupon_Product_Extend> GetListByDiscountCouponIds(RB_DiscountCoupon query, string DiscountCouponIds)
{
StringBuilder builder = new StringBuilder();
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_DiscountCoupon_Product.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_DiscountCoupon_Product.MallBaseId)}={query.MallBaseId}");
}
}
if (!string.IsNullOrWhiteSpace(DiscountCouponIds))
{
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()} ";
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()} ";
}
return Get<RB_DiscountCoupon_Product_Extend>(sql).ToList();
}
}
}
......@@ -123,5 +123,8 @@ namespace Mall.Repository.User
}
return GetPage<RB_Member_Balance_Extend>(pageIndex, pageSize, out rowCount, builder.ToString()).ToList();
}
}
}
using Mall.Model.Entity.User;
using Mall.Model.Extend.User;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.User
{
/// <summary>
/// 会员优惠券仓储层
/// </summary>
public class RB_Member_CouponRepository:RepositoryBase<RB_Member_DiscountCoupon>
{
public string MemberTableName { get { return nameof(RB_Member_User); } }
/// <summary>
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Member_DiscountCoupon); } }
/// <summary>
/// 会员优惠券
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Member_DiscountCoupon_Extend> GetIntegraStatisticslList(int pageIndex, int pageSize, out long rowCount, RB_Member_DiscountCoupon_Extend query)
{
StringBuilder builder = new StringBuilder();
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Member_DiscountCoupon_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Member_DiscountCoupon_Extend.MallBaseId)}={query.MallBaseId}");
}
if (query.PlatformType > 0)
{
builder.Append($" AND {nameof(RB_Member_DiscountCoupon_Extend.PlatformType)}={query.PlatformType}");
}
if (query.UserId > 0)
{
builder.Append($" AND {nameof(RB_Member_DiscountCoupon_Extend.UserId)}={query.UserId}");
}
//if (!string.IsNullOrWhiteSpace(query.StartDate))
//{
// builder.Append($" AND DATE_FORMAT({nameof(RB_Member_Coupon_Extend.CreateDate)},'%Y-%m-%d' )>= DATE_FORMAT('{nameof(RB_Member_Coupon_Extend.StartDate)}','%Y-%m-%d' )");
//}
//if (!string.IsNullOrWhiteSpace(query.EndDate))
//{
// builder.Append($" AND DATE_FORMAT({nameof(RB_Member_Coupon_Extend.CreateDate)},'%Y-%m-%d' )<= DATE_FORMAT('{nameof(RB_Member_Coupon_Extend.EndDate)}','%Y-%m-%d' )");
//}
}
string sql = @$" select * from {TableName} where 1=1 {builder.ToString()} ";
return GetPage<RB_Member_DiscountCoupon_Extend>(pageIndex, pageSize, out rowCount, sql).ToList();
}
/// <summary>
/// 会员优惠券
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Member_DiscountCoupon_Extend> GetExportIntegraStatisticslList(RB_Member_DiscountCoupon_Extend query)
{
StringBuilder builder = new StringBuilder();
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Member_DiscountCoupon_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Member_DiscountCoupon_Extend.MallBaseId)}={query.MallBaseId}");
}
if (query.PlatformType > 0)
{
builder.Append($" AND {nameof(RB_Member_DiscountCoupon_Extend.PlatformType)}={query.PlatformType}");
}
if (query.UserId > 0)
{
builder.Append($" AND {nameof(RB_Member_DiscountCoupon_Extend.UserId)}={query.UserId}");
}
}
string sql = @$" select * from {TableName} where 1=1 {builder.ToString()} ";
return Get<RB_Member_DiscountCoupon_Extend>(sql).ToList();
}
}
}
......@@ -402,7 +402,7 @@ namespace Mall.WebApi.Controllers.MallBase
{
return ApiResult.Failed("请输入包邮名称");
}
if (query.AllRegionPrice > -1)
if (query.AllRegionPrice <= -1)
{
return ApiResult.Failed("包邮费用不能为负数");
}
......
......@@ -4,6 +4,7 @@ using System.Linq;
using System.Threading.Tasks;
using Mall.Common.API;
using Mall.Common.Plugin;
using Mall.Model.Entity.User;
using Mall.Model.Extend.MarketingCenter;
using Mall.Module.MarketingCenter;
using Mall.WebApi.Filter;
......@@ -271,7 +272,7 @@ namespace Mall.WebApi.Controllers.MarketingCenter
{
if (query.ProductList == null || !query.ProductList.Any())
{
return ApiResult.Failed(query.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category?"请选择商品类别": "请选择商品");
return ApiResult.Failed(query.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category ? "请选择商品类别" : "请选择商品");
}
}
if (query.TotalNum == 0)
......@@ -324,6 +325,107 @@ namespace Mall.WebApi.Controllers.MarketingCenter
return ApiResult.Failed();
}
}
/// <summary>
/// 加入领劵中心
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult UpdatePickupType()
{
var parms = RequestParm;
JObject parmsJob = JObject.Parse(RequestParm.msg.ToString());
int Id = parmsJob.GetInt("Id", 0);
if (Id <= 0)
{
return ApiResult.Failed("请传递参数");
}
bool flag = IntegralModule.UpdatePickupType(Id, UserInfo.TenantId, parms.MallBaseId);
if (flag)
{
return ApiResult.Success("操作成功");
}
else
{
return ApiResult.Failed("操作失败");
}
}
/// <summary>
/// 发放优惠券
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GrantCoupon()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_DiscountCoupon_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
if (query == null)
{
return ApiResult.Failed("请传入卡券信息");
}
else
{
var oldLogisticsModel = IntegralModule.GetDiscountCouponList(query).FirstOrDefault();
if (oldLogisticsModel == null || oldLogisticsModel.ID == 0)
{
return ApiResult.Failed("优惠券信息不存在,请核实后再操作");
}
List<RB_Member_DiscountCoupon> list = new List<RB_Member_DiscountCoupon>();
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();
memberCoupon.Id = 0;
memberCoupon.UserId = Convert.ToInt32(item);
memberCoupon.Description = oldLogisticsModel.Describe;
memberCoupon.CreateDate = System.DateTime.Now;
memberCoupon.TenantId = oldLogisticsModel.TenantId;
memberCoupon.MallBaseId = oldLogisticsModel.MallBaseId;
memberCoupon.Remarks = "";
memberCoupon.PlatformType = Common.Enum.MarketingCenter.PlatformTypeEnum.WeChat;
memberCoupon.CouponId = oldLogisticsModel.ID;
if (oldLogisticsModel.IndateType == Common.Enum.MarketingCenter.IndateTypeEnum.DayHorizon)
{
memberCoupon.StartDate = System.DateTime.Now;
memberCoupon.EndDate = memberCoupon.StartDate.Value.AddDays(oldLogisticsModel.IndateDay);
}
else
{
memberCoupon.StartDate = oldLogisticsModel.StartDate;
memberCoupon.EndDate = oldLogisticsModel.EndDate;
}
list.Add(memberCoupon);
}
}
}
if (oldLogisticsModel.TotalNum != -1)
{
if ((oldLogisticsModel.TotalNum - oldLogisticsModel.ReceiveNum) < list.Count())
{
return ApiResult.Failed("优惠券剩余" + (oldLogisticsModel.TotalNum - oldLogisticsModel.ReceiveNum) + "张");
}
}
bool result = IntegralModule.GrantCoupon(list, oldLogisticsModel);
if (result)
{
return ApiResult.Success("优惠券信息保存成功");
}
else
{
return ApiResult.Failed("优惠券信息保存失败");
}
}
}
#endregion
}
}
\ No newline at end of file
......@@ -227,6 +227,9 @@ namespace Mall.WebApi.Controllers.MarketingCenter
return ApiResult.Success("", pagelist);
}
#endregion
}
}
\ No newline at end of file
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