using System; using System.Collections.Generic; using System.Linq; using System.Text; using AutoMapper; using DTO; using IServices; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.EntityFrameworkCore; using zhengcaioa.Models; namespace Services { public class IntentionCustomerService : IIntentionCustomerService { private readonly zhengcaioaContext _context; private readonly IMapper _mapper; public IntentionCustomerService(zhengcaioaContext context, IMapper mapper) { _context = context; _mapper = mapper; } public ResultEntity save(IntentionCustomerDTO intentionCustomerDTO) { ResultEntity resultEntity = new ResultEntity(); try { var checkUserSn = _context.IntentionCustomers.Where(x => x.Name == intentionCustomerDTO.Name && x.RecStatus == "A" && x.Id != intentionCustomerDTO.Id).FirstOrDefault(); if (checkUserSn != null && (string.IsNullOrWhiteSpace(intentionCustomerDTO.Id) || (!string.IsNullOrWhiteSpace(intentionCustomerDTO.Id) && checkUserSn.Id != intentionCustomerDTO.Id))) { resultEntity.Result = false; resultEntity.Message = "客户单位重复"; return resultEntity; } var checkcooper = _context.CooperatecustomCustomers.Where(x => x.Name == intentionCustomerDTO.Name && x.RecStatus == "A" ).FirstOrDefault(); if (checkcooper != null ) { resultEntity.Result = false; resultEntity.Message = "已存在合作客户"; return resultEntity; } var intentionCustomer = _mapper.Map(intentionCustomerDTO); if (String.IsNullOrEmpty(intentionCustomer.Id)) { intentionCustomer.Id = Guid.NewGuid().ToString(); _context.IntentionCustomers.Add(intentionCustomer); } else { var updateproject = _context.IntentionCustomers.Find(intentionCustomer.Id); updateproject.Sheng = intentionCustomer.Sheng; updateproject.City = intentionCustomer.City; updateproject.AreaId = intentionCustomer.AreaId; updateproject.Khly = intentionCustomer.Khly; updateproject.Hyfl = intentionCustomer.Hyfl; updateproject.Khlx = intentionCustomer.Khlx; updateproject.Ywjl = intentionCustomer.Ywjl; updateproject.Name = intentionCustomer.Name; updateproject.Postal = intentionCustomer.Postal; updateproject.Address = intentionCustomer.Address; updateproject.Url = intentionCustomer.Url; updateproject.Tel = intentionCustomer.Tel; updateproject.Phone = intentionCustomer.Phone; updateproject.Qq = intentionCustomer.Qq; updateproject.Email = intentionCustomer.Email; updateproject.FName = intentionCustomer.FName; updateproject.FTel = intentionCustomer.FTel; updateproject.FQq = intentionCustomer.FQq; updateproject.YwName = intentionCustomer.YwName; updateproject.YwTel = intentionCustomer.YwTel; updateproject.YwQq = intentionCustomer.YwQq; updateproject.JgCode = intentionCustomer.JgCode; updateproject.Khh = intentionCustomer.Khh; updateproject.Count = intentionCustomer.Count; updateproject.ShrName = intentionCustomer.ShrName; updateproject.ShrTel = intentionCustomer.ShrTel; updateproject.ShrAddress = intentionCustomer.ShrAddress; updateproject.Remark = intentionCustomer.Remark; updateproject.RecStatus = intentionCustomer.RecStatus; updateproject.Modifier = intentionCustomer.Modifier; updateproject.Modifytime = intentionCustomer.Modifytime; updateproject.Yixiangtime = intentionCustomer.Yixiangtime; updateproject.Yixiang = intentionCustomer.Yixiang; updateproject.Dianxiaozhuanyuan = intentionCustomer.Dianxiaozhuanyuan; updateproject.Zuijinzhuizongtime = intentionCustomer.Zuijinzhuizongtime; updateproject.Weixin = intentionCustomer.Weixin; updateproject.Shifoutianjiaweixin = intentionCustomer.Shifoutianjiaweixin; updateproject.Weixiner = intentionCustomer.Weixiner; updateproject.Weixintime = intentionCustomer.Weixintime; } _context.SaveChanges(); resultEntity.ReturnID = intentionCustomer.Id; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } public IntentionCustomerDTO Get(string id) { var entity = _context.IntentionCustomers.Find(id); if (entity.RecStatus != "A") { entity = new IntentionCustomer(); } var intentionCustomerDTO = _mapper.Map(entity); return intentionCustomerDTO; } public IntentionCustomerDTO GetByName(string name) { var entity = _context.IntentionCustomers.Where(x=>x.Name == name).FirstOrDefault(); if (entity==null || entity.RecStatus != "A") { entity = new IntentionCustomer(); } var intentionCustomerDTO = _mapper.Map(entity); return intentionCustomerDTO; } public ResultDataEntity SearchByPaging(IntentionCustomerDTOSearch searchEntity) { ResultDataEntity data = new ResultDataEntity(); List list = new List(); var listCode = (from a in _context.SysCodeDtls join b in _context.SysCodes on a.CodeId equals b.Id where a.RecStatus == "A" && b.RecStatus == "A" select new CodeDataEntity() { CodeId = b.Id, CodeTable = b.CodeTable, CodeField = b.CodeField, CodeSn = a.CodeSn, Comments = a.Comments, Contents = a.Contents, RecStatus = a.RecStatus, Sort = a.Sort } ); DateTime Createtimestart = DateTime.Now; DateTime Createtimeend = DateTime.Now; if (!string.IsNullOrWhiteSpace(searchEntity.Createtime)) { string[] Createtimes = searchEntity.Createtime.Split("|"); DateTime.TryParse(Createtimes[0], out Createtimestart); DateTime.TryParse(Createtimes[1], out Createtimeend); Createtimeend = Createtimeend.AddDays(1); } DateTime Yixiangtimestart = DateTime.Now; DateTime Yixiangtimeend = DateTime.Now; if (!string.IsNullOrWhiteSpace(searchEntity.Yixiangtime)) { string[] Yixiangtimes = searchEntity.Yixiangtime.Split("|"); DateTime.TryParse(Yixiangtimes[0], out Yixiangtimestart); DateTime.TryParse(Yixiangtimes[1], out Yixiangtimeend); // Yixiangtimeend = Yixiangtimeend.AddDays(1); } var query = (from a in _context.IntentionCustomers join b in listCode.Where(x => x.CodeTable == "IntentionCustomer" && x.CodeField == "khly") on a.Khly equals b.CodeSn join c in listCode.Where(x => x.CodeTable == "CooperatecustomCustomer" && x.CodeField == "hyfl") on a.Hyfl equals c.CodeSn join d in listCode.Where(x => x.CodeTable == "CooperatecustomCustomer" && x.CodeField == "khlx") on a.Khlx equals d.CodeSn join e in _context.PltUsers.Where(x => x.RecStatus == "A" && x.Zhiwustatus == "A" && x.IsYwjl == "A") on a.Ywjl equals e.Id into esss from abi in esss.DefaultIfEmpty() join f in _context.PltUsers.Where(x => x.RecStatus == "A" && x.Zhiwustatus == "A" ) on a.Dianxiaozhuanyuan equals f.Id into fsss from fff in fsss.DefaultIfEmpty() join f in _context.Areas on a.Sheng equals f.CodeId join g in _context.Areas on a.City equals g.CodeId join h in _context.Areas on a.AreaId equals h.CodeId where a.RecStatus == "A" && (string.IsNullOrWhiteSpace(searchEntity.Createtime) || (a.Createtime >= Createtimestart && a.Createtime <= Createtimeend)) && (string.IsNullOrWhiteSpace(searchEntity.Name) || a.Name.Contains(searchEntity.Name.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.Khly) || a.Khly == searchEntity.Khly.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.Hyfl) || a.Hyfl == searchEntity.Hyfl.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.Khlx) || a.Khlx == searchEntity.Khlx.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.Ywjl) || a.Ywjl == searchEntity.Ywjl.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.Sheng) || a.Sheng == searchEntity.Sheng.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.City) || a.City == searchEntity.City.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.AreaId) || a.AreaId == searchEntity.AreaId.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.Creater) || a.Creater == searchEntity.Creater.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.Dianxiaozhuanyuan) || a.Dianxiaozhuanyuan == searchEntity.Dianxiaozhuanyuan.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.Yixiangtime) || (a.Yixiangtime >= Yixiangtimestart && a.Yixiangtime <= Yixiangtimeend)) && (string.IsNullOrWhiteSpace(searchEntity.Yixiang) || ( a.Yixiang == searchEntity.Yixiang.Trim() && (a.Ywjl == null || a.Ywjl == searchEntity.YwjlYx) )) //&& (string.IsNullOrWhiteSpace(searchEntity.Shifouweixin) || a.Shifoutianjiaweixin == searchEntity.Shifouweixin.Trim()) select new IntentionCustomerDTO { Id = a.Id, Sheng = a.Sheng, City = a.City, AreaId = a.AreaId, Khly = a.Khly, Hyfl = a.Hyfl, Khlx = a.Khlx, Ywjl = a.Ywjl, ShengName = f.Name + "-" + g.Name + "-" + h.Name, CityName = g.Name, AreaIdName = h.Name, KhlyName = b.Comments, HyflName = c.Comments, KhlxName = d.Comments, YwjlName = abi.UserName, Name = a.Name, Postal = a.Postal, Address = a.Address, Url = a.Url, Tel = a.Tel, Phone = a.Phone, Qq = a.Qq, Email = a.Email, FName = a.FName, FTel = a.FTel, FQq = a.FQq, YwName = a.YwName, YwTel = a.YwTel, YwQq = a.YwQq, JgCode = a.JgCode, Khh = a.Khh, Count = a.Count, ShrName = a.ShrName, ShrTel = a.ShrTel, ShrAddress = a.ShrAddress, Remark = a.Remark, Weixin = a.Weixin, Shifoutianjiaweixin = a.Shifoutianjiaweixin, Weixiner = a.Weixiner, Weixintime = a.Weixintime, RecStatus = a.RecStatus, Modifier = a.Modifier, Modifytime = a.Modifytime, CreatetimeName = a.Createtime.ToString("yyyy-MM-dd"), Yixiangtime = a.Yixiangtime, YixiangtimeName = a.Yixiangtime.HasValue? a.Yixiangtime.Value.ToString("yyyy-MM-dd"):"", Yixiang = a.Yixiang, Dianxiaozhuanyuan = a.Dianxiaozhuanyuan, DianxiaozhuanyuanName = fff.UserName, Zuijinzhuizongtime = a.Zuijinzhuizongtime, ZuijinzhuizongtimeName = a.Zuijinzhuizongtime.HasValue ? a.Zuijinzhuizongtime.Value.ToString("yyyy-MM-dd") : "", } ).OrderByDescending(x => x.Modifytime).ToList(); if (!string.IsNullOrWhiteSpace(searchEntity.Shifouweixin)) { query = query.Where( a=>a.Shifoutianjiaweixin == searchEntity.Shifouweixin.Trim()).ToList(); } //if (searchEntity.totalrows == 0) searchEntity.totalrows = query.Count(); var lianlist = query.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList(); data.LoadData(searchEntity, lianlist); return data; } /// /// 修改主表状态 /// /// 主id /// 用户 /// public ResultEntity ModifyStatus(string id, string userid) { ResultEntity result = new ResultEntity(); result.Result = true; var model = _context.IntentionCustomers.Find(id); if (model != null) { model.RecStatus = "D"; model.Modifier = userid; model.Modifytime = DateTime.Now; _context.SaveChanges(); } return result; } /// /// 获取所有有效意向客户 /// /// public List GetList() { var listPosition = _context.IntentionCustomers.Where(r => r.RecStatus == "A").ToList(); var list = _mapper.Map>(listPosition); return list; } /// /// 获取所有有效意向客户 /// /// public List GetList(string[] id) { List result = new List(); if (id != null) { var listPosition = _context.IntentionCustomers.Where(r => id.Contains(r.Id) && r.RecStatus == "A").ToList(); result = _mapper.Map>(listPosition); } return result; } public List GetListsalary(string userid, DateTime datemin, DateTime datemax) { var listPosition = _context.IntentionCustomers.Where(r => r.RecStatus == "A" && r.Creater == userid && r.Createtime >= datemin && r.Createtime < datemax).ToList(); var list = _mapper.Map>(listPosition); return list; } public List GetListsalaryweixin(string userid, DateTime datemin, DateTime datemax) { var listPosition = _context.IntentionCustomers.Where(r => r.RecStatus == "A" && r.Weixiner == userid && r.Weixintime >= datemin && r.Weixintime < datemax).ToList(); var list = _mapper.Map>(listPosition); return list; } public List GetListsalaryyixiang(string userid, DateTime datemin, DateTime datemax) { var listPosition = _context.IntentionCustomers.Where(r => r.RecStatus == "A" && r.Dianxiaozhuanyuan == userid && r.Yixiangtime >= datemin && r.Yixiangtime < datemax).ToList(); var list = _mapper.Map>(listPosition); return list; } } }