Commit 1958764d authored by liudong1993's avatar liudong1993

1

parent c28354a7
......@@ -28,5 +28,252 @@ namespace Mall.Model.Extend.User
/// 日期
/// </summary>
public string DateStr { get; set; }
/// <summary>
/// 月份
/// </summary>
public string DateMonth { get { return this.Date.ToString("yyyy-MM"); } }
/// <summary>
/// 获取其年份
/// </summary>
public int DateYear { get { return this.Date.Year; } }
}
/// <summary>
/// 月度统计
/// </summary>
public class User_Statistics_Query
{
/// <summary>
/// 日期(yyyy-MM)
/// </summary>
public string Date { get; set; }
/// <summary>
/// 付款人数
/// </summary>
public int PeopleNum { get; set; }
/// <summary>
/// 订单数量
/// </summary>
public int OrderNum { get; set; }
/// <summary>
/// 付款金额
/// </summary>
public decimal PayMoney { get; set; }
/// <summary>
/// 购买数量
/// </summary>
public int BuyNum { get; set; }
/// <summary>
/// 累计付款人数
/// </summary>
public int TotalPayPeople { get; set; }
/// <summary>
/// 付款人数
/// </summary>
public decimal MAvgPeopleNum { get; set; }
/// <summary>
/// 订单数量
/// </summary>
public decimal MAvgOrderNum { get; set; }
/// <summary>
/// 付款金额
/// </summary>
public decimal MAvgPayMoney { get; set; }
/// <summary>
/// 购买数量
/// </summary>
public decimal MAvgBuyNum { get; set; }
/// <summary>
/// 平均每人购买单数
/// </summary>
public decimal PAvgOrderNum { get; set; }
/// <summary>
/// 平均每人购买件数
/// </summary>
public decimal PAvgBuyNum { get; set; }
/// <summary>
/// 平均每单单价
/// </summary>
public decimal PAvgUnitPrice { get; set; }
/// <summary>
/// 平均每人购买单价
/// </summary>
public decimal PAvgBuyPrice { get; set; }
/// <summary>
/// 平均会员数量
/// </summary>
public decimal PAvgMemberNum { get; set; }
/// <summary>
/// 平均付款累计人数
/// </summary>
public decimal PAvgPaymentNum { get; set; }
/// <summary>
/// 平均會員下訂單轉換率
/// </summary>
public decimal PAvgMOrderRate { get; set; }
/// <summary>
/// 平均复购人数
/// </summary>
public decimal PAvgReBuyNum { get; set; }
/// <summary>
/// 平均复购率
/// </summary>
public decimal PAvgReBuyRate { get; set; }
/// <summary>
/// 平均新人下单
/// </summary>
public decimal PAvgNewPeopleNum { get; set; }
/// <summary>
/// 平均利润率
/// </summary>
public decimal PAvgProfitRate { get; set; }
/// <summary>
/// 今日普象新增
/// </summary>
public int PXNum { get; set; }
/// <summary>
/// 今日VIP新增
/// </summary>
public int VipNum { get; set; }
/// <summary>
/// 今日银象新增
/// </summary>
public int YXNum { get; set; }
/// <summary>
/// 今日金象新增
/// </summary>
public int JXNum { get; set; }
/// <summary>
/// 总会员数量
/// </summary>
public int TotalMNum { get; set; }
/// <summary>
/// 利润
/// </summary>
public decimal Profit { get; set; }
}
/// <summary>
/// 月度概率
/// </summary>
public class User_Statistics_Rate_Query
{
/// <summary>
/// 日期(yyyy-MM)
/// </summary>
public string Date { get; set; }
/// <summary>
/// 付款人数
/// </summary>
public decimal MAvgPeopleNum { get; set; }
/// <summary>
/// 订单数量
/// </summary>
public decimal MAvgOrderNum { get; set; }
/// <summary>
/// 付款金额
/// </summary>
public decimal MAvgPayMoney { get; set; }
/// <summary>
/// 购买数量
/// </summary>
public decimal MAvgBuyNum { get; set; }
/// <summary>
/// 平均每人购买单数
/// </summary>
public decimal PAvgOrderNum { get; set; }
/// <summary>
/// 平均每人购买件数
/// </summary>
public decimal PAvgBuyNum { get; set; }
/// <summary>
/// 平均每单单价
/// </summary>
public decimal PAvgUnitPrice { get; set; }
/// <summary>
/// 平均每人购买单价
/// </summary>
public decimal PAvgBuyPrice { get; set; }
/// <summary>
/// 平均會員下訂單轉換率
/// </summary>
public decimal PAvgMOrderRate { get; set; }
/// <summary>
/// 平均利润率
/// </summary>
public decimal PAvgProfitRate { get; set; }
/// <summary>
/// 今日普象新增
/// </summary>
public decimal PAvgPXNum { get; set; }
/// <summary>
/// 今日VIP新增
/// </summary>
public decimal PAvgVipNum { get; set; }
/// <summary>
/// 今日银象新增
/// </summary>
public decimal PAvgYXNum { get; set; }
/// <summary>
/// 今日金象新增
/// </summary>
public decimal PAvgJXNum { get; set; }
/// <summary>
/// 总会员数量
/// </summary>
public decimal PAvgTotalMNum { get; set; }
/// <summary>
/// 利润
/// </summary>
public decimal PAvgProfit { get; set; }
}
}
......@@ -1526,6 +1526,113 @@ namespace Mall.WebApi.Controllers.AppletWeChat
return ApiResult.Success("", Robj);
}
/// <summary>
/// 每月统计导出excel
/// </summary>
/// <param name="requestMsg"></param>
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
public FileContentResult GetDSMoreMonthStatisticsToExcel(object requestMsg)
{
var requestParm = JsonConvert.DeserializeObject<RequestParm>(requestMsg.ToString());
JObject parms = JObject.Parse(requestParm.msg.ToString());
string StartTime = parms.GetStringValue("StartTime");//开始时间 月
string EndTime = parms.GetStringValue("EndTime");//结束时间 月
string ExcelName = "电商多月统计" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
List<ExcelDataSource> slist = new List<ExcelDataSource>();
if (string.IsNullOrEmpty(StartTime))
{
var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData1, "application/octet-stream", ExcelName);
}
if (string.IsNullOrEmpty(EndTime))
{
var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData1, "application/octet-stream", ExcelName);
}
try
{
StartTime = Convert.ToDateTime(StartTime).ToString("yyyy-MM");
EndTime = Convert.ToDateTime(EndTime).ToString("yyyy-MM");
}
catch (Exception)
{
var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData1, "application/octet-stream", ExcelName);
}
if (Convert.ToDateTime(StartTime) > Convert.ToDateTime(EndTime))
{
var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData1, "application/octet-stream", ExcelName);
}
ExcelDataSource header = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(23) {
new ExcelColumn(value: "月份") { CellWidth = 25, 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 = 20, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "平均每人購買件數") { CellWidth = 20, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "平均每單單價") { CellWidth = 20, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "平均每人購買單價") { CellWidth = 20, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "平均會員累計數") { CellWidth = 20, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "平均付款累計人數") { CellWidth = 20, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "平均會員下單轉換率") { CellWidth = 20, 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 }
},
ColumnHight = 30
};
slist.Add(header);
try
{
List<ExcelDataSource> Rlist = statisticsModule.GetDSMoreMonthStatisticsToExcel(StartTime, EndTime, requestParm.TenantId, requestParm.MallBaseId);
slist.AddRange(Rlist);
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>
/// <param name="requestMsg"></param>
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
public ApiResult GetDSYearStartistics(object requestMsg) {
var requestParm = JsonConvert.DeserializeObject<RequestParm>(requestMsg.ToString());
JObject parms = JObject.Parse(requestParm.msg.ToString());
int StartYear = parms.GetInt("StartYear",0);//开始时间 年
int EndYear = parms.GetInt("EndYear",0);//结束时间 年
if (StartYear <= 0 || EndYear <= 0)
{
return ApiResult.ParamIsNull();
}
if (StartYear < 2019 || StartYear > EndYear)
{
return ApiResult.ParamIsNull("参数有误");
}
var Robj = statisticsModule.GetDSYearStartistics(StartYear, EndYear, requestParm.TenantId, requestParm.MallBaseId);
return ApiResult.Success("", Robj);
}
#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