196 lines
6.0 KiB
C#
196 lines
6.0 KiB
C#
using BaseOUDAL;
|
|
using YLErp.Model.Enum;
|
|
|
|
namespace YLErp.Modules.SalesModule
|
|
{
|
|
/// <summary>
|
|
/// 销售人员信息服务
|
|
/// </summary>
|
|
public class SalesmenDataService : YLBaseService
|
|
{
|
|
public SalesmenDataService(OptUserInfo userInfo) : base(userInfo)
|
|
{
|
|
|
|
}
|
|
|
|
public List<Salesman> GetSalesmen()
|
|
{
|
|
var query = from s in DbContext.salesmen
|
|
where s.Status == 0
|
|
select s;
|
|
return query.ToList();
|
|
}
|
|
|
|
public List<Salesman> GetAllSalesmen()
|
|
{
|
|
var query = from s in DbContext.salesmen
|
|
select s;
|
|
return query.ToList();
|
|
}
|
|
|
|
public List<Salesman> GetSalesmen(List<int> Id)
|
|
{
|
|
var query = from s in DbContext.salesmen
|
|
where Id.Contains(s.id)
|
|
select s;
|
|
return query.ToList();
|
|
}
|
|
|
|
public Salesman GetSalesman(int Id)
|
|
{
|
|
var query = from s in DbContext.salesmen
|
|
where s.id == Id
|
|
select s;
|
|
return query.FirstOrDefault();
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public List<string> GetDepartment()
|
|
{
|
|
var query = (from s in DbContext.salesmen
|
|
where s.Status == 0
|
|
select (s.Department)).Distinct();
|
|
return query.ToList();
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public SearchListResult<Salesman> SalesmenQuery(BaseSearchReq req, List<int> ids, List<string> departments)
|
|
{
|
|
var query = from s in DbContext.salesmen
|
|
select s;
|
|
|
|
if (ids != null && ids.Count() > 0)
|
|
{
|
|
query = query.Where(O => ids.Contains(O.id));
|
|
}
|
|
|
|
if (departments != null && departments.Count() > 0)
|
|
{
|
|
query = query.Where(O => departments.Contains(O.Department));
|
|
}
|
|
|
|
var ret = query.ToList();
|
|
|
|
if (string.IsNullOrEmpty(req.sidx))
|
|
{
|
|
req.sidx = "id";
|
|
req.sord = "desc";
|
|
}
|
|
|
|
var retListResult = ret.AsQueryable().ToSearchList(req);
|
|
return retListResult;
|
|
}
|
|
|
|
public bool SaveSalesman(Salesman salesman)
|
|
{
|
|
Salesman model;
|
|
CheckVaild(salesman);
|
|
if (salesman.id == 0)
|
|
{
|
|
model = new Salesman
|
|
{
|
|
Name = salesman.Name,
|
|
Department = salesman.Department,
|
|
Mail = salesman.Mail,
|
|
Telephone = salesman.Telephone,
|
|
Mobile = salesman.Mobile,
|
|
Status = salesman.Status
|
|
};
|
|
DbContext.salesmen.Add(model);
|
|
}
|
|
else
|
|
{
|
|
model = DbContext.salesmen.Find(salesman.id);
|
|
|
|
if (model == null)
|
|
{
|
|
throw new ServiceException("要更新的数据 已不存在");
|
|
}
|
|
model.Name = salesman.Name;
|
|
model.Department = salesman.Department;
|
|
model.Mail = salesman.Mail;
|
|
model.Telephone = salesman.Telephone;
|
|
model.Mobile = salesman.Mobile;
|
|
model.Status = salesman.Status;
|
|
}
|
|
DbContext.SaveChanges();
|
|
return true;
|
|
}
|
|
|
|
private void CheckVaild(Salesman salesman)
|
|
{
|
|
if (string.IsNullOrEmpty(salesman.Name))
|
|
{
|
|
throw new ServiceException("销售员姓名 必须填写");
|
|
}
|
|
if (string.IsNullOrEmpty(salesman.Department))
|
|
{
|
|
throw new ServiceException("销售员部门 必须填写");
|
|
}
|
|
}
|
|
|
|
public Salesman GetSalesmanByName(string name)
|
|
{
|
|
var query = from s in DbContext.salesmen
|
|
where s.Status == 0 && s.Name == name
|
|
select s;
|
|
return query.FirstOrDefault();
|
|
}
|
|
|
|
public IEnumerable<SalesmanBase> GetSalesIdByNames(IEnumerable<string> names)
|
|
{
|
|
if (names == null || !names.Any())
|
|
{
|
|
return Enumerable.Empty<SalesmanBase>();
|
|
}
|
|
|
|
var query = from s in DbContext.salesmen
|
|
where s.Status == 0 && names.Contains(s.Name)
|
|
select new SalesmanBase
|
|
{
|
|
id = s.id,
|
|
Name = s.Name
|
|
};
|
|
|
|
if (PS.Config.ErpElement.SaleMode == YLErp.Configuration.Enums.SaleMode.CustomerManager)
|
|
{
|
|
using (var db = DbContextFactory.GetErpBaseContext())
|
|
{
|
|
query = from s in db.SystemUsers
|
|
where s.State == 0 && names.Contains(s.Name) && (s.AccountPost & (int)AccountPostEnum.客户经理) > 0
|
|
select new SalesmanBase
|
|
{
|
|
id = s.Id,
|
|
Name = s.Name
|
|
};
|
|
return query.ToArray();
|
|
}
|
|
}
|
|
|
|
return query.ToArray();
|
|
}
|
|
|
|
public IEnumerable<SalesmanBase> GetSalesNamesByIds(List<int> Ids)
|
|
{
|
|
if (Ids == null || !Ids.Any())
|
|
{
|
|
return Enumerable.Empty<SalesmanBase>();
|
|
}
|
|
|
|
var query = from s in DbContext.salesmen
|
|
where s.Status == 0 && Ids.Any(a => a.Equals(s.id))
|
|
select new SalesmanBase
|
|
{
|
|
id = s.id,
|
|
Name = s.Name
|
|
};
|
|
|
|
return query.ToArray();
|
|
}
|
|
}
|
|
}
|