ComplianceServer/oldcode/BLL/Wx/WX_INNERUSERJOBNUM_BL.cs

185 lines
7.7 KiB
C#

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<WX_INNERUSERJOBNUM_Extend> 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<WX_INNERUSERJOBNUM_Extend>(ref returnData, ref page);
return returnData.ToList();
}
}
public List<WX_INNERUSERJOBNUM_Extend> 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<WX_INNERUSERJOBNUM_Extend>(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; }
}
}
}