185 lines
7.7 KiB
C#
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; }
|
|
}
|
|
}
|
|
}
|