Commit c48d2e31 authored by liudong1993's avatar liudong1993

购物车调整 + 教育订单付款后调整+返佣

parent 4895595e
...@@ -19,6 +19,11 @@ namespace Mall.Model.Extend.Product ...@@ -19,6 +19,11 @@ namespace Mall.Model.Extend.Product
/// </summary> /// </summary>
public string GoodsName { get; set; } public string GoodsName { get; set; }
/// <summary>
/// 课程评分
/// </summary>
public decimal? CourseScore { get; set; }
/// <summary> /// <summary>
/// 商品状态 1销售中 2下架中 3 失效 /// 商品状态 1销售中 2下架中 3 失效
/// </summary> /// </summary>
......
...@@ -17,6 +17,8 @@ using VT.FW.DB; ...@@ -17,6 +17,8 @@ using VT.FW.DB;
using Mall.Repository.GuideCar; using Mall.Repository.GuideCar;
using Mall.Common.Enum; using Mall.Common.Enum;
using Mall.ThirdCore.Message; using Mall.ThirdCore.Message;
using Mall.Repository.BaseSetUp;
using Mall.Common.Enum.User;
namespace Mall.Module.User namespace Mall.Module.User
{ {
...@@ -49,16 +51,27 @@ namespace Mall.Module.User ...@@ -49,16 +51,27 @@ namespace Mall.Module.User
/// 订单信息 /// 订单信息
/// </summary> /// </summary>
private readonly RB_Goods_OrderRepository goods_OrderRepository = new RB_Goods_OrderRepository(); private readonly RB_Goods_OrderRepository goods_OrderRepository = new RB_Goods_OrderRepository();
/// <summary>
/// 返佣
/// </summary>
private readonly RB_Goods_OrderCommissionRepository goods_OrderCommissionRepository = new RB_Goods_OrderCommissionRepository();
/// <summary> /// <summary>
/// 订单商品信息 /// 订单商品信息
/// </summary> /// </summary>
private readonly RB_Goods_OrderDetailRepository goodsOrderDetailRepository = new RB_Goods_OrderDetailRepository(); private readonly RB_Goods_OrderDetailRepository goodsOrderDetailRepository = new RB_Goods_OrderDetailRepository();
/// <summary> /// <summary>
/// 售后订单列表
/// </summary>
private readonly RB_Goods_OrderAfterSaleRepository goods_OrderAfterSaleRepository = new RB_Goods_OrderAfterSaleRepository();
/// <summary>
/// 会员信息 /// 会员信息
/// </summary> /// </summary>
private readonly RB_Member_UserRepository member_UserRepository = new RB_Member_UserRepository(); private readonly RB_Member_UserRepository member_UserRepository = new RB_Member_UserRepository();
/// <summary> /// <summary>
/// 用户积分
/// </summary>
private readonly RB_Member_IntegralRepository member_IntegralRepository = new RB_Member_IntegralRepository();
/// <summary>
/// 分销商 /// 分销商
/// </summary> /// </summary>
private readonly RB_Distributor_InfoRepository distributor_InfoRepository = new RB_Distributor_InfoRepository(); private readonly RB_Distributor_InfoRepository distributor_InfoRepository = new RB_Distributor_InfoRepository();
...@@ -90,6 +103,22 @@ namespace Mall.Module.User ...@@ -90,6 +103,22 @@ namespace Mall.Module.User
/// 司导-车辆 /// 司导-车辆
/// </summary> /// </summary>
private readonly RB_GuideCar_CarRepository guideCar_CarRepository = new RB_GuideCar_CarRepository(); private readonly RB_GuideCar_CarRepository guideCar_CarRepository = new RB_GuideCar_CarRepository();
/// <summary>
/// 小程序基础
/// </summary>
private readonly RB_MallBaseRepository mallBaseRepository = new RB_MallBaseRepository();
/// <summary>
/// 推荐供应商返佣
/// </summary>
private readonly RB_Goods_OrderIntroductionRepository goods_OrderIntroductionRepository = new RB_Goods_OrderIntroductionRepository();
/// <summary>
/// 微店
/// </summary>
private readonly RB_SmallShops_InfoRepository smallShops_InfoRepository = new RB_SmallShops_InfoRepository();
/// <summary>
/// 微店佣金
/// </summary>
private readonly RB_SmallShops_CommissionRepository smallShops_CommissionRepository = new RB_SmallShops_CommissionRepository();
private readonly MiniProgramMsgModule appletWeChatModule = new MiniProgramMsgModule(); private readonly MiniProgramMsgModule appletWeChatModule = new MiniProgramMsgModule();
...@@ -345,12 +374,20 @@ namespace Mall.Module.User ...@@ -345,12 +374,20 @@ namespace Mall.Module.User
{ nameof(RB_Goods_Order_Extend.PaymentTime),Time_End}, { nameof(RB_Goods_Order_Extend.PaymentTime),Time_End},
{ nameof(RB_Goods_Order_Extend.PaymentWay),Common.Enum.Goods.OrderPaymentTypeEnum.OnlinePayment} { nameof(RB_Goods_Order_Extend.PaymentWay),Common.Enum.Goods.OrderPaymentTypeEnum.OnlinePayment}
}; };
if (guidebaseModel != null && guidebaseModel.IsConfirm == 2) if (guidebaseModel != null && guidebaseModel.IsConfirm == 2 && oldOrder.OrderClassify == 1)
{ {
keyValues.Add(nameof(RB_Goods_Order_Extend.OrderStatus), Common.Enum.Goods.OrderStatusEnum.WaitReceiving); keyValues.Add(nameof(RB_Goods_Order_Extend.OrderStatus), Common.Enum.Goods.OrderStatusEnum.WaitReceiving);
keyValues.Add(nameof(RB_Goods_Order_Extend.DeliveryTime), DateTime.Now); keyValues.Add(nameof(RB_Goods_Order_Extend.DeliveryTime), DateTime.Now);
} }
else { else if (oldOrder.OrderClassify == 2) {
//教育订单 下单后 直接完成 无法取消订单 无法申请售后
keyValues.Add(nameof(RB_Goods_Order_Extend.OrderStatus), Common.Enum.Goods.OrderStatusEnum.Completed);
keyValues.Add(nameof(RB_Goods_Order_Extend.DeliveryTime), DateTime.Now);
keyValues.Add(nameof(RB_Goods_Order_Extend.ReceivingTime), DateTime.Now);
keyValues.Add(nameof(RB_Goods_Order_Extend.FinishTime), DateTime.Now);
}
else
{
keyValues.Add(nameof(RB_Goods_Order_Extend.OrderStatus), Common.Enum.Goods.OrderStatusEnum.WaitSendGoods); keyValues.Add(nameof(RB_Goods_Order_Extend.OrderStatus), Common.Enum.Goods.OrderStatusEnum.WaitSendGoods);
} }
List<WhereHelper> wheres = new List<WhereHelper>() { List<WhereHelper> wheres = new List<WhereHelper>() {
...@@ -474,11 +511,17 @@ namespace Mall.Module.User ...@@ -474,11 +511,17 @@ namespace Mall.Module.User
// } // }
//} //}
#endregion #endregion
//赠送粉象等级(+VIP返佣) ld 2020-08-03 //赠送粉象等级(+VIP返佣) ld 2020-08-03
var FXCOrder = oldOrder.RefMapperTo<RB_Goods_Order_Extend>(); var FXCOrder = oldOrder.RefMapperTo<RB_Goods_Order_Extend>();
FXCOrder.DetailList = orderGoodsList; FXCOrder.DetailList = orderGoodsList;
System.Threading.Tasks.Task.Run(() => InsertPresentFXGradeCommission(FXCOrder, Out_Trade_No, Transaction_Id, PayWay, oldOrder.UserId ?? 0, oldOrder.OrderId)); System.Threading.Tasks.Task.Run(() => InsertPresentFXGradeCommission(FXCOrder, Out_Trade_No, Transaction_Id, PayWay, oldOrder.UserId ?? 0, oldOrder.OrderId));
if (oldOrder.OrderClassify == 2) {
//教育订单付款后订单状态为已完成 直接返佣
InsertOrderCommissionCompleted(oldOrder.RefMapperTo<RB_Goods_Order_Extend>());
}
//发送订阅消息 //发送订阅消息
string goodsName = orderGoodsList.FirstOrDefault().GoodsName; string goodsName = orderGoodsList.FirstOrDefault().GoodsName;
if (orderGoodsList.Count > 1) if (orderGoodsList.Count > 1)
...@@ -498,7 +541,7 @@ namespace Mall.Module.User ...@@ -498,7 +541,7 @@ namespace Mall.Module.User
} }
appletWeChatModule.SendOrderSucceedMsg(oldOrder.TenantId, oldOrder.MallBaseId, umodel.OpenId, oldOrder.OrderNo, oldOrder.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss"), (oldOrder.Income ?? 0).ToString(), goodsName); appletWeChatModule.SendOrderSucceedMsg(oldOrder.TenantId, oldOrder.MallBaseId, umodel.OpenId, oldOrder.OrderNo, oldOrder.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss"), (oldOrder.Income ?? 0).ToString(), goodsName);
if (guidebaseModel != null && guidebaseModel.IsConfirm == 2) { if (guidebaseModel != null && guidebaseModel.IsConfirm == 2 && oldOrder.OrderClassify == 1) {
//发送短信通知导游接单 //发送短信通知导游接单
int IsNormalServer = Convert.ToInt32(Config.IsNormalServer);//为正式才发送短信 int IsNormalServer = Convert.ToInt32(Config.IsNormalServer);//为正式才发送短信
if (IsNormalServer == 1 && (guidebaseModel?.IsConfirm ?? 0) == 2) if (IsNormalServer == 1 && (guidebaseModel?.IsConfirm ?? 0) == 2)
...@@ -557,6 +600,197 @@ namespace Mall.Module.User ...@@ -557,6 +600,197 @@ namespace Mall.Module.User
return flag; return flag;
} }
/// <summary>
/// 订单完成 返佣
/// </summary>
/// <returns></returns>
public bool InsertOrderCommissionCompleted(RB_Goods_Order_Extend orderModel) {
int mallBaseId = orderModel.MallBaseId;
int tenantId = orderModel.TenantId;
bool IsUpdateCommission = true;
var mallModel = mallBaseRepository.GetEntity(mallBaseId);
if (mallModel != null && mallModel.AfterTime > 0)
{
var OrderM = goods_OrderRepository.GetEntity(orderModel.OrderId);
if (OrderM != null && OrderM.ReceivingTime.HasValue && OrderM.ReceivingTime.Value.AddDays(mallModel.AfterTime) > DateTime.Now)
{
IsUpdateCommission = false;
}
}
if (IsUpdateCommission)
{
//更新返佣为已返佣
var ocList = goods_OrderCommissionRepository.GetList(new RB_Goods_OrderCommission_Extend() { TenantId = tenantId, MallBaseId = mallBaseId, OrderId = orderModel.OrderId });
if (ocList.Where(x => x.CommissionState == 1).Any())
{
foreach (var item in ocList.Where(x => x.CommissionState == 1))
{
//查询是否有申请退款
var afterSaleList = goods_OrderAfterSaleRepository.GetList(new RB_Goods_OrderAfterSale_Extend() { OrderDetialId = item.OrderDetailId, Type = 1, MallBaseId = mallBaseId, TenantId = tenantId });
if (!afterSaleList.Any())
{
//获取分销商信息
var disInfo = distributor_InfoRepository.GetList(new RB_Distributor_Info_Extend() { UserId = item.UserId, TenantId = tenantId, MallBaseId = mallBaseId }).FirstOrDefault();
if (disInfo != null && disInfo.AuditStatus == DistributorAuditStatusEnum.Audited)
{
//更新分销商佣金
Dictionary<string, object> keyValues2 = new Dictionary<string, object>() {
{ nameof(RB_Distributor_Info_Extend.TotalCommission),(disInfo.TotalCommission??0)+(item.Commission??0)},
{ nameof(RB_Distributor_Info_Extend.CommissionWithdrawal),(disInfo.CommissionWithdrawal??0)+(item.Commission??0)},
};
List<WhereHelper> wheres2 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Distributor_Info_Extend.Id),
FiledValue=disInfo.Id,
OperatorEnum=OperatorEnum.Equal
}
};
bool flag1 = distributor_InfoRepository.Update(keyValues2, wheres2);
if (flag1)
{
//更新返佣状态
Dictionary<string, object> keyValues1 = new Dictionary<string, object>() {
{ nameof(RB_Goods_OrderCommission_Extend.CommissionState),2},
{ nameof(RB_Goods_OrderCommission_Extend.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Goods_OrderCommission_Extend.Id),
FiledValue=item.Id,
OperatorEnum=OperatorEnum.Equal
}
};
goods_OrderCommissionRepository.Update(keyValues1, wheres1);
}
}
}
}
}
//更新推荐供应商返佣
var oiList = goods_OrderIntroductionRepository.GetList(new RB_Goods_OrderIntroduction_Extend() { TenantId = tenantId, MallBaseId = mallBaseId, OrderId = orderModel.OrderId });
if (oiList.Any())
{
foreach (var item in oiList)
{
//查询是否有申请退款
var afterSaleList = goods_OrderAfterSaleRepository.GetList(new RB_Goods_OrderAfterSale_Extend() { OrderDetialId = item.OrderDetailId, Type = 1, MallBaseId = mallBaseId, TenantId = tenantId });
if (!afterSaleList.Any())
{
//更新返佣状态
Dictionary<string, object> keyValues1 = new Dictionary<string, object>() {
{ nameof(RB_Goods_OrderIntroduction_Extend.CommissionState),2},
{ nameof(RB_Goods_OrderIntroduction_Extend.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Goods_OrderIntroduction_Extend.Id),
FiledValue=item.Id,
OperatorEnum=OperatorEnum.Equal
}
};
goods_OrderIntroductionRepository.Update(keyValues1, wheres1);
}
}
}
//更新微店返佣
var ssList = smallShops_CommissionRepository.GetList(new RB_SmallShops_Commission_Extend() { TenantId = tenantId, MallBaseId = mallBaseId, OrderId = orderModel.OrderId });
if (ssList.Where(x => x.CommissionState == 1).Any())
{
var ssmodel = ssList.FirstOrDefault();
//获取微店信息
var smallModel = smallShops_InfoRepository.GetList(new RB_SmallShops_Info_Extend() { UserId = ssmodel.UserId, TenantId = tenantId, MallBaseId = mallBaseId }).FirstOrDefault();
foreach (var item in ssList.Where(x => x.CommissionState == 1))
{
//查询是否有申请退款
var afterSaleList = goods_OrderAfterSaleRepository.GetList(new RB_Goods_OrderAfterSale_Extend() { OrderDetialId = item.OrderDetailId, Type = 1, MallBaseId = mallBaseId, TenantId = tenantId });
if (!afterSaleList.Any())
{
if (smallModel != null && smallModel.AuditStatus == DistributorAuditStatusEnum.Audited)
{
//更新微店佣金
Dictionary<string, object> keyValues2 = new Dictionary<string, object>() {
{ nameof(RB_SmallShops_Info_Extend.TotalCommission),(smallModel.TotalCommission??0)+(item.Commission??0)},
{ nameof(RB_SmallShops_Info_Extend.Commission),(smallModel.Commission??0)+(item.Commission??0)},
};
List<WhereHelper> wheres2 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_SmallShops_Info_Extend.Id),
FiledValue=smallModel.Id,
OperatorEnum=OperatorEnum.Equal
}
};
bool flag1 = smallShops_InfoRepository.Update(keyValues2, wheres2);
if (flag1)
{
//更新返佣状态
Dictionary<string, object> keyValues1 = new Dictionary<string, object>() {
{ nameof(RB_SmallShops_Commission_Extend.CommissionState),2},
{ nameof(RB_SmallShops_Commission_Extend.UpdateDate),DateTime.Now},
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_SmallShops_Commission_Extend.Id),
FiledValue=item.Id,
OperatorEnum=OperatorEnum.Equal
}
};
smallShops_CommissionRepository.Update(keyValues1, wheres1);
}
}
}
}
}
}
//积分赠送
var dlist = goodsOrderDetailRepository.GetOrderDetailList(new RB_Goods_OrderDetail_Extend() { OrderId = orderModel.OrderId, TenantId = tenantId, MallBaseId = mallBaseId });
if (dlist.Any())
{
int IntegralGoodsPresent = 0;
foreach (var item in dlist)
{
if (item.IntegralGoodsPresent > 0)
{
IntegralGoodsPresent += (item.IntegralGoodsPresent ?? 0);
}
}
if (IntegralGoodsPresent > 0)
{
//保存积分赠送
var umodel = member_UserRepository.GetEntity(orderModel.UserId);
//用户订单数增加
Dictionary<string, object> keyValues1 = new Dictionary<string, object>() {
{ nameof(RB_Member_User_Extend.Integral), (umodel.Integral ?? 0)+IntegralGoodsPresent }
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Member_User_Extend.Id),
FiledValue=umodel.Id,
OperatorEnum=OperatorEnum.Equal
}
};
member_UserRepository.Update(keyValues1, wheres1);
member_IntegralRepository.Insert(new Model.Entity.User.RB_Member_Integral()
{
Id = 0,
CreateDate = DateTime.Now,
Description = "订单购买赠送积分,订单号:" + orderModel.OrderNo,
Image = 0,
Integral = IntegralGoodsPresent,
MallBaseId = orderModel.MallBaseId,
PlatformType = orderModel.OrderSource,
Remarks = "",
TenantId = orderModel.TenantId,
Type = Common.Enum.MarketingCenter.RecordTypeEnum.Income,
UserId = orderModel.UserId,
OrderId = orderModel.OrderId
});
}
}
return true;
}
/// <summary> /// <summary>
/// 测试 /// 测试
/// </summary> /// </summary>
......
...@@ -43,9 +43,13 @@ namespace Mall.Repository.Product ...@@ -43,9 +43,13 @@ namespace Mall.Repository.Product
if (dmodel.GoodsStatus > 0) { if (dmodel.GoodsStatus > 0) {
where += $@" and g.{nameof(RB_Goods_Extend.GoodsStatus)}={dmodel.GoodsStatus}"; where += $@" and g.{nameof(RB_Goods_Extend.GoodsStatus)}={dmodel.GoodsStatus}";
} }
if (dmodel.GoodsClassify >= 0)
{
where += $@" and g.{nameof(RB_Goods_Extend.GoodsClassify)}={dmodel.GoodsClassify}";
}
string sql = $@"select sc.*,g.Name as GoodsName,g.GoodsStatus,g.CarouselImage,g.SellingPrice as Price,g.IsCustomSpecification,g.DefaultSpecificationName, string sql = $@"select sc.*,g.Name as GoodsName,g.GoodsStatus,g.CarouselImage,g.SellingPrice as Price,g.IsCustomSpecification,g.DefaultSpecificationName,
g.EnjoyMember,g.SeparateSetMember,g.InventoryNum,g.FullNumPinkage,g.FullMoneyPinkage,g.MarketingLogo from RB_Goods_ShoppingCart sc g.EnjoyMember,g.SeparateSetMember,g.InventoryNum,g.FullNumPinkage,g.FullMoneyPinkage,g.MarketingLogo,g.CourseScore from RB_Goods_ShoppingCart sc
inner join RB_Goods g on sc.GoodsId=g.Id inner join RB_Goods g on sc.GoodsId=g.Id
where {where} order by g.GoodsStatus asc,sc.CreateDate desc"; where {where} order by g.GoodsStatus asc,sc.CreateDate desc";
return GetPage<RB_Goods_ShoppingCart_Extend>(pageIndex, pageSize, out rowCount, sql).ToList(); return GetPage<RB_Goods_ShoppingCart_Extend>(pageIndex, pageSize, out rowCount, sql).ToList();
......
...@@ -83,7 +83,8 @@ namespace Mall.WebApi.Controllers.MallBase ...@@ -83,7 +83,8 @@ namespace Mall.WebApi.Controllers.MallBase
FreeShippingFullMoneyPinkage = x.FreeShippingModel.FullMoneyPinkage ?? 0, FreeShippingFullMoneyPinkage = x.FreeShippingModel.FullMoneyPinkage ?? 0,
FreeShippingFullNumPinkage = x.FreeShippingModel.FullNumPinkage ?? 0, FreeShippingFullNumPinkage = x.FreeShippingModel.FullNumPinkage ?? 0,
x.FreeShippingModel.FreeShippingUrl, x.FreeShippingModel.FreeShippingUrl,
x.MarketingLogo x.MarketingLogo,
x.CourseScore
}); });
List<object> robj = new List<object>() { List<object> robj = new List<object>() {
new { new {
......
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