Files
zszq-trs/YLErpDAL/Modules/SalesModule/SalesmenDataService.cs
T
2024-05-09 14:06:26 +08:00

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();
}
}
}