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 修改 /// /// 数据的修改 /// /// /// 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 保存 /// /// 数据的保存 /// /// /// 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 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(ref modelist, ref pager); return modelist.ToList(); } } #endregion } }