/// <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 LuckDrawAward() { JavaScriptSerializer jss = new JavaScriptSerializer(); AjaxResponseData arData = new AjaxResponseData(); try { string msg = ""; int state = CheckActivityTime(ref msg); if (state != 0) { arData = new AjaxResponseData { code = "4", data = msg }; return(Content(jss.Serialize(arData))); } M_login M_uid = (M_login)DataCache.GetCache(CacheRemove._loginCachePrefix + Utils.GetUserIDCookieslocahost().ToString()); if (M_uid == null) { arData = new AjaxResponseData { code = "1", data = "请登录后重试" }; return(Content(jss.Serialize(arData))); } if (M_uid.codeno != Utils.getSessioncode()) { arData = new AjaxResponseData { code = "1", data = "请登录后重试" }; return(Content(jss.Serialize(arData))); } //获取登录用户编号 int userID = M_uid.userid; //可抽奖次数 int CanUseTimes = 1; B_member_table bllMember = new B_member_table(); //获取会员信息 PartialMemberModel member = bllMember.GetPartialModel(userID); //验证用户是否为今天新注册的用户 if (member.registration_time >= DateTime.Now.Date && member.registration_time < DateTime.Now.AddDays(1).Date&& member.isrealname == 1) { CanUseTimes += 1; } B_LuckDraw bllLuckDraw = new B_LuckDraw(); //获取用户的抽奖记录数量(当天的) int recordsCount = bllLuckDraw.GetRecordsCount(userID, DateTime.Now.Date, DateTime.Now.AddDays(1).Date); CanUseTimes -= recordsCount; if (CanUseTimes <= 0) { arData = new AjaxResponseData { code = "2", data = "抽奖机会已用完,请明天再来" }; return(Content(jss.Serialize(arData))); } #region 规则及数据 // 现金50元 50 0.17 %(60次抽满后,每天限中2次,概率填充入50元代金券) //1 -17 //50元代金券 2450 23.33 % //18-2350 //20元代金卷 2100 20.00 % //2351-4350 //10元代金卷 2100 20.00 % //4351-6350 //1 % 加息券 1750 16.67 % //6351-8017 //2 % 加息券 1400 13.33 % //8018-9350 //谢谢参与 682.5 6.50 % //9351-10000 //47 9月注册送500元奖励 //48 9月注册送200元奖励 //49 9月注册送50元奖励 //50 9月注册送20元奖励 //51 [9月注册送10元奖励] //52 [9月注册送8元奖励] //1 3 % 加息券 //2 1 % 加息券 //3 2 % 加息券 //4 加息券 #endregion //现金50元已抽中的个数 int cash50Count = bllLuckDraw.GetCash50RecordsCount(-2, DateTime.Now.Date, DateTime.Now.AddDays(1).Date); //B_Activity_schedule bllASchedule = new B_Activity_schedule(); ActFacade act = new ActFacade(); //B_Activity bllActivity = new B_Activity(); //admin.users.AddBonusForUser adfu = new admin.users.AddBonusForUser(); //奖品编号 int awardID = 0; //奖品标题 string title = ""; //奖品类型 int awardType = -1; //轮盘区块编号 int awardBlockID = 0; Random random = new Random(); //随机数 int randomRate = random.Next(1, 10001); //randomRate = 9350; //switch (randomRate) //{ if (randomRate <= 8) { //每天限中2次,概率填充入50元代金券 if (cash50Count < 2) { awardID = ConfigHelper.GetConfigInt("AwardCash50"); awardType = 0; title = "现金50元"; awardBlockID = 3; } else { awardID = ConfigHelper.GetConfigInt("AwardBonus50"); awardType = 1; awardBlockID = 7; } } //现金50元 else if (randomRate <= 17) { //每天限中2次,概率填充入50元代金券 if (cash50Count < 2) { awardID = ConfigHelper.GetConfigInt("AwardCash50"); awardType = 0; title = "现金50元"; awardBlockID = 5; } else { awardID = ConfigHelper.GetConfigInt("AwardBonus50"); awardType = 1; awardBlockID = 7; } } //50元代金券 else if (randomRate <= 2350) { awardID = ConfigHelper.GetConfigInt("AwardBonus50"); awardType = 1; awardBlockID = 7; } //20元代金卷 else if (randomRate <= 4350) { awardID = ConfigHelper.GetConfigInt("AwardBonus20"); awardType = 1; awardBlockID = 4; } //10元代金卷 else if (randomRate <= 6350) { awardID = ConfigHelper.GetConfigInt("AwardBonus10"); awardType = 1; awardBlockID = 6; } //1 % 加息券 else if (randomRate <= 8017) { awardID = ConfigHelper.GetConfigInt("AwardRate1"); awardType = 2; awardBlockID = 0; } //2 % 加息券 else if (randomRate <= 9350) { awardID = ConfigHelper.GetConfigInt("AwardRate2"); awardType = 2; awardBlockID = 2; } //谢谢参与 else if (randomRate <= 10000) { awardID = ConfigHelper.GetConfigInt("AwardThankYou"); awardType = 3; title = "谢谢参与"; awardBlockID = 1; } //谢谢参与 if (awardType == -1) { awardID = ConfigHelper.GetConfigInt("AwardThankYou"); awardType = 3; title = "谢谢参与"; awardBlockID = 1; } //} //发放代金券 if (awardType == 1 || awardType == 2) { var sourceData = act.GetActivityModel(awardID); //bllASchedule.GetModel(awardID); title = sourceData.ActName; //sourceData.activity_schedule_name.Replace("活动", "抽奖"); if (bllLuckDraw.AddNewRecord(new M_LuckDrawRecord { Ldre_AwardID = awardID, Ldre_AwardName = sourceData.ActName, Ldre_AwardType = awardType, Ldre_CreatTime = DateTime.Now, Ldre_UserID = userID })) { DrawBonus(sourceData, userID); arData = new AjaxResponseData { code = "0", data = awardBlockID.ToString() }; return(Content(jss.Serialize(arData))); } else { arData = new AjaxResponseData { code = "3", data = "碰到点小问题,刷新一下试试^v^" }; return(Content(jss.Serialize(arData))); } } ////发放加息券 //if (awardType == 2) //{ // var sourceData = bllActivity.GetModel(awardID); // title = "9月抽奖" + sourceData.ActivityName; // if (bllLuckDraw.AddNewRecord(new M_LuckDrawRecord { Ldre_AwardID = awardID, Ldre_AwardName = sourceData.ActivityName, Ldre_AwardType = awardType, Ldre_CreatTime = DateTime.Now, Ldre_UserID = userID })) // { // thisObj.SubmitRate(awardID, 1, userID, DateTime.Now, sourceData.EndDate, title); // arData = new AjaxResponseData { code = "0", data = awardBlockID.ToString() }; // return jss.Serialize(arData); // } //} //增加现金和“谢谢参与”的抽奖记录 if (bllLuckDraw.AddNewRecord(new M_LuckDrawRecord { Ldre_AwardID = awardID, Ldre_AwardName = title, Ldre_AwardType = awardType, Ldre_CreatTime = DateTime.Now, Ldre_UserID = userID })) { arData = new AjaxResponseData { code = "0", data = awardBlockID.ToString() }; return(Content(jss.Serialize(arData))); } //没有增加任何抽奖记录时的异常状态 arData = new AjaxResponseData { code = "3", data = "碰到点小问题,刷新一下试试" }; return(Content(jss.Serialize(arData))); } catch (Exception ex) { LogInfo.WriteLog("9月抽奖活动异常日志:" + "msg:" + ex.Message + " StackTrace" + ex.StackTrace); //没有增加任何抽奖记录时的异常状态 arData = new AjaxResponseData { code = "3", data = ex.Message }; return(Content(jss.Serialize(arData))); } }
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)); } }
/// <summary> /// 充值汇付后台主动通知 /// </summary> /// <returns></returns> public ActionResult ReQPNetSave() { string str1 = ""; lock (this) { Settings.Instance.SetSYSDateTimeFormat(); ReQPNetSave m = new ReQPNetSave(); m.CmdId = DNTRequest.GetString("CmdId"); m.RespCode = DNTRequest.GetString("RespCode"); m.RespDesc = HttpUtility.UrlDecode(DNTRequest.GetString("RespDesc")); m.MerCustId = DNTRequest.GetString("MerCustId"); m.UsrCustId = DNTRequest.GetString("UsrCustId"); m.OrdId = DNTRequest.GetString("OrdId"); m.OrdDate = DNTRequest.GetString("OrdDate"); m.TransAmt = DNTRequest.GetString("TransAmt"); m.TrxId = DNTRequest.GetString("TrxId"); m.GateBusiId = DNTRequest.GetString("GateBusiId"); m.GateBankId = DNTRequest.GetString("GateBankId"); m.FeeAmt = DNTRequest.GetString("FeeAmt"); m.FeeCustId = DNTRequest.GetString("FeeCustId"); m.FeeAcctId = DNTRequest.GetString("FeeAcctId"); m.RetUrl = HttpUtility.UrlDecode(DNTRequest.GetString("RetUrl")); m.BgRetUrl = HttpUtility.UrlDecode(DNTRequest.GetString("BgRetUrl")); m.CardId = DNTRequest.GetString("CardId"); m.MerPriv = HttpUtility.UrlDecode(DNTRequest.GetString("MerPriv")); // m.MerPriv = DESEncrypt.Decrypt(DNTRequest.GetString("MerPriv"), ConfigurationManager.AppSettings["webp"].ToString()); m.ChkValue = DNTRequest.GetString("ChkValue"); StringBuilder chkVal = new StringBuilder(); chkVal.Append(m.CmdId); chkVal.Append(m.RespCode); chkVal.Append(m.MerCustId); chkVal.Append(m.UsrCustId); chkVal.Append(m.OrdId); chkVal.Append(m.OrdDate); chkVal.Append(m.TransAmt); chkVal.Append(m.TrxId); chkVal.Append(m.RetUrl); chkVal.Append(m.BgRetUrl); chkVal.Append(m.MerPriv); string msg = chkVal.ToString(); //私钥文件的位置(这里是放在了站点的根目录下) string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Settings.Instance.PgPubk; //需要指定提交字符串的长度 int len = Encoding.UTF8.GetBytes(msg).Length; StringBuilder sbChkValue = new StringBuilder(256); int ret = DllInterop.VeriSignMsg(merKeyFile, msg, msg.Length, m.ChkValue); // Response.Write("验签:" + ret.ToString()); LoggerHelper.Info("快充接口后台验签:ret=" + ret.ToString() + " RespCode:" + m.RespCode + m.RespDesc); LoggerHelper.Info("快充接口后台充值返回报文:" + JsonHelper.Entity2Json(m)); StringBuilder str = new StringBuilder(); string sql = ""; if (ret == 0) { if (m.RespCode == "000") { string MerPrivTemp = EncryptHelper.Decrypt(m.MerPriv, Settings.Instance.WebPass); string[] arr = Settings.Instance.SplitString(MerPrivTemp, "_"); //第一位是用户id 二是 记录id int userid = int.Parse(arr[0]); int reid = int.Parse(arr[1]); string cachename = m.OrdId + userid.ToString() + reid.ToString(); if (Settings.Instance.GeTThirdCache(cachename) == 0) { Settings.Instance.SetThirdCache(cachename); sql = "select recharge_condition from hx_Recharge_history where recharge_condition=0 and recharge_history_id=" + reid + " and order_No='" + m.OrdId + "'"; DataTable dtr = DbHelper.Query(sql).Tables[0]; if (dtr.Rows.Count > 0) { LoggerHelper.Info("快充接口后台充值数据没有写入情况下操作>>>>>>>>>>>>>>>>>>>>>>>"); M_Recharge_history rh = new M_Recharge_history(); M_Capital_account_water aw = new M_Capital_account_water(); B_member_table o = new B_member_table(); M_member_table p = new M_member_table(); p = o.GetModel(userid); rh.membertable_registerid = userid; rh.recharge_amount = decimal.Parse(m.TransAmt); rh.recharge_time = DateTime.Now; rh.account_amount = decimal.Parse(m.TransAmt); rh.order_No = m.OrdId; rh.recharge_condition = 1; //1表示充值成功 rh.recharge_bank = m.GateBankId; // 得接口返回; rh.recharge_history_id = reid; //本值提交里存的充值id aw.membertable_registerid = userid; aw.income = decimal.Parse(m.TransAmt); aw.expenditure = 0.00M; aw.time_of_occurrence = rh.recharge_time; aw.account_balance = p.available_balance + aw.income; //要得么帐户余额 aw.types_Finance = (int)Enum.Parse(typeof(EnumTypesFinance), EnumTypesFinance.充值.ToString()); aw.createtime = DateTime.Now; aw.keyid = 0; aw.remarks = m.OrdId; B_usercenter BUC = new B_usercenter(); int bucrec = BUC.rechargeTran(rh, aw); LoggerHelper.Info("后台充值事务操作返回码小于=0 操作失败:" + bucrec.ToString()); if (m.GateBusiId == "QP") { sql = "select UsrBindCardID from hx_UsrBindCardC where UsrCustId='" + m.UsrCustId + "' and OpenAcctId='" + m.CardId + "'"; DataTable dt = DbHelper.Query(sql).Tables[0]; if (dt.Rows.Count > 0) { } else { sql = "INSERT INTO hx_UsrBindCardC (UsrCustId,OpenAcctId,OpenBankId,defCard) VALUES ('" + m.UsrCustId + "','" + m.CardId + "','" + m.GateBankId + "',1)"; DbHelper.Query(sql); sql = "update hx_member_table set isbankcard=1 where registerid=" + userid.ToString(); DbHelper.Query(sql); } } } } str1 = "RECV_ORD_ID_" + m.TrxId; } } } return(Content(str1)); }
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 CashIMMEDIATE() { int userid = Utils.checkloginsession(); string url = Utils.GetChinapnrUrl(); decimal Amt = decimal.Parse(DNTRequest.GetString("TransAmt")); int UsrBindCardID = DNTRequest.GetInt("UsrBindCardID", 0); //string vcode = DNTRequest.GetString("vcode"); string strIdentify = "CashValidateCode"; //随机字串存储键值,以便存储到Session中 LogInfo.WriteLog("即时取现:userid=" + userid + ";url=" + url + ";Amt=" + Amt + ";UsrBindCardID=" + UsrBindCardID + ";strIdentify=" + strIdentify); decimal ServFee = 0.00M; //if (Session[strIdentify] != null) //{ // if (Session[strIdentify].ToString() != vcode) // { // return Content(StringAlert.Alert("验证码不对!"), "text/html"); // } //} //else //{ // return Content(StringAlert.Alert("验证码已过期!"), "text/html"); //} decimal servf = ServFee; ViewBag.errCode = "0"; B_member_table b = new B_member_table(); M_member_table p = new M_member_table(); p = b.GetModel(userid); if (p.available_balance < Amt) { ViewBag.errCode = "-1"; return(View(new M_Cash())); } if (Amt <= ServFee) { return(Content(StringAlert.Alert("取现金额小于或等于手续费,不能提现!"), "text/html")); } else if (p.available_balance < Amt + ServFee) { Amt = Amt - ServFee; } hx_UsrBindCardC ubc = ef.hx_UsrBindCardC.Where(g => g.UsrBindCardID == UsrBindCardID).FirstOrDefault(); if (ubc == null) { ViewBag.errCode = "-2"; return(View(new M_Cash())); } ViewBag.url = url; string FeeObjFlag = "M";//"U"; string cashChl = Enum.GetName(typeof(EnumCommon.E_hx_td_UserCash.EnumCashChl), (int)EnumCommon.E_hx_td_UserCash.EnumCashChl.IMMEDIATE); M_Cash mc = ChinapnrFacade.Cash(p.UsrCustId, Amt.ToString("0.00"), ubc.OpenAcctId, cashChl, ServFee.ToString("0.00"), FeeObjFlag); if (mc != null) { M_td_UserCash mu = new M_td_UserCash(); B_td_UserCash mo = new B_td_UserCash(); mu.registerid = p.registerid; mu.UsrCustId = p.UsrCustId; mu.TransAmt = decimal.Parse(mc.TransAmt); mu.FeeAmt = ChinapnrFacade.CalcCashFee(Amt.ToString("0.00"), cashChl, FeeObjFlag) + servf; mu.OrdId = mc.OrdId; mu.OrdIdTime = DateTime.Now; mu.OrdIdState = 0; mu.FeeObjFlag = FeeObjFlag; mu.CashChl = cashChl; mo.Add(mu); } return(View("CashQm", mc)); }
/// <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)); }
public ActionResult Index(RequestParam <RequestCash> reqst) { LoggerHelper.Info(reqst); ResultInfo <string> res = new ResultInfo <string>("99999"); int userId = ConvertHelper.ParseValue(reqst.body.userId.ToString(), 0); //用户id decimal Amt = reqst.body.transAmt; //提现金额 int usrBindCardId = ConvertHelper.ParseValue(reqst.body.usrBindCardId.ToString(), 0); //提现卡id decimal servf = 0.00M; string orderid = Settings.Instance.OrderCode; B_member_table b = new B_member_table(); M_member_table p = new M_member_table(); M_Cash mc = new M_Cash(); M_ReqExt mr = new M_ReqExt(); p = b.GetModel(userId); MemberLogic _logic = new MemberLogic(); var result = _logic.SelectUserBindCards(usrBindCardId); if (result == null || result.Count < 0) { LoggerHelper.Info("提现失败,用户关联的银行卡不存在:" + JsonHelper.Entity2Json(reqst)); return(Content("提现失败,用户关联的银行卡不存在!")); } if (!_logic.IsAllowWithdrawalCash(usrBindCardId, reqst.body.withdrawalType)) { LoggerHelper.Info("提现失败,用户关联的银行卡不支持此类型的取现请求:" + JsonHelper.Entity2Json(reqst)); return(Content("提现失败,用户关联的银行卡不支持此类型的取现请求!")); } MemberBankEntity ubc = result.FirstOrDefault(); if (ubc.UsrCustId == p.UsrCustId) { mc.Version = "20"; mc.CmdId = "Cash"; mc.MerCustId = Settings.Instance.MerCustId; mc.OrdId = orderid; mc.UsrCustId = p.UsrCustId; mc.TransAmt = Amt.ToString("0.00"); /*普通取现不收会员手续费*/ mc.ServFee = ""; mc.ServFeeAcctId = Settings.Instance.MerDt; mc.OpenAcctId = ubc.OpenAcctId; mc.RetUrl = Settings.Instance.GetCallbackUrl("/Cash/Index/CashCallback"); mc.BgRetUrl = Settings.Instance.GetCallbackUrl("/Cash/Index/CashBgCallback"); mc.Remark = ""; mc.CharSet = "UTF-8"; mc.MerPriv = "chuanglitou"; //if (reqst.body.withdrawalType == 2) // mr.FeeObjFlag = "U"; //客户承担提现手费续 //else mr.FeeObjFlag = "M"; //商家承担提现手费续 mr.FeeAcctId = Settings.Instance.MerDt; //reqst.body.withdrawalType = 1; switch (reqst.body.withdrawalType) { case 2: mr.CashChl = "IMMEDIATE"; break; case 1: mr.CashChl = "FAST"; break; case 0: default: mr.CashChl = "GENERAL"; //一般取现 break; } //mr.CashChl = "GENERAL"; //一般取现 // mr.CashChl = "FAST"; //快速取现 // mr.CashChl = "IMMEDIATE"; // 即时取现 mc.ReqExt = "[" + FastJSON.toJOSN(mr) + "]"; StringBuilder chkVal = new StringBuilder(); chkVal.Append(mc.Version); chkVal.Append(mc.CmdId); chkVal.Append(mc.MerCustId); chkVal.Append(mc.OrdId); chkVal.Append(mc.UsrCustId); chkVal.Append(mc.TransAmt); chkVal.Append(mc.ServFee); chkVal.Append(mc.ServFeeAcctId); chkVal.Append(mc.OpenAcctId); chkVal.Append(mc.RetUrl); chkVal.Append(mc.BgRetUrl); chkVal.Append(mc.Remark); chkVal.Append(mc.MerPriv); chkVal.Append(mc.ReqExt); string chkv = chkVal.ToString(); LoggerHelper.Info("取现chkv字符:" + 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); mc.ChkValue = sbChkValue.ToString(); if (str == 0) { M_td_UserCash mu = new M_td_UserCash(); B_td_UserCash mo = new B_td_UserCash(); mu.registerid = p.registerid; mu.UsrCustId = p.UsrCustId; mu.TransAmt = decimal.Parse(mc.TransAmt); mu.FeeAmt = servf; mu.OrdId = mc.OrdId; mu.OrdIdTime = DateTime.Now; mu.OrdIdState = 0; mu.FeeObjFlag = mr.FeeObjFlag; mo.Add(mu); } LoggerHelper.Info("加签字符:" + str); LoggerHelper.Info("提现提交表单:" + JsonHelper.Entity2Json(mc)); return(View(mc)); } else { LoggerHelper.Info("提现失败,用户提现的银行卡的关联帐户和当前用户关联的银行卡帐户不一致:" + JsonHelper.Entity2Json(reqst)); return(Content("提现失败,用户提现的银行卡的关联帐户和当前用户关联的银行卡帐户不一致!")); } }
public string loginIn(string username, string userpassword, string Validatecode, int remember, bool realMobileUser = false) { string json = string.Empty; B_member_table o = new B_member_table(); string strIdentify = "LoginValidateCode"; //随机字串存储键值,以便存储到Session中 string ip = Utils.GetRealIP(); if (realMobileUser || Session[strIdentify] != null) { if (!realMobileUser) { var ts = true; if (Settings.Instance.SiteDomain.IndexOf(PublicURL.NewPCUrl) >= 0) { ts = false; } if (ts == false) { if (Session[strIdentify].ToString() != Validatecode) { json = @" {""rs"" : ""n"", ""error"" : ""验证码过期!""}"; return(json); } } } int userid = 0; // int userid = o.CheckLogin(username, userpassword); M_member_table mtb = o.CheckUsrLogin(username); if (mtb == null) { json = @" {""rs"" : ""n"", ""error"" : ""该手机号未注册用户!""}"; return(json); } if (mtb.password != userpassword) { #region 登录失败 try { hx_td_usrlogininfo usrmode = new hx_td_usrlogininfo(); usrmode.logintime = DateTime.Now; usrmode.Loginusrname = mtb.username; usrmode.loginusrpass = "******"; usrmode.registerid = mtb.registerid; usrmode.loginIP = ip; usrmode.logincity = GetIpToCity.GetAddressByIp(ip); usrmode.loginsource = 0; usrmode.loginstate = 1; ef.hx_td_usrlogininfo.Add(usrmode); int ie = ef.SaveChanges(); } catch { } #endregion json = @" {""rs"" : ""n"", ""error"" : ""用户名或密码错误!""}"; return(json); } userid = mtb.registerid; if (userid > 0) { M_login mlogin = new M_login(); mlogin.userid = userid; mlogin.username = username; mlogin.codeno = Utils.SetSessioncode(); mlogin.UsrName = mtb.realname; if (Utils.LoginWriteSession(mlogin, remember) > 0) { string sql = "update hx_member_table set LoginNum=LoginNum+1,lastlogintime='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',lastloginIP='" + ip + "' where registerid=" + userid.ToString(); LogInfo.WriteLog("登录信息更新" + sql); DbHelperSQL.ExecuteSql(sql); #region 登录成功 try { hx_td_usrlogininfo usrmode = new hx_td_usrlogininfo(); usrmode.logintime = DateTime.Now; usrmode.Loginusrname = mtb.username; usrmode.loginusrpass = "******"; usrmode.registerid = mtb.registerid; usrmode.loginIP = ip; usrmode.logincity = GetIpToCity.GetAddressByIp(ip); usrmode.loginsource = 0; usrmode.loginstate = 0; ef.hx_td_usrlogininfo.Add(usrmode); int ie = ef.SaveChanges(); //登录发送1580奖励(活动时间:2017.1.9-1.24) ActFacade actFacade = new ActFacade(); { actFacade.LoginSendDKQ(userid); } } catch (Exception tx) { throw (tx); } #endregion if (realMobileUser) { json = @"{""rs"" : ""y"", ""url"" : ""/""}"; return(json); } if (Session["returnpage"] != null) { json = @"{""rs"" : ""y"", ""url"" : ""/""}"; json = json.Replace("/", Session["returnpage"].ToString()); Session["returnpage"] = null; } else { json = @" {""rs"" : ""y"", ""url"" : ""/""}"; } return(json); } } else if (userid == -100) { #region 登录失败 try { hx_td_usrlogininfo usrmode = new hx_td_usrlogininfo(); usrmode.logintime = DateTime.Now; usrmode.Loginusrname = mtb.username; usrmode.loginusrpass = "******"; usrmode.registerid = mtb.registerid; usrmode.loginIP = ip; usrmode.logincity = GetIpToCity.GetAddressByIp(ip); usrmode.loginsource = 1; usrmode.loginstate = 2; ef.hx_td_usrlogininfo.Add(usrmode); int ie = ef.SaveChanges(); } catch { } #endregion json = @" {""rs"" : ""n"", ""error"" : ""禁止登录!""}"; return(json); } else { #region 登录失败 try { hx_td_usrlogininfo usrmode = new hx_td_usrlogininfo(); usrmode.logintime = DateTime.Now; usrmode.Loginusrname = mtb.username; usrmode.loginusrpass = "******"; usrmode.registerid = mtb.registerid; usrmode.loginIP = ip; usrmode.logincity = GetIpToCity.GetAddressByIp(ip); usrmode.loginsource = 0; usrmode.loginstate = 1; ef.hx_td_usrlogininfo.Add(usrmode); int ie = ef.SaveChanges(); } catch { } #endregion json = @" {""rs"" : ""n"", ""error"" : ""用户名或密码错误!""}"; return(json); } } else { json = @" {""rs"" : ""y"", ""error"" : ""验证码过期!""}"; } return(json); }
/// <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); }
/// <summary> /// 绑卡回调页 /// </summary> /// <returns></returns> public ActionResult BindCardCallback() { ReUserBindCard m = new ReUserBindCard(); m.CmdId = DNTRequest.GetString("CmdId"); m.RespCode = DNTRequest.GetString("RespCode"); m.RespDesc = HttpUtility.UrlDecode(DNTRequest.GetString("RespDesc")); m.MerCustId = DNTRequest.GetString("MerCustId"); m.OpenAcctId = DNTRequest.GetString("OpenAcctId"); m.OpenBankId = DNTRequest.GetString("OpenBankId"); m.UsrCustId = DNTRequest.GetString("UsrCustId"); m.TrxId = DNTRequest.GetString("TrxId"); m.BgRetUrl = HttpUtility.UrlDecode(DNTRequest.GetString("BgRetUrl")); m.MerPriv = HttpUtility.UrlDecode(DNTRequest.GetString("MerPriv")); m.ChkValue = DNTRequest.GetString("ChkValue"); LoggerHelper.Info("消息类型:" + m.CmdId + "<br/>" + "应答返回码:" + m.RespCode + "<br/>" + "应答描述:" + m.RespDesc + "<br/>" + "商户客户号:" + m.MerCustId + "<br/>" + "开户银行账号:" + m.OpenAcctId + "<br/>" + "开户银行代码:" + m.OpenBankId + "<br/>" + "用户客户号:" + m.UsrCustId + "<br/>" + "交易唯一标识:" + m.TrxId + "<br/>" + "后台应答地址:" + m.BgRetUrl + "<br/>" + "私域:" + m.MerPriv + "<br/>" + "签名:" + m.ChkValue); StringBuilder chkVal = new StringBuilder(); chkVal.Append(m.CmdId); chkVal.Append(m.RespCode); chkVal.Append(m.MerCustId); chkVal.Append(m.OpenAcctId); chkVal.Append(m.OpenBankId); chkVal.Append(m.UsrCustId); chkVal.Append(m.TrxId); chkVal.Append(m.BgRetUrl); chkVal.Append(m.MerPriv); string chkv = chkVal.ToString(); string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Settings.Instance.PgPubk; int ret = DllInterop.VeriSignMsg(merKeyFile, chkv, chkv.Length, m.ChkValue); LoggerHelper.Info("签名返回结果:" + ret + "<br/>" + "绑卡报文:" + JsonHelper.Entity2Json(m)); if (ret == 0) { if (m.RespCode == "000") { LoggerHelper.Info("进入处理:UsrCustId" + m.UsrCustId); M_UsrBindCard p = new M_UsrBindCard(); B_UsrBindCard o = new B_UsrBindCard(); p.registerid = 0; p.UsrCustId = m.UsrCustId; p.OpenAcctId = m.OpenAcctId; p.OpenBankId = m.OpenBankId; if (o.Exists(p.UsrCustId)) { p.defCard = 0; } else { p.defCard = 1; } LoggerHelper.Info("卡状态:" + p.defCard); o.Add(p); string sql = "update hx_member_table set isbankcard=1 where UsrCustId='" + m.UsrCustId + "'"; DbHelper.ExecuteSql(sql); var str1 = "RECV_ORD_ID_" + m.TrxId; LoggerHelper.Info("卡绑定操作签名成功" + str1); #region 天天钻渠道判断和完成步骤 B_member_table bm = new B_member_table(); M_member_table mm = bm.GetModel(m.UsrCustId); if (mm != null) { //B_hx_member_ChannelKeys bck = new B_hx_member_ChannelKeys(); //hx_member_ChannelKeys mck = bck.GetModel(mm.registerid); /////天天钻登录用户判断///第一次投资,按照投资金额反馈天天钻 该用户到达 step 值 //if (mck != null && mck.ChannelId == "2" && (mck.ChannelStep == "0" || string.IsNullOrEmpty(mck.ChannelStep))) //{ // string ret4 = Settings.Instance.GetTTzAPI(mck.ChannelRegid, mm.mobile, 1);// // string sqlTTZ = string.Format("UPDATE dbo.hx_member_ChannelKeys SET ChannelStep='1' WHERE Mregisterid={0}", mck.Mregisterid); // DbHelper.ExecuteSql(sqlTTZ); // LoggerHelper.Info("天天钻渠道绑定银行卡返回结果:" + ret4 + " 用户id:" + mck.Mregisterid + ""); //} } #endregion 天天钻渠道判断和完成步骤 } else { LoggerHelper.Info("卡绑定操作签名失败"); } } else { LoggerHelper.Info("签名失败"); } return(View(m)); }
//用户查看pdf(我的投资列表---合同 ---查看) 增加权限判断 //waitfor 将多处生成合同代码整合复用 public JsonResult MakePdf(int id) { string contractpath = ""; hx_Bid_records hbr = ef.hx_Bid_records.Where(p => p.bid_records_id == id).FirstOrDefault(); int uid = Utils.checkloginsessiontop(); if (hbr != null && hbr.investor_registerid == uid) { contractpath = hbr.contractpath; } else { return(Json(new PdfDetail { Path = "" }, JsonRequestBehavior.AllowGet)); } try { if (string.IsNullOrEmpty(contractpath) || !System.IO.File.Exists(Server.MapPath(contractpath))) { #region 生成合同 //生成用户合同 LogInfo.WriteLog("生成用户合同响应"); var sql = " SELECT targetid,loan_number, borrower_registerid,borrowing_title,annual_interest_rate,payment_options,borrowing_balance,life_of_loan,unit_day,release_date,month_payment_date,repayment_date,end_time,companyid,company_name,agent_name,agent_id_card,username,realname,iD_number,usertypes,CopName from V_borrowing_target_bonding where targetid=" + hbr.targetid; DataTable dt = DbHelperSQL.GET_DataTable_List(sql); if (dt.Rows.Count > 0) { var str = UserContactText(Convert.ToInt32(hbr.targetid)); B_member_table ub = new B_member_table(); M_member_table up = new M_member_table(); // int uid = Utils.checkloginsessiontop(); // int uid = Convert.ToInt32(hbr.investor_registerid); string OrdId = hbr.OrdId.ToString(); LogInfo.WriteLog("是否有接收到信息: OrdId=" + OrdId + " uc:" + uid); //if (uid <= 0) //{ // Response.End(); //} up = ub.GetModel(uid); string fileName = "U_" + up.registerid.ToString() + "_" + dt.Rows[0]["targetid"].ToString() + "_" + dt.Rows[0]["loan_number"].ToString() + "_" + Utils.RndNum(3); string path = "/PDF/" + fileName + ".pdf"; M_Contract_management p = new M_Contract_management(); B_Contract_management o = new B_Contract_management(); sql = "select top 1 bid_records_id,investment_amount,value_date,investment_maturity from hx_Bid_records where targetid=" + hbr.targetid.ToString() + " and investor_registerid=" + uid.ToString() + " and OrdId ='" + OrdId + "' order by bid_records_id desc"; DataTable dtbid = DbHelperSQL.GET_DataTable_List(sql); DateTime dte = DateTime.Now; p.loan_number = decimal.Parse(dt.Rows[0]["loan_number"].ToString()); p.targetid = id; p.bid_records_id = int.Parse(dtbid.Rows[0]["bid_records_id"].ToString()); p.lender_username = up.username; p.lender_name = up.realname; p.lender_registerid = uid; p.lender_id_card = up.iD_number; p.lenders_account_name = ""; p.lender_bank_account = ""; p.lender_bank = ""; p.lenders_telephone = up.mobile; p.lenders_email = up.email; p.lendres_date_contract = dte; p.borrower_registerid = int.Parse(dt.Rows[0]["borrower_registerid"].ToString()); p.borrower_name = dt.Rows[0]["realname"].ToString(); if (dt.Rows[0]["usertypes"].ToString() == "2") { p.borrower_username = dt.Rows[0]["CopName"].ToString(); } else { p.borrower_username = dt.Rows[0]["username"].ToString(); } p.borrower_id_card = dt.Rows[0]["iD_number"].ToString(); p.borrower_account_name = dt.Rows[0]["realname"].ToString(); p.borrower_bank_account = ""; p.borrower_date_contract = dte.ToString(); p.borrower_bank = ""; p.surety_company_name = dt.Rows[0]["company_name"].ToString(); p.guarantor_agent = dt.Rows[0]["agent_name"].ToString(); p.guarantor_agent_usernqme = dt.Rows[0]["agent_name"].ToString(); p.guarantor_companyid = int.Parse(dt.Rows[0]["companyid"].ToString()); p.guarantor_agent_idate_contract = dte; p.witness_date_contract = dte; p.contract_money = str; p.contract_amount = decimal.Parse(dtbid.Rows[0]["investment_amount"].ToString()); p.createtime = dte; p.mode_payment = Utils.Getpayment_options(int.Parse(dt.Rows[0]["payment_options"].ToString())); p.contract_type = 1; StringBuilder sb = new StringBuilder(str); sb = sb.Replace("#loan_number#", p.loan_number.ToString()); sb = sb.Replace("#borrower_username#", p.borrower_username); sb = sb.Replace("#borrower_name#", p.borrower_name); sb = sb.Replace("#borrower_id_card#", p.borrower_id_card); sb = sb.Replace("#lender_username#", p.lender_username); sb = sb.Replace("#lender_name#", p.lender_name); sb = sb.Replace("#lender_id_card#", p.lender_id_card); sb = sb.Replace("#surety_company_name#", p.surety_company_name); sb = sb.Replace("#guarantor_agent_usernqme#", p.guarantor_agent_usernqme); sb = sb.Replace("#contract_amount#", RMB.GetDecimal(p.contract_amount, 2, true).ToString()); sb = sb.Replace("#annual_interest_rate#", decimal.Parse(dt.Rows[0]["annual_interest_rate"].ToString()).ToString("0.00")); DateTime date1 = DateTime.Parse(dtbid.Rows[0]["value_date"].ToString()); DateTime date2 = DateTime.Parse(dtbid.Rows[0]["investment_maturity"].ToString()); sb = sb.Replace("#release_date#", date1.ToString("yyyy-MM-dd")); sb = sb.Replace("#repayment_date#", date2.ToString("yyyy-MM-dd")); sb = sb.Replace("#days#", Utils.DateDiff("Day", date1, date2).ToString()); p.contract_money = sb.ToString(); p.contractpath = path; int cid = o.Add(p); if (cid > 0) { sql = "update hx_Bid_records set contractid=" + cid + ",contractpath= '" + p.contractpath + "' where bid_records_id=" + p.bid_records_id; DbHelperSQL.ExecuteSql(sql); if (HTMLToPDF(sb.ToString(), fileName)) { return(Json(new PdfDetail { Path = p.contractpath }, JsonRequestBehavior.AllowGet)); } } } #endregion } else { return(Json(new PdfDetail { Path = contractpath }, JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { return(Json(new PdfDetail { Path = "" }, JsonRequestBehavior.AllowGet)); } return(Json(new PdfDetail { Path = contractpath }, JsonRequestBehavior.AllowGet)); }
// GET: pdf public ActionResult Index() { string str = "pdf"; string sql = ""; int id = DNTRequest.GetInt("data", 0); string action = Utils.CheckSQLHtml(DNTRequest.GetString("action")); if (action == "PDF" && id > 0) {//生成某项目借款合同范本 sql = " SELECT targetid,loan_number, borrower_registerid,borrowing_title,annual_interest_rate,payment_options,borrowing_balance,life_of_loan,unit_day,release_date,month_payment_date,repayment_date,end_time,companyid,company_name,agent_name,agent_id_card,username,realname,iD_number,legal_representative,usertypes,CopName from V_borrowing_target_bonding where targetid=" + id; DataTable dt = DbHelperSQL.GET_DataTable_List(sql); if (dt.Rows.Count > 0) { if (dt.Rows[0]["companyid"].ToString() == "6") { str = ContractText(6); } else { str = ContractText(1); } string fileName = "template" + dt.Rows[0]["targetid"].ToString() + dt.Rows[0]["loan_number"].ToString(); string path = "/PDF/" + fileName + ".pdf"; M_Contract_management p = new M_Contract_management(); B_Contract_management o = new B_Contract_management(); DateTime dte = DateTime.Parse(dt.Rows[0]["release_date"].ToString()); p.loan_number = decimal.Parse(dt.Rows[0]["loan_number"].ToString()); p.targetid = id; p.lender_username = ""; p.lender_registerid = 0; p.lender_id_card = ""; p.lenders_account_name = ""; p.lender_bank_account = ""; p.lender_bank = ""; p.lenders_telephone = ""; p.lenders_email = ""; p.lendres_date_contract = dte; p.borrower_registerid = int.Parse(dt.Rows[0]["borrower_registerid"].ToString()); p.borrower_name = dt.Rows[0]["realname"].ToString(); if (dt.Rows[0]["usertypes"].ToString() == "2") { p.borrower_username = dt.Rows[0]["CopName"].ToString(); } else { p.borrower_username = dt.Rows[0]["username"].ToString(); } p.borrower_id_card = dt.Rows[0]["iD_number"].ToString(); p.borrower_account_name = dt.Rows[0]["realname"].ToString(); p.borrower_bank_account = ""; p.borrower_date_contract = dte.ToString(); p.borrower_bank = ""; p.surety_company_name = dt.Rows[0]["company_name"].ToString(); p.guarantor_agent = dt.Rows[0]["agent_name"].ToString(); p.guarantor_companyid = int.Parse(dt.Rows[0]["companyid"].ToString()); p.guarantor_agent_idate_contract = dte; p.guarantor_agent_usernqme = dt.Rows[0]["legal_representative"].ToString(); p.witness_date_contract = dte; p.contract_money = str; p.contract_amount = decimal.Parse(dt.Rows[0]["borrowing_balance"].ToString()); p.createtime = dte; p.mode_payment = Utils.Getpayment_options(int.Parse(dt.Rows[0]["payment_options"].ToString())); p.contract_type = 0; sql = "select contract,targetid from Contract_management where contract_type=0 and targetid=" + id; DataTable dt1 = DbHelperSQL.GET_DataTable_List(sql); if (dt1.Rows.Count > 0) { p.contract = int.Parse(dt1.Rows[0]["contract"].ToString()); o.Update(p); } else { o.Add(p); } StringBuilder sb = new StringBuilder(str); sb = sb.Replace("#loan_number#", p.loan_number.ToString()); sb = sb.Replace("#borrower_username#", p.borrower_username); sb = sb.Replace("#borrower_name#", p.borrower_name); sb = sb.Replace("#borrower_id_card#", p.borrower_id_card); sb = sb.Replace("#lender_username#", p.lender_username); sb = sb.Replace("#lender_name#", p.lender_name); sb = sb.Replace("#lender_id_card#", p.lender_id_card); sb = sb.Replace("#surety_company_name#", p.surety_company_name); sb = sb.Replace("#guarantor_agent_usernqme#", p.guarantor_agent_usernqme); sb = sb.Replace("#contract_amount#", RMB.GetDecimal(p.contract_amount, 2, true).ToString()); sb = sb.Replace("#annual_interest_rate#", decimal.Parse(dt.Rows[0]["annual_interest_rate"].ToString()).ToString("0.00")); DateTime date1 = DateTime.Parse(dt.Rows[0]["release_date"].ToString()); DateTime date2 = DateTime.Parse(dt.Rows[0]["repayment_date"].ToString()); sb = sb.Replace("#release_date#", date1.ToString("yyyy-MM-dd")); sb = sb.Replace("#repayment_date#", date2.ToString("yyyy-MM-dd")); sb = sb.Replace("#days#", Utils.DateDiff("Day", date1, date2).ToString()); /* * * string expr = @"#+([a-zA-Z0-9_\u4e00-\u9fa5]*)+#"; * MatchCollection mc = Regex.Matches(sb.ToString(), expr); * * string[] array = new string[mc.Count]; * array.SetValue(p.loan_number.ToString(), 0); * array.SetValue(p.borrower_username, 1); * array.SetValue(p.borrower_name, 2); * array.SetValue(p.borrower_id_card, 3); * array.SetValue(p.lender_username, 4); * array.SetValue(p.lender_name, 5); * array.SetValue(p.lender_id_card, 6); * array.SetValue(p.surety_company_name, 7); * array.SetValue(p.guarantor_agent_usernqme, 8); * array.SetValue("", 9); * array.SetValue(dt.Rows[0]["annual_interest_rate"].ToString(), 10); * DateTime date1 = DateTime.Parse(dt.Rows[0]["release_date"].ToString()); * DateTime date2 = DateTime.Parse(dt.Rows[0]["repayment_date"].ToString()); * array.SetValue(date1.ToString("yyyy-MM-dd"), 11); * array.SetValue(date2.ToString("yyyy-MM-dd"), 12); * array.SetValue(Utils.DateDiff("Day",date1,date2).ToString(), 13); * * array.SetValue(p.borrower_name, 14); * array.SetValue(p.borrower_id_card, 15); * array.SetValue("", 16); * array.SetValue("", 17); * array.SetValue(p.surety_company_name, 18); * array.SetValue(p.guarantor_agent_usernqme, 19); * * for (int i = 0; i < mc.Count; i++) * { * sb = sb.Replace(mc[i].ToString(), array[i].ToString()); * } */ if (HTMLToPDF(sb.ToString(), fileName)) { json = @" {""rs"" : ""y"", ""datainfo"" : ""add""}"; json = json.Replace("add", path); Response.Write(json); Response.End(); } else { json = @" {""rs"" : ""n"", ""datainfo"" : ""PDF合同生成失败""}"; Response.Write(json); Response.End(); } } return(Content(str)); //return View(); } else if (action == "UserPDF" && id > 0) { //生成用户合同 sql = " SELECT targetid,loan_number, borrower_registerid,borrowing_title,annual_interest_rate,payment_options,borrowing_balance,life_of_loan,unit_day,release_date,month_payment_date,repayment_date,end_time,companyid,company_name,agent_name,agent_id_card,username,realname,iD_number,usertypes,CopName from V_borrowing_target_bonding where targetid=" + id; DataTable dt = DbHelperSQL.GET_DataTable_List(sql); if (dt.Rows.Count > 0) { str = UserContactText(id); B_member_table ub = new B_member_table(); M_member_table up = new M_member_table(); int uid = Utils.checkloginsessiontop(); //int uid = 9; if (uid <= 0) { Response.Redirect("/login.html"); Response.End(); } up = ub.GetModel(uid); string fileName = "U_" + up.registerid.ToString() + "_" + dt.Rows[0]["targetid"].ToString() + "_" + dt.Rows[0]["loan_number"].ToString() + "_" + Utils.RndNum(3); string path = "/PDF/" + fileName + ".pdf"; M_Contract_management p = new M_Contract_management(); B_Contract_management o = new B_Contract_management(); sql = "select top 1 bid_records_id,investment_amount,value_date,investment_maturity from hx_Bid_records where targetid=" + id.ToString() + " and investor_registerid=" + uid.ToString() + " order by bid_records_id desc"; DataTable dtbid = DbHelperSQL.GET_DataTable_List(sql); DateTime dte = DateTime.Now; p.loan_number = decimal.Parse(dt.Rows[0]["loan_number"].ToString()); p.targetid = id; p.bid_records_id = int.Parse(dtbid.Rows[0]["bid_records_id"].ToString()); p.lender_username = up.username; p.lender_name = up.realname; p.lender_registerid = uid; p.lender_id_card = up.iD_number; p.lenders_account_name = ""; p.lender_bank_account = ""; p.lender_bank = ""; p.lenders_telephone = up.mobile; p.lenders_email = up.email; p.lendres_date_contract = dte; p.borrower_registerid = int.Parse(dt.Rows[0]["borrower_registerid"].ToString()); p.borrower_name = dt.Rows[0]["realname"].ToString(); if (dt.Rows[0]["usertypes"].ToString() == "2") { p.borrower_username = dt.Rows[0]["CopName"].ToString(); } else { p.borrower_username = dt.Rows[0]["username"].ToString(); } p.borrower_id_card = dt.Rows[0]["iD_number"].ToString(); p.borrower_account_name = dt.Rows[0]["realname"].ToString(); p.borrower_bank_account = ""; p.borrower_date_contract = dte.ToString(); p.borrower_bank = ""; p.surety_company_name = dt.Rows[0]["company_name"].ToString(); p.guarantor_agent = dt.Rows[0]["agent_name"].ToString(); p.guarantor_agent_usernqme = dt.Rows[0]["agent_name"].ToString(); p.guarantor_companyid = int.Parse(dt.Rows[0]["companyid"].ToString()); p.guarantor_agent_idate_contract = dte; p.witness_date_contract = dte; p.contract_money = str; p.contract_amount = decimal.Parse(dtbid.Rows[0]["investment_amount"].ToString()); p.createtime = dte; p.mode_payment = Utils.Getpayment_options(int.Parse(dt.Rows[0]["payment_options"].ToString())); p.contract_type = 1; StringBuilder sb = new StringBuilder(str); sb = sb.Replace("#loan_number#", p.loan_number.ToString()); sb = sb.Replace("#borrower_username#", p.borrower_username); sb = sb.Replace("#borrower_name#", p.borrower_name); sb = sb.Replace("#borrower_id_card#", p.borrower_id_card); sb = sb.Replace("#lender_username#", p.lender_username); sb = sb.Replace("#lender_name#", p.lender_name); sb = sb.Replace("#lender_id_card#", p.lender_id_card); sb = sb.Replace("#surety_company_name#", p.surety_company_name); sb = sb.Replace("#guarantor_agent_usernqme#", p.guarantor_agent_usernqme); sb = sb.Replace("#contract_amount#", RMB.GetDecimal(p.contract_amount, 2, true).ToString()); sb = sb.Replace("#annual_interest_rate#", decimal.Parse(dt.Rows[0]["annual_interest_rate"].ToString()).ToString("0.00")); DateTime date1 = DateTime.Parse(dtbid.Rows[0]["value_date"].ToString()); DateTime date2 = DateTime.Parse(dtbid.Rows[0]["investment_maturity"].ToString()); sb = sb.Replace("#release_date#", date1.ToString("yyyy-MM-dd")); sb = sb.Replace("#repayment_date#", date2.ToString("yyyy-MM-dd")); sb = sb.Replace("#days#", Utils.DateDiff("Day", date1, date2).ToString()); p.contract_money = sb.ToString(); p.contractpath = path; int cid = o.Add(p); if (cid > 0) { sql = "update hx_Bid_records set contractid=" + cid + ",contractpath= '" + p.contractpath + "' where bid_records_id=" + p.bid_records_id; DbHelperSQL.ExecuteSql(sql); if (HTMLToPDF(sb.ToString(), fileName)) { json = @" {""rs"" : ""y"", ""datainfo"" : ""/usercenter/myinvest.html""}"; Response.Write(json); Response.End(); } else { json = @" {""rs"" : ""n"", ""datainfo"" : ""PDF合同生成失败""}"; Response.Write(json); Response.End(); } } } } else if (action == "MUserPDF" && id > 0) { //生成用户合同 LogInfo.WriteLog("生成用户合同响应"); sql = " SELECT targetid,loan_number, borrower_registerid,borrowing_title,annual_interest_rate,payment_options,borrowing_balance,life_of_loan,unit_day,release_date,month_payment_date,repayment_date,end_time,companyid,company_name,agent_name,agent_id_card,username,realname,iD_number,usertypes,CopName from V_borrowing_target_bonding where targetid=" + id; DataTable dt = DbHelperSQL.GET_DataTable_List(sql); if (dt.Rows.Count > 0) { str = UserContactText(id); B_member_table ub = new B_member_table(); M_member_table up = new M_member_table(); // int uid = Utils.checkloginsessiontop(); int uid = DNTRequest.GetInt("uc", 0); string OrdId = DNTRequest.GetString("OrdId"); LogInfo.WriteLog("是否有接收到信息: OrdId=" + OrdId + " uc:" + uid); //int uid = 9; if (uid <= 0) { Response.End(); } up = ub.GetModel(uid); string fileName = "U_" + up.registerid.ToString() + "_" + dt.Rows[0]["targetid"].ToString() + "_" + dt.Rows[0]["loan_number"].ToString() + "_" + Utils.RndNum(3); string path = "/PDF/" + fileName + ".pdf"; M_Contract_management p = new M_Contract_management(); B_Contract_management o = new B_Contract_management(); sql = "select top 1 bid_records_id,investment_amount,value_date,investment_maturity from hx_Bid_records where targetid=" + id.ToString() + " and investor_registerid=" + uid.ToString() + " and OrdId ='" + OrdId + "' order by bid_records_id desc"; DataTable dtbid = DbHelperSQL.GET_DataTable_List(sql); DateTime dte = DateTime.Now; p.loan_number = decimal.Parse(dt.Rows[0]["loan_number"].ToString()); p.targetid = id; p.bid_records_id = int.Parse(dtbid.Rows[0]["bid_records_id"].ToString()); p.lender_username = up.username; p.lender_name = up.realname; p.lender_registerid = uid; p.lender_id_card = up.iD_number; p.lenders_account_name = ""; p.lender_bank_account = ""; p.lender_bank = ""; p.lenders_telephone = up.mobile; p.lenders_email = up.email; p.lendres_date_contract = dte; p.borrower_registerid = int.Parse(dt.Rows[0]["borrower_registerid"].ToString()); p.borrower_name = dt.Rows[0]["realname"].ToString(); if (dt.Rows[0]["usertypes"].ToString() == "2") { p.borrower_username = dt.Rows[0]["CopName"].ToString(); } else { p.borrower_username = dt.Rows[0]["username"].ToString(); } p.borrower_id_card = dt.Rows[0]["iD_number"].ToString(); p.borrower_account_name = dt.Rows[0]["realname"].ToString(); p.borrower_bank_account = ""; p.borrower_date_contract = dte.ToString(); p.borrower_bank = ""; p.surety_company_name = dt.Rows[0]["company_name"].ToString(); p.guarantor_agent = dt.Rows[0]["agent_name"].ToString(); p.guarantor_agent_usernqme = dt.Rows[0]["agent_name"].ToString(); p.guarantor_companyid = int.Parse(dt.Rows[0]["companyid"].ToString()); p.guarantor_agent_idate_contract = dte; p.witness_date_contract = dte; p.contract_money = str; p.contract_amount = decimal.Parse(dtbid.Rows[0]["investment_amount"].ToString()); p.createtime = dte; p.mode_payment = Utils.Getpayment_options(int.Parse(dt.Rows[0]["payment_options"].ToString())); p.contract_type = 1; StringBuilder sb = new StringBuilder(str); sb = sb.Replace("#loan_number#", p.loan_number.ToString()); sb = sb.Replace("#borrower_username#", p.borrower_username); sb = sb.Replace("#borrower_name#", p.borrower_name); sb = sb.Replace("#borrower_id_card#", p.borrower_id_card); sb = sb.Replace("#lender_username#", p.lender_username); sb = sb.Replace("#lender_name#", p.lender_name); sb = sb.Replace("#lender_id_card#", p.lender_id_card); sb = sb.Replace("#surety_company_name#", p.surety_company_name); sb = sb.Replace("#guarantor_agent_usernqme#", p.guarantor_agent_usernqme); sb = sb.Replace("#contract_amount#", RMB.GetDecimal(p.contract_amount, 2, true).ToString()); sb = sb.Replace("#annual_interest_rate#", decimal.Parse(dt.Rows[0]["annual_interest_rate"].ToString()).ToString("0.00")); DateTime date1 = DateTime.Parse(dtbid.Rows[0]["value_date"].ToString()); DateTime date2 = DateTime.Parse(dtbid.Rows[0]["investment_maturity"].ToString()); sb = sb.Replace("#release_date#", date1.ToString("yyyy-MM-dd")); sb = sb.Replace("#repayment_date#", date2.ToString("yyyy-MM-dd")); sb = sb.Replace("#days#", Utils.DateDiff("Day", date1, date2).ToString()); p.contract_money = sb.ToString(); p.contractpath = path; int cid = o.Add(p); if (cid > 0) { sql = "update hx_Bid_records set contractid=" + cid + ",contractpath= '" + p.contractpath + "' where bid_records_id=" + p.bid_records_id; DbHelperSQL.ExecuteSql(sql); if (HTMLToPDF(sb.ToString(), fileName)) { json = @" {""rs"" : ""y"", ""datainfo"" : ""/usercenter/myinvest.html""}"; Response.Write(json); Response.End(); } else { json = @" {""rs"" : ""n"", ""datainfo"" : ""PDF合同生成失败""}"; Response.Write(json); Response.End(); } } } } return(Content(str));//权限? //return View(); }
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="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 string LoginIN(string username, string userpassword, string Validatecode, int remember, bool realMobileUser = false) { string ip = Utils.GetRealIP(); string json = ""; B_member_table o = new B_member_table(); string strIdentify = "LoginValidateCode"; //随机字串存储键值,以便存储到Session中 var ts = true; if (Settings.Instance.SiteDomain.IndexOf(PublicURL.NewPCUrl) >= 0) { ts = false; } if (realMobileUser || Session[strIdentify] != null) { if (realMobileUser && ts == false) { if (Session[strIdentify].ToString() != Validatecode) { json = @" {""rs"" : ""n"", ""error"" : ""验证码不对!""}"; return(json); } } if (realMobileUser || Session[strIdentify].ToString() == Validatecode) { int userid = o.CheckLogin(username, userpassword); if (userid > 0) { M_login mlogin = new M_login(); mlogin.userid = userid; mlogin.username = username; mlogin.codeno = Utils.SetSessioncode(); Utils.AddLoginCache(username, mlogin); string sql = "update hx_member_table set lastlogintime='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',lastloginIP='" + Utils.GetRealIP() + "' where registerid=" + userid.ToString(); LogInfo.WriteLog("登录信息更新" + sql); DbHelperSQL.ExecuteSql(sql); #region 登录成功 try { hx_td_usrlogininfo usrmode = new hx_td_usrlogininfo(); usrmode.logintime = DateTime.Now; usrmode.Loginusrname = username; usrmode.loginusrpass = "******"; usrmode.registerid = userid; usrmode.loginIP = ip; usrmode.logincity = GetIpToCity.GetAddressByIp(ip); usrmode.loginsource = 1; usrmode.loginstate = 0; ef.hx_td_usrlogininfo.Add(usrmode); int ie = ef.SaveChanges(); //登录发送1580奖励(活动时间:2017.1.9-1.24) using (ChuanglitouP2P.BLL.EF.ActFacade actFacade = new ChuanglitouP2P.BLL.EF.ActFacade()) { actFacade.LoginSendDKQ(userid); } } catch (Exception tx) { throw (tx); } #endregion var jmpUrl = DNTRequest.GetString("jmpUrl"); if (!string.IsNullOrEmpty(jmpUrl)) { return(Newtonsoft.Json.JsonConvert.SerializeObject(new { rs = "y", url = jmpUrl })); } return(Newtonsoft.Json.JsonConvert.SerializeObject(new { rs = "y", url = "/" })); } else if (userid == -100) { #region 登录失败 try { hx_td_usrlogininfo usrmode = new hx_td_usrlogininfo(); usrmode.logintime = DateTime.Now; usrmode.Loginusrname = username; usrmode.loginusrpass = "******"; usrmode.registerid = userid; usrmode.loginIP = ip; usrmode.logincity = GetIpToCity.GetAddressByIp(ip); usrmode.loginsource = 1; usrmode.loginstate = 2; ef.hx_td_usrlogininfo.Add(usrmode); int ie = ef.SaveChanges(); } catch { } #endregion return(Newtonsoft.Json.JsonConvert.SerializeObject(new { rs = "n", error = "禁止登录!" })); } else { #region 登录失败 try { hx_td_usrlogininfo usrmode = new hx_td_usrlogininfo(); usrmode.logintime = DateTime.Now; usrmode.Loginusrname = username; usrmode.loginusrpass = "******"; usrmode.registerid = userid; usrmode.loginIP = ip; usrmode.logincity = GetIpToCity.GetAddressByIp(ip); usrmode.loginsource = 1; usrmode.loginstate = 1; ef.hx_td_usrlogininfo.Add(usrmode); int ie = ef.SaveChanges(); } catch { } #endregion return(Newtonsoft.Json.JsonConvert.SerializeObject(new { rs = "n", error = "用户名或密码错误!" })); } } return(Newtonsoft.Json.JsonConvert.SerializeObject(new { rs = "n", error = "验证码不对!" })); } return(Newtonsoft.Json.JsonConvert.SerializeObject(new { rs = "n", error = "验证码过期!" })); }
/// <summary> /// 邀请注册奖励活动 /// </summary> /// <param name="registerid">注册用户id</param> /// <param name="ActUser">面向用户 0不限 1首次投资用户 2非首投用户 3每标首投用户 4每标最大投资用户 5所有投资用户</param> protected internal void SendBonusForInviteAfterRegister(int registerid, string targetPlatform, int ActUser = 0) { #region MyRegion //邀请奖励处理逻辑,暂无邀请奖励 bool flag = true; if (flag) { if (registerid < 0) { return; } DateTime dte = DateTime.Now; string codesql = "SELECT invcode,Invpeopleid,invpersonid,invtime from hx_td_Userinvitation where invpersonid=" + registerid.ToString();//查询本人是否已经被邀请注册过 invcode='" + invcode + "' and LogInfo.WriteLog("codesql2:" + codesql); DataTable dtcode = DbHelperSQL.GET_DataTable_List(codesql); //邀请奖励处理逻辑 if (dtcode.Rows.Count > 0) { B_member_table oy = new B_member_table(); M_member_table py = new M_member_table(); //获取邀请用户id int invpeopleid = int.Parse(dtcode.Rows[0]["Invpeopleid"].ToString()); py = oy.GetModel(invpeopleid); if (py.useridentity != 4 && py.iD_number != "")//渠道用户不执行 { DateTime nowdate = DateTime.Now; DateTime startdate = new DateTime(2017, 1, 6, 0, 00, 00); DateTime enddate = new DateTime(2017, 3, 31, 23, 59, 59); DateTime invtime = Convert.ToDateTime(dtcode.Rows[0]["invtime"].ToString()); //邀请时间 #region 生成奖励,记录流水 //??待优化到奖励内部记录 if ((nowdate > startdate && nowdate < enddate) && (invtime > startdate && invtime < enddate)) { List <hx_UserAct> hut = InviteActBonus(py.registerid, targetPlatform, registerid, -1M, 0, 4, 1, 0, 5); string strlog = "用户:" + py.registerid + ",邀请奖励返回实体:" + hut.Count; if (hut.Count > 0) { foreach (hx_UserAct ua in hut) { if (ua.Amt != null && ua.Amt > 0) { string sql = "update hx_td_Userinvitation set Invitereward=" + ua.Amt + ",UserAct= " + ua.UserAct + " where invpersonid=" + int.Parse(dtcode.Rows[0]["invpersonid"].ToString()); strlog += ";更新邀请表:" + sql; DbHelperSQL.ExecuteSql(sql); #region MyRegion 记录奖励流水表 string awardDescription = string.Format("邀请好友注册成功,获得{0}{1}", Convert.ToDouble(ua.Amt.ToString()), GetBunusDescription(ua.RewTypeID)); AddBonusAccoutWater(ua.UserAct, py.registerid, decimal.Parse(ua.Amt.ToString()), awardDescription, registerid); #endregion strlog += ";" + awardDescription; #region MyRegion 发送系统消息 string MContext = string.Format("尊敬的用户:您邀请好友注册成功,获得{0}{1}如有问题可咨询创利投的客服!", ua.Amt.ToString(), GetBunusDescription(ua.RewTypeID)); AddSytemMessage(py.registerid, "邀请好友注册奖励", MContext); #endregion strlog += ";ua.RewTypeID:" + ua.RewTypeID; if (ua.RewTypeID == 1) { #region 资金流水信息 B_usercenter o = new B_usercenter(); decimal di = o.GetUsridAvailable_balance(py.registerid); //di = di + decimal.Parse(ua.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("" + py.registerid + "," + decimal.Parse(ua.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 + "')"); strlog += ";邀请好友注册奖励流水语句:" + strSql.ToString(); DbHelperSQL.RunSql(strSql.ToString()); strSql.Clear(); #endregion } } } } LogInfo.WriteLog(strlog); } #endregion #region 11月活动,每邀请5位好友实名注册,奖励邀请人2%加息券一张 if ((nowdate > startdate && nowdate < enddate) && (invtime > startdate && invtime < enddate)) { string log = "11月活动用户" + invpeopleid + "每邀请5位好友,当前好友(" + registerid + ")实名注册奖励邀请人2%加息券一张: "; //查询活动期间内邀请人累计邀请实名注册人数 string strSQL = string.Format("select COUNT(mt.registerid) recount from hx_td_Userinvitation ut inner join hx_member_table mt on ut.invpersonid=mt.registerid where mt.iD_number <> '' and mt.useridentity <> 4 and mt.registration_time >= '{0}' and mt.registration_time <= '{1}' and ut.Invpeopleid={2}", startdate.ToString("yyyy-MM-dd HH:mm:ss"), enddate.ToString("yyyy-MM-dd HH:mm:ss"), invpeopleid); log += "查询活动期间邀请实名人数sql:" + strSQL; DataTable dtcount = DbHelperSQL.GET_DataTable_List(strSQL); if (dtcount.Rows.Count > 0) { int recount = int.Parse(dtcount.Rows[0]["recount"].ToString()); log += "<br>累计实名人数:" + recount; if (recount > 0) { if (recount % 5 == 0) { log += "<br>实名人数" + dtcount.Rows.Count + "人,执行奖励操作"; List <hx_UserAct> t = new List <hx_UserAct>(); hx_ActivityTable hat = new hx_ActivityTable(); hat = GetActTableInfo(4, targetPlatform, ActUser, 1, 1); //赋值11月活动RewTypeID为1 ,主要获取活动起止时间,真正发放奖励hua.RewTypeID是3 加息券 if (hat != null && hat.ActID > 0) { hx_UserAct hua = new hx_UserAct(); hua.ActTypeId = hat.ActTypeId; //活动类型id 1新人活动/2短期活动/3常规活动/4邀请活动/5系统赠送 hua.registerid = invpeopleid; //邀请人ID hua.RewTypeID = 3; //奖励类型id 1现金/2抵扣券/3加息券 hua.ActID = hat.ActID; hua.Amt = 2; //2%加息券 hua.Uselower = 100; hua.Usehight = 0; hua.AmtEndtime = DateTime.Now.Date.AddDays(31).AddSeconds(-1); // DateTime.Parse(hat.ActEndtime.ToString()); hua.AmtUses = 1; //使用要求 1单独使用,2组合使用 hua.UseState = 0; //使用状态 0 未使用 1 已使用 2已过期 3 锁定中 hua.AmtProid = 0; //未使用默认为0 hua.ISSmsOne = 0; hua.IsSmsThree = 0; hua.isSmsFifteen = 0; hua.IsSmsSeven = 0; hua.isSmsSixteen = 0; hua.Createtime = DateTime.Now; hua.Title = "11月活动每邀请5位好友送2%加息券"; hua.UseLifeLoan = "3-0"; ef.hx_UserAct.Add(hua); int i = ef.SaveChanges(); if (i > 0) { log += "<br>2%加息券奖励发放成功"; if (hua.Amt != null && hua.Amt > 0) { #region MyRegion 发送系统消息 string MContext = string.Format("尊敬的用户:您邀请{0}好友实名注册成功,获得{1}{2}如有问题可咨询创利投的客服!", recount, hua.Amt.ToString(), GetBunusDescription(hua.RewTypeID)); AddSytemMessage(registerid, "邀请好友注册奖励", MContext); #endregion } } } } } } LogInfo.WriteLog(log); } #endregion #region 11月活动,被邀请人实名注册,奖励2%加息券一张 if ((nowdate > startdate && nowdate < enddate) && (invtime > startdate && invtime < enddate)) { string log = "11月活动,被邀请人(" + registerid + ")实名注册奖励2%加息券一张: "; List <hx_UserAct> t = new List <hx_UserAct>(); hx_ActivityTable hat = new hx_ActivityTable(); hat = GetActTableInfo(4, targetPlatform, ActUser, 1, 1); //赋值11月活动RewTypeID为1 ,主要获取活动起止时间,真正发放奖励hua.RewTypeID是3 加息券 if (hat != null && hat.ActID > 0) { hx_UserAct hua = new hx_UserAct(); hua.ActTypeId = hat.ActTypeId; //活动类型id 1新人活动/2短期活动/3常规活动/4邀请活动/5系统赠送 hua.registerid = registerid; //注册人ID hua.RewTypeID = 3; //奖励类型id 1现金/2抵扣券/3加息券 hua.ActID = hat.ActID; hua.Amt = 2; //2%加息券 hua.Uselower = 100; hua.Usehight = 0; hua.AmtEndtime = DateTime.Now.Date.AddDays(31).AddSeconds(-1); // DateTime.Parse(hat.ActEndtime.ToString()); hua.AmtUses = 1; //使用要求 1单独使用,2组合使用 hua.UseState = 0; //使用状态 0 未使用 1 已使用 2已过期 3 锁定中 hua.AmtProid = 0; //未使用默认为0 hua.ISSmsOne = 0; hua.IsSmsThree = 0; hua.isSmsFifteen = 0; hua.IsSmsSeven = 0; hua.isSmsSixteen = 0; hua.Createtime = DateTime.Now; hua.Title = "11月活动实名注册送2%加息券"; hua.UseLifeLoan = "3-0"; //待添加加息券使用标的 ef.hx_UserAct.Add(hua); int i = ef.SaveChanges(); if (i > 0) { log += "<br>2%加息券奖励发放成功"; if (hua.Amt != null && hua.Amt > 0) { #region MyRegion 发送系统消息 string MContext = string.Format("尊敬的用户:您实名注册成功,获得{0}{1}如有问题可咨询创利投的客服!", hua.Amt.ToString(), GetBunusDescription(hua.RewTypeID)); AddSytemMessage(registerid, "邀请好友注册奖励", MContext); #endregion } } } LogInfo.WriteLog(log); } #endregion } } } #endregion }
//汇付模拟发起的请求,没有携带用户的cookie,造成邀请丢失,邀请关系逻辑迁移至注册成功 /// <summary> /// 注册成功汇付返回通知 /// </summary> /// <returns></returns> public ActionResult Succ_Registered() { int it = -10000; string username = ""; string useremail = ""; ReUserRegister m = new ReUserRegister(); m.CmdId = DNTRequest.GetString("CmdId"); m.RespCode = DNTRequest.GetString("RespCode"); m.RespDesc = DNTRequest.GetString("RespDesc"); m.MerCustId = DNTRequest.GetString("MerCustId"); m.UsrId = DNTRequest.GetString("UsrId"); m.UsrCustId = DNTRequest.GetString("UsrCustId"); m.BgRetUrl = DNTRequest.GetString("BgRetUrl"); m.TrxId = DNTRequest.GetString("TrxId"); m.RetUrl = DNTRequest.GetString("RetUrl"); m.MerPriv = DNTRequest.GetString("MerPriv"); m.IdType = DNTRequest.GetString("IdType"); m.IdNo = DNTRequest.GetString("IdNo"); m.UsrMp = DNTRequest.GetString("UsrMp"); useremail = DNTRequest.GetString("UsrEmail"); m.UsrEmail = useremail; username = HttpUtility.UrlDecode(DNTRequest.GetString("UsrName")); m.UsrName = username; m.ChkValue = DNTRequest.GetString("ChkValue"); string log = "注册开户返回报文:" + FastJSON.toJOSN(m); StringBuilder chkVal = new StringBuilder(); chkVal.Append(m.CmdId); chkVal.Append(m.RespCode); chkVal.Append(m.MerCustId); chkVal.Append(m.UsrId); chkVal.Append(m.UsrCustId); chkVal.Append(m.BgRetUrl); chkVal.Append(m.TrxId); chkVal.Append(m.RetUrl); chkVal.Append(m.MerPriv); string chkv = chkVal.ToString(); //私钥文件的位置(这里是放在了站点的根目录下) string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk(); int ret = DllInterop.VeriSignMsg(merKeyFile, chkv, chkv.Length, m.ChkValue); log += ";ret:" + ret; if (ret == 0) { B_member_table ob = new B_member_table(); M_member_table pm = new M_member_table(); if (m.RespCode == "000") { //为避免重复调用,增加缓存校验 string cachename = "UserRegister" + m.TrxId; if (Utils.GeTThirdCache(cachename) == 0) { Utils.SetThirdCache(cachename); M_bonus_account_water mbaw = new M_bonus_account_water(); B_bonus_account_water bbaw = new B_bonus_account_water(); B_usercenter b = new B_usercenter(); it = b.Succ_Reg(m); log += ";汇付开户成功后进行用户数据更新返回:" + it; if (it > 0) { pm = ob.GetModel(Utils.GetUserSplit(m.UsrId)); ViewBag.registerid = pm.registerid; //新人注册奖励 ActFacade act = new ActFacade(); log += ";注册ID:" + pm.registerid; act.SendBonusAfterRegister(pm.registerid, EnumCommon.E_hx_ActivityTable.E_ActTargetPlatform.web); } else { /*第三方成功,本地服务器操作失败*/ } } } } else { log += "验签不成功"; /*验签不成功*/ } LogInfo.WriteLog(log); return(View(m)); }
/// <summary> /// 邀请好友 现金奖励 /// </summary> /// <param name="Registerid">邀请人用户id</param> /// <param name="biyaoUsrid">被邀请用户id</param> /// <param name="InvestAmt">投资金额</param> /// <param name="ActTypeId">活动类型</param> /// <param name="RewTypeID">奖励类型</param> /// <param name="require">活动规则条件</param> /// <param name="totalAmt">已获得奖励金额</param> /// <param name="ActUser">面向用户对象</param> /// <param name="LifeOfLoan">借款期限</param> /// <returns></returns> private List <hx_UserAct> InviteActCash(int Registerid, string targetPlatform, int biyaoUsrid, decimal InvestAmt, int ActTypeId, int RewTypeID, int require = 1, decimal totalAmt = 0M, int ActUser = 0, int LifeOfLoan = 0, string YaoQingType = "") { //RewTypeID=1 List <hx_UserAct> t = new List <hx_UserAct>(); hx_ActivityTable hat = new hx_ActivityTable(); hat = GetActTableInfo(ActTypeId, targetPlatform, ActUser, 1, RewTypeID); if (hat != null) { #region 邀请好友现金奖励 string ActRule = hat.ActRule; List <MAmtList> mlist = new List <MAmtList>(); JavaScriptSerializer js = new JavaScriptSerializer(); MActCash mc = new MActCash(); mc = js.Deserialize <MActCash>(ActRule); decimal actamt = 0M; totalAmt = B_usercenter.GetTopAmtCount(hat.ActID); //检查奖历邀请总佣金 if (mc.TopAmt > totalAmt) { if (mc.require == 1 && InvestAmt == -1M) //受邀好友注册成功发放红包---//首次成功投资 { actamt = mc.Cash; //发放红包 //hx_UserAct hua = new hx_UserAct(); //hua.RewTypeID = 2; //t.Add(hua); hx_UserAct hua = new hx_UserAct(); hua.ActTypeId = hat.ActTypeId; hua.registerid = Registerid; hua.RewTypeID = 2; //hat.RewTypeID; hua.ActID = hat.ActID; hua.Amt = actamt; //item.cashAmt; hua.Uselower = 500; //item.startAmt; hua.Usehight = 0; //item.endAmt; hua.AmtEndtime = hua.AmtEndtime = DateTime.Now.Date.AddDays(31).AddSeconds(-1); // hat.ActEndtime;//item.endTime; hua.AmtUses = 2; //mcp.Uses; //没指定情况下默认为单独使用 hua.UseState = 0; //现金未转账 hua.AmtProid = 0; //未使用默认为0 hua.ISSmsOne = 0; hua.IsSmsThree = 0; hua.isSmsFifteen = 0; hua.IsSmsSeven = 0; hua.isSmsSixteen = 0; hua.Createtime = DateTime.Now; hua.Title = hat.ActName; hua.UseLifeLoan = "0-0";//string.IsNullOrWhiteSpace(item.UseLifeLoan) ? "" : item.UseLifeLoan; ef.hx_UserAct.Add(hua); int i = ef.SaveChanges(); t.Add(hua); } else if (mc.require1 == 1 && InvestAmt > 0) //续投按一定金额赠送 { actamt = GetYaoActAMT(mc, InvestAmt, LifeOfLoan); //奖励邀请人与被邀请人返现金额(邀请人与被邀请人返现规则一直) #region 奖励 if (actamt > 0 && actamt <= mc.TopAmt1)//大于 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.UseState = 5; //现金未转账 hua.AmtEndtime = DateTime.Parse(hat.ActEndtime.ToString()); hua.OrderID = decimal.Parse(Utils.Createcode()); hua.AmtUses = 1; //没指定情况下默认为单独使用 hua.AmtProid = 0; //未使用默认为0 hua.ISSmsOne = 0; hua.IsSmsThree = 0; hua.isSmsFifteen = 0; hua.IsSmsSeven = 0; hua.isSmsSixteen = 0; hua.Createtime = DateTime.Now; hua.Title = YaoQingType;// "邀请好友返现"; 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) { if (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, 0); if (ic > 0) { //处理 资金流水信息 奖励流水 系统消息 t.Add(hua); //???? } } #endregion } } } } } #endregion } } #endregion } return(t); }
/// <summary> /// 分页列表 /// </summary> /// <param name="pageIndex"></param> /// <param name="startdatetime"></param> /// <param name="enddatetime"></param> /// <param name="timeday"></param> /// <param name="pgaesize"></param> /// <returns></returns> // GET: Cash public ActionResult Index(int?pageIndex, string startdatetime, string enddatetime, int timeday = 0, int pgaesize = 5) { ViewBag.rndstr = Utils.RndNumChar(10).ToString(); int OrdIdState = DNTRequest.GetInt("OrdIdState", 0); ViewBag.OrdIdState = OrdIdState; int userid = Utils.checkloginsession(); int Counts = 0; int lostCount = 0; int succCount = 0; decimal Totals = 0.00M; decimal lostTotal = 0.00M; decimal succTotal = 0.00M; B_member_table b = new B_member_table(); M_member_table pu = new M_member_table(); pu = b.GetModel(userid); //判断用户是否开户 if (string.IsNullOrEmpty(pu.UsrCustId)) { string temstr = "/opening_account/Index/" + userid.ToString(); return(Redirect(temstr)); } new BindCardController().checkbank(pu.UsrCustId); if (userid > 0) { if (Session["retloan1"] != null) { } else { UserInfoData ud = new UserInfoData(); ReQueryBalanceBg retloan = ud.Querybalance(userid); if (retloan.RespCode == "000") { // string sql = "update hx_member_table set available_balance=" + decimal.Parse(retloan.AvlBal) + " ,frozen_sum=" + decimal.Parse(retloan.FrzBal) + " where registerid=" + userid.ToString() + ""; //string 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()); Session["retloan1"] = "updateUserbalance"; } } } List <V_UsrBindCardBank> vubc = ef.V_UsrBindCardBank.Where(c => c.registerid == userid && c.OpenBankId != null).ToList(); //判断用户是否绑定一行卡 //if (vubc.Count <= 0) //{ // string temstr = "/BindCard/Index"; // return Redirect(temstr); //} var ListByOwner = ef.hx_td_UserCash.Where(l => l.registerid == userid && l.OpenBankId != null).GroupBy(l => l.registerid) .Select(lg => new { Owner = lg.Key, Counts = lg.Count(), lostCount = lg.Where(lo => lo.OrdIdState == 0).Count(), succCount = lg.Where(su => su.OrdIdState == 3).Count(), Totals = lg.Where(w => w.OrdIdState == 3).Sum(w => w.TransAmt), lostTotal = lg.Where(w => w.OrdIdState == 0).Sum(w => w.TransAmt), succTotal = lg.Where(w => w.OrdIdState == 3).Sum(w => w.TransAmt), }); foreach (var itc in ListByOwner) { if (itc.Counts > 0) { //Counts = itc.Counts; // Totals = (decimal)itc.Totals; int.TryParse(itc.Counts.ToString(), out Counts); decimal.TryParse(itc.Totals.ToString(), out Totals); int.TryParse(itc.lostCount.ToString(), out lostCount); int.TryParse(itc.succCount.ToString(), out succCount); decimal.TryParse(itc.lostTotal.ToString(), out lostTotal); decimal.TryParse(itc.succTotal.ToString(), out succTotal); } } Expression <Func <hx_td_UserCash, bool> > where = PredicateExtensionses.True <hx_td_UserCash>(); where = where.And(p => p.UserCashId > 0); where = where.And(p => p.registerid == userid); where = where.And(p => p.OpenBankId != null); if (ViewBag.OrdIdState == 3) { where = where.And(p => p.OrdIdState == OrdIdState); } DateTime sdatetime = new DateTime(); DateTime edatetime = new DateTime(); if (Utils.IsDate(startdatetime)) { sdatetime = DateTime.Parse(startdatetime); } if (Utils.IsDate(enddatetime)) { edatetime = DateTime.Parse(enddatetime); } if (sdatetime > DateTime.Parse("0001-01-01 00:00:00") && edatetime > DateTime.Parse("0001-01-01 00:00:00")) { where = where.And(p => ((DateTime)p.OrdIdTime).CompareTo(sdatetime) >= 0); DateTime dt2 = Convert.ToDateTime(edatetime.ToString("yyyy-MM-dd") + " 23:59:59"); where = where.And(p => ((DateTime)p.OrdIdTime).CompareTo(dt2) <= 0); } else { DateTime dt2; switch (timeday) { case 0: break; case 1: sdatetime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00"); dt2 = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59"); where = where.And(p => ((DateTime)p.OrdIdTime).CompareTo(sdatetime) >= 0); where = where.And(p => ((DateTime)p.OrdIdTime).CompareTo(dt2) <= 0); break; case 30: sdatetime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00").AddDays(-30); dt2 = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59"); where = where.And(p => ((DateTime)p.OrdIdTime).CompareTo(sdatetime) >= 0); where = where.And(p => ((DateTime)p.OrdIdTime).CompareTo(dt2) <= 0); where = where.And(p => ((DateTime)p.OrdIdTime).CompareTo(sdatetime) >= 0); where = where.And(p => ((DateTime)p.OrdIdTime).CompareTo(dt2) <= 0); break; case 90: sdatetime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00").AddDays(-90); dt2 = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59"); break; default: break; } } var list = ef.hx_td_UserCash.Where(where).OrderByDescending(p => p.UserCashId).ToPagedList(pageIndex ?? 1, pgaesize); ViewBag.startdatetime = startdatetime; ViewBag.enddatetime = enddatetime; ViewBag.timeday = timeday; ViewBag.pageIndex = pageIndex; ViewBag.Counts = Counts; ViewBag.Totals = Totals; ViewBag.lostCount = lostCount; ViewBag.lostTotal = lostTotal; ViewBag.succTotal = succTotal; ViewBag.succCount = succCount; ViewBag.users = pu; vubc = BusinessLogicHelper.LeftOne(vubc); ViewBag.UsrBindCard = vubc.OrderByDescending(c => c.defCard).ToList(); ViewBag.Isquick = vubc.Where(c => c.Isquick == 1).Count() > 0; ViewBag.GENERAL = DateTime.Now.AddDays(1).ToString("MM月dd日"); ViewBag.QM = DateTime.Now.ToString("MM月dd日"); if (Request.IsAjaxRequest()) { return(PartialView("_Cashlist", list)); } return(View(list)); }
/// <summary> /// 邀请好友 现金奖励 /// </summary> /// <param name="Registerid">邀请人用户id</param> /// <param name="InvestAmt">投资金额</param> /// <param name="ActTypeId">活动类型(1新人注册,3常规活动,4邀请奖励)</param> /// <param name="RewTypeID">奖励类型(1现金,2抵扣券,3加息券)</param> /// <param name="totalAmt">奖励金额</param> /// <param name="ActUser">面向用户对象</param> /// <returns></returns> private List <hx_UserAct> InviteActCashNew(int Registerid, string targetPlatform, decimal InvestAmt, int ActTypeId, int RewTypeID, decimal totalAmt = 0M, int ActUser = 0) { //RewTypeID=1 List <hx_UserAct> t = new List <hx_UserAct>(); hx_ActivityTable hat = new hx_ActivityTable(); hat = GetActTableInfo(ActTypeId, targetPlatform, ActUser, 1, RewTypeID); if (hat != null) { #region 邀请好友现金奖励 decimal actamt = 0M; if (InvestAmt >= 2000) // { actamt = totalAmt; //奖励邀请人 } #region 奖励 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.UseState = 5; //现金未转账 hua.AmtEndtime = DateTime.Parse(hat.ActEndtime.ToString()); hua.OrderID = decimal.Parse(Utils.Createcode()); hua.AmtUses = 1; //没指定情况下默认为单独使用 hua.AmtProid = 0; //未使用默认为0 hua.ISSmsOne = 0; hua.IsSmsThree = 0; hua.isSmsFifteen = 0; hua.IsSmsSeven = 0; hua.isSmsSixteen = 0; hua.Createtime = DateTime.Now; hua.Title = "邀请好友首投满2000送10元现金"; 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) { if (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, 0); if (ic > 0) { //处理 资金流水信息 奖励流水 系统消息 t.Add(hua); //???? } } #endregion } } } } } #endregion #endregion } return(t); }
/// <summary> /// /// </summary> /// <param name="mc"></param> /// <param name="TrAMT">投资金额</param> /// <param name="TransAmt">奖励金额</param> public void ToUserTransfer(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("平台向用户活动转账加签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("平台向用户活动转账加签字符:" + str.ToString()); m.ChkValue = sbChkValue.ToString(); LogInfo.WriteLog("平台向用户活动转账提交信息:" + 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("自动扣款转账(商户用)返回报文" + 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("平台向用户活动转账返回参数:" + msg); //验签 string pgPubkFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk(); int ret = DllInterop.VeriSignMsg(pgPubkFile, msg, msg.Length, retloan.ChkValue); LogInfo.WriteLog("平台向用户活动转账验签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("事务执行返回:" + 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(14); //测试平台 ma = ba.GetModel(13); //获取奖励对象 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(19, 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; pm.Mtype = 2; B_usercenter.AddMessage(pm); #endregion } LogInfo.WriteLog("平台向用户活动转账验签更新成功,需要写入消息"); } } else { //Response.Write(HttpUtility.UrlDecode(retloan.)); } } } }
/// <summary> /// 提现提交处理方法---快速提现 /// </summary> /// <returns></returns> public ActionResult CashGENERAL() { int userid = CurrentUserId; string url = Utils.GetChinapnrUrl(); decimal Amt = decimal.Parse(DNTRequest.GetString("amt")); int UsrBindCardID = DNTRequest.GetInt("UsrBindCardID", 0); int UsrCashType = DNTRequest.GetInt("UsrCashType", 1); /* * string vcode = DNTRequest.GetString("vcode"); * string strIdentify = "CashValidateCode"; //随机字串存储键值,以便存储到Session中 * if (Session[strIdentify] != null) * { * if (Session[strIdentify].ToString() != vcode) * { * return Content(StringAlert.Alert("验证码不对!"), "text/html"); * } * } * else * { * return Content(StringAlert.Alert("验证码已过期!"), "text/html"); * }*/ ViewBag.errCode = "0"; B_member_table b = new B_member_table(); M_member_table p = new M_member_table(); p = b.GetModel(userid); if (p.available_balance < Amt) { ViewBag.errCode = "-1"; return(View(new M_Cash())); } hx_UsrBindCardC ubc = ef.hx_UsrBindCardC.Where(g => g.UsrBindCardID == UsrBindCardID).FirstOrDefault(); if (ubc == null) { ViewBag.errCode = "-2"; return(View(new M_Cash())); } ViewBag.url = url; decimal servf = 0.00M; string cashChl = Enum.GetName(typeof(EnumCommon.E_hx_td_UserCash.EnumCashChl), (int)EnumCommon.E_hx_td_UserCash.EnumCashChl.GENERAL); //string cashType = "FAST"; string FeeObjFlag = "M"; if (UsrCashType == 2) { cashChl = Enum.GetName(typeof(EnumCommon.E_hx_td_UserCash.EnumCashChl), (int)EnumCommon.E_hx_td_UserCash.EnumCashChl.IMMEDIATE); //FeeObjFlag = "U"; } //bug 修复,应该为快速提现。此前为普通提现 by fangjianmin M_Cash mc = ChinapnrFacade.Cash(p.UsrCustId, Amt.ToString("0.00"), ubc.OpenAcctId, cashChl, servf.ToString("0.00"), FeeObjFlag); if (mc != null) { M_td_UserCash mu = new M_td_UserCash(); B_td_UserCash mo = new B_td_UserCash(); mu.registerid = p.registerid; mu.UsrCustId = p.UsrCustId; mu.TransAmt = decimal.Parse(mc.TransAmt); mu.FeeAmt = servf; mu.OrdId = mc.OrdId; mu.OrdIdTime = DateTime.Now; mu.OrdIdState = 0; mu.FeeObjFlag = FeeObjFlag; mu.CashChl = cashChl; mo.Add(mu); } return(View(mc)); }