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

提交代码

parent e0dda873
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Mall.Model.Entity.BaseSetUp
{
/// <summary>
/// 微店基础设置
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_MicroShop_Basics
{
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-开启
/// </summary>
public int IsOpen { get; set; }
/// <summary>
/// 是否需要审核1-未开启,2-开启
/// </summary>
public int IsExamine { get; set; }
/// <summary>
/// 申请条件 0-不限,1-普通分销商,2-粉象分销商
/// </summary>
public int ApplyCondition { get; set; }
/// <summary>
/// 申请等级 对应申请条件中的分销商等级 0-为不限
/// </summary>
public int ApplyMemberLevel { get; set; }
/// <summary>
/// 1-自定义区间价格百分比,2-固定价格
/// </summary>
public int PriceType { get; set; }
/// <summary>
/// 自定义区间价格百分比
/// </summary>
public decimal? CustomMinPriceRate { get; set; }
/// <summary>
/// 自定义区间价格百分比
/// </summary>
public decimal? CustomMaxPriceRate { get; set; }
/// <summary>
/// 固定价格
/// </summary>
public decimal? FixedPrice { get; set; }
/// <summary>
/// 结算方式 1-用户自提,2-系统自动现结(微信),3-转入余额
/// </summary>
public int SettlementType { get; set; }
/// <summary>
/// 最少提现
/// </summary>
public decimal? MinWithdrawal { get; set; }
/// <summary>
/// 提现上限
/// </summary>
public decimal? MaxWithdrawal { get; set; }
/// <summary>
/// 提现手续费
/// </summary>
public decimal? WithdrawalFree { get; set; }
/// <summary>
/// 申请协议
/// </summary>
public string ApplyAgreement { get; set; }
/// <summary>
/// 用户须知
/// </summary>
public string UserNotice { get; set; }
}
}
......@@ -120,6 +120,8 @@ namespace Mall.Model.Entity.Product
}
public int? IsRemit { get; set; }
}
/// <summary>
......
......@@ -167,6 +167,12 @@ namespace Mall.Model.Entity.Product
/// 成本价
/// </summary>
public decimal? CostMoney { get; set; }
/// <summary>
/// 已付成本价(已付商品成本+已付运费成本)
/// </summary>
public decimal? PaidCostMoney { get; set; }
/// <summary>
/// 是否评论 1是 2否
/// </summary>
......
using Mall.Model.Entity.Finance;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Extend.Finance
{
public class RB_Finance_RecordDetail_Extend: RB_Finance_RecordDetail
{
public decimal OrderDetailPaid { get; set; }
}
}
......@@ -17,6 +17,6 @@ namespace Mall.Model.Extend.Finance
/// <summary>
/// 详情
/// </summary>
public List<RB_Finance_RecordDetail> RecordDetailList { get; set; }
public List<RB_Finance_RecordDetail_Extend> RecordDetailList { get; set; }
}
}
......@@ -212,5 +212,11 @@ namespace Mall.Model.Extend.Product
/// </summary>
public string NewGoodsName { get; set; }
/// <summary>
/// 财务单据创建人
/// </summary>
public int FinanceCreateBy { get; set; }
}
}
......@@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Extend.Product;
namespace Mall.Model.Query
{
......@@ -14,6 +15,13 @@ namespace Mall.Model.Query
public class OrderStatistics_Query
{
public int Id { get; set; }
public int OrderId { get; set; }
/// <summary>
/// 订单商品已付成本(商品成本+运费成本)
/// </summary>
public decimal PaidCostMoney { get; set; }
public int TenantId { get; set; }
public int MallBaseId { get; set; }
......@@ -112,7 +120,10 @@ namespace Mall.Model.Query
/// </summary>
public string GeneralAgentName { get; set; }
/// <summary>
/// 粉象总返佣
/// </summary>
public decimal FXCommission { get; set; }
/// <summary>
/// 结算款
......@@ -192,7 +203,7 @@ namespace Mall.Model.Query
/// </summary>
public decimal Paid { get; set; }
/// <summary>
///
///
/// </summary>
public decimal NoPaid { get; set; }
......@@ -217,5 +228,25 @@ namespace Mall.Model.Query
/// 结束时间
/// </summary>
public string EndDate { get; set; }
/// <summary>
/// 0-普通,1-粉象
/// </summary>
public int IsFxCommission { get; set; }
/// <summary>
/// 订单返佣列表
/// </summary>
public List<RB_Goods_OrderCommission_Extend> OrderCommissionList { get; set; }
/// <summary>
/// 主要针对粉象查粉象返佣信息
/// </summary>
public int IsSelectOrderCommission { get; set; }
/// <summary>
/// 已提现返佣金额
/// </summary>
public decimal RemitFXCommission { get; set; }
}
}
......@@ -29,6 +29,8 @@ namespace Mall.Module.BaseSetUp
private RB_FreeShippingCategoryRepository freeShippingCategoryRepository = new RB_FreeShippingCategoryRepository();
private RB_FreeShippingRepository freeShippingRepository = new RB_FreeShippingRepository();
private RB_MicroShop_BasicsRepository microShopBasicsRepository = new RB_MicroShop_BasicsRepository();
#region 基础设置
/// <summary>
/// 获取小程序列表
......@@ -1232,5 +1234,49 @@ namespace Mall.Module.BaseSetUp
#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_MicroShop_Basics> GetMicroShopBasicsPageList(int pageIndex, int pageSize, out long rowCount, RB_MicroShop_Basics query)
{
return microShopBasicsRepository.GetMicroShopBasicsPageList(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_MicroShop_Basics> GetMicroShopBasicsList(RB_MicroShop_Basics query)
{
return microShopBasicsRepository.GetMicroShopBasicsList(query);
}
public bool AddOrUpdateMicroShopBasics(RB_MicroShop_Basics model)
{
if (model.ID == 0)
{
return microShopBasicsRepository.Insert(model) > 0;
}
else
{
return microShopBasicsRepository.Update(model);
}
}
#endregion
}
}
using Mall.Model.Extend.Product;
using Mall.Model.Extend.User;
using Mall.Model.Query;
using Mall.Repository.Product;
using Mall.Repository.User;
using NPOI.SS.Formula.Functions;
using System;
using System.Collections.Generic;
......@@ -12,6 +14,31 @@ namespace Mall.Module.MarketingCenter
public class StatisticsModule
{
private RB_Goods_OrderRepository orderRepository = new RB_Goods_OrderRepository();
/// <summary>
/// 返佣
/// </summary>
private readonly RB_Goods_OrderCommissionRepository goods_OrderCommissionRepository = new RB_Goods_OrderCommissionRepository();
/// <summary>
/// 会员
/// </summary>
private readonly RB_Member_UserRepository member_UserRepository = new RB_Member_UserRepository();
/// <summary>
/// 分销商
/// </summary>
private readonly RB_Distributor_InfoRepository distributor_InfoRepository = new RB_Distributor_InfoRepository();
/// <summary>
/// 和平等级
/// </summary>
private readonly RB_Distributor_HPGradeInfoRepository distributor_HPGradeInfoRepository = new RB_Distributor_HPGradeInfoRepository();
/// <summary>
/// 粉象返佣
/// </summary>
private readonly RB_Distributor_FXGradeRepository distributor_FXGradeRepository = new RB_Distributor_FXGradeRepository();
#region 数据统计-数据概况
......@@ -48,6 +75,154 @@ namespace Mall.Module.MarketingCenter
}
#region 粉象收益核算
public List<OrderStatistics_Query> GetFXOrderProfitLossList(int pageIndex, int pageSize, out long count, OrderStatistics_Query dmodel)
{
var list = orderRepository.GetFXOrderProfitLossList(pageIndex, pageSize, out count, dmodel);
return list;
}
public List<OrderStatistics_Query> GetFXAllOrderProfitLossList(OrderStatistics_Query dmodel)
{
var list = orderRepository.GetFXAllOrderProfitLossList(dmodel);
if (dmodel.IsSelectOrderCommission == 1)
{
if (list != null && list.Any())
{
//分销情况
var oclist = goods_OrderCommissionRepository.GetListGroupByUser(new RB_Goods_OrderCommission_Extend() { TenantId = dmodel.TenantId, MallBaseId = dmodel.MallBaseId, OrderIds = string.Join(",", list.Select(x => x.OrderId)) });
if (oclist.Any())
{
//获取用户
var ulist = member_UserRepository.GetList(new RB_Member_User_Extend() { TenantId = dmodel.TenantId, MallBaseId = dmodel.MallBaseId, UserIds = string.Join(",", oclist.Select(x => x.UserId).Distinct()) });
//获取分销商
var dislist = distributor_InfoRepository.GetList(new RB_Distributor_Info_Extend() { TenantId = dmodel.TenantId, MallBaseId = dmodel.MallBaseId, UserIds = string.Join(",", oclist.Select(x => x.UserId).Distinct()) });
var HpgradeList = new List<RB_Distributor_HPGradeInfo_Extend>();
if (oclist.Where(x => x.Type == 2).Any())
{
string gradeIds = string.Join(",", oclist.Where(x => x.Type == 2).Select(x => x.Grade).Distinct());
HpgradeList = distributor_HPGradeInfoRepository.GetList(new RB_Distributor_HPGradeInfo_Extend() { GradeIds = gradeIds, TenantId = dmodel.TenantId, MallBaseId = dmodel.MallBaseId }, true);
}
var FXGradeList = new List<RB_Distributor_FXGrade_Extend>();
if (oclist.Where(x => x.Type == 3).Any())
{
string gradeIds = string.Join(",", oclist.Where(x => x.Type == 3).Select(x => x.Grade).Distinct());
FXGradeList = distributor_FXGradeRepository.GetList(new RB_Distributor_FXGrade_Extend() { GradeIds = gradeIds, TenantId = dmodel.TenantId, MallBaseId = dmodel.MallBaseId });
}
foreach (var item in oclist)
{
var umodel = ulist.Where(x => x.Id == item.UserId).FirstOrDefault();
item.UserName = umodel?.Name ?? "";
item.Mobile = umodel?.Moblie ?? "";
item.Name = dislist.Where(x => x.UserId == item.UserId).FirstOrDefault()?.Name ?? "";
if (item.Type == 1)
{
if (item.Grade == 0)
{
item.GradeDescription = "自购返利";
}
else if (item.Grade == 1)
{
item.GradeDescription = "一级佣金";
}
else if (item.Grade == 2)
{
item.GradeDescription = "二级佣金";
}
else if (item.Grade == 3)
{
item.GradeDescription = "三级佣金";
}
}
else if (item.Type == 2)
{
var hpGModel = HpgradeList.Where(x => x.Id == item.Grade).FirstOrDefault();
item.GradeDescription = hpGModel?.GradeName ?? "暂无等级";
}
else if (item.Type == 3)
{
var fxGModel = FXGradeList.Where(x => x.Id == item.Grade).FirstOrDefault();
item.GradeDescription = fxGModel?.GradeName ?? "暂无等级";
}
}
}
foreach (var item in list)
{
item.OrderCommissionList = oclist.Where(x => x.OrderDetailId == item.Id).ToList();
}
}
}
return list;
}
public List<RB_Goods_OrderCommission_Extend> GetByOrderDetailId(RB_Goods_OrderCommission_Extend model)
{
//分销情况
var oclist = goods_OrderCommissionRepository.GetListGroupByUser(model);
if (oclist.Any())
{
//获取用户
var ulist = member_UserRepository.GetList(new RB_Member_User_Extend() { TenantId = model.TenantId, MallBaseId = model.MallBaseId, UserIds = string.Join(",", oclist.Select(x => x.UserId).Distinct()) });
//获取分销商
var dislist = distributor_InfoRepository.GetList(new RB_Distributor_Info_Extend() { TenantId = model.TenantId, MallBaseId = model.MallBaseId, UserIds = string.Join(",", oclist.Select(x => x.UserId).Distinct()) });
var HpgradeList = new List<RB_Distributor_HPGradeInfo_Extend>();
if (oclist.Where(x => x.Type == 2).Any())
{
string gradeIds = string.Join(",", oclist.Where(x => x.Type == 2).Select(x => x.Grade).Distinct());
HpgradeList = distributor_HPGradeInfoRepository.GetList(new RB_Distributor_HPGradeInfo_Extend() { GradeIds = gradeIds, TenantId = model.TenantId, MallBaseId = model.MallBaseId }, true);
}
var FXGradeList = new List<RB_Distributor_FXGrade_Extend>();
if (oclist.Where(x => x.Type == 3).Any())
{
string gradeIds = string.Join(",", oclist.Where(x => x.Type == 3).Select(x => x.Grade).Distinct());
FXGradeList = distributor_FXGradeRepository.GetList(new RB_Distributor_FXGrade_Extend() { GradeIds = gradeIds, TenantId = model.TenantId, MallBaseId = model.MallBaseId });
}
foreach (var item in oclist)
{
var umodel = ulist.Where(x => x.Id == item.UserId).FirstOrDefault();
item.UserName = umodel?.Name ?? "";
item.Mobile = umodel?.Moblie ?? "";
item.Name = dislist.Where(x => x.UserId == item.UserId).FirstOrDefault()?.Name ?? "";
if (item.Type == 1)
{
if (item.Grade == 0)
{
item.GradeDescription = "自购返利";
}
else if (item.Grade == 1)
{
item.GradeDescription = "一级佣金";
}
else if (item.Grade == 2)
{
item.GradeDescription = "二级佣金";
}
else if (item.Grade == 3)
{
item.GradeDescription = "三级佣金";
}
}
else if (item.Type == 2)
{
var hpGModel = HpgradeList.Where(x => x.Id == item.Grade).FirstOrDefault();
item.GradeDescription = hpGModel?.GradeName ?? "暂无等级";
}
else if (item.Type == 3)
{
var fxGModel = FXGradeList.Where(x => x.Id == item.Grade).FirstOrDefault();
item.GradeDescription = fxGModel?.GradeName ?? "暂无等级";
}
}
}
return oclist;
}
#endregion
/// <summary>
/// 获取近一周的数据
/// </summary>
......
......@@ -258,7 +258,8 @@ namespace Mall.Module.Finance
{
Dictionary<string, object> keyValues = new Dictionary<string, object>()
{
{ nameof(RB_Goods_OrderDetail.CostFinanceId),model.FinanceId}
{ nameof(RB_Goods_OrderDetail.CostFinanceId),model.FinanceId},
{ nameof(RB_Goods_OrderDetail.PaidCostMoney),item.OrderDetailPaid}
};
List<WhereHelper> whereHelpers = new List<WhereHelper>() { new WhereHelper()
{
......
using Mall.Model.Entity.BaseSetUp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Mall.Repository.BaseSetUp
{
/// <summary>
/// 微店基础设置仓储层
/// </summary>
public class RB_MicroShop_BasicsRepository : BaseRepository<RB_MicroShop_Basics>
{
/// <summary>
/// 表名称
/// </summary>
public string TableName { get { return nameof(RB_MicroShop_Basics); } }
/// <summary>
/// 微店基础配置
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页显示条数</param>
/// <param name="rowCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public List<RB_MicroShop_Basics> GetMicroShopBasicsPageList(int pageIndex, int pageSize, out long rowCount, RB_MicroShop_Basics query)
{
StringBuilder builder = new StringBuilder();
builder.Append($" SELECT * FROM {TableName} WHERE {nameof(RB_MicroShop_Basics.Status)}=0");
if (query != null)
{
// where += $@" and {nameof(RB_Customer_InfoCreate.CustomerId)}={dmodel.CustomerId}";
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_MicroShop_Basics.TenantId)}={query.TenantId}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_MicroShop_Basics.MallBaseId)}={query.MallBaseId}");
}
}
return GetPage<RB_MicroShop_Basics>(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_MicroShop_Basics> GetMicroShopBasicsList(RB_MicroShop_Basics query)
{
StringBuilder builder = new StringBuilder();
builder.Append($" SELECT * FROM {TableName} WHERE {nameof(RB_MicroShop_Basics.Status)}=0 ");
if (query != null)
{
if (query.ID > 0)
{
builder.Append($" AND {nameof(RB_MicroShop_Basics.ID)}={query.ID}");
}
if (query.TenantId > 0)
{
builder.Append($" AND {nameof(RB_MicroShop_Basics.TenantId)}={query.TenantId}");
}
if (query.MallBaseId > 0)
{
builder.Append($" AND {nameof(RB_MicroShop_Basics.MallBaseId)}={query.MallBaseId}");
}
}
return Get<RB_MicroShop_Basics>(builder.ToString()).ToList();
}
}
}
using Mall.Model.Entity.Finance;
using Mall.Model.Extend.Finance;
using System;
using System.Collections.Generic;
using System.Linq;
......@@ -44,7 +45,7 @@ namespace Mall.Repository.Finance
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Finance_RecordDetail> GetListByOrderIds(string orderIds, RB_Finance_RecordDetail dmodel)
public List<RB_Finance_RecordDetail_Extend> GetListByOrderIds(string orderIds, RB_Finance_RecordDetail_Extend dmodel)
{
string where = $" where 1=1 ";
if (dmodel.TenantId > 0)
......@@ -65,7 +66,7 @@ namespace Mall.Repository.Finance
where += $@" and {nameof(RB_Finance_RecordDetail.OrderId)} in ({orderIds})";
}
string sql = $@"SELECT * FROM {TableName} {where} order by Id asc";
return Get<RB_Finance_RecordDetail>(sql).ToList();
return Get<RB_Finance_RecordDetail_Extend>(sql).ToList();
}
}
}
......@@ -74,6 +74,10 @@ where {where} order by oc.Id asc";
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.UserId)}={dmodel.UserId}";
}
if (dmodel.OrderDetailId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.OrderDetailId)}={dmodel.OrderDetailId}";
}
if (!string.IsNullOrEmpty(dmodel.OrderIds))
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.OrderId)} in({dmodel.OrderIds})";
......
......@@ -104,7 +104,8 @@ namespace Mall.Repository.Product
{
where += $@" and od.{nameof(RB_Goods_OrderDetail.ProductCode)} like '%{dmodel.ProductCode}%'";
}
if (!string.IsNullOrEmpty(dmodel.AnchorName)) {
if (!string.IsNullOrEmpty(dmodel.AnchorName))
{
where += $@" and o.{nameof(RB_Goods_Order.AnchorName)} like '%{dmodel.AnchorName}%'";
}
if (dmodel.Recycled > 0)
......@@ -329,7 +330,7 @@ where {where} order by o.CreateDate desc";
{
where += $@" and o.{nameof(RB_Goods_Order.Recycled)}={(int)dmodel.Recycled}";
}
if (dmodel.DistributionUserId > 0)
if (dmodel.DistributionUserId > 0)
{
where += $@" and oc.{nameof(RB_Goods_OrderCommission.UserId)}={dmodel.DistributionUserId}";
}
......@@ -830,7 +831,7 @@ LEFT JOIN rb_member_user as c on b.UserId=c.Id
{
where += $@" and a.{nameof(RB_Goods_OrderAfterSale.ReOrderStatus)} =5";
}
if (!string.IsNullOrWhiteSpace(dmodel.StartDate))
{
......@@ -860,7 +861,7 @@ LEFT JOIN (SELECT COUNT(DISTINCT UserId) as PayMemerNum, DATE_FORMAT(CreateDate,
as c on c.CreateDate=DATE_FORMAT(a.CreateDate,'%Y-%m-%d' ) {where} )
as t GROUP BY t.CreateDate desc";
}
else
else
{
sql = $@"SELECT t.CreateDate,SUM(t.ReNumber)as GoodsNum ,COUNT(t.ReOrderId)as OrderNum ,SUM(t.Income)as PayMoney,MAX(t.PayMemerNum) as PayMemerNum
from (SELECT DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )as CreateDate,a.ReNumber,a.Refund as Income,c.PayMemerNum,a.ReOrderId from RB_Goods_OrderAfterSale as a
......@@ -868,22 +869,22 @@ LEFT JOIN (SELECT COUNT(DISTINCT UserId) as PayMemerNum, DATE_FORMAT(CreateDate,
as c on c.CreateDate=DATE_FORMAT(a.CreateDate,'%Y-%m-%d' ) {where} )
as t GROUP BY t.CreateDate desc";
}
// else if (dmodel.OrderStatus == 4)
// {
// sql = $@"SELECT t.CreateDate,SUM(t.ReNumber)as GoodsNum ,COUNT(t.ReOrderId)as OrderNum ,SUM(t.Income)as PayMoney,MAX(t.PayMemerNum) as PayMemerNum
//from (SELECT DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )as CreateDate,a.ReNumber,a.Refund as Income,c.PayMemerNum,a.ReOrderId from RB_Goods_OrderAfterSale as a
//LEFT JOIN (SELECT COUNT(DISTINCT UserId) as PayMemerNum, DATE_FORMAT(CreateDate,'%Y-%m-%d' ) as CreateDate from RB_Goods_OrderAfterSale where {payMemerNumWhere} GROUP BY DATE_FORMAT(CreateDate,'%Y-%m-%d' ))
//as c on c.CreateDate=DATE_FORMAT(a.CreateDate,'%Y-%m-%d' ) {where} )
//as t GROUP BY t.CreateDate desc";
// }
// else if (dmodel.OrderStatus == 5)
// {
// sql = $@"SELECT t.CreateDate,SUM(t.ReNumber)as GoodsNum ,COUNT(t.ReOrderId)as OrderNum ,SUM(t.Income)as PayMoney,MAX(t.PayMemerNum) as PayMemerNum
//from (SELECT DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )as CreateDate,a.ReNumber,a.RefundActual as Income,c.PayMemerNum,a.ReOrderId from RB_Goods_OrderAfterSale as a
//LEFT JOIN (SELECT COUNT(DISTINCT UserId) as PayMemerNum, DATE_FORMAT(CreateDate,'%Y-%m-%d' ) as CreateDate from RB_Goods_OrderAfterSale where {payMemerNumWhere} GROUP BY DATE_FORMAT(CreateDate,'%Y-%m-%d' ))
//as c on c.CreateDate=DATE_FORMAT(a.CreateDate,'%Y-%m-%d' ) {where} )
//as t GROUP BY t.CreateDate desc";
// }
// else if (dmodel.OrderStatus == 4)
// {
// sql = $@"SELECT t.CreateDate,SUM(t.ReNumber)as GoodsNum ,COUNT(t.ReOrderId)as OrderNum ,SUM(t.Income)as PayMoney,MAX(t.PayMemerNum) as PayMemerNum
//from (SELECT DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )as CreateDate,a.ReNumber,a.Refund as Income,c.PayMemerNum,a.ReOrderId from RB_Goods_OrderAfterSale as a
//LEFT JOIN (SELECT COUNT(DISTINCT UserId) as PayMemerNum, DATE_FORMAT(CreateDate,'%Y-%m-%d' ) as CreateDate from RB_Goods_OrderAfterSale where {payMemerNumWhere} GROUP BY DATE_FORMAT(CreateDate,'%Y-%m-%d' ))
//as c on c.CreateDate=DATE_FORMAT(a.CreateDate,'%Y-%m-%d' ) {where} )
//as t GROUP BY t.CreateDate desc";
// }
// else if (dmodel.OrderStatus == 5)
// {
// sql = $@"SELECT t.CreateDate,SUM(t.ReNumber)as GoodsNum ,COUNT(t.ReOrderId)as OrderNum ,SUM(t.Income)as PayMoney,MAX(t.PayMemerNum) as PayMemerNum
//from (SELECT DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )as CreateDate,a.ReNumber,a.RefundActual as Income,c.PayMemerNum,a.ReOrderId from RB_Goods_OrderAfterSale as a
//LEFT JOIN (SELECT COUNT(DISTINCT UserId) as PayMemerNum, DATE_FORMAT(CreateDate,'%Y-%m-%d' ) as CreateDate from RB_Goods_OrderAfterSale where {payMemerNumWhere} GROUP BY DATE_FORMAT(CreateDate,'%Y-%m-%d' ))
//as c on c.CreateDate=DATE_FORMAT(a.CreateDate,'%Y-%m-%d' ) {where} )
//as t GROUP BY t.CreateDate desc";
// }
return GetPage<DataStatistics_Query>(pageIndex, pageSize, out count, sql).ToList();
}
......@@ -897,254 +898,395 @@ as t GROUP BY t.CreateDate desc";
/// <param name="dmodel"></param>
/// <returns></returns>
public List<DataStatistics_Query> GetSellExcel(DataStatistics_Query dmodel)
{
string where = $" where 1=1 ";
string payMemerNumWhere = "";
string orderTypeWhere = "";
if (dmodel.TenantId > 0)
{
where += $@" and a.{nameof(RB_Goods_Order.TenantId)}={dmodel.TenantId}";
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and a.{nameof(RB_Goods_Order.MallBaseId)}={dmodel.MallBaseId}";
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.PlatformType > 0)
{
where += $@" and a.{nameof(RB_Goods_Order.OrderSource)}={(int)dmodel.PlatformType}";
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.OrderSource)}={(int)dmodel.PlatformType}";
}
if (dmodel.OrderType > 0)
{
orderTypeWhere += $@" and {nameof(RB_Goods_OrderDetail.OrderType)}={dmodel.OrderType}";
}
if (dmodel.OrderStatus > 0)
{
if (dmodel.OrderStatus == 1)
{
where += $@" and a.{nameof(RB_Goods_Order.OrderStatus)} in(1,2,4,3)";
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.OrderStatus)}in(1,2,4,3)";
}
else if (dmodel.OrderStatus == 2)
{
where += $@" and a.{nameof(RB_Goods_Order.OrderStatus)}=5";
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.OrderStatus)}=5";
}
else if (dmodel.OrderStatus == 3)
{
where += $@" and a.{nameof(RB_Goods_Order.OrderStatus)}=7";
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.OrderStatus)}=7";
}
else if (dmodel.OrderStatus == 4)//后面做因为现在还没有售后表
{
}
else if (dmodel.OrderStatus == 5)//后面做因为现在还没有售后表
{
string where = $" where 1=1 ";
string payMemerNumWhere = "";
string orderTypeWhere = "";
if (dmodel.TenantId > 0)
{
where += $@" and a.{nameof(RB_Goods_Order.TenantId)}={dmodel.TenantId}";
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and a.{nameof(RB_Goods_Order.MallBaseId)}={dmodel.MallBaseId}";
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.PlatformType > 0)
{
where += $@" and a.{nameof(RB_Goods_Order.OrderSource)}={(int)dmodel.PlatformType}";
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.OrderSource)}={(int)dmodel.PlatformType}";
}
}
}
if (!string.IsNullOrWhiteSpace(dmodel.StartDate))
{
where += $" AND DATE_FORMAT(a.{nameof(RB_Goods_Order.CreateDate)},'%Y-%m-%d' )>= DATE_FORMAT('{dmodel.StartDate}','%Y-%m-%d' )";
payMemerNumWhere += $" AND DATE_FORMAT({nameof(RB_Goods_Order.CreateDate)},'%Y-%m-%d' )>= DATE_FORMAT('{dmodel.StartDate}','%Y-%m-%d' )";
}
if (!string.IsNullOrWhiteSpace(dmodel.EndDate))
{
where += $" AND DATE_FORMAT(a.{nameof(RB_Goods_Order.CreateDate)},'%Y-%m-%d' )<= DATE_FORMAT('{dmodel.EndDate}','%Y-%m-%d' )";
payMemerNumWhere += $" AND DATE_FORMAT({nameof(RB_Goods_Order.CreateDate)},'%Y-%m-%d' )<= DATE_FORMAT('{dmodel.EndDate}','%Y-%m-%d' )";
}
if (dmodel.OrderType > 0)
{
orderTypeWhere += $@" and {nameof(RB_Goods_OrderDetail.OrderType)}={dmodel.OrderType}";
}
if (dmodel.OrderStatus > 0)
{
if (dmodel.OrderStatus == 1)
{
where += $@" and a.{nameof(RB_Goods_Order.OrderStatus)} in(1,2,4,3)";
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.OrderStatus)}in(1,2,4,3)";
}
else if (dmodel.OrderStatus == 2)
{
where += $@" and a.{nameof(RB_Goods_Order.OrderStatus)}=5";
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.OrderStatus)}=5";
}
else if (dmodel.OrderStatus == 3)
{
where += $@" and a.{nameof(RB_Goods_Order.OrderStatus)}=7";
payMemerNumWhere += $@" and {nameof(RB_Goods_Order.OrderStatus)}=7";
}
else if (dmodel.OrderStatus == 4)//后面做因为现在还没有售后表
{
}
else if (dmodel.OrderStatus == 5)//后面做因为现在还没有售后表
{
}
}
if (!string.IsNullOrWhiteSpace(dmodel.StartDate))
{
where += $" AND DATE_FORMAT(a.{nameof(RB_Goods_Order.CreateDate)},'%Y-%m-%d' )>= DATE_FORMAT('{dmodel.StartDate}','%Y-%m-%d' )";
payMemerNumWhere += $" AND DATE_FORMAT({nameof(RB_Goods_Order.CreateDate)},'%Y-%m-%d' )>= DATE_FORMAT('{dmodel.StartDate}','%Y-%m-%d' )";
}
if (!string.IsNullOrWhiteSpace(dmodel.EndDate))
{
where += $" AND DATE_FORMAT(a.{nameof(RB_Goods_Order.CreateDate)},'%Y-%m-%d' )<= DATE_FORMAT('{dmodel.EndDate}','%Y-%m-%d' )";
payMemerNumWhere += $" AND DATE_FORMAT({nameof(RB_Goods_Order.CreateDate)},'%Y-%m-%d' )<= DATE_FORMAT('{dmodel.EndDate}','%Y-%m-%d' )";
}
string sql = $@"SELECT t.CreateDate,SUM(t.GoodsNum)as GoodsNum ,COUNT(t.OrderId)as OrderNum ,SUM(t.Income)as PayMoney,
string sql = $@"SELECT t.CreateDate,SUM(t.GoodsNum)as GoodsNum ,COUNT(t.OrderId)as OrderNum ,SUM(t.Income)as PayMoney,
(SELECT COUNT(UserId) from rb_goods_order where DATE_FORMAT(CreateDate,'%Y-%m-%d' )=t.CreateDate {payMemerNumWhere} GROUP BY UserId) as PayMemerNum
from (SELECT DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )as CreateDate,b.GoodsNum,a.UserId,a.Income,a.OrderId from rb_goods_order as a
LEFT JOIN (SELECT OrderId,SUM(Number)as GoodsNum from rb_goods_orderdetail where 1=1 {orderTypeWhere} GROUP BY OrderId)as b on a.OrderId=b.OrderId {where})
as t GROUP BY t.CreateDate desc";
return Get<DataStatistics_Query>(sql).ToList();
}
#endregion
#region 损益核算表
public List<OrderStatistics_Query> GetOrderProfitLossList(int pageIndex, int pageSize, out long count, OrderStatistics_Query dmodel)
{
string where = "where 1=1 and a.OrderStatus in(2,3,4,5,6) ";
if (dmodel != null)
{
if (!string.IsNullOrWhiteSpace(dmodel.OrderNo))
{
where += $" and a.OrderNo like'%{dmodel.OrderNo}%'";
return Get<DataStatistics_Query>(sql).ToList();
}
#endregion
if (dmodel.SupplierId > 0)
{
where += $" and b.SupplierId={dmodel.SupplierId} ";
}
if (dmodel.OneUserId > 0)
#region 损益核算表
public List<OrderStatistics_Query> GetOrderProfitLossList(int pageIndex, int pageSize, out long count, OrderStatistics_Query dmodel)
{
where += $" and c.OneUserId={dmodel.OneUserId} and d.TwoUserId={dmodel.OneUserId} ";
}
if (dmodel.GoodsID > 0)
{
where += $" and b.GoodsId={dmodel.GoodsID} ";
string where = "where 1=1 and a.OrderStatus in(2,3,4,5,6) ";
if (dmodel != null)
{
if (!string.IsNullOrWhiteSpace(dmodel.OrderNo))
{
where += $" and a.OrderNo like'%{dmodel.OrderNo}%'";
}
if (dmodel.SupplierId > 0)
{
where += $" and b.SupplierId={dmodel.SupplierId} ";
}
if (dmodel.OneUserId > 0)
{
where += $" and c.OneUserId={dmodel.OneUserId} and d.TwoUserId={dmodel.OneUserId} ";
}
if (dmodel.GoodsID > 0)
{
where += $" and b.GoodsId={dmodel.GoodsID} ";
}
if (!string.IsNullOrWhiteSpace(dmodel.StartDate))
{
where += $" and DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )>=DATE_FORMAT('{dmodel.StartDate}','%Y-%m-%d' ) ";
}
if (!string.IsNullOrWhiteSpace(dmodel.EndDate))
{
where += $" and DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )< DATE_FORMAT('{dmodel.EndDate}','%Y-%m-%d' ) ";
}
}
string sql = $@" SELECT MAX( a.OrderNo) as OrderNo,MAX(b.GoodsName) as GoodsName,b.Specification,MAX(b.Unit_Price) as Unit_Price,SUM(b.Number) as Number,f.`Name` as SupplierName,
SUM(b.Final_Price) as Final_Price,SUM(b.FreightMoney) as FreightMoney,SUM(b.Final_Price+b.FreightMoney) as AllPrice ,
SUM(IFNULL(b.CostMoney,0)*b.Number) as CostMoney,0 as PackingMoney, 0 as CostFreight,0 as GoodsFreight,
c.OneCommission,c.OneUserId,c.OneUserName,d.TwoCommission,d.TwoUserId,d.TwoUserName,0 as OtherPrice,e.FXCommission,0 as Paid
from rb_goods_orderdetail as b
LEFT JOIN rb_goods_order as A on a.OrderId=b.OrderId
LEFT JOIN rb_supplier as f on f.ID=b.SupplierId
LEFT JOIN (SELECT SUM(goc.Commission) as OneCommission,goc.OrderDetailId,goc.UserId as OneUserId,mu.`Name` as OneUserName from rb_goods_ordercommission as goc LEFT JOIN rb_member_user as mu on goc.UserId=mu.Id where goc.Grade=1 and goc.CommissionState=2 GROUP BY goc.OrderDetailId ) as c on b.Id=c.OrderDetailId
LEFT JOIN (SELECT SUM(goc.Commission) as TwoCommission,goc.OrderDetailId,goc.UserId as TwoUserId,mu.`Name` as TwoUserName from rb_goods_ordercommission as goc LEFT JOIN rb_member_user as mu on goc.UserId=mu.Id where goc.Grade=2 and goc.CommissionState=2 GROUP BY goc.OrderDetailId ) as d on b.Id=d.OrderDetailId
LEFT JOIN (SELECT SUM(Commission) as FXCommission,OrderDetailId from rb_goods_ordercommission GROUP BY OrderId ) as e on b.Id=e.OrderDetailId {where}
GROUP BY b.GoodsId,b.SupplierId,b.OrderId ";
return GetPage<OrderStatistics_Query>(pageIndex, pageSize, out count, sql).ToList();
}
if (!string.IsNullOrWhiteSpace(dmodel.StartDate))
{
where += $" and DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )>=DATE_FORMAT('{dmodel.StartDate}','%Y-%m-%d' ) ";
}
if (!string.IsNullOrWhiteSpace(dmodel.EndDate))
public List<OrderStatistics_Query> GetAllOrderProfitLossList(OrderStatistics_Query dmodel)
{
where += $" and DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )< DATE_FORMAT('{dmodel.EndDate}','%Y-%m-%d' ) ";
}
string where = "where 1=1 and a.OrderStatus in(2,3,4,5,6) ";
}
string sql = $@" SELECT MAX( a.OrderNo) as OrderNo,MAX(b.GoodsName) as GoodsName,b.Specification,MAX(b.Unit_Price) as Unit_Price,SUM(b.Number) as Number,f.`Name` as SupplierName,
if (dmodel != null)
{
if (!string.IsNullOrWhiteSpace(dmodel.OrderNo))
{
where += $" and a.OrderNo like'%{dmodel.OrderNo}%'";
}
if (dmodel.SupplierId > 0)
{
where += $" and b.SupplierId={dmodel.SupplierId} ";
}
if (dmodel.OneUserId > 0)
{
where += $" and c.OneUserId={dmodel.OneUserId} and d.TwoUserId={dmodel.OneUserId} ";
}
if (dmodel.GoodsID > 0)
{
where += $" and b.GoodsId={dmodel.GoodsID} ";
}
if (!string.IsNullOrWhiteSpace(dmodel.StartDate))
{
where += $" and DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )>=DATE_FORMAT('{dmodel.StartDate}','%Y-%m-%d' ) ";
}
if (!string.IsNullOrWhiteSpace(dmodel.EndDate))
{
where += $" and DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )< DATE_FORMAT('{dmodel.EndDate}','%Y-%m-%d' ) ";
}
}
string sql = $@" SELECT MAX( a.OrderNo) as OrderNo,MAX(b.GoodsName) as GoodsName,b.Specification,MAX(b.Unit_Price) as Unit_Price,SUM(b.Number) as Number,f.`Name` as SupplierName,
SUM(b.Final_Price) as Final_Price,SUM(b.FreightMoney) as FreightMoney,SUM(b.Final_Price+b.FreightMoney) as AllPrice ,
SUM(IFNULL(b.CostMoney,0)*b.Number) as CostMoney,0 as PackingMoney, 0 as CostFreight,0 as GoodsFreight,
c.OneCommission,c.OneUserId,c.OneUserName,d.TwoCommission,d.TwoUserId,d.TwoUserName,0 as OtherPrice,e.ALLCommission,0 as Paid
c.OneCommission,c.OneUserId,c.OneUserName,d.TwoCommission,d.TwoUserId,d.TwoUserName,0 as OtherPrice,e.FXCommission,0 as Paid
from rb_goods_orderdetail as b
LEFT JOIN rb_goods_order as A on a.OrderId=b.OrderId
LEFT JOIN rb_supplier as f on f.ID=b.SupplierId
LEFT JOIN (SELECT SUM(goc.Commission) as OneCommission,goc.OrderDetailId,goc.UserId as OneUserId,mu.`Name` as OneUserName from rb_goods_ordercommission as goc LEFT JOIN rb_member_user as mu on goc.UserId=mu.Id where goc.Grade=1 and goc.CommissionState=2 GROUP BY goc.OrderDetailId ) as c on b.Id=c.OrderDetailId
LEFT JOIN (SELECT SUM(goc.Commission) as TwoCommission,goc.OrderDetailId,goc.UserId as TwoUserId,mu.`Name` as TwoUserName from rb_goods_ordercommission as goc LEFT JOIN rb_member_user as mu on goc.UserId=mu.Id where goc.Grade=2 and goc.CommissionState=2 GROUP BY goc.OrderDetailId ) as d on b.Id=d.OrderDetailId
LEFT JOIN (SELECT SUM(Commission) as ALLCommission,OrderDetailId from rb_goods_ordercommission GROUP BY OrderId ) as e on b.Id=e.OrderDetailId {where}
LEFT JOIN (SELECT SUM(Commission) as FXCommission,OrderDetailId from rb_goods_ordercommission GROUP BY OrderId ) as e on b.Id=e.OrderDetailId {where}
GROUP BY b.GoodsId,b.SupplierId,b.OrderId ";
return GetPage<OrderStatistics_Query>(pageIndex, pageSize, out count, sql).ToList();
}
// string sql = $@" SELECT MAX( a.OrderNo) as OrderNo,MAX(b.GoodsName) as GoodsName,b.Specification,MAX(b.Unit_Price) as Unit_Price,SUM(b.Number) as Number,f.`Name` as SupplierName,
//SUM(b.Final_Price) as Final_Price,SUM(b.FreightMoney) as FreightMoney,SUM(b.Final_Price+b.FreightMoney) as AllPrice ,
//SUM(IFNULL(b.CostMoney,0)*b.Number) as CostMoney,0 as PackingMoney, 0 as CostFreight,0 as GoodsFreight,
//c.OneCommission,d.TwoCommission,0 as OtherPrice,e.ALLCommission,0 as Paid
//from rb_goods_orderdetail as b
//LEFT JOIN rb_goods_order as A on a.OrderId=b.OrderId
//LEFT JOIN rb_supplier as f on f.ID=b.SupplierId
//LEFT JOIN (SELECT SUM(Commission) as OneCommission,OrderId from rb_goods_ordercommission where Grade=1 and CommissionState=2 GROUP BY OrderId ) as c on a.OrderId=c.OrderId
//LEFT JOIN (SELECT SUM(Commission) as TwoCommission,OrderId from rb_goods_ordercommission where Grade=2 and CommissionState=2 GROUP BY OrderId ) as d on a.OrderId=d.OrderId
//LEFT JOIN (SELECT SUM(Commission) as ALLCommission,OrderId from rb_goods_ordercommission GROUP BY OrderId ) as e on a.OrderId=e.OrderId {where}
//GROUP BY b.GoodsId,b.SupplierId,b.OrderId ";
return Get<OrderStatistics_Query>(sql).ToList();
}
public List<OrderStatistics_Query> GetAllOrderProfitLossList(OrderStatistics_Query dmodel)
{
string where = "where 1=1 and a.OrderStatus in(2,3,4,5,6) ";
if (dmodel != null)
{
if (!string.IsNullOrWhiteSpace(dmodel.OrderNo))
/// <summary>
/// 获取用户 订单下的商品数量
/// </summary>
/// <param name="userId"></param>
/// <param name="limitGoodsIds"></param>
/// <returns></returns>
public List<RB_Goods_Order_Extend> GetUserOrderGoodsNum(int userId, string limitGoodsIds, int tenantId, int mallBaseId)
{
where += $" and a.OrderNo like'%{dmodel.OrderNo}%'";
}
string sql = $@"SELECT od.GoodsId,SUM(od.Number) as GoodsTotalNum FROM rb_goods_orderdetail od
INNER JOIN rb_goods_order o on od.OrderId=o.OrderId
WHERE od.TenantId={tenantId} and od.MallBaseId={mallBaseId} and o.`Status`=0 and o.OrderStatus in (1,2,3,4,5,6) and o.Recycled=2 AND o.UserId={userId} and od.GoodsId in ({limitGoodsIds})
GROUP BY od.GoodsId";
if (dmodel.SupplierId > 0)
{
where += $" and b.SupplierId={dmodel.SupplierId} ";
}
if (dmodel.OneUserId > 0)
{
where += $" and c.OneUserId={dmodel.OneUserId} and d.TwoUserId={dmodel.OneUserId} ";
return Get<RB_Goods_Order_Extend>(sql).ToList();
}
if (dmodel.GoodsID > 0)
/// <summary>
/// 获取用户 商品订单得数量
/// </summary>
/// <param name="userId"></param>
/// <param name="limitGoodsIds"></param>
/// <param name="tenantId"></param>
/// <param name="mallBaseId"></param>
/// <returns></returns>
public List<RB_Goods_Order_Extend> GetUserOrderNum(int userId, string limitGoodsIds, int tenantId, int mallBaseId)
{
where += $" and b.GoodsId={dmodel.GoodsID} ";
string sql = $@"SELECT t.GoodsId,COUNT(0) as OrderNum FROM(
SELECT od.GoodsId,o.* FROM rb_goods_orderdetail od
INNER JOIN rb_goods_order o on od.OrderId=o.OrderId
WHERE od.TenantId={tenantId} and od.MallBaseId={mallBaseId} and o.`Status`=0 and o.OrderStatus in (1,2,3,4,5,6) and o.Recycled=2 AND o.UserId={userId} and od.GoodsId in ({limitGoodsIds})
GROUP BY od.GoodsId,o.OrderId
)t GROUP BY t.GoodsId";
return Get<RB_Goods_Order_Extend>(sql).ToList();
}
#endregion
if (!string.IsNullOrWhiteSpace(dmodel.StartDate))
#region 粉象收益核算表
public List<OrderStatistics_Query> GetFXOrderProfitLossList(int pageIndex, int pageSize, out long count, OrderStatistics_Query dmodel)
{
where += $" and DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )>=DATE_FORMAT('{dmodel.StartDate}','%Y-%m-%d' ) ";
string where = "where 1=1 and a.OrderStatus in(2,3,4,5,6) ";
if (dmodel != null)
{
if (!string.IsNullOrWhiteSpace(dmodel.OrderNo))
{
where += $" and a.OrderNo like'%{dmodel.OrderNo}%'";
}
if (dmodel.SupplierId > 0)
{
where += $" and b.SupplierId={dmodel.SupplierId} ";
}
if (dmodel.OneUserId > 0)
{
where += $" and c.OneUserId={dmodel.OneUserId} and d.TwoUserId={dmodel.OneUserId} ";
}
if (dmodel.GoodsID > 0)
{
where += $" and b.GoodsId={dmodel.GoodsID} ";
}
if (!string.IsNullOrWhiteSpace(dmodel.StartDate))
{
where += $" and DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )>=DATE_FORMAT('{dmodel.StartDate}','%Y-%m-%d' ) ";
}
if (!string.IsNullOrWhiteSpace(dmodel.EndDate))
{
where += $" and DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )< DATE_FORMAT('{dmodel.EndDate}','%Y-%m-%d' ) ";
}
}
string sql = $@" SELECT B.Id,SUM(b.PaidCostMoney) as PaidCostMoney,MAX(b.OrderId) as OrderId,MAX( a.OrderNo) as OrderNo,MAX(b.GoodsName) as GoodsName,b.Specification,MAX(b.Unit_Price) as Unit_Price,SUM(b.Number) as Number,f.`Name` as SupplierName,
SUM(b.Final_Price) as Final_Price,SUM(b.FreightMoney) as FreightMoney,SUM(b.Final_Price+b.FreightMoney) as AllPrice ,
SUM(IFNULL(b.CostMoney,0)*b.Number) as CostMoney,0 as PackingMoney, 0 as CostFreight,0 as GoodsFreight,
0 as OtherPrice,e.FXCommission,f.RemitFXCommission,0 as Paid
from rb_goods_orderdetail as b
LEFT JOIN rb_goods_order as A on a.OrderId=b.OrderId
LEFT JOIN rb_supplier as f on f.ID=b.SupplierId
LEFT JOIN (SELECT SUM(Commission) as FXCommission,OrderDetailId from rb_goods_ordercommission GROUP BY OrderDetailId ) as e on b.Id=e.OrderDetailId
LEFT JOIN (SELECT SUM(Commission) as RemitFXCommission,OrderDetailId from rb_goods_ordercommission where IsRemit=1 GROUP BY OrderDetailId ) as f on b.Id=f.OrderDetailId
left join rb_goods_orderaftersale oa on b.ID= oa.OrderDetialId and oa.Type=1 and oa.Status=0 and oa.ReOrderStatus in (2,3,4,5) {where}
GROUP BY b.Id";
return GetPage<OrderStatistics_Query>(pageIndex, pageSize, out count, sql).ToList();
}
if (!string.IsNullOrWhiteSpace(dmodel.EndDate))
public List<OrderStatistics_Query> GetFXAllOrderProfitLossList(OrderStatistics_Query dmodel)
{
where += $" and DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )< DATE_FORMAT('{dmodel.EndDate}','%Y-%m-%d' ) ";
}
string where = "where 1=1 and a.OrderStatus in(2,3,4,5,6) ";
}
if (dmodel != null)
{
if (!string.IsNullOrWhiteSpace(dmodel.OrderNo))
{
where += $" and a.OrderNo like'%{dmodel.OrderNo}%'";
}
if (dmodel.SupplierId > 0)
{
where += $" and b.SupplierId={dmodel.SupplierId} ";
}
if (dmodel.OneUserId > 0)
{
where += $" and c.OneUserId={dmodel.OneUserId} and d.TwoUserId={dmodel.OneUserId} ";
}
if (dmodel.GoodsID > 0)
{
where += $" and b.GoodsId={dmodel.GoodsID} ";
}
if (!string.IsNullOrWhiteSpace(dmodel.StartDate))
{
where += $" and DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )>=DATE_FORMAT('{dmodel.StartDate}','%Y-%m-%d' ) ";
}
if (!string.IsNullOrWhiteSpace(dmodel.EndDate))
{
where += $" and DATE_FORMAT(a.CreateDate,'%Y-%m-%d' )< DATE_FORMAT('{dmodel.EndDate}','%Y-%m-%d' ) ";
}
string sql = $@" SELECT MAX( a.OrderNo) as OrderNo,MAX(b.GoodsName) as GoodsName,b.Specification,MAX(b.Unit_Price) as Unit_Price,SUM(b.Number) as Number,f.`Name` as SupplierName,
}
string sql = $@" SELECT B.Id,SUM(b.PaidCostMoney) as PaidCostMoney,MAX(b.OrderId) as OrderId,MAX( a.OrderNo) as OrderNo,MAX(b.GoodsName) as GoodsName,b.Specification,MAX(b.Unit_Price) as Unit_Price,SUM(b.Number) as Number,f.`Name` as SupplierName,
SUM(b.Final_Price) as Final_Price,SUM(b.FreightMoney) as FreightMoney,SUM(b.Final_Price+b.FreightMoney) as AllPrice ,
SUM(IFNULL(b.CostMoney,0)*b.Number) as CostMoney,0 as PackingMoney, 0 as CostFreight,0 as GoodsFreight,
c.OneCommission,c.OneUserId,c.OneUserName,d.TwoCommission,d.TwoUserId,d.TwoUserName,0 as OtherPrice,e.ALLCommission,0 as Paid
0 as OtherPrice,e.FXCommission,f.RemitFXCommission,0 as Paid
from rb_goods_orderdetail as b
LEFT JOIN rb_goods_order as A on a.OrderId=b.OrderId
LEFT JOIN rb_supplier as f on f.ID=b.SupplierId
LEFT JOIN (SELECT SUM(goc.Commission) as OneCommission,goc.OrderDetailId,goc.UserId as OneUserId,mu.`Name` as OneUserName from rb_goods_ordercommission as goc LEFT JOIN rb_member_user as mu on goc.UserId=mu.Id where goc.Grade=1 and goc.CommissionState=2 GROUP BY goc.OrderDetailId ) as c on b.Id=c.OrderDetailId
LEFT JOIN (SELECT SUM(goc.Commission) as TwoCommission,goc.OrderDetailId,goc.UserId as TwoUserId,mu.`Name` as TwoUserName from rb_goods_ordercommission as goc LEFT JOIN rb_member_user as mu on goc.UserId=mu.Id where goc.Grade=2 and goc.CommissionState=2 GROUP BY goc.OrderDetailId ) as d on b.Id=d.OrderDetailId
LEFT JOIN (SELECT SUM(Commission) as ALLCommission,OrderDetailId from rb_goods_ordercommission GROUP BY OrderId ) as e on b.Id=e.OrderDetailId {where}
GROUP BY b.GoodsId,b.SupplierId,b.OrderId ";
// string sql = $@" SELECT MAX( a.OrderNo) as OrderNo,MAX(b.GoodsName) as GoodsName,b.Specification,MAX(b.Unit_Price) as Unit_Price,SUM(b.Number) as Number,f.`Name` as SupplierName,
//SUM(b.Final_Price) as Final_Price,SUM(b.FreightMoney) as FreightMoney,SUM(b.Final_Price+b.FreightMoney) as AllPrice ,
//SUM(IFNULL(b.CostMoney,0)*b.Number) as CostMoney,0 as PackingMoney, 0 as CostFreight,0 as GoodsFreight,
//c.OneCommission,d.TwoCommission,0 as OtherPrice,e.ALLCommission,0 as Paid
//from rb_goods_orderdetail as b
//LEFT JOIN rb_goods_order as A on a.OrderId=b.OrderId
//LEFT JOIN rb_supplier as f on f.ID=b.SupplierId
//LEFT JOIN (SELECT SUM(Commission) as OneCommission,OrderId from rb_goods_ordercommission where Grade=1 and CommissionState=2 GROUP BY OrderId ) as c on a.OrderId=c.OrderId
//LEFT JOIN (SELECT SUM(Commission) as TwoCommission,OrderId from rb_goods_ordercommission where Grade=2 and CommissionState=2 GROUP BY OrderId ) as d on a.OrderId=d.OrderId
//LEFT JOIN (SELECT SUM(Commission) as ALLCommission,OrderId from rb_goods_ordercommission GROUP BY OrderId ) as e on a.OrderId=e.OrderId {where}
//GROUP BY b.GoodsId,b.SupplierId,b.OrderId ";
return Get<OrderStatistics_Query>(sql).ToList();
}
LEFT JOIN (SELECT SUM(Commission) as FXCommission,OrderDetailId from rb_goods_ordercommission GROUP BY OrderDetailId ) as e on b.Id=e.OrderDetailId
LEFT JOIN (SELECT SUM(Commission) as RemitFXCommission,OrderDetailId from rb_goods_ordercommission where IsRemit=1 GROUP BY OrderDetailId ) as f on b.Id=f.OrderDetailId
left join rb_goods_orderaftersale oa on b.ID= oa.OrderDetialId and oa.Type=1 and oa.Status=0 and oa.ReOrderStatus in (2,3,4,5) {where}
GROUP BY b.Id ";
return Get<OrderStatistics_Query>(sql).ToList();
}
/// <summary>
/// 获取用户 订单下的商品数量
/// </summary>
/// <param name="userId"></param>
/// <param name="limitGoodsIds"></param>
/// <returns></returns>
public List<RB_Goods_Order_Extend> GetUserOrderGoodsNum(int userId, string limitGoodsIds, int tenantId, int mallBaseId)
{
string sql = $@"SELECT od.GoodsId,SUM(od.Number) as GoodsTotalNum FROM rb_goods_orderdetail od
/// <summary>
/// 获取用户 订单下的商品数量
/// </summary>
/// <param name="userId"></param>
/// <param name="limitGoodsIds"></param>
/// <returns></returns>
public List<RB_Goods_Order_Extend> GetFXUserOrderGoodsNum(int userId, string limitGoodsIds, int tenantId, int mallBaseId)
{
string sql = $@"SELECT od.GoodsId,SUM(od.Number) as GoodsTotalNum FROM rb_goods_orderdetail od
INNER JOIN rb_goods_order o on od.OrderId=o.OrderId
WHERE od.TenantId={tenantId} and od.MallBaseId={mallBaseId} and o.`Status`=0 and o.OrderStatus in (1,2,3,4,5,6) and o.Recycled=2 AND o.UserId={userId} and od.GoodsId in ({limitGoodsIds})
GROUP BY od.GoodsId";
return Get<RB_Goods_Order_Extend>(sql).ToList();
}
return Get<RB_Goods_Order_Extend>(sql).ToList();
}
/// <summary>
/// 获取用户 商品订单得数量
/// </summary>
/// <param name="userId"></param>
/// <param name="limitGoodsIds"></param>
/// <param name="tenantId"></param>
/// <param name="mallBaseId"></param>
/// <returns></returns>
public List<RB_Goods_Order_Extend> GetUserOrderNum(int userId, string limitGoodsIds, int tenantId, int mallBaseId)
{
string sql = $@"SELECT t.GoodsId,COUNT(0) as OrderNum FROM(
/// <summary>
/// 获取用户 商品订单得数量
/// </summary>
/// <param name="userId"></param>
/// <param name="limitGoodsIds"></param>
/// <param name="tenantId"></param>
/// <param name="mallBaseId"></param>
/// <returns></returns>
public List<RB_Goods_Order_Extend> GetFXUserOrderNum(int userId, string limitGoodsIds, int tenantId, int mallBaseId)
{
string sql = $@"SELECT t.GoodsId,COUNT(0) as OrderNum FROM(
SELECT od.GoodsId,o.* FROM rb_goods_orderdetail od
INNER JOIN rb_goods_order o on od.OrderId=o.OrderId
WHERE od.TenantId={tenantId} and od.MallBaseId={mallBaseId} and o.`Status`=0 and o.OrderStatus in (1,2,3,4,5,6) and o.Recycled=2 AND o.UserId={userId} and od.GoodsId in ({limitGoodsIds})
GROUP BY od.GoodsId,o.OrderId
)t GROUP BY t.GoodsId";
return Get<RB_Goods_Order_Extend>(sql).ToList();
}
#endregion
#region
/// <summary>
/// 获取超时取消的订单列表
/// </summary>
/// <param name="cancelTime"></param>
/// <param name="t"></param>
/// <param name="m"></param>
/// <returns></returns>
public List<RB_Goods_Order_Extend> GetCanCancelOrderList(int cancelTime, int t, int m)
{
string sql = $@"SELECT OrderId,UserId,OrderNo,OrderSource,CouponsIds FROM rb_goods_order where TenantId ={t} and MallBaseId ={m} and `Status`=0 and OrderStatus =1 and DATE_ADD(CreateDate,INTERVAL {cancelTime} MINUTE) < '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'";
return Get<RB_Goods_Order_Extend>(sql).ToList();
}
return Get<RB_Goods_Order_Extend>(sql).ToList();
}
#endregion
/// <summary>
/// 获取可自动收货的订单列表
/// </summary>
/// <param name="day"></param>
/// <param name="t"></param>
/// <param name="m"></param>
/// <returns></returns>
public List<RB_Goods_Order_Extend> GetCanReceivingOrderList(int day, int t, int m)
{
string sql = $@"SELECT OrderId,UserId,OrderNo,OrderSource,CouponsIds FROM rb_goods_order where TenantId ={t} and MallBaseId ={m} and `Status`=0 and OrderStatus =3 and DATE_ADD(DeliveryTime,INTERVAL {day} DAY) < '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'";
return Get<RB_Goods_Order_Extend>(sql).ToList();
}
#region
/// <summary>
/// 获取超时取消的订单列表
/// </summary>
/// <param name="cancelTime"></param>
/// <param name="t"></param>
/// <param name="m"></param>
/// <returns></returns>
public List<RB_Goods_Order_Extend> GetCanCancelOrderList(int cancelTime, int t, int m)
{
string sql = $@"SELECT OrderId,UserId,OrderNo,OrderSource,CouponsIds FROM rb_goods_order where TenantId ={t} and MallBaseId ={m} and `Status`=0 and OrderStatus =1 and DATE_ADD(CreateDate,INTERVAL {cancelTime} MINUTE) < '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'";
return Get<RB_Goods_Order_Extend>(sql).ToList();
}
/// <summary>
/// 获取可自动收货的订单列表
/// </summary>
/// <param name="day"></param>
/// <param name="t"></param>
/// <param name="m"></param>
/// <returns></returns>
public List<RB_Goods_Order_Extend> GetCanReceivingOrderList(int day, int t, int m)
{
string sql = $@"SELECT OrderId,UserId,OrderNo,OrderSource,CouponsIds FROM rb_goods_order where TenantId ={t} and MallBaseId ={m} and `Status`=0 and OrderStatus =3 and DATE_ADD(DeliveryTime,INTERVAL {day} DAY) < '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'";
return Get<RB_Goods_Order_Extend>(sql).ToList();
}
#endregion
}
}
......@@ -117,12 +117,24 @@ namespace Mall.WebApi.Controllers.AppletWeChat
OrderStatistics_Query demodel = JsonConvert.DeserializeObject<OrderStatistics_Query>(requestParm.msg.ToString());
demodel.TenantId = requestParm.TenantId;
demodel.MallBaseId = requestParm.MallBaseId;
var list = statisticsModule.GetOrderProfitLossList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
List<OrderStatistics_Query> list = new List<OrderStatistics_Query>();
long count = 0;
if (demodel.IsFxCommission == 0)
{
list = statisticsModule.GetOrderProfitLossList(pagelist.pageIndex, pagelist.pageSize, out count, demodel);
}
else
{
list = statisticsModule.GetFXOrderProfitLossList(pagelist.pageIndex, pagelist.pageSize, out count, demodel);
}
foreach (var item in list)
{
item.ALLCommission = item.CostFreight + item.CostMoney + item.PackingMoney + item.GoodsFreight + item.OneCommission + item.TwoCommission + item.OtherPrice;
item.NoPaid = item.ALLCommission - item.Paid;
// item.ALLCommission = item.CostFreight + item.CostMoney + item.PackingMoney + item.GoodsFreight + item.OneCommission + item.TwoCommission + item.OtherPrice;
item.ALLCommission = item.CostFreight + item.CostMoney + item.PackingMoney + item.GoodsFreight + item.FXCommission + item.OtherPrice;
// item.NoPaid = item.ALLCommission - item.Paid;
item.NoPaid = item.ALLCommission;
item.Paid = item.PaidCostMoney + item.RemitFXCommission;
item.GrossProfit = item.AllPrice - item.ALLCommission;
item.GrossProfitRate = item.AllPrice == 0 ? 0 : Math.Round((item.GrossProfit / item.AllPrice), 2, MidpointRounding.AwayFromZero);
}
......@@ -148,7 +160,7 @@ namespace Mall.WebApi.Controllers.AppletWeChat
List<ExcelDataSource> slist = new List<ExcelDataSource>();
ExcelDataSource header = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(30) {
ExcelRows = new List<ExcelColumn>(31) {
new ExcelColumn(value: "序号") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "订单号") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "数量") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
......@@ -188,10 +200,15 @@ namespace Mall.WebApi.Controllers.AppletWeChat
{
demodel.TenantId = requestParm.TenantId;
demodel.MallBaseId = requestParm.MallBaseId;
var list = statisticsModule.GetAllOrderProfitLossList(demodel);
List<OrderStatistics_Query> list = new List<OrderStatistics_Query>();
if (demodel.IsFxCommission == 0)
{
list = statisticsModule.GetAllOrderProfitLossList(demodel);
}
foreach (var item in list)
{
item.ALLCommission = item.CostFreight + item.CostMoney + item.PackingMoney + item.GoodsFreight + item.OneCommission + item.TwoCommission + item.OtherPrice;
// item.ALLCommission = item.CostFreight + item.CostMoney + item.PackingMoney + item.GoodsFreight + item.FXCommission + item.OtherPrice;
item.NoPaid = item.ALLCommission - item.Paid;
item.GrossProfit = item.AllPrice - item.ALLCommission;
item.GrossProfitRate = item.AllPrice == 0 ? 0 : Math.Round((item.GrossProfit / item.AllPrice), 2, MidpointRounding.AwayFromZero);
......@@ -255,6 +272,138 @@ namespace Mall.WebApi.Controllers.AppletWeChat
}
/// <summary>
/// 导出订单损益核算
/// </summary>
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
public FileContentResult GetFXOrderProfitLossExcel(object requestMsg)
{
var requestParm = JsonConvert.DeserializeObject<RequestParm>(requestMsg.ToString());
OrderStatistics_Query demodel = JsonConvert.DeserializeObject<OrderStatistics_Query>(requestParm.msg.ToString());
string ExcelName = "订单损益核算" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
List<ExcelDataSource> slist = new List<ExcelDataSource>();
ExcelDataSource header = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(31) {
new ExcelColumn(value: "序号") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "订单号") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "数量") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "规格") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "数量") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "供应商") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "结算款") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "运费") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "已收") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "未收款") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "合计数") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "采购成本") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "包装费摊销") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "快递费") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "已付成本") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "商品运费摊销") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "总返佣金额") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "已返佣金额") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "返佣信息") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "其他") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "已付") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "应付") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "毛利") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "毛利率") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER }
},
};
slist.Add(header);
try
{
demodel.TenantId = requestParm.TenantId;
demodel.MallBaseId = requestParm.MallBaseId;
List<OrderStatistics_Query> list = new List<OrderStatistics_Query>();
if (demodel.IsFxCommission == 1)
{
demodel.IsSelectOrderCommission = 1;
list = statisticsModule.GetFXAllOrderProfitLossList(demodel);
}
foreach (var item in list)
{
// item.ALLCommission = item.CostFreight + item.CostMoney + item.PackingMoney + item.GoodsFreight + item.OneCommission + item.TwoCommission + item.OtherPrice;
item.ALLCommission = item.CostFreight + item.CostMoney + item.PackingMoney + item.GoodsFreight + item.FXCommission + item.OtherPrice;
item.NoPaid = item.ALLCommission;
item.Paid = item.PaidCostMoney + item.RemitFXCommission;
item.GrossProfit = item.AllPrice - item.ALLCommission;
item.GrossProfitRate = item.AllPrice == 0 ? 0 : Math.Round((item.GrossProfit / item.AllPrice), 2, MidpointRounding.AwayFromZero);
}
#region 组装数据
int Num = 0;
foreach (var item in list)
{
Num++;
ExcelDataSource datarow = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value:Num.ToString()){ },
}
};
datarow.ExcelRows.Add(new ExcelColumn(value: item.OrderNo) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.GoodsName + item.Specification) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.Unit_Price.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.Number.ToString()) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.SupplierName) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.Final_Price.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.FreightMoney) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.AllPrice.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: "0") { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.AllPrice.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.CostMoney.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.PackingMoney.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.CostFreight.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.PaidCostMoney.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.GoodsFreight.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.FXCommission.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.RemitFXCommission.ToString("#0.00")) { });
string commissionInfo = "";
if (item.OrderCommissionList != null && item.OrderCommissionList.Any())
{
foreach (var itemCommi in item.OrderCommissionList)
{
if (!string.IsNullOrWhiteSpace(commissionInfo))
{
commissionInfo += (",[" + itemCommi.GradeDescription + ":" + itemCommi.Commission + itemCommi.UserName + "]");
}
else
{
commissionInfo += ("[" + itemCommi.GradeDescription + ":" + itemCommi.Commission + itemCommi.UserName + "]");
}
}
// commissionInfo = string.Join(",", item.OrderCommissionList.Select(x=>"["+ x.GradeDescription+x.UserName+x.Commission+x.CommissionState==1?"待返":"已返"));
}
datarow.ExcelRows.Add(new ExcelColumn(value: commissionInfo) { });//返佣信息
datarow.ExcelRows.Add(new ExcelColumn(value: item.OtherPrice.ToString("#0.00")) { });
// datarow.ExcelRows.Add(new ExcelColumn(value: item.ALLCommission.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.Paid.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.NoPaid.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.GrossProfit.ToString("#0.00")) { });
datarow.ExcelRows.Add(new ExcelColumn(value: item.GrossProfitRate.ToString("#0.00")) { });
slist.Add(datarow);
}
#endregion
var byteData = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData, "application/octet-stream", ExcelName);
}
catch (Exception ex)
{
LogHelper.Write(ex, string.Format("GetFileFromWebApi_requestData: {0}", JsonHelper.Serialize(requestMsg.ToString())));
var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData1, "application/octet-stream", ExcelName);
}
}
/// <summary>
/// 获取商品
/// </summary>
......@@ -304,11 +453,21 @@ namespace Mall.WebApi.Controllers.AppletWeChat
OrderStatistics_Query demodel = JsonConvert.DeserializeObject<OrderStatistics_Query>(requestParm.msg.ToString());
demodel.TenantId = requestParm.TenantId;
demodel.MallBaseId = requestParm.MallBaseId;
var list = statisticsModule.GetAllOrderProfitLossList(demodel);
List<OrderStatistics_Query> list = new List<OrderStatistics_Query>();
if (demodel.IsFxCommission == 1)
{
list = statisticsModule.GetFXAllOrderProfitLossList(demodel);
}
else if (demodel.IsFxCommission == 0)
{
list = statisticsModule.GetAllOrderProfitLossList(demodel);
}
foreach (var item in list)
{
item.ALLCommission = item.CostFreight + item.CostMoney + item.PackingMoney + item.GoodsFreight + item.OneCommission + item.TwoCommission + item.OtherPrice;
item.NoPaid = item.ALLCommission - item.Paid;
item.ALLCommission = item.CostFreight + item.CostMoney + item.PackingMoney + item.GoodsFreight + item.FXCommission + item.OtherPrice;
// item.ALLCommission = item.CostFreight + item.CostMoney + item.PackingMoney + item.GoodsFreight + item.OneCommission + item.TwoCommission + item.OtherPrice;
item.NoPaid = item.ALLCommission;
item.Paid = item.PaidCostMoney + item.RemitFXCommission;
item.GrossProfit = item.AllPrice - item.ALLCommission;
item.GrossProfitRate = item.AllPrice == 0 ? 0 : Math.Round((item.GrossProfit / item.AllPrice), 2, MidpointRounding.AwayFromZero);
}
......@@ -329,6 +488,9 @@ namespace Mall.WebApi.Controllers.AppletWeChat
TotalSpecialCommission = list.Sum(x => x.SpecialCommission),//特一级小计
TotalOneCommission = list.Sum(x => x.OneCommission),//一级返佣小计
TotalOneTwoCommission = list.Sum(x => x.TwoCommission),//二级返佣小计
TotalFXCommission = list.Sum(x => x.FXCommission),//粉象总返佣
TotalPaidCostMoney = list.Sum(x => x.PaidCostMoney),//商品已付总成本
TotalRemitFXCommission = list.Sum(x => x.RemitFXCommission),//已提现总返佣
TotalOneOtherPrice = list.Sum(x => x.OtherPrice),//其他费用小计
TotalALLCommission = list.Sum(x => x.ALLCommission),//营业合计小计
TotalPaid = list.Sum(x => x.Paid),//已付小计
......@@ -339,6 +501,29 @@ namespace Mall.WebApi.Controllers.AppletWeChat
return ApiResult.Success("", retult);
}
/// <summary>
/// 根据商品订单详情获取返佣信息
/// </summary>
/// <param name="requestMsg"></param>
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
public ApiResult GetOrderCommissionList(object requestMsg)
{
var requestParm = JsonConvert.DeserializeObject<RequestParm>(requestMsg.ToString());
RB_Goods_OrderCommission_Extend demodel = JsonConvert.DeserializeObject<RB_Goods_OrderCommission_Extend>(requestParm.msg.ToString());
demodel.TenantId = requestParm.TenantId;
demodel.MallBaseId = requestParm.MallBaseId;
var list = statisticsModule.GetByOrderDetailId(demodel);
return ApiResult.Success("", list);
}
#endregion
}
}
\ No newline at end of file
......@@ -500,7 +500,6 @@ namespace Mall.WebApi.Controllers.MallBase
#endregion
#region 退货地址
/// <summary>
/// 退货地址列表
......@@ -659,7 +658,6 @@ namespace Mall.WebApi.Controllers.MallBase
#endregion
#region 区域购买
public ApiResult GetAreaBuyInfo()
{
......@@ -716,7 +714,6 @@ namespace Mall.WebApi.Controllers.MallBase
}
#endregion
#region 获取快递公司信息
public ApiResult GetExpressInfo()
{
......@@ -735,7 +732,6 @@ namespace Mall.WebApi.Controllers.MallBase
}
#endregion
#region 电子面单
/// <summary>
/// 获取电子面单分页
......@@ -972,9 +968,6 @@ namespace Mall.WebApi.Controllers.MallBase
#endregion
#region 包邮规则
/// <summary>
/// 列表
......@@ -1160,5 +1153,79 @@ namespace Mall.WebApi.Controllers.MallBase
#endregion
#region 微店基础设置
/// <summary>
/// 新增/修改微店基础信息
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult AddOrUpdateMicroShopBasics()
{
var parms = RequestParm;
var query = JsonConvert.DeserializeObject<RB_MicroShop_Basics>(RequestParm.msg.ToString());
if (query == null)
{
return ApiResult.Failed("请传入需要操作的小程序");
}
else
{
if (query.ApplyCondition == 0)
{
query.ApplyMemberLevel = 0;
}
if (query.PriceType == 1)
{
query.FixedPrice = 0;
}
else if (query.PriceType == 2)
{
query.CustomMinPriceRate = 0;
query.CustomMaxPriceRate = 0;
}
if (query.ID == 0)
{
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
query.CreateDate = System.DateTime.Now;
query.Status = 0;
}
query.UpdateDate = System.DateTime.Now;
bool result = mallBaseModule.AddOrUpdateMicroShopBasics(query);
if (result)
{
return ApiResult.Success("基础信息保存成功");
}
else
{
return ApiResult.Failed("基础信息保存失败");
}
}
}
/// <summary>
/// 获取微店基础信息
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetMicroShopBasicsInfo()
{
var parms = RequestParm;
var query = new RB_MicroShop_Basics();
query.TenantId = UserInfo.TenantId;
query.MallBaseId = parms.MallBaseId;
//获取小程序的商城名称
var microShopBasics = mallBaseModule.GetMicroShopBasicsList(new RB_MicroShop_Basics { TenantId = query.TenantId, MallBaseId = query.MallBaseId }).FirstOrDefault();
if (microShopBasics == null)
{
microShopBasics = new RB_MicroShop_Basics();
}
return ApiResult.Success("获取成功", microShopBasics);
}
#endregion
}
}
\ No newline at end of file
......@@ -1695,5 +1695,9 @@ namespace Mall.WebApi.Controllers.User
return ApiResult.Success("", pagelist);
}
#endregion
#region 开店申请
#endregion
}
}
\ No newline at end of file
......@@ -58,7 +58,7 @@ namespace Mall.WebApi.Controllers.User
x.Name,
x.Mobile,
x.Address,
IntroducerName = x.MemberUserName ,
IntroducerName = x.MemberUserName,
CardNum = x.ClientBankAccount != null ? x.ClientBankAccount.CardNum : "",
OpenBankName = x.ClientBankAccount != null ? x.ClientBankAccount.OpenBankName : "",
AccountAlias = x.ClientBankAccount != null ? x.ClientBankAccount.AccountAlias : "",
......@@ -289,7 +289,7 @@ namespace Mall.WebApi.Controllers.User
record.Type = 2;
record.IsFinanceAll = demodel.IsSelectAll;
record.CreateDate = System.DateTime.Now;
record.RecordDetailList = new List<RB_Finance_RecordDetail>();
record.RecordDetailList = new List<RB_Finance_RecordDetail_Extend>();
if (list != null && list.Any())
{
......@@ -308,6 +308,7 @@ namespace Mall.WebApi.Controllers.User
}
foreach (var orderGoodsItem in list)
{
decimal OrderDetailPaid = (orderGoodsItem.PaidCostMoney ?? 0);
if (demodel.IsSelectAll == 0 || demodel.IsSelectAll == 1)
{
if (orderGoodsItem.CostMoney > 0 && orderGoodsItem.CostFinanceId <= 0)
......@@ -327,6 +328,7 @@ namespace Mall.WebApi.Controllers.User
CostMoney = orderGoodsItem.CostMoney,
FreightCostMoney = orderGoodsItem.FreightCostMoney
};
OrderDetailPaid += ((orderGoodsItem.CostMoney ?? 0) * (orderGoodsItem.Number ?? 0));
result.Add(newOrderGoods);
}
}
......@@ -349,10 +351,11 @@ namespace Mall.WebApi.Controllers.User
CostMoney = orderGoodsItem.CostMoney,
FreightCostMoney = orderGoodsItem.FreightCostMoney
};
OrderDetailPaid += (orderGoodsItem.FreightCostMoney ?? 0);
result.Add(newOrderGoods);
}
}
RB_Finance_RecordDetail financeRecordDetail = new RB_Finance_RecordDetail
RB_Finance_RecordDetail_Extend financeRecordDetail = new RB_Finance_RecordDetail_Extend
{
ID = 0,
......@@ -368,7 +371,8 @@ namespace Mall.WebApi.Controllers.User
GoodsPrice = ((orderGoodsItem.CostMoney ?? 0) * (orderGoodsItem.Number ?? 0)),
FreightMoney = orderGoodsItem.FreightCostMoney,
Unit_Price = orderGoodsItem.CostMoney,
Number = orderGoodsItem.Number
Number = orderGoodsItem.Number,
OrderDetailPaid = OrderDetailPaid,
};
record.RecordDetailList.Add(financeRecordDetail);
}
......@@ -378,7 +382,7 @@ namespace Mall.WebApi.Controllers.User
Number = x.FinanceType == 1 ? x.Number : 1,
OriginalMoney = x.FinanceType == 1 ? ((x.CostMoney ?? 0) * (x.Number ?? 0)) : x.FreightCostMoney,
UnitPrice = x.FinanceType == 1 ? ((x.CostMoney ?? 0)) : x.FreightCostMoney,
Remark = x.GoodsName +x.Specification+ x.OrderNo
Remark = x.GoodsName + x.Specification + x.OrderNo
});
decimal totalMonry = 0;
......@@ -397,7 +401,7 @@ namespace Mall.WebApi.Controllers.User
}
var financeObj = new
{
CreateBy = UserInfo.ERPEmpId==0? Config.ExpendDirector:UserInfo.ERPEmpId.ToString(),
CreateBy = demodel.FinanceCreateBy == 0 ? Config.ExpendDirector : demodel.FinanceCreateBy.ToString(),
IsPublic = demodel.IsPublic,// supplierModel.ClientBankAccount.AccountType, //financeConfigurineModel.AccountType,
ClientType = supplierModel.ClientBankAccount.Type,
ClientID = supplierModel.BankAccountId,
......
......@@ -3258,6 +3258,55 @@ namespace Mall.WebApi.Controllers.User
#endregion
#region 微店基础设置获取分销等级
[HttpPost]
public ApiResult GetGradeByType()
{
var re = RequestParm;
var parms = JObject.Parse(re.msg.ToString());
int GradeType = parms.GetInt("GradeType", 0);
if (GradeType == 1)
{
RB_Distributor_Grade_Extend demodel = JsonConvert.DeserializeObject<RB_Distributor_Grade_Extend>(re.msg.ToString());
demodel.TenantId = Convert.ToInt32(re.uid);
demodel.MallBaseId = re.MallBaseId;
var list = userModule.GetDistributorGradeDropdownList(demodel);
return ApiResult.Success("", list.Select(x => new
{
x.Id,
x.Name,
x.Grade
}));
}
else if (GradeType == 2)
{
RB_Distributor_FXGrade_Extend demodel = JsonConvert.DeserializeObject<RB_Distributor_FXGrade_Extend>(re.msg.ToString());
demodel.TenantId = Convert.ToInt32(re.uid);
demodel.MallBaseId = re.MallBaseId;
var list = userModule.GetFXDistributorGradeList(demodel);
return ApiResult.Success("", list.Select(x => new
{
x.Id,
Name = x.GradeName,
x.Grade
}));
}
else {
List<RB_Distributor_Grade_Extend> list = new List<RB_Distributor_Grade_Extend>();
return ApiResult.Success("", list.Select(x => new
{
x.Id,
x.Name,
x.Grade
}));
}
}
#endregion
}
}
\ No newline at end of file
......@@ -182,14 +182,14 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A
record.TenantId = item.TenantId;
record.Type = 1;
record.CreateDate = System.DateTime.Now;
record.RecordDetailList = new List<RB_Finance_RecordDetail>();
record.RecordDetailList = new List<RB_Finance_RecordDetail_Extend>();
List<RB_Finance_RecordDetail> orderGoodsList = new List<RB_Finance_RecordDetail>();
List<RB_Finance_RecordDetail_Extend> orderGoodsList = new List<RB_Finance_RecordDetail_Extend>();
if (goodsDetailList != null && goodsDetailList.Any())//获取当前需要生成入款单的订单是否已经生成财务单据
{
string orderIds = string.Join(",", goodsDetailList.Select(x => x.OrderId));
orderGoodsList = financeRecordDetailRepository.GetListByOrderIds(orderIds, new RB_Finance_RecordDetail { TenantId = item.TenantId, MallBaseId = item.MallBaseId, Type = 1 });
orderGoodsList = financeRecordDetailRepository.GetListByOrderIds(orderIds, new RB_Finance_RecordDetail_Extend { TenantId = item.TenantId, MallBaseId = item.MallBaseId, Type = 1 });
}
else
{
......@@ -244,7 +244,7 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A
};
result.Add(newOrderGoods);
}
RB_Finance_RecordDetail financeRecordDetail = new RB_Finance_RecordDetail
RB_Finance_RecordDetail_Extend financeRecordDetail = new RB_Finance_RecordDetail_Extend
{
ID = 0,
......@@ -1356,7 +1356,7 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A
record.Type = 3;
record.CreateDate = System.DateTime.Now;
record.FinanceId = 0;
record.RecordDetailList = new List<RB_Finance_RecordDetail>();
record.RecordDetailList = new List<RB_Finance_RecordDetail_Extend>();
int recordId = financeRecordRepository.Insert(record);
}
}
......@@ -1395,7 +1395,7 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A
record.TenantId = item.TenantId;
record.Type = 3;
record.CreateDate = System.DateTime.Now;
record.RecordDetailList = new List<RB_Finance_RecordDetail>();
record.RecordDetailList = new List<RB_Finance_RecordDetail_Extend>();
decimal TotalMoney = 0;
var detailList = new List<object>();
......@@ -1419,7 +1419,7 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A
}
);
RB_Finance_RecordDetail financeRecordDetail = new RB_Finance_RecordDetail
RB_Finance_RecordDetail_Extend financeRecordDetail = new RB_Finance_RecordDetail_Extend
{
ID = 0,
......@@ -1463,7 +1463,7 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A
}
);
RB_Finance_RecordDetail financeRecordDetail = new RB_Finance_RecordDetail
RB_Finance_RecordDetail_Extend financeRecordDetail = new RB_Finance_RecordDetail_Extend
{
ID = 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