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); }
/// <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); }
/// <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); } } }
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)); }
/// <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); } }
/// <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(); } }
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"); }