using System; using System.Collections.Generic; using System.Linq; using System.Text; using AutoMapper; using AngleSharp.Html.Parser; using DTO; using IServices; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Bot.Builder.Integration.AspNet.Core; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using System.Net.Http; using System.Threading.Tasks; using zhengcaioa.Models; using zhengcaioa.IService; using System.Transactions; using OfficeOpenXml; using OfficeOpenXml.Drawing; using OfficeOpenXml.Drawing.Chart; using OfficeOpenXml.Style; using System.IO; namespace zhengcaioa.Controllers.Customer { [CheckLogin] public class IntentionCustomerController : Controller { private readonly ILogger _logger; private readonly IProjectService _projectService; private readonly ILiaotianService _liaotianService; private readonly IIntentionCustomerService _intentionCustomerService; private readonly IUserService _userService; private readonly ICooperatecustomCustomerService _cooperatecustomCustomerService; private readonly IMapper _mapper; private readonly IHrDeptService _hrDeptService; private readonly IPltPageService _pltPageService; public IntentionCustomerController(ILogger logger, IProjectService projectService, ILiaotianService liaotianService, IIntentionCustomerService intentionCustomerService, IUserService userService , ICooperatecustomCustomerService cooperatecustomCustomerService, IMapper mapper, IHrDeptService hrDeptService, IPltPageService pltPageService) { _logger = logger; _projectService = projectService; _liaotianService = liaotianService; _intentionCustomerService = intentionCustomerService; _userService = userService; _cooperatecustomCustomerService = cooperatecustomCustomerService; _mapper = mapper; _hrDeptService = hrDeptService; _pltPageService = pltPageService; } public IActionResult Index() { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; List actionlist = new List(); ActionEntity actionEntity = new ActionEntity(); actionEntity.OpenType = 0; actionEntity.ActionUrl = ""; actionEntity.ActionFun = "Search"; actionEntity.PageIco = "fa fa-search"; actionEntity.ActionName = "查询"; actionlist.Add(actionEntity); ActionEntity actionEntity1 = new ActionEntity(); actionEntity1.OpenType = 0; actionEntity1.ActionUrl = ""; actionEntity1.ActionFun = "Add"; actionEntity1.PageIco = "fa fa-plus"; actionEntity1.ActionName = "新增"; actionlist.Add(actionEntity1); ActionEntity actionEntity2 = new ActionEntity(); actionEntity2.OpenType = 0; actionEntity2.ActionUrl = ""; actionEntity2.ActionFun = "Zhuanyi"; actionEntity2.PageIco = "fa fa-exchange"; actionEntity2.ActionName = "转移客户"; actionlist.Add(actionEntity2); ActionEntity actionEntity3 = new ActionEntity(); actionEntity3.OpenType = 0; actionEntity3.ActionUrl = ""; actionEntity3.ActionFun = "Print"; actionEntity3.PageIco = "fa fa-print"; actionEntity3.ActionName = "打印资料"; actionlist.Add(actionEntity3); ActionEntity actionEntity4 = new ActionEntity(); actionEntity4.OpenType = 0; actionEntity4.ActionUrl = ""; actionEntity4.ActionFun = "Duanxin"; actionEntity4.PageIco = ""; actionEntity4.ActionName = "群发短信"; actionlist.Add(actionEntity4); ActionEntity actionEntity5 = new ActionEntity(); actionEntity5.OpenType = 0; actionEntity5.ActionUrl = ""; actionEntity5.ActionFun = "Youjian"; actionEntity5.PageIco = ""; actionEntity5.ActionName = "群发邮件"; actionlist.Add(actionEntity5); ActionEntity actionEntity6 = new ActionEntity(); actionEntity6.OpenType = 0; actionEntity6.ActionUrl = ""; actionEntity6.ActionFun = "Xinhan"; actionEntity6.PageIco = ""; actionEntity6.ActionName = "商业信函"; actionlist.Add(actionEntity6); ActionEntity actionEntity7 = new ActionEntity(); actionEntity7.OpenType = 0; actionEntity7.ActionUrl = ""; actionEntity7.ActionFun = "Daochu"; actionEntity7.PageIco = ""; actionEntity7.ActionName = "导出"; actionlist.Add(actionEntity7); ViewData["ActionInfo"] = actionlist; ViewBag.khlx = _liaotianService.GetSYScode("CooperatecustomCustomer", "khlx").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); ViewBag.khly = _liaotianService.GetSYScode("IntentionCustomer", "khly").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); ViewBag.hyfl = _liaotianService.GetSYScode("CooperatecustomCustomer", "hyfl").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); ViewBag.users = _userService.GetList().Where(x => x.IsYwjl == "A").Select(x => new { code = x.Id, label = x.UserName }).ToList(); ViewBag.Creater = _userService.GetList().Select(x => new { code = x.Id, label = x.UserName }).ToList(); ViewBag.shifou = _liaotianService.GetSYScode("system", "shifou").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); ViewBag.ShengDropDown = _projectService.Getsheng().Select(x => new { code = x.CodeId, label = x.Name }).ToList(); return View(); } public IActionResult GetList(IntentionCustomerDTOSearch search) { //JsonResult jsonResult = new JsonResult(_liaotianService.SearchByPaging(search), new Newtonsoft.Json.Serialization.DefaultContractResolver()); return new JsonResult(_intentionCustomerService.SearchByPaging(search)); } //[HttpGet("excel")] public IActionResult GetDaochu(IntentionCustomerDTOSearch search) { search.page = 1; search.rows = 10000; var aaa = _intentionCustomerService.SearchByPaging(search); var data1 = aaa.DataList; ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial; using var ep = new ExcelPackage(); //添加sheet using var worksheet = ep.Workbook.Worksheets.Add("档案客户资料"); int x = 1; int y = 1; var columnTitles = new List() { "建档时间","客户来源","行业分类","客户类型","客户名称","客户单位","联系人微信" ,"客户地址","网址","联系人座机","联系人手机","联系人QQ","联系人邮箱", "联系人2姓名","联系人2手机","联系人2QQ" }; foreach(var columnTitle in columnTitles) { //设置样式 var cell = worksheet.Cells[x, y++]; cell.Style.Font.Bold = true; cell.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; cell.Style.VerticalAlignment = ExcelVerticalAlignment.Center; cell.Value = columnTitle; } foreach (var item in data1) { x++; y = 1; var cell = worksheet.Cells[x, y++]; cell.Value = item.CreatetimeName; cell = worksheet.Cells[x, y++]; cell.Value = item.KhlyName; cell = worksheet.Cells[x, y++]; cell.Value = item.HyflName; cell = worksheet.Cells[x, y++]; cell.Value = item.KhlxName; cell = worksheet.Cells[x, y++]; cell.Value = item.Name; cell = worksheet.Cells[x, y++]; cell.Value = item.Name; cell = worksheet.Cells[x, y++]; cell.Value = item.Weixin; cell = worksheet.Cells[x, y++]; cell.Value = item.Address; cell = worksheet.Cells[x, y++]; cell.Value = item.Url; cell = worksheet.Cells[x, y++]; cell.Value = item.Tel; cell = worksheet.Cells[x, y++]; cell.Value = item.Phone; cell = worksheet.Cells[x, y++]; cell.Value = item.Qq; cell = worksheet.Cells[x, y++]; cell.Value = item.Email; cell = worksheet.Cells[x, y++]; cell.Value = item.YwName; cell = worksheet.Cells[x, y++]; cell.Value = item.YwTel; cell = worksheet.Cells[x, y++]; cell.Value = item.YwQq; } worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns(); using (var stream = new MemoryStream()) { ep.SaveAs(stream); return new FileContentResult(stream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = "导出档案客户资料" + DateTime.Now.ToString("yyyyMMdd") + ".xlsx" }; } } public IActionResult IndexYiXiang() { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; List actionlist = new List(); List pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/IntentionCustomer/IndexYiXiang/"); foreach(var pageEntity in pageEntities) { ActionEntity actionEntity = new ActionEntity(); actionEntity.OpenType = pageEntity.OpenType; actionEntity.ActionUrl = ""; actionEntity.ActionFun = pageEntity.PageShortcut; actionEntity.PageIco = pageEntity.PageIco; actionEntity.ActionName = pageEntity.PageName; actionlist.Add(actionEntity); } ViewData["ActionInfo"] = actionlist; ViewBag.khly = _liaotianService.GetSYScode("IntentionCustomer", "khly").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); ViewBag.ywjl = _userService.GetList().Where(x => x.IsYwjl == "A").Select(x => new { code = x.Id, label = x.UserName }).ToList(); ViewBag.Dianxiaozhuanyuan = _userService.GetList().Select(x => new { code = x.Id, label = x.UserName }).ToList(); ViewBag.ywjlId = curentuser.Id; //ViewBag.khlx = _liaotianService.GetSYScode("CooperatecustomCustomer", "khlx").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); //ViewBag.hyfl = _liaotianService.GetSYScode("CooperatecustomCustomer", "hyfl").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); //ViewBag.ShengDropDown = _projectService.Getsheng().Select(x => new { code = x.CodeId, label = x.Name }).ToList(); return View(); } /// /// 解绑 /// /// /// [HttpPost] public JsonResult UnBind(string id) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ResultEntity resultEntity = new ResultEntity(); using (TransactionScope scope = new TransactionScope()) { string[] ids = id.Split(','); foreach (var iddd in ids) { var intentionCustomerDTO = _intentionCustomerService.Get(iddd); intentionCustomerDTO.Yixiang = null; intentionCustomerDTO.Yixiangtime = null; resultEntity = _intentionCustomerService.save(intentionCustomerDTO); if (!resultEntity.Result) { return new JsonResult(resultEntity); } } scope.Complete(); } return new JsonResult(resultEntity); } public IActionResult Edit(string id = null,string namecus = null) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; IntentionCustomerDTO intentionCustomerDTO = new IntentionCustomerDTO(); if (!String.IsNullOrEmpty(id)) { intentionCustomerDTO = _intentionCustomerService.Get(id); } else { intentionCustomerDTO.Khly = "01"; intentionCustomerDTO.Khlx = "01"; intentionCustomerDTO.Sheng = "510000"; intentionCustomerDTO.City = "510100"; intentionCustomerDTO.AreaId = "510107"; intentionCustomerDTO.Name = namecus; } var sheng = _projectService.Getsheng(); var shi = _projectService.Getshi(intentionCustomerDTO.Sheng); var quxian = _projectService.Getquxian(intentionCustomerDTO.City); var users = _userService.GetList().Where(x => x.IsYwjl == "A").ToList(); ; ViewData["khlx"] = _liaotianService.GetSYScode("CooperatecustomCustomer", "khlx"); ViewData["khly"] = _liaotianService.GetSYScode("IntentionCustomer", "khly"); ViewData["hyfl"] = _liaotianService.GetSYScode("CooperatecustomCustomer", "hyfl"); ViewData["users"] = users; ViewData["sheng"] = sheng; ViewData["shi"] = shi; ViewData["quxian"] = quxian; ViewData["DeptId"] = _hrDeptService.GetList(); ViewData.Model = intentionCustomerDTO; return View(); } public IActionResult EditByName( string name) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; IntentionCustomerDTO intentionCustomerDTO = new IntentionCustomerDTO(); intentionCustomerDTO = _intentionCustomerService.GetByName(name); var sheng = _projectService.Getsheng(); var shi = _projectService.Getshi(intentionCustomerDTO.Sheng); var quxian = _projectService.Getquxian(intentionCustomerDTO.City); var users = _userService.GetList().Where(x => x.IsYwjl == "A").ToList(); ; ViewData["khlx"] = _liaotianService.GetSYScode("CooperatecustomCustomer", "khlx"); ViewData["khly"] = _liaotianService.GetSYScode("IntentionCustomer", "khly"); ViewData["hyfl"] = _liaotianService.GetSYScode("CooperatecustomCustomer", "hyfl"); ViewData["users"] = users; ViewData["sheng"] = sheng; ViewData["shi"] = shi; ViewData["quxian"] = quxian; ViewData["DeptId"] = _hrDeptService.GetList(); ViewData.Model = intentionCustomerDTO; return View(); } /// /// 保存 /// /// 岗位实体类对象 /// /// [HttpPost] public IActionResult Save(IntentionCustomerDTO data) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; data.RecStatus = "A"; if (string.IsNullOrEmpty(data.Shifoutianjiaweixin)) { data.Shifoutianjiaweixin = "D"; data.Weixiner = null; data.Weixintime = null; } else { if (String.IsNullOrEmpty(data.Id)) { data.Weixiner = curentuser.Id; data.Weixintime = DateTime.Now; } else { var cooperatecustomCustomerDTO = _intentionCustomerService.Get(data.Id); if (string.IsNullOrEmpty(cooperatecustomCustomerDTO.Weixiner)) { data.Weixiner = curentuser.Id; data.Weixintime = DateTime.Now; } } } if (String.IsNullOrEmpty(data.Id)) { data.Creater = curentuser.Id; data.Createtime = DateTime.Now; } else { var intentionCustomerDTO = _intentionCustomerService.Get(data.Id); data.Yixiangtime = intentionCustomerDTO.Yixiangtime; data.Yixiang = intentionCustomerDTO.Yixiang; data.Dianxiaozhuanyuan = intentionCustomerDTO.Dianxiaozhuanyuan; data.Zuijinzhuizongtime = intentionCustomerDTO.Zuijinzhuizongtime; } data.Modifier = curentuser.Id; data.Modifytime = DateTime.Now; ResultEntity resultEntity = _intentionCustomerService.save(data); return new JsonResult(resultEntity); } /// /// 删除主信息 /// /// 实体 /// /// public IActionResult Nullify(string Id = "") { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; return new JsonResult(_intentionCustomerService.ModifyStatus(Id, curentuser.Id)); } /// /// 转移客户 /// /// 实体 /// /// public IActionResult Zhuanyi( string zhuanyiId) { ResultEntity resultEntity = new ResultEntity(); resultEntity.Result = true; var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; List result = new List(); if (zhuanyiId != null) { result = _intentionCustomerService.GetList(zhuanyiId.Split(",")); } else { resultEntity.Result = false; resultEntity.Message = "没有找到客户!"; } using(TransactionScope scope = new TransactionScope()) { if (result != null && result.Count > 0) { for (int i = 0; i < result.Count; i++) { resultEntity = _intentionCustomerService.ModifyStatus(result[i].Id, curentuser.Id); if (!resultEntity.Result) { return new JsonResult(resultEntity); } var dto = _mapper.Map(result[i]); dto.Id = ""; dto.Creater = curentuser.Id; dto.Modifier = curentuser.Id; dto.Createtime = DateTime.Now; dto.Modifytime = dto.Createtime; dto.zhuanyi = true; resultEntity = _cooperatecustomCustomerService.save(dto); if (!resultEntity.Result) { return new JsonResult(resultEntity); } } } scope.Complete(); } return new JsonResult(resultEntity); } [CheckLogin] public IActionResult print(IntentionCustomerDTOSearch search) { //JsonResult jsonResult = new JsonResult(_liaotianService.SearchByPaging(search), new Newtonsoft.Json.Serialization.DefaultContractResolver()); search.rows = 10000; search.page = 1; ViewBag.listLiaotianDTO = _intentionCustomerService.SearchByPaging(search).DataList as List; return View(); } } }