public async Task <ResponseMessage> PutCustomerInfo(UserInfo user, [FromBody] CustomerReportRequest customerReportRequest)
        {
            Logger.Trace($"用户{user?.UserName ?? ""}({user?.Id ?? ""})修改客源信息(PutCustomerInfo):\r\n请求参数为:\r\n" + (customerReportRequest != null ? JsonHelper.ToJson(customerReportRequest) : ""));

            var response = new ResponseMessage();

            if (!ModelState.IsValid)
            {
                var error  = "";
                var errors = ModelState.Values.ToList();
                foreach (var item in errors)
                {
                    foreach (var e in item.Errors)
                    {
                        error += e.ErrorMessage + "  ";
                    }
                }
                response.Code    = ResponseCodeDefines.ModelStateInvalid;
                response.Message = error;
                Logger.Warn($"用户{user?.UserName ?? ""}({user?.Id ?? ""})修改客源信息(PutCustomerInfo)模型验证失败:\r\n{response.Message ?? ""},\r\n请求参数为:\r\n" + (customerReportRequest != null ? JsonHelper.ToJson(customerReportRequest) : ""));
                return(response);
            }
            try
            {
                var dictionaryGroup = await _customerReportManager.FindByIdAsync(customerReportRequest.Id, HttpContext.RequestAborted);

                if (dictionaryGroup == null)
                {
                    await _customerReportManager.CreateAsync(user, customerReportRequest, HttpContext.RequestAborted);
                }
                await _customerReportManager.UpdateAsync(user.Id, customerReportRequest, HttpContext.RequestAborted);

                response.Code    = ResponseCodeDefines.SuccessCode;
                response.Message = "修改成功";
            }
            catch (Exception e)
            {
                response.Code    = ResponseCodeDefines.ServiceError;
                response.Message = e.ToString();
                Logger.Error($"用户{user?.UserName ?? ""}({user?.Id ?? ""})修改客源信息(PutCustomerInfo)请求失败:\r\n{response.Message ?? ""},\r\n请求参数为:\r\n" + (customerReportRequest != null ? JsonHelper.ToJson(customerReportRequest) : ""));
            }
            return(response);
        }
Exemple #2
0
        /// <summary>
        /// 修改单个报备信息
        /// </summary>
        /// <param name="userId">请求者Id</param>
        /// <param name="customerReportRequest">请求数据</param>
        /// <param name="cancellationToken">验证</param>
        /// <returns></returns>
        public virtual async Task UpdateAsync(string userId, CustomerReportRequest customerReportRequest, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (customerReportRequest == null)
            {
                throw new ArgumentNullException(nameof(customerReportRequest));
            }
            var customerInfo = await _customerReportStore.GetAsync(a => a.Where(b => b.Id == customerReportRequest.Id && !b.IsDeleted));

            if (customerInfo == null)
            {
                return;
            }
            var newcustomerInfo = _mapper.Map <CustomerReport>(customerReportRequest);

            //报备基本信息
            newcustomerInfo.IsDeleted  = customerInfo.IsDeleted;
            newcustomerInfo.CreateTime = customerInfo.CreateTime;
            newcustomerInfo.CreateUser = customerInfo.CreateUser;
            newcustomerInfo.UpdateTime = DateTime.Now;
            newcustomerInfo.UpdateUser = userId;
            await _customerReportStore.UpdateAsync(newcustomerInfo, cancellationToken);
        }
        public async Task <ResponseMessage <CustomerReportResponse> > PostCustomerInfo(UserInfo user, [FromBody] CustomerReportRequest customerReportRequest)
        {
            Logger.Trace($"用户{user?.UserName ?? ""}({user?.Id ?? ""})新增报备信息(PostCustomerInfo):\r\n请求参数为:\r\n" + (customerReportRequest != null ? JsonHelper.ToJson(customerReportRequest) : ""));

            var response = new ResponseMessage <CustomerReportResponse>();

            if (!ModelState.IsValid)
            {
                var error  = "";
                var errors = ModelState.Values.ToList();
                foreach (var item in errors)
                {
                    foreach (var e in item.Errors)
                    {
                        error += e.ErrorMessage + "  ";
                    }
                }
                response.Code    = ResponseCodeDefines.ModelStateInvalid;
                response.Message = error;
                Logger.Warn($"用户{user?.UserName ?? ""}({user?.Id ?? ""})新增报备信息(PostCustomerInfo)模型验证失败:\r\n{response.Message ?? ""},\r\n请求参数为:\r\n" + (customerReportRequest != null ? JsonHelper.ToJson(customerReportRequest) : ""));
                return(response);
            }
            try
            {
                response.Extension = await _customerReportManager.CreateAsync(user, customerReportRequest, HttpContext.RequestAborted);
            }
            catch (Exception e)
            {
                response.Code    = ResponseCodeDefines.ModelStateInvalid;
                response.Message = e.ToString();
                Logger.Error($"用户{user?.UserName ?? ""}({user?.Id ?? ""})新增报备信息(PostCustomerInfo)请求失败:\r\n{response.Message ?? ""},\r\n请求参数为:\r\n" + (customerReportRequest != null ? JsonHelper.ToJson(customerReportRequest) : ""));
            }
            return(response);
        }
