Commit 6a6ff417 authored by liudong1993's avatar liudong1993
parents b26e595d f7ee4dcc
...@@ -87,8 +87,10 @@ namespace Mall.CacheManager.User ...@@ -87,8 +87,10 @@ namespace Mall.CacheManager.User
/// <returns></returns> /// <returns></returns>
public static UserInfo GetUserLoginInfo(object TenantId) public static UserInfo GetUserLoginInfo(object TenantId)
{ {
string cacheKey = UserModuleCacheKeyConfig.Mall_Login_Info + TenantId.ToString();
UserInfo userInfo = null; UserInfo userInfo = null;
if (TenantId != null)
{
string cacheKey = UserModuleCacheKeyConfig.Mall_Login_Info + TenantId.ToString();
try try
{ {
userInfo = redis.StringGet<UserInfo>(cacheKey); userInfo = redis.StringGet<UserInfo>(cacheKey);
...@@ -125,6 +127,12 @@ namespace Mall.CacheManager.User ...@@ -125,6 +127,12 @@ namespace Mall.CacheManager.User
} }
} }
} }
}
else
{
userInfo = new UserInfo();
}
return userInfo; return userInfo;
} }
......
...@@ -103,5 +103,43 @@ namespace Mall.Model.Entity.User ...@@ -103,5 +103,43 @@ namespace Mall.Model.Entity.User
/// 领取方式0-自行领取(领劵中心领取),1-分享,2-购买并付款,3-新人领取 /// 领取方式0-自行领取(领劵中心领取),1-分享,2-购买并付款,3-新人领取
/// </summary> /// </summary>
public int GetType { get; set; } public int GetType { get; set; }
/// <summary>
/// 1-满减券,2-打折券
/// </summary>
public CouponTypeEnum CouponType { get; set; }
/// <summary>
/// 1-指定商品类型,2-指定商品,3-全场通用,4-当面付
/// </summary>
public UseTypeEnum UseType { get; set; }
/// <summary>
/// 最低消费金额(元)
/// </summary>
public decimal MinConsumePrice { get; set; }
/// <summary>
/// 优惠金额/折扣
/// </summary>
public decimal DiscountsPrice { get; set; }
/// <summary>
///最多优惠(元)
/// </summary>
public decimal MaxDiscountsPrice { get; set; }
/// <summary>
/// 优惠券名称
/// </summary>
public string Name { get; set; }
} }
} }
...@@ -23,7 +23,10 @@ namespace Mall.Model.Extend.MarketingCenter ...@@ -23,7 +23,10 @@ namespace Mall.Model.Extend.MarketingCenter
/// </summary> /// </summary>
public string UserIds { get; set; } public string UserIds { get; set; }
/// <summary>
/// 0-未领取 >0已领取
/// </summary>
public int MemberNum { get; set; }
/// <summary> /// <summary>
/// 发放数量 /// 发放数量
...@@ -46,5 +49,28 @@ namespace Mall.Model.Extend.MarketingCenter ...@@ -46,5 +49,28 @@ namespace Mall.Model.Extend.MarketingCenter
/// 发放优惠券的时候会员id /// 发放优惠券的时候会员id
/// </summary> /// </summary>
public int UserId { get; set; } public int UserId { get; set; }
/// <summary>
/// 使用状态 0-未使用,1:已使用,2:已过期
/// </summary>
public int UseState { get; set; }
/// <summary>
/// 会员优惠券id
/// </summary>
public int MemberCouponId { get; set; }
/// <summary>
/// 商品
/// </summary>
public int[] GoodsIds { get; set; }
/// <summary>
/// 分类
/// </summary>
public int[] CategoryIds { get; set; }
} }
} }
...@@ -356,7 +356,7 @@ namespace Mall.Model.Extend.MarketingCenter ...@@ -356,7 +356,7 @@ namespace Mall.Model.Extend.MarketingCenter
/// <summary> /// <summary>
/// 专题样式 /// 专题样式
/// </summary> /// </summary>
public string normal { get; set; } public string style { get; set; }
/// <summary> /// <summary>
/// 显示行数 /// 显示行数
...@@ -407,18 +407,21 @@ namespace Mall.Model.Extend.MarketingCenter ...@@ -407,18 +407,21 @@ namespace Mall.Model.Extend.MarketingCenter
/// <summary> /// <summary>
/// 分类名称 /// 分类名称
/// </summary> /// </summary>
public int cat_name { get; set; } public string cat_name { get; set; }
/// <summary> /// <summary>
/// 分类名称 /// 分类名称
/// </summary> /// </summary>
public int name { get; set; } public string name { get; set; }
public int custom { get; set; } public int custom { get; set; }
public int number { get; set; } public int number { get; set; }
public List<object> children { get; set; } /// <summary>
/// 专题分类列表
/// </summary>
public List<topicDetailsItem> children { get; set; }
} }
/// <summary> /// <summary>
...@@ -447,7 +450,7 @@ namespace Mall.Model.Extend.MarketingCenter ...@@ -447,7 +450,7 @@ namespace Mall.Model.Extend.MarketingCenter
public int layout { get; set; } public int layout { get; set; }
/// <summary> /// <summary>
/// /// 专题Id
/// </summary> /// </summary>
public int id { get; set; } public int id { get; set; }
} }
...@@ -547,12 +550,12 @@ namespace Mall.Model.Extend.MarketingCenter ...@@ -547,12 +550,12 @@ namespace Mall.Model.Extend.MarketingCenter
/// <summary> /// <summary>
/// 选中的第几张图 对应的style_list里的height /// 选中的第几张图 对应的style_list里的height
/// </summary> /// </summary>
public int height { get; set; } public string height { get; set; }
/// <summary> /// <summary>
/// 选中的第几张图 对应的style_list里的w /// 选中的第几张图 对应的style_list里的w
/// </summary> /// </summary>
public int w { get; set; } public string w { get; set; }
/// <summary> /// <summary>
/// 选中的第几张图 对应的style_list里的h /// 选中的第几张图 对应的style_list里的h
...@@ -741,7 +744,7 @@ namespace Mall.Model.Extend.MarketingCenter ...@@ -741,7 +744,7 @@ namespace Mall.Model.Extend.MarketingCenter
public int catStyle { get; set; } public int catStyle { get; set; }
/// <summary> /// <summary>
/// 商品添加方式 /// 商品添加方式【0-自动添加,1-手动添加】
/// </summary> /// </summary>
public int addGoodsType { get; set; } public int addGoodsType { get; set; }
...@@ -847,7 +850,7 @@ namespace Mall.Model.Extend.MarketingCenter ...@@ -847,7 +850,7 @@ namespace Mall.Model.Extend.MarketingCenter
/// <summary> /// <summary>
/// /// 图片位置
/// </summary> /// </summary>
public int mode { get; set; } public int mode { get; set; }
...@@ -880,45 +883,22 @@ namespace Mall.Model.Extend.MarketingCenter ...@@ -880,45 +883,22 @@ namespace Mall.Model.Extend.MarketingCenter
/// <summary> /// <summary>
/// 商品编号 /// 商品编号
/// </summary> /// </summary>
public int Id { get; set; } public int id { get; set; }
/// <summary> /// <summary>
/// 商品名称 /// 商品名称
/// </summary> /// </summary>
public string Name { get; set; } public string name { get; set; }
/// <summary> /// <summary>
/// 商品图片 /// 商品图片
/// </summary> /// </summary>
public string CoverImage { get; set; } public string picUrl { get; set; }
/// <summary> /// <summary>
/// 售价 /// 售价
/// </summary> /// </summary>
public decimal SellingPrice { get; set; } public decimal price { get; set; }
public int SalesNum { get; set; }
/// <summary>
/// 商品分类列表
/// </summary>
public List<CategoryItem> CategoryList { get; set; }
}
/// <summary>
/// 商品分类
/// </summary>
public class CategoryItem
{
/// <summary>
/// 商品分类编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 商品分类名称
/// </summary>
public string CategoryName { get; set; }
} }
/// <summary> /// <summary>
...@@ -932,12 +912,12 @@ namespace Mall.Model.Extend.MarketingCenter ...@@ -932,12 +912,12 @@ namespace Mall.Model.Extend.MarketingCenter
public int id { get; set; } public int id { get; set; }
/// <summary> /// <summary>
/// 分类名称 /// 商品分类
/// </summary> /// </summary>
public string name { get; set; } public string name { get; set; }
/// <summary> /// <summary>
/// 分类名称 /// 菜单名称
/// </summary> /// </summary>
public string menuName { get; set; } public string menuName { get; set; }
...@@ -947,37 +927,17 @@ namespace Mall.Model.Extend.MarketingCenter ...@@ -947,37 +927,17 @@ namespace Mall.Model.Extend.MarketingCenter
public int goodsNum { get; set; } public int goodsNum { get; set; }
/// <summary> /// <summary>
/// 商品列表 /// 是否显示自定义商品
/// </summary>
public List<GoodsDetailsItem> goodsList { get; set; }
}
/// <summary>
/// 商品详情项
/// </summary>
public class GoodsDetailsItem
{
/// <summary>
/// 商品编号
/// </summary>
public int id { get; set; }
/// <summary>
/// 商品名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 商品图片
/// </summary> /// </summary>
public string picUrl { get; set; } public bool staticGoods { get; set; }
/// <summary> /// <summary>
/// 售价 /// 商品列表
/// </summary> /// </summary>
public decimal SellingPrice { get; set; } public List<GoodsDetailsItem2> goodsList { get; set; }
} }
/// <summary> /// <summary>
/// 门店插件 /// 门店插件
/// </summary> /// </summary>
......
...@@ -65,6 +65,8 @@ namespace Mall.Model.Extend.Product ...@@ -65,6 +65,8 @@ namespace Mall.Model.Extend.Product
/// 封面图 /// 封面图
/// </summary> /// </summary>
public string CoverImage { get; set; } public string CoverImage { get; set; }
/// <summary> /// <summary>
/// 自定义分享图片 /// 自定义分享图片
/// </summary> /// </summary>
......
...@@ -23,20 +23,7 @@ namespace Mall.Model.Extend.User ...@@ -23,20 +23,7 @@ namespace Mall.Model.Extend.User
/// </summary> /// </summary>
public DateTime? OrderCreateDate { get; set; } public DateTime? OrderCreateDate { get; set; }
/// <summary>
/// 优惠券名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 优惠方式
/// </summary>
public CouponTypeEnum CouponType { get; set; }
/// <summary>
/// 最低消费金额
/// </summary>
public decimal MinConsumePrice { get; set; }
/// <summary> /// <summary>
/// 会员昵称 /// 会员昵称
...@@ -44,15 +31,7 @@ namespace Mall.Model.Extend.User ...@@ -44,15 +31,7 @@ namespace Mall.Model.Extend.User
public string AliasName { get; set; } public string AliasName { get; set; }
/// <summary>
/// 下单开始时间
/// </summary>
public DateTime? StartDate { get; set; }
/// <summary>
/// 下单结束时间
/// </summary>
public DateTime? EndDate { get; set; }
/// <summary> /// <summary>
/// 优惠卷ids /// 优惠卷ids
/// </summary> /// </summary>
...@@ -60,5 +39,8 @@ namespace Mall.Model.Extend.User ...@@ -60,5 +39,8 @@ namespace Mall.Model.Extend.User
} }
} }
...@@ -4,6 +4,12 @@ ...@@ -4,6 +4,12 @@
<TargetFramework>netcoreapp3.0</TargetFramework> <TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<Compile Remove="Query\Applet\**" />
<EmbeddedResource Remove="Query\Applet\**" />
<None Remove="Query\Applet\**" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Remove="Extend\BaseSetUp\RB_Logistics_Pinkage_Extend.cs" /> <Compile Remove="Extend\BaseSetUp\RB_Logistics_Pinkage_Extend.cs" />
</ItemGroup> </ItemGroup>
......
using Mall.Common.AOP;
using NPOI.SS.Formula.Functions;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Query.Applet
{
/// <summary>
/// 个人中心-领劵中心
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_DiscountCoupon_Applet
{
/// <summary>
/// 优惠券id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 小程序id
/// </summary>
public int Mall_Id { get; set; }
/// <summary>
/// 优惠券名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 优惠券类型
/// </summary>
public int Type { get; set; }
/// <summary>
/// 折扣
/// </summary>
public decimal Discount { get; set; }
/// <summary>
///
/// </summary>
public string Pic_Url { get; set; }
/// <summary>
///
/// </summary>
public string Desc { get; set; }
/// <summary>
/// 最低消费
/// </summary>
public decimal Min_Price { get; set; }
/// <summary>
///
/// </summary>
public decimal Sub_Price { get; set; }
/// <summary>
///
/// </summary>
public int Total_Count { get; set; }
/// <summary>
/// 排序
/// </summary>
public int Sort { get; set; }
/// <summary>
/// 优惠券有效期
/// </summary>
public int Expire_Type { get; set; }
/// <summary>
/// 有效天数
/// </summary>
public string Expire_Day { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public string Begin_Time { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public string End_Time { get; set; }
/// <summary>
///
/// </summary>
public int Appoint_Type { get; set; }
/// <summary>
/// 规则
/// </summary>
public string Rule { get; set; }
/// <summary>
///
/// </summary>
public int Is_Member { get; set; }
/// <summary>
///
/// </summary>
public int Is_Delete { get; set; }
/// <summary>
///
/// </summary>
public string Deleted_At { get; set; }
/// <summary>
///
/// </summary>
public string Created_At { get; set; }
/// <summary>
///
/// </summary>
public string Updated_At { get; set; }
/// <summary>
/// 优惠上限
/// </summary>
public string Discount_Limit { get; set; }
/// <summary>
///
/// </summary>
public int Is_Receive { get; set; }
/// <summary>
///
/// </summary>
public string Page_Url { get; set; }
/// <summary>
///
/// </summary>
public string Share_Type { get; set; }
}
public class Category
{
public int Id { get; set; }
public int Mall_Id { get; set; }
public int Mch_Id { get; set; }
public int Parent_Id { get; set; }
public string Name { get; set; }
}
}
...@@ -27,6 +27,10 @@ namespace Mall.Module.MarketingCenter ...@@ -27,6 +27,10 @@ namespace Mall.Module.MarketingCenter
private RB_Coupon_SelfMotionRepository selfMotionRepository = new RB_Coupon_SelfMotionRepository(); private RB_Coupon_SelfMotionRepository selfMotionRepository = new RB_Coupon_SelfMotionRepository();
#region 卡券列表 #region 卡券列表
/// <summary> /// <summary>
/// 卡券信息列表 /// 卡券信息列表
...@@ -282,8 +286,8 @@ namespace Mall.Module.MarketingCenter ...@@ -282,8 +286,8 @@ namespace Mall.Module.MarketingCenter
Dictionary<string, object> cols = new Dictionary<string, object>() Dictionary<string, object> cols = new Dictionary<string, object>()
{ {
{ nameof(RB_DiscountCoupon_Product.Status),1}, { nameof(RB_DiscountCoupon.Status),1},
{ nameof(RB_DiscountCoupon_Product.UpdateDate),DateTime.Now}, { nameof(RB_DiscountCoupon.UpdateDate),DateTime.Now},
}; };
List<WhereHelper> wheres = new List<WhereHelper>() { List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){ new WhereHelper(){
...@@ -369,19 +373,24 @@ namespace Mall.Module.MarketingCenter ...@@ -369,19 +373,24 @@ namespace Mall.Module.MarketingCenter
/// <param name="list"></param> /// <param name="list"></param>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
public bool GrantCoupon(List<RB_Member_DiscountCoupon> list, RB_DiscountCoupon_Extend model) public bool GrantCoupon(List<RB_Member_DiscountCoupon_Extend> list, RB_DiscountCoupon_Extend model)
{ {
bool flag = false; bool flag = false;
var trans = memberCouponRepository.DbTransaction; var trans = memberCouponRepository.DbTransaction;
try try
{ {
flag = memberCouponRepository.InsertBatch(list); //foreach (var item in list)
//{
flag = memberCouponRepository.InsertBatch(list, trans);
// }
if (model != null && flag) if (model != null && flag)
{ {
Dictionary<string, object> cols1 = new Dictionary<string, object>() Dictionary<string, object> cols1 = new Dictionary<string, object>()
{ {
{ nameof(RB_DiscountCoupon.ReceiveNum),model.ReceiveNum+list.Count()}, { nameof(RB_DiscountCoupon.ReceiveNum),model.ReceiveNum+list.Count()},
{ nameof(RB_DiscountCoupon.TotalNum),model.TotalNum-list.Count()},
{ nameof(RB_DiscountCoupon.UpdateDate),DateTime.Now}, { nameof(RB_DiscountCoupon.UpdateDate),DateTime.Now},
}; };
List<WhereHelper> wheres1 = new List<WhereHelper>() List<WhereHelper> wheres1 = new List<WhereHelper>()
...@@ -402,7 +411,7 @@ namespace Mall.Module.MarketingCenter ...@@ -402,7 +411,7 @@ namespace Mall.Module.MarketingCenter
OperatorEnum=OperatorEnum.Equal OperatorEnum=OperatorEnum.Equal
} }
}; };
flag = discountCouponRepository.Update(cols1, wheres1); flag = discountCouponRepository.Update(cols1, wheres1, trans);
} }
memberCouponRepository.DBSession.Commit(); memberCouponRepository.DBSession.Commit();
} }
...@@ -423,7 +432,32 @@ namespace Mall.Module.MarketingCenter ...@@ -423,7 +432,32 @@ namespace Mall.Module.MarketingCenter
/// <returns></returns> /// <returns></returns>
public List<RB_DiscountCoupon_Extend> GetNoUseCouponList(RB_DiscountCoupon_Extend query) public List<RB_DiscountCoupon_Extend> GetNoUseCouponList(RB_DiscountCoupon_Extend query)
{ {
return discountCouponRepository.GetNoUseCouponList(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_DiscountCoupon_Product_Extend>();
item.ProductList = listProduct.Where(x => x.DiscountCouponId == item.ID).ToList();
}
}
Ids = string.Join(",", list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product).Select(x => x.ID));
if (!string.IsNullOrWhiteSpace(Ids))
{
query.UseType = Common.Enum.MarketingCenter.UseTypeEnum.Product;
var listProduct = productRepository.GetListByDiscountCouponIds(query, Ids);
foreach (var item in list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product))
{
item.ProductList = new List<RB_DiscountCoupon_Product_Extend>();
item.ProductList = listProduct.Where(x => x.DiscountCouponId == item.ID).ToList();
}
}
return list;
} }
...@@ -686,5 +720,93 @@ namespace Mall.Module.MarketingCenter ...@@ -686,5 +720,93 @@ namespace Mall.Module.MarketingCenter
} }
#endregion #endregion
#region 小程序个人中心-领劵中心
/// <summary>
/// 领劵中心优惠券
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_DiscountCoupon_Extend> GetAllCouponList(int pageIndex, int pageSize, out long rowCount, RB_DiscountCoupon_Extend query)
{
var list = discountCouponRepository.GetAllCouponList(pageIndex, pageSize, out rowCount, query);
//获取特定商品或者分类的数据
string Ids = string.Join(",", list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category).Select(x => x.ID));
if (!string.IsNullOrWhiteSpace(Ids))
{
query.UseType = Common.Enum.MarketingCenter.UseTypeEnum.Category;
var listProduct = productRepository.GetListByDiscountCouponIds(query, Ids);
foreach (var item in list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category))
{
item.ProductList = new List<RB_DiscountCoupon_Product_Extend>();
item.ProductList = listProduct.Where(x => x.DiscountCouponId == item.ID).ToList();
}
}
Ids = string.Join(",", list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product).Select(x => x.ID));
if (!string.IsNullOrWhiteSpace(Ids))
{
query.UseType = Common.Enum.MarketingCenter.UseTypeEnum.Product;
var listProduct = productRepository.GetListByDiscountCouponIds(query, Ids);
foreach (var item in list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product))
{
item.ProductList = new List<RB_DiscountCoupon_Product_Extend>();
item.ProductList = listProduct.Where(x => x.DiscountCouponId == item.ID).ToList();
}
}
return list;
}
#endregion
#region 会员优惠券
/// <summary>
/// 会员优惠券
/// </summary>
/// <returns></returns>
public List<RB_Member_DiscountCoupon_Extend> GetMemberDiscountCouponList(RB_Member_DiscountCoupon_Extend query)
{
return memberCouponRepository.GetList(query);
}
/// <summary>
/// 我的优惠券
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_DiscountCoupon_Extend> GetMemberDisCouponList(int pageIndex, int pageSize, out long rowCount, RB_DiscountCoupon_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_DiscountCoupon_Product_Extend>();
item.ProductList = listProduct.Where(x => x.DiscountCouponId == item.ID).ToList();
}
}
Ids = string.Join(",", list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product).Select(x => x.ID));
if (!string.IsNullOrWhiteSpace(Ids))
{
query.UseType = Common.Enum.MarketingCenter.UseTypeEnum.Product;
var listProduct = productRepository.GetListByDiscountCouponIds(query, Ids);
foreach (var item in list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product))
{
item.ProductList = new List<RB_DiscountCoupon_Product_Extend>();
item.ProductList = listProduct.Where(x => x.DiscountCouponId == item.ID).ToList();
}
}
return list;
}
#endregion
} }
} }
...@@ -129,39 +129,69 @@ namespace Mall.Module.MarketingCenter ...@@ -129,39 +129,69 @@ namespace Mall.Module.MarketingCenter
{ {
switch (item.Id) switch (item.Id)
{ {
//背景组件
case "background":item.data = JsonHelper.DeserializeObject<backgroundItem>(item.data.ToString()); break; case "background":item.data = JsonHelper.DeserializeObject<backgroundItem>(item.data.ToString()); break;
//查找组件
case "search": item.data = JsonHelper.DeserializeObject<searchItem>(item.data.ToString()); break; case "search": item.data = JsonHelper.DeserializeObject<searchItem>(item.data.ToString()); break;
//导航组件
case "nav": item.data = JsonHelper.DeserializeObject<navItem>(item.data.ToString()); break; case "nav": item.data = JsonHelper.DeserializeObject<navItem>(item.data.ToString()); break;
//轮播广告插件
case "banner": item.data = JsonHelper.DeserializeObject<bannerItem>(item.data.ToString()); break; case "banner": item.data = JsonHelper.DeserializeObject<bannerItem>(item.data.ToString()); break;
//公告组件
case "notice": item.data = JsonHelper.DeserializeObject<noticeItem>(item.data.ToString()); break; case "notice": item.data = JsonHelper.DeserializeObject<noticeItem>(item.data.ToString()); break;
//专题 //专题
case "topic": item.data = JsonHelper.DeserializeObject<topicItem>(item.data.ToString()); break; case "topic": item.data = JsonHelper.DeserializeObject<topicItem>(item.data.ToString()); break;
//标题组件
case "link": item.data = JsonHelper.DeserializeObject<linkItem>(item.data.ToString()); break; case "link": item.data = JsonHelper.DeserializeObject<linkItem>(item.data.ToString()); break;
//图片广告插件
case "rubik": item.data = JsonHelper.DeserializeObject<rubikItem>(item.data.ToString()); break; case "rubik": item.data = JsonHelper.DeserializeObject<rubikItem>(item.data.ToString()); break;
//视频插件
case "video": item.data = JsonHelper.DeserializeObject<videoItem>(item.data.ToString()); break; case "video": item.data = JsonHelper.DeserializeObject<videoItem>(item.data.ToString()); break;
//商品插件
case "goods": item.data = JsonHelper.DeserializeObject<goodsItem>(item.data.ToString()); break; case "goods": item.data = JsonHelper.DeserializeObject<goodsItem>(item.data.ToString()); break;
//门店插件
case "store": item.data = JsonHelper.DeserializeObject<storeItem>(item.data.ToString()); break; case "store": item.data = JsonHelper.DeserializeObject<storeItem>(item.data.ToString()); break;
//版权插件
case "copyright": item.data = JsonHelper.DeserializeObject<copyrightItem>(item.data.ToString()); break; case "copyright": item.data = JsonHelper.DeserializeObject<copyrightItem>(item.data.ToString()); break;
//签到插件
case "check-in": item.data = JsonHelper.DeserializeObject<checkinItem>(item.data.ToString()); break; case "check-in": item.data = JsonHelper.DeserializeObject<checkinItem>(item.data.ToString()); break;
//用户信息插件
case "user-info": item.data = JsonHelper.DeserializeObject<userinfoItem>(item.data.ToString()); break; case "user-info": item.data = JsonHelper.DeserializeObject<userinfoItem>(item.data.ToString()); break;
//用户订单插件
case "user-order": item.data = JsonHelper.DeserializeObject<userorderItem>(item.data.ToString()); break; case "user-order": item.data = JsonHelper.DeserializeObject<userorderItem>(item.data.ToString()); break;
//地图插件
case "map": item.data = JsonHelper.DeserializeObject<mapItem>(item.data.ToString()); break; case "map": item.data = JsonHelper.DeserializeObject<mapItem>(item.data.ToString()); break;
//微信公众号插件
case "mp-link": item.data = JsonHelper.DeserializeObject<mplinkItem>(item.data.ToString()); break; case "mp-link": item.data = JsonHelper.DeserializeObject<mplinkItem>(item.data.ToString()); break;
//图文插件
case "image-text": item.data = JsonHelper.DeserializeObject<imagetextItem>(item.data.ToString()); break; case "image-text": item.data = JsonHelper.DeserializeObject<imagetextItem>(item.data.ToString()); break;
//优惠券插件
case "coupon": item.data = JsonHelper.DeserializeObject<couponItem>(item.data.ToString()); break; case "coupon": item.data = JsonHelper.DeserializeObject<couponItem>(item.data.ToString()); break;
//倒计时插件
case "timer": item.data = JsonHelper.DeserializeObject<timerItem>(item.data.ToString()); break; case "timer": item.data = JsonHelper.DeserializeObject<timerItem>(item.data.ToString()); break;
//拼团插件
case "pintuan": item.data = JsonHelper.DeserializeObject<pintuanItem>(item.data.ToString()); break; case "pintuan": item.data = JsonHelper.DeserializeObject<pintuanItem>(item.data.ToString()); break;
//预约插件
case "booking": item.data = JsonHelper.DeserializeObject<bookingItem>(item.data.ToString()); break; case "booking": item.data = JsonHelper.DeserializeObject<bookingItem>(item.data.ToString()); break;
//砍价插件
case "bargain": item.data = JsonHelper.DeserializeObject<bargainItem>(item.data.ToString()); break; case "bargain": item.data = JsonHelper.DeserializeObject<bargainItem>(item.data.ToString()); break;
//积分商城插件
case "integral-mall": item.data = JsonHelper.DeserializeObject<integralmallItem>(item.data.ToString()); break; case "integral-mall": item.data = JsonHelper.DeserializeObject<integralmallItem>(item.data.ToString()); break;
//抽奖插件
case "lottery": item.data = JsonHelper.DeserializeObject<lotteryItem>(item.data.ToString()); break; case "lottery": item.data = JsonHelper.DeserializeObject<lotteryItem>(item.data.ToString()); break;
//预售
case "advance": item.data = JsonHelper.DeserializeObject<advanceItem>(item.data.ToString()); break; case "advance": item.data = JsonHelper.DeserializeObject<advanceItem>(item.data.ToString()); break;
//超级会员卡
case "vip-card": item.data = JsonHelper.DeserializeObject<vipcardItem>(item.data.ToString()); break; case "vip-card": item.data = JsonHelper.DeserializeObject<vipcardItem>(item.data.ToString()); break;
//直播组件
case "live": item.data = JsonHelper.DeserializeObject<liveItem>(item.data.ToString()); break; case "live": item.data = JsonHelper.DeserializeObject<liveItem>(item.data.ToString()); break;
//空白块组件
case "empty": item.data = JsonHelper.DeserializeObject<emptyItem>(item.data.ToString()); break; case "empty": item.data = JsonHelper.DeserializeObject<emptyItem>(item.data.ToString()); break;
//流量主广告
case "ad": item.data = JsonHelper.DeserializeObject<adItem>(item.data.ToString()); break; case "ad": item.data = JsonHelper.DeserializeObject<adItem>(item.data.ToString()); break;
//弹窗广告
case "modal": item.data = JsonHelper.DeserializeObject<modalItem>(item.data.ToString()); break; case "modal": item.data = JsonHelper.DeserializeObject<modalItem>(item.data.ToString()); break;
//快捷导航
case "quick-nav": item.data = JsonHelper.DeserializeObject<quicknavItem>(item.data.ToString()); break; case "quick-nav": item.data = JsonHelper.DeserializeObject<quicknavItem>(item.data.ToString()); break;
} }
} }
......
...@@ -183,6 +183,7 @@ namespace Mall.Module.User ...@@ -183,6 +183,7 @@ namespace Mall.Module.User
{ nameof(RB_Topic_Extend.TopicTypeId),extModel.TopicTypeId}, { nameof(RB_Topic_Extend.TopicTypeId),extModel.TopicTypeId},
{ nameof(RB_Topic_Extend.ReadNum),extModel.ReadNum}, { nameof(RB_Topic_Extend.ReadNum),extModel.ReadNum},
{ nameof(RB_Topic_Extend.SortNum),extModel.SortNum}, { nameof(RB_Topic_Extend.SortNum),extModel.SortNum},
{ nameof(RB_Topic_Extend.TemplateData),extModel.TemplateData},
}; };
flag = topicRepository.Update(fileds, new WhereHelper(nameof(RB_Topic_Extend.Id), extModel.Id)); flag = topicRepository.Update(fileds, new WhereHelper(nameof(RB_Topic_Extend.Id), extModel.Id));
} }
...@@ -219,6 +220,10 @@ namespace Mall.Module.User ...@@ -219,6 +220,10 @@ namespace Mall.Module.User
} }
} }
} }
else
{
extModel.ComponentDataList = new List<ComponentItem>();
}
return extModel; return extModel;
} }
......
using Mall.Model.Entity.MarketingCenter; using Mall.Model.Entity.MarketingCenter;
using Mall.Model.Entity.User; using Mall.Model.Entity.User;
using Mall.Model.Extend.MarketingCenter; using Mall.Model.Extend.MarketingCenter;
using Mall.Model.Extend.User;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
...@@ -96,7 +97,7 @@ namespace Mall.Repository.MarketingCenter ...@@ -96,7 +97,7 @@ namespace Mall.Repository.MarketingCenter
/// <returns></returns> /// <returns></returns>
public List<RB_DiscountCoupon_Extend> GetNoUseCouponList(RB_DiscountCoupon_Extend query) public List<RB_DiscountCoupon_Extend> GetNoUseCouponList(RB_DiscountCoupon_Extend query)
{ {
string where = " and a.StartDate<NOW() and a.EndDate>NOW() and b.`Status`=0 and a.UseState=0 "; string where = " and a.StartDate<NOW() and a.EndDate>NOW() and a.UseState=0 ";
string goodsClassWhere = "";//分类 string goodsClassWhere = "";//分类
string goodsWhere = "";//商品 string goodsWhere = "";//商品
string allWhere = "";//通用 string allWhere = "";//通用
...@@ -124,11 +125,11 @@ namespace Mall.Repository.MarketingCenter ...@@ -124,11 +125,11 @@ namespace Mall.Repository.MarketingCenter
{ {
if (!string.IsNullOrWhiteSpace(goodsWhere)) if (!string.IsNullOrWhiteSpace(goodsWhere))
{ {
goodsWhere += $" or (c.ProductId = {item.ProductId} and b.MinConsumePrice<= {item.GoodsPrice}) "; goodsWhere += $" or (c.ProductId = {item.ProductId} and a.MinConsumePrice<= {item.GoodsPrice}) ";
} }
else else
{ {
goodsWhere += $" (c.ProductId = {item.ProductId} and b.MinConsumePrice<= {item.GoodsPrice}) "; goodsWhere += $" (c.ProductId = {item.ProductId} and a.MinConsumePrice<= {item.GoodsPrice}) ";
} }
allGoodsClass.AddRange(item.GoodsClassId.ToList()); allGoodsClass.AddRange(item.GoodsClassId.ToList());
} }
...@@ -149,38 +150,129 @@ namespace Mall.Repository.MarketingCenter ...@@ -149,38 +150,129 @@ namespace Mall.Repository.MarketingCenter
} }
if (!string.IsNullOrWhiteSpace(goodsClassWhere)) if (!string.IsNullOrWhiteSpace(goodsClassWhere))
{ {
goodsClassWhere += $" or (c.ProductId = {item.Key} and b.MinConsumePrice<= {nowPrice}) "; goodsClassWhere += $" or (c.ProductId = {item.Key} and a.MinConsumePrice<= {nowPrice}) ";
} }
else else
{ {
goodsClassWhere += $" (c.ProductId = {item.Key} and b.MinConsumePrice<= {nowPrice}) "; goodsClassWhere += $" (c.ProductId = {item.Key} and a.MinConsumePrice<= {nowPrice}) ";
} }
} }
goodsClassWhere = " and (" + goodsClassWhere + ")"; goodsClassWhere = " and (" + goodsClassWhere + ")";
decimal allPrice = query.ProductList.Sum(x => x.GoodsPrice);
allWhere = $" and a.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_member_discountcoupon as a
LEFT JOIN rb_discountcoupon as b on a.CouponId=b.ID
LEFT JOIN rb_discountcoupon_product as c on c.DiscountCouponId=b.ID
where a.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_member_discountcoupon as a
LEFT JOIN rb_discountcoupon as b on a.CouponId=b.ID
LEFT JOIN rb_discountcoupon_product as c on c.DiscountCouponId=b.ID
where a.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_member_discountcoupon as a
LEFT JOIN rb_discountcoupon as cb on a.CouponId=b.ID
where a.UseType=3 {where} {allWhere}";
return Get<RB_DiscountCoupon_Extend>(sql).ToList();
}
decimal allPrice = query.ProductList.Sum(x => x.GoodsPrice);
allWhere = $" and b.MinConsumePrice<= {allPrice} ";
#region 小程序个人中心-领劵中心
/// <summary>
/// 领劵中心优惠券
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_DiscountCoupon_Extend> GetAllCouponList(int pageIndex, int pageSize, out long rowCount, RB_DiscountCoupon_Extend query)
{
string where = " where a.`Status`=0 and a.PickupCenter=1";
string userWhere = "";//分类
if (query != null)
{
if (query.TenantId > 0)
{
where += $" AND a.{nameof(RB_DiscountCoupon_Extend.TenantId)}={query.TenantId}";
userWhere += $" AND {nameof(RB_DiscountCoupon_Extend.TenantId)}={query.TenantId}";
}
if (query.MallBaseId > 0)
{
where += $" AND a.{nameof(RB_DiscountCoupon_Extend.MallBaseId)}={query.MallBaseId}";
userWhere += $" AND {nameof(RB_DiscountCoupon_Extend.MallBaseId)}={query.MallBaseId}";
}
if (query.UserId > 0)
{
userWhere += $" AND {nameof(RB_DiscountCoupon_Extend.UserId)}={query.UserId}";
} }
} }
string sql = @$" SELECT a.ID,a.UserId,b.`Name`,b.CouponType,b.UseType,b.MinConsumePrice,b.DiscountsPrice,b.MaxDiscountsPrice,b.Describe,a.StartDate,a.EndDate from rb_discountcoupon as b string sql = @$" SELECT t.*,c.MemberNum from (SELECT a.ID,a.`Name`,a.`Describe`,a.CouponType,a.UseType,a.StartDate,a.EndDate,a.MinConsumePrice,a.MaxDiscountsPrice,a.DiscountsPrice,a.IndateDay,a.IndateType from rb_discountcoupon as a
LEFT JOIN rb_discountcoupon_product as c on b.ID=c.DiscountCouponId {where} and a.CouponType=1
LEFT JOIN rb_member_discountcoupon as a on a.CouponId=b.ID
where b.UseType=1 and c.`Status`=0 {where} {goodsClassWhere}
UNION ALL UNION ALL
SELECT a.ID,a.UserId,b.`Name`,b.CouponType,b.UseType,b.MinConsumePrice,b.DiscountsPrice,b.MaxDiscountsPrice,b.Describe,a.StartDate,a.EndDate from rb_discountcoupon as b SELECT a.ID,a.`Name`,a.`Describe`,a.CouponType,a.UseType,a.StartDate,a.EndDate,a.MinConsumePrice,a.MaxDiscountsPrice,a.DiscountsPrice,a.IndateDay,a.IndateType from rb_discountcoupon as a
LEFT JOIN rb_discountcoupon_product as c on b.ID=c.DiscountCouponId {where} and a.CouponType=2 and a.StartDate>NOW() and a.EndDate<NOW() )
LEFT JOIN rb_member_discountcoupon as a on a.CouponId=b.ID as t LEFT JOIN (SELECT CouponId,COUNT(*) as MemberNum from rb_member_discountcoupon where `Status`=0 and UseState!=2 {userWhere} GROUP BY CouponId) as c on t.ID=c.CouponId ";
where b.UseType=2 and c.`Status`=0 {where} {goodsWhere} return GetPage<RB_DiscountCoupon_Extend>(pageIndex, pageSize, out rowCount, sql).ToList();
UNION all }
SELECT a.ID,a.UserId,b.`Name`,b.CouponType,b.UseType,b.MinConsumePrice,b.DiscountsPrice,b.MaxDiscountsPrice,b.Describe,a.StartDate,a.EndDate from rb_discountcoupon as b
LEFT JOIN rb_member_discountcoupon as a on a.CouponId=b.ID
where b.UseType=3 {where} {allWhere}";
return Get<RB_DiscountCoupon_Extend>(sql).ToList(); /// <summary>
/// 领劵中心优惠券
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_DiscountCoupon_Extend> GetMemberDisCouponList(int pageIndex, int pageSize, out long rowCount, RB_DiscountCoupon_Extend query)
{
string where = " where a.`Status`=0 and b.Status=0 ";
if (query != null)
{
if (query.TenantId > 0)
{
where += $" AND a.{nameof(RB_Member_DiscountCoupon.TenantId)}={query.TenantId}";
where += $" AND b.{nameof(RB_DiscountCoupon_Extend.TenantId)}={query.TenantId}";
}
if (query.MallBaseId > 0)
{
where += $" AND a.{nameof(RB_Member_DiscountCoupon.MallBaseId)}={query.MallBaseId}";
where += $" AND b.{nameof(RB_DiscountCoupon_Extend.MallBaseId)}={query.MallBaseId}";
}
if (query.UserId > 0)
{
where += $" AND a.{nameof(RB_Member_DiscountCoupon.UserId)}={query.UserId}";
}
if (query.UseState == 0)
{
where += $" AND a.{nameof(RB_Member_DiscountCoupon_Extend.UseState)}={query.UseState} AND a.{nameof(RB_Member_DiscountCoupon_Extend.EndDate)}> NOW()";
}
else if (query.UseState == 1)
{
where += $" AND a.{nameof(RB_Member_DiscountCoupon_Extend.UseState)}={query.UseState}";
}
else if (query.UseState == 2)
{
where += $" AND a.{nameof(RB_Member_DiscountCoupon_Extend.EndDate)}<NOW() AND a.{nameof(RB_Member_DiscountCoupon_Extend.UseState)}=0";
}
} }
string sql = @$" SELECT a.ID as MemberCouponId,a.StartDate,a.EndDate,b.ID,b.`Name`,b.`Describe`,b.CouponType,b.UseType,
b.MinConsumePrice,b.MaxDiscountsPrice,b.DiscountsPrice,b.IndateDay,b.IndateType from rb_member_discountcoupon as a LEFT JOIN rb_discountcoupon as b
on a.CouponId=b.ID {where} ";
return GetPage<RB_DiscountCoupon_Extend>(pageIndex, pageSize, out rowCount, sql).ToList();
}
#endregion
......
...@@ -19,6 +19,11 @@ namespace Mall.Repository.MarketingCenter ...@@ -19,6 +19,11 @@ namespace Mall.Repository.MarketingCenter
/// </summary> /// </summary>
public string PCategoryTableName { get { return nameof(Model.Entity.Product.RB_Product_Category); } } 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>
/// 优惠券对应的商品/分类列表 /// 优惠券对应的商品/分类列表
/// </summary> /// </summary>
...@@ -82,7 +87,7 @@ namespace Mall.Repository.MarketingCenter ...@@ -82,7 +87,7 @@ namespace Mall.Repository.MarketingCenter
} }
else if (query.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product) else if (query.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product)
{ {
sql = $" SELECT a.*,b.`Name` as Relevance from {TableName} as a LEFT JOIN {PCategoryTableName} as b on a.ProductId=b.Id WHERE a.{nameof(RB_DiscountCoupon_Product.Status)}=0 {builder.ToString()} "; sql = $" SELECT a.*,b.`Name` as Relevance from {TableName} as a LEFT JOIN {GoodsTableName} as b on a.ProductId=b.Id WHERE a.{nameof(RB_DiscountCoupon_Product.Status)}=0 {builder.ToString()} ";
} }
return Get<RB_DiscountCoupon_Product_Extend>(sql).ToList(); return Get<RB_DiscountCoupon_Product_Extend>(sql).ToList();
} }
......
...@@ -337,5 +337,48 @@ LEFT JOIN rb_member_user as d on d.AliasName=a.UserId where a.UseState=1 {buil ...@@ -337,5 +337,48 @@ LEFT JOIN rb_member_user as d on d.AliasName=a.UserId where a.UseState=1 {buil
return GetPage<RB_Member_DiscountCoupon_Extend>(pageIndex, pageSize, out rowCount, sql).ToList(); return GetPage<RB_Member_DiscountCoupon_Extend>(pageIndex, pageSize, out rowCount, sql).ToList();
} }
/// <summary>
/// 我的优惠券
/// </summary>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_Member_DiscountCoupon_Extend> GetMemberCouponPageList(int pageIndex, int pageSize, out long rowCount, RB_Member_DiscountCoupon_Extend query)
{
string where = " where a.`Status`=0 ";
if (query != null)
{
if (query.TenantId > 0)
{
where += $" AND a.{nameof(RB_Member_DiscountCoupon_Extend.TenantId)}={query.TenantId}";
}
if (query.MallBaseId > 0)
{
where += $" AND a.{nameof(RB_Member_DiscountCoupon_Extend.MallBaseId)}={query.MallBaseId}";
}
if (query.UserId > 0)
{
where += $" AND a.{nameof(RB_Member_DiscountCoupon_Extend.UserId)}={query.UserId}";
}
if (query.UseState == 0)
{
where += $" AND a.{nameof(RB_Member_DiscountCoupon_Extend.UseState)}={query.UseState} AND a.{nameof(RB_Member_DiscountCoupon_Extend.EndDate)}> NOW()";
}
else if (query.UseState == 1)
{
where += $" AND a.{nameof(RB_Member_DiscountCoupon_Extend.UseState)}={query.UseState}";
}
else if (query.UseState == 2)
{
where += $" AND a.{nameof(RB_Member_DiscountCoupon_Extend.EndDate)}<NOW() AND a.{nameof(RB_Member_DiscountCoupon_Extend.UseState)}=0";
}
}
string sql = @$" SELECT a.* from rb_member_discountcoupon as a {where} ";
return GetPage<RB_Member_DiscountCoupon_Extend>(pageIndex, pageSize, out rowCount, sql).ToList();
}
} }
} }
...@@ -6,7 +6,9 @@ using Mall.Common; ...@@ -6,7 +6,9 @@ using Mall.Common;
using Mall.Common.API; using Mall.Common.API;
using Mall.Common.Plugin; using Mall.Common.Plugin;
using Mall.Model.Extend.MarketingCenter; using Mall.Model.Extend.MarketingCenter;
using Mall.Model.Extend.Product;
using Mall.Module.MarketingCenter; using Mall.Module.MarketingCenter;
using Mall.Module.Product;
using Mall.WebApi.Filter; using Mall.WebApi.Filter;
using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
...@@ -22,7 +24,7 @@ namespace Mall.WebApi.Controllers.MarketingCenter ...@@ -22,7 +24,7 @@ namespace Mall.WebApi.Controllers.MarketingCenter
public class AppletCouponController : BaseController public class AppletCouponController : BaseController
{ {
private CouponModule couponModule = new CouponModule(); private CouponModule couponModule = new CouponModule();
private ProductModule productModule = new ProductModule();
/// <summary> /// <summary>
/// 获取用户未使用的优惠券 /// 获取用户未使用的优惠券
...@@ -45,11 +47,141 @@ namespace Mall.WebApi.Controllers.MarketingCenter ...@@ -45,11 +47,141 @@ namespace Mall.WebApi.Controllers.MarketingCenter
query.MallBaseId = userInfo.MallBaseId; query.MallBaseId = userInfo.MallBaseId;
query.UserId = userInfo.UserId; query.UserId = userInfo.UserId;
var list = couponModule.GetNoUseCouponList(query); var list = couponModule.GetNoUseCouponList(query);
//获取优惠券对应的商品,或者分类
List<RB_Product_Category_Extend> categotyList = new List<RB_Product_Category_Extend>();
List<RB_DiscountCoupon_Product_Extend> productList = new List<RB_DiscountCoupon_Product_Extend>();
string Ids = "";
foreach (var item in list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Category))
{
productList.AddRange(item.ProductList);
item.CategoryIds = item.ProductList.Select(x => x.ProductId).ToList().ToArray();
}
if (productList != null && productList.Any())
{
Ids = string.Join(",", productList.Select(x => x.ProductId));
}
if (!string.IsNullOrWhiteSpace(Ids))
{
categotyList = productModule.GetCategoryListModule(new Model.Extend.Product.RB_Product_Category_Extend { TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId, CategoryIds = Ids });
}
if (categotyList == null || !categotyList.Any())
{
categotyList = new List<RB_Product_Category_Extend>();
}
List<RB_Goods_Extend> goodsList = new List<RB_Goods_Extend>();
productList = new List<RB_DiscountCoupon_Product_Extend>();
Ids = "";
foreach (var item in list.Where(x => x.UseType == Common.Enum.MarketingCenter.UseTypeEnum.Product))
{
productList.AddRange(item.ProductList);
item.GoodsIds = item.ProductList.Select(x => x.ProductId).ToList().ToArray();
}
if (productList != null && productList.Any())
{
Ids = string.Join(",", productList.Select(x => x.ProductId));
}
if (!string.IsNullOrWhiteSpace(Ids))
{
goodsList = productModule.GetProductGoodsList(new RB_Goods_Extend { TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId, GoodsIds = Ids });
}
if (goodsList == null || !goodsList.Any())
{
goodsList = new List<RB_Goods_Extend>();
}
var result = list.Select(x => new var result = list.Select(x => new
{ {
x.ID, id = x.MemberCouponId,
StartDate = x.StartDate.HasValue ? x.StartDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "", mall_id = userInfo.MallBaseId,
EndDate = x.EndDate.HasValue ? x.EndDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "", user_id = userInfo.UserId,
coupon_id = x.ID,
sub_price = x.DiscountsPrice,
discount = x.CouponType == Common.Enum.MarketingCenter.CouponTypeEnum.Discount ? x.DiscountsPrice : 10,
coupon_min_price = x.MinConsumePrice,
type = (int)x.CouponType,
start_time = x.StartDate.HasValue ? x.StartDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
end_time = x.EndDate.HasValue ? x.EndDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
is_use = 0,
is_delete = 0,
created_at = x.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
updated_at = x.UpdateDate.ToString("yyyy-MM-dd HH:mm:ss"),
deleted_at = "0000-00-00 00:00:00",
receive_type = "",
discount_limit = x.MaxDiscountsPrice,
coupon_data = new
{
id = x.ID,
mall_id = userInfo.MallBaseId,
name = x.Name,
type = (int)x.CouponType,
discount = x.CouponType == Common.Enum.MarketingCenter.CouponTypeEnum.Discount ? x.DiscountsPrice : 10,
pic_url = "",
desc = "",
min_price = x.MinConsumePrice,
sub_price = x.DiscountsPrice,
total_count = x.TotalNum + x.ReceiveNum,
sort = x.Sort,
expire_type = x.IndateType,
expire_day = x.IndateDay,
begin_time = x.StartDate.HasValue ? x.StartDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
end_time = x.EndDate.HasValue ? x.EndDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
appoint_type = (int)x.UseType,
rule = x.Describe,
is_member = x.OnlyMember,
is_delete = 0,
deleted_at = "0000-00-00 00:00:00",
created_at = x.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
updated_at = x.UpdateDate.ToString("yyyy-MM-dd HH:mm:ss"),
discount_limit = x.MaxDiscountsPrice,
car = categotyList.Where(y => x.CategoryIds.Contains(x.ID)).Select(y => new
{
id = y.Id,
mall_id = userInfo.MallBaseId,
mch_id = 0,
parent_id = y.ParentId,
name = y.Name,
pic_url = y.AdvertisingImagePath,
sort = y.Sort,
big_pic_url = y.BigIconPath,
advert_pic = y.AdvertisingImage,
advert_url = y.AdvertisingImagePath,
status = y.Status,
created_at = y.CreateDate.HasValue ? y.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
updated_at = y.UpdateDate.HasValue ? y.UpdateDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
deleted_at = "0000-00-00 00:00:00",
is_delete = 0,
is_show = y.IsShow,
advert_open_type = "",
advert_params = ""
}),
goods = goodsList.Where(y => x.GoodsIds.Contains(x.ID)).Select(y => new
{
id = y.Id,
mall_id = userInfo.MallBaseId,
name = y.Name,
original_price = y.OriginalPrice,
cost_price = y.CostPrice,
detail = y.GoodsDetails,
cover_pic = y.CoverImage,
pic_url = "",
video_url = y.VideoAddress,
unit = y.Unit,
created_at = y.CreateDate.HasValue ? y.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
updated_at = y.UpdateDate.HasValue ? y.UpdateDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
deleted_at = "0000-00-00 00:00:00",
is_delete = 0,
}),
},
x.Name, x.Name,
x.Describe, x.Describe,
x.MinConsumePrice, x.MinConsumePrice,
...@@ -57,7 +189,21 @@ namespace Mall.WebApi.Controllers.MarketingCenter ...@@ -57,7 +189,21 @@ namespace Mall.WebApi.Controllers.MarketingCenter
x.MaxDiscountsPrice, x.MaxDiscountsPrice,
x.UseType x.UseType
}); });
return ApiResult.Success("", result);
//var result = list.Select(x => new
//{
// x.ID,
// StartDate = x.StartDate.HasValue ? x.StartDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
// EndDate = x.EndDate.HasValue ? x.EndDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
// x.Name,
// x.Describe,
// x.MinConsumePrice,
// x.CouponType,
// x.MaxDiscountsPrice,
// x.UseType
//});
return ApiResult.Success("", data: JsonHelper.GetCamelCaseResultJson(result));
} }
} }
......
...@@ -389,14 +389,14 @@ namespace Mall.WebApi.Controllers.MarketingCenter ...@@ -389,14 +389,14 @@ namespace Mall.WebApi.Controllers.MarketingCenter
{ {
return ApiResult.Failed("请选择发放对象"); return ApiResult.Failed("请选择发放对象");
} }
List<RB_Member_DiscountCoupon> list = new List<RB_Member_DiscountCoupon>(); List<RB_Member_DiscountCoupon_Extend> list = new List<RB_Member_DiscountCoupon_Extend>();
for (int i = 0; i < query.GrantNum; i++) for (int i = 0; i < query.GrantNum; i++)
{ {
foreach (var item in query.UserIds.Split(",")) foreach (var item in query.UserIds.Split(","))
{ {
if (!string.IsNullOrWhiteSpace(item)) if (!string.IsNullOrWhiteSpace(item))
{ {
RB_Member_DiscountCoupon memberCoupon = new RB_Member_DiscountCoupon(); RB_Member_DiscountCoupon_Extend memberCoupon = new RB_Member_DiscountCoupon_Extend();
memberCoupon.Id = 0; memberCoupon.Id = 0;
memberCoupon.UserId = Convert.ToInt32(item); memberCoupon.UserId = Convert.ToInt32(item);
memberCoupon.Description = oldLogisticsModel.Describe; memberCoupon.Description = oldLogisticsModel.Describe;
...@@ -421,7 +421,11 @@ namespace Mall.WebApi.Controllers.MarketingCenter ...@@ -421,7 +421,11 @@ namespace Mall.WebApi.Controllers.MarketingCenter
} }
if (oldLogisticsModel.TotalNum != -1) if (oldLogisticsModel.TotalNum != -1)
{ {
if ((oldLogisticsModel.TotalNum - oldLogisticsModel.ReceiveNum) < list.Count()) //if ((oldLogisticsModel.TotalNum - oldLogisticsModel.ReceiveNum) < list.Count())
//{
// return ApiResult.Failed("优惠券剩余" + (oldLogisticsModel.TotalNum - oldLogisticsModel.ReceiveNum) + "张");
//}
if (oldLogisticsModel.TotalNum < list.Count())
{ {
return ApiResult.Failed("优惠券剩余" + (oldLogisticsModel.TotalNum - oldLogisticsModel.ReceiveNum) + "张"); return ApiResult.Failed("优惠券剩余" + (oldLogisticsModel.TotalNum - oldLogisticsModel.ReceiveNum) + "张");
} }
......
...@@ -20,6 +20,7 @@ using Mall.Common.Plugin; ...@@ -20,6 +20,7 @@ using Mall.Common.Plugin;
using Mall.Common.Enum.MallBase; using Mall.Common.Enum.MallBase;
using Mall.Model.Entity.User; using Mall.Model.Entity.User;
using Mall.Module.Product; using Mall.Module.Product;
using Microsoft.AspNetCore.Authorization;
namespace Mall.WebApi.Controllers.User namespace Mall.WebApi.Controllers.User
{ {
...@@ -76,6 +77,7 @@ namespace Mall.WebApi.Controllers.User ...@@ -76,6 +77,7 @@ namespace Mall.WebApi.Controllers.User
#region 商户信息 #region 商户信息
[AllowAnonymous]
/// <summary> /// <summary>
/// 用户登录 /// 用户登录
/// </summary> /// </summary>
...@@ -151,6 +153,7 @@ namespace Mall.WebApi.Controllers.User ...@@ -151,6 +153,7 @@ namespace Mall.WebApi.Controllers.User
/// 用户注册第一步 /// 用户注册第一步
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[AllowAnonymous]
public ApiResult SetTenantFirst() public ApiResult SetTenantFirst()
{ {
var extModel = JsonConvert.DeserializeObject<RB_Tenant_Extend>(RequestParm.msg.ToString()); var extModel = JsonConvert.DeserializeObject<RB_Tenant_Extend>(RequestParm.msg.ToString());
...@@ -170,6 +173,7 @@ namespace Mall.WebApi.Controllers.User ...@@ -170,6 +173,7 @@ namespace Mall.WebApi.Controllers.User
/// 用户注册第二步 /// 用户注册第二步
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[AllowAnonymous]
public ApiResult SetTenantSecond() public ApiResult SetTenantSecond()
{ {
var extModel = JsonConvert.DeserializeObject<RB_Tenant_Extend>(RequestParm.msg.ToString()); var extModel = JsonConvert.DeserializeObject<RB_Tenant_Extend>(RequestParm.msg.ToString());
...@@ -193,6 +197,7 @@ namespace Mall.WebApi.Controllers.User ...@@ -193,6 +197,7 @@ namespace Mall.WebApi.Controllers.User
/// 修改密码账号 /// 修改密码账号
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[AllowAnonymous]
public ApiResult UpdateTenantPwd() public ApiResult UpdateTenantPwd()
{ {
var extModel = JsonConvert.DeserializeObject<RB_Tenant_Extend>(RequestParm.msg.ToString()); var extModel = JsonConvert.DeserializeObject<RB_Tenant_Extend>(RequestParm.msg.ToString());
......
...@@ -14,6 +14,7 @@ using Mall.Common.Enum.User; ...@@ -14,6 +14,7 @@ using Mall.Common.Enum.User;
using Mall.CacheManager.User; using Mall.CacheManager.User;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using Mall.Common; using Mall.Common;
using Microsoft.AspNetCore.Authorization;
namespace Mall.WebApi.Controllers.User namespace Mall.WebApi.Controllers.User
{ {
......
...@@ -17,6 +17,10 @@ using Microsoft.AspNetCore.Http; ...@@ -17,6 +17,10 @@ using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Configuration.Json; using Microsoft.Extensions.Configuration.Json;
using Mall.CacheManager.User; using Mall.CacheManager.User;
using System.Linq;
using Microsoft.AspNetCore.Mvc.Authorization;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http.Features;
namespace Mall.WebApi.Filter namespace Mall.WebApi.Filter
{ {
...@@ -39,22 +43,15 @@ namespace Mall.WebApi.Filter ...@@ -39,22 +43,15 @@ namespace Mall.WebApi.Filter
#region api监控日志 #region api监控日志
parm = DoApiMonitorLog(actionContext, ref token); parm = DoApiMonitorLog(actionContext, ref token);
#endregion #endregion
//不需要验证TOKEN的CMD
List<string> notValidatList = new List<string>()
{
"/api/Tenant/Login",//用户登录
"/api/Tenant/SetTenantFirst",//用户注册第一步
"/api/Tenant/SetTenantSecond",//用户注册第二步
"/api/Tenant/UpdateTenantPwd",//忘记密码
};
bool isCheckToken = true; bool isCheckToken = true;
foreach (var item in notValidatList) var endpoint = actionContext.HttpContext.Features.Get<IEndpointFeature>()?.Endpoint;
{ if (endpoint != null && endpoint.Metadata.GetMetadata<AllowAnonymousAttribute>() != null)
if (item== parm["cmd"].ToString())
{ {
isCheckToken = false; isCheckToken = false;
} }
}
#region Token校验 #region Token校验
if (isCheckToken) if (isCheckToken)
......
...@@ -5,6 +5,7 @@ using System.Text.Encodings.Web; ...@@ -5,6 +5,7 @@ using System.Text.Encodings.Web;
using System.Text.Unicode; using System.Text.Unicode;
using System.Threading.Tasks; using System.Threading.Tasks;
using Mall.ThirdCore.Message; using Mall.ThirdCore.Message;
using Mall.WebApi.Filter;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
...@@ -35,6 +36,7 @@ namespace Mall.WebApi ...@@ -35,6 +36,7 @@ namespace Mall.WebApi
services.AddControllers(); services.AddControllers();
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>(); //注入http上下文 services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>(); //注入http上下文
services.AddMvc().AddJsonOptions(options => services.AddMvc().AddJsonOptions(options =>
{ {
options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All); options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);
...@@ -44,7 +46,9 @@ namespace Mall.WebApi ...@@ -44,7 +46,9 @@ namespace Mall.WebApi
{ {
"http://localhost:8081", "http://localhost:8081",
"http://localhost:8080", "http://localhost:8080",
"http://localhost:8082" "http://localhost:8082",
"http://127.0.0.1:50512",
"http://127.0.0.1:20224"
}; };
services.AddCors(options => options.AddPolicy("AllowCors", policy => policy.AllowAnyHeader().AllowAnyMethod().AllowCredentials().WithOrigins(corsArray.ToArray()))); services.AddCors(options => options.AddPolicy("AllowCors", policy => policy.AllowAnyHeader().AllowAnyMethod().AllowCredentials().WithOrigins(corsArray.ToArray())));
} }
...@@ -65,6 +69,7 @@ namespace Mall.WebApi ...@@ -65,6 +69,7 @@ namespace Mall.WebApi
app.UseAuthorization(); app.UseAuthorization();
app.UseEndpoints(endpoints => app.UseEndpoints(endpoints =>
{ {
endpoints.MapControllers(); endpoints.MapControllers();
......
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