示例#1
0
        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");
            }
        }
示例#2
0
        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);
        }
示例#3
0
        /// <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");
            }
        }
示例#5
0
        /// <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()));
        }
示例#6
0
        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("该接口操作暂不能在平台单方面执行。");
                }
            }
        }