public ActionResult Su_Repayment() { Utils.SetSYSDateTimeFormat(); chuangtouEntities ef = new chuangtouEntities(); string str = ""; ReRepayment Re = new ReRepayment(); Re.CmdId = DNTRequest.GetString("CmdId"); Re.RespCode = DNTRequest.GetString("RespCode"); Re.MerCustId = DNTRequest.GetString("MerCustId"); Re.ProId = DNTRequest.GetString("ProId"); Re.OrdId = DNTRequest.GetString("OrdId"); Re.OrdDate = DNTRequest.GetString("OrdDate"); Re.OutCustId = DNTRequest.GetString("OutCustId"); Re.SubOrdId = DNTRequest.GetString("SubOrdId"); Re.SubOrdDate = DNTRequest.GetString("SubOrdDate"); Re.OutAcctId = DNTRequest.GetString("OutAcctId"); Re.TransAmt = DNTRequest.GetString("TransAmt"); Re.PrincipalAmt = DNTRequest.GetString("PrincipalAmt"); Re.InterestAmt = DNTRequest.GetString("InterestAmt"); Re.Fee = DNTRequest.GetString("Fee"); Re.InCustId = DNTRequest.GetString("InCustId"); Re.InAcctId = DNTRequest.GetString("InAcctId"); Re.FeeObjFlag = DNTRequest.GetString("FeeObjFlag"); Re.DzObject = DNTRequest.GetString("DzObject"); Re.BgRetUrl = DNTRequest.GetString("BgRetUrl"); Re.MerPriv = DNTRequest.GetString("MerPriv"); Re.RespExt = DNTRequest.GetString("RespExt"); LogInfo.WriteLog("后台还款返回报文:" + FastJSON.toJOSN(Re)); string version = "20"; if (string.IsNullOrEmpty(Re.TransAmt) || Re.TransAmt == "0.00") { version = "30"; } StringBuilder builder = new StringBuilder(); builder.Append(Re.CmdId); builder.Append(Re.RespCode); builder.Append(Re.MerCustId); if (version == "30") { builder.Append(Re.ProId); } builder.Append(Re.OrdId); builder.Append(Re.OrdDate); builder.Append(Re.OutCustId); builder.Append(Re.SubOrdId); builder.Append(Re.SubOrdDate); builder.Append(Re.OutAcctId); if (version == "30") { builder.Append(Re.PrincipalAmt); builder.Append(Re.InterestAmt); } else { builder.Append(Re.TransAmt); } builder.Append(Re.Fee); builder.Append(Re.InCustId); builder.Append(Re.InAcctId); builder.Append(Re.FeeObjFlag); if (version == "30") { builder.Append(Re.DzObject); } builder.Append(HttpUtility.UrlDecode(Re.BgRetUrl)); builder.Append(Re.MerPriv); builder.Append(HttpUtility.UrlDecode(Re.RespExt)); // builder.Append(Re.ChkValue); var msg = builder.ToString(); if (version == "30") { msg = Utils.MD5(msg); } string pgPubkFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk(); int ret = DllInterop.VeriSignMsg(pgPubkFile, msg, msg.Length, Re.ChkValue); LogInfo.WriteLog("后台验签 ret= " + ret.ToString()); if (ret == 0) { if (Re.RespCode == "000" || Re.TransAmt == "0.00") { string cachename = "Repayment" + Re.OrdId; if (Utils.GeTThirdCache(cachename) == 0) { Utils.SetThirdCache(cachename); B_member_table o = new B_member_table(); M_member_table p = new M_member_table(); M_member_table p2 = new M_member_table(); M_Capital_account_water baw = new M_Capital_account_water(); V_borrowing_Bid_records_income_statement item = new V_borrowing_Bid_records_income_statement(); int income_statement_id = int.Parse(Re.MerPriv); item = ef.V_borrowing_Bid_records_income_statement.AsNoTracking().Where(ps => ps.income_statement_id == income_statement_id).FirstOrDefault(); p = o.GetModel(int.Parse(item.borrower_registerid.ToString())); //借款人用户对象 baw.membertable_registerid = p.registerid; baw.income = 0.00M; baw.expenditure = decimal.Parse(Re.TransAmt); baw.time_of_occurrence = DateTime.Now; baw.account_balance = p.available_balance - baw.expenditure; //面要得么帐户余额 baw.types_Finance = (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.还款.ToString()); baw.createtime = DateTime.Now; baw.keyid = 0; baw.remarks = Re.OrdId + "," + Re.OrdDate; M_Capital_account_water iaw = new M_Capital_account_water(); //投资人流水对象 p2 = o.GetModel(int.Parse(item.investor_registerid.ToString())); //投资人用户对象 iaw.membertable_registerid = p2.registerid; iaw.income = decimal.Parse(Re.TransAmt); iaw.expenditure = 0.00M; iaw.time_of_occurrence = DateTime.Now; iaw.account_balance = p2.available_balance + iaw.income; //面要得么帐户余额 iaw.types_Finance = (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.借款人还款.ToString()); iaw.createtime = DateTime.Now; iaw.keyid = 0; iaw.remarks = Re.OrdId + "," + Re.OrdDate; int targetid = int.Parse(item.targetid.ToString()); //判断是否为最后一期还款,并进行相应状态处理 hx_repayment_plan plan = (from a in ef.hx_repayment_plan where a.targetid == targetid select a).OrderByDescending(a => a.current_period).Take(1).FirstOrDefault(); var lastcur = plan.current_period; //判断是否是最后一期,如果是对本金处理。得直接用最后一期还款金额减去本金,这样就解决多出本金问题 bool lastrepamt = false; if (item.current_investment_period.ToString() == lastcur.ToString()) { lastrepamt = true; } //需要更新投资记录表已还款金额 B_usercenter BUC = new B_usercenter(); decimal PrincipalInterest = decimal.Parse(item.Principal.ToString()) + decimal.Parse(item.interestpayment.ToString()); //本金加利息 decimal PInterest = decimal.Parse(item.interestpayment.ToString()); //利息 Re.MerPriv = DateTime.Parse(item.interest_payment_date.ToString()).ToString("yyyy-MM-dd"); //传入还款日期 int bucd = BUC.Repayment_Successfully(Re, baw, iaw, lastrepamt, PrincipalInterest, PInterest); if (bucd > 0) { // 尊敬#UserName#,您投资的第#PID#号标第#ORDER#期还款已到帐,本次已成功还款#MONEY#元.欢迎继续投资!【创利投】 #region 短信通知 //短信通知 string contxt = Utils.GetMSMEmailContext(11, 1); // 获取注册成功邮件内容 StringBuilder sbsms = new StringBuilder(contxt); sbsms = sbsms.Replace("#USERANEM#", item.username.ToString()); sbsms = sbsms.Replace("#PID#", item.targetid.ToString()); sbsms = sbsms.Replace("#ORDER#", item.current_investment_period.ToString()); sbsms = sbsms.Replace("#MONEY#", item.repayment_amount.ToString()); string mobile = item.mobile.ToString(); M_td_SMS_record psms = new M_td_SMS_record(); B_td_SMS_record osms = new B_td_SMS_record(); int smstype = (int)Enum.Parse(typeof(EnumSMSType), EnumSMSType.投资回款.ToString()); psms.phone_number = mobile; psms.sendtime = DateTime.Now; psms.senduserid = int.Parse(item.investor_registerid.ToString()); psms.smstype = smstype; psms.smscontext = sbsms.ToString(); psms.orderid = SendSMS.Send_SMS(mobile, sbsms.ToString()); psms.vcode = ""; osms.Add(psms); #endregion #region 系统消息 //系统消息 DateTime dti = DateTime.Now; M_td_System_message pm = new M_td_System_message(); pm.MReg = int.Parse(item.investor_registerid.ToString()); pm.Mstate = 0; pm.MTitle = "投资回款"; // pm.MContext = "尊敬的用户" + dt.Rows[0]["username"].ToString() + ":您好!恭喜您成功投资了项目【" + dt.Rows[0]["borrowing_title"].ToString() + "】,投资金额是:" + dt.Rows[0]["investment_amount"].ToString() + "。如有问题可咨询创利投的客服!谢谢!"; pm.MContext = sbsms.ToString(); pm.PubTime = dti; pm.Mtype = 2; B_usercenter.AddMessage(pm); #endregion #region 更新标的状态为还还清 ///更新标的状态为还还清 if (item.current_investment_period.ToString() == lastcur.ToString()) { //更新标的状态为还还清 string sql = "update hx_borrowing_target set tender_state=5 where targetid=" + item.targetid.ToString() + ""; DbHelperSQL.ExecuteSql(sql); sql = "update hx_Bid_records set payment_status =1 where bid_records_id=" + item.bid_records_id.ToString(); DbHelperSQL.ExecuteSql(sql); } #endregion //Response.Write("还款验签成功!"); } else { //Response.Write("还款更新失败!" + bucd.ToString()); } } str = "RECV_ORD_ID_" + Re.OrdId; LogInfo.WriteLog(str + "后台还款成功"); } else { string cc = Utils.GetReturnCode(Int32.Parse(Re.RespCode)); if (cc.Contains("还款金额超过还款总额") || cc.Contains("重复的还款请求")) { B_member_table o = new B_member_table(); M_member_table p = new M_member_table(); M_member_table p2 = new M_member_table(); M_Capital_account_water baw = new M_Capital_account_water(); V_borrowing_Bid_records_income_statement item = new V_borrowing_Bid_records_income_statement(); int income_statement_id = int.Parse(Re.MerPriv); item = ef.V_borrowing_Bid_records_income_statement.AsNoTracking().Where(ps => ps.income_statement_id == income_statement_id).FirstOrDefault(); p = o.GetModel(int.Parse(item.borrower_registerid.ToString())); //借款人用户对象 baw.membertable_registerid = p.registerid; baw.income = 0.00M; baw.expenditure = decimal.Parse(Re.TransAmt); baw.time_of_occurrence = DateTime.Now; baw.account_balance = p.available_balance - baw.expenditure; //面要得么帐户余额 baw.types_Finance = (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.还款.ToString()); baw.createtime = DateTime.Now; baw.keyid = 0; baw.remarks = Re.OrdId + "," + Re.OrdDate; M_Capital_account_water iaw = new M_Capital_account_water(); //投资人流水对象 p2 = o.GetModel(int.Parse(item.investor_registerid.ToString())); //投资人用户对象 iaw.membertable_registerid = p2.registerid; iaw.income = decimal.Parse(Re.TransAmt); iaw.expenditure = 0.00M; iaw.time_of_occurrence = DateTime.Now; iaw.account_balance = p2.available_balance + iaw.income; //面要得么帐户余额 iaw.types_Finance = (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.借款人还款.ToString()); iaw.createtime = DateTime.Now; iaw.keyid = 0; iaw.remarks = Re.OrdId + "," + Re.OrdDate; int targetid = int.Parse(item.targetid.ToString()); //判断是否为最后一期还款,并进行相应状态处理 hx_repayment_plan plan = (from a in ef.hx_repayment_plan where a.targetid == targetid select a).OrderByDescending(a => a.current_period).Take(1).FirstOrDefault(); var lastcur = plan.current_period; //判断是否是最后一期,如果是对本金处理。得直接用最后一期还款金额减去本金,这样就解决多出本金问题 bool lastrepamt = false; if (item.current_investment_period.ToString() == lastcur.ToString()) { lastrepamt = true; } //需要更新投资记录表已还款金额 B_usercenter BUC = new B_usercenter(); decimal PrincipalInterest = decimal.Parse(item.Principal.ToString()) + decimal.Parse(item.interestpayment.ToString()); //本金加利息 decimal PInterest = decimal.Parse(item.interestpayment.ToString()); //利息 Re.MerPriv = DateTime.Parse(item.interest_payment_date.ToString()).ToString("yyyy-MM-dd"); //传入还款日期 int bucd = BUC.Repayment_Successfully(Re, baw, iaw, lastrepamt, PrincipalInterest, PInterest); if (bucd > 0) { // 尊敬#UserName#,您投资的第#PID#号标第#ORDER#期还款已到帐,本次已成功还款#MONEY#元.欢迎继续投资!【创利投】 #region 短信通知 //短信通知 string contxt = Utils.GetMSMEmailContext(11, 1); // 获取注册成功邮件内容 StringBuilder sbsms = new StringBuilder(contxt); sbsms = sbsms.Replace("#USERANEM#", item.username.ToString()); sbsms = sbsms.Replace("#PID#", item.targetid.ToString()); sbsms = sbsms.Replace("#ORDER#", item.current_investment_period.ToString()); sbsms = sbsms.Replace("#MONEY#", item.repayment_amount.ToString()); string mobile = item.mobile.ToString(); M_td_SMS_record psms = new M_td_SMS_record(); B_td_SMS_record osms = new B_td_SMS_record(); int smstype = (int)Enum.Parse(typeof(EnumSMSType), EnumSMSType.投资回款.ToString()); psms.phone_number = mobile; psms.sendtime = DateTime.Now; psms.senduserid = int.Parse(item.investor_registerid.ToString()); psms.smstype = smstype; psms.smscontext = sbsms.ToString(); psms.orderid = SendSMS.Send_SMS(mobile, sbsms.ToString()); psms.vcode = ""; osms.Add(psms); #endregion #region 系统消息 //系统消息 DateTime dti = DateTime.Now; M_td_System_message pm = new M_td_System_message(); pm.MReg = int.Parse(item.investor_registerid.ToString()); pm.Mstate = 0; pm.MTitle = "投资回款"; // pm.MContext = "尊敬的用户" + dt.Rows[0]["username"].ToString() + ":您好!恭喜您成功投资了项目【" + dt.Rows[0]["borrowing_title"].ToString() + "】,投资金额是:" + dt.Rows[0]["investment_amount"].ToString() + "。如有问题可咨询创利投的客服!谢谢!"; pm.MContext = sbsms.ToString(); pm.PubTime = dti; pm.Mtype = 2; B_usercenter.AddMessage(pm); #endregion #region 更新标的状态为还还清 ///更新标的状态为还还清 if (item.current_investment_period.ToString() == lastcur.ToString()) { //更新标的状态为还还清 string sql = "update hx_borrowing_target set tender_state=5 where targetid=" + item.targetid.ToString() + ""; DbHelperSQL.ExecuteSql(sql); sql = "update hx_Bid_records set payment_status =1 where bid_records_id=" + item.bid_records_id.ToString(); DbHelperSQL.ExecuteSql(sql); } #endregion //Response.Write("还款验签成功!"); } else { //Response.Write("还款更新失败!" + bucd.ToString()); } } //Response.Write("出现错误! " + Utils.GetReturnCode(Int32.Parse(Re.RespCode))); /* * string cc = Utils.GetReturnCode(Int32.Parse(Re.RespCode)); * * * if (cc.Contains("还款金额超过还款总额") || cc.Contains("重复的还款请求")) * { * * B_member_table o = new B_member_table(); * M_member_table p = new M_member_table(); * M_member_table p2 = new M_member_table(); * M_Capital_account_water baw = new M_Capital_account_water(); * V_borrowing_Bid_records_income_statement item = new V_borrowing_Bid_records_income_statement(); * int income_statement_id = int.Parse(Re.MerPriv); * item = ef.V_borrowing_Bid_records_income_statement.AsNoTracking().Where(ps => ps.income_statement_id == income_statement_id).FirstOrDefault(); * p = o.GetModel(int.Parse(item.borrower_registerid.ToString())); //借款人用户对象 * * * int ic = ef.hx_income_statement.Where(c => c.bid_records_id == item.bid_records_id && c.targetid == item.targetid && c.orderid== Re.OrdId).Update(c => new hx_income_statement { payment_status = 1, repayment_period = DateTime.Now }); * * if (ic > 0) * { * int userid = int.Parse(item.borrower_registerid.ToString()); * UserInfoData ud = new UserInfoData(); * ReQueryBalanceBg retloan = ud.Querybalance(userid); * * if (retloan.RespCode == "000") * { * // sql = "update hx_member_table set available_balance=" + decimal.Parse(retloan.AvlBal) + " ,frozen_sum=" + decimal.Parse(retloan.FrzBal) + " where registerid=" + userid.ToString() + ""; * * //sql = "update hx_member_table set available_balance=" + decimal.Parse(retloan.AvlBal) + " where registerid=" + userid.ToString() + ""; * * //DbHelperSQL.RunSql(sql); * B_usercenter bu = new B_usercenter(); * bu.DataSync(retloan, userid.ToString()); * * * * * } * } */ } } return(Content(str)); }
/// <summary> /// 12月份元旦活动转账专用 获取活动信息 短信通知部分需要更改 /// </summary> /// <param name="mc"></param> /// <param name="TrAMT"></param> /// <param name="TransAmt"></param> public void YuandaiToUserTransfer(M_CashAwards mc, decimal TrAMT, decimal TransAmt) { M_Transfer m = new M_Transfer(); m.Version = "10"; m.CmdId = "Transfer"; // m.OrdId = Utils.Createcode(); m.OrdId = mc.OrdId.ToString(); m.OutCustId = Utils.GetMerCustID(); m.OutAcctId = "MDT000001"; m.TransAmt = mc.Amounts.ToString("0.00"); m.InCustId = mc.UsrCustId; m.BgRetUrl = Utils.GetRe_url("Thirdparty/ToUserTransfer.aspx"); m.MerPriv = mc.proid.ToString(); StringBuilder chkVal = new StringBuilder(); chkVal.Append(m.Version); chkVal.Append(m.CmdId); chkVal.Append(m.OrdId); chkVal.Append(m.OutCustId); chkVal.Append(m.OutAcctId); chkVal.Append(m.TransAmt); chkVal.Append(m.InCustId); chkVal.Append(m.RetUrl); chkVal.Append(m.BgRetUrl); chkVal.Append(m.MerPriv); string chkv = chkVal.ToString(); LogInfo.WriteLog("12月份元旦活动平台向用户活动转账加签chkv字符:" + chkv); //私钥文件的位置(这里是放在了站点的根目录下) string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetMerPr(); //需要指定提交字符串的长度 int len = Encoding.UTF8.GetBytes(chkv).Length; StringBuilder sbChkValue = new StringBuilder(256); //加签 int str = DllInterop.SignMsg(Utils.GetMerId(), merKeyFile, chkv, len, sbChkValue); LogInfo.WriteLog("12月份元旦活动平台向用户活动转账加签字符:" + str.ToString()); m.ChkValue = sbChkValue.ToString(); LogInfo.WriteLog("12月份元旦活动平台向用户活动转账提交信息:" + FastJSON.toJOSN(m)); LogInfo.WriteLog("ChkValue:" + m.ChkValue); using (var client = new WebClient()) { var values = new NameValueCollection(); values.Add("Version", m.Version); values.Add("CmdId", m.CmdId); values.Add("OrdId", m.OrdId); values.Add("OutCustId", m.OutCustId); values.Add("OutAcctId", m.OutAcctId); values.Add("TransAmt", m.TransAmt); values.Add("InCustId", m.InCustId); values.Add("InAcctId", m.InAcctId); values.Add("RetUrl", m.RetUrl); values.Add("BgRetUrl", m.BgRetUrl); values.Add("MerPriv", m.MerPriv); values.Add("ChkValue", m.ChkValue); string url = Utils.GetChinapnrUrl(); //同步发送form表单请求 byte[] result = client.UploadValues(url, "POST", values); var retStr = Encoding.UTF8.GetString(result); // Response.Write(retStr); LogInfo.WriteLog("12月份元旦活动自动扣款转账(商户用)返回报文" + retStr); ReTransfer reg = new ReTransfer(); var retloan = (ReTransfer)FastJSON.ToObject(retStr, reg); StringBuilder builder = new StringBuilder(); builder.Append(retloan.CmdId); builder.Append(retloan.RespCode); builder.Append(retloan.OrdId); builder.Append(retloan.OutCustId); builder.Append(retloan.OutAcctId); builder.Append(retloan.TransAmt); builder.Append(retloan.InCustId); builder.Append(retloan.InAcctId); builder.Append(HttpUtility.UrlDecode(retloan.RetUrl)); builder.Append(HttpUtility.UrlDecode(retloan.BgRetUrl)); builder.Append(retloan.MerPriv); var msg = builder.ToString(); LogInfo.WriteLog("12月份元旦活动平台向用户活动转账返回参数:" + msg); //验签 string pgPubkFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk(); int ret = DllInterop.VeriSignMsg(pgPubkFile, msg, msg.Length, retloan.ChkValue); LogInfo.WriteLog("12月份元旦活动平台向用户活动转账验签ret:" + ret.ToString()); if (ret == 0) { if (retloan.RespCode == "000") { /* * string sql = "update hx_CashAwards set OrdIdstate=3 where OrdIdstate=1 and OrdId=" + retloan.OrdId + " and proid =" + retloan.MerPriv; * DbHelperSQL.RunSql(sql); * LogInfo.WriteLog("平台向用户活动转账验签更新"+ sql); */ // Response.Write(retloan.RespCode + " <br> "); B_usercenter BUC = new B_usercenter(); int dint = BUC.UpateAwa(retloan); LogInfo.WriteLog("12月份元旦活动事务执行返回:" + dint.ToString()); if (dint > 0) { B_member_table dmt = new B_member_table(); string sql = "SELECT registerid,username,mobile from hx_member_table where UsrCustId='" + retloan.InCustId + "'"; DataTable dt = DbHelperSQL.GET_DataTable_List(sql); if (dt.Rows.Count > 0) { //活动奖历 M_Activity_schedule ma = new M_Activity_schedule(); B_Activity_schedule ba = new B_Activity_schedule(); B_bonus_account bb = new B_bonus_account(); M_bonus_account mb = new M_bonus_account(); M_bonus_account_water mbaw = new M_bonus_account_water(); B_bonus_account_water bbaw = new B_bonus_account_water(); DateTime dte = DateTime.Now; // ma = ba.GetModel(16); //测试平台 ma = ba.GetModel(15); //获取奖励对象 mb.activity_schedule_id = ma.activity_schedule_id; mb.membertable_registerid = int.Parse(dt.Rows[0]["registerid"].ToString()); mb.activity_schedule_name = ma.activity_schedule_name; mb.amount_of_reward = decimal.Parse(retloan.TransAmt); mb.use_lower_limit = ma.use_lower_limit; mb.reward = ma.reward; mb.start_date = dte; mb.end_date = dte; mb.entry_time = dte; mb.reward_state = 3; int bbid = bb.Add(mb); if (bbid > 0) //奖励记录成功后插入明细记录 { mbaw.bonus_account_id = bbid; mbaw.membertable_registerid = mb.membertable_registerid; mbaw.income = mb.amount_of_reward; mbaw.expenditure = 0.00M; mbaw.time_of_occurrence = mb.entry_time; // mbaw. mbaw.award_description = "已汇入个人账户"; mbaw.water_type = 0; bbaw.Add(mbaw); //短信通知 #region MyRegion //短信通知 string contxt = Utils.GetMSMEmailContext(20, 1); // 获取注册成功邮件内容 StringBuilder sbsms = new StringBuilder(contxt); sbsms = sbsms.Replace("#USERANEM#", dt.Rows[0]["username"].ToString()); sbsms = sbsms.Replace("#MONEY#", TrAMT.ToString("0.00")); sbsms = sbsms.Replace("#AMTM#", TransAmt.ToString("0.00")); string mobile = dt.Rows[0]["mobile"].ToString(); M_td_SMS_record psms = new M_td_SMS_record(); B_td_SMS_record osms = new B_td_SMS_record(); int smstype = (int)Enum.Parse(typeof(EnumSMSType), EnumSMSType.活动奖励.ToString()); psms.phone_number = mobile; psms.sendtime = DateTime.Now; psms.senduserid = int.Parse(dt.Rows[0]["registerid"].ToString()); psms.smstype = smstype; psms.smscontext = sbsms.ToString(); psms.orderid = SendSMS.Send_SMS(mobile, sbsms.ToString()); psms.vcode = ""; osms.Add(psms); #endregion } #region MyRegion 系统消息 DateTime dti = DateTime.Now; M_td_System_message pm = new M_td_System_message(); pm.MReg = int.Parse(dt.Rows[0]["registerid"].ToString()); pm.Mstate = 0; pm.MTitle = "投资成功现金奖励"; pm.MContext = "尊敬的用户" + dt.Rows[0]["username"].ToString() + ":您好!恭喜您成功投资了项目,现金奖励 " + retloan.TransAmt + "元。如有问题可咨询创利投的客服!"; pm.PubTime = dti; B_usercenter.AddMessage(pm); #endregion } LogInfo.WriteLog("12月份元旦活动 平台向用户活动转账验签更新成功,需要写入消息"); } } else { //Response.Write(HttpUtility.UrlDecode(retloan.)); } } } }
/// <summary> /// 抽奖方法 /// </summary> /// <param name="userID">用户id</param> /// <param name="startTime">开始时间</param> /// <param name="endTime">结束时间</param> /// <param name="amount">规则金额</param> /// <returns>提示信息</returns> public static string LuckDrawAward(int userID, DateTime startTime, DateTime endTime, int amount) { string msg = ""; try { int state = CheckActivityTime(startTime, endTime, ref msg); if (state != 0) { return(msg = "4;" + msg); } if (userID <= 0) { return(msg = "1;请登录后重试"); } if (GetCanUseTimes(userID, startTime, endTime, amount) <= 0) //如果可抽奖次数是0的话,则不能抽奖 { return(msg = "2;抽奖机会已用完,请明天再来"); } #region 规则及数据 //1-10 --小米手环(2代) --0.10% --5个 //10-35 --京东卡100元 --0.25% --2个 //35-535 --现金5元 --5.00% --100个 //535-1500 --2%加息券 --9.65% --193个 //1500-3500 --1%加息券 --20.00% --400个 //3500-6000 --50元抵扣券 --25.00% --500个 //6000-10000 --20元抵扣券 --40.00% --800个 #endregion //奖品编号 int awardID = 0; //奖品标题 string title = ""; // 奖品类型 (前端现金1、抵扣券2、加息券3,后台管理现金4、抵扣券1、加息券2、谢谢参与3、实物-4) int awardType = -1; //轮盘区块编号 int awardBlockID = 0; Random random = new Random(); //随机数 int randomRate = random.Next(1, 10001); B_LuckDraw bllLuckDraw = new B_LuckDraw(); //获得用户对象 M_member_table p = new M_member_table(); B_member_table o = new B_member_table(); p = o.GetModel(userID); if (randomRate <= 10) { awardID = ConfigHelper.GetConfigInt("MiBandWristband"); if (bllLuckDraw.GetCash50RecordsCount(awardID, startTime, endTime) < 5) //最多5个,如果超过了5个,则获得20元抵扣券 { awardType = -4; title = "双12抽奖送小米手环"; awardBlockID = 5; string mailStr = "恭喜您抽到了 '小米手环(第二代)' 奖品,我司客服将于3个工作日与您联系,请您保持手机畅通。"; SendSMS.Send_SMS(p.mobile, mailStr); } else { awardID = ConfigHelper.GetConfigInt("AwardBonus20"); awardType = 1; title = "双12抽奖送20元抵扣券"; awardBlockID = 0; } } else if (randomRate <= 35) { awardID = ConfigHelper.GetConfigInt("JDCard"); if (bllLuckDraw.GetCash50RecordsCount(awardID, startTime, endTime) < 2) //最多2个,如果超过了2个,则获得20元抵扣券 { awardType = -4; title = "双12抽奖送京东卡100元"; awardBlockID = 6; string mailStr = "恭喜您抽到了 '京东卡100元' 奖品,我司客服将于3个工作日与您联系,请您保持手机畅通。"; SendSMS.Send_SMS(p.mobile, mailStr); } else { awardID = ConfigHelper.GetConfigInt("AwardBonus20"); awardType = 1; title = "双12抽奖送20元抵扣券"; awardBlockID = 0; } } else if (randomRate <= 535) { awardID = ConfigHelper.GetConfigInt("AwardCash5"); if (bllLuckDraw.GetCash50RecordsCount(awardID, startTime, endTime) < 100) //最多100个,如果超过了100个,则获得20元抵扣券 { awardType = 4; title = "双12抽奖送现金5元"; awardBlockID = 1; } else { awardID = ConfigHelper.GetConfigInt("AwardBonus20"); awardType = 1; title = "双12抽奖送20元抵扣券"; awardBlockID = 0; } } else if (randomRate <= 1500) { awardID = ConfigHelper.GetConfigInt("AwardRate2"); if (bllLuckDraw.GetCash50RecordsCount(awardID, startTime, endTime) < 193) //最多193个,如果超过了193个,则获得20元抵扣券 { awardType = 2; title = "双12抽奖送2%加息券"; awardBlockID = 2; } else { awardID = ConfigHelper.GetConfigInt("AwardBonus20"); awardType = 1; title = "双12抽奖送20元抵扣券"; awardBlockID = 0; } } else if (randomRate <= 3500) { awardID = ConfigHelper.GetConfigInt("AwardRate1"); if (bllLuckDraw.GetCash50RecordsCount(awardID, startTime, endTime) < 400) //最多400个,如果超过了400个,则获得20元抵扣券 { awardType = 2; title = "双12抽奖送1%加息券"; awardBlockID = 7; } else { awardID = ConfigHelper.GetConfigInt("AwardBonus20"); awardType = 1; title = "双12抽奖送20元抵扣券"; awardBlockID = 0; } } else if (randomRate <= 6000) { awardID = ConfigHelper.GetConfigInt("AwardBonus50"); if (bllLuckDraw.GetCash50RecordsCount(awardID, startTime, endTime) < 500) //最多500个,如果超过了500个,则获得20元抵扣券 { awardType = 1; title = "双12抽奖送50元抵扣券 "; awardBlockID = 4; } else { awardID = ConfigHelper.GetConfigInt("AwardBonus20"); awardType = 1; title = "双12抽奖送20元抵扣券"; awardBlockID = 0; } } else if (randomRate <= 10000) { awardID = ConfigHelper.GetConfigInt("AwardBonus20"); awardType = 1; title = "双12抽奖送20元抵扣券"; awardBlockID = 0; } ActFacade act = new ActFacade(); var sourceData = act.GetActivityModel(awardID); //bllASchedule.GetModel(awardID); #region 发放现金、抵扣券和加息券 if (awardType != -4) { if (bllLuckDraw.AddNewRecord(new M_LuckDrawRecord { Ldre_AwardID = awardID, Ldre_AwardName = title, Ldre_AwardType = awardType, Ldre_CreatTime = DateTime.Now, Ldre_UserID = userID, Ldre_OrderID = awardType == 4 ? Utils.Createcode() : null, Ldre_ActivityName = "双12抽奖" })) { //发放奖励 //sourceData.ActStarttime = DateTime.Now; //sourceData.ActEndtime = DateTime.Now.AddDays(10); //有效期10天 sourceData.ActTypeId = 2; //短期活动 switch (awardType) //后台类别规则和前台规则不一样,所以需要处理,具体说明看awardType定义 { case 4: sourceData.RewTypeID = 1; break; case 1: sourceData.RewTypeID = 2; break; case 2: sourceData.RewTypeID = 3; break; } sourceData.ActID = awardID; sourceData.ActName = title; DrawBonus(sourceData, userID, 10); return(msg = "0;" + awardBlockID.ToString()); } } else if (awardType == -1) { return(msg = "3;碰到点小问题,刷新一下试试^v^"); } #endregion #region 实体奖品的抽奖记录 if (bllLuckDraw.AddNewRecord(new M_LuckDrawRecord { Ldre_AwardID = awardID, Ldre_AwardName = title, Ldre_AwardType = awardType, Ldre_CreatTime = DateTime.Now, Ldre_UserID = userID, Ldre_ActivityName = "双12抽奖" })) { return(msg = "0;" + awardBlockID.ToString()); } else { return(msg = "3;碰到点小问题,刷新一下试试^v^"); } #endregion } catch (Exception ex) { LogInfo.WriteLog("双12抽奖活动异常日志:" + "msg:" + ex.Message + " StackTrace" + ex.StackTrace); //没有增加任何抽奖记录时的异常状态 return(msg = "3;" + ex.Message); } }
public string Register(string Validatecode, string userpassword1, string mobile1, string username1, bool realMobileUser = false) { Utils.SetSYSDateTimeFormat(); string json = ""; //注册奖励 M_Activity_schedule ma = new M_Activity_schedule(); B_Activity_schedule ba = new B_Activity_schedule(); B_member_table o = new B_member_table(); M_member_table p = new M_member_table(); B_bonus_account bb = new B_bonus_account(); M_bonus_account mb = new M_bonus_account(); M_bonus_account_water mbaw = new M_bonus_account_water(); B_bonus_account_water bbaw = new B_bonus_account_water(); string email1 = ""; string strvcode = realMobileUser ? "y" : ck.GetVcode(Validatecode, mobile1); string tid = "";//富爸爸参数uid //Utils.GetCookie("Cooperation", "tid");//渠道来源ID string invcode = Utils.GetInvCode(); // 用户邀请用户关系存在的时候,不走 新渠道机制(channel) #region 道 //渠道的cookie var cc_keyValue = Utils.GetInvCookie("channel"); string cInvitedcode = string.Empty; if (string.IsNullOrEmpty(invcode) && cc_keyValue.Count != 0) { cInvitedcode = cc_keyValue["Invitedcode"]; var channelInvitedCode = ef.hx_Channel.Where(c => c.ChannelName == "fubaba").Select(c => c.Invitedcode).FirstOrDefault(); if (cInvitedcode.Trim() == channelInvitedCode) { tid = cc_keyValue["uid"]; } } #endregion int ch = 0; if (Utils.GetCookie("Cooperation", "ch") != "") { try { ch = int.Parse(Utils.GetCookie("Cooperation", "ch"));//渠道来源 } catch { ch = 0; } } if (ch == 0) { if (invcode != "") { ch = 1; } } if (strvcode != null) { if (strvcode == "y") { string checkMob = ck.checkmobile(mobile1, 0); if (checkMob != "y") { json = @" {""rs"" : ""n"", ""error"" : ""手机号已被注册!""}"; return(json); } p.username = username1; p.password = DESEncrypt.Encrypt(userpassword1, ConfigurationManager.AppSettings["webp"].ToString()); p.mobile = mobile1; p.email = email1; p.usertypes = 0; p.invitedcode = Calculator.Getinvitedcode(); p.ismobile = 1; p.Channelsource = ch; p.Tid = tid; p.channel_invitedcode = cInvitedcode; LogInfo.WriteLog("用户注册内容:" + FastJSON.toJOSN(p) + " IP:" + Utils.GetRealIP()); int uid = o.Add(p); if (uid > 0) { CheckXiCai(p.mobile, cInvitedcode); //if (tid != "") //{ // Utils.GetCoopAPI(tid, uid.ToString(), 1); //} string keys = DESEncrypt.Encrypt(uid.ToString(), ConfigurationManager.AppSettings["webp"].ToString()); string keys1 = DESEncrypt.Encrypt(username1, ConfigurationManager.AppSettings["webp"].ToString()); M_td_SMS_record pm = new M_td_SMS_record(); B_td_SMS_record om = new B_td_SMS_record(); int smstype = (int)Enum.Parse(typeof(EnumSMSType), EnumSMSType.注册成功.ToString()); string smscontxt = Utils.GetMSMEmailContext(18, 1); // 获取注册成功邮件内容 StringBuilder sbsms = new StringBuilder(smscontxt); string mobile = mobile1; sbsms = sbsms.Replace("#USERANEM#", p.username.ToString()); pm.phone_number = mobile; pm.sendtime = DateTime.Now; pm.senduserid = uid; pm.smstype = smstype; pm.smscontext = sbsms.ToString(); pm.orderid = SendSMS.Send_SMS(mobile, sbsms.ToString()); pm.vcode = ""; om.Add(pm); M_login mlogin = new M_login(); mlogin.userid = uid; mlogin.username = p.username; mlogin.codeno = Utils.SetSessioncode(); int remember = 0; if (Utils.LoginWriteSession(mlogin, remember) > 0) { string sql = "update hx_member_table set lastlogintime='" + DateTime.Now + "',lastloginIP='" + Utils.GetRealIP() + "' where registerid=" + uid.ToString(); LogInfo.WriteLog(sql); DbHelperSQL.ExecuteSql(sql); } #region MyRegion //记录邀请关系 LogInfo.WriteLog("注册:邀请码:" + invcode); if (invcode != "") { string codesql = "SELECT invcode from hx_td_Userinvitation where invpersonid=" + uid.ToString();//查询本人是否已经被邀请注册过 invcode='" + invcode + "' and LogInfo.WriteLog("codesql2:" + codesql); DataTable dtcode = DbHelperSQL.GET_DataTable_List(codesql); if (dtcode.Rows.Count == 0) { M_td_Userinvitation myao = new M_td_Userinvitation(); B_td_Userinvitation dyao = new B_td_Userinvitation(); int yaouids = Utils.GetCodeUid(); myao.invcode = invcode; myao.invtime = DateTime.Now; myao.invpersonid = uid; myao.Invpeopleid = yaouids; myao.InvitesStates = 0; myao.Invitereward = 0; int myaoint = dyao.Add(myao); } } #endregion MyRegion //记录邀请关系 json = @" {""rs"" : ""y"", ""url"" : ""/""}"; string temstr = "/opening_account/Index/" + uid.ToString(); json = json.Replace("/", temstr); return(json); } else { json = @" {""rs"" : ""n"", ""error"" : ""注册失败!""}"; return(json); } } else { json = @" {""rs"" : ""n"", ""error"" : ""验证码不对!""}"; return(json); } } else { json = @" {""rs"" : ""n"", ""error"" : ""验证码不存在或过期!""}"; } return(json); }
public ActionResult PostGENERALAmt() { //显示于页面给汇付 string str = string.Empty; //日志变量 string log = string.Empty; //响应通知加签的状态码 int ret = -1; //业务的sql语句变量 string sql = string.Empty; ReCash m = ChinapnrFacade.CashCallBack(out ret); if (m != null) { //提现成功后,得多事务处理账户金额,流水及冻结金额等 if (m.RespCode == "000") { string cachename = m.OrdId + "Cash" + m.UsrCustId; if (Utils.GeTThirdCache(cachename) == 0) { Utils.SetThirdCache(cachename); B_usercenter BUC = new B_usercenter(); M_ReqExt mre = JsonConvert.DeserializeObject <M_ReqExt>(m.RespExt.Replace("[", "").Replace("]", "")); int CashOp = BUC.CashTran(m.OpenAcctId, m.OpenBankId, m.OrdId, m.RealTransAmt, m.UsrCustId, m.FeeAmt, mre.FeeObjFlag, mre.CashChl); if (CashOp > 0) { sql = "select registerid,username,mobile,UsrCustId,available_balance from hx_member_table where UsrCustId='" + m.UsrCustId + "'"; LogInfo.WriteLog("审请取现成功短信sql:" + sql); DataTable dt = DbHelperSQL.GET_DataTable_List(sql); if (dt.Rows.Count > 0) { //短信通知 //尊敬的#USERANEM#,您已成功提现#MONEY#元,账户余额#MONEY1#.请注意查收!【创利投】 string contxt = Utils.GetMSMEmailContext(12, 1); // 获取注册成功邮件内容 StringBuilder sbsms = new StringBuilder(contxt); sbsms = sbsms.Replace("#USERANEM#", dt.Rows[0]["username"].ToString()); sbsms = sbsms.Replace("#MONEY#", m.TransAmt); decimal amt = decimal.Parse(dt.Rows[0]["available_balance"].ToString()) - decimal.Parse(m.TransAmt); sbsms = sbsms.Replace("#MONEY1#", amt.ToString()); string mobile = dt.Rows[0]["mobile"].ToString(); M_td_SMS_record psms = new M_td_SMS_record(); B_td_SMS_record osms = new B_td_SMS_record(); int smstype = (int)Enum.Parse(typeof(EnumSMSType), EnumSMSType.取现成功.ToString()); psms.phone_number = mobile; psms.sendtime = DateTime.Now; psms.senduserid = int.Parse(dt.Rows[0]["registerid"].ToString()); psms.smstype = smstype; psms.smscontext = sbsms.ToString(); psms.orderid = SendSMS.Send_SMS(mobile, sbsms.ToString()); psms.vcode = ""; osms.Add(psms); DateTime dti = DateTime.Now; M_td_System_message pm = new M_td_System_message(); pm.MReg = int.Parse(dt.Rows[0]["registerid"].ToString()); pm.Mstate = 0; pm.MTitle = "提现"; pm.MContext = sbsms.ToString(); pm.PubTime = dti; pm.Mtype = 3; B_usercenter.AddMessage(pm); } string cashChl = Enum.GetName(typeof(EnumCommon.E_hx_td_UserCash.EnumCashChl), (int)EnumCommon.E_hx_td_UserCash.EnumCashChl.IMMEDIATE); if (mre.CashChl == cashChl && decimal.Parse(m.TransAmt) <= 200000M) { string retUrl = Utils.GetRe_url("admin/UserCash/RePostCashProcessing"); string bgRetUrl = Utils.GetRe_url("admin/Thirdparty/BgCashProcessing"); BusinessLogicHelper.AutoCheckCash(m.UsrCustId, retUrl, bgRetUrl); } } } } } return(View(m)); }
/// <summary> /// 获取短信验证码 /// </summary> /// <returns></returns> public ActionResult smscode() { string json = ""; string vvcode = ""; B_usercenter bu = new B_usercenter(); string mobile = Utils.CheckSQLHtml(Request["mobile"].ToString().Trim()); int userid = DNTRequest.GetInt("userid", 0); int smstype = (int)Enum.Parse(typeof(EnumSMSType), EnumSMSType.短信验证码.ToString()); int smstype1 = (int)Enum.Parse(typeof(EnumSMSType), EnumSMSType.语音短信验证码.ToString()); string sql2 = "SELECT registerid,username,mobile from hx_member_table where mobile='" + mobile + "'"; DataTable dt1 = DbHelperSQL.GET_DataTable_List(sql2); if (dt1.Rows.Count > 0) { if (Request["vcodec"] != null) { vvcode = Utils.CheckSQLHtml(Request["vcodec"].ToString().Trim()); } string ipc = Utils.GetRealIP(); if (vvcode.Length >= 4) { string strIdentify = "LoginValidateCode"; //随机字串存储键值,以便存储到Session中 if (Session[strIdentify] != null) { if (Session[strIdentify].ToString() == vvcode) { } else { json = @" {""rs"": ""n"", ""info"": ""验证码不对!""}"; return(Content(json)); } } else { json = @" {""rs"": ""n"", ""info"": ""验证码已过期!""}"; return(Content(json)); } } else if (vvcode.Length > 0 && vvcode.Length <= 3) { json = @" {""rs"": ""n"", ""info"": ""验证码位数不对!""}"; return(Content(json)); } else { // json = @" {""rs"": ""n"", ""info"": ""v""}"; // return Content(json); } if (Session["checkmobileq"] == null) { Session["checkmobileq"] = DateTime.Now.ToString(); } else { DateTime dte = DateTime.Parse(Session["checkmobileq"].ToString()); long sec = Utils.DateDiff("Second", dte, DateTime.Now); if (sec > 60) { Session["checkmobileq"] = null; } else { json = @" {""rs"": ""n"", ""info"": ""短信发送太频繁!请稍后再试""}"; return(Content(json)); } } if (bu.checkipsess(Utils.GetRealIP(), smstype, smstype1) == false) { json = @" {""rs"": ""n"", ""info"": ""短信发送太频繁!发送异常""}"; return(Content(json)); } if (bu.checkipnum(Utils.GetRealIP(), smstype, smstype1) >= 8) { json = @" {""rs"": ""n"", ""info"": ""短信发送太频繁!请与客服联系""}"; return(Content(json)); } else { /* * hx_td_SMS_record记录短信,验证码类型应是1 * */ string contxt = Utils.GetMSMEmailContext(1, 0); // 获取注册成功邮件内容 M_td_SMS_record p = new M_td_SMS_record(); B_td_SMS_record o = new B_td_SMS_record(); string sql = "select sms_record_id,smscontext,phone_number,hits from hx_td_SMS_record where ( smstype=" + smstype + " or smstype=" + smstype1 + " ) and phone_number='" + mobile + "' and DATEDIFF(MINUTE,sendtime,getDate())<3 order by sms_record_id desc"; DataTable dt = DbHelperSQL.GET_DataTable_List(sql); if (dt.Rows.Count > 0) { if (int.Parse(dt.Rows[0]["hits"].ToString()) < 3) { //以前存在,直接发送验证码 decimal dd = SendSMS.Send_SMS(dt.Rows[0]["phone_number"].ToString(), dt.Rows[0]["smscontext"].ToString()); if (dd != 0) { json = @" {""rs"": ""n"", ""info"": ""短信发送异常,请与客报联系""}"; return(Content(json)); } //if (dd > 0) // { sql = "update hx_td_SMS_record set orderid=" + dd.ToString() + ",hits=hits+1 where sms_record_id=" + dt.Rows[0]["sms_record_id"].ToString(); DbHelperSQL.RunSql(sql); //} } else { json = @" {""rs"": ""n"", ""info"": ""短信发送异常,请与客报联系""}"; return(Content(json)); } } else { //不存在生成新的验证码 string vcode = Utils.RndNum(6); string smscontxt = Utils.GetMSMEmailContext(16, 1); // 获取注册成功邮件内容 StringBuilder sbsms = new StringBuilder(smscontxt); sbsms = sbsms.Replace("#CODE#", vcode); decimal dd = SendSMS.Send_SMS(mobile, sbsms.ToString()); if (dd != 0) { json = @" {""rs"": ""n"", ""info"": ""短信发送异常,请与客报联系""}"; return(Content(json)); } p.phone_number = mobile; p.sendtime = DateTime.Now; p.senduserid = userid; p.smstype = smstype; p.smscontext = sbsms.ToString(); p.orderid = dd; p.vcode = vcode; p.ip = Utils.GetRealIP(); o.Add(p); } json = @" {""rs"": ""y"", ""info"": ""短信发送成功! ""}"; return(Content(json)); } } return(Content(json)); }
/// <summary> /// 单击获取短信按钮 /// </summary> /// <returns></returns> public ActionResult Regsmscode() { string json = ""; int smstype = (int)Enum.Parse(typeof(EnumSMSType), EnumSMSType.短信验证码.ToString()); int smstype1 = (int)Enum.Parse(typeof(EnumSMSType), EnumSMSType.语音短信验证码.ToString()); string mobile = Utils.CheckSQLHtml(DNTRequest.GetString("mobile")); string vvcode = Utils.CheckSQLHtml(DNTRequest.GetString("vcode")); string ipc = Utils.GetRealIP(); if (vvcode.Length >= 4) { string strIdentify = "ValidateCode"; //随机字串存储键值,以便存储到Session中 if (Session[strIdentify] != null) { if (Session[strIdentify].ToString() != vvcode) { json = @" {""rs"": ""n"", ""info"": ""验证码不对!""}"; return(Content(json)); } } else { json = @" {""rs"": ""n"", ""info"": ""验证码已过期!""}"; return(Content(json)); } } else { json = @" {""rs"": ""n"", ""info"": ""v""}"; return(Content(json)); } if (ck.checkmobile(mobile) != "y") { json = @" {""rs"": ""n"", ""info"": ""手机号已经被注册!""}"; return(Content(json)); } //短信防刷 if (Session["checkmobile"] == null) { Session["checkmobile"] = DateTime.Now.ToString(); } else { DateTime dte = DateTime.Parse(Session["checkmobile"].ToString()); long sec = Utils.DateDiff("Second", dte, DateTime.Now); if (sec > 60) { Session["checkmobile"] = null; } else { json = @" {""rs"": ""n"", ""info"": ""短信发送太频繁!请稍后再试""}"; return(Content(json)); } } if (ck.checkipsess(ipc, smstype, smstype1) == false) { json = @" {""rs"": ""n"", ""info"": ""短信发送太频繁!发送异常""}"; return(Content(json)); } //限制ip访问发送次数验证码最多发送4次 if (ck.checkipnum(Utils.GetRealIP(), smstype, smstype1) >= 8) { json = @" {""rs"": ""n"", ""info"": ""短信发送太频繁!请与客服联系""}"; return(Content(json)); } else { string contxt = Utils.GetMSMEmailContext(8, 1); // 获取注册验证码 M_td_SMS_record p = new M_td_SMS_record(); B_td_SMS_record o = new B_td_SMS_record(); string sql = "select sms_record_id,smscontext,phone_number,hits from hx_td_SMS_record where ( smstype=" + smstype + " or smstype=" + smstype1 + " ) and phone_number='" + mobile + "' and DATEDIFF(MINUTE,sendtime,getDate())<3 order by sms_record_id desc"; DataTable dt = DbHelperSQL.GET_DataTable_List(sql); if (dt.Rows.Count > 0) { //以前存在,直接发送验证码 if (int.Parse(dt.Rows[0]["hits"].ToString()) < 8) { decimal dd = SendSMS.Send_SMS(dt.Rows[0]["phone_number"].ToString(), dt.Rows[0]["smscontext"].ToString()); sql = "update hx_td_SMS_record set orderid=" + dd.ToString() + ",hits=hits+1 where sms_record_id=" + dt.Rows[0]["sms_record_id"].ToString(); DbHelperSQL.RunSql(sql); } else { json = @" {""rs"": ""n"", ""info"": ""短信发送异常,请与客报联系""}"; return(Content(json)); } } else { //不存在生成新的验证码 string vcode = Utils.RndNum(6); string smscontxt = Utils.GetMSMEmailContext(8, 1); // 获取注册成功邮件内容 StringBuilder sbsms = new StringBuilder(smscontxt); sbsms = sbsms.Replace("#CODE#", vcode); p.phone_number = mobile; p.sendtime = DateTime.Now; p.senduserid = 0; p.smstype = smstype; p.smscontext = sbsms.ToString(); p.orderid = SendSMS.Send_SMS(mobile, sbsms.ToString()); p.vcode = vcode; p.ip = Utils.GetRealIP(); o.Add(p); } json = @" {""rs"": ""y"", ""info"": ""短信发送成功! ""}"; } return(Content(json)); }
public string Register(string Validatecode, string userpassword1, string mobile1, string username1, bool realMobileUser = false) { Utils.SetSYSDateTimeFormat(); string json = ""; //注册奖历 M_Activity_schedule ma = new M_Activity_schedule(); B_Activity_schedule ba = new B_Activity_schedule(); B_member_table o = new B_member_table(); M_member_table p = new M_member_table(); B_bonus_account bb = new B_bonus_account(); M_bonus_account mb = new M_bonus_account(); M_bonus_account_water mbaw = new M_bonus_account_water(); B_bonus_account_water bbaw = new B_bonus_account_water(); string email1 = ""; string strvcode = realMobileUser ? "y" : ck.GetVcode(Validatecode, mobile1); //string strvcode = "y"; if ((Settings.Instance.SiteDomain.IndexOf(PublicURL.NewWXUrl) >= 0)) { strvcode = ck.GetVcodeWX(Validatecode, mobile1); } string tid = Utils.GetCookie("Cooperation", "tid"); int ch = 0; string invcode = Utils.GetInvCode(); #region 道 //渠道的cookie var cc_keyValue = Utils.GetInvCookie("channel"); string cInvitedcode = string.Empty; if (string.IsNullOrEmpty(invcode) && cc_keyValue.Count != 0) { cInvitedcode = cc_keyValue["Invitedcode"]; } #endregion if (Utils.GetCookie("Cooperation", "ch") != "") { try { ch = int.Parse(Utils.GetCookie("Cooperation", "ch")); } catch { ch = 0; } } if (ch == 0) { if (invcode != "") { ch = 3; } else { ch = 2; } } if (realMobileUser || strvcode != null) { if (realMobileUser || strvcode == "y") { string checkMob = ck.checkmobile(mobile1, 0); if (checkMob != "y") { json = @" {""rs"" : ""n"", ""error"" : ""手机号已被注册!""}"; return(json); } p.username = username1; p.password = DESEncrypt.Encrypt(userpassword1, ConfigurationManager.AppSettings["webp"].ToString()); p.mobile = mobile1; p.email = email1; p.usertypes = 0; p.invitedcode = Calculator.Getinvitedcode(); p.ismobile = 1; p.Channelsource = ch; p.Tid = tid; p.channel_invitedcode = cInvitedcode; LogInfo.WriteLog("用户注册内容:" + FastJSON.toJOSN(p) + " IP:" + Utils.GetRealIP()); int uid = o.Add(p);//注册成功返回会员ID if (uid > 0) { //记录用户信息到活动流量发放表里 2016.10.21-31日 //string CookCode = Utils.GetCookie("CookCode"); //if (!string.IsNullOrWhiteSpace(CookCode)) //{ // if (CookCode== "liumi") // { // AddReceiveInfo(uid); // } //} if (tid != "") { // Utils.GetCoopAPI(tid, uid.ToString(), 1); } string keys = DESEncrypt.Encrypt(uid.ToString(), ConfigurationManager.AppSettings["webp"].ToString()); string keys1 = DESEncrypt.Encrypt(username1, ConfigurationManager.AppSettings["webp"].ToString()); M_td_SMS_record pm = new M_td_SMS_record(); B_td_SMS_record om = new B_td_SMS_record(); int smstype = (int)Enum.Parse(typeof(EnumSMSType), EnumSMSType.注册成功.ToString()); string smscontxt = Utils.GetMSMEmailContext(18, 1); // 获取注册成功邮件内容 StringBuilder sbsms = new StringBuilder(smscontxt); string mobile = mobile1; sbsms = sbsms.Replace("#USERANEM#", p.username.ToString()); pm.phone_number = mobile; pm.sendtime = DateTime.Now; pm.senduserid = uid; pm.smstype = smstype; pm.smscontext = sbsms.ToString(); pm.orderid = SendSMS.Send_SMS(mobile, sbsms.ToString()); pm.vcode = ""; om.Add(pm); M_login mlogin = new M_login(); mlogin.userid = uid; mlogin.username = p.username; mlogin.codeno = Utils.SetSessioncode(); int remember = 0; FormsAuthentication.SignOut(); Utils.AddLoginCache(p.username, mlogin); string sql = "update hx_member_table set lastlogintime='" + DateTime.Now + "',lastloginIP='" + Utils.GetRealIP() + "' where registerid=" + uid.ToString(); DbHelperSQL.ExecuteSql(sql); #region MyRegion //记录邀请关系 LogInfo.WriteLog("注册:邀请码:" + invcode); if (invcode != "") { string codesql = "SELECT invcode from hx_td_Userinvitation where invpersonid=" + uid.ToString();//查询本人是否已经被邀请注册过 invcode='" + invcode + "' and LogInfo.WriteLog("codesql2:" + codesql); DataTable dtcode = DbHelperSQL.GET_DataTable_List(codesql); if (dtcode.Rows.Count == 0) { M_td_Userinvitation myao = new M_td_Userinvitation(); B_td_Userinvitation dyao = new B_td_Userinvitation(); int yaouids = Utils.GetCodeUid(); myao.invcode = invcode; myao.invtime = DateTime.Now; myao.invpersonid = uid; myao.Invpeopleid = yaouids; myao.InvitesStates = 0; myao.Invitereward = 0; int myaoint = dyao.Add(myao); } } #endregion MyRegion //记录邀请关系 json = @" {""rs"" : ""y"", ""url"" : ""/index.html"",""uid"":" + uid + "}"; string temstr = "/opening_account/Index/" + uid.ToString(); json = json.Replace("/index.html", temstr); return(json); } else { json = @" {""rs"" : ""n"", ""error"" : ""注册失败!""}"; return(json); } } else { json = @" {""rs"" : ""n"", ""error"" : ""验证码不对!""}"; return(json); } } else { json = @" {""rs"" : ""n"", ""error"" : ""验证码不存在或过期!""}"; } return(json); }
/// <summary> /// 无效投资标的处理 /// </summary> /// <param name="investor_registerid">投资用户id</param> /// <param name="bid_records_id">投资记录id</param> /// <param name="OrdId">投资订单号</param> /// <param name="OrdDate">投资订单日期</param> /// <param name="UsrCustId">客户号</param> /// <param name="FreezeOrdId">冻结订单号</param> /// <param name="TransAmt">交易金额</param> /// <param name="FreezeTrxId">冻结唯一标识</param> /// <param name="MerPriv">优惠券字符串</param> /// <param name="QueryTransType">查询类型 LOANS:放款交易查询 REPAYMENT:还款交易查询 TENDER:投标交易查询 CASH:取现交易查询 FREEZE:冻结解冻交易查询 </param> public void setRecords_Lost(string investor_registerid, string bid_records_id, string OrdId, string OrdDate, string UsrCustId, string FreezeOrdId, string TransAmt, string FreezeTrxId, string MerPriv, string QueryTransType = "TENDER") { TransStat ts = new TransStat(); bool d = ts.checktrans(OrdId, OrdDate, QueryTransType); if (d == false) { string sql = "update hx_UserAct set UseState=0,AmtProid=0 where UseState=3 and AmtProid=" + bid_records_id + "and registerid=" + investor_registerid; DbHelperSQL.RunSql(sql); sql = "delete hx_Bid_records where OrdId ='" + OrdId + "' and ordstate=0 and bid_records_id=" + bid_records_id; DbHelperSQL.RunSql(sql); } else {//TODO 此处有bug,自动查询的更新冻结表时缺少 FreezeTrxId 值,放款时没有该值会报错。 考虑注释该逻辑,等待汇付异步回调???? B_usercenter BUC = new B_usercenter(); //取得投标记录使用的优惠券 string AmtProid = BUC.GetBid_AmtProid(int.Parse(bid_records_id)); int de = BUC.ReInvest_success(UsrCustId, FreezeOrdId, TransAmt, FreezeTrxId, OrdId, AmtProid); if (de > 0) { string sql = "select targetid,bid_records_id, borrowing_title,investor_registerid ,username,mobile,invitationcode,investment_amount,life_of_loan,unit_day,borrowing_balance,bonusAmt from V_hx_Bid_records_borrowing_target where OrdId='" + OrdId + "'"; DataTable dt = DbHelperSQL.GET_DataTable_List(sql); if (dt.Rows.Count > 0) { decimal investAmt = decimal.Parse(dt.Rows[0]["investment_amount"].ToString()); int registerid = int.Parse(dt.Rows[0]["investor_registerid"].ToString()); string targetid = dt.Rows[0]["targetid"].ToString(); #region 待提取为公共方法 #region MyRegion 系统消息 DateTime dti = DateTime.Now; M_td_System_message pm = new M_td_System_message(); pm.MReg = registerid; pm.Mstate = 0; pm.MTitle = "投资成功"; pm.MContext = "尊敬的用户" + dt.Rows[0]["username"].ToString() + ":您好!恭喜您成功投资了项目【" + dt.Rows[0]["borrowing_title"].ToString() + "】,投资金额是:" + investAmt + "。如有问题可咨询创利投的客服!谢谢!"; pm.PubTime = dti; pm.Mtype = 1; B_usercenter.AddMessage(pm); #endregion #region MyRegion //短信通知 string contxt = Utils.GetMSMEmailContext(15, 1); // 获取注册成功邮件内容 StringBuilder sbsms = new StringBuilder(contxt); sbsms = sbsms.Replace("#USERANEM#", dt.Rows[0]["username"].ToString()); sbsms = sbsms.Replace("#PID#", targetid); sbsms = sbsms.Replace("#MONEY#", investAmt.ToString()); string mobile = dt.Rows[0]["mobile"].ToString(); M_td_SMS_record psms = new M_td_SMS_record(); B_td_SMS_record osms = new B_td_SMS_record(); int smstype = (int)Enum.Parse(typeof(EnumSMSType), EnumSMSType.投资成功.ToString()); psms.phone_number = mobile; psms.sendtime = DateTime.Now; psms.senduserid = registerid; psms.smstype = smstype; psms.smscontext = sbsms.ToString(); psms.orderid = SendSMS.Send_SMS(mobile, sbsms.ToString()); psms.vcode = ""; osms.Add(psms); #endregion #region 远程调用生成合同??? 稍后替换为本地方法调用 微信端可远程调用 string postString = "action=MUserPDF&data=" + targetid.ToString() + "&uc=" + registerid.ToString() + "&OrdId=" + OrdId; string sr = Utils.PostWebRequest(Utils.GetRemote_url("pdf/index"), postString, Encoding.UTF8); #endregion #region 道合作 第一投标调用接口??? B_member_table bmt = new B_member_table(); M_member_table mmt = new M_member_table(); mmt = bmt.GetModel(registerid); if (mmt.Tid != null && mmt.Channelsource == 1) { if (B_usercenter.GetInvestCountByUserid(mmt.registerid) == 1) { string ret3 = Utils.GetCoopAPI(mmt.Tid, investAmt.ToString("0.00"), 2); LogInfo.WriteLog("前台渠道合作第一次返回结果:" + ret3 + " 用户id:" + mmt.registerid + " 订单id " + OrdId); } } #endregion #endregion 待提取为公共方法 //发放奖励 ActFacade act = new ActFacade(); act.SendBonusAfterInvest(dt, EnumCommon.E_hx_ActivityTable.E_ActTargetPlatform.web); } } } }
/// <summary> /// 投资成功,汇付后台主动通知 /// </summary> /// <returns></returns> public ActionResult BG_investment_success() { int id = 0; string srt = ""; ReInitiativeTender p = new ReInitiativeTender(); id = DNTRequest.GetInt("id", 0); string log = ""; log += "主动通知后台有响应成功!接收到的项目id=" + id; p.CmdId = DNTRequest.GetString("CmdId"); p.RespCode = DNTRequest.GetString("RespCode"); p.RespDesc = HttpUtility.UrlDecode(DNTRequest.GetString("RespDesc")); p.MerCustId = DNTRequest.GetString("MerCustId"); p.OrdId = DNTRequest.GetString("OrdId"); p.OrdDate = DNTRequest.GetString("OrdDate"); p.TransAmt = DNTRequest.GetString("TransAmt"); p.UsrCustId = DNTRequest.GetString("UsrCustId"); p.TrxId = DNTRequest.GetString("TrxId"); p.IsFreeze = DNTRequest.GetString("IsFreeze"); p.FreezeOrdId = DNTRequest.GetString("FreezeOrdId"); p.FreezeTrxId = DNTRequest.GetString("FreezeTrxId"); p.RetUrl = HttpUtility.UrlDecode(DNTRequest.GetString("RetUrl")); p.BgRetUrl = HttpUtility.UrlDecode(DNTRequest.GetString("BgRetUrl")); string merp = DNTRequest.GetString("MerPriv"); if (merp.Length > 0) { p.MerPriv = HttpUtility.UrlDecode(merp); } else { p.MerPriv = merp; } p.RespExt = HttpUtility.UrlDecode(DNTRequest.GetString("RespExt")); p.ChkValue = DNTRequest.GetString("ChkValue"); StringBuilder chkVal = new StringBuilder(); chkVal.Append(p.CmdId); chkVal.Append(p.RespCode); chkVal.Append(p.MerCustId); chkVal.Append(p.OrdId); chkVal.Append(p.OrdDate); chkVal.Append(p.TransAmt); chkVal.Append(p.UsrCustId); chkVal.Append(p.TrxId); chkVal.Append(p.IsFreeze); chkVal.Append(p.FreezeOrdId); chkVal.Append(p.FreezeTrxId); chkVal.Append(p.RetUrl); chkVal.Append(p.BgRetUrl); chkVal.Append(p.MerPriv); chkVal.Append(p.RespExt); string chkv = chkVal.ToString(); //私钥文件的位置(这里是放在了站点的根目录下) string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk(); int ret = DllInterop.VeriSignMsg(merKeyFile, chkv, chkv.Length, p.ChkValue); log += "<br>投标后台主动投标返回报文:" + FastJSON.toJOSN(p); string sql = ""; int invcount = 0; //记录用户是否是首次投资 #region 验签 if (ret == 0) { if (p.RespCode == "000" || p.RespCode == "322" || p.RespCode == "534" || p.RespCode == "360" || p.RespCode == "099") { string cachename = p.OrdId + "InvestWeb" + p.UsrCustId; if (Utils.GeTThirdCache(cachename) == 0) { Utils.SetThirdCache(cachename); if (p.FreezeTrxId != "") { sql = "select ordstate from hx_Bid_records where ordstate =0 and OrdId='" + p.OrdId + "'"; DataTable dts = DbHelperSQL.GET_DataTable_List(sql); if (dts.Rows.Count > 0) { //同步处理用户金额 B_usercenter BUC = new B_usercenter(); int d = BUC.ReInvest_success(p.UsrCustId, p.FreezeOrdId, p.TransAmt, p.FreezeTrxId, p.OrdId, p.MerPriv); log += "<br>后台投标:id" + id.ToString() + "返回唯一冻结标识:" + p.FreezeTrxId + "事务执行结果:" + d.ToString(); if (d > 0) { sql = "select targetid,bid_records_id, borrowing_title,investor_registerid ,username,mobile,invitationcode,investment_amount,life_of_loan,unit_day,borrowing_balance,bonusAmt from V_hx_Bid_records_borrowing_target where OrdId='" + p.OrdId + "'"; DataTable dt = DbHelperSQL.GET_DataTable_List(sql); if (dt.Rows.Count > 0) { decimal investAmt = decimal.Parse(dt.Rows[0]["investment_amount"].ToString()); string OrdId = p.OrdId; int registerid = int.Parse(dt.Rows[0]["investor_registerid"].ToString()); ViewBag.userid = registerid; string targetid = dt.Rows[0]["targetid"].ToString(); #region 待提取为公共方法 #region MyRegion 系统消息 DateTime dti = DateTime.Now; M_td_System_message pm = new M_td_System_message(); pm.MReg = registerid; pm.Mstate = 0; pm.MTitle = "投资成功"; pm.MContext = "尊敬的用户" + dt.Rows[0]["username"].ToString() + ":您好!恭喜您成功投资了项目【" + dt.Rows[0]["borrowing_title"].ToString() + "】,投资金额是:" + investAmt + "。如有问题可咨询创利投的客服!谢谢!"; pm.PubTime = dti; pm.Mtype = 1; B_usercenter.AddMessage(pm); #endregion #region MyRegion //短信通知 string contxt = Utils.GetMSMEmailContext(15, 1); // 获取注册成功邮件内容 StringBuilder sbsms = new StringBuilder(contxt); sbsms = sbsms.Replace("#USERANEM#", dt.Rows[0]["username"].ToString()); sbsms = sbsms.Replace("#PID#", targetid); sbsms = sbsms.Replace("#MONEY#", investAmt.ToString()); string mobile = dt.Rows[0]["mobile"].ToString(); M_td_SMS_record psms = new M_td_SMS_record(); B_td_SMS_record osms = new B_td_SMS_record(); int smstype = (int)Enum.Parse(typeof(EnumSMSType), EnumSMSType.投资成功.ToString()); psms.phone_number = mobile; psms.sendtime = DateTime.Now; psms.senduserid = registerid; psms.smstype = smstype; psms.smscontext = sbsms.ToString(); psms.orderid = SendSMS.Send_SMS(mobile, sbsms.ToString()); psms.vcode = ""; osms.Add(psms); #endregion #region 远程调用生成合同??? 稍后替换为本地方法调用 微信端可远程调用 string postString = "action=MUserPDF&data=" + targetid.ToString() + "&uc=" + registerid.ToString() + "&OrdId=" + OrdId; string sr = Utils.PostWebRequest(Utils.GetRemote_url("pdf/index"), postString, Encoding.UTF8); #endregion #region 道合作 第一投标调用接口??? B_member_table bmt = new B_member_table(); M_member_table mmt = new M_member_table(); mmt = bmt.GetModel(registerid); if (mmt.Tid != null && mmt.Channelsource == 1) { if (B_usercenter.GetInvestCountByUserid(mmt.registerid) == 1) { string ret3 = Utils.GetCoopAPI(mmt.Tid, investAmt.ToString("0.00"), 2); log += "<br>前台渠道合作第一次返回结果:" + ret3 + " 用户id:" + mmt.registerid + " 订单id " + OrdId; } } #endregion #endregion 待提取为公共方法 //发放奖励 ActFacade act = new ActFacade(); act.SendBonusAfterInvest(dt, EnumCommon.E_hx_ActivityTable.E_ActTargetPlatform.web); #region 线 投资六月专享标一元抢Iphone 2016年9月11日 9点 至2016年9月30日 if (false) { DateTime nowdate = DateTime.Now; DateTime startdate = new DateTime(2016, 09, 11, 9, 00, 00); DateTime enddate = new DateTime(2016, 09, 30, 23, 59, 59); if (nowdate > startdate && nowdate < enddate) { log += "<br>PC端【一元抢Iphone】"; log += "<br>标的期限:" + dt.Rows[0]["life_of_loan"].ToString(); if (dt.Rows[0]["unit_day"].ToString() == "1" && dt.Rows[0]["life_of_loan"].ToString() == "6")//是否六月标 { log += "<br>用户注册时间:" + mmt.Registration_time.ToString(); if (mmt.Registration_time > new DateTime(2016, 09, 11, 0, 0, 0)) { B_GrabIphone gi = new B_GrabIphone(); bool isCount = gi.Exists(mmt.registerid);//查询是否存在该用户 log += "<br> 用户ID:" + mmt.registerid + ";查询是否存在该用户:" + isCount; if (isCount != true) { M_GrabIphone model = new M_GrabIphone(); model.RegrsterID = mmt.registerid; model.Color = ""; model.Addtime = nowdate; model.LuckDrawState = 0; model.WinningState = 0; model.WinningTime = nowdate; model.TargetID = int.Parse(dt.Rows[0]["targetid"].ToString()); model.BidRecordsID = int.Parse(dt.Rows[0]["bid_records_id"].ToString()); model.InvestmentAmount = dt.Rows[0]["investment_amount"].ToString(); gi.Add(model); //增加一条数据 int ljcount = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["GrabIphone"].ToString()); //获取启动抽奖人数 List <M_GrabIphone> giList = gi.GetModelList(ljcount, "LuckDrawState=0", "ID"); //获取当前阶段投资人数 if (giList != null) { log += "<br>当前阶段投资人数:" + giList.Count; if (giList.Count >= ljcount) { bool bo = gi.UpdateLuckDrawState();//批量更新抽奖状态 log += "<br> 批量更新抽奖状态:" + bo; if (bo == true) { int count = giList.Count; int index = new Random().Next(count); M_GrabIphone randowitem = giList[index]; if (randowitem != null) { log += "<br> 获奖用户ID:" + randowitem.RegrsterID; bool co = gi.Update("", 1, DateTime.Now, randowitem.RegrsterID);//更新中奖用户状态 log += "<br> 更新中奖用户状态:" + co; } } } } } } } } } #endregion } } } srt = "RECV_ORD_ID_" + p.OrdId; } }/*缓存检查结束位置*/ } } LogInfo.WriteLog(log); #endregion return(Content(srt)); }
/// <summary> /// 普通提现汇付后台主动通知 /// </summary> /// <returns></returns> public ActionResult PostGENERALAmt() { string str1 = ""; ReCash m = new ReCash(); m.CmdId = DNTRequest.GetString("CmdId"); m.RespCode = DNTRequest.GetString("RespCode"); m.RespDesc = HttpUtility.UrlDecode(DNTRequest.GetString("RespDesc")); m.MerCustId = DNTRequest.GetString("MerCustId"); m.OrdId = DNTRequest.GetString("OrdId"); m.UsrCustId = DNTRequest.GetString("UsrCustId"); m.TransAmt = DNTRequest.GetString("TransAmt"); m.OpenAcctId = DNTRequest.GetString("OpenAcctId"); m.OpenBankId = DNTRequest.GetString("OpenBankId"); m.FeeAmt = DNTRequest.GetString("FeeAmt"); m.FeeCustId = DNTRequest.GetString("FeeCustId"); m.FeeAcctId = DNTRequest.GetString("FeeAcctId"); m.ServFee = DNTRequest.GetString("ServFee"); m.ServFeeAcctId = DNTRequest.GetString("ServFeeAcctId"); m.RetUrl = HttpUtility.UrlDecode(DNTRequest.GetString("RetUrl")); m.BgRetUrl = HttpUtility.UrlDecode(DNTRequest.GetString("BgRetUrl")); m.MerPriv = DNTRequest.GetString("MerPriv"); m.RespExt = HttpUtility.UrlDecode(DNTRequest.GetString("RespExt")); m.ChkValue = DNTRequest.GetString("ChkValue"); LogInfo.WriteLog("后台取现返回报文:" + FastJSON.toJOSN(m)); //验签 StringBuilder chkVal = new StringBuilder(); chkVal.Append(m.CmdId); chkVal.Append(m.RespCode); chkVal.Append(m.MerCustId); chkVal.Append(m.OrdId); chkVal.Append(m.UsrCustId); chkVal.Append(m.TransAmt); chkVal.Append(m.OpenAcctId); chkVal.Append(m.OpenBankId); chkVal.Append(m.FeeAmt); chkVal.Append(m.FeeCustId); chkVal.Append(m.FeeAcctId); chkVal.Append(m.ServFee); chkVal.Append(m.ServFeeAcctId); chkVal.Append(m.RetUrl); 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()); StringBuilder str = new StringBuilder(); if (ret == 0) { //提现成功后,得多事务处理账户金额,流水及冻结金额等 if (m.RespCode == "000") { string cachename = m.OrdId + "Cash" + m.UsrCustId; if (Utils.GeTThirdCache(cachename) == 0) { Utils.SetThirdCache(cachename); B_usercenter BUC = new B_usercenter(); M_ReqExt mre = JsonConvert.DeserializeObject <M_ReqExt>(m.RespExt.Replace("[", "").Replace("]", "")); int CashOp = BUC.CashTran(m.OpenAcctId, m.OpenBankId, m.OrdId, m.TransAmt, m.UsrCustId, m.FeeAmt, mre.FeeObjFlag, mre.CashChl); //int CashOp = BUC.CashTran(m.OpenAcctId, m.OpenBankId, m.OrdId, m.TransAmt, m.UsrCustId); if (CashOp > 0) { string sql = "select registerid,username,mobile,UsrCustId,available_balance from hx_member_table where UsrCustId='" + m.UsrCustId + "'"; LogInfo.WriteLog("后台审请取现成功短信sql:" + sql); DataTable dt = DbHelperSQL.GET_DataTable_List(sql); if (dt.Rows.Count > 0) { //短信通知 //尊敬的#USERANEM#,您已成功提现#MONEY#元,账户余额#MONEY1#.请注意查收!【创利投】 string contxt = Utils.GetMSMEmailContext(12, 1); // 获取注册成功邮件内容 StringBuilder sbsms = new StringBuilder(contxt); sbsms = sbsms.Replace("#USERANEM#", dt.Rows[0]["username"].ToString()); sbsms = sbsms.Replace("#MONEY#", m.TransAmt); decimal amt = decimal.Parse(dt.Rows[0]["available_balance"].ToString()) - decimal.Parse(m.TransAmt); sbsms = sbsms.Replace("#MONEY1#", amt.ToString()); string mobile = dt.Rows[0]["mobile"].ToString(); M_td_SMS_record psms = new M_td_SMS_record(); B_td_SMS_record osms = new B_td_SMS_record(); int smstype = (int)Enum.Parse(typeof(EnumSMSType), EnumSMSType.取现成功.ToString()); psms.phone_number = mobile; psms.sendtime = DateTime.Now; psms.senduserid = int.Parse(dt.Rows[0]["registerid"].ToString()); psms.smstype = smstype; psms.smscontext = sbsms.ToString(); psms.orderid = SendSMS.Send_SMS(mobile, sbsms.ToString()); psms.vcode = ""; osms.Add(psms); DateTime dti = DateTime.Now; M_td_System_message pm = new M_td_System_message(); pm.MReg = int.Parse(dt.Rows[0]["registerid"].ToString()); pm.Mstate = 0; pm.MTitle = "提现成功"; pm.MContext = sbsms.ToString(); pm.PubTime = dti; pm.Mtype = 3; B_usercenter.AddMessage(pm); if (mre.CashChl == "IMMEDIATE" && decimal.Parse(m.TransAmt) <= 200000M) { string retUrl = Utils.GetRe_url("admin/UserCash/RePostCashProcessing"); string bgRetUrl = Utils.GetRe_url("admin/Thirdparty/BgCashProcessing"); BusinessLogicHelper.AutoCheckCash(m.UsrCustId, retUrl, bgRetUrl); } } } } str1 = "RECV_ORD_ID_" + m.OrdId; } } return(Content(str1)); }
/// <summary> /// 常规活动 现金奖励 发放(奖励流水 资金流水 系统消息) /// </summary> /// <param name="registerid">用户id</param> /// <param name="investAmt">投资金额</param> /// <param name="hat">活动对象</param> /// <param name="bid_records_id">投标记录id</param> /// <returns>bool 是否发放成功</returns> private bool GeneralActCash(int Registerid, decimal InvestAmt, hx_ActivityTable hat, int bid_records_id, int lifeLoan = 0) { bool t = false; //hx_ActivityTable hat = GetActTableInfo(ActTypeId, ActUser, 1); if (hat != null) { B_member_table oy = new B_member_table(); //M_member_table investor = new M_member_table(); hx_member_table investor = new hx_member_table(); investor = ef.hx_member_table.Where(c => c.registerid == Registerid).FirstOrDefault(); //oy.GetModel(Registerid);//被推荐人 也就是投资人 DateTime dte = DateTime.Now; string codesql = "SELECT invcode,Invpeopleid,invpersonid,invtime from hx_td_Userinvitation where invpersonid=" + Registerid + " ";//查询本人是否已经被邀请注册过 DataTable dtcode = DbHelperSQL.GET_DataTable_List(codesql); //if (dtcode.Rows.Count > 0 || (investor != null && !string.IsNullOrWhiteSpace(investor.channel_invitedcode))) //{ int uuid = dtcode.Rows.Count > 0 ? int.Parse(dtcode.Rows[0]["Invpeopleid"].ToString()) : 0; //邀请用户id //用户等级为渠道 不参与活动 if (investor != null && investor.useridentity == 4) { return(t); } int investCount = B_usercenter.GetInvestCountByUserid(Registerid); //老渠道机制判断 (推荐人等级为4渠道用户,投资次数大于等于1次 时可参与活动 if (uuid != 0) { M_member_table py = new M_member_table(); py = oy.GetModel(uuid);//推荐人 if ((py != null && py.useridentity == 4) && investCount == 1) { return(t); } } //新渠道机制判断 using (ChannelAct channelAct = new ChannelAct()) { //按照渠道类型和投资次数判断是否参与此次活动 if (!channelAct.IsParticipateActivity(investor.channel_invitedcode, investCount)) { return(t); } } //if (((py != null && py.useridentity == 4) || !string.IsNullOrWhiteSpace(investor.channel_invitedcode)) && B_usercenter.GetInvestCountByUserid(Registerid) == 1) //{ // return t; //} //if (py.useridentity != 4)//渠道用户不执行 2016-11-8日添加 //{ string ActRule = hat.ActRule; List <MAmtList> mlist = new List <MAmtList>(); JavaScriptSerializer js = new JavaScriptSerializer(); MActCash mc = new MActCash(); mc = js.Deserialize <MActCash>(ActRule); //mlist = js.Deserialize<List<MAmtList>>(ActRule); //获取该活动对应的已经发放奖励的人次 int TopNum = B_usercenter.GetTopNum(hat.ActID); //获取该活动对应的已经发放奖励的总金额 decimal totalAmt = B_usercenter.GetTopAmtCount(hat.ActID); if (hat.ActUser == 7)//特殊回款复投奖励类型,根据规则修订奖励基数--投资金额 { InvestAmt = GetSepcialActAmt(Registerid, bid_records_id, InvestAmt, hat); } //根据投资金额计算对应现金奖励金额 decimal actamt = GetActAmt(mc, InvestAmt, TopNum, lifeLoan); //检查分发奖励是否超过人数顶限或者总金额上限,上限为0表示不限制,如果超过直接跳过 if ((mc.TopAmt > totalAmt || mc.TopAmt == 0) && (mc.TopNum > TopNum || mc.TopNum == 0)) { //t = true; if (actamt > 0)//大于 0里写入对应的奖励数据 { hx_UserAct hua = new hx_UserAct(); hua.ActTypeId = hat.ActTypeId; hua.registerid = Registerid; hua.RewTypeID = hat.RewTypeID; hua.ActID = hat.ActID; hua.Amt = actamt; hua.Uselower = 0.00M; hua.Usehight = 0.00M; hua.AmtEndtime = DateTime.Parse(hat.ActEndtime.ToString()).AddMonths(1); hua.AmtUses = 1; //没指定情况下默认为单独使用 hua.UseState = 5; //现金未转账 hua.UseTime = DateTime.Now; hua.AmtProid = bid_records_id; //未使用默认为0,对于现金奖励该字段存放获得该奖励的投资记录id hua.ISSmsOne = 0; hua.IsSmsThree = 0; hua.isSmsFifteen = 0; hua.IsSmsSeven = 0; hua.isSmsSixteen = 0; hua.OrderID = decimal.Parse(Utils.Createcode()); hua.Createtime = DateTime.Now; hua.Title = mc.ActName; hua.UseLifeLoan = ""; ef.hx_UserAct.Add(hua); int i = ef.SaveChanges(); if (i > 0) { //录入成功,后进行转账操作 1.获取用户对象 M_member_table p = new M_member_table(); B_member_table o = new B_member_table(); p = o.GetModel(Registerid); if (p != null) { //2.调用商户向用户转账接口 Transfer tf = new Transfer(); ReTransfer retf = tf.ToUserTransfer(p.UsrCustId, actamt, hua.OrderID.ToString(), hua.ActID.ToString(), "/Thirdparty/ToUserTransfer"); if (retf != null && retf.RespCode == "000") { //3.事务处理操作账户及插入流水 #region 验签缓存处理 string cachename = retf.OrdId + "ToUserTransfer" + retf.InCustId; if (Utils.GeTThirdCache(cachename) == 0) { Utils.SetThirdCache(cachename); B_usercenter BUC = new B_usercenter(); int ic = BUC.UpateActToUserTransfer(retf, bid_records_id); //用户余额更新 if (ic > 0) { string sql = "SELECT registerid,username,mobile from hx_member_table where UsrCustId='" + retf.InCustId + "'"; DataTable dt = DbHelperSQL.GET_DataTable_List(sql); if (dt.Rows.Count > 0) { #region 资金流水 B_usercenter ors = new B_usercenter(); decimal di = ors.GetUsridAvailable_balance(int.Parse(dt.Rows[0]["registerid"].ToString())); // di = di + decimal.Parse(hua.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("" + int.Parse(dt.Rows[0]["registerid"].ToString()) + "," + decimal.Parse(hua.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,'" + "现金奖励" + "')"); DbHelperSQL.RunSql(strSql.ToString()); strSql.Clear(); #endregion #region MyRegion 记录奖励流水表 string awardDescription = string.Format("{0},已汇入个人账户{1}{2}", hat.ActName, retf.TransAmt, GetBunusDescription(hat.RewTypeID)); AddBonusAccoutWater(int.Parse(hua.UserAct.ToString()), Registerid, decimal.Parse(retf.TransAmt), awardDescription); #endregion #region MyRegion 发送系统消息 string MContext = string.Format("尊敬的用户:您好!恭喜您成功参与{0},获得{1}{2}如有问题可咨询创利投的客服!", hat.ActName, retf.TransAmt, GetBunusDescription(hat.RewTypeID)); AddSytemMessage(Registerid, hat.ActName, MContext); #endregion string msg = string.Format("尊敬的客户您好,您已成功投资创利投金服,获得返利{0}元,请登录官网查看。客服热线:010-53732056。", actamt.ToString("0.00")); SendSMS.Send_SMS(dt.Rows[0]["mobile"].ToString(), msg); } } t = true; } #endregion } } } } //} } //} } return(t); }