username@email.com
2023-03-08 f7a2d28869cc31c7dbe057a1d80dd40536d97fed
zhengcaioa/zhengcaioa/Controllers/UserController.cs
@@ -6,6 +6,7 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IdentityModel.Tokens.Jwt;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
@@ -24,9 +25,17 @@
        private readonly ILiaotianService _liaotianService;
        private readonly IPltJiatingchengyuanService _pltJiatingchengyuanService;
        private readonly ISysAttachmentService _sysAttachmentService;
        private readonly IPltRoleService _pltRoleService;
        private readonly IPltPageService _pltPageService;
        private readonly ICooperatecustomCustomerService _cooperatecustomCustomerService;
        private readonly IIntentionCustomerService _intentionCustomerService;
        public UserController(ILogger<UserController> logger, IUserService userService, IHrDeptService hrDeptService, IHrPositionService hrPositionService, ILiaotianService liaotianService, IPltJiatingchengyuanService pltJiatingchengyuanService, ISysAttachmentService sysAttachmentService)
        public UserController(ILogger<UserController> logger, IUserService userService, IHrDeptService hrDeptService, IHrPositionService hrPositionService, ILiaotianService liaotianService, IPltJiatingchengyuanService pltJiatingchengyuanService, ISysAttachmentService sysAttachmentService
            , IPltRoleService pltRoleService
             , IPltPageService pltPageService
            , ICooperatecustomCustomerService cooperatecustomCustomerService
             , IIntentionCustomerService intentionCustomerService)
        {
            _logger = logger;
            _userService = userService;
@@ -35,6 +44,10 @@
            _liaotianService = liaotianService;
            _pltJiatingchengyuanService = pltJiatingchengyuanService;
            _sysAttachmentService = sysAttachmentService;
            _pltRoleService = pltRoleService;
            _pltPageService = pltPageService;
            _cooperatecustomCustomerService = cooperatecustomCustomerService;
            _intentionCustomerService = intentionCustomerService;
        } 
 
 
@@ -52,14 +65,30 @@
            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 actionEntity1 = new ActionEntity();
            //actionEntity1.OpenType = 0;
            //actionEntity1.ActionUrl = "";
            //actionEntity1.ActionFun = "Add";
            //actionEntity1.PageIco = "fa fa-plus";
            //actionEntity1.ActionName = "新增";
            //actionlist.Add(actionEntity1);
            var pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/User/Index/");
            var pageEntities1 = pageEntities.Where(x => x.PageMethod == "01").ToList();
            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.zhiwustatus = _liaotianService.GetSYScode("plt_user", "zhiwustatus").Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
            ViewBag.dept = _hrDeptService.GetList().Select(x => new { code = x.Id, label = x.DeptName }).ToList();
            ViewBag.post = _hrPositionService.GetList().Select(x => new { code = x.Id, label = x.PostName }).ToList();
@@ -101,7 +130,15 @@
            actionEntity1.PageIco = "fa fa-remove";
            actionEntity1.ActionName = "删除";
            actionlist.Add(actionEntity1);
            ViewData["ActionInfo"] = actionlist;
            var pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/User/Index/");
            var pageEntities2 = pageEntities.Where(x => x.PageMethod == "02").ToList();
            ViewData["ActionInfo2"] = pageEntities2;
            ViewBag.dept = _hrDeptService.GetList();//.Select(x => new { code = x.Id, label = x.DeptName }).ToList();
            ViewBag.post = _hrPositionService.GetList();//.Select(x => new { code = x.Id, label = x.PostName }).ToList();
            ViewBag.shifou = _liaotianService.GetSYScode("system", "shifou");//.Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
