Commit 93c9ef08 authored by liudong1993's avatar liudong1993

赞羊返佣调整+推荐供应商

parent d6a18812
using Mall.Common.AOP;
using Mall.Common.Enum.User;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.Product
{
/// <summary>
/// 商品订单介绍返佣信息表实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Goods_OrderIntroduction
{
/// <summary>
/// Id
/// </summary>
public int Id
{
get;
set;
}
/// <summary>
/// 订单id
/// </summary>
public int? OrderId
{
get;
set;
}
/// <summary>
/// 订单明细id
/// </summary>
public int? OrderDetailId { get; set; }
/// <summary>
/// 分销商id
/// </summary>
public int? UserId
{
get;
set;
}
/// <summary>
/// 返利比例 百分比
/// </summary>
public decimal? CommissionRatio
{
get;
set;
}
/// <summary>
/// 佣金
/// </summary>
public decimal? Commission
{
get;
set;
}
/// <summary>
/// 佣金状态 1待返佣 2已返佣
/// </summary>
public int? CommissionState
{
get;
set;
}
/// <summary>
/// 类型 1介绍供应商返利
/// </summary>
public int? Type { get; set; }
/// <summary>
/// Remark
/// </summary>
public string Remark
{
get;
set;
}
/// <summary>
/// 商户号
/// </summary>
public int TenantId
{
get;
set;
}
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId
{
get;
set;
}
/// <summary>
/// CreateDate
/// </summary>
public DateTime? CreateDate
{
get;
set;
}
/// <summary>
/// UpdateDate
/// </summary>
public DateTime? UpdateDate
{
get;
set;
}
/// <summary>
/// 打款状态 1已打款 2未打款
/// </summary>
public int? RemitStatus { get; set; }
}
}
using Mall.Common.AOP;
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.Product;
namespace Mall.Model.Extend.Product
{
/// <summary>
/// 商品订单介绍返佣表扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Goods_OrderIntroduction_Extend : RB_Goods_OrderIntroduction
{
/// <summary>
/// ids
/// </summary>
public string OrderIds { get; set; }
/// <summary>
/// 订单号
/// </summary>
public string OrderNo { get; set; }
/// <summary>
/// 用户名称
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string Name { get; set; }
/// <summary>
/// 手机号码
/// </summary>
public string Mobile { get; set; }
/// <summary>
/// 用户头像
/// </summary>
public string Photo { get; set; }
/// <summary>
/// 分销订单查询状态 0全部 1代付款 2已付款 3已完成
/// </summary>
public int? DistrbutionOrderSelectStatus { get; set; }
/// <summary>
/// 订单明细列表
/// </summary>
public List<RB_Goods_OrderDetail_Extend> OrderDetailList { get; set; }
/// <summary>
/// 待返佣金额
/// </summary>
public decimal WaitCommission { get; set; }
}
}
......@@ -3645,7 +3645,7 @@ namespace Mall.Module.Product
}
#region 分销商id+分销商等级
int OneUserId = 0, TwoUserId = 0, ThreeUserId = 0;
int OneDistributorGrade = 0, TwoDistributorGrade = 0, ThreeDistributorGrade = 0;
int OneDistributorGrade = -1, TwoDistributorGrade = -1, ThreeDistributorGrade = -1;
//获取多级 分销商id
if (basicModel != null && basicModel.DistributorTier > 0)
{
......@@ -3699,15 +3699,34 @@ namespace Mall.Module.Product
#endregion
if (OneUserId > 0)
{
OneDistributorGrade = distributor_InfoRepository.GetList(new RB_Distributor_Info_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId, UserId = OneUserId })?.FirstOrDefault()?.GradeId ?? 0;
var dis1Model = distributor_InfoRepository.GetList(new RB_Distributor_Info_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId, UserId = OneUserId, AuditStatus = DistributorAuditStatusEnum.Audited })?.FirstOrDefault();
if (dis1Model != null) {
OneDistributorGrade = dis1Model?.GradeId ?? 0;
}
else {
OneDistributorGrade = -1;//不是分销商
}
}
if (TwoUserId > 0)
if (TwoUserId > 0 && OneDistributorGrade >=0)
{
TwoDistributorGrade = distributor_InfoRepository.GetList(new RB_Distributor_Info_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId, UserId = TwoUserId })?.FirstOrDefault()?.GradeId ?? 0;
var dis2Model = distributor_InfoRepository.GetList(new RB_Distributor_Info_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId, UserId = TwoUserId, AuditStatus = DistributorAuditStatusEnum.Audited })?.FirstOrDefault();
if (dis2Model != null) {
TwoDistributorGrade = dis2Model?.GradeId ?? 0;
}
else {
TwoDistributorGrade = -1;
}
}
if (ThreeUserId > 0)
if (ThreeUserId > 0 && TwoDistributorGrade >=0)
{
ThreeDistributorGrade = distributor_InfoRepository.GetList(new RB_Distributor_Info_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId, UserId = ThreeUserId })?.FirstOrDefault()?.GradeId ?? 0;
var dis3Model = distributor_InfoRepository.GetList(new RB_Distributor_Info_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId, UserId = ThreeUserId, AuditStatus = DistributorAuditStatusEnum.Audited })?.FirstOrDefault();
if (dis3Model != null)
{
ThreeDistributorGrade = dis3Model?.GradeId ?? 0;
}
else {
ThreeDistributorGrade = -1;
}
}
#endregion
#region 分销商等级列表
......@@ -3802,7 +3821,10 @@ namespace Mall.Module.Product
Type = 1,
IsRemit = 0
};
gocList.Add(gocModel);
if (OneDistributorGrade != -1)
{
gocList.Add(gocModel);
}
break;
case 2:
if (TwoUserId > 0)
......@@ -3870,7 +3892,10 @@ namespace Mall.Module.Product
Type = 1,
IsRemit = 0
};
gocList.Add(gocModel);
if (TwoDistributorGrade != -1)
{
gocList.Add(gocModel);
}
}
break;
case 3:
......@@ -3952,7 +3977,10 @@ namespace Mall.Module.Product
Type = 1,
IsRemit = 0
};
gocList.Add(gocModel);
if (ThreeDistributorGrade != -1)
{
gocList.Add(gocModel);
}
}
break;
......
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.Product;
using Mall.Model.Extend.Product;
using System.Linq;
using Mall.Model.Entity.User;
using Mall.Common.Enum.Goods;
namespace Mall.Repository.Product
{
/// <summary>
/// 商品订单介绍返佣仓储层
/// </summary>
public class RB_Goods_OrderIntroductionRepository : RepositoryBase<RB_Goods_OrderIntroduction>
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_OrderIntroduction_Extend> GetList(RB_Goods_OrderIntroduction_Extend dmodel)
{
string where = $" 1=1 and oa.ReOrderId is null";
if (dmodel.TenantId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderIntroduction.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderIntroduction.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.OrderId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderIntroduction.OrderId)}={dmodel.OrderId}";
}
if (dmodel.UserId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderIntroduction.UserId)}={dmodel.UserId}";
}
if (!string.IsNullOrEmpty(dmodel.OrderIds))
{
where += $@" and oc.{nameof(RB_Goods_OrderIntroduction.OrderId)} in({dmodel.OrderIds})";
}
string sql = $@"SELECT oc.* FROM RB_Goods_OrderIntroduction oc
left join rb_goods_orderaftersale oa on oc.OrderDetailId= oa.OrderDetialId and oa.Type=1 and oa.Status=0 and oa.ReOrderStatus in (2,3,4,5)
where {where} order by oc.Id asc";
return Get<RB_Goods_OrderIntroduction_Extend>(sql).ToList();
}
/// <summary>
/// 获取用户返佣
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_OrderCommission_Extend> GetListGroupByUser(RB_Goods_OrderCommission_Extend dmodel)
{
string where = $" 1=1 and oa.ReOrderId is null";
if (dmodel.TenantId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.OrderId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.OrderId)}={dmodel.OrderId}";
}
if (dmodel.UserId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.UserId)}={dmodel.UserId}";
}
if (!string.IsNullOrEmpty(dmodel.OrderIds))
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.OrderId)} in({dmodel.OrderIds})";
}
string sql = $@"SELECT oc.OrderId,oc.UserId,oc.Grade,oc.Type,oc.CommissionState,SUM(oc.Commission) as Commission FROM RB_Goods_OrderCommission oc
left join rb_goods_orderaftersale oa on oc.OrderDetailId= oa.OrderDetialId and oa.Type=1 and oa.Status=0 and oa.ReOrderStatus in (2,3,4,5)
where {where} group by oc.OrderId,oc.UserId,oc.Grade,oc.Type order by oc.Grade asc";
return Get<RB_Goods_OrderCommission_Extend>(sql).ToList();
}
/// <summary>
/// 获取用户返佣
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_OrderCommission_Extend> GetListGroupByUser_V2(int pageIndex,int pageSize,out long count,RB_Goods_OrderCommission_Extend dmodel)
{
string where = $" 1=1 and o.Recycled=2 and oa.ReOrderId is null";
if (dmodel.TenantId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.OrderId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.OrderId)}={dmodel.OrderId}";
}
if (dmodel.UserId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.UserId)}={dmodel.UserId}";
}
if (!string.IsNullOrEmpty(dmodel.OrderIds))
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.OrderId)} in({dmodel.OrderIds})";
}
if (dmodel.DistrbutionOrderSelectStatus > 0)
{
switch (dmodel.DistrbutionOrderSelectStatus)
{
case 1: where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)}={(int)OrderStatusEnum.NonPayment}"; break;
case 2: where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)} in(2,3,4,6)"; break;
case 3: where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)}={(int)OrderStatusEnum.Completed}"; break;
}
}
else {
where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)} in(1,2,3,4,5,6)";
}
string sql = $@"SELECT oc.OrderId,o.OrderNo,o.UserId,oc.Type,oc.Grade,oc.CommissionState,o.OrderStatus as DistrbutionOrderSelectStatus,SUM(oc.Commission) as Commission
FROM RB_Goods_OrderCommission oc
inner join rb_goods_order o on oc.OrderId = o.OrderId
left join rb_goods_orderaftersale oa on oc.OrderDetailId= oa.OrderDetialId and oa.Type=1 and oa.Status=0 and oa.ReOrderStatus in (2,3,4,5)
where {where} group by oc.OrderId,o.OrderNo,oc.UserId,oc.Type,oc.Grade order by oc.OrderId desc";
return GetPage<RB_Goods_OrderCommission_Extend>(pageIndex, pageSize, out count, sql).ToList();
}
/// <summary>
/// 获取用户返佣
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_OrderCommission_Extend> GetListGroupByUser_V3(int pageIndex, int pageSize, out long count, RB_Goods_OrderCommission_Extend dmodel)
{
string where = $" 1=1 and o.Recycled=2 and oa.ReOrderId is null";
if (dmodel.TenantId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.OrderId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.OrderId)}={dmodel.OrderId}";
}
if (dmodel.UserId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.UserId)}={dmodel.UserId}";
}
if (!string.IsNullOrEmpty(dmodel.OrderIds))
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.OrderId)} in({dmodel.OrderIds})";
}
if (!string.IsNullOrEmpty(dmodel.OrderNo)) {
where += $@" and o.{nameof(RB_Goods_Order.OrderNo)}='{dmodel.OrderNo}'";
}
if (dmodel.CommissionState > 0)
{
switch (dmodel.CommissionState)
{
case 2: where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)}={(int)OrderStatusEnum.Completed}"; break;
case 1: where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)} in(1,2,3,4,6)"; break;
}
}
else{
where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)} in(1,2,3,4,5,6)";
}
string sql = $@"SELECT oc.OrderId,o.OrderNo,o.UserId,oc.Grade,oc.Type,oc.CommissionState,o.OrderStatus as DistrbutionOrderSelectStatus,SUM(oc.Commission) as Commission
FROM RB_Goods_OrderCommission oc
inner join rb_goods_order o on oc.OrderId = o.OrderId
left join rb_goods_orderaftersale oa on oc.OrderDetailId= oa.OrderDetialId and oa.Type=1 and oa.Status=0 and oa.ReOrderStatus in (2,3,4,5)
where {where} group by oc.OrderId,o.OrderNo,oc.UserId,oc.Grade order by oc.OrderId desc";
return GetPage<RB_Goods_OrderCommission_Extend>(pageIndex, pageSize, out count, sql).ToList();
}
/// <summary>
/// 订单返佣
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public decimal GetUserOrderCommissionStatistics(int userId)
{
string sql = $@"SELECT SUM(Commission) as Commission FROM rb_goods_ordercommission oc
INNER JOIN rb_goods_order o on oc.OrderId=o.OrderId
left join rb_goods_orderaftersale oa on oc.OrderDetailId= oa.OrderDetialId and oa.Type=1 and oa.Status=0 and oa.ReOrderStatus in (2,3,4,5)
WHERE oc.UserId={userId} and o.OrderStatus in (1,2,3,4,5,6) and o.Recycled=2 and oa.ReOrderId is null";
var obj = ExecuteScalar(sql);
if (obj != null) {
return Convert.ToDecimal(obj);
}
return 0;
}
/// <summary>
/// 用户未结算返佣
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public decimal GetUserOrderCommissionNoSettlement(int userId)
{
string sql = $@"SELECT SUM(Commission) as Commission FROM rb_goods_ordercommission oc
INNER JOIN rb_goods_order o on oc.OrderId=o.OrderId
left join rb_goods_orderaftersale oa on oc.OrderDetailId= oa.OrderDetialId and oa.Type=1 and oa.Status=0 and oa.ReOrderStatus in (2,3,4,5)
WHERE oc.UserId={userId} and oc.CommissionState=1 and o.OrderStatus in (1,2,3,4,5,6) and o.Recycled=2 and oa.ReOrderId is null";
var obj = ExecuteScalar(sql);
if (obj != null)
{
return Convert.ToDecimal(obj);
}
return 0;
}
}
}
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