using System;
using System.Collections.Generic;
using System.Linq;
using WX.CRM.BLL.Util;
using WX.CRM.Common;
using WX.CRM.IBLL.Base;
using WX.CRM.Model.Entity;
using WX.CRM.Model.Enum;
namespace WX.CRM.BLL.Base
{
public class BAS_EXCELIMPORTLOG_BL : IBAS_EXCELIMPORTLOG, IBAS_EXCELIMPORTLOG_Q
{
///
/// 数据插入
///
/// 错误信息
/// 模型
///
public decimal Create(ref ValidationErrors errors, BAS_EXCELIMPORTLOG entry)
{
try
{
using (var db = new crmContext())
{
entry.IMPORTID = new SEQUENCES_BL().Seq_base_get(PKIDType.LargeTable);
db.BAS_EXCELIMPORTLOG.Add(entry);
db.SaveChanges();
return entry.IMPORTID;
}
}
catch (Exception ex)
{
//DbEntityValidationException 查看验证失败具体的字段
errors.Add(ex.Message);
return 0;
}
}
///
/// 修改状态
///
/// 错误信息
/// 导入批次
/// 状态值
///
public bool UpdateDoneStatus(ref ValidationErrors errors, decimal importId, decimal doneStatus)
{
try
{
using (var db = new crmContext())
{
var entry = db.BAS_EXCELIMPORTLOG.FirstOrDefault(m => m.IMPORTID == importId);
entry.DONESTATUS = doneStatus;
return db.SaveChanges().GetResult();
}
}
catch (Exception ex)
{
errors.Add(ex.Message);
return false;
}
}
///
/// 删除excel导入日志
///
/// 错误信息
/// 批次ID
///
public bool Delete(ref ValidationErrors errors, decimal importId)
{
try
{
using (var db = new crmContext())
{
var entry = db.BAS_EXCELIMPORTLOG.FirstOrDefault(m => m.IMPORTID == importId);
if (entry == null)
return false;
db.BAS_EXCELIMPORTLOG.Remove(entry);
return db.SaveChanges().GetResult();
}
}
catch (Exception ex)
{
errors.Add(ex.Message);
return false;
}
}
///
/// 获取单个导入文件日志信息
///
///
///
public BAS_EXCELIMPORTLOG GetModel(decimal importId)
{
using (var db = new crmContext())
{
return db.BAS_EXCELIMPORTLOG.FirstOrDefault(m => m.IMPORTID == importId);
}
}
public void UpdateDateTime(TimeSpan span, decimal importId, int typeId)
{
try
{
using (var db = new crmContext())
{
var entry = db.BAS_EXCELIMPORTLOG.FirstOrDefault(m => m.IMPORTID == importId);
if (typeId == 1)
{
entry.EXTINFO1 = span.TotalSeconds.ToString();//导入时间
}
else if (typeId == 2)
{
entry.EXTINFO2 = span.TotalSeconds.ToString();//计算时间
}
else if (typeId == 3)
{
entry.EXTINFO3 = span.TotalSeconds.ToString();//生成业务时间
}
db.SaveChanges();
}
}
catch (Exception ex) { LogHelper.Error("记录导入时间出{importId:" + importId + "typeId:" + typeId + "}:" + ex.ToString()); }
}
#region 获取分页数据列表
///
/// 分页获取列表
///
/// 分页信息
/// 状态
/// 导入类型
/// 开始时间
/// 结束时间
///
public List GetList(ref Pager pager, string doneStatus, string excelType, string stime, string etime)
{
using (var db = new crmContext())
{
var queryData = db.BAS_EXCELIMPORTLOG.AsQueryable();
if (!string.IsNullOrWhiteSpace(doneStatus))
{
decimal _doneStatus = Convert.ToDecimal(doneStatus);
queryData = queryData.Where(m => m.DONESTATUS == _doneStatus);
}
if (!string.IsNullOrWhiteSpace(excelType))
{
queryData = queryData.Where(m => m.EXCELTYPE == excelType);
}
DateTime date1;
if (!string.IsNullOrWhiteSpace(stime) && DateTime.TryParse(stime, out date1))
queryData = queryData.Where(m => m.CTIME >= date1);
DateTime date2;
if (!string.IsNullOrWhiteSpace(etime) && DateTime.TryParse(etime, out date2))
{
date2 = date2.AddDays(1);
queryData = queryData.Where(m => m.CTIME < date2);
}
queryData = queryData.OrderByDescending(m => m.CTIME);
PagerUtil.SetPager(ref queryData, ref pager);
return queryData.ToList();
}
}
#endregion
}
}