username@email.com
2023-02-02 db0147994ef4899702ac864ac0794a79fe980416
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;
@@ -26,11 +27,15 @@
        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
            , IPltRoleService pltRoleService
             , IPltPageService pltPageService)
             , IPltPageService pltPageService
            , ICooperatecustomCustomerService cooperatecustomCustomerService
             , IIntentionCustomerService intentionCustomerService)
        {
            _logger = logger;
            _userService = userService;
@@ -41,6 +46,8 @@
            _sysAttachmentService = sysAttachmentService;
            _pltRoleService = pltRoleService;
            _pltPageService = pltPageService;
            _cooperatecustomCustomerService = cooperatecustomCustomerService;
            _intentionCustomerService = intentionCustomerService;
        } 
 
 
@@ -585,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);
        }
    }
}