@@ -138,6 +175,10 @@
            if (PltUserDTO.Shebaodate.HasValue)
            {
                PltUserDTO.ShebaodateName = PltUserDTO.Shebaodate.Value.ToString("yyyy-MM-dd");
            }
            if (PltUserDTO.HetongDateEnd.HasValue)
            {
                PltUserDTO.HetongDateEndName = PltUserDTO.HetongDateEnd.Value.ToString("yyyy-MM-dd");
            }
            if (PltUserDTO.ShiyongDate.HasValue)
            {
@@ -259,16 +300,17 @@
            string s = @"^([A-Fa-f0-9]{2}[-,:]){5}[A-Fa-f0-9]{2}$";
            Regex rStr = new Regex(s);
            if (rStr.IsMatch(userdata.IpMac))
            {
            //if (rStr.IsMatch(userdata.IpMac))
            //{
                using (TransactionScope scope = new TransactionScope())
                {
                    bool charujues = false;
                    userdata.RecStatus = "A";
                    if (String.IsNullOrEmpty(userdata.Id))
                    {
                        userdata.Creater = curentuser.Id;
                        userdata.Createtime = DateTime.Now;
                        charujues = true;
                    }
                    userdata.Modifier = curentuser.Id;
                    userdata.Modifytime = DateTime.Now;
@@ -278,6 +320,21 @@
                    {
                        return JsonConvert.SerializeObject(resultEntity);
                    }
                    if (charujues)
                    {
                       var  pltRoleDTO = _pltRoleService.listRole().Where(x => x.RoleName == "员工").FirstOrDefault();
                        if (pltRoleDTO != null)
                        {
                            resultEntity = _pltRoleService.SaveUserRole(pltRoleDTO.Id,userdata.Id, curentuser.Id);
                            if (resultEntity.Result == false)
                            {
                                return JsonConvert.SerializeObject(resultEntity);
                            }
                        }
                    }
                    string[] JiatingchengyuanId = userdata.JiatingchengyuanId;
                    string[] Name = userdata.Name;
                    string[] Guanxi = userdata.Guanxi;
@@ -336,11 +393,11 @@
                    }
                    scope.Complete();
                }
            }
            else
            {
                resultEntity.Message = "MAC地址格式错误";
            }
            //}
            //else
            //{
            //    resultEntity.Message = "MAC地址格式错误";
            //}
            return JsonConvert.SerializeObject(resultEntity);
        }
        #endregion
@@ -454,6 +511,16 @@
            return View();
        }
        [CheckLogin]
        public string GetUserListJiBenGongZi(PltUserDTOSearch search)
        {
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            ViewData["curentuser"] = curentuser;
            search.Zhiwustatus = "A";
            //JsonResult jsonResult =   new JsonResult(_liaotianService.SearchByPaging(search), new Newtonsoft.Json.Serialization.DefaultContractResolver());
            return JsonConvert.SerializeObject(_userService.SearchByPaging(search));
        }
        #region 修改备注
        [CheckLogin]
@@ -462,8 +529,10 @@
            var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
            ViewData["curentuser"] = curentuser;
            var pageEntities = _pltPageService.GetUserPage(curentuser.Id, "/User/JiBenGongZi");
            var pageEntities2 = pageEntities.Where(x => x.PageMethod == "02").ToList();
            ViewData["ActionInfo2"] = pageEntities2;
            ViewBag.shifou = _liaotianService.GetSYScode("system", "shifou");//.Select(x => new { code = x.CodeSn, label = x.Comments }).ToList();
            PltUserDTO PltUserDTO = new PltUserDTO();
