From 81ac184ee7fcf0a93eee4d2026edc91f3f3c0070 Mon Sep 17 00:00:00 2001 From: username@email.com <yzy2002yzy@163.com> Date: 星期三, 28 十二月 2022 10:07:57 +0800 Subject: [PATCH] 意向客户的电话次数,展示 --- zhengcaioa/Services/IntentionCustomerService.cs | 201 ++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 178 insertions(+), 23 deletions(-) diff --git a/zhengcaioa/Services/IntentionCustomerService.cs b/zhengcaioa/Services/IntentionCustomerService.cs index e287578..8a8d309 100644 --- a/zhengcaioa/Services/IntentionCustomerService.cs +++ b/zhengcaioa/Services/IntentionCustomerService.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using AutoMapper; +using CommonToolsCore; using DTO; using IServices; using Microsoft.AspNetCore.Mvc.Rendering; @@ -26,15 +27,24 @@ 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 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 intentionCustomer = _mapper.Map<IntentionCustomer>(intentionCustomerDTO); + 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<IntentionCustomer>(intentionCustomerDTO); if (String.IsNullOrEmpty(intentionCustomer.Id)) @@ -81,10 +91,30 @@ 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; + + if (!string.IsNullOrEmpty(intentionCustomer.HuiyuanId)) + { + updateproject.HuiyuanId = intentionCustomer.HuiyuanId; + } + } _context.SaveChanges(); - resultEntity.ReturnID = intentionCustomer.Id; + + var listPosition = _context.IntentionCustomers.Where(r => r.RecStatus == "A").ToList(); + + var intentionCustomerDTOs = _mapper.Map<List<IntentionCustomerDTO>>(listPosition); + CacheHelperNetCore.CacheInsert("intentionCustomerDTOs", intentionCustomerDTOs); + + resultEntity.ReturnID = intentionCustomer.Id; resultEntity.Result = true; } catch (Exception ex) @@ -166,10 +196,25 @@ 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 == "CooperatecustomCustomer" && x.CodeField == "khly") + int aaaa = 0; + if (!string.IsNullOrWhiteSpace(searchEntity.Visittimes)) + { + int.TryParse(searchEntity.Visittimes, out aaaa); + } + + + 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 @@ -179,11 +224,27 @@ on a.Ywjl equals e.Id into esss from abi in esss.DefaultIfEmpty() - join f in _context.Areas on a.Sheng equals f.CodeId + + 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" + + join l in _context.IntentionVisits.Where(x => x.RecStatus == "A").GroupBy(q => new { q.Viscustomer }).Select(q => new + { + Viscustomer = q.Key.Viscustomer, + Visittimes = q.Count(), + }) + on a.Id equals l.Viscustomer + into lsss + from lll in lsss.DefaultIfEmpty() + + 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()) @@ -195,7 +256,15 @@ && (string.IsNullOrWhiteSpace(searchEntity.AreaId) || a.AreaId == searchEntity.AreaId.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.Creater) || a.Creater == searchEntity.Creater.Trim()) - select new IntentionCustomerDTO + && (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) )) + && (aaaa <= 0 || lll.Visittimes >= aaaa) + + + //&& (string.IsNullOrWhiteSpace(searchEntity.Shifouweixin) || a.Shifoutianjiaweixin == searchEntity.Shifouweixin.Trim()) + select new IntentionCustomerDTO { Id = a.Id, Sheng = a.Sheng, @@ -235,20 +304,68 @@ 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"), - } - ).OrderByDescending(x => x.Modifytime).ToList(); + Customertype = "妗f瀹㈡埛", + 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") : "", + Visittimes = lll.Visittimes, + } + ); + if (!string.IsNullOrWhiteSpace(searchEntity.Shifouweixin)) + { + query = query.Where( a=>a.Shifoutianjiaweixin == searchEntity.Shifouweixin.Trim()); + } + if (!string.IsNullOrWhiteSpace(searchEntity.ShifouDianhua)) + { + if (searchEntity.ShifouDianhua != "A") + { + query = query.Where(a => a.Tel == null || a.Tel == ""); + } + else + { + query = query.Where(a => a.Tel != null && a.Tel != ""); + } + + } + if (!string.IsNullOrWhiteSpace(searchEntity.Visittimes)) + { + if (searchEntity.ShifouDianhua != "A") + { + query = query.Where(a => a.Tel == null || a.Tel == ""); + } + else + { + query = query.Where(a => a.Tel != null && a.Tel != ""); + } + } + - if (searchEntity.totalrows == 0) + //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); + var lianlist = query.OrderByDescending(x => x.Modifytime).Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList(); + + + //foreach (var intentionCustomerDTO in lianlist) + //{ + // intentionCustomerDTO.Visittimes = _context.IntentionVisits.Count(x => x.RecStatus == "A" && x.Viscustomer == intentionCustomerDTO.Id); + //} + + + data.LoadData(searchEntity, lianlist); return data; } @@ -285,9 +402,16 @@ /// <returns></returns> public List<IntentionCustomerDTO> GetList() { - + List<IntentionCustomerDTO> intentionCustomerDTOs = (List<IntentionCustomerDTO>)CacheHelperNetCore.CacheValue("intentionCustomerDTOs"); + if (intentionCustomerDTOs != null && intentionCustomerDTOs.Count > 0) + { + return intentionCustomerDTOs; + } var listPosition = _context.IntentionCustomers.Where(r => r.RecStatus == "A").ToList(); + + intentionCustomerDTOs = _mapper.Map<List<IntentionCustomerDTO>>(listPosition); + CacheHelperNetCore.CacheInsert("intentionCustomerDTOs", intentionCustomerDTOs); var list = _mapper.Map<List<IntentionCustomerDTO>>(listPosition); return list; @@ -313,5 +437,36 @@ return result; } + + public List<IntentionCustomerDTO> 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<List<IntentionCustomerDTO>>(listPosition); + return list; + } + + public List<IntentionCustomerDTO> 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<List<IntentionCustomerDTO>>(listPosition); + return list; + } + + public List<IntentionCustomerDTO> 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<List<IntentionCustomerDTO>>(listPosition); + return list; + } + } } -- Gitblit v1.9.1