Exemple #4
0
        /// <summary>
        /// 新增报备信息
        /// </summary>
        /// <param name="user">新增人基本信息</param>
        /// <param name="customerReportRequest">请求实体</param>
        /// <param name="cancellationToken">验证</param>
        /// <returns></returns>
        public virtual async Task <CustomerReportResponse> CreateAsync(UserInfo user, CustomerReportRequest customerReportRequest, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (customerReportRequest == null)
            {
                throw new ArgumentNullException(nameof(customerReportRequest));
            }

            customerReportRequest.CustomerInfoCreateRequest.MainPhone = new Help.EncDncHelper().Encrypt(customerReportRequest.CustomerInfoCreateRequest.MainPhone);

            if (string.IsNullOrEmpty(customerReportRequest.CustomerId))
            {
                //信息是否完善
                if (string.IsNullOrEmpty(customerReportRequest.CustomerInfoCreateRequest.MainPhone) && string.IsNullOrEmpty(customerReportRequest.CustomerInfoCreateRequest.CustomerName))
                {
                    throw new ArgumentNullException(nameof(customerReportRequest));
                }
                else
                {
                    var customerInfo = await _customerinfoStore.CustomerInfoAll().Where(b => b.UserId == user.Id && b.MainPhone == customerReportRequest.CustomerInfoCreateRequest.MainPhone && b.CustomerName == customerReportRequest.CustomerInfoCreateRequest.CustomerName && !b.IsDeleted).FirstOrDefaultAsync(cancellationToken);

                    if (customerInfo != null)
                    {
                        //修改核心意向

                        var demand = await _icustomerDemandStore.GetAsync(a => a.Where(b => b.Id == customerInfo.CustomerDemand.Id), cancellationToken);


                        if (customerReportRequest.CustomerInfoCreateRequest.CustomerDemandRequest.PriceEnd == null)
                        {
                            demand.PriceEnd = customerReportRequest.CustomerInfoCreateRequest.CustomerDemandRequest.PriceEnd;
                        }
                        if (customerReportRequest.CustomerInfoCreateRequest.CustomerDemandRequest.PriceStart == null)
                        {
                            demand.PriceStart = customerReportRequest.CustomerInfoCreateRequest.CustomerDemandRequest.PriceStart;
                        }
                        if (customerReportRequest.CustomerInfoCreateRequest.CustomerDemandRequest.AcreageEnd == null)
                        {
                            demand.AcreageEnd = customerReportRequest.CustomerInfoCreateRequest.CustomerDemandRequest.AcreageEnd;
                        }
                        if (customerReportRequest.CustomerInfoCreateRequest.CustomerDemandRequest.AcreageStart == null)
                        {
                            demand.AcreageStart = customerReportRequest.CustomerInfoCreateRequest.CustomerDemandRequest.AcreageStart;
                        }
                        await _icustomerDemandStore.UpdateAsync(demand, cancellationToken);
                    }
                    else
                    {
                        var customerinfo = _mapper.Map <CustomerInfo>(customerReportRequest.CustomerInfoCreateRequest);
                        //客户基本信息
                        customerinfo.Id           = Guid.NewGuid().ToString();
                        customerinfo.CreateUser   = user.Id;
                        customerinfo.CreateTime   = DateTime.Now;
                        customerinfo.UserId       = user.Id;
                        customerinfo.DepartmentId = user.OrganizationId;
                        //最后跟进时间为创建时间
                        customerinfo.FollowupTime = customerinfo.CreateTime;
                        if (customerinfo.Birthday != null)
                        {
                            customerinfo.Age = DateTime.Now.Year - customerinfo.Birthday.Value.Year;
                        }
                        customerinfo.CustomerStatus = CustomerStatus.ExistingCustomers;


                        //客户需求信息
                        customerinfo.CustomerDemand.Id           = Guid.NewGuid().ToString();
                        customerinfo.CustomerDemand.UserId       = user.Id;
                        customerinfo.CustomerDemand.DepartmentId = user.OrganizationId;
                        customerinfo.CustomerDemand.CustomerId   = customerinfo.Id;
                        customerinfo.CustomerDemand.CreateUser   = user.Id;
                        customerinfo.CustomerDemand.CreateTime   = DateTime.Now;

                        //客户电话信息
                        customerinfo.CustomerPhones = customerinfo.CustomerPhones.Select(q =>
                        {
                            q.Id         = Guid.NewGuid().ToString();
                            q.CustomerId = customerinfo.Id;
                            q.CreateUser = user.Id;
                            q.CreateTime = DateTime.Now;

                            return(q);
                        });


                        await _customerinfoStore.CreateAsync(customerinfo, cancellationToken);



                        customerReportRequest.CustomerId = customerinfo.Id;
                    }
                }
            }
            else
            {
                //更新原来的用户数据跟进时间
                var customerinfo = await _customerinfoStore.GetAsync(a => a.Where(b => b.Id == customerReportRequest.CustomerId && !b.IsDeleted));



                //插入跟进信息
                var followup = new CustomerFollowUp
                {
                    Id               = Guid.NewGuid().ToString(),
                    CustomerId       = customerReportRequest.CustomerId,
                    TypeId           = CustomerFollowUpType.CustomerReported,
                    UserId           = user.Id,
                    DepartmentId     = user.OrganizationId,
                    FollowUpTime     = DateTime.Now,
                    TrueName         = customerinfo.CustomerName,
                    FollowUpContents = "客户报备",
                    CustomerNo       = customerinfo.CustomerNo,
                    IsRealFollow     = false,
                    CreateTime       = DateTime.Now,
                    CreateUser       = user.Id
                };
                await _icustomerFollowUpStore.CreateAsync(followup, cancellationToken);
            }

            var customerreport = _mapper.Map <CustomerReport>(customerReportRequest);

            //报备基本信息
            customerreport.Id           = Guid.NewGuid().ToString();
            customerreport.CreateUser   = user.Id;
            customerreport.CreateTime   = DateTime.Now;
            customerreport.UserId       = user.Id;
            customerreport.DepartmentId = user.OrganizationId;
            customerreport.ReportTime   = customerreport.CreateTime;
            await _customerReportStore.CreateAsync(customerreport, cancellationToken);

            return(_mapper.Map <CustomerReportResponse>(customerreport));
        }