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 System.IdentityModel.Tokens.Jwt; namespace zhengcaioa.Controllers.Customer { [CheckLogin] public class CooperatecustomCustomerController : Controller { private readonly ILogger _logger; private readonly IProjectService _projectService; private readonly ILiaotianService _liaotianService; private readonly ICooperatecustomCustomerService _cooperatecustomCustomerService; private readonly IUserService _userService; private readonly IHrDeptService _hrDeptService; private readonly ISysAttachmentService _sysAttachmentService; private readonly IPltPageService _pltPageService; private readonly ICooperVisitService _cooperVisitService; private readonly IIntentionCustomerService _intentionCustomerService; public CooperatecustomCustomerController(ILogger logger, IProjectService projectService, ILiaotianService liaotianService, ICooperatecustomCustomerService cooperatecustomCustomerService, IUserService userService, IHrDeptService hrDeptService , ISysAttachmentService sysAttachmentService , IPltPageService pltPageService , ICooperVisitService cooperVisitService , IIntentionCustomerService intentionCustomerService) { _logger = logger; _projectService = projectService; _liaotianService = liaotianService; _cooperatecustomCustomerService = cooperatecustomCustomerService; _userService = userService; _hrDeptService = hrDeptService; _sysAttachmentService = sysAttachmentService; _pltPageService = pltPageService; _cooperVisitService = cooperVisitService; _intentionCustomerService = intentionCustomerService; } 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 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); var pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/CooperatecustomCustomer/Index/"); var pageEntities1 = pageEntities.Where(x => x.PageMethod == "01").ToList(); if (pageEntities1.Count(x => x.PageShortcut == "Search") <= 0) { ActionEntity actionEntity = new ActionEntity(); actionEntity.OpenType = 0; actionEntity.ActionUrl = ""; actionEntity.ActionFun = "Search"; actionEntity.PageIco = "fa fa-search"; actionEntity.ActionName = "查询"; actionlist.Add(actionEntity); ViewData["Creater"] = curentuser.Id; } var pageEntities2 = pageEntities.Where(x => x.PageMethod == "02").ToList(); foreach (var pageEntity in pageEntities1) { ActionEntity actionEntity1 = new ActionEntity(); actionEntity1.OpenType = pageEntity.OpenType; actionEntity1.ActionUrl = ""; actionEntity1.ActionFun = pageEntity.PageShortcut; actionEntity1.PageIco = pageEntity.PageIco; actionEntity1.ActionName = pageEntity.PageName; actionlist.Add(actionEntity1); } ViewData["ActionInfo"] = actionlist; ViewData["ActionInfo2"] = pageEntities2; ViewBag.khlx = _liaotianService.GetSYScode("CooperatecustomCustomer", "khlx").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); ViewBag.khly = _liaotianService.GetSYScode("CooperatecustomCustomer", "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.shifou = _liaotianService.GetSYScode("system", "shifou").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); var users = _userService.GetList().Where(x => x.IsYwjl == "A").Select(x => new { code = x.Id, label = x.UserName }).ToList(); users.Insert(0, new { code = "11111", label = "无业务经理" }); ViewBag.users = users; var areaDTOs = _projectService.Getsheng().ToList(); foreach (var areaDTO in areaDTOs) { if (areaDTO.CodeId == "510000") { areaDTOs.Remove(areaDTO); break; } } var areaDTOsic = new Area(); areaDTOsic.CodeId = "510000"; areaDTOsic.Name = "四川省"; areaDTOsic.ParentId = "0 "; areaDTOs.Insert(1, areaDTOsic); ViewBag.ShengDropDown = areaDTOs.Select(x => new { code = x.CodeId, label = x.Name }).ToList(); ViewBag.Baomingtimebegin = DateTime.Now.AddMonths(-6).ToString("yyyy-MM-dd"); ViewBag.Baomingtimeend = DateTime.Now.ToString("yyyy-MM-dd"); return View(); } public IActionResult GetList(CooperatecustomCustomerDTOSearch search) { //JsonResult jsonResult = new JsonResult(_liaotianService.SearchByPaging(search), new Newtonsoft.Json.Serialization.DefaultContractResolver()); return new JsonResult(_cooperatecustomCustomerService.SearchByPaging(search)); } public IActionResult Edit(string id = null) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; var pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/CooperatecustomCustomer/Index/"); var pageEntities2 = pageEntities.Where(x => x.PageMethod == "02").ToList(); ViewData["ActionInfo2"] = pageEntities2; CooperatecustomCustomerDTO cooperatecustomCustomerDTO = new CooperatecustomCustomerDTO(); if (!String.IsNullOrEmpty(id)) { cooperatecustomCustomerDTO = _cooperatecustomCustomerService.Get(id); CooperVisitDTOSearch searchEntity = new CooperVisitDTOSearch(); searchEntity.page = 1; searchEntity.rows = 1000; searchEntity.Viscustomer = id; var resultDataEntity = _cooperVisitService.SearchByPaging(searchEntity); ViewData["visitlishi"] = resultDataEntity.DataList; } else { cooperatecustomCustomerDTO.Khly = "01"; cooperatecustomCustomerDTO.Khlx = "01"; cooperatecustomCustomerDTO.Sheng = "510000"; cooperatecustomCustomerDTO.City = "510100"; cooperatecustomCustomerDTO.AreaId = "510107"; ViewData["visitlishi"] = new List(); } var areaDTOs = _projectService.Getsheng().ToList(); foreach (var areaDTO in areaDTOs) { if (areaDTO.CodeId == "510000") { areaDTOs.Remove(areaDTO); break; } } var areaDTOsic = new Area(); areaDTOsic.CodeId = "510000"; areaDTOsic.Name = "四川省"; areaDTOsic.ParentId = "0 "; areaDTOs.Insert(1, areaDTOsic); var sheng = areaDTOs; var shi = _projectService.Getshi(cooperatecustomCustomerDTO.Sheng); var quxian = _projectService.Getquxian(cooperatecustomCustomerDTO.City); var users = _userService.GetList().Where(x => x.IsYwjl == "A").ToList(); ; ViewData["khlx"] = _liaotianService.GetSYScode("CooperatecustomCustomer", "khlx"); ViewData["khly"] = _liaotianService.GetSYScode("CooperatecustomCustomer", "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 = cooperatecustomCustomerDTO; ResultDataEntity resultsyinyezhizhao = new ResultDataEntity(); if (!string.IsNullOrEmpty(id)) { SysAttachmentDTOSearch searchEntity = new SysAttachmentDTOSearch(); searchEntity.page = 1; searchEntity.rows = 1000; searchEntity.AttObj = "Cooperyinyezhizhao"; searchEntity.AttObjid = id; resultsyinyezhizhao = _sysAttachmentService.SearchByPaging(searchEntity); } ViewBag.yinyezhizhao = resultsyinyezhizhao; ResultDataEntity resultshenfenzheng = new ResultDataEntity(); if (!string.IsNullOrEmpty(id)) { SysAttachmentDTOSearch searchEntity = new SysAttachmentDTOSearch(); searchEntity.page = 1; searchEntity.rows = 1000; searchEntity.AttObj = "Cooperashenfenzheng"; searchEntity.AttObjid = id; resultshenfenzheng = _sysAttachmentService.SearchByPaging(searchEntity); } ViewBag.shenfenzheng = resultshenfenzheng; return View(); } public IActionResult GetCustomer(string id) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; var cooperatecustomCustomerDTO = _cooperatecustomCustomerService.Get(id); return new JsonResult(cooperatecustomCustomerDTO); } /// /// 保存 /// /// 岗位实体类对象 /// /// [HttpPost] public IActionResult Save(CooperatecustomCustomerDTO data) { ResultEntity resultEntity = new ResultEntity(); resultEntity.Result = false; var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; data.RecStatus = "A"; using (TransactionScope scope = new TransactionScope()) { 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 = _cooperatecustomCustomerService.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; } data.Modifier = curentuser.Id; data.Modifytime = DateTime.Now; resultEntity = _cooperatecustomCustomerService.save(data); string[] Filepaths = data.Filepath; if (Filepaths != null && Filepaths.Length > 0) { for (int i = 0; i < Filepaths.Length; i++) { if (string.IsNullOrEmpty(data.attachmentid[i])) { SysAttachmentDTO sysAttachmentDTO = new SysAttachmentDTO(); //sysAttachmentDTO.Id = sysAttachmentDTO.AttObj = data.AttObj[i]; sysAttachmentDTO.AttObjid = data.Id; sysAttachmentDTO.Filefullname = data.Filefullname[i]; sysAttachmentDTO.Filepath = data.Filepath[i]; sysAttachmentDTO.Creater = curentuser.Id; sysAttachmentDTO.Modifier = curentuser.Id; sysAttachmentDTO.Createtime = DateTime.Now; sysAttachmentDTO.Modifytime = sysAttachmentDTO.Createtime; resultEntity = _sysAttachmentService.save(sysAttachmentDTO); if (resultEntity.Result == false) { return new JsonResult(resultEntity); } } } } scope.Complete(); } return new JsonResult(resultEntity); } /// /// 删除主信息 /// /// 实体 /// /// public IActionResult Nullify(string Id = "") { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; return new JsonResult(_cooperatecustomCustomerService.ModifyStatus(Id, curentuser.Id)); } [CheckLogin] public IActionResult print(CooperatecustomCustomerDTOSearch search) { //JsonResult jsonResult = new JsonResult(_liaotianService.SearchByPaging(search), new Newtonsoft.Json.Serialization.DefaultContractResolver()); search.rows = 1000; search.page = 1; ViewBag.listLiaotianDTO = _cooperatecustomCustomerService.SearchByPaging(search).DataList as List; return View(); } [CheckLogin] public IActionResult IndexCustomerGuanlian(string CustomerId,string Customertype) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); CustomerGuanlianDTO customerGuanlianDTO = new CustomerGuanlianDTO(); customerGuanlianDTO.CustomerId = CustomerId; customerGuanlianDTO.Customertype = Customertype; customerGuanlianDTO.cooperatecustomCustomerDTOs = _cooperatecustomCustomerService.GetListCustomerGuanlian(CustomerId); ViewData.Model = customerGuanlianDTO; return View(); } /// /// 保存 /// /// 岗位实体类对象 /// /// [HttpPost] public IActionResult DelCustomerGuanlian(CustomerGuanlianDTO dTO) { ResultEntity resultEntity = new ResultEntity(); resultEntity.Result = false; var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; resultEntity = _cooperatecustomCustomerService.DeleteCustomerGuanlian(dTO.CustomerId, dTO.SecCustomerId); return new JsonResult(resultEntity); } public IActionResult IndexSelect(string Id, string Customertype) { 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 actionEntity2 = new ActionEntity(); actionEntity2.OpenType = 0; actionEntity2.ActionUrl = ""; actionEntity2.ActionFun = "Zhuanyi"; actionEntity2.PageIco = "fa fa-exchange"; actionEntity2.ActionName = "确认关联"; actionlist.Add(actionEntity2); ViewData["ActionInfo"] = actionlist; //ViewData["ActionInfo2"] = pageEntities2; 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(); var areaDTOs = _projectService.Getsheng().ToList(); foreach (var areaDTO in areaDTOs) { if (areaDTO.CodeId == "510000") { areaDTOs.Remove(areaDTO); break; } } var areaDTOsic = new Area(); areaDTOsic.CodeId = "510000"; areaDTOsic.Name = "四川省"; areaDTOsic.ParentId = "0 "; areaDTOs.Insert(1, areaDTOsic); ViewBag.ShengDropDown = areaDTOs.Select(x => new { code = x.CodeId, label = x.Name }).ToList(); ViewBag.Baomingtimebegin = DateTime.Now.AddMonths(-6).ToString("yyyy-MM-dd"); ViewBag.Baomingtimeend = DateTime.Now.ToString("yyyy-MM-dd"); ViewBag.Id = Id; ViewBag.Customertype1 = Customertype; ViewBag.Customertype = _liaotianService.GetSYScode("ADM_Askzczbwsydtl", "Customertype").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList(); return View(); } /// /// 保存 /// /// 岗位实体类对象 /// /// [HttpPost] public IActionResult SaveCustomerGuanlian(CustomerGuanlianDTO dTO) { ResultEntity resultEntity = new ResultEntity(); resultEntity.Result = true; var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted, Timeout = TransactionManager.MaximumTimeout } )) { if (!string.IsNullOrWhiteSpace(dTO.SecCustomerId)) { var SecCustomerId = dTO.SecCustomerId.Split(','); var SecCustomertype = dTO.SecCustomertype.Split(','); for (int i = 0; i < SecCustomerId.Length; i++) { var customerGuanlianDTO = _cooperatecustomCustomerService.GetCustomerGuanlian(dTO.CustomerId, SecCustomerId[i]); if (string.IsNullOrEmpty(customerGuanlianDTO.Id)) { customerGuanlianDTO.CustomerId = dTO.CustomerId; customerGuanlianDTO.Customertype = dTO.Customertype; customerGuanlianDTO.SecCustomerId = SecCustomerId[i]; customerGuanlianDTO.SecCustomertype = SecCustomertype[i]; resultEntity = _cooperatecustomCustomerService.saveCustomerGuanlian(customerGuanlianDTO); } } scope.Complete(); } else { resultEntity.Result = true; } } return new JsonResult(resultEntity); } } }