Commit 4d0e2479 authored by 吴春's avatar 吴春

提交代码

parent fe3fb865
using VT.FW.DB;
using Mall.Common.Enum.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.Education
{
/// <summary>
/// 教育-课程卡实体表
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Education_Coupon
{
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; }
public string Name { get; set; }
public string CouponIco { get; set; }
/// <summary>
/// 领取方式设置1-领劵中心
/// </summary>
public int PickupCenter { get; set; }
/// <summary>
/// 店铺id
/// </summary>
public int SmallShopId { get; set; }
/// <summary>
/// 是否赞羊使用0-否,1-是
/// </summary>
public int IsZanYangUse { get; set; }
/// <summary>
/// 有效期类型,1-领取后N天内有效,2-时间段
/// </summary>
public IndateTypeEnum IndateType { get; set; }
/// <summary>
/// 有效天数
/// </summary>
public int IndateDay { get; set; }
/// <summary>
/// 总核销次数
/// </summary>
public int HeXiao { get; set; }
/// <summary>
/// 可发放数量,-1 无限制
/// </summary>
public int TotalNum { get; set; }
/// <summary>
/// 1-指定商品类型,2-指定商品,3-全场通用,4-当面付
/// </summary>
public UseTypeEnum UseType { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Describe { get; set; }
/// <summary>
/// 领取数量
/// </summary>
public int ReceiveNum { get; set; }
/// <summary>
/// 有效期开始时间
/// </summary>
public DateTime? StartDate { get; set; }
/// <summary>
/// 有效期结束时间
/// </summary>
public DateTime? EndDate { get; set; }
}
}
using VT.FW.DB;
using Mall.Common.Enum.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.Education
{
/// <summary>
/// 优惠券指定商品/分类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Education_CouponProduct
{ /// <summary>
/// 卡劵id
/// </summary>
public int CouponId { 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; }
}
}
using VT.FW.DB;
using Mall.Common.Enum.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.Education
{
/// <summary>
/// 自动发放优惠券
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Education_CouponSelfMotion
{
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 TriggerTypeEnum 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 VT.FW.DB;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.Education
{
/// <summary>
/// 自动发放优惠券-指定会员
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Education_CouponSelfMotionMember
{
/// <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; }
}
}
using VT.FW.DB;
using Mall.Common.Enum.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.Education
{
/// <summary>
/// 会员课程卡劵实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Education_MemberCoupon
{
/// <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>
/// 优惠券id
/// </summary>
public int CouponId { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public DateTime? StartDate { get; set; }
/// <summary>
/// 总核销次数
/// </summary>
public int HeXiao { get; set; }
/// <summary>
/// 已使用核销数
/// </summary>
public int UseHeXiao { get; set; }
public DateTime? EndDate { get; set; }
/// <summary>
/// 领取方式0-自行领取(领劵中心领取),1-分享,2-购买并付款,3-新人领取,4-新人购买并付款
/// </summary>
public new int GetType { get; set; }
/// <summary>
/// 1-指定商品类型,2-指定商品,3-全场通用,4-当面付
/// </summary>
public UseTypeEnum UseType { get; set; }
/// <summary>
/// 删除
/// </summary>
public int Status { get; set; }
/// <summary>
/// 优惠券名称
/// </summary>
public string Name { get; set; }
}
}
using VT.FW.DB;
using Mall.Common.Enum.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.Education
{
/// <summary>
/// 会员使用课程卡劵实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Education_MemberUseCoupon
{
/// <summary>
/// Id
/// </summary>
public int Id
{
get;
set;
}
/// <summary>
/// 用户id
/// </summary>
public int? UserId { get; set; }
/// <summary>
/// 用户优惠券id
/// </summary>
public int? MemberCouponId { 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 int Status { get; set; }
/// <summary>
/// 使用时间
/// </summary>
public DateTime? UseDate { get; set; }
/// <summary>
/// 订单号
/// </summary>
public int OrderId { get; set; }
}
}
using VT.FW.DB;
using System;
using Mall.Model.Entity.Education;
namespace Mall.Model.Extend.Education
{
/// <summary>
/// 自动发放优惠券-指定会员扩展表
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Education_CSelfMotionMember_Extend : RB_Education_CouponSelfMotionMember
{
/// <summary>
/// 会员名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 会员头像
/// </summary>
public string Photo { get; set; }
}
}
using VT.FW.DB;
using Mall.Model.Entity.MarketingCenter;
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.Education;
namespace Mall.Model.Extend.Education
{
/// <summary>
/// 自动发放优惠券扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Education_CSelfMotion_Extend : RB_Education_CouponSelfMotion
{
public List<RB_Education_CSelfMotionMember_Extend> UserList { get; set; }
/// <summary>
/// 优惠券名字
/// </summary>
public string DiscountCouponName { get; set; }
}
}
using Mall.Model.Entity.Education;
using System;
using VT.FW.DB;
namespace Mall.Model.Extend.Education
{
/// <summary>
/// 教育-课程卡关联的商品/分类扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Education_CouponProduct_Extend: RB_Education_CouponProduct
{
/// <summary>
/// 关联信息(商品图片/分类名称)
/// </summary>
public string Relevance { get; set; }
/// <summary>
/// 商品价格(下单获取优惠券)
/// </summary>
public decimal GoodsPrice { get; set; }
/// <summary>
/// 商品分类id
/// </summary>
public int[] GoodsClassId { get; set; }
}
}
using Mall.Model.Entity.Education;
using System;
using System.Collections.Generic;
using VT.FW.DB;
namespace Mall.Model.Extend.Education
{
/// <summary>
/// 优惠券扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Education_Coupon_Extend: RB_Education_Coupon
{
/// <summary>
/// 商品/分类id
/// </summary>
public List<RB_Education_CouponProduct_Extend> ProductList { get; set; }
/// <summary>
/// 发放优惠券的时候会员ids
/// </summary>
public string UserIds { get; set; }
/// <summary>
/// 0-未领取 >0已领取
/// </summary>
public int MemberNum { get; set; }
/// <summary>
/// 发放数量
/// </summary>
public int GrantNum { get; set; }
/// <summary>
/// 触发事件,1-分享,2-购买并付款,3-新人领券
/// </summary>
public int TriggerType { get; set; }
/// <summary>
/// 优惠卷ids
/// </summary>
public string CouponIds { get; set; }
/// <summary>
/// 会员等级
/// </summary>
public int[] MemberLevelList { get; set; }
/// <summary>
/// 订单号
/// </summary>
public int OrderId { get; set; }
/// <summary>
/// 发放优惠券的时候会员id
/// </summary>
public int UserId { get; set; }
/// <summary>
/// 使用状态 0-未使用,1:已使用,2:已过期
/// </summary>
public int UseState { get; set; }
/// <summary>
/// 已使用核销数
/// </summary>
public int UseHeXiao { get; set; }
/// <summary>
/// 会员优惠券id
/// </summary>
public int MemberCouponId { get; set; }
/// <summary>
/// 商品
/// </summary>
public int[] GoodsIds { get; set; }
/// <summary>
/// 分类
/// </summary>
public int[] CategoryIds { get; set; }
/// <summary>
/// 领劵中心领取
/// </summary>
public new int GetType { get; set; }
/// <summary>
/// 微店名称
/// </summary>
public string SmallShopName { get; set; }
}
}
using VT.FW.DB;
using Mall.Common.Enum.MarketingCenter;
using Mall.Common.Enum.User;
using Mall.Model.Entity.User;
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.Education;
namespace Mall.Model.Extend.Education
{
/// <summary>
/// 会员优惠券扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Education_MemberCoupon_Extend : RB_Education_MemberCoupon
{
public int PlatformType { get; set; }
public string CouponIco { get; set; }
/// <summary>
/// 下单时间
/// </summary>
public DateTime? OrderCreateDate { get; set; }
/// <summary>
/// 使用时间列表
/// </summary>
public List<RB_Education_MemberUseCoupon> MemberUseCouponList { get; set; }
/// <summary>
/// 会员昵称
/// </summary>
public string AliasName { get; set; }
/// <summary>
/// 头像
/// </summary>
public string Photo { get; set; }
/// <summary>
/// 优惠卷ids
/// </summary>
public string CouponIds { get; set; }
/// <summary>
/// 用户优惠券id
/// </summary>
public string Ids { get; set; }
}
}
......@@ -2,6 +2,7 @@
using Mall.Model.Entity.Education;
using Mall.Model.Extend.Education;
using Mall.Repository.Education;
using Mall.Repository.User;
using System;
using System.Collections.Generic;
using System.Linq;
......@@ -17,6 +18,23 @@ namespace Mall.Module.Education
/// </summary>
private readonly RB_Education_TeacherRepository educationTeacherRepository = new RB_Education_TeacherRepository();
private readonly RB_Education_CouponRepository discountCouponRepository = new RB_Education_CouponRepository();
private readonly RB_Education_CouponProductRepository productRepository = new RB_Education_CouponProductRepository();
private readonly RB_Education_MemberUseCouponRepository memberUseCouponRepository = new RB_Education_MemberUseCouponRepository();
private readonly RB_Education_MemberCouponRepository memberCouponRepository = new RB_Education_MemberCouponRepository();
private readonly RB_Education_CouponSelfMotionMemberRepository selfMotionMemberRepository = new RB_Education_CouponSelfMotionMemberRepository();
private readonly RB_Education_CouponSelfMotionRepository selfMotionRepository = new RB_Education_CouponSelfMotionRepository();
/// <summary>
/// 会员信息
/// </summary>
private readonly RB_Member_UserRepository member_UserRepository = new RB_Member_UserRepository();
#region 教师管理
/// <summary>
///教师配置列表
......@@ -167,5 +185,615 @@ namespace Mall.Module.Education
}
#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_Education_Coupon_Extend> GetDiscountCouponPageList(int pageIndex, int pageSize, out long rowCount, RB_Education_Coupon_Extend query)
{
return discountCouponRepository.GetDiscountCouponPageList(pageIndex, pageSize, out rowCount, query);
}
/// <summary>
/// 卡劵信息列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Education_Coupon_Extend> GetDiscountCouponList(RB_Education_Coupon_Extend 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_Education_CouponProduct_Extend>();
item.ProductList = listProduct.Where(x => x.CouponId == item.ID).ToList();
}
}
return list;
}
/// <summary>
/// 卡劵信息列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Education_Coupon_Extend> GetAllDiscountCouponList(RB_Education_Coupon_Extend query)
{
return discountCouponRepository.GetDiscountCouponList(query);
}
/// <summary>
/// 新增/修改卡劵
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool AddOrUpdateDiscountCoupon(RB_Education_Coupon_Extend model)
{
bool flag = false;
var trans = discountCouponRepository.DbTransaction;
try
{
int id = 0;
if (model.ID == 0)
{
id = discountCouponRepository.Insert(model, trans);
if (id > 0 && model.ProductList != null && model.ProductList.Any())
{
model.ProductList.ForEach(x => x.DiscountCouponType = model.UseType);
model.ProductList.ForEach(x => x.MallBaseId = model.MallBaseId);
model.ProductList.ForEach(x => x.TenantId = model.TenantId);
model.ProductList.ForEach(x => x.CreateDate = model.CreateDate);
model.ProductList.ForEach(x => x.UpdateDate = model.UpdateDate);
model.ProductList.ForEach(x => x.CouponId = id);
flag = productRepository.InsertBatch(model.ProductList, trans);
}
flag = id > 0;
}
else
{
id = model.ID;
flag = discountCouponRepository.Update(model, trans);
IDictionary<string, object> fileds = new Dictionary<string, object>()
{
{ nameof(RB_Education_CouponProduct.Status),1},
{ nameof(RB_Education_CouponProduct.UpdateDate),model.UpdateDate},
};
IList<WhereHelper> whereHelpers = new List<WhereHelper>()
{
new WhereHelper (){ FiledName=nameof(RB_Education_CouponProduct.CouponId),FiledValue=id,OperatorEnum=OperatorEnum.Equal}
};
productRepository.Update(fileds, whereHelpers, trans);
if (model.ProductList != null && model.ProductList.Any())
{
model.ProductList.ForEach(x => x.DiscountCouponType = model.UseType);
model.ProductList.ForEach(x => x.MallBaseId = model.MallBaseId);
model.ProductList.ForEach(x => x.TenantId = model.TenantId);
model.ProductList.ForEach(x => x.CreateDate = model.CreateDate);
model.ProductList.ForEach(x => x.UpdateDate = model.UpdateDate);
model.ProductList.ForEach(x => x.CouponId = id);
flag = productRepository.InsertBatch(model.ProductList, trans);
}
}
discountCouponRepository.DBSession.Commit();
}
catch (Exception ex)
{
LogHelper.Write(ex, "AddOrUpdateDiscountCoupon");
discountCouponRepository.DBSession.Rollback("AddOrUpdateDiscountCoupon");
return false;
}
return flag;
}
/// <summary>
/// 删除卡劵
/// </summary>
/// <param name="gradeId"></param>
/// <param name="uid"></param>
/// <returns></returns>
public bool DelDiscountCoupon(int id, int uid, int mallBaseId)
{
var trans = discountCouponRepository.DbTransaction;
bool flag;
try
{
Dictionary<string, object> cols1 = new Dictionary<string, object>()
{
{ nameof(RB_Education_Coupon.Status),1},
{ nameof(RB_Education_Coupon.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Education_Coupon.ID),
FiledValue=id,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Education_Coupon.TenantId),
FiledValue=Convert.ToInt32(uid),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Education_Coupon.MallBaseId),
FiledValue=Convert.ToInt32(mallBaseId),
OperatorEnum=OperatorEnum.Equal
}
};
flag = discountCouponRepository.Update(cols1, wheres1);
Dictionary<string, object> cols = new Dictionary<string, object>()
{
{ nameof(RB_Education_Coupon.Status),1},
{ nameof(RB_Education_Coupon.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Education_CouponProduct.CouponId),
FiledValue=id,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Education_CouponProduct.TenantId),
FiledValue=Convert.ToInt32(uid),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Education_CouponProduct.MallBaseId),
FiledValue=Convert.ToInt32(mallBaseId),
OperatorEnum=OperatorEnum.Equal
}
};
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 DelMemberCoupon(int id, int uid, int mallBaseId)
{
bool flag;
try
{
Dictionary<string, object> cols1 = new Dictionary<string, object>()
{
{ nameof(RB_Education_MemberCoupon.Status),1},
{ nameof(RB_Education_MemberCoupon.Remarks),System.DateTime.Now+"删除"},
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Education_MemberCoupon.Id),
FiledValue=id,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Education_MemberCoupon.TenantId),
FiledValue=Convert.ToInt32(uid),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Education_MemberCoupon.MallBaseId),
FiledValue=Convert.ToInt32(mallBaseId),
OperatorEnum=OperatorEnum.Equal
}
};
flag = memberCouponRepository.Update(cols1, wheres1);
}
catch (Exception ex)
{
LogHelper.Write(ex, "DelMemberCoupon");
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_Education_Coupon.PickupCenter),model.PickupCenter==0?1:0},
{ nameof(RB_Education_Coupon.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Education_Coupon.ID),
FiledValue=id,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Education_Coupon.TenantId),
FiledValue=Convert.ToInt32(uid),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Education_Coupon.MallBaseId),
FiledValue=Convert.ToInt32(mallBaseId),
OperatorEnum=OperatorEnum.Equal
}
};
return discountCouponRepository.Update(cols1, wheres1);
}
catch (Exception ex)
{
LogHelper.Write(ex, "UpdatePickupType");
return false;
}
}
/// <summary>
/// 发放卡劵
/// </summary>
/// <param name="list"></param>
/// <param name="model"></param>
/// <returns></returns>
public bool GrantCoupon(List<RB_Education_MemberCoupon_Extend> list, RB_Education_Coupon_Extend model)
{
var trans = memberCouponRepository.DbTransaction;
bool flag;
try
{
flag = memberCouponRepository.InsertBatch(list, trans);
if (model != null && flag)
{
Dictionary<string, object> cols1;
if (model.TotalNum != -1)
{
cols1 = new Dictionary<string, object>()
{
{ nameof(RB_Education_Coupon.ReceiveNum),model.ReceiveNum+list.Count()},
{ nameof(RB_Education_Coupon.TotalNum),model.TotalNum - list.Count()},
{ nameof(RB_Education_Coupon.UpdateDate),DateTime.Now},
};
}
else
{
cols1 = new Dictionary<string, object>()
{
{ nameof(RB_Education_Coupon.ReceiveNum),model.ReceiveNum+list.Count()},
{ nameof(RB_Education_Coupon.UpdateDate),DateTime.Now},
};
}
List<WhereHelper> wheres1 = new List<WhereHelper>()
{
new WhereHelper(){
FiledName=nameof(RB_Education_Coupon.ID),
FiledValue=model.ID,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Education_Coupon.TenantId),
FiledValue=model.TenantId,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Education_Coupon.MallBaseId),
FiledValue=model.MallBaseId,
OperatorEnum=OperatorEnum.Equal
}
};
flag = discountCouponRepository.Update(cols1, wheres1, trans);
}
memberCouponRepository.DBSession.Commit();
}
catch (Exception ex)
{
LogHelper.Write(ex, "GrantCoupon");
memberCouponRepository.DBSession.Rollback("GrantCoupon");
return false;
}
return flag;
}
/// <summary>
/// 根据用户id和商品分类以及商品id获取未使用的卡劵信息
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Education_Coupon_Extend> GetNoUseCouponList(RB_Education_Coupon_Extend query)
{
var list = discountCouponRepository.GetNoUseCouponList(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_Education_CouponProduct_Extend>();
item.ProductList = listProduct.Where(x => x.CouponId == 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_Education_CouponProduct_Extend>();
item.ProductList = listProduct.Where(x => x.CouponId == item.ID).ToList();
}
}
return list;
}
#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_Education_CSelfMotion_Extend> GetSelfMotionPageLis(int pageIndex, int pageSize, out long rowCount, RB_Education_CSelfMotion_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_Education_CSelfMotion_Extend> GettRepositoryList(RB_Education_CSelfMotion_Extend query)
{
var list = selfMotionRepository.GettRepositoryList(query);
return list;
}
/// <summary>
/// 获取发放优惠券的人员信息
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Education_CSelfMotionMember_Extend> GetSelfMotionMemberList(RB_Education_CSelfMotionMember_Extend query)
{
return selfMotionMemberRepository.GetListRepository(query);
}
/// <summary>
/// 新增/修改自动发放优惠券
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool AddOrUpdateSelfMotion(RB_Education_CSelfMotion_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);
IDictionary<string, object> fileds = new Dictionary<string, object>()
{
{ nameof(RB_Education_CouponSelfMotionMember.Status),1},
{ nameof(RB_Education_CouponSelfMotionMember.UpdateDate),model.UpdateDate},
};
IList<WhereHelper> whereHelpers = new List<WhereHelper>()
{
new WhereHelper (){ FiledName=nameof(RB_Education_CouponSelfMotionMember.SelfMotionId),FiledValue=model.ID,OperatorEnum=OperatorEnum.Equal},
new WhereHelper (){ FiledName=nameof(RB_Education_CouponSelfMotionMember.MallBaseId),FiledValue=model.MallBaseId,OperatorEnum=OperatorEnum.Equal},
new WhereHelper (){ FiledName=nameof(RB_Education_CouponSelfMotionMember.TenantId),FiledValue=model.TenantId,OperatorEnum=OperatorEnum.Equal}
};
selfMotionMemberRepository.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;
}
/// <summary>
/// 删除自动发放优惠券
/// </summary>
/// <param name="gradeId"></param>
/// <param name="uid"></param>
/// <returns></returns>
public bool DelDiscountSelfMotion(int id, int uid, int mallBaseId)
{
var trans = selfMotionRepository.DbTransaction;
bool flag;
try
{
Dictionary<string, object> cols1 = new Dictionary<string, object>()
{
{ nameof(RB_Education_CouponSelfMotion.Status),1},
{ nameof(RB_Education_CouponSelfMotion.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Education_CouponSelfMotion.ID),
FiledValue=id,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Education_CouponSelfMotion.TenantId),
FiledValue=Convert.ToInt32(uid),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Education_CouponSelfMotion.MallBaseId),
FiledValue=Convert.ToInt32(mallBaseId),
OperatorEnum=OperatorEnum.Equal
}
};
flag = selfMotionRepository.Update(cols1, wheres1);
Dictionary<string, object> cols = new Dictionary<string, object>()
{
{ nameof(RB_Education_CouponSelfMotionMember.Status),1},
{ nameof(RB_Education_CouponSelfMotionMember.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Education_CouponSelfMotionMember.SelfMotionId),
FiledValue=id,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Education_CouponSelfMotionMember.TenantId),
FiledValue=Convert.ToInt32(uid),
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Education_CouponSelfMotionMember.MallBaseId),
FiledValue=Convert.ToInt32(mallBaseId),
OperatorEnum=OperatorEnum.Equal
}
};
selfMotionMemberRepository.Update(cols, wheres);
selfMotionRepository.DBSession.Commit();
}
catch (Exception ex)
{
LogHelper.Write(ex, "DelDiscountSelfMotion");
selfMotionRepository.DBSession.Rollback("DelDiscountSelfMotion");
return false;
}
return flag;
}
#endregion
#region 会员优惠券
/// <summary>
/// 我的优惠券
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Education_Coupon_Extend> GetMemberDisCouponList(int pageIndex, int pageSize, out long rowCount, RB_Education_Coupon_Extend query)
{
var list = discountCouponRepository.GetMemberDisCouponList(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_Education_CouponProduct_Extend>();
item.ProductList = listProduct.Where(x => x.CouponId == 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_Education_CouponProduct_Extend>();
item.ProductList = listProduct.Where(x => x.CouponId == item.ID).ToList();
}
}
return list;
}
#endregion
}
}
using Mall.Model.Entity.Education;
using Mall.Model.Entity.MarketingCenter;
using Mall.Model.Extend.Education;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.Education
{
public class RB_Education_CouponProductRepository : BaseRepository<RB_Education_CouponProduct>
{
/// <summary>
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Education_CouponProduct); } }
/// <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_Education_CouponProduct> GetCouponProductList(RB_Education_CouponProduct query)
{
StringBuilder builder = new StringBuilder();
builder.Append($" SELECT * FROM {TableName} WHERE {nameof(RB_Education_CouponProduct.Status)}=0 ");
if (query != null)
{
if (query.ID > 0)
{
builder.Append($" AND {nameof(RB_Education_CouponProduct.ID)}={query.ID}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Education_CouponProduct.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Education_CouponProduct.MallBaseId)}={query.MallBaseId}");
}
if (query.CouponId > 0)
{
builder.Append($" AND {nameof(RB_Education_CouponProduct.CouponId)}={query.CouponId}");
}
}
return Get<RB_Education_CouponProduct>(builder.ToString()).ToList();
}
/// <summary>
/// 优惠券对应的商品/分类列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Education_CouponProduct_Extend> GetListByDiscountCouponIds(RB_Education_Coupon query, string DiscountCouponIds,bool IsSelectDel =false)
{
StringBuilder builder = new StringBuilder();
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_CouponProduct.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_CouponProduct.MallBaseId)}={query.MallBaseId}");
}
}
if (!string.IsNullOrWhiteSpace(DiscountCouponIds))
{
builder.Append($" AND a.{nameof(RB_Education_CouponProduct.CouponId)} in ({DiscountCouponIds})");
}
string sql = "";
if (IsSelectDel)
{
sql = $"SELECT a.* from {TableName} as a WHERE 1=1 ";
}
else {
sql = $"SELECT a.* from {TableName} as a WHERE a.{nameof(RB_Education_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_Education_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 {GoodsTableName} as b on a.ProductId=b.Id WHERE a.{nameof(RB_Education_CouponProduct.Status)}=0 {builder.ToString()} ";
}
return Get<RB_Education_CouponProduct_Extend>(sql).ToList();
}
}
}
using Mall.Model.Entity.Education;
using Mall.Model.Entity.User;
using Mall.Model.Extend.Education;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.Education
{
public class RB_Education_CouponRepository : BaseRepository<RB_Education_Coupon>
{
/// <summary>
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Education_Coupon); } }
#region 基础信息
/// <summary>
/// 表名称
/// </summary>
public string discountCouponTableName { get { return nameof(RB_Education_MemberCoupon); } }
/// <summary>
/// 卡券信息列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Education_Coupon_Extend> GetDiscountCouponPageList(int pageIndex, int pageSize, out long rowCount, RB_Education_Coupon_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append($" SELECT a.*,b.`Name` as SmallShopName FROM {TableName} as A LEFT JOIN rb_smallshops_info as b on a.SmallShopId=b.Id WHERE a.{nameof(RB_Education_Coupon_Extend.Status)}=0");
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_Coupon_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_Coupon_Extend.MallBaseId)}={query.MallBaseId}");
}
if (!string.IsNullOrWhiteSpace(query.Name))
{
builder.Append($" AND a.{nameof(RB_Education_Coupon_Extend.Name)} like '%{query.Name}%'");
}
}
builder.Append($" order by a.{nameof(RB_Education_Coupon_Extend.ID)} desc");
return GetPage<RB_Education_Coupon_Extend>(pageIndex, pageSize, out rowCount, builder.ToString()).ToList();
}
/// <summary>
/// 卡券信息列表
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Education_Coupon_Extend> GetDiscountCouponList(RB_Education_Coupon_Extend query, bool IsSelectDel = false)
{
StringBuilder builder = new StringBuilder();
if (IsSelectDel)
{
builder.Append($" SELECT * FROM {TableName} WHERE 1=1 ");
}
else
{
builder.Append($" SELECT * FROM {TableName} WHERE {nameof(RB_Education_Coupon_Extend.Status)}=0 ");
}
if (query != null)
{
if (query.ID > 0)
{
builder.Append($" AND {nameof(RB_Education_Coupon_Extend.ID)}={query.ID}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Education_Coupon_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Education_Coupon_Extend.MallBaseId)}={query.MallBaseId}");
}
if (!string.IsNullOrWhiteSpace(query.Name))
{
builder.Append($" AND {nameof(RB_Education_Coupon_Extend.Name)} like '%{query.Name}%'");
}
if (!string.IsNullOrEmpty(query.CouponIds))
{
builder.Append($" AND {nameof(RB_Education_Coupon_Extend.ID)} in({query.CouponIds})");
}
}
return Get<RB_Education_Coupon_Extend>(builder.ToString()).ToList();
}
/// <summary>
/// 根据用户id和商品分类以及商品id获取未使用的优惠券信息
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Education_Coupon_Extend> GetNoUseCouponList(RB_Education_Coupon_Extend query)
{
string where = " and a.StartDate<NOW() and a.EndDate>NOW() and a.UseState=0 ";
string goodsClassWhere = "";//分类
string goodsWhere = "";//商品
string allWhere = "";//通用
if (query != null)
{
if (query.TenantId > 0)
{
where += $" AND b.{nameof(RB_Education_Coupon_Extend.TenantId)}={query.TenantId}";
}
if (query.MallBaseId > 0)
{
where += $" AND b.{nameof(RB_Education_Coupon_Extend.MallBaseId)}={query.MallBaseId}";
}
if (query.UserId > 0)
{
where += $" AND a.{nameof(RB_Education_Coupon_Extend.UserId)}={query.UserId}";
}
if (query.ProductList != null && query.ProductList.Any())
{
List<int> allGoodsClass = new List<int>();
foreach (var item in query.ProductList)
{
if (!string.IsNullOrWhiteSpace(goodsWhere))
{
goodsWhere += $" or (c.ProductId = {item.ProductId} and a.MinConsumePrice<= {item.GoodsPrice}) ";
}
else
{
goodsWhere += $" (c.ProductId = {item.ProductId} and a.MinConsumePrice<= {item.GoodsPrice}) ";
}
allGoodsClass.AddRange(item.GoodsClassId.ToList());
}
goodsWhere = " and (" + goodsWhere + ")";
//分类
var goodsClassList = allGoodsClass.GroupBy(x => x);
foreach (var item in goodsClassList)
{
decimal nowPrice = 0;
foreach (var classItem in query.ProductList)
{
if (classItem.GoodsClassId.Any(x => x == item.Key))
{
nowPrice += classItem.GoodsPrice;
}
}
if (!string.IsNullOrWhiteSpace(goodsClassWhere))
{
goodsClassWhere += $" or (c.ProductId = {item.Key} and b.MinConsumePrice<= {nowPrice}) ";
}
else
{
goodsClassWhere += $" (c.ProductId = {item.Key} and b.MinConsumePrice<= {nowPrice}) ";
}
}
goodsClassWhere = " and (" + goodsClassWhere + ")";
decimal allPrice = query.ProductList.Sum(x => x.GoodsPrice);
allWhere = $" and b.MinConsumePrice<= {allPrice} ";
}
}
string sql = @$" SELECT a.ID as MemberCouponId,a.UserId,b.`Name`,b.CouponType,b.UseType,b.MinConsumePrice,b.DiscountsPrice,b.MaxDiscountsPrice,b.`Describe`,a.StartDate,a.EndDate,b.ID from RB_Education_MemberCoupon as a
LEFT JOIN RB_Education_Coupon as b on a.CouponId=b.ID
LEFT JOIN RB_Education_CouponProduct as c on c.CouponId=b.ID
where b.UseType=1 and c.`Status`=0 {where} {goodsClassWhere}
UNION ALL
SELECT a.ID as MemberCouponId,a.UserId,b.`Name`,b.CouponType,b.UseType,b.MinConsumePrice,b.DiscountsPrice,b.MaxDiscountsPrice,b.`Describe`,a.StartDate,a.EndDate,b.ID from RB_Education_MemberCoupon as a
LEFT JOIN RB_Education_Coupon as b on a.CouponId=b.ID
LEFT JOIN RB_Education_CouponProduct as c on c.CouponId=b.ID
where b.UseType=2 and c.`Status`=0 {where} {goodsWhere}
UNION all
SELECT a.ID as MemberCouponId,a.UserId,b.`Name`,b.CouponType,b.UseType,b.MinConsumePrice,b.DiscountsPrice,b.MaxDiscountsPrice,b.`Describe`,a.StartDate,a.EndDate,b.ID from RB_Education_MemberCoupon as a
LEFT JOIN RB_Education_Coupon as b on a.CouponId=b.ID
where b.UseType=3 {where} {allWhere}";
return Get<RB_Education_Coupon_Extend>(sql).ToList();
}
#endregion
#region 小程序个人中心-领劵中心
/// <summary>
/// 领劵中心优惠券
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Education_Coupon_Extend> GetAllCouponList(int pageIndex, int pageSize, out long rowCount, RB_Education_Coupon_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_Education_Coupon_Extend.TenantId)}={query.TenantId}";
userWhere += $" AND {nameof(RB_Education_Coupon_Extend.TenantId)}={query.TenantId}";
}
if (query.MallBaseId > 0)
{
where += $" AND a.{nameof(RB_Education_Coupon_Extend.MallBaseId)}={query.MallBaseId}";
userWhere += $" AND {nameof(RB_Education_Coupon_Extend.MallBaseId)}={query.MallBaseId}";
}
if (query.UserId > 0)
{
userWhere += $" AND {nameof(RB_Education_Coupon_Extend.UserId)}={query.UserId}";
}
if (query.SmallShopId > 0)
{
where += $" AND ( a.{nameof(RB_Education_Coupon_Extend.SmallShopId)}={query.SmallShopId} or ( a.{nameof(RB_Education_Coupon_Extend.SmallShopId)}=0 and a.{nameof(RB_Education_Coupon_Extend.IsZanYangUse)}=0))";
}
else
{
where += $" AND a.{nameof(RB_Education_Coupon_Extend.SmallShopId)}=0";
}
}
string sql = @$" SELECT t.*,c.MemberNum from (SELECT a.ID,a.`Name`,a.`Describe`,a.CouponType,a.UseType,a.StartDate,a.EndDate,a.CouponIco,a.IndateDay,a.IndateType from {TableName} as a
{where} and a.IndateType=1
UNION ALL
SELECT a.ID,a.`Name`,a.`Describe`,a.CouponType,a.UseType,a.StartDate,a.EndDate,a.CouponIco,a.IndateDay,a.IndateType from {TableName} as a
{where} and a.IndateType=2 and a.EndDate>NOW() )
as t LEFT JOIN (SELECT CouponId,COUNT(*) as MemberNum from RB_Education_MemberCoupon where `Status`=0 {userWhere} GROUP BY CouponId) as c on t.ID=c.CouponId ";
return GetPage<RB_Education_Coupon_Extend>(pageIndex, pageSize, out rowCount, sql).ToList();
}
/// <summary>
/// 领劵中心优惠券
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Education_Coupon_Extend> GetMemberDisCouponList(int pageIndex, int pageSize, out long rowCount, RB_Education_Coupon_Extend query)
{
string where = " where a.`Status`=0 and b.Status=0 ";
if (query != null)
{
if (query.TenantId > 0)
{
where += $" AND a.{nameof(RB_Education_MemberCoupon.TenantId)}={query.TenantId}";
where += $" AND b.{nameof(RB_Education_Coupon_Extend.TenantId)}={query.TenantId}";
}
if (query.MallBaseId > 0)
{
where += $" AND a.{nameof(RB_Education_MemberCoupon.MallBaseId)}={query.MallBaseId}";
where += $" AND b.{nameof(RB_Education_Coupon_Extend.MallBaseId)}={query.MallBaseId}";
}
if (query.UserId > 0)
{
where += $" AND a.{nameof(RB_Education_MemberCoupon.UserId)}={query.UserId}";
}
if (query.StartDate.HasValue)
{
where += $" AND a.{nameof(RB_Education_MemberCoupon.CreateDate)}>='{query.StartDate.Value:yyyy-MM-dd HH:mm:ss}'";
}
if (query.EndDate.HasValue)
{
where += $" AND a.{nameof(RB_Education_MemberCoupon.CreateDate)}<='{query.EndDate.Value:yyyy-MM-dd HH:mm:ss}'";
}
if (query.UseState == 0)
{
where += $" AND (a.{nameof(RB_Education_MemberCoupon_Extend.HeXiao)}-a.{nameof(RB_Education_MemberCoupon_Extend.UseHeXiao)})>0 AND a.{nameof(RB_Education_MemberCoupon_Extend.EndDate)}> NOW()";
}
else if (query.UseState == 1)
{
where += $" AND (a.{nameof(RB_Education_MemberCoupon_Extend.HeXiao)}-a.{nameof(RB_Education_MemberCoupon_Extend.UseHeXiao)})=0";
}
else if (query.UseState == 2)
{
where += $" AND a.{nameof(RB_Education_MemberCoupon_Extend.EndDate)}<NOW() AND (a.{nameof(RB_Education_MemberCoupon_Extend.HeXiao)}-a.{nameof(RB_Education_MemberCoupon_Extend.UseHeXiao)})>0";
}
}
string sql = @$" SELECT a.ID as MemberCouponId,a.StartDate,a.EndDate,a.HeXiao,a.UseHeXiao,b.ID,b.`Name`,b.`Describe`,b.CouponIco,b.UseType,a.GetType,a.CreateDate,
b.IndateDay,b.IndateType from RB_Education_MemberCoupon as a LEFT JOIN {TableName} as b
on a.CouponId=b.ID {where} ";
return GetPage<RB_Education_Coupon_Extend>(pageIndex, pageSize, out rowCount, sql).ToList();
}
#endregion
#region 自动发放优惠券信息
public List<RB_Education_Coupon_Extend> GetSelfmotionCouponList(RB_Education_Coupon_Extend query)
{
StringBuilder builder = new StringBuilder();
string userWhere = "";
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_Coupon_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_Coupon_Extend.MallBaseId)}={query.MallBaseId}");
}
if (query.TriggerType > 0)
{
builder.Append($" AND b.{nameof(RB_Education_Coupon_Extend.TriggerType)}={query.TriggerType}");
}
if (query.UserId > 0)
{
userWhere += $"and c.UserId={query.UserId}";
}
if (query.SmallShopId > 0)
{
builder.Append($" AND ( a.{nameof(RB_Education_Coupon_Extend.SmallShopId)}={query.SmallShopId} or (a.{nameof(RB_Education_Coupon_Extend.SmallShopId)}=0 and a.{nameof(RB_Education_Coupon_Extend.IsZanYangUse)}=0))");
}
else
{
builder.Append($" AND a.{nameof(RB_Education_Coupon_Extend.SmallShopId)}=0");
}
}
string sql = @$"SELECT a.*,b.TriggerType,b.GrantNum from rb_education_couponselfmotion as b LEFT JOIN {TableName} as a on a.ID=b.DiscountCouponId
where (a.IndateType=1 or (a.IndateType=2 and a.EndDate>NOW()))
and a.`Status`=0 and b.`Status`=0 and IsAll=0 {builder.ToString()}
UNION ALL
SELECT a.*,b.TriggerType,b.GrantNum from rb_education_couponselfmotion as b LEFT JOIN {TableName} as a on a.ID=b.DiscountCouponId
LEFT JOIN rb_education_couponselfmotionmember as c on c.SelfMotionId=b.ID
where (a.IndateType=1 or (a.IndateType=2 and a.EndDate>NOW())) {builder.ToString()}
and a.`Status`=0 and b.`Status`=0 and IsAll=1 {userWhere} ";
return Get<RB_Education_Coupon_Extend>(sql).ToList();
}
#endregion
}
}
using Mall.Model.Entity.Education;
using Mall.Model.Entity.User;
using Mall.Model.Extend.Education;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.Education
{
public class RB_Education_CouponSelfMotionMemberRepository : BaseRepository<RB_Education_CouponSelfMotionMember>
{
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Education_CouponSelfMotionMember); } }
// <summary>
/// 表名称
/// </summary>
public string UserTableName { get { return nameof(RB_Member_User); } }
/// <summary>
/// 获取发放优惠券的人员信息
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Education_CSelfMotionMember_Extend> GetListRepository(RB_Education_CSelfMotionMember_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append(@$" SELECT a.*,b.`Name`,b.Photo FROM {TableName} as a
LEFT JOIN {UserTableName} as b on a.UserId = b.ID WHERE a.{nameof(RB_Education_CSelfMotionMember_Extend.Status)}=0");
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_CSelfMotionMember_Extend.TenantId)}={query.TenantId}");
}
if (query.MallBaseId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_CSelfMotionMember_Extend.MallBaseId)}={query.MallBaseId}");
}
if (query.SelfMotionId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_CSelfMotionMember_Extend.SelfMotionId)}={query.SelfMotionId}");
}
if (query.UserId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_CSelfMotionMember_Extend.UserId)}={query.UserId}");
}
//if (!string.IsNullOrWhiteSpace(query.PriceIds))
//{
// builder.Append($" AND a.{nameof(RB_Education_CSelfMotionMember_Extend.RulesPriceId)} in ({query.PriceIds})");
//}
}
return Get<RB_Education_CSelfMotionMember_Extend>(builder.ToString()).ToList();
}
}
}
using Mall.Model.Entity.Education;
using Mall.Model.Extend.Education;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.Education
{
public class RB_Education_CouponSelfMotionRepository:BaseRepository<RB_Education_CouponSelfMotion>
{
/// <summary>
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Education_CouponSelfMotion); } }
/// <summary>
/// 表名称
/// </summary>
public string discountCouponTableName { get { return nameof(RB_Education_Coupon); } }
/// <summary>
/// 自动发放优惠券规则列表
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Education_CSelfMotion_Extend> GetSelfMotionPageLis(int pageIndex, int pageSize, out long rowCount, RB_Education_CSelfMotion_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append(@$" SELECT a.*,b.`Name` as DiscountCouponName from {TableName} as a LEFT JOIN {discountCouponTableName} as b
on a.DiscountCouponId = b.ID WHERE a.{nameof(RB_Education_CSelfMotion_Extend.Status)}=0");
if (query != null)
{
// where += $@" and {nameof(RB_Customer_InfoCreate.CustomerId)}={dmodel.CustomerId}";
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_CSelfMotion_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_CSelfMotion_Extend.MallBaseId)}={query.MallBaseId}");
}
if (query.DiscountCouponId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_CSelfMotion_Extend.DiscountCouponId)}={query.DiscountCouponId}");
}
}
return GetPage<RB_Education_CSelfMotion_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_Education_CSelfMotion_Extend> GettRepositoryList(RB_Education_CSelfMotion_Extend query)
{
StringBuilder builder = new StringBuilder();
builder.Append($" SELECT * FROM {TableName} WHERE {nameof(RB_Education_CSelfMotion_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_Education_CSelfMotion_Extend.TenantId)}={query.TenantId}");
}
if (query.ID > 0)
{
builder.Append($" AND {nameof(RB_Education_CSelfMotion_Extend.ID)}={query.ID}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_Education_CSelfMotion_Extend.MallBaseId)}={query.MallBaseId}");
}
if (query.DiscountCouponId > 0)
{
builder.Append($" AND {nameof(RB_Education_CSelfMotion_Extend.DiscountCouponId)}={query.DiscountCouponId}");
}
}
}
return Get<RB_Education_CSelfMotion_Extend>(builder.ToString()).ToList();
}
}
}
using Mall.Model.Entity.Education;
using Mall.Model.Extend.Education;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.Education
{
public class RB_Education_MemberCouponRepository : BaseRepository<RB_Education_MemberCoupon>
{
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Education_MemberCoupon); } }
/// <summary>
/// 会员优惠券
/// </summary>
/// <returns></returns>
public List<RB_Education_MemberCoupon_Extend> GetList(RB_Education_MemberCoupon_Extend query)
{
StringBuilder builder = new StringBuilder();
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_MemberCoupon_Extend.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_MemberCoupon_Extend.MallBaseId)}={query.MallBaseId}");
}
if (query.PlatformType > 0)
{
builder.Append($" AND a.{nameof(RB_Education_MemberCoupon_Extend.PlatformType)}={query.PlatformType}");
}
if (query.UserId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_MemberCoupon_Extend.UserId)}={query.UserId}");
}
if (query.CouponId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_MemberCoupon_Extend.CouponId)}={query.CouponId}");
}
if (!string.IsNullOrEmpty(query.CouponIds))
{
builder.Append($" AND a.{nameof(RB_Education_MemberCoupon_Extend.CouponId)} in ({query.CouponIds})");
}
if (!string.IsNullOrEmpty(query.Ids))
{
builder.Append($" AND a.{nameof(RB_Education_MemberCoupon_Extend.Id)} in ({query.Ids})");
}
}
string sql = @$" select * FROM {TableName} AS a where 1=1 {builder.ToString()} ";
return Get<RB_Education_MemberCoupon_Extend>(sql).ToList();
}
}
}
using Mall.Model.Entity.Education;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.Education
{
public class RB_Education_MemberUseCouponRepository:BaseRepository<RB_Education_MemberUseCoupon>
{
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_Education_MemberUseCoupon); } }
/// <summary>
/// 会员优惠券
/// </summary>
/// <returns></returns>
public List<RB_Education_MemberUseCoupon> GetList(RB_Education_MemberUseCoupon query)
{
StringBuilder builder = new StringBuilder();
if (query != null)
{
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_MemberUseCoupon.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_MemberUseCoupon.MallBaseId)}={query.MallBaseId}");
}
if (query.UserId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_MemberUseCoupon.UserId)}={query.UserId}");
}
if (query.MemberCouponId > 0)
{
builder.Append($" AND a.{nameof(RB_Education_MemberUseCoupon.MemberCouponId)}={query.MemberCouponId}");
}
}
string sql = @$" select * FROM {TableName} AS a where 1=1 {builder.ToString()} ";
return Get<RB_Education_MemberUseCoupon>(sql).ToList();
}
}
}
......@@ -12,6 +12,7 @@ using Newtonsoft.Json;
using Mall.Model.Extend.Education;
using Newtonsoft.Json.Linq;
using Mall.Common.Plugin;
using Mall.Model.Extend.User;
namespace Mall.WebApi.Controllers.Education
{
......@@ -22,7 +23,7 @@ namespace Mall.WebApi.Controllers.Education
public class EducationController : BaseController
{
private readonly EducationModule educationModule = new EducationModule();
private Module.User.UserModule UserModule = new Module.User.UserModule();
#region 教师信息
[HttpPost]
public ApiResult GetGuidePageListRepository()
......@@ -32,6 +33,7 @@ namespace Mall.WebApi.Controllers.Education
RB_Education_Teacher_Extend demodel = JsonConvert.DeserializeObject<RB_Education_Teacher_Extend>(RequestParm.msg.ToString());
demodel.TenantId = UserInfo.TenantId;
demodel.MallBaseId = parms.MallBaseId;
demodel.TeacherStatus = -1;
var list = educationModule.GetTeacherPageListRepository(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
......@@ -45,7 +47,8 @@ namespace Mall.WebApi.Controllers.Education
x.GoodsNum,
CreateDateStr = x.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
x.TeacherStatus,
x.Telephone
x.Telephone,
x.Major
});
return ApiResult.Success("", pagelist);
......@@ -134,7 +137,7 @@ namespace Mall.WebApi.Controllers.Education
query.MallBaseId = parms.MallBaseId;
if (query == null)
{
return ApiResult.Failed("请传入站点信息");
return ApiResult.Failed("请传入教师信息");
}
else
{
......@@ -142,7 +145,7 @@ namespace Mall.WebApi.Controllers.Education
{
return ApiResult.Failed("请输入教师名称");
}
if (string.IsNullOrWhiteSpace(query.Telephone))
if (string.IsNullOrWhiteSpace(query.TeacherLogo))
{
return ApiResult.Failed("请上传教师头像");
}
......@@ -171,5 +174,508 @@ namespace Mall.WebApi.Controllers.Education
}
}
#endregion
#region 课程卡
[HttpPost]
public ApiResult GetDiscountCouponPageList()
{
var parms = RequestParm;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(RequestParm.msg.ToString());
RB_Education_Coupon_Extend demodel = JsonConvert.DeserializeObject<RB_Education_Coupon_Extend>(RequestParm.msg.ToString());
demodel.TenantId = UserInfo.TenantId;
demodel.MallBaseId = parms.MallBaseId;
var list = educationModule.GetDiscountCouponPageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.ID,
x.Name,
x.HeXiao,
x.CouponIco,
UseTypeStr = Mall.Common.Plugin.EnumHelper.GetEnumName(x.UseType),
StartDate = x.StartDate.HasValue ? x.StartDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
CreateDate = x.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
x.IndateType,
x.IndateDay,
EndDate = x.EndDate.HasValue ? x.EndDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
x.TotalNum,
ResidueNum = x.ReceiveNum,
x.PickupCenter,
x.SmallShopName,
x.SmallShopId,
x.IsZanYangUse
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 获取详情
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetDiscountCouponDetail()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Education_Coupon_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
var oldLogisticsModel = educationModule.GetDiscountCouponList(query).FirstOrDefault();
if (oldLogisticsModel == null)
{
oldLogisticsModel = new RB_Education_Coupon_Extend();
oldLogisticsModel.IndateType = Common.Enum.MarketingCenter.IndateTypeEnum.DayHorizon;
}
return ApiResult.Success("", oldLogisticsModel);
}
/// <summary>
/// 保存课程卡
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult AddOrUpdateDiscountCoupon()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Education_Coupon_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
if (query == null)
{
return ApiResult.Failed("请传入课程卡信息");
}
else
{
if (string.IsNullOrWhiteSpace(query.Name))
{
return ApiResult.Failed("请输入课程卡名称");
}
if (query.IndateType == Common.Enum.MarketingCenter.IndateTypeEnum.DayHorizon)
{
if (query.IndateDay == 0)
{
return ApiResult.Failed("请输入有效期天数");
}
}
else
{
if (!query.StartDate.HasValue || !query.EndDate.HasValue)
{
return ApiResult.Failed("开始日期或结束日期必填");
}
if (query.StartDate > query.EndDate)
{
return ApiResult.Failed("开始日期必须小于结束日期");
}
}
if (query.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category || query.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product)
{
if (query.ProductList == null || !query.ProductList.Any())
{
return ApiResult.Failed(query.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category ? "请选择商品类别" : "请选择商品");
}
}
if (query.TotalNum == 0)
{
return ApiResult.Failed("请输入可发放数量");
}
if (string.IsNullOrWhiteSpace(query.Describe))
{
return ApiResult.Failed("请输入课程卡描述");
}
if (query.ID == 0)
{
query.CreateDate = System.DateTime.Now;
}
query.UpdateDate = System.DateTime.Now;
bool result = educationModule.AddOrUpdateDiscountCoupon(query);
if (result)
{
return ApiResult.Success("课程卡信息保存成功");
}
else
{
return ApiResult.Failed("课程卡信息保存失败");
}
}
}
/// <summary>
/// 删除课程卡
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult DelDiscountCoupon()
{
var parms = RequestParm;
JObject parmsJob = JObject.Parse(RequestParm.msg.ToString());
int Id = parmsJob.GetInt("Id", 0);
if (Id <= 0)
{
return ApiResult.Failed("请传递参数");
}
bool flag = educationModule.DelDiscountCoupon(Id, UserInfo.TenantId, parms.MallBaseId);
if (flag)
{
return ApiResult.Success();
}
else
{
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 = educationModule.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_Education_Coupon_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
if (query == null)
{
return ApiResult.Failed("请传入课程卡信息");
}
else
{
var oldLogisticsModel = educationModule.GetDiscountCouponList(query).FirstOrDefault();
if (oldLogisticsModel == null || oldLogisticsModel.ID == 0)
{
return ApiResult.Failed("课程卡信息不存在,请核实后再操作");
}
if (string.IsNullOrWhiteSpace(query.UserIds))
{
return ApiResult.Failed("请选择发放对象");
}
//获取领取课程卡用户的信息判断是否属于当前店铺
var memberList = new List<RB_Member_User_Extend>();
if (oldLogisticsModel.SmallShopId > 0)
{
memberList = UserModule.GetMemberUserList(new RB_Member_User_Extend { TenantId = UserInfo.TenantId, MallBaseId = parms.MallBaseId, UserIds = query.UserIds });
var notSmallShopList = memberList.Where(x => x.SmallShopId != oldLogisticsModel.SmallShopId);
if (notSmallShopList != null && notSmallShopList.Any())
{
return ApiResult.Failed(string.Join(",", notSmallShopList.Select(x => x.Name) + "不属于当前店铺"));
}
}
List<RB_Education_MemberCoupon_Extend> list = new List<RB_Education_MemberCoupon_Extend>();
for (int i = 0; i < query.GrantNum; i++)
{
foreach (var item in query.UserIds.Split(","))
{
if (!string.IsNullOrWhiteSpace(item))
{
RB_Education_MemberCoupon_Extend memberCoupon = new RB_Education_MemberCoupon_Extend();
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.CouponId = oldLogisticsModel.ID;
memberCoupon.Name = oldLogisticsModel.Name;
memberCoupon.UseType = oldLogisticsModel.UseType;
memberCoupon.HeXiao = oldLogisticsModel.HeXiao;
memberCoupon.UseHeXiao = oldLogisticsModel.HeXiao;
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 < list.Count())
{
return ApiResult.Failed("课程卡剩余" + oldLogisticsModel.TotalNum + "张");
}
}
bool result = educationModule.GrantCoupon(list, oldLogisticsModel);
if (result)
{
return ApiResult.Success("课程卡信息保存成功");
}
else
{
return ApiResult.Failed("课程卡信息保存失败");
}
}
}
/// <summary>
/// 获取详情
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetAllDiscountCouponList()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Education_Coupon_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
var oldLogisticsModel = educationModule.GetAllDiscountCouponList(query);
return ApiResult.Success("", oldLogisticsModel);
}
/// <summary>
/// 我的课程卡
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetCouponPageListByMemberId()
{
var req = RequestParm;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(req.msg.ToString());
RB_Education_Coupon_Extend demodel = JsonConvert.DeserializeObject<RB_Education_Coupon_Extend>(req.msg.ToString());
demodel.TenantId = UserInfo.TenantId;
demodel.MallBaseId = req.MallBaseId;
var list = educationModule.GetMemberDisCouponList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.Name,
x.Describe,
x.CouponIco,
x.HeXiao,
x.UseHeXiao,
x.ID,
x.MemberCouponId,
CreateDate = x.CreateDate.ToString("yyyy-MM-dd HH:ss:mm"),
StartDate = x.StartDate.HasValue ? x.StartDate.Value.ToString("yyyy-MM-dd HH:ss:mm") : "",
EndDate = x.EndDate.HasValue ? x.EndDate.Value.ToString("yyyy-MM-dd HH:ss:mm") : "",
UseTypeStr = ((int)x.UseType == 3 || (int)x.UseType == 4) ? x.UseType.GetEnumName() : (x.ProductList != null && x.ProductList.Any() ? string.Join("、", x.ProductList.Select(x => x.Relevance)) : ""),
x.UseType,
x.ProductList,
x.PickupCenter,
x.UseState,
x.GetType
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 删除用户课程卡
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult DelMemberCoupon()
{
var parms = RequestParm;
JObject parmsJob = JObject.Parse(RequestParm.msg.ToString());
int Id = parmsJob.GetInt("MemberCouponId", 0);
if (Id <= 0)
{
return ApiResult.Failed("请传递参数");
}
bool flag = educationModule.DelMemberCoupon(Id, UserInfo.TenantId, parms.MallBaseId);
if (flag)
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed();
}
}
#endregion
#region 自动发放课程卡
/// <summary>
/// 自动发放课程卡列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetSelfMotionPageList()
{
var parms = RequestParm;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(RequestParm.msg.ToString());
RB_Education_CSelfMotion_Extend demodel = JsonConvert.DeserializeObject<RB_Education_CSelfMotion_Extend>(RequestParm.msg.ToString());
demodel.TenantId = UserInfo.TenantId;
demodel.MallBaseId = parms.MallBaseId;
var list = educationModule.GetSelfMotionPageLis(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.ID,
x.GrantNum,
x.DiscountCouponName,
TriggerTypeStr = Mall.Common.Plugin.EnumHelper.GetEnumName(x.TriggerType)
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 获取自动发放课程卡详情
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GettRepositoryList()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Education_CSelfMotion_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
var oldLogisticsModel = educationModule.GettRepositoryList(query).FirstOrDefault();
if (oldLogisticsModel == null)
{
oldLogisticsModel = new RB_Education_CSelfMotion_Extend();
}
else
{
if (oldLogisticsModel.IsAll == 1)
{
oldLogisticsModel.UserList = new List<RB_Education_CSelfMotionMember_Extend>();
oldLogisticsModel.UserList = educationModule.GetSelfMotionMemberList(new RB_Education_CSelfMotionMember_Extend { TenantId = oldLogisticsModel.TenantId, MallBaseId = oldLogisticsModel.MallBaseId, SelfMotionId = oldLogisticsModel.ID });
}
}
return ApiResult.Success("", oldLogisticsModel);
}
/// <summary>
/// 保存自动发放课程卡
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult AddOrUpdateSelfMotion()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_Education_CSelfMotion_Extend>(RequestParm.msg.ToString());
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
if (query == null)
{
return ApiResult.Failed("请传入自动发放课程卡信息");
}
else
{
if (query.ID == 0)
{
query.CreateDate = System.DateTime.Now;
}
if (query.IsAll == 1 && (query.UserList == null || !query.UserList.Any()))
{
return ApiResult.Failed("请选择领取人信息");
}
query.UpdateDate = System.DateTime.Now;
bool result = educationModule.AddOrUpdateSelfMotion(query);
if (result)
{
return ApiResult.Success("自动发放课程卡保存成功");
}
else
{
return ApiResult.Failed("自动发放课程卡保存失败");
}
}
}
/// <summary>
/// 删除自动发放课程卡
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult DelDiscountSelfMotion()
{
var parms = RequestParm;
JObject parmsJob = JObject.Parse(RequestParm.msg.ToString());
int Id = parmsJob.GetInt("Id", 0);
if (Id <= 0)
{
return ApiResult.Failed("请传递参数");
}
bool flag = educationModule.DelDiscountSelfMotion(Id, UserInfo.TenantId, parms.MallBaseId);
if (flag)
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed();
}
}
/// <summary>
/// 获取触发事件枚举
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetTriggerTypeEnumList()
{
var list = EnumHelper.GetEnumList(typeof(Common.Enum.MarketingCenter.TriggerTypeEnum));
return ApiResult.Success("", list.Select(x => new
{
Name = x.Key,
Id = Convert.ToInt32(x.Value)
}));
}
#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