Commit d611c53d authored by 黄奎's avatar 黄奎
parents def90011 2b1fe2bb
...@@ -175,5 +175,8 @@ namespace Mall.Model.Entity.Product ...@@ -175,5 +175,8 @@ namespace Mall.Model.Entity.Product
/// 运费 /// 运费
/// </summary> /// </summary>
public decimal? FreightMoney { get; set; } public decimal? FreightMoney { get; set; }
} }
} }
...@@ -62,5 +62,9 @@ namespace Mall.Model.Extend.Product ...@@ -62,5 +62,9 @@ namespace Mall.Model.Extend.Product
/// 是否申请售后 /// 是否申请售后
/// </summary> /// </summary>
public int? IsApplyForAfterSale { get; set; } public int? IsApplyForAfterSale { get; set; }
} }
} }
using Mall.Common.AOP;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Query
{
/// <summary>
/// 订单统计
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class OrderStatistics_Query
{
public int TenantId { get; set; }
public int MallBaseId { get; set; }
/// <summary>
/// 订单号
/// </summary>
public string OrderNo { get; set; }
/// <summary>
/// 商品名称
/// </summary>
public string GoodsName { get; set; }
/// <summary>
/// 商品id
/// </summary>
public int GoodsID { get; set; }
/// <summary>
/// 规格
/// </summary>
public string Specification { get; set; }
/// <summary>
/// 单价
/// </summary>
public decimal Unit_Price { get; set; }
/// <summary>
/// 数量
/// </summary>
public int Number { get; set; }
/// <summary>
/// 供应商名称
/// </summary>
public string SupplierName { get; set; }
/// <summary>
/// 供应商名称
/// </summary>
public int SupplierId { get; set; }
/// <summary>
/// 结算款
/// </summary>
public decimal Final_Price { get; set; }
/// <summary>
/// 运费
/// </summary>
public string FreightMoney { get; set; }
/// <summary>
/// 合计
/// </summary>
public decimal AllPrice { get; set; }
/// <summary>
/// 采购成本
/// </summary>
public decimal CostMoney { get; set; }
/// <summary>
/// 包装费摊销
/// </summary>
public decimal PackingMoney { get; set; }
/// <summary>
/// 快递费
/// </summary>
public decimal CostFreight { get; set; }
/// <summary>
/// 商品运费
/// </summary>
public decimal GoodsFreight { get; set; }
/// <summary>
/// 一级返佣
/// </summary>
public decimal OneCommission { get; set; }
/// <summary>
/// 二级返佣
/// </summary>
public decimal TwoCommission { get; set; }
/// <summary>
/// 其他
/// </summary>
public decimal OtherPrice { get; set; }
/// <summary>
/// 营业(合计)
/// </summary>
public decimal ALLCommission { get; set; }
/// <summary>
/// 已付
/// </summary>
public decimal Paid { get; set; }
/// <summary>
/// 未付
/// </summary>
public decimal NoPaid { get; set; }
/// <summary>
/// 毛利
/// </summary>
public decimal GrossProfit { get; set; }
/// <summary>
/// 毛利率
/// </summary>
public decimal GrossProfitRate { get; set; }
}
}
...@@ -14,6 +14,20 @@ namespace Mall.Module.MarketingCenter ...@@ -14,6 +14,20 @@ namespace Mall.Module.MarketingCenter
private RB_Goods_OrderRepository orderRepository = new RB_Goods_OrderRepository(); private RB_Goods_OrderRepository orderRepository = new RB_Goods_OrderRepository();
#region 数据统计-数据概况 #region 数据统计-数据概况
/// <summary>
/// 损益核算表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<OrderStatistics_Query> GetOrderProfitLossList(int pageIndex, int pageSize, out long count, OrderStatistics_Query dmodel)
{
return orderRepository.GetOrderProfitLossList(pageIndex, pageSize, out count, dmodel);
}
/// <summary> /// <summary>
/// 数据概况 /// 数据概况
/// </summary> /// </summary>
...@@ -24,6 +38,7 @@ namespace Mall.Module.MarketingCenter ...@@ -24,6 +38,7 @@ namespace Mall.Module.MarketingCenter
return orderRepository.GetOrdertSatistics(dmodel); return orderRepository.GetOrdertSatistics(dmodel);
} }
/// <summary> /// <summary>
/// 获取近一周的数据 /// 获取近一周的数据
/// </summary> /// </summary>
...@@ -128,7 +143,7 @@ namespace Mall.Module.MarketingCenter ...@@ -128,7 +143,7 @@ namespace Mall.Module.MarketingCenter
/// <returns></returns> /// <returns></returns>
public DataStatistics_Query GetSellOrder(DataStatistics_Query dmodel) public DataStatistics_Query GetSellOrder(DataStatistics_Query dmodel)
{ {
var List = orderRepository.GetWeeklyOrder(dmodel); var List = orderRepository.GetWeeklyOrder(dmodel);
DataStatistics_Query model = new DataStatistics_Query(); DataStatistics_Query model = new DataStatistics_Query();
...@@ -156,6 +171,6 @@ namespace Mall.Module.MarketingCenter ...@@ -156,6 +171,6 @@ namespace Mall.Module.MarketingCenter
return orderRepository.GetSellExcel(dmodel); return orderRepository.GetSellExcel(dmodel);
} }
#endregion #endregion
} }
} }
...@@ -63,7 +63,7 @@ namespace Mall.Repository.Product ...@@ -63,7 +63,7 @@ namespace Mall.Repository.Product
{ {
where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)}={(int)dmodel.OrderStatus}"; where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)}={(int)dmodel.OrderStatus}";
} }
if (!string.IsNullOrEmpty(dmodel.OrderStatusIds)) if (!string.IsNullOrEmpty(dmodel.OrderStatusIds))
{ {
where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)} in({dmodel.OrderStatusIds})"; where += $@" and o.{nameof(RB_Goods_Order.OrderStatus)} in({dmodel.OrderStatusIds})";
} }
...@@ -116,7 +116,8 @@ where {where} group by o.OrderId order by o.CreateDate desc"; ...@@ -116,7 +116,8 @@ where {where} group by o.OrderId order by o.CreateDate desc";
/// </summary> /// </summary>
/// <param name="dmodel"></param> /// <param name="dmodel"></param>
/// <returns></returns> /// <returns></returns>
public List<RB_Goods_Order_Extend> GetOrderList(RB_Goods_Order_Extend dmodel) { public List<RB_Goods_Order_Extend> GetOrderList(RB_Goods_Order_Extend dmodel)
{
string where = $" 1=1 and o.{nameof(RB_Goods_Order.Status)}=0"; string where = $" 1=1 and o.{nameof(RB_Goods_Order.Status)}=0";
if (dmodel.TenantId > 0) if (dmodel.TenantId > 0)
{ {
...@@ -130,13 +131,15 @@ where {where} group by o.OrderId order by o.CreateDate desc"; ...@@ -130,13 +131,15 @@ where {where} group by o.OrderId order by o.CreateDate desc";
{ {
where += $@" and o.{nameof(RB_Goods_Order.OrderId)}={dmodel.OrderId}"; where += $@" and o.{nameof(RB_Goods_Order.OrderId)}={dmodel.OrderId}";
} }
if (!string.IsNullOrEmpty(dmodel.OrderIds)) { if (!string.IsNullOrEmpty(dmodel.OrderIds))
{
where += $@" and o.{nameof(RB_Goods_Order.OrderId)} in({dmodel.OrderIds})"; where += $@" and o.{nameof(RB_Goods_Order.OrderId)} in({dmodel.OrderIds})";
} }
if (!string.IsNullOrEmpty(dmodel.orderNos)) { if (!string.IsNullOrEmpty(dmodel.orderNos))
{
where += $@" and o.{nameof(RB_Goods_Order.OrderNo)} in({dmodel.orderNos})"; where += $@" and o.{nameof(RB_Goods_Order.OrderNo)} in({dmodel.orderNos})";
} }
string sql = $@"SELECT o.* FROM rb_goods_order o string sql = $@"SELECT o.* FROM rb_goods_order o
where {where} group by o.OrderId asc"; where {where} group by o.OrderId asc";
return Get<RB_Goods_Order_Extend>(sql).ToList(); return Get<RB_Goods_Order_Extend>(sql).ToList();
...@@ -428,7 +431,8 @@ GROUP BY o.OrderId)t"; ...@@ -428,7 +431,8 @@ GROUP BY o.OrderId)t";
{ {
return Convert.ToInt32(obj); return Convert.ToInt32(obj);
} }
else { else
{
return 0; return 0;
} }
} }
...@@ -579,7 +583,7 @@ LEFT JOIN rb_goods_order as b on a.OrderId=b.OrderId ...@@ -579,7 +583,7 @@ LEFT JOIN rb_goods_order as b on a.OrderId=b.OrderId
LEFT JOIN rb_goods as c on a.GoodsId=c.Id {where} LEFT JOIN rb_goods as c on a.GoodsId=c.Id {where}
GROUP BY a.GoodsId ORDER BY SUM(a.Final_Price) desc LIMIT 100 "; GROUP BY a.GoodsId ORDER BY SUM(a.Final_Price) desc LIMIT 100 ";
return Get<DataStatistics_Query>(sql).ToList(); return Get<DataStatistics_Query>(sql).ToList();
} }
/// <summary> /// <summary>
/// 用户购买力TOP排行 /// 用户购买力TOP排行
...@@ -781,5 +785,36 @@ as t GROUP BY t.CreateDate desc"; ...@@ -781,5 +785,36 @@ as t GROUP BY t.CreateDate desc";
return Get<DataStatistics_Query>(sql).ToList(); return Get<DataStatistics_Query>(sql).ToList();
} }
#endregion #endregion
#region 损益核算表
public List<OrderStatistics_Query> GetOrderProfitLossList(int pageIndex, int pageSize, out long count, OrderStatistics_Query dmodel)
{
string where = "where 1=1 ";
if (dmodel != null)
{
if (dmodel.GoodsID > 0)
{
where += $" and b.GoodsId={dmodel.GoodsID} ";
}
if (dmodel.SupplierId > 0)
{
where += $" and b.SupplierId={dmodel.SupplierId} ";
}
}
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,'供应商名称' 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 (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.OrderId ";
return GetPage<OrderStatistics_Query>(pageIndex, pageSize, out count, sql).ToList();
}
#endregion
} }
} }
...@@ -231,11 +231,11 @@ namespace Mall.WebApi.Controllers.MarketingCenter ...@@ -231,11 +231,11 @@ namespace Mall.WebApi.Controllers.MarketingCenter
pagelist.count = Convert.ToInt32(count); pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new pagelist.pageData = list.Select(x => new
{ {
x.CreateDate, x.CreateDate,
x.GoodsNum, x.GoodsNum,
x.OrderNum, x.OrderNum,
x.PayMoney, x.PayMoney,
x.PayMemerNum x.PayMemerNum
}); });
return ApiResult.Success("", pagelist); return ApiResult.Success("", pagelist);
} }
...@@ -321,5 +321,29 @@ namespace Mall.WebApi.Controllers.MarketingCenter ...@@ -321,5 +321,29 @@ namespace Mall.WebApi.Controllers.MarketingCenter
} }
#endregion #endregion
#region 损益核算表
[HttpPost]
public ApiResult GetOrderProfitLossList()
{
var parms = RequestParm;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(RequestParm.msg.ToString());
OrderStatistics_Query demodel = JsonConvert.DeserializeObject<OrderStatistics_Query>(RequestParm.msg.ToString());
demodel.TenantId = UserInfo.TenantId;
demodel.MallBaseId = parms.MallBaseId;
var list = statisticsModule.GetOrderProfitLossList(pagelist.pageIndex, pagelist.pageSize, out long 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.GrossProfit = item.AllPrice - item.ALLCommission;
item.GrossProfitRate = item.AllPrice == 0 ? 0 : item.GrossProfit / item.AllPrice;
}
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list;
return ApiResult.Success("", pagelist);
}
#endregion
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment