public CustomJsonResult PrimaryAudit(int operater, Enumeration.OperateType operate, Merchant merchant, int[] estimateInsuranceCompanyIds, List <MerchantPosMachine> merchantPosMachine, List <BankCard> bankCard, BizProcessesAudit bizProcessesAudit)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                var l_Merchant = CurrentDb.Merchant.Where(m => m.Id == merchant.Id).FirstOrDefault();
                if (l_Merchant == null)
                {
                    return(new CustomJsonResult(ResultType.Failure, "不存在该商户"));
                }

                l_Merchant.SalesmanId = merchant.SalesmanId;
                l_Merchant.Type       = merchant.Type;
                if (l_Merchant.Type == Enumeration.MerchantType.CarRepair)
                {
                    l_Merchant.RepairCapacity = merchant.RepairCapacity;
                }
                else
                {
                    l_Merchant.RepairCapacity = Enumeration.RepairCapacity.NoRepair;
                }

                l_Merchant.ContactName               = merchant.ContactName;
                l_Merchant.ContactPhoneNumber        = merchant.ContactPhoneNumber;
                l_Merchant.ContactAddress            = merchant.ContactAddress;
                l_Merchant.YYZZ_Name                 = merchant.YYZZ_Name;
                l_Merchant.YYZZ_RegisterNo           = merchant.YYZZ_RegisterNo;
                l_Merchant.YYZZ_Type                 = merchant.YYZZ_Type;
                l_Merchant.YYZZ_Address              = merchant.YYZZ_Address;
                l_Merchant.YYZZ_OperatingPeriodStart = merchant.YYZZ_OperatingPeriodStart;
                l_Merchant.YYZZ_OperatingPeriodEnd   = merchant.YYZZ_OperatingPeriodEnd;

                l_Merchant.FR_Name             = merchant.FR_Name;
                l_Merchant.FR_IdCardNo         = merchant.FR_IdCardNo;
                l_Merchant.FR_Birthdate        = merchant.FR_Birthdate;
                l_Merchant.FR_Address          = merchant.FR_Address;
                l_Merchant.FR_IssuingAuthority = merchant.FR_IssuingAuthority;
                l_Merchant.FR_ValidPeriodStart = merchant.FR_ValidPeriodEnd;
                l_Merchant.FR_ValidPeriodEnd   = merchant.FR_ValidPeriodEnd;

                if (string.IsNullOrEmpty(merchant.AreaCode))
                {
                    l_Merchant.Area     = null;
                    l_Merchant.AreaCode = null;
                }
                else
                {
                    l_Merchant.Area     = merchant.Area;
                    l_Merchant.AreaCode = merchant.AreaCode;
                }

                l_Merchant.LastUpdateTime = this.DateTime;
                l_Merchant.Mender         = operater;



                var removeMerchantEstimateCompany = CurrentDb.MerchantEstimateCompany.Where(m => m.MerchantId == l_Merchant.Id).ToList();
                foreach (var m in removeMerchantEstimateCompany)
                {
                    CurrentDb.MerchantEstimateCompany.Remove(m);
                }

                if (estimateInsuranceCompanyIds != null)
                {
                    foreach (var m in estimateInsuranceCompanyIds)
                    {
                        MerchantEstimateCompany merchantEstimateCompany = new MerchantEstimateCompany();
                        merchantEstimateCompany.InsuranceCompanyId = m;
                        merchantEstimateCompany.MerchantId         = l_Merchant.Id;
                        CurrentDb.MerchantEstimateCompany.Add(merchantEstimateCompany);
                    }
                }


                //foreach (var m in merchantPosMachine)
                //{
                //    var l_MerchantPosMachine = CurrentDb.MerchantPosMachine.Where(q => q.Id == q.Id && q.MerchantId == l_Merchant.Id).FirstOrDefault();
                //    if (l_MerchantPosMachine != null)
                //    {
                //        l_MerchantPosMachine.Deposit = m.Deposit;
                //        l_MerchantPosMachine.Rent = m.Rent;
                //        l_MerchantPosMachine.Mender = operater;
                //        l_MerchantPosMachine.LastUpdateTime = this.DateTime;
                //        CurrentDb.SaveChanges();
                //    }
                //}


                foreach (var m in bankCard)
                {
                    var l_BankCard = CurrentDb.BankCard.Where(q => q.Id == q.Id && q.MerchantId == l_Merchant.Id).FirstOrDefault();
                    if (l_BankCard != null)
                    {
                        l_BankCard.BankAccountName = m.BankAccountName;
                        l_BankCard.BankAccountNo   = m.BankAccountNo;
                        l_BankCard.BankName        = m.BankName;
                        l_BankCard.Mender          = operater;
                        l_BankCard.LastUpdateTime  = this.DateTime;
                        CurrentDb.SaveChanges();
                    }
                }

                switch (operate)
                {
                case Enumeration.OperateType.Save:

                    BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, null);

                    result = new CustomJsonResult(ResultType.Success, "保存成功");
                    break;

                case Enumeration.OperateType.Submit:

                    BizFactory.BizProcessesAudit.ChangeAuditDetailsAuditComments(operater, bizProcessesAudit.CurrentDetails.Id, bizProcessesAudit.CurrentDetails.AuditComments, null, this.DateTime);

                    BizFactory.BizProcessesAudit.ChangeMerchantAuditStatus(operater, bizProcessesAudit.CurrentDetails.BizProcessesAuditId, Enumeration.MerchantAuditStatus.WaitSeniorAudit);

                    result = new CustomJsonResult(ResultType.Success, "提交成功");
                    break;
                }


                CurrentDb.SaveChanges();
                ts.Complete();
            }

            return(result);
        }
        public CustomJsonResult Edit(int operater, Merchant merchant, int[] estimateInsuranceCompanyIds, List <MerchantPosMachine> merchantPosMachine, List <BankCard> bankCard)
        {
            CustomJsonResult result = new CustomJsonResult();

            using (TransactionScope ts = new TransactionScope())
            {
                var l_Merchant = CurrentDb.Merchant.Where(m => m.Id == merchant.Id).FirstOrDefault();
                if (l_Merchant == null)
                {
                    return(new CustomJsonResult(ResultType.Failure, "不存在该商户"));
                }

                l_Merchant.Type = merchant.Type;
                if (l_Merchant.Type == Enumeration.MerchantType.CarRepair)
                {
                    l_Merchant.RepairCapacity = merchant.RepairCapacity;
                }
                else
                {
                    l_Merchant.RepairCapacity = Enumeration.RepairCapacity.NoRepair;
                }

                l_Merchant.ContactName               = merchant.ContactName;
                l_Merchant.ContactPhoneNumber        = merchant.ContactPhoneNumber;
                l_Merchant.ContactAddress            = merchant.ContactAddress;
                l_Merchant.WechatNumber              = merchant.WechatNumber;
                l_Merchant.YYZZ_Name                 = merchant.YYZZ_Name;
                l_Merchant.YYZZ_RegisterNo           = merchant.YYZZ_RegisterNo;
                l_Merchant.YYZZ_Type                 = merchant.YYZZ_Type;
                l_Merchant.YYZZ_Address              = merchant.YYZZ_Address;
                l_Merchant.YYZZ_OperatingPeriodStart = merchant.YYZZ_OperatingPeriodStart;
                l_Merchant.YYZZ_OperatingPeriodEnd   = merchant.YYZZ_OperatingPeriodEnd;
                l_Merchant.FR_Name             = merchant.FR_Name;
                l_Merchant.FR_IdCardNo         = merchant.FR_IdCardNo;
                l_Merchant.FR_Birthdate        = merchant.FR_Birthdate;
                l_Merchant.FR_Address          = merchant.FR_Address;
                l_Merchant.FR_IssuingAuthority = merchant.FR_IssuingAuthority;
                l_Merchant.FR_ValidPeriodStart = merchant.FR_ValidPeriodStart;
                l_Merchant.FR_ValidPeriodEnd   = merchant.FR_ValidPeriodEnd;
                l_Merchant.SalesmanId          = merchant.SalesmanId;
                l_Merchant.AgentId             = merchant.AgentId;
                if (string.IsNullOrEmpty(merchant.Area))
                {
                    l_Merchant.Area     = null;
                    l_Merchant.AreaCode = null;
                }
                else
                {
                    l_Merchant.Area     = merchant.Area;
                    l_Merchant.AreaCode = merchant.AreaCode;
                }


                l_Merchant.LastUpdateTime = this.DateTime;
                l_Merchant.Mender         = operater;


                var removeMerchantEstimateCompany = CurrentDb.MerchantEstimateCompany.Where(m => m.MerchantId == l_Merchant.Id).ToList();
                foreach (var m in removeMerchantEstimateCompany)
                {
                    CurrentDb.MerchantEstimateCompany.Remove(m);
                }

                if (estimateInsuranceCompanyIds != null)
                {
                    foreach (var m in estimateInsuranceCompanyIds)
                    {
                        MerchantEstimateCompany merchantEstimateCompany = new MerchantEstimateCompany();
                        merchantEstimateCompany.InsuranceCompanyId = m;
                        merchantEstimateCompany.MerchantId         = l_Merchant.Id;
                        CurrentDb.MerchantEstimateCompany.Add(merchantEstimateCompany);
                    }
                }

                foreach (var m in merchantPosMachine)
                {
                    var l_MerchantPosMachine = CurrentDb.MerchantPosMachine.Where(q => q.Id == m.Id && q.MerchantId == l_Merchant.Id).FirstOrDefault();
                    if (l_MerchantPosMachine != null)
                    {
                        l_MerchantPosMachine.Status         = m.Status;
                        l_MerchantPosMachine.ExpiryTime     = m.ExpiryTime;
                        l_MerchantPosMachine.Mender         = operater;
                        l_MerchantPosMachine.LastUpdateTime = this.DateTime;
                        CurrentDb.SaveChanges();
                    }
                }


                foreach (var m in bankCard)
                {
                    var l_BankCard = CurrentDb.BankCard.Where(q => q.Id == q.Id && q.MerchantId == l_Merchant.Id).FirstOrDefault();
                    if (l_BankCard != null)
                    {
                        l_BankCard.BankAccountName = m.BankAccountName;
                        l_BankCard.BankAccountNo   = m.BankAccountNo;
                        l_BankCard.BankName        = m.BankName;
                        l_BankCard.Mender          = operater;
                        l_BankCard.LastUpdateTime  = this.DateTime;
                        CurrentDb.SaveChanges();
                    }
                }


                var user = CurrentDb.SysClientUser.Where(m => m.Id == l_Merchant.UserId).FirstOrDefault();
                user.PhoneNumber = merchant.ContactPhoneNumber;


                SysFactory.SysItemCacheUpdateTime.UpdateUser(l_Merchant.UserId);

                CurrentDb.SaveChanges();
                ts.Complete();

                result = new CustomJsonResult(ResultType.Success, "保存成功");
            }

            return(result);
        }