180 lines
7.9 KiB
C#
180 lines
7.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.IBLL.Base;
|
|
|
|
namespace WX.CRM.BLL.Base
|
|
{
|
|
public class BAS_GROUPLEADER_BL : IBAS_GROUPLEADER, IBAS_GROUPLEADER_Q
|
|
{
|
|
private WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext();
|
|
#region 新增
|
|
/// <summary>
|
|
/// 新增数据
|
|
/// </summary>
|
|
/// <param name="model"></param>
|
|
/// <returns></returns>
|
|
public bool Create(ref ValidationErrors errors, WX.CRM.Model.Entity.BAS_GROUPLEADER model)
|
|
{
|
|
try
|
|
{
|
|
var u = db.BAS_INNERUSER.FirstOrDefault(p => p.EID == model.map_EID);
|
|
if (u == null)
|
|
{
|
|
errors.Add("工号输入不对!");
|
|
return false;
|
|
}
|
|
model.INNERUSERID = u.PKID;
|
|
//if (model.LEADERTYPE == 10)
|
|
//{
|
|
// var entry1 = db.BAS_GROUPLEADER.FirstOrDefault(p => p.INNERGROUPID == model.INNERGROUPID && p.LEADERTYPE == 10);
|
|
// if (entry1 != null)
|
|
// {
|
|
// errors.Add("这组已经有第一组长了!");
|
|
// return false;
|
|
// }
|
|
//}
|
|
var entry = db.BAS_GROUPLEADER.FirstOrDefault(p => p.INNERGROUPID == model.INNERGROUPID && p.INNERUSERID == model.INNERUSERID);
|
|
if (entry != null)
|
|
{
|
|
errors.Add("该员工已经是这个组的负责人!");
|
|
return false;
|
|
}
|
|
db.BAS_GROUPLEADER.Add(model);
|
|
db.SaveChanges();
|
|
return true;
|
|
}
|
|
catch (Exception ex) { errors.Add(ex.Message); return false; }
|
|
}
|
|
#endregion
|
|
|
|
#region 删除
|
|
public bool Delete(ref ValidationErrors errors, decimal inneruserId, decimal groupId)
|
|
{
|
|
try
|
|
{
|
|
db.BAS_GROUPLEADER.Remove(db.BAS_GROUPLEADER.FirstOrDefault(p => p.INNERUSERID == inneruserId && p.INNERGROUPID == groupId));
|
|
db.SaveChanges();
|
|
return true;
|
|
}
|
|
catch (Exception ex) { errors.Add(ex.Message); return false; }
|
|
}
|
|
#endregion
|
|
#region 获取数据列表
|
|
public List<WX.CRM.Model.Entity.BAS_GROUPLEADER> GetList(string gName, string eID)
|
|
{
|
|
|
|
IQueryable<WX.CRM.Model.Entity.BAS_GROUPLEADER> query = db.BAS_GROUPLEADER;
|
|
IQueryable<WX.CRM.Model.Entity.BAS_INNERUSER> userQuery = db.BAS_INNERUSER;
|
|
IQueryable<WX.CRM.Model.Entity.BAS_INNERGROUP> groupQuery = db.BAS_INNERGROUP;
|
|
IQueryable<WX.CRM.Model.Entity.BAS_SALESDEPARTMENT> saldeptment = db.BAS_SALESDEPARTMENT;
|
|
if (!string.IsNullOrEmpty(eID))
|
|
{
|
|
decimal ieID = Convert.ToDecimal(eID);
|
|
userQuery = userQuery.Where(m => m.EID.Equals(ieID));
|
|
}
|
|
if (!string.IsNullOrEmpty(gName))
|
|
{
|
|
groupQuery = groupQuery.Where(m => m.GNAME.Contains(gName));
|
|
}
|
|
|
|
List<WX.CRM.Model.Entity.BAS_GROUPLEADER> modeList = new List<WX.CRM.Model.Entity.BAS_GROUPLEADER>();
|
|
//modeList = (from m in query
|
|
// join a in userQuery on m.INNERUSERID equals a.PKID
|
|
// join b in groupQuery on m.INNERGROUPID equals b.GID
|
|
// select new WX.CRM.Model.Entity.BAS_GROUPLEADER() //无法构造实体复杂类,待处理!??
|
|
// {
|
|
// CTIME = m.CTIME,
|
|
// gName = b.GNAME,
|
|
// INNERGROUPID = m.INNERGROUPID,
|
|
// INNERUSERID = m.INNERUSERID,
|
|
// uName = a.UNAME,
|
|
// EID = a.EID,
|
|
// CREATEUSER = m.CREATEUSER,
|
|
// UTIME = m.UTIME,
|
|
// UPDATEUSER = m.UPDATEUSER
|
|
// }).OrderBy(m => m.INNERGROUPID).ToList();
|
|
|
|
List<tem> modeList2 = new List<tem>();
|
|
modeList2 = ((from m in query
|
|
join a in userQuery on m.INNERUSERID equals a.PKID
|
|
join b in groupQuery on m.INNERGROUPID equals b.GID
|
|
select new tem()
|
|
{
|
|
CTIME = m.CTIME,
|
|
gName = b.GNAME,
|
|
INNERGROUPID = m.INNERGROUPID,
|
|
INNERUSERID = m.INNERUSERID,
|
|
uName = a.UNAME,
|
|
EID = a.EID,
|
|
LEARDERTYPE = m.LEADERTYPE
|
|
}).Union(from m in query
|
|
join a in userQuery on m.INNERUSERID equals a.PKID
|
|
join b in saldeptment on m.INNERGROUPID equals b.SALEDEPTID
|
|
select new tem()
|
|
{
|
|
CTIME = m.CTIME,
|
|
gName = b.DEPTNAME,
|
|
INNERGROUPID = m.INNERGROUPID,
|
|
INNERUSERID = m.INNERUSERID,
|
|
uName = a.UNAME,
|
|
EID = a.EID,
|
|
LEARDERTYPE = m.LEADERTYPE
|
|
}).Union(from m in query
|
|
join a in userQuery on m.INNERUSERID equals a.PKID
|
|
where m.INNERGROUPID == 0
|
|
select new tem()
|
|
{
|
|
CTIME = m.CTIME,
|
|
gName = null,
|
|
INNERGROUPID = m.INNERGROUPID,
|
|
INNERUSERID = m.INNERUSERID,
|
|
uName = a.UNAME,
|
|
EID = a.EID,
|
|
LEARDERTYPE = m.LEADERTYPE
|
|
})).OrderByDescending(m => m.CTIME).ToList();
|
|
foreach (var m in modeList2)
|
|
{
|
|
modeList.Add(new WX.CRM.Model.Entity.BAS_GROUPLEADER()
|
|
{
|
|
CTIME = m.CTIME,
|
|
gName = m.INNERGROUPID == 0 ? "全部" : m.gName,
|
|
INNERGROUPID = m.INNERGROUPID,
|
|
INNERUSERID = m.INNERUSERID,
|
|
uName = m.uName,
|
|
EID = m.EID,
|
|
LEADERTYPE = m.LEARDERTYPE
|
|
});
|
|
}
|
|
return modeList;
|
|
}
|
|
#endregion
|
|
|
|
public class tem
|
|
{
|
|
public DateTime? CTIME { get; set; }
|
|
public string gName { get; set; }
|
|
public decimal INNERGROUPID { get; set; }
|
|
public decimal INNERUSERID { get; set; }
|
|
public string uName { get; set; }
|
|
public decimal EID { get; set; }
|
|
public decimal? LEARDERTYPE { get; set; }
|
|
}
|
|
|
|
public List<WX.CRM.Model.Entity.BAS_GROUPLEADER> GetListGroupLeaderByUserId(decimal UserId)
|
|
{
|
|
return db.BAS_GROUPLEADER.Where(p => p.INNERUSERID.Equals(UserId)).ToList();
|
|
}
|
|
|
|
public WX.CRM.Model.Entity.BAS_GROUPLEADER GetInfo(decimal gid, decimal userid)
|
|
{
|
|
return db.BAS_GROUPLEADER.FirstOrDefault(p => p.INNERGROUPID == gid && p.INNERUSERID == userid);
|
|
}
|
|
public List<WX.CRM.Model.Entity.BAS_GROUPLEADER> GetList()
|
|
{
|
|
return db.BAS_GROUPLEADER.ToList();
|
|
}
|
|
}
|
|
}
|