ComplianceServer/oldcode/BLL/Base/BAS_USERGROUPCHANGELOG_BL.cs

129 lines
5.2 KiB
C#

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;
namespace WX.CRM.BLL.Base
{
public class BAS_USERGROUPCHANGELOG_BL : IBAS_USERGROUPCHANGELOG, IBAS_USERGROUPCHANGELOG_Q
{
#region
/// <summary>
/// 数据的修改
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool Update(ref ValidationErrors errors, decimal pkid, DateTime inDate, DateTime outDate)
{
try
{
using (var db = new WX.CRM.Model.Entity.crmContext())
{
WX.CRM.Model.Entity.BAS_USERGROUPCHANGELOG entry = db.BAS_USERGROUPCHANGELOG.FirstOrDefault(m => m.PKID == pkid);
if (entry == null)
{
errors.Add("找不到数据!");
return false;
}
entry.INDATE = inDate;
entry.OUTDATE = outDate;
db.SaveChanges();
return true;
}
}
catch (Exception ex)
{
errors.Add(ex.Message);
return false;
}
}
#endregion
#region
/// <summary>
/// 数据的保存
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool Save(ref ValidationErrors errors, WX.CRM.Model.Entity.BAS_USERGROUPCHANGELOG model)
{
try
{
using (var db = new WX.CRM.Model.Entity.crmContext())
{
BAS_INNERUSER user = db.BAS_INNERUSER.FirstOrDefault(m => m.PKID == model.SALESID);
if (user == null)
{
errors.Add("找不到这个员工!");
return false;
}
WX.CRM.Model.Entity.BAS_USERGROUPCHANGELOG entry = db.BAS_USERGROUPCHANGELOG.OrderByDescending(m => m.CTIME).FirstOrDefault(m => m.SALESID == model.SALESID);
if (entry != null)
{
entry.OUTDATE = model.INDATE.Value;//上次调出时间是这次调入的时间-1天
model.INDATE = model.INDATE.Value.AddDays(1);
}
model.PKID = new SEQUENCES_BL().Seq_base_get();
model.SALESEID = user.EID;
model.CTIME = DateTime.Now;
db.BAS_USERGROUPCHANGELOG.Add(model);
return db.SaveChanges().GetResult();
}
}
catch (Exception ex)
{
errors.Add(ex.Message);
return false;
}
}
#endregion
#region
public List<WX.CRM.Model.Entity.BAS_USERGROUPCHANGELOG_Extend> GetList(ref Pager pager, decimal? inGroupId, decimal? outGroupId, decimal? eid, string userName)
{
using (var db = new WX.CRM.Model.Entity.crmContext())
{
var queryData = db.BAS_USERGROUPCHANGELOG.AsQueryable();
if (inGroupId != null)
{
queryData = queryData.Where(m => m.NEWGROUPID == inGroupId);
}
if (outGroupId != null)
queryData = queryData.Where(m => m.OLDGROUPID == outGroupId);
if (eid != null)
queryData = queryData.Where(m => m.SALESEID.Value == eid);
if (!string.IsNullOrWhiteSpace(userName))
{
var user = db.BAS_INNERUSER.FirstOrDefault(m => m.UNAME == userName);
decimal userid = user == null ? -1 : user.PKID;
queryData = queryData.Where(m => m.SALESID == userid);
}
//queryData = queryData.OrderByDescending(m => m.CTIME);
var modelist = (from a in queryData
join newGroup in db.BAS_INNERGROUP on a.NEWGROUPID equals newGroup.GID into jiontemp2
from newGroup in jiontemp2.DefaultIfEmpty()
join oldGroup in db.BAS_INNERGROUP on a.OLDGROUPID equals oldGroup.GID into jiontemp
from oldGroup in jiontemp.DefaultIfEmpty()
join user in db.BAS_INNERUSER on a.SALESID equals user.PKID
select new BAS_USERGROUPCHANGELOG_Extend()
{
ChangeLog = a,
InGroupName = newGroup.GNAME,
OutGroupName = oldGroup.GNAME,
UserName = user.UNAME
}
);
modelist = modelist.OrderByDescending(m => m.ChangeLog.CTIME);
PagerUtil.SetPager<WX.CRM.Model.Entity.BAS_USERGROUPCHANGELOG_Extend>(ref modelist, ref pager);
return modelist.ToList();
}
}
#endregion
}
}