137 lines
3.7 KiB
C#
137 lines
3.7 KiB
C#
|
|
using MyCode.Project.Domain.Model;
|
|||
|
|
using MyCode.Project.Domain.Repositories;
|
|||
|
|
using MyCode.Project.Infrastructure.Common;
|
|||
|
|
using MyCode.Project.Infrastructure.Enumeration;
|
|||
|
|
using MyCode.Project.Infrastructure.Extensions;
|
|||
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
|
|||
|
|
namespace MyCode.Project.Services.BLL
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 宝典公共计算
|
|||
|
|
/// </summary>
|
|||
|
|
public class CommonPlanCalBLL
|
|||
|
|
{
|
|||
|
|
#region 初始化
|
|||
|
|
/// <summary>
|
|||
|
|
/// 初始化
|
|||
|
|
/// </summary>
|
|||
|
|
public IRepository _repository;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 单据id
|
|||
|
|
/// </summary>
|
|||
|
|
public string SheetId
|
|||
|
|
{
|
|||
|
|
get;
|
|||
|
|
set;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 备注字段
|
|||
|
|
/// </summary>
|
|||
|
|
public string Info
|
|||
|
|
{
|
|||
|
|
get;
|
|||
|
|
set;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 订单
|
|||
|
|
/// </summary>
|
|||
|
|
public LxmSheet Sheet
|
|||
|
|
{
|
|||
|
|
get;
|
|||
|
|
set;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 版本时间
|
|||
|
|
/// </summary>
|
|||
|
|
public DateTime VersionTime
|
|||
|
|
{
|
|||
|
|
get;
|
|||
|
|
set;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public CommonPlanCalBLL(IRepository repository)
|
|||
|
|
{
|
|||
|
|
_repository = repository;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region Init(初始化)
|
|||
|
|
/// <summary>
|
|||
|
|
/// 初始化
|
|||
|
|
/// </summary>
|
|||
|
|
public void Init(string sheetId)
|
|||
|
|
{
|
|||
|
|
this.Sheet = _repository
|
|||
|
|
.Queryable<LxmSheet>()
|
|||
|
|
.Where(p => p.Id == sheetId)
|
|||
|
|
.First();
|
|||
|
|
|
|||
|
|
this.SheetId = sheetId;
|
|||
|
|
this.VersionTime = this.Sheet.CreateTime.Value.GetFirstDayOfMonth();
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region GetSourceSimpleOrder(得到退款时的原始订单信息,如果是预售单,则要再取一下得到预售单)
|
|||
|
|
/// <summary>
|
|||
|
|
/// 得到退款时的原始订单信息,如果是预售单,则要再取一下得到预售单
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sourceOrderId"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public LxmSheet GetSourceSimpleOrder(string sourceOrderId)
|
|||
|
|
{
|
|||
|
|
var sourceOrder = _repository.Queryable<LxmSheet>().Where(p => p.Id == Sheet.SourceOrderId).First();
|
|||
|
|
|
|||
|
|
if (sourceOrder.IsPorderToSorder == 1)
|
|||
|
|
{
|
|||
|
|
sourceOrder = _repository.Queryable<LxmSheet>().Where(p => p.Id == sourceOrder.OrderPreorderId).First();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return sourceOrder;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region CheckPassed(数据验证)
|
|||
|
|
/// <summary>
|
|||
|
|
/// 数据验证
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="isPorderToSorder"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public bool CheckPassed(PlanType planType)
|
|||
|
|
{
|
|||
|
|
if (this.Sheet.IsPorderToSorder == 1)
|
|||
|
|
{
|
|||
|
|
LogHelper.Info($"{SheetId}是预售单,不参与宝典计划运算");
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//只对60天内的数据做运算,超过就不运算了
|
|||
|
|
if ((DateTime.Now - this.Sheet.CreateTime.Value).TotalDays > 60)
|
|||
|
|
{
|
|||
|
|
LogHelper.Info($"{SheetId}是60天前的数据,就不再宝典计划运算了");
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
////如果中间表中已经有该数据了,也不运算
|
|||
|
|
var existCal = _repository.IsExist<BdOrderPlan>(p => p.OrderId == SheetId && p.PlanType == (int)planType);
|
|||
|
|
|
|||
|
|
if (existCal)
|
|||
|
|
{
|
|||
|
|
LogHelper.Info($"{SheetId}之前已经运算过,不再运算");
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
}
|
|||
|
|
}
|