private string GetBorrowingTarget() { B_borrowing_target bllBorrowingTarget = new B_borrowing_target(); M_borrowTargetZhuolu target = bllBorrowingTarget.GetModelByParams(2); if (target == null || target.targetid == 0) { target = bllBorrowingTarget.GetModelByParams(-1); } StringBuilder builder = new StringBuilder(); builder.Append("<div class=\"zc_n_03\">"); builder.Append("<div class=\"zc_n_03_main\">"); builder.AppendFormat("<h2>{0}</h2>", target.project_type_name); builder.AppendFormat("<p style=\"position: absolute;left: 41%;top: 19%;font-size: 0.6rem;color: #a6a6a6;\">历史平均年化利率</p>"); builder.Append("<p class=\"zc_n_03_main_p1\">" + target.annual_interest_rate.ToString("0.0") + "<small>%</small></p>"); //if (target.life_of_loan >=3 && target.life_of_loan <6 &&target.unit_day==1) //{ // builder.Append("<a><sub>+1%返现</sub></a>"); //} //else if(target.life_of_loan >= 6 && target.unit_day == 1) //{ // builder.Append("<a><sub>+2%返现</sub></a>"); //} //else //{ // builder.Append(""); //} builder.Append("<p class=\"zc_n_03_main_p2\">期限<span>" + (target.unit_day == 1 ? target.life_of_loan + "个月" : target.life_of_loan + "天") + "</span> 起投金额  100元</p>"); builder.Append("</div>"); builder.AppendFormat("<a href=\"{0}\" class=\"zc_n_03_btn\"></a>", "/home/ProjectDetail?targetid=" + target.targetid + ""); builder.Append("</div>"); return(builder.ToString()); }
/// <summary> /// 初始化页面显示的三个借款标数据 /// </summary> private void IntialBorrowingTarget() { B_borrowing_target bllBorrowingTarget = new B_borrowing_target(); List <M_borrowing_target_ZhuoLu> listData = new List <M_borrowing_target_ZhuoLu>(); M_borrowing_target_ZhuoLu targetLifeSix = GetPartialTargetModel(6); if (targetLifeSix != null && targetLifeSix.targetid != 0) { listData.Add(targetLifeSix); } M_borrowing_target_ZhuoLu targetLifeThree = GetPartialTargetModel(3); if (targetLifeThree != null && targetLifeThree.targetid != 0) { listData.Add(targetLifeThree); } M_borrowing_target_ZhuoLu targetLifeOne = GetPartialTargetModel(1); if (targetLifeOne != null && targetLifeOne.targetid != 0) { listData.Add(targetLifeOne); } if (listData.Count < 3)//如果总共得到的标的数量小于3个,则补满三条数据,以使得页面显示不变形 { for (int i = 1; i <= 3 - listData.Count; i++) { listData.Add(listData[0]); } } StringBuilder targetLifeHtml = new StringBuilder(); int itemIndex = 1; foreach (M_borrowing_target_ZhuoLu item in listData) { string percent = (item.fundraising_amount / item.borrowing_balance * 100M).ToString("0"); targetLifeHtml.Append("<dl class=\"list-libao\">"); targetLifeHtml.AppendFormat("<a href=\"{0}\">", "/invest_borrow_" + item.targetid + ".html"); targetLifeHtml.AppendFormat("<dt class=\"libao{0}\">", itemIndex); targetLifeHtml.AppendFormat("<div class=\"libao{0}_jindu\">", itemIndex); targetLifeHtml.AppendFormat("<div><p style=\"width:{0}%;\"></p></div>", percent); targetLifeHtml.AppendFormat("<span>{0}%</span>", percent); targetLifeHtml.Append("</div>"); targetLifeHtml.Append("<div class=\"libao1_main\">"); targetLifeHtml.Append("<div class=\"libao1_main_1\">"); targetLifeHtml.AppendFormat("<p class=\"libao1_main_1_biaoti\">{0}</p>", item.borrowing_title); targetLifeHtml.Append("</div>"); targetLifeHtml.Append("<div class=\"libao1_main_2 libao1_diyi\">"); targetLifeHtml.AppendFormat("<h3>{0}</h3><small>%</small>", item.annual_interest_rate.ToString("0.00")); targetLifeHtml.Append("</div>"); targetLifeHtml.Append("<div class=\"libao1_main_3\">"); targetLifeHtml.AppendFormat("<p><span>{0}</span>个月</p>", item.life_of_loan); targetLifeHtml.Append("</div></div></dt></a></dl>"); itemIndex++; } ltrBorrowintTargets.Text = targetLifeHtml.ToString(); }
/// <summary> /// 根据期限获取借款标数据 /// </summary> /// <param name="month">借款期限(1,3,6)</param> /// <returns></returns> private M_borrowing_target_ZhuoLu GetPartialTargetModel(int month) { B_borrowing_target bllBorrowingTarget = new B_borrowing_target(); M_borrowing_target_ZhuoLu targetLife; M_borrowing_target target = bllBorrowingTarget.GetModel(Common.ConfigHelper.GetConfigInt("MonthTargetID_" + month)); if (target != null && target.targetid != 0 && target.tender_state == 2 && target.end_time > DateTime.Now && target.fundraising_amount < target.borrowing_balance)//如果指定的标不存在,则使用规则查找符合要求的标 { targetLife = new M_borrowing_target_ZhuoLu { targetid = target.targetid, annual_interest_rate = target.annual_interest_rate, borrowing_balance = target.borrowing_balance, borrowing_title = target.borrowing_title, fundraising_amount = target.fundraising_amount, life_of_loan = target.life_of_loan }; } else { targetLife = bllBorrowingTarget.GetModelByLifeLoan(month); } return(targetLife); }
/// <summary> /// 项目投资利率计算 /// </summary> /// <param name="targetid">标的ID</param> /// <param name="Amount">投资金额</param> ///<param name = "Lixi" > 加息券,默认为0 </ param > /// <returns></returns> public decimal InvCalc(int targetid, decimal Amount = 100.00M, double Lixi = 0) { decimal dec = 0.00M; B_borrowing_target o = new B_borrowing_target(); M_borrowing_target m = new M_borrowing_target(); m = o.GetModel(targetid); InvestmentParameters mp = new InvestmentParameters(); mp.Amount = Amount; mp.Circle = m.life_of_loan; mp.CircleType = m.unit_day; mp.NominalYearRate = double.Parse(m.annual_interest_rate.ToString()) + Lixi; mp.OverheadsRate = 0f; mp.RepaymentMode = m.payment_options; mp.RewardRate = 0f; mp.IsThirtyDayMonth = false; mp.InvestDate = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); mp.Investmentenddate = DateTime.Parse(m.repayment_date.ToString("yyyy-MM-dd")); mp.Payinterest = m.month_payment_date; mp.InvestObject = 1; dec = Calculationofinterest(mp); return(dec); }
public ActionResult BgLoans() { string outstr = ""; ReLoans m = new ReLoans(); m.CmdId = DNTRequest.GetString("CmdId"); m.RespCode = DNTRequest.GetString("RespCode"); m.RespDesc = DNTRequest.GetString("RespDesc"); m.MerCustId = DNTRequest.GetString("MerCustId"); m.OrdId = DNTRequest.GetString("OrdId"); m.OrdDate = DNTRequest.GetString("OrdDate"); m.OutCustId = DNTRequest.GetString("OutCustId"); m.OutAcctId = DNTRequest.GetString("OutAcctId"); m.TransAmt = DNTRequest.GetString("TransAmt"); m.Fee = DNTRequest.GetString("Fee"); m.InCustId = DNTRequest.GetString("InCustId"); m.InAcctId = DNTRequest.GetString("InAcctId"); m.SubOrdId = DNTRequest.GetString("SubOrdId"); m.SubOrdDate = DNTRequest.GetString("SubOrdDate"); m.FeeObjFlag = DNTRequest.GetString("FeeObjFlag"); m.IsDefault = DNTRequest.GetString("IsDefault"); m.IsUnFreeze = DNTRequest.GetString("IsUnFreeze"); m.UnFreezeOrdId = DNTRequest.GetString("UnFreezeOrdId"); m.FreezeTrxId = DNTRequest.GetString("FreezeTrxId"); m.BgRetUrl = DNTRequest.GetString("BgRetUrl"); m.MerPriv = DNTRequest.GetString("MerPriv"); m.RespExt = DNTRequest.GetString("RespExt"); m.ChkValue = DNTRequest.GetString("ChkValue"); StringBuilder chkVal = new StringBuilder(); chkVal.Append(m.CmdId); chkVal.Append(m.RespCode); chkVal.Append(m.MerCustId); chkVal.Append(m.OrdId); chkVal.Append(m.OrdDate); chkVal.Append(m.OutCustId); chkVal.Append(m.OutAcctId); chkVal.Append(m.TransAmt); chkVal.Append(m.Fee); chkVal.Append(m.InCustId); chkVal.Append(m.InAcctId); chkVal.Append(m.SubOrdId); chkVal.Append(m.SubOrdDate); chkVal.Append(m.FeeObjFlag); chkVal.Append(m.IsDefault); chkVal.Append(m.IsUnFreeze); chkVal.Append(m.UnFreezeOrdId); chkVal.Append(m.FreezeTrxId); chkVal.Append(m.BgRetUrl); chkVal.Append(m.MerPriv); chkVal.Append(m.RespExt); string msg = chkVal.ToString(); //私钥文件的位置(这里是放在了站点的根目录下) string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk(); //需要指定提交字符串的长度 int len = Encoding.UTF8.GetBytes(msg).Length; StringBuilder sbChkValue = new StringBuilder(256); int ret = DllInterop.VeriSignMsg(merKeyFile, msg, msg.Length, m.ChkValue); LogInfo.WriteLog("验签:" + ret.ToString()); if (ret == 0) { if (m.RespCode == "000") { // M_borrowing_target m = new M_borrowing_target(); B_borrowing_target o = new B_borrowing_target(); B_member_table o1 = new B_member_table(); M_member_table p1 = new M_member_table(); M_member_table p2 = new M_member_table(); B_usercenter BUC = new B_usercenter(); string cachename = m.OrdId + "Loans" + m.FreezeTrxId; if (Utils.GeTThirdCache(cachename) == 0) { Utils.SetThirdCache(cachename); M_Capital_account_water baw = new M_Capital_account_water(); //借款人流水对象 //标的id,借款人id,投资人id,投资记录bid,抵扣券金额 string strings = m.MerPriv; string[] sArray = strings.Split('_'); if (sArray.Count() == 5) { p1 = o1.GetModel(int.Parse(sArray[1])); //借款人用户对象 LogInfo.WriteLog("sArray[1].ToString():" + sArray[1].ToString()); baw.membertable_registerid = p1.registerid; baw.income = decimal.Parse(m.TransAmt); baw.expenditure = 0.00M; baw.time_of_occurrence = DateTime.Now; // decimal ff = p1.available_balance + decimal.Parse(retloan.TransAmt); baw.account_balance = p1.available_balance; //面要得么帐户余额 LogInfo.WriteLog("借款人余额:" + p1.available_balance); baw.types_Finance = (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.借款转入.ToString()); baw.createtime = DateTime.Now; baw.keyid = 0; baw.remarks = m.OrdId + "," + m.OrdDate; M_Capital_account_water iaw = new M_Capital_account_water(); //投资人流水对象 p2 = o1.GetModel(int.Parse(sArray[2].ToString())); //投款人用户对象 iaw.membertable_registerid = p2.registerid; iaw.income = 0.00M; iaw.expenditure = decimal.Parse(m.TransAmt); iaw.time_of_occurrence = DateTime.Now; // decimal df=p1.available_balance - decimal.Parse(retloan.TransAmt); iaw.account_balance = p2.available_balance; //面要得么帐户余额 LogInfo.WriteLog("投资人余额:" + p2.ToString()); iaw.types_Finance = (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.项目投资.ToString()); iaw.createtime = DateTime.Now; iaw.keyid = 0; iaw.remarks = m.OrdId + "," + m.OrdDate; LogInfo.WriteLog("放款bid_records_id:" + sArray[3].ToString()); if (BUC.Loan_Successfully(m, baw, iaw, sArray[3].ToString(), decimal.Parse(sArray[4].ToString())) > 0) { //成功 outstr = "RECV_ORD_ID_" + m.OrdId; LogInfo.WriteLog("后台主动通知操作成功:" + outstr); return(Content(outstr)); // Response.Redirect("/usercenter/index.html"); } } } } } return(Content("")); }
/// <summary> /// 邀请奖历 投资成功奖励 /// </summary> /// <param name="dt"></param> protected internal void SendBonusForInviteAfterInvest(DataTable dt, string targetPlatform) //(int registerid, string invcode, int invcount, decimal investAmt, string userName, string borrowing_title, decimal bonusAmt) { if (dt.Rows.Count <= 0) { return; } //投资金额 decimal investAmt = decimal.Parse(dt.Rows[0]["investment_amount"].ToString()); int registerid = int.Parse(dt.Rows[0]["investor_registerid"].ToString()); //投资人ID int bid_records_id = int.Parse(dt.Rows[0]["bid_records_id"].ToString()); int life_of_loan = int.Parse(dt.Rows[0]["life_of_loan"].ToString()); int unit_day = int.Parse(dt.Rows[0]["unit_day"].ToString()); if (unit_day != 1) { life_of_loan = 0; } string borrowing_title = dt.Rows[0]["borrowing_title"].ToString(); string userName = dt.Rows[0]["username"].ToString(); string invcode = dt.Rows[0]["invitationcode"].ToString(); int targetid = int.Parse(dt.Rows[0]["targetid"].ToString());//标的ID //本次投标使用的奖励金额 decimal bonusAmt = decimal.Parse(dt.Rows[0]["bonusAmt"].ToString()); B_bonus_account_water bbaw = new B_bonus_account_water(); int invcount = B_usercenter.GetInvestCountByUserid(registerid);//投资次数 string uid = registerid.ToString(); LogInfo.WriteLog("投资人ID:" + registerid + "; /*邀请码*/:" + invcode); #region MyRegion 邀请奖历 投资成功奖励 暂不启用false 待重新梳理帐号fangjianmin if (invcode != null && invcode != "")// && false { DateTime dte = DateTime.Now; string codesql = "SELECT invcode,Invpeopleid,invpersonid,invtime from hx_td_Userinvitation where invcode='" + invcode + "' and invpersonid=" + uid + " ";//查询本人是否已经被邀请注册过 LogInfo.WriteLog("投资人ID:" + registerid + ";查询本人是否已经被邀请注册过:" + codesql); DataTable dtcode = DbHelperSQL.GET_DataTable_List(codesql); if (dtcode.Rows.Count > 0) { int uuid = int.Parse(dtcode.Rows[0]["Invpeopleid"].ToString()); //邀请用户id B_member_table oy = new B_member_table(); M_member_table py = new M_member_table(); //获取 邀请用户身份渠道用户不执行 py = oy.GetModel(uuid); if (py.useridentity != 4) { DateTime invtime = Convert.ToDateTime(dtcode.Rows[0]["invtime"].ToString()); //邀请时间 DateTime nowdate = DateTime.Now; DateTime startdate = new DateTime(2017, 1, 6, 0, 00, 00); DateTime enddate = new DateTime(2017, 3, 31, 23, 59, 59); if ((nowdate > startdate && nowdate < enddate) && (invtime > startdate && invtime < enddate)) { #region 1月6日活动,奖励邀请人首投满2000返现10元 if (!string.IsNullOrWhiteSpace(py.UsrCustId)) { B_borrowing_target bbt = new B_borrowing_target(); M_borrowing_target mbt = new M_borrowing_target(); mbt = bbt.GetModel(targetid); if (mbt.project_type_id != 6)//排除新手标 { string log = "用户" + registerid + "活动奖励邀请人首投满2000返现10元: "; decimal amtc = 0; DataTable dtstAmt = B_usercenter.GetInvestCountByUseridNew(registerid); if (dtstAmt.Rows.Count > 0) { log += "<br> 投资次数" + dtstAmt.Rows.Count + "次"; if (dtstAmt.Rows.Count == 1) { amtc = decimal.Parse(dtstAmt.Rows[0]["InvCount_Amt"].ToString()); log += "<br>投资金额" + amtc; if (amtc >= 2000) { hx_UserAct huact = InviteActCashNew(uuid, targetPlatform, amtc, 4, 1, 10, 5)[0]; if (huact != null && huact.ActID != null) { log += "<br>奖励发放成功"; #region MyRegion 奖励流水 string awardDescription = string.Format("邀请好友首投满2000成功,获得{0}{1}", Convert.ToDouble(huact.Amt.ToString()), GetBunusDescription(huact.RewTypeID)); AddBonusAccoutWater(huact.UserAct, uuid, decimal.Parse(huact.Amt.ToString()), awardDescription, registerid); //registerid 被邀请人 uuid邀请人 #endregion MyRegion 奖励流水 #region MyRegion 系统消息 string MContext = string.Format("尊敬的用户:邀请好友{0}首投{1}金额为{2},获得{3}{4}如有问题可咨询创利投的客服!", userName, borrowing_title, investAmt, decimal.Parse(huact.Amt.ToString()), GetBunusDescription(huact.RewTypeID)); AddSytemMessage(uuid, "邀请好友首投满2000成功奖励", MContext); #endregion #region 现金流水信息 if (huact.RewTypeID == 1) { B_usercenter o = new B_usercenter(); decimal di = o.GetUsridAvailable_balance(uuid); //di = di + decimal.Parse(huact.Amt.ToString()); StringBuilder strSql = new StringBuilder(); strSql.Append("insert into hx_Capital_account_water("); strSql.Append("membertable_registerid,income,expenditure,time_of_occurrence,account_balance,types_Finance,createtime,keyid,remarks)"); strSql.Append(" values ("); strSql.Append("" + uuid + "," + decimal.Parse(huact.Amt.ToString()) + ",0,'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "'," + di + "," + (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.邀请奖励.ToString()) + ",'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',0,'" + awardDescription + "')"); DbHelperSQL.RunSql(strSql.ToString()); strSql.Clear(); } #endregion } } } } LogInfo.WriteLog(log); } } #endregion #region 受邀好友首次成功投资给予活动奖励 常规邀请 //获取标的期限 life_of_loan = int.Parse(dt.Rows[0]["life_of_loan"].ToString()); unit_day = int.Parse(dt.Rows[0]["unit_day"].ToString()); int lol = 0; if (unit_day == 1) { lol = life_of_loan; } #region 邀请好友投资成功返现(奖励邀请人) if (!string.IsNullOrWhiteSpace(py.UsrCustId)) { hx_UserAct hut = InviteActBonus(uuid, targetPlatform, int.Parse(dtcode.Rows[0]["invpersonid"].ToString()), investAmt, 1, 4, 1, 0, 5, lol, "邀请好友投资成功返现")[0];// if (hut != null && hut.ActID != null) { #region MyRegion 奖励流水 string awardDescription = string.Format("邀请好友投资成功,获得{0}{1}", Convert.ToDouble(hut.Amt.ToString()), GetBunusDescription(hut.RewTypeID)); AddBonusAccoutWater(hut.UserAct, uuid, decimal.Parse(hut.Amt.ToString()), awardDescription, registerid); //registerid 被邀请人 uuid邀请人 #endregion MyRegion 奖励流水 #region MyRegion 系统消息 string MContext = string.Format("尊敬的用户:邀请好友{0}投资{1}金额为{2},获得{3}{4}如有问题可咨询创利投的客服!", userName, borrowing_title, investAmt, hut.Amt.ToString(), GetBunusDescription(hut.RewTypeID)); AddSytemMessage(uuid, "邀请好友投资成功奖励", MContext); #endregion #region 现金流水信息 if (hut.RewTypeID == 1) { B_usercenter o = new B_usercenter(); decimal di = o.GetUsridAvailable_balance(uuid); //di = di + decimal.Parse(hut.Amt.ToString()); StringBuilder strSql = new StringBuilder(); strSql.Append("insert into hx_Capital_account_water("); strSql.Append("membertable_registerid,income,expenditure,time_of_occurrence,account_balance,types_Finance,createtime,keyid,remarks)"); strSql.Append(" values ("); strSql.Append("" + uuid + "," + decimal.Parse(hut.Amt.ToString()) + ",0,'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "'," + di + "," + (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.邀请奖励.ToString()) + ",'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',0,'" + awardDescription + "')"); DbHelperSQL.RunSql(strSql.ToString()); strSql.Clear(); } #endregion } } #endregion #region 被邀请投资成功返现(奖励被邀请人) int byquuid = int.Parse(dtcode.Rows[0]["invpersonid"].ToString()); hx_UserAct byhut = InviteActBonus(byquuid, targetPlatform, 0, investAmt, 1, 4, 1, 0, 5, lol, "被邀请投资返现")[0];// if (byhut != null && byhut.ActID != null) { #region MyRegion 奖励流水 string awardDescription = string.Format("被邀请投资成功,获得{0}{1}", Convert.ToDouble(byhut.Amt.ToString()), GetBunusDescription(byhut.RewTypeID)); AddBonusAccoutWater(byhut.UserAct, byquuid, decimal.Parse(byhut.Amt.ToString()), awardDescription, registerid); //registerid 被邀请人 uuid邀请人 #endregion MyRegion 奖励流水 #region MyRegion 系统消息 string MContext = string.Format("尊敬的用户:被邀请投资{0}金额为{1},获得{2}{3}如有问题可咨询创利投的客服!", borrowing_title, investAmt, byhut.Amt.ToString(), GetBunusDescription(byhut.RewTypeID)); AddSytemMessage(byquuid, "被邀请投资成功奖励", MContext); #endregion #region 现金流水信息 if (byhut.RewTypeID == 1) { B_usercenter o = new B_usercenter(); decimal di = o.GetUsridAvailable_balance(byquuid); //di = di + decimal.Parse(byhut.Amt.ToString()); StringBuilder strSql = new StringBuilder(); strSql.Append("insert into hx_Capital_account_water("); strSql.Append("membertable_registerid,income,expenditure,time_of_occurrence,account_balance,types_Finance,createtime,keyid,remarks)"); strSql.Append(" values ("); strSql.Append("" + byquuid + "," + decimal.Parse(byhut.Amt.ToString()) + ",0,'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "'," + di + "," + (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.邀请奖励.ToString()) + ",'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',0,'" + awardDescription + "')"); DbHelperSQL.RunSql(strSql.ToString()); strSql.Clear(); } #endregion } #endregion #endregion } #region 这里现金返现 ??? 投资金额为-1 作了单独处理。注册?? RewTypeID-1 ??? //hx_UserAct ua = InviteActBonus(uuid, int.Parse(dtcode.Rows[0]["invpersonid"].ToString()), -1M, 1, 4, 1, 0, 5)[0];//??? #endregion //} //else if (invcount > 1) //{ // #region 受邀用户续投奖励 邀请活动正常续投 // int biyaoUsrid = int.Parse(dtcode.Rows[0]["invpersonid"].ToString()); // decimal totAmt = B_usercenter.GetInviUserTotalAmt(uuid, biyaoUsrid);//????这里需要取出受邀用户奖总数 // // hx_UserAct hut = aci.InviteActCash(uuid, biyaoUsrid, decimal.Parse(p.TransAmt), 4, 2, 1, totAmt, 5); // hx_UserAct hut = InviteActBonus(uuid, int.Parse(dtcode.Rows[0]["invpersonid"].ToString()), investAmt - bonusAmt, 1, 4, 1, totAmt, 5)[0];//???? // if (hut != null && hut.ActID != null) // { // #region MyRegion 奖励流水 // string awardDescription = string.Format("邀请好友续投成功获得{0}{1}", hut.Amt.ToString(), GetBunusDescription(hut.RewTypeID)); // AddBonusAccoutWater(hut.UserAct, uuid, decimal.Parse(hut.Amt.ToString()), awardDescription, registerid); //registerid 被邀请人 uuid邀请人 // #endregion MyRegion 奖励流水 // #region MyRegion 系统消息 // string MContext = string.Format("尊敬的用户:邀请好友续投{1}金额为{2},获得{3}{4}如有问题可咨询创利投的客服!", userName, borrowing_title, investAmt, hut.Amt.ToString(), GetBunusDescription(hut.RewTypeID)); // AddSytemMessage(uuid, "邀请好友续投奖励", MContext); // #endregion // #region 现金奖励 资金流水信息 // if (hut.RewTypeID == 1) // { // B_usercenter o = new B_usercenter(); // decimal di = o.GetUsridAvailable_balance(uuid); // // di = di + decimal.Parse(hut.Amt.ToString()); // StringBuilder strSql = new StringBuilder(); // strSql.Append("insert into hx_Capital_account_water("); // strSql.Append("membertable_registerid,income,expenditure,time_of_occurrence,account_balance,types_Finance,createtime,keyid,remarks)"); // strSql.Append(" values ("); // strSql.Append("" + uuid + "," + decimal.Parse(hut.Amt.ToString()) + ",0,'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "'," + di + "," + (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.邀请奖励.ToString()) + ",'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',0,'" + awardDescription + "')"); // LogInfo.WriteLog("续投奖励流水语句:" + strSql.ToString()); // DbHelperSQL.RunSql(strSql.ToString()); // strSql.Clear(); // } // #endregion // } // #endregion //} /* * DbHelperSQL.RunSql(" update hx_td_Userinvitation set InvitesStates=1 where invcode='" + invcode + "' and invpersonid=" + uid + " and InvitesStates=2 "); * LogInfo.WriteLog(" 后台更新数据邀请状态 update hx_td_Userinvitation set InvitesStates=1 where invcode='" + invcode + "' and invpersonid=" + uid + " and InvitesStates=2 "); */ } } } #endregion }
public ActionResult Index(RequestParam <RequestTender> reqst) { LoggerHelper.Info(JsonHelper.Entity2Json(reqst)); ResultInfo <string> res = new ResultInfo <string>("99999"); var usrId = ConvertHelper.ParseValue(reqst.body.userId, 0); var targetId = ConvertHelper.ParseValue(reqst.body.targetId, 0); var bds = string.Empty; B_borrowing_target b_borrowing_target = new B_borrowing_target(); var m_borrowing_target = b_borrowing_target.GetModel(targetId); B_member_table b_member_table = new B_member_table(); var m_member_table = b_member_table.GetModel(usrId); if (m_borrowing_target == null || m_member_table == null) { res.code = "1000000010"; res.message = Settings.Instance.GetErrorMsg(res.code); return(View(res)); } if (!string.IsNullOrWhiteSpace(reqst.body.bonusIds)) { bds = reqst.body.bonusIds; } if (!string.IsNullOrWhiteSpace(reqst.body.addRateIds)) { if (!string.IsNullOrWhiteSpace(bds)) { bds += ","; } bds = reqst.body.addRateIds; } var investAmount = ConvertHelper.ParseValue(reqst.body.investAmount, 0M); BorrowLogic _logic = new BorrowLogic(); var ent = _logic.SelectBorrowDetail(targetId); if (usrId <= 0) { res.code = "1000000015"; res.message = Settings.Instance.GetErrorMsg(res.code); return(View(res)); } if (targetId <= 0) { res.code = "1000000014"; res.message = Settings.Instance.GetErrorMsg(res.code); return(View(res)); } if (investAmount < 100) { res.code = "2000000000"; res.message = Settings.Instance.GetErrorMsg(res.code); return(View(res)); } if (m_borrowing_target.minimum > 0 && investAmount < m_borrowing_target.minimum) { res.code = "2000000008"; res.message = Settings.Instance.GetErrorMsg(res.code); return(View(res)); } if (m_borrowing_target.maxmum > 0 && investAmount > m_borrowing_target.maxmum) { res.code = "2000000009"; res.message = Settings.Instance.GetErrorMsg(res.code); return(View(res)); } if (reqst.body.typeId == 6)//新手标判定 { if (!string.IsNullOrWhiteSpace(bds)) { res.code = "2000000010"; res.message = Settings.Instance.GetErrorMsg(res.code); return(View(res)); } if (m_member_table.useridentity != 5) { if (Convert.ToDateTime(m_member_table.Registration_time.ToString("yyyy-MM-dd")).AddDays(30) < Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"))) { res.code = "2000000011"; res.message = Settings.Instance.GetErrorMsg(res.code); return(View(res)); } B_Bid_records b_Bid_records = new B_Bid_records(); int investedCount = b_Bid_records.GetInvestCount(reqst.body.userId, reqst.body.targetId); if (investedCount >= 3) { res.code = "2000000012"; res.message = Settings.Instance.GetErrorMsg(res.code); return(View(res)); } if (ent.start_time != null && ent.start_time.Value < Convert.ToDateTime("2016-12-01 00:00:00")) { res.code = "2999999999"; res.message = Settings.Instance.GetErrorMsg(res.code); return(View(res)); } if (ent.project_type_id != null && ent.project_type_id.Value != 6) { res.code = "2999999999"; res.message = Settings.Instance.GetErrorMsg(res.code); return(View(res)); } } } try { decimal vocheramttemp = GetUseRewards(bds, usrId); B_member_table b = new B_member_table(); M_member_table user = new M_member_table(); user = b.GetModel(reqst.body.userId); InvestmentParameters mp = new InvestmentParameters { Amount = investAmount, Circle = ConvertHelper.ParseValue(ent.life_of_loan, 0), CircleType = ConvertHelper.ParseValue(ent.unit_day, 0), NominalYearRate = ConvertHelper.ParseValue(ent.annual_interest_rate, 0D), OverheadsRate = 0f, RepaymentMode = ConvertHelper.ParseValue(ent.payment_options, 0), RewardRate = 0f, IsThirtyDayMonth = false, InvestDate = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")), ReleaseDate = DateTime.Parse(ent.release_date.ToString()).ToString("yyyy-MM-dd"), Investmentenddate = DateTime.Parse(DateTime.Parse(ent.repayment_date.ToString()).ToString("yyyy-MM-dd")), Payinterest = ConvertHelper.ParseValue(ent.month_payment_date, 0), InvestObject = 1 }; //追加 加息券 if (!string.IsNullOrWhiteSpace(bds)) { B_UserAct bUserAct = new B_UserAct(); var addRateModel = bUserAct.GetAddRateModel(bds); if (addRateModel != null)// add rate of year { mp.NominalYearRate = mp.NominalYearRate + Convert.ToDouble(addRateModel.Amt.Value); } } List <InvestmentReceiveRecordInfo> records = InvestCalculator.CalculateReceiveRecord(mp); StringBuilder sb = new StringBuilder(""); if (records != null && records.Any()) { int i = 1; foreach (var item in records) { sb.AppendFormat("{0},{1},{2},{3},{4},{5},{6},{7}|", i, item.interestvalue_date, item.NominalReceiveDate, item.Balance, item.Interest, item.Principal, item.TotalInstallments, item.TotalDays); i = i + 1; } } var orderId = Settings.Instance.OrderCode; var frozenidNo = Settings.Instance.OrderCode; decimal frozenAmount = 0.00M; var xf = ((records != null && records.Any()) ? records.Sum(t => t.Interest) : 0M); //LoggerHelper.Error("利息:" + xf + " ------- " + JsonHelper.Entity2Json(records)); string invitationCode = string.Empty; using (InvitationLogic invitationLogic = new InvitationLogic()) { var invitationModel = invitationLogic.GetUserInvited(usrId); if (invitationModel != null) { invitationCode = invitationModel.invcode; } } var resVal = _logic.SubmitTender(usrId, targetId, investAmount, bds, invitationCode, orderId , xf, frozenidNo , investAmount - frozenAmount , ((records != null && records.Any()) ? records.Count : 0), sb.ToString()); if (resVal < 200) { switch (resVal) { case -100: { res.code = "2000000001"; } break; case -101: { res.code = "2000000008"; } break; case -200: { res.code = "2000000002"; } break; case -300: { res.code = "2000000003"; } break; case -400: { res.code = "2000000004"; } break; case -500: { res.code = "2000000007"; } break; case -600: { res.code = "2000000006"; } break; } } else { LoggerHelper.Error("SubmitTender!!!!!!!!!!!!!!!投资开始"); LoggerHelper.Info("投资开始"); #region 投资成功 M_InitiativeTender Mt = new M_InitiativeTender(); Mt.Version = "20"; Mt.CmdId = "InitiativeTender"; Mt.MerCustId = Settings.Instance.MerCustId; Mt.OrdId = orderId; Mt.OrdDate = mp.InvestDate.ToString("yyyyMMdd"); Mt.TransAmt = investAmount.ToString("0.00"); Mt.UsrCustId = user.UsrCustId; Mt.MaxTenderRate = "0.20"; TenderJosnPro mtp = new TenderJosnPro(); mtp.BorrowerCustId = b.GetModel(ConvertHelper.ParseValue(ent.borrower_registerid, 0)).UsrCustId; mtp.BorrowerAmt = investAmount.ToString("0.00"); // mtp.BorrowerRate = decimal.Parse( dt.Rows[0]["loan_management_fee"].ToString()).ToString("0.00"); mtp.BorrowerRate = "1.00"; //风控范围 mtp.ProId = targetId.ToString(); Mt.BorrowerDetails = "[" + FastJSON.toJOSN(mtp) + "]"; #region 此处判断优惠类型 #endregion Mt.IsFreeze = "Y"; Mt.FreezeOrdId = frozenidNo; Mt.RetUrl = Settings.Instance.GetCallbackUrl("/MemberCenter/InvestSubmit/CallbackRetUrl"); Mt.BgRetUrl = Settings.Instance.GetCallbackUrl("/MemberCenter/InvestSubmit/CallbackBgRetUrl"); if (!string.IsNullOrWhiteSpace(reqst.body.bonusIds)) { Mt.MerPriv = bds; TenderAccPro ret = new TenderAccPro(); ret.AcctId = ChuanglitouP2P.Common.Utils.GetMERDT(); ret.VocherAmt = vocheramttemp.ToString("0.00"); Mt.ReqExt = "{" + "\"Vocher\":" + FastJSON.toJOSN(ret) + "}"; } else { Mt.MerPriv = reqst.body.addRateIds; } //append device code to comment fields for make sure it be transfered back string temp = Mt.MerPriv; AppendDeviceFlag(reqst.header.appId.ToString(), ref temp); Mt.MerPriv = temp; LoggerHelper.Info("优惠券使用的id:" + bds); StringBuilder chkVal = new StringBuilder(); chkVal.Append(Mt.Version); chkVal.Append(Mt.CmdId); chkVal.Append(Mt.MerCustId); chkVal.Append(Mt.OrdId); chkVal.Append(Mt.OrdDate); chkVal.Append(Mt.TransAmt); chkVal.Append(Mt.UsrCustId); chkVal.Append(Mt.MaxTenderRate); chkVal.Append(Mt.BorrowerDetails); chkVal.Append(Mt.IsFreeze); chkVal.Append(Mt.FreezeOrdId); chkVal.Append(Mt.RetUrl); chkVal.Append(Mt.BgRetUrl); chkVal.Append(Mt.MerPriv); chkVal.Append(Mt.ReqExt); string chkv = chkVal.ToString(); LoggerHelper.Info("投资:" + chkv); //私钥文件的位置(这里是放在了站点的根目录下) string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Settings.Instance.MerPr; //需要指定提交字符串的长度 int len = Encoding.UTF8.GetBytes(chkv).Length; StringBuilder sbChkValue = new StringBuilder(256); //加签 int str = DllInterop.SignMsg(Settings.Instance.MerId, merKeyFile, chkv, len, sbChkValue); LoggerHelper.Info(str); Mt.ChkValue = sbChkValue.ToString(); if (str == 0) { var strz = new StringBuilder(); strz.Append(" <form id=\"formauto\" name=\"formauto\" action=\"" + Settings.Instance.ChinapnrUrl + "\" method=\"post\">"); strz.Append("<input id=\"Version\" name=\"Version\" type=\"hidden\" value=\"" + Mt.Version + "\" />"); strz.Append("<input id=\"CmdId\" name=\"CmdId\" type=\"hidden\" value=\"" + Mt.CmdId + "\" />"); strz.Append("<input id=\"MerCustId\" name=\"MerCustId\" type=\"hidden\" value=\"" + Mt.MerCustId + "\" />"); strz.Append("<input id=\"OrdId\" name=\"OrdId\" type=\"hidden\" value=\"" + Mt.OrdId + "\" />"); strz.Append("<input id=\"OrdDate\" name=\"OrdDate\" type=\"hidden\" value=\"" + Mt.OrdDate + "\" />"); strz.Append("<input id=\"TransAmt\" name=\"TransAmt\" type=\"hidden\" value=\"" + Mt.TransAmt + "\" />"); strz.Append("<input id=\"UsrCustId\" name=\"UsrCustId\" type=\"hidden\" value=\"" + Mt.UsrCustId + "\" />"); strz.Append("<input id=\"MaxTenderRate\" name=\"MaxTenderRate\" type=\"hidden\" value=\"" + Mt.MaxTenderRate + "\" />"); strz.Append("<input id=\"BorrowerDetails\" name=\"BorrowerDetails\" type=\"hidden\" value=" + Mt.BorrowerDetails + " />"); strz.Append("<input id=\"IsFreeze\" name=\"IsFreeze\" type=\"hidden\" value=\"" + Mt.IsFreeze + "\" />"); strz.Append("<input id=\"FreezeOrdId\" name=\"FreezeOrdId\" type=\"hidden\" value=\"" + Mt.FreezeOrdId + "\" />"); strz.Append("<input id=\"RetUrl\" name=\"RetUrl\" type=\"hidden\" value=\"" + Mt.RetUrl + "\" />"); strz.Append("<input id=\"BgRetUrl\" name=\"BgRetUrl\" type=\"hidden\" value=\"" + Mt.BgRetUrl + "\" />"); strz.Append("<input id=\"MerPriv\" name=\"MerPriv\" type=\"hidden\" value=\"" + Mt.MerPriv + "\" />"); strz.Append("<input id=\"ReqExt\" name=\"ReqExt\" type=\"hidden\" value=" + Mt.ReqExt + " >"); strz.Append("<input id=\"ChkValue\" name=\"ChkValue\" type=\"hidden\" value=\"" + Mt.ChkValue + "\" />"); strz.Append(" </form>"); strz.Append("<script type=\"text/javascript\">document.getElementById('formauto').submit();</script>"); LoggerHelper.Info("投资表单:" + strz.ToString()); res.code = "1"; res.body = strz.ToString(); } else { res.code = "5000000000"; } #endregion } res.message = Settings.Instance.GetErrorMsg(res.code); return(View(res)); } catch (Exception ex) { LoggerHelper.Error(ex.ToString()); LoggerHelper.Error(JsonHelper.Entity2Json(reqst)); res.code = "500"; res.message = Settings.Instance.GetErrorMsg(res.code); return(View(res)); } }