Пример #1
0
        private bool DoAdd()
        {
            var project = new li_projects();
            var risk    = new li_risks();

            project.li_risks = risk;
            SetRiskModel(risk);
            SetProjectModel(project);
            BindMortgages(risk);
            //项目编号
            var latestProject = LqContext.li_projects.Where(p => p.category_id == project.category_id && !p.title.Equals("")).OrderByDescending(p => p.id).FirstOrDefault();
            int prjectCount   = latestProject == null ? 0 : Utils.StrToInt(latestProject.title.Substring(latestProject.title.Length - 5), 0);

            project.title += new BLL.article_category().GetModel(project.category_id).call_index.ToUpper() + (prjectCount + 1).ToString("00000");

            LqContext.li_risks.InsertOnSubmit(risk);
            LqContext.li_projects.InsertOnSubmit(project);
            try
            {
                LqContext.SubmitChanges();
                AddAdminLog(DTEnums.ActionEnum.Add.ToString(), "添加项目成功!"); //记录日志
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(true);
        }
Пример #2
0
        /// <summary>
        /// 风控信息赋值
        /// </summary>
        /// <param name="risk"></param>
        private void SetRiskModel(li_risks risk)
        {
            risk.last_update_time = DateTime.Now;
            if (string.IsNullOrEmpty(ddlLoaner.SelectedValue))
            {
                return;
            }

            risk.loaner = Utils.StrToInt(ddlLoaner.SelectedValue, 0);
            //债权人信息
            if (rbl_project_type.SelectedValue == ((int)Agp2pEnums.LoanTypeEnum.Creditor).ToString())
            {
                risk.creditor         = Utils.StrToInt(ddlCreditor.SelectedValue, 0);
                risk.creditor_content = txtCreditorContent.Text;
            }
            risk.loaner_content      = txtLoanerContent.Text;
            risk.loan_usage          = txtLoanUse.Text;
            risk.source_of_repayment = txtRepaymentSource.Text;
            risk.risk_content        = txtRiskContent.Value;
            if (ddl_guarantor.SelectedIndex > 0)
            {
                risk.guarantor_id = Utils.StrToInt(ddl_guarantor.SelectedValue, 0);
            }
            //相关图片资料
            Loan.LoadAlbum(risk, Agp2pEnums.AlbumTypeEnum.LoanAgreement, 0, Request);
            Loan.LoadAlbum(risk, Agp2pEnums.AlbumTypeEnum.MortgageContract, 1, Request);
            Loan.LoadAlbum(risk, Agp2pEnums.AlbumTypeEnum.LienCertificate, 2, Request);
        }
Пример #3
0
        /// <summary>
        /// 绑定抵押物
        /// </summary>
        /// <param name="risk"></param>
        private void BindMortgages(li_risks risk)
        {
            if (string.IsNullOrEmpty(ddlLoaner.SelectedValue))
            {
                return;
            }
            var selectedLoaner = Convert.ToInt32(ddlLoaner.SelectedValue);

            if (risk.loaner != selectedLoaner) // 更换借款人后,之前的抵押物绑定需要全部删除
            {
                var dtRiskMortgages = LqContext.li_risk_mortgage.Where(rm => rm.risk == risk.id).ToList();
                LqContext.li_risk_mortgage.DeleteAllOnSubmit(dtRiskMortgages);

                risk.loaner           = selectedLoaner;
                risk.last_update_time = DateTime.Now;
            }

            for (int i = 0; i < rptList.Items.Count; i++)
            {
                int      mortgageId = Convert.ToInt32(((HiddenField)rptList.Items[i].FindControl("hidId")).Value);
                CheckBox cb         = (CheckBox)rptList.Items[i].FindControl("chkId");
                if (!cb.Enabled)
                {
                    continue;
                }
                var riskMortgage = LqContext.li_risk_mortgage.FirstOrDefault(rm => rm.risk == risk.id && rm.mortgage == mortgageId);
                if (cb.Checked) // 绑定抵押物
                {
                    if (riskMortgage != null)
                    {
                        continue;
                    }
                    riskMortgage = new li_risk_mortgage
                    {
                        mortgage         = mortgageId,
                        last_update_time = DateTime.Now,
                        li_risks         = risk
                    };
                    LqContext.li_risk_mortgage.InsertOnSubmit(riskMortgage);
                }
                else // 解除绑定
                {
                    if (riskMortgage == null)
                    {
                        continue;
                    }
                    LqContext.li_risk_mortgage.DeleteOnSubmit(riskMortgage);
                }
            }
        }
Пример #4
0
        private void ShowInfo(li_risks risk)
        {
            ddlLoaner.Items.Clear();
            var models =
                context.li_loaners.OrderByDescending(l => l.last_update_time)
                .Select(l => new ListItem(l.dt_users.real_name, l.id.ToString())).ToArray();

            ddlLoaner.Items.AddRange(models);
            if (risk.loaner != null)
            {
                ddlLoaner.SelectedValue = risk.loaner.ToString();
            }
            var selectedValue = ddlLoaner.SelectedValue;

            LoadMortgageList(Convert.ToInt32(selectedValue));
        }
Пример #5
0
 /// <summary>
 /// 加载相册
 /// </summary>
 /// <param name="model"></param>
 /// <param name="type"></param>
 /// <param name="splittedIndex"></param>
 /// <param name="request"></param>
 public void LoadAlbum(li_risks model, Agp2pEnums.AlbumTypeEnum type, int splittedIndex, HttpRequest request)
 {
     string[] albumArr  = GetSplittedFormValue("hid_photo_name", splittedIndex, request).ToArray();
     string[] remarkArr = GetSplittedFormValue("hid_photo_remark", splittedIndex, request).ToArray();
     Context.li_albums.DeleteAllOnSubmit(Context.li_albums.Where(a => a.risk == model.id && a.type == (int)type));
     if (albumArr != null)
     {
         var preAdd = albumArr.Zip(remarkArr, (album, remark) =>
         {
             var albumSplit = album.Split('|');
             return(new li_albums
             {
                 original_path = albumSplit[1],
                 thumb_path = albumSplit[2],
                 remark = remark,
                 add_time = DateTime.Now,
                 li_risks = model,
                 type = (byte)type
             });
         });
         Context.li_albums.InsertAllOnSubmit(preAdd);
     }
 }
Пример #6
0
        /// <summary>
        /// 重写虚方法,此方法将在Init事件前执行
        /// </summary>
        protected override void ShowPage()
        {
            Init += Project_Init; //加入IInit事件

            project_id = DTRequest.GetQueryInt("project_id");
            page       = Math.Max(1, DTRequest.GetQueryInt("page"));
            buyClaimId = DTRequest.GetQueryInt("buyClaimId");

            if (project_id <= 0)
            {
                return;
            }
            projectModel = context.li_projects.FirstOrDefault(p => p.id == project_id);
            if (projectModel == null)
            {
                //HttpContext.Current.Response.Redirect(linkurl("error", "?msg=" + Utils.UrlEncode("出错啦,您要浏览的页面不存在或已删除啦!")));
                HttpContext.Current.Response.Redirect(linkurl("404"));
                return;
            }
            li_claims preBuyClaim = null;

            if (buyClaimId != 0)
            {
                preBuyClaim = context.li_claims.SingleOrDefault(c => c.id == buyClaimId);
                if (preBuyClaim == null)
                {
                    HttpContext.Current.Response.Redirect(linkurl("error", "?msg=" + Utils.UrlEncode("出错啦,您要浏览的页面不存在或已删除啦!")));
                    return;
                }
            }
            Investable = new Investable {
                NeedTransferClaim = preBuyClaim, Project = projectModel
            };

            // 浏览次数 + 1
            projectModel.click += 1;
            context.SubmitChanges();

            var pr = GetProjectInvestmentProgress(projectModel);

            //剩余金额
            investmentBalance = pr.GetInvestmentBalance();
            //风控信息
            risk = projectModel.li_risks;
            //借款人
            loaner = risk.li_loaners;
            //借款人企业
            loaner_company = risk.li_loaners?.li_loaner_companies;
            //抵押物
            mortgages = projectModel.li_risks.li_risk_mortgage.Select(rm => rm.li_mortgages).ToList();

            invsetorCount      = projectModel.GetInvestedUserCount();
            projectSum         = projectModel.financing_amount;
            projectDescription = projectModel.title;

            //还款计划
            repayment_tasks = projectModel.li_repayment_tasks
                              .Where(task => task.only_repay_to == null)
                              .OrderBy(rt => rt.should_repay_time)
                              .ToList();

            if (Investable.NeedTransferClaim != null)
            {
                var ratio = Investable.NeedTransferClaim.principal / projectModel.financing_amount;
                repayment_tasks = repayment_tasks.Select(src => new li_repayment_tasks
                {
                    repay_principal = Math.Round(src.repay_principal * ratio, 2),
                    repay_interest  = Investable.NeedTransferClaim.Parent.GetProfitingSectionDays(src,
                                                                                                  (claimBeforeProfitingDays, claimProfitingDays, claimInvalidDays) =>
                                                                                                  Math.Round(src.repay_interest * ratio * claimInvalidDays / (claimBeforeProfitingDays + claimProfitingDays + claimInvalidDays), 2)),
                    should_repay_time = src.should_repay_time,
                    term = src.term
                }).ToList();
            }
        }
Пример #7
0
        public static string ApplyLoan(string loanerContent, string loanUsage, string sourceOfRepayment, decimal amount)
        {
            var context  = new Agp2pDataContext();
            var userInfo = GetUserInfoByLinq(context);

            HttpContext.Current.Response.TrySkipIisCustomErrors = true;
            if (userInfo == null)
            {
                HttpContext.Current.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
                return("请先登录");
            }

            var project = context.li_projects.FirstOrDefault(p => p.li_risks.li_loaners.dt_users.id == userInfo.id &&
                                                             p.status < (int)Agp2pEnums.ProjectStatusEnum.FinancingApplicationChecking);

            if (project != null)
            {
                project.li_risks.loaner_content      = loanerContent;
                project.li_risks.loan_usage          = loanUsage;
                project.li_risks.source_of_repayment = sourceOfRepayment;
                project.financing_amount             = amount;
                project.status = (int)Agp2pEnums.ProjectStatusEnum.FinancingApplicationUncommitted;

                context.SubmitChanges();
                return("ok");
            }

            try
            {
                var risk = new li_risks()
                {
                    loaner              = userInfo.li_loaners.Single().id,
                    loaner_content      = loanerContent,
                    loan_usage          = loanUsage,
                    source_of_repayment = sourceOfRepayment,
                    last_update_time    = DateTime.Now
                };
                project = new li_projects()
                {
                    li_risks         = risk,
                    category_id      = 61,
                    financing_amount = amount,
                    user_name        = userInfo.user_name,
                    add_time         = DateTime.Now,
                    status           = (int)Agp2pEnums.ProjectStatusEnum.FinancingApplicationUncommitted,
                    repayment_type   = (int)Agp2pEnums.ProjectRepaymentTypeEnum.DengEr,
                    no   = "",
                    type = (int)Agp2pEnums.LoanTypeEnum.Personal
                };
                //项目编号
                var latestProject = context.li_projects.Where(p => p.category_id == project.category_id).OrderByDescending(p => p.id).FirstOrDefault();
                int prjectCount   = latestProject == null ? 0 : Utils.StrToInt(latestProject.title.Substring(latestProject.title.Length - 5), 0);
                project.title += new BLL.article_category().GetModel(project.category_id).call_index.ToUpper() + (prjectCount + 1).ToString("00000");
                context.li_risks.InsertOnSubmit(risk);
                context.li_projects.InsertOnSubmit(project);
                context.SubmitChanges();
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return("ok");
        }