From 5421f9a6e5e2b28cc32aa8aa6dec9becd0c1eb3c Mon Sep 17 00:00:00 2001 From: username@email.com <yzy2002yzy@163.com> Date: 星期三, 04 一月 2023 10:19:57 +0800 Subject: [PATCH] 业务经理意向和合作客户只能1000,90天意向不转合作就制空业务经理,查询没有业务经理的档案客户和合作客户 --- zhengcaioa/Services/CooperatecustomCustomerService.cs | 278 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 258 insertions(+), 20 deletions(-) diff --git a/zhengcaioa/Services/CooperatecustomCustomerService.cs b/zhengcaioa/Services/CooperatecustomCustomerService.cs index fa900d8..36b9928 100644 --- a/zhengcaioa/Services/CooperatecustomCustomerService.cs +++ b/zhengcaioa/Services/CooperatecustomCustomerService.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Text; using AutoMapper; +using CommonToolsCore; using DTO; using IServices; using Microsoft.AspNetCore.Mvc.Rendering; @@ -16,10 +17,12 @@ { private readonly zhengcaioaContext _context; private readonly IMapper _mapper; - public CooperatecustomCustomerService(zhengcaioaContext context, IMapper mapper) + private readonly zcUserInfoN_dbContext _zcUserInfoNcontext; + public CooperatecustomCustomerService(zhengcaioaContext context, IMapper mapper, zcUserInfoN_dbContext zcUserInfoNcontext) { _context = context; _mapper = mapper; + _zcUserInfoNcontext = zcUserInfoNcontext; } public ResultEntity save(CooperatecustomCustomerDTO cooperatecustomCustomerDTO) @@ -52,12 +55,43 @@ if (String.IsNullOrEmpty(cooperatecustomCustomer.Id)) { + if (!string.IsNullOrEmpty(cooperatecustomCustomer.Ywjl)) + { + cooperatecustomCustomer.Ywjltime = DateTime.Now; + var Cooper = _context.CooperatecustomCustomers.Count(x => x.RecStatus == "A" && x.Ywjl == cooperatecustomCustomer.Ywjl); + var Inten = _context.IntentionCustomers.Count(x => x.RecStatus == "A" && x.Ywjl == cooperatecustomCustomer.Ywjl); + if (Cooper + Inten >= 1000) + { + resultEntity.Result = false; + resultEntity.Message = "璇ヤ笟鍔$粡鐞嗭紝瀹㈡埛鍗曚綅鍜屽悎浣滃鎴峰悎璁¤秴杩�1000锛�"; + return resultEntity; + } + } + cooperatecustomCustomer.Id = Guid.NewGuid().ToString(); _context.CooperatecustomCustomers.Add(cooperatecustomCustomer); } else { var updateproject = _context.CooperatecustomCustomers.Find(cooperatecustomCustomer.Id); + + if (!string.IsNullOrEmpty(cooperatecustomCustomer.Ywjl) && (string.IsNullOrEmpty(updateproject.Ywjl) || !string.IsNullOrEmpty(updateproject.Ywjl) && cooperatecustomCustomer.Ywjl != updateproject.Ywjl)) + { + updateproject.Ywjltime = DateTime.Now; + var Cooper = _context.CooperatecustomCustomers.Count(x => x.RecStatus == "A" && x.Ywjl == cooperatecustomCustomer.Ywjl); + var Inten = _context.IntentionCustomers.Count(x => x.RecStatus == "A" && x.Ywjl == cooperatecustomCustomer.Ywjl); + if (Cooper + Inten >= 1000) + { + resultEntity.Result = false; + resultEntity.Message = "璇ヤ笟鍔$粡鐞嗭紝瀹㈡埛鍗曚綅鍜屽悎浣滃鎴峰悎璁¤秴杩�1000锛�"; + return resultEntity; + } + } + if (string.IsNullOrEmpty(cooperatecustomCustomer.Ywjl)) + { + updateproject.Ywjltime = DateTime.Now; + } + updateproject.Sheng = cooperatecustomCustomer.Sheng; updateproject.City = cooperatecustomCustomer.City; @@ -93,8 +127,53 @@ updateproject.RecStatus = cooperatecustomCustomer.RecStatus; updateproject.Modifier = cooperatecustomCustomer.Modifier; updateproject.Modifytime = cooperatecustomCustomer.Modifytime; - + updateproject.Weixin = cooperatecustomCustomer.Weixin; + updateproject.HuiyuanId = cooperatecustomCustomer.HuiyuanId; + updateproject.Shifoutianjiaweixin = cooperatecustomCustomer.Shifoutianjiaweixin; + updateproject.Weixintime = cooperatecustomCustomer.Weixintime; + updateproject.Weixiner = cooperatecustomCustomer.Weixiner; + updateproject.Shouxinedu = cooperatecustomCustomer.Shouxinedu; + updateproject.Taocanjianshu = cooperatecustomCustomer.Taocanjianshu; } + + _context.SaveChanges(); + + var listPosition = _context.CooperatecustomCustomers.Where(r => r.RecStatus == "A").ToList(); + + var CooperatecustomCustomerDTOs = _mapper.Map<List<CooperatecustomCustomerDTO>>(listPosition); + CacheHelperNetCore.CacheInsert("CooperatecustomCustomerDTOs", CooperatecustomCustomerDTOs); + + resultEntity.ReturnID = cooperatecustomCustomer.Id; + resultEntity.Result = true; + } + catch (Exception ex) + { + resultEntity.Result = false; + resultEntity.Message = "淇濆瓨澶辫触锛岃鑱旂郴绠$悊鍛�"; + + } + return resultEntity; + } + + + public ResultEntity saveyufukuan(CooperatecustomCustomerDTO cooperatecustomCustomerDTO) + { + ResultEntity resultEntity = new ResultEntity(); + try + { + + + var cooperatecustomCustomer = _mapper.Map<CooperatecustomCustomer>(cooperatecustomCustomerDTO); + + + + var updateproject = _context.CooperatecustomCustomers.Find(cooperatecustomCustomer.Id); + + + updateproject.Yufukuan = cooperatecustomCustomer.Yufukuan; + updateproject.Shenyushouxin = cooperatecustomCustomer.Shenyushouxin; + updateproject.Shouxinedu = cooperatecustomCustomer.Shouxinedu; + _context.SaveChanges(); resultEntity.ReturnID = cooperatecustomCustomer.Id; @@ -164,32 +243,59 @@ DateTime.TryParse(Createtimes[1], out Createtimeend); Createtimeend = Createtimeend.AddDays(1); } - + var query = (from a in _context.CooperatecustomCustomers join b in listCode.Where(x => x.CodeTable == "CooperatecustomCustomer" && x.CodeField == "khly") on a.Khly equals b.CodeSn + into bsss + from bbb in bsss.DefaultIfEmpty() + join c in listCode.Where(x => x.CodeTable == "CooperatecustomCustomer" && x.CodeField == "hyfl") on a.Hyfl equals c.CodeSn + into csss + from ccc in csss.DefaultIfEmpty() + join d in listCode.Where(x => x.CodeTable == "CooperatecustomCustomer" && x.CodeField == "khlx") on a.Khlx equals d.CodeSn + into dsss + from ddd in dsss.DefaultIfEmpty() + + 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 i in _context.CooperOrders.Where(x => x.RecStatus == "A" && x.ChedanStatus !="A" ).GroupBy(q => new { q.Khdw }).Select(q => new + + + join i in _context.CooperOrders.Where(x => x.RecStatus == "A" && x.ChedanStatus != "A").GroupBy(q => new { q.Khdw }).Select(q => new { Khdw = q.Key.Khdw, Moneycount = q.Sum(i => i.Money), Ordercount = q.Count(), - } + } ) on a.Id equals i.Khdw into isss from iii in isss.DefaultIfEmpty() + + + join f in _context.Areas on a.Sheng equals f.CodeId + into fsss + from fff in fsss.DefaultIfEmpty() + + join g in _context.Areas on a.City equals g.CodeId + into gsss + from ggg in gsss.DefaultIfEmpty() + + join h in _context.Areas on a.AreaId equals h.CodeId + into hsss + from hhh in hsss.DefaultIfEmpty() + + where a.RecStatus == "A" && (string.IsNullOrWhiteSpace(searchEntity.Createtime) || (a.Createtime >= Createtimestart && a.Createtime <= Createtimeend)) @@ -197,10 +303,12 @@ && (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.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.Shifouweixin) || a.Shifoutianjiaweixin == searchEntity.Shifouweixin.Trim()) + && (string.IsNullOrWhiteSpace(searchEntity.HuiyuanId) || a.HuiyuanId == searchEntity.HuiyuanId.Trim()) select new CooperatecustomCustomerDTO { @@ -212,12 +320,12 @@ 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, + ShengName = fff.Name + "-" + ggg.Name + "-" + hhh.Name, + CityName = ggg.Name, + AreaIdName = hhh.Name, + KhlyName = bbb.Comments, + HyflName = ccc.Comments, + KhlxName = ddd.Comments, YwjlName = abi.UserName, Name = a.Name, Postal = a.Postal, @@ -226,6 +334,7 @@ Tel = a.Tel, Ordercount = iii.Ordercount.ToString(), Moneycount = iii.Moneycount.ToString(), + Moneycountde = iii.Moneycount, Phone = a.Phone, Qq = a.Qq, Email = a.Email, @@ -248,14 +357,101 @@ Modifier = a.Modifier, Modifytime = a.Modifytime, CreatetimeName = a.Createtime.ToString("yyyy-MM-dd"), + Weixin = a.Weixin, + Shifoutianjiaweixin = a.Shifoutianjiaweixin, + HuiyuanId = a.HuiyuanId, + Weixiner = a.Weixiner, + Weixintime = a.Weixintime, + Yufukuan = a.Yufukuan ?? 0, + Shouxinedu = a.Shouxinedu ?? 0, + Shenyushouxin = a.Shenyushouxin ?? 0, + YufukuanName = a.Yufukuan.HasValue ? a.Yufukuan.Value.ToString("f2") : "", + ShouxineduName = a.Shouxinedu.HasValue ? a.Shouxinedu.Value.ToString("f2") : "", + ShenyushouxinName = a.Shenyushouxin.HasValue ? a.Shenyushouxin.Value.ToString("f2") : "", + Taocanjianshu = a.Taocanjianshu ?? 0, + Customertype = "鍚堜綔瀹㈡埛", } - ).OrderByDescending(x => x.Modifytime).ToList(); + ); + + if (!string.IsNullOrWhiteSpace(searchEntity.Ywjl)) + { + if (searchEntity.Ywjl != "11111") + { + query = query.Where(a => a.Ywjl == searchEntity.Ywjl.Trim()); + } + else + { + query = query.Where(a => a.Ywjl == null); + } + } - if (searchEntity.totalrows == 0) - searchEntity.totalrows = query.Count(); - var lianlist = query.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList(); + //if (searchEntity.totalrows == 0) + searchEntity.totalrows = query.Count(); + data.Heji1 = Math.Round(query.Sum(x => x.Yufukuan) ?? 0, 2); + data.Heji2 = Math.Round(query.Sum(x => x.Shouxinedu) ?? 0, 2); + data.Heji3 = Math.Round(query.Sum(x => x.Shenyushouxin) ?? 0, 2); + data.Heji4 = Math.Round(query.Sum(x => x.Moneycountde) ?? 0, 2); + var lianlist = query.OrderByDescending(x => x.Modifytime).Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList(); + data.DangyeHeji1 = Math.Round(lianlist.Sum(x => x.Yufukuan) ?? 0, 2); + data.DangyeHeji2 = Math.Round(lianlist.Sum(x => x.Shouxinedu) ?? 0, 2); + data.DangyeHeji3 = Math.Round(lianlist.Sum(x => x.Shenyushouxin) ?? 0, 2); + data.DangyeHeji4 = Math.Round(lianlist.Sum(x => x.Moneycountde) ?? 0, 2); + + if(lianlist!=null&& lianlist.Count > 0) + { + var members = _context.FiMembers.ToList(); + foreach (var cooperatecustomCustomerDTO in lianlist) + { + cooperatecustomCustomerDTO.Hezuoyewu = ""; + + var cooperOrders = _context.CooperOrders.Where(x => x.RecStatus == "A" && x.ShouliStatus != "0" && x.OrderType == "05" && x.Khdw == cooperatecustomCustomerDTO.Id).ToList(); + + foreach (var cooperOrder in cooperOrders) + { + var member = members.Where(x => x.Id == cooperOrder.OrderType1).FirstOrDefault(); + if (member != null) + { + if (cooperatecustomCustomerDTO.Hezuoyewu.IndexOf(member.MemberType) < 0) + { + cooperatecustomCustomerDTO.Hezuoyewu += member.MemberType + " | "; + } + } + } + + if (!string.IsNullOrEmpty(cooperatecustomCustomerDTO.HuiyuanId)) + { + var huiyuanid = new Guid(cooperatecustomCustomerDTO.HuiyuanId); + + var frameworkRoles = (from a in _zcUserInfoNcontext.OderOfVips + join b in _zcUserInfoNcontext.FrameworkRoles on a.RoleId equals b.Id + where a.IsPayEnd == true && a.IsUserDell == false && a.UserId == huiyuanid + select b + ).ToList(); + + foreach (var frameworkRole in frameworkRoles) + { + if (cooperatecustomCustomerDTO.Hezuoyewu.IndexOf(frameworkRole.RoleName) < 0) + { + cooperatecustomCustomerDTO.Hezuoyewu += frameworkRole.RoleName + " | "; + } + } + } + + + + if (cooperatecustomCustomerDTO.Hezuoyewu.IndexOf("甯稿勾鏀块噰&娉曞緥椤鹃棶") >=0) + { + cooperatecustomCustomerDTO.Hezuoyewu += "閲囪喘鍏憡鏉冮檺 | "; + } + + } + } + + + + data.LoadData(searchEntity, lianlist); return data; } @@ -292,14 +488,46 @@ /// 鑾峰彇鎵�鏈夋湁鏁堝悎浣滃鎴� /// </summary> /// <returns></returns> - public List<CooperatecustomCustomerDTO> GetList() + public List<CooperatecustomCustomerDTO> GetList(string HuiyuanId = "", string Name = "") { + List<CooperatecustomCustomerDTO> CooperatecustomCustomerDTOs = (List<CooperatecustomCustomerDTO>)CacheHelperNetCore.CacheValue("CooperatecustomCustomerDTOs"); + if (CooperatecustomCustomerDTOs != null && CooperatecustomCustomerDTOs.Count > 0) + { + if (!string.IsNullOrEmpty(HuiyuanId)) + { + CooperatecustomCustomerDTOs = CooperatecustomCustomerDTOs.Where(x => x.HuiyuanId == HuiyuanId).ToList(); + } + if (!string.IsNullOrEmpty(Name)) + { + CooperatecustomCustomerDTOs = CooperatecustomCustomerDTOs.Where(x => x.Name == Name).ToList(); + } + + return CooperatecustomCustomerDTOs; + } var listPosition = _context.CooperatecustomCustomers.Where(r => r.RecStatus == "A").ToList(); - var list = _mapper.Map<List<CooperatecustomCustomerDTO>>(listPosition); - return list; + CooperatecustomCustomerDTOs = _mapper.Map<List<CooperatecustomCustomerDTO>>(listPosition); + CacheHelperNetCore.CacheInsert("CooperatecustomCustomerDTOs", CooperatecustomCustomerDTOs); + + + if (!string.IsNullOrEmpty(HuiyuanId)) + { + CooperatecustomCustomerDTOs = CooperatecustomCustomerDTOs.Where(x => x.HuiyuanId == HuiyuanId).ToList(); + } + + if (!string.IsNullOrEmpty(Name)) + { + CooperatecustomCustomerDTOs = CooperatecustomCustomerDTOs.Where(x => x.Name == Name).ToList(); + } + + return CooperatecustomCustomerDTOs; + + + + + } public List<CooperatecustomCustomerDTO> GetListsalary(string userid, DateTime datemin, DateTime datemax) @@ -317,7 +545,7 @@ var listPosition =( from a in _context.CooperatecustomCustomers.Where(r => r.RecStatus == "A" && r.Creater == userid) - join b in _context.CooperOrders.Where(x => x.RecStatus == "A" && x.Shoulitime >= datemin && x.Shoulitime < datemax) + join b in _context.CooperOrders.Where(x => x.RecStatus == "A" && x.Createtime >= datemin && x.Createtime < datemax) on a.Id equals b.Khdw select a @@ -326,5 +554,15 @@ var list = _mapper.Map<List<CooperatecustomCustomerDTO>>(listPosition); return list; } + + public List<CooperatecustomCustomerDTO> GetListsalaryweixin(string userid, DateTime datemin, DateTime datemax) + { + + + var listPosition = _context.CooperatecustomCustomers.Where(r => r.RecStatus == "A" && r.Weixiner == userid && r.Weixintime >= datemin && r.Weixintime < datemax).ToList(); + + var list = _mapper.Map<List<CooperatecustomCustomerDTO>>(listPosition); + return list; + } } } -- Gitblit v1.9.1