protected void btnRepayNow_OnClick(object sender, EventArgs e) { int projectId = Convert.ToInt32(((Button)sender).CommandArgument); try { var repaymentTaskId = context.li_projects.Single(p => p.id == projectId) .li_repayment_tasks.First( t => (t.status == (int)Agp2pEnums.RepaymentStatusEnum.Unpaid || t.status == (int)Agp2pEnums.RepaymentStatusEnum.OverTime) && t.should_repay_time.Date <= DateTime.Today).id; var repayment = context.ExecuteRepaymentTask(repaymentTaskId, Agp2pEnums.RepaymentStatusEnum.ManualPaid); RptBind(); var remark = "执行还款计划成功, 利息: " + repayment.repay_interest + " 返还本金: " + repayment.repay_principal; AddAdminLog(DTEnums.ActionEnum.Edit.ToString(), remark); //记录日志 JscriptMsg(remark, Utils.CombUrlTxt("project_recently_repay_list.aspx", "page={0}&keywords={1}&showType={2}&startTime={3}&endTime={4}", page.ToString(), txtKeywords.Text, rblProjectShowType.SelectedValue, txtStartTime.Text, txtEndTime.Text), "Success"); } catch (Exception ex) { JscriptMsg("执行还款计划失败!" + ex.Message, Utils.CombUrlTxt("project_recently_repay_list.aspx", "page={0}&keywords={1}&showType={2}&startTime={3}&endTime={4}", page.ToString(), txtKeywords.Text, rblProjectShowType.SelectedValue, txtStartTime.Text, txtEndTime.Text), "Failure"); } }
public void Day03() { Common.DeltaDay(realDate, 2); Common.AutoRepaySimulate(); // 手动还款 var context = new Agp2pDataContext(); var p = context.li_projects.Single(p0 => p0.title == "PT3"); context.ExecuteRepaymentTask(p.li_repayment_tasks.Single().id, Agp2pEnums.RepaymentStatusEnum.ManualPaid); Common.AssertWalletDelta(UserA, 2.78m + 75, 0m, 0m, 0m, 0, 0, 10000, 2.78m, realDate); }
/// <summary> /// 本息到账 /// </summary> /// <param name="msg"></param> private static void ReturnPrinInte(ReturnPrinInteRespMsg msg) { try { //检查请求处理结果 if (msg.CheckResult()) { //检查签名 if (msg.CheckSignature()) { //异步返回才执行,内网测试使用同步 #if DEBUG if (msg.Sync) { #endif #if !DEBUG if (!msg.Sync) { #endif Agp2pDataContext context = new Agp2pDataContext(); var req = context.li_pay_request_log.SingleOrDefault(r => r.id == msg.RequestId); if (req != null) { var dic = Utils.UrlParamToData(req.remarks); //活期项目不需要执行还款计划 if (!Utils.StrToBool(dic["isHuoqi"], false)) { if (!Utils.StrToBool(dic["isEarly"], false)) context.ExecuteRepaymentTask(Utils.StrToInt(dic["repayTaskId"], 0)); else context.EarlierRepayAll(msg.ProjectCode, ConfigLoader.loadCostConfig().earlier_pay); } } else msg.Remarks = "没有找到对应的还款请求,请求编号为:" + msg.RequestId; msg.HasHandle = true; } } } } catch (ChangeConflictException) { MessageBus.Main.Publish(msg); } catch (Exception ex) { msg.Remarks = "内部错误:" + ex.Message; } }
protected void btnRepayNow_OnClick(object sender, EventArgs e) { int repaymentId = Convert.ToInt32(((Button)sender).CommandArgument); try { var repayment = context.ExecuteRepaymentTask(repaymentId, Agp2pEnums.RepaymentStatusEnum.ManualPaid); var remark = "执行还款计划成功, 利息: " + repayment.repay_interest + " 返还本金: " + repayment.repay_principal; AddAdminLog(DTEnums.ActionEnum.Edit.ToString(), remark); //记录日志 JscriptMsg(remark, Utils.CombUrlTxt("project_repayment_list.aspx", "project_id={0}", project_id), "Success"); } catch (Exception ex) { JscriptMsg("执行还款计划失败!" + ex.Message, Utils.CombUrlTxt("project_repayment_list.aspx", "project_id={0}", project_id), "Failure"); } }
/// <summary> /// 新手标第一期自动返10元(停用) /// </summary> /// <param name="timerName"></param> /// <param name="onTime"></param> private static void HandleTimerMsg(TimerMsg.Type timerName, bool onTime) { if (timerName != TimerMsg.Type.AutoRepayTimer) { return; } var context = new Agp2pDataContext(); var shouldRepayTask = context.li_repayment_tasks.Where( t => t.only_repay_to != null && (t.status == (int)Agp2pEnums.RepaymentStatusEnum.Unpaid || t.status == (int)Agp2pEnums.RepaymentStatusEnum.OverTime) && t.should_repay_time.Date <= DateTime.Today).ToList(); if (!shouldRepayTask.Any()) { return; } shouldRepayTask.ForEach(ta => context.ExecuteRepaymentTask(ta.id)); context.AppendAdminLogAndSave("AutoRepay", "新手体验标自动还款:" + string.Join(", ", shouldRepayTask.Select(t => t.dt_users.user_name).ToArray())); }
protected void excBtn_OnClick(object sender, EventArgs e) { string requestId = ((LinkButton)sender).CommandArgument; var request = context.li_pay_request_log.SingleOrDefault(r => r.id == requestId); if (request != null) { var project = context.li_projects.SingleOrDefault(p => p.id == request.project_id); switch (request.api) { #if DEBUG //个人自动账户/银行还款开通 case (int)Agp2pEnums.SumapayApiEnum.AcReO: case (int)Agp2pEnums.SumapayApiEnum.AbReO: if (project != null) { project.autoRepay = true; context.SubmitChanges(); } break; //个人自动还款取消 case (int)Agp2pEnums.SumapayApiEnum.ClRep: if (project != null) { project.autoRepay = false; context.SubmitChanges(); } break; //个人网银/一键充值 case (int)Agp2pEnums.SumapayApiEnum.WeRec: case (int)Agp2pEnums.SumapayApiEnum.WhRec: case (int)Agp2pEnums.SumapayApiEnum.WhReM: var trans = context.li_bank_transactions.SingleOrDefault(u => u.no_order == requestId); if (trans?.status == (int)Agp2pEnums.BankTransactionStatusEnum.Acting) { context.ConfirmBankTransaction(trans.id, null); } break; //个人提现 case (int)Agp2pEnums.SumapayApiEnum.Wdraw: case (int)Agp2pEnums.SumapayApiEnum.WdraM: var transT = context.li_bank_transactions.SingleOrDefault(u => u.no_order == requestId); if (transT?.status == (int)Agp2pEnums.BankTransactionStatusEnum.Acting) { context.ConfirmBankTransaction(transT.id, null); } break; //普通/集合项目放款 case (int)Agp2pEnums.SumapayApiEnum.ALoan: case (int)Agp2pEnums.SumapayApiEnum.CLoan: if (project != null) { if (project.IsHuoqiProject()) { TransactionFacade.MakeLoan(context, DateTime.Now, project, project.li_risks.li_loaners.user_id); } else { context.StartRepayment(project.id); } } break; //个人自动还款普通/集合项目 case (int)Agp2pEnums.SumapayApiEnum.AcRep: case (int)Agp2pEnums.SumapayApiEnum.AbRep: if (!string.IsNullOrEmpty(request.remarks)) { if (project != null && !project.IsHuoqiProject() && !project.IsNewbieProject1()) { var dic = Utils.UrlParamToData(request.remarks); int repayId = Utils.StrToInt(dic["repayTaskId"], 0); var repayTask = context.li_repayment_tasks.SingleOrDefault(r => r.id == repayId); if (repayTask != null) { context.GainLoanerRepayment(DateTime.Now, repayId, (int)request.user_id, repayTask.repay_principal + repayTask.repay_interest); } } } break; //普通/集合项目本息到账 case (int)Agp2pEnums.SumapayApiEnum.RetPt: case (int)Agp2pEnums.SumapayApiEnum.RetCo: if (project != null && !project.IsHuoqiProject() && !project.IsNewbieProject1()) { if (!string.IsNullOrEmpty(request.remarks)) { var dic = Utils.UrlParamToData(request.remarks); int repayId = Utils.StrToInt(dic["repayTaskId"], 0); context.ExecuteRepaymentTask(repayId); } } break; #endif default: throw new NotImplementedException("该接口操作暂不能在平台单方面执行。"); } } }