using BaseOUDAL; using YLErp.Model.Enum; namespace YLErp.Modules.SalesModule { /// /// 销售人员信息服务 /// public class SalesmenDataService : YLBaseService { public SalesmenDataService(OptUserInfo userInfo) : base(userInfo) { } public List GetSalesmen() { var query = from s in DbContext.salesmen where s.Status == 0 select s; return query.ToList(); } public List GetAllSalesmen() { var query = from s in DbContext.salesmen select s; return query.ToList(); } public List GetSalesmen(List 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(); } /// /// /// public List GetDepartment() { var query = (from s in DbContext.salesmen where s.Status == 0 select (s.Department)).Distinct(); return query.ToList(); } /// /// /// public SearchListResult SalesmenQuery(BaseSearchReq req, List ids, List 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 GetSalesIdByNames(IEnumerable names) { if (names == null || !names.Any()) { return Enumerable.Empty(); } 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 GetSalesNamesByIds(List Ids) { if (Ids == null || !Ids.Any()) { return Enumerable.Empty(); } 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(); } } }