Esempio n. 1
0
        public async Task <ResponseMessage <CustomerLossResponse> > CreateAsync(UserInfo userInfo, CustomerLossRequest customerLossRequest, CancellationToken cancellationToken = default(CancellationToken))
        {
            ResponseMessage <CustomerLossResponse> response = new ResponseMessage <CustomerLossResponse>();

            if (customerLossRequest == null || userInfo == null)
            {
                throw new ArgumentNullException(nameof(customerLossRequest));
            }
            //修改客户状态
            var customerInfo = await _icustomerInfoStore.GetAsync(a => a.Where(b => b.Id == customerLossRequest.CustomerId && !b.IsDeleted));

            if (customerInfo == null)
            {
                response.Code    = ResponseCodeDefines.NotFound;
                response.Message = "拉无效的客户未找到";
                return(response);
            }
            if (!await _permissionExpansionManager.HavePermission(userInfo.Id, "LossCustomer", customerInfo.DepartmentId))
            {
                response.Code    = ResponseCodeDefines.NotAllow;
                response.Message = "没有权限拉无效该客户";
                return(response);
            }
            if (await Store.GetAsync(x => x.Where(y => !y.IsDeleted && y.CustomerId == customerLossRequest.CustomerId)) != null)
            {
                response.Message = "该客户已经无效";
                return(response);
            }
            CustomerLoss customerLoss = new CustomerLoss();

            customerLoss.Id               = Guid.NewGuid().ToString();
            customerLoss.CustomerId       = customerLossRequest.CustomerId;
            customerLoss.HouseTypeId      = NeedHouseType.BusinessToBuy;
            customerLoss.IsDeleted        = false;
            customerLoss.LossDepartmentId = userInfo.OrganizationId;
            customerLoss.LossTime         = DateTime.Now;
            customerLoss.LossUserId       = userInfo.Id;
            customerLoss.LossTypeId       = customerLossRequest.LossTypeId;
            customerLoss.LossRemark       = customerLossRequest.LossRemark;
            customerLoss.CreateTime       = DateTime.Now;

            //if ((await _permissionExpansionManager.GetLowerDepartments(userInfo.OrganizationId)).Contains(response.DepartmentId) && (await _permissionExpansionManager.HavePermission(userInfo.Id, "LossCustomer")))
            //{
            //    response.CustomerStatus = CustomerStatus.Lapse;
            //    customerLoss.CustomerInfo = response;
            response.Extension = _mapper.Map <CustomerLossResponse>(await Store.CreateAsync(customerLoss, cancellationToken));
            return(response);
            //}
        }
        public async Task <ResponseMessage <CustomerLossResponse> > CreateCustomerLoss(UserInfo user, [FromBody] CustomerLossRequest customerLossRequest)
        {
            Logger.Trace($"用户{user?.UserName ?? ""}({user?.Id ?? ""})新增客户失效(CreateCustomerLoss):\r\n请求参数为:\r\n" + (customerLossRequest != null ? JsonHelper.ToJson(customerLossRequest) : ""));

            ResponseMessage <CustomerLossResponse> response = new ResponseMessage <CustomerLossResponse>();

            if (!ModelState.IsValid)
            {
                response.Code    = ResponseCodeDefines.ModelStateInvalid;
                response.Message = ModelState.GetAllErrors();
                Logger.Warn($"用户{user?.UserName ?? ""}({user?.Id ?? ""})新增客户失效(CreateCustomerLoss)模型验证失败:\r\n{response.Message ?? ""},\r\n请求参数为:\r\n" + (customerLossRequest != null ? JsonHelper.ToJson(customerLossRequest) : ""));
                return(response);
            }
            try
            {
                return(await _customerLossManager.CreateAsync(user, customerLossRequest, HttpContext.RequestAborted));

                //if (response.Extension == null)
                //{
                //    response.Code = ResponseCodeDefines.NotAllow;
                //    response.Message = "拉无效失败";
                //}
            }
            catch (Exception e)
            {
                response.Code    = ResponseCodeDefines.ServiceError;
                response.Message = e.ToString();
                Logger.Error($"用户{user?.UserName ?? ""}({user?.Id ?? ""})新增客户失效(CreateCustomerLoss)请求失败:\r\n{response.Message ?? ""},\r\n请求参数为:\r\n" + (customerLossRequest != null ? JsonHelper.ToJson(customerLossRequest) : ""));
            }
            return(response);
        }