using System; using System.Collections.Generic; using System.Linq; using WX.CRM.BLL.Base; using WX.CRM.BLL.Util; using WX.CRM.Common; using WX.CRM.IBLL.Wx; using WX.CRM.Model.Entity; using WX.CRM.Model.MAP; namespace WX.CRM.BLL.Wx { public class WX_INNERUSERJOBNUM_BL : IWX_INNERUSERJOBNUM { public WX_INNERUSERJOBNUM GetModel(decimal pkid) { using (var db = new crmContext()) { return db.WX_INNERUSERJOBNUM.Where(m => m.PKID == pkid).FirstOrDefault(); } } public List GetList(ref Pager page, string username, string num, string inneruserId, string groupId, decimal salesId) { using (var db = new crmContext()) { var queryData = db.WX_INNERUSERJOBNUM.AsQueryable(); if (!string.IsNullOrWhiteSpace(username)) { username = username.Trim(); queryData = queryData.Where(m => m.WXUSERNAME.Contains(username)); } if (!string.IsNullOrWhiteSpace(num)) { num = num.Trim(); queryData = queryData.Where(m => m.WXUSERNAME.Contains(num)); } if (!string.IsNullOrWhiteSpace(inneruserId)) { decimal userid = Convert.ToDecimal(inneruserId); queryData = queryData.Where(m => m.INNERUSERID == userid); } else if (!string.IsNullOrWhiteSpace(groupId)) { decimal[] _groupIds = OperationUtil.ConvertToDecimal(groupId.Split(',')); var userids = db.BAS_INNERUSERGROUP.Where(m => _groupIds.Contains(m.GID.Value)).Select(m => m.INNERUSERID); queryData = queryData.Where(m => userids.Contains(m.INNERUSERID.Value)); } if (salesId > 0) queryData = queryData.Where(m => m.INNERUSERID == salesId); var returnData = (from a in queryData join c in db.BAS_INNERUSER on a.INNERUSERID equals c.PKID join d in db.BAS_INNERUSERGROUP on c.PKID equals d.INNERUSERID join e in db.BAS_INNERGROUP on d.GID equals e.GID select new WX_INNERUSERJOBNUM_Extend() { wx_inneruserJobNum = a, groupid = d.GID.Value, groupName = e.GNAME, inneruserEid = c.EID, inneruserName = c.TRUENAME }); returnData = returnData.OrderBy(m => m.wx_inneruserJobNum.WXUSERNAME); PagerUtil.SetPager(ref returnData, ref page); return returnData.ToList(); } } public List GetList(ref Pager page, string alias) { using (var db = new crmContext()) { var queryData = db.WX_INNERUSERJOBNUM.AsQueryable(); alias = alias.Trim(); queryData = queryData.Where(m => m.WXNUMBER == alias); var returnData = (from a in queryData join c in db.BAS_INNERUSER on a.INNERUSERID equals c.PKID //join d in db.BAS_INNERUSERGROUP on c.PKID equals d.INNERUSERID //join e in db.BAS_INNERGROUP on d.GID equals e.GID select new WX_INNERUSERJOBNUM_Extend() { wx_inneruserJobNum = a, //groupid = d.GID.Value, //groupName = e.GNAME, inneruserEid = c.EID, inneruserName = c.TRUENAME, DismisTime = c.DISMISSTIME }); returnData = returnData.OrderByDescending(m => m.wx_inneruserJobNum.ENDDATE).OrderByDescending(m => m.wx_inneruserJobNum.CTIME); PagerUtil.SetPager(ref returnData, ref page); return returnData.ToList(); } } public bool Create(ref ValidationErrors errors, decimal eid, string username, string num) { try { using (crmContext db = new crmContext()) { BAS_INNERUSER entry = db.BAS_INNERUSER.Where(m => m.EID == eid).FirstOrDefault(); if (entry == null) { errors.Add("工号不正确!"); return false; } WX_INNERUSERJOBNUM model = db.WX_INNERUSERJOBNUM.Where(m => m.INNERUSERID == entry.PKID && m.WXUSERNAME == username).FirstOrDefault(); if (model != null) { errors.Add("该工号与工作微信号关系已存在!"); return false; } model = new WX_INNERUSERJOBNUM(); model.PKID = new SEQUENCES_BL().Seq_base_get(); model.INNERUSERID = entry.PKID; model.WXNUMBER = num; model.WXUSERNAME = username; model.CTIME = DateTime.Now; db.WX_INNERUSERJOBNUM.Add(model); return db.SaveChanges().GetResult(); } } catch (Exception ex) { errors.Add(ex.Message); return false; } } public bool Update(ref ValidationErrors errors, decimal pkid, decimal eid, string username, string num) { try { using (crmContext db = new crmContext()) { WX_INNERUSERJOBNUM entry = db.WX_INNERUSERJOBNUM.FirstOrDefault(m => m.PKID == pkid); if (entry == null) { errors.Add("找不到数据!"); return false; } BAS_INNERUSER user = db.BAS_INNERUSER.Where(m => m.EID == eid).FirstOrDefault(); if (user == null) { errors.Add("工号不正确!"); return false; } entry.INNERUSERID = user.PKID; entry.WXNUMBER = num; entry.WXUSERNAME = username; return db.SaveChanges().GetResult(); } } catch (Exception ex) { errors.Add(ex.Message); return false; } } public bool Delete(ref ValidationErrors errors, decimal id) { try { using (var db = new crmContext()) { WX_INNERUSERJOBNUM entry = db.WX_INNERUSERJOBNUM.FirstOrDefault(m => m.PKID == id); if (entry == null) { errors.Add("数据已经被删除!"); return false; } db.WX_INNERUSERJOBNUM.Remove(entry); return db.SaveChanges().GetResult(); } } catch (Exception ex) { errors.Add(ex.Message); return false; } } } }