@@ -523,7 +592,144 @@
            return JsonConvert.SerializeObject(resultEntity);
        }
        #endregion
        //提问
        public IActionResult GetHuiYuanYwjl(string change = "D")
        {
            ReturnMsg<PltUserDTO> returnMsg = new ReturnMsg<PltUserDTO>();
            returnMsg.code = 2;
            try
            {
                string userid = "";
                var headers = Request.Headers;
                if (headers != null)
                {
                    //string SecurityKey = _configuration.GetSection("SecurityKey").Value;
                    var keyId = headers["Authorization"].FirstOrDefault();
                    if (string.IsNullOrEmpty(keyId))
                    {
                        returnMsg.code = 2;
                        returnMsg.error = "没有获取到token";
                        returnMsg.count = 0;
                        return new JsonResult(returnMsg);
                    }
                    JwtSecurityToken jwt = null;
                    var handler = new JwtSecurityTokenHandler();
                    var key1 = keyId.Replace("Bearer", "").Trim();
                    jwt = handler.ReadJwtToken(key1);
                    System.Security.Claims.Claim sss = jwt.Claims.Where(x => x.Type == "id").FirstOrDefault();
                    userid = sss.Value;
                }
                //查找用户对应的业务经理,没有的话就分配一个业务经理
                PltUserDTO dTO = new PltUserDTO();
                var cooperatecustomCustomerDTOs = _cooperatecustomCustomerService.GetList(userid);
                //合作客户是否存在业务经理
                if (cooperatecustomCustomerDTOs.Count > 0)
                {
                    var cooperatecustomCustomerDTO = cooperatecustomCustomerDTOs.Where(x => x.Ywjl != null).FirstOrDefault();
                    if (cooperatecustomCustomerDTO != null)
                    {
                        dTO = _userService.GetPltUserEntity(cooperatecustomCustomerDTO.Ywjl);
                        if (!string.IsNullOrEmpty(dTO.Id) && dTO.IsYwjl == "A" && dTO.Zhiwustatus == "A")
                        {
                            returnMsg.code = 1;
                            returnMsg.returnObj = dTO;
                            return new JsonResult(returnMsg);
                        }
                    }
                }
                var intentionCustomerDTOs = _intentionCustomerService.GetList(userid);
                //档案客户是否存在业务经理
                if (intentionCustomerDTOs.Count > 0)
                {
                    var intentionCustomerDTO = intentionCustomerDTOs.Where(x => x.Ywjl != null).FirstOrDefault();
                    if (intentionCustomerDTO != null)
                    {
                        dTO = _userService.GetPltUserEntity(intentionCustomerDTO.Ywjl);
                        if (!string.IsNullOrEmpty(dTO.Id) && dTO.IsYwjl == "A" && dTO.Zhiwustatus == "A")
                        {
                            returnMsg.code = 1;
                            returnMsg.returnObj = dTO;
                            return new JsonResult(returnMsg);
                        }
                    }
                }
                //是否曾经分配过业务经理
                var customerYwjls = _userService.GetListCustomerYwjl(userid);
                if (customerYwjls.Count > 0)
                {
                    if (change != "A")
                    {
                        dTO = _userService.GetPltUserEntity(customerYwjls.First().YwjlId);
                        if (!string.IsNullOrEmpty(dTO.Id) && dTO.IsYwjl == "A" && dTO.Zhiwustatus == "A")
                        {
                            returnMsg.code = 1;
                            returnMsg.returnObj = dTO;
                            return new JsonResult(returnMsg);
                        }
                    }
                    else
                    {
                        var pltUserDTOs = _userService.GetList(null, "A").Where(x => x.Id != customerYwjls.First().YwjlId).OrderBy(x => x.FenpeiDate).ToList();
                        if (pltUserDTOs.Count > 0)
                        {
                            dTO = pltUserDTOs.First();
                            _userService.savePltUserFenpeiDate(DateTime.Now, dTO.Id);
                            CustomerYwjl customerYwjl = new CustomerYwjl();
                            customerYwjl.UserId = userid;
                            customerYwjl.YwjlId = dTO.Id;
                            customerYwjl.Createtime = DateTime.Now;
                            _userService.saveCustomerYwjl(customerYwjl);
                            returnMsg.code = 1;
                            returnMsg.returnObj = dTO;
                            return new JsonResult(returnMsg);
                        }
                    }
                }
                //分配客户经理
                var userDTOs = _userService.GetList(null, "A").OrderBy(x => x.FenpeiDate).ToList();
                if (userDTOs.Count > 0)
                {
                    dTO = userDTOs.First();
                    _userService.savePltUserFenpeiDate(DateTime.Now, dTO.Id);
                    CustomerYwjl customerYwjl = new CustomerYwjl();
                    customerYwjl.UserId = userid;
                    customerYwjl.YwjlId = dTO.Id;
                    customerYwjl.Createtime = DateTime.Now;
                    _userService.saveCustomerYwjl(customerYwjl);
                    returnMsg.code = 1;
                    returnMsg.returnObj = dTO;
                    return new JsonResult(returnMsg);
                }
                returnMsg.code = 2;
                returnMsg.error = "没有找到业务经理";
                returnMsg.count = 0;
            }
            catch (Exception ex)
            {
                returnMsg.code = 2;
                returnMsg.error = "没有获取到token";
                returnMsg.count = 0;
            }
            return new JsonResult(returnMsg);
        }
    }
}