/// <summary> /// Add or update entities from a JArray of changes during a PATCH. /// </summary> /// <param name="entityCollection">Collection of entities: New entities will be added to this collection.</param> /// <param name="changeArray">JArray of changes.</param> protected void AddUpdateFromJArray <T1>(ICollection <T1> entityCollection, JArray changeArray) where T1 : class, IEntity { if (changeArray == null) { return; } foreach (JObject jobject in changeArray) { T1 entity = jobject.ToObject <T1>(); if (entity != null) { T1 foundEntity = null; if (entity.Id != Guid.Empty) { foundEntity = unitOfWork.GetById <T1>(entity.Id); } if (foundEntity != null) { // The entity already exists. UpdateFromJObject(foundEntity, jobject); } else { // The entity doesn't exist - either the ID was empty, or it's a new ID. unitOfWork.Insert(entity); entityCollection?.Add(entity); BusinessLogicHelper.GetBusinessLogic <T1>(unitOfWork)?.Validate(entity); } } } }
/// <summary> /// 复核 汇付通知页 /// </summary> /// <returns></returns> public ActionResult RePostCashProcessing() { ReCashAudit m = new ReCashAudit(); m.CmdId = DNTRequest.GetString("CmdId"); m.RespCode = DNTRequest.GetString("RespCode"); m.RespDesc = HttpUtility.UrlDecode(DNTRequest.GetString("RespDesc")); m.MerCustId = DNTRequest.GetString("MerCustId"); m.OrdId = DNTRequest.GetString("OrdId"); m.UsrCustId = DNTRequest.GetString("UsrCustId"); m.TransAmt = DNTRequest.GetString("TransAmt"); m.OpenAcctId = DNTRequest.GetString("OpenAcctId"); m.OpenBankId = DNTRequest.GetString("OpenBankId"); m.AuditFlag = DNTRequest.GetString("AuditFlag"); m.FeeAmt = DNTRequest.GetString("FeeAmt"); m.FeeCustId = DNTRequest.GetString("FeeCustId"); m.FeeAcctId = DNTRequest.GetString("FeeAcctId"); m.RetUrl = DNTRequest.GetString("RetUrl"); m.BgRetUrl = DNTRequest.GetString("BgRetUrl"); m.MerPriv = DNTRequest.GetString("MerPriv"); m.ChkValue = DNTRequest.GetString("ChkValue"); LogInfo.WriteLog("取现审核返回参数:" + FastJSON.toJOSN(m)); BusinessLogicHelper.RePostCashHelper(m); ViewBag.info = Utils.GetReturnCode(Int32.Parse(m.RespCode)); return(View()); }
/// <summary> /// Add or update an entity from a JOBject during a PATCH. The new or updated entity is returned. /// </summary> /// <param name="changeObject">JObject containing changes.</param> /// <returns></returns> protected T1 AddUpdateFromJObject <T1>(JObject changeObject) where T1 : class, IEntity { T1 entity = changeObject.ToObject <T1>(); if (entity != null) { T1 foundEntity = null; if (entity.Id != Guid.Empty) { foundEntity = unitOfWork.GetById <T1>(entity.Id); } if (foundEntity != null) { // The entity already exists. UpdateFromJObject(foundEntity, changeObject); entity = foundEntity; } else { // The entity doesn't exist - either the ID was empty, or it's a new ID. unitOfWork.Insert(entity); BusinessLogicHelper.GetBusinessLogic <T1>(unitOfWork)?.Validate(entity); } } return(entity); }
/// <summary> /// 银行卡管理 /// </summary> /// <returns></returns> public ActionResult Index() { int userid = CurrentUserId; 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)); } //if (pu.isbankcard == 0) //{ checkbank(pu.UsrCustId); //} V_UsrBindCardBank Ucard = new V_UsrBindCardBank(); Ucard = ef.V_UsrBindCardBank.Where(p => p.registerid == userid).OrderByDescending(p => p.defCard).Take(1).FirstOrDefault(); List <V_UsrBindCardBank> cards = ef.V_UsrBindCardBank.Where(c => c.registerid == userid).ToList(); cards = BusinessLogicHelper.LeftOne(cards); List <V_UsrBindCardBank> listcard = cards; //网银卡列表 List <V_UsrBindCardBank> listquickcard = cards.Where(c => c.BindCardType == 1).ToList(); //快捷卡列表 var flag = listquickcard != null && listquickcard.Count() > 0; if (flag) { ViewBag.listcard = listquickcard; } else { ViewBag.listcard = listcard; } ViewBag.flag = flag; return(View(Ucard)); }
public void ExchangeCurrencies_EURUSD_Returns_null() { //Arrange var businessLogicHelper = new BusinessLogicHelper(new CurrencyPair() { FirstCurrency = new Currency("Euro", ISO.EUR, 743.94m), SecondCurrency = new Currency("Amerikanske dollar", ISO.USD, 663.11m), Amount = 1 }, null); //Act var result = businessLogicHelper.ExchangeCurrencies(); //Assert Assert.AreEqual(null, result); }
//Region containing all functions related to trasfer workflow/data flow #region Transfer Operations public async Task <ActionResult> CreateTransfer(Transfer transfer) { //Validate the off hire date of the transfer if (transfer.DateOnHire.Date < DateTime.Now.Date.AddDays(await BusinessLogicHelper.DaysUntilDelivery(ActiveCustomer))) { return(Json(new { success = false, message = Resources.AnErrorOccured })); } //Validate that this is a new transfer the transfer already exists IEnumerable <Transfer> transfers = projectsDB.GetCustomerTransfers(ActiveCustomer); if (transfers.Where(i => i.TransferfromInventTransId == transfer.TransferfromInventTransId && i.Status != 4).Count() > 0) { return(Json(new { success = false, message = Resources.AnErrorOccured })); } //Get the order to be transfered and populate the transfer model RentalOrderDetails machine = db.GetRentalOrderDetails(ActiveCustomer, transfer.TransferfromInventTransId); IdentityUser transferFromUser = UserTable.GetUserById(User.Identity.GetUserId()); ContactPerson user = db.GetContactPersonById(transfer.ContactPersonId); transfer.TransferFromCustAccount = ActiveCustomer.CustomerId; transfer.TransferFromUserId = transferFromUser.Id; transfer.TransferFromSalesName = ActiveCustomer.Name; transfer.TransferFromContactPersonId = transferFromUser.ContactPersonId; transfer.DatabaseName = ActiveCustomer.DatabaseName; transfer.DataAreaId = ActiveCustomer.CompanyId; transfer.UserId = "N/A"; //Call AX Business connector string apiUrlSuffix = ConfigurationManager.AppSettings["TransfersBaseURL"]; var completeUrl = baseApiUrl + apiUrlSuffix + "/CreateTransfer"; string postData = JsonConvert.SerializeObject(transfer); WebClient client = new WebClient(); client.Headers.Add(HttpRequestHeader.ContentType, "application/json"); string response = client.UploadString(completeUrl, "POST", postData); //Check the response from the AX business connector if (response == "false") { return(Json(new { success = false, message = Resources.AnErrorOccured })); } await PushCreationEmail(transfer, machine); return(Json(new { success = true, message = string.Format(Resources.SenderS0, machine.ItemName, transfer.SalesName, user.ContactPersonName) })); }
/// <summary> /// Gets and returns ResponseOfT VW_BASELINE_DATA for Kendo grid. Supports /// server side paging, sorting and filtering. /// </summary> /// <param name="request"></param> /// <param name="data"></param> /// <returns></returns> public List <object> BuildPredicateQueryColumnFilter(Dictionary <string, object> request, List <TestViewModel> data = null) { TestViewModel dataObj = new TestViewModel(); // Build query string whereClause = BusinessLogicHelper.GetWhereCondition(request); // get filterParams from request object filterParam; bool ableToParseFilterParam = request.TryGetValue("workspaceFilters", out filterParam); // get columnFilter from request object columnFilter; bool columnFilterProvided = request.TryGetValue("columnFilter", out columnFilter); // Begin queryable GET var queryableResults = data != null?data.AsQueryable() : _dbContext.TestViewModels.AsQueryable(); //Apply Filter parameters if (ableToParseFilterParam && filterParam != null) { var param = JObject.Parse(filterParam.ToString()).ToObject <FilterParams>(); if (param != null) { queryableResults = dataObj.ApplyFilterParams(queryableResults, param); } } else { queryableResults = queryableResults.Select(y => y).Where(x => (int)x.Id == -1); } //apply grid options/grid filters queryableResults = queryableResults.Where(whereClause); // ensure column filter is provided if (!columnFilterProvided) { throw new Exception("Bad request: No column filter provided."); } var columnFilterStr = columnFilter.ToString().Replace("\"", ""); // get result IEnumerable <string> results = dataObj.SelectColumnFilterLinq <TestViewModel, string>(queryableResults, columnFilterStr).Distinct().OrderBy(x => x).AsEnumerable(); return(dataObj.ConvertColumnFilterObjects(columnFilterStr, results)); }
/// <summary> /// Update an entity's properties from a JObject (during a PATCH). Validation is performed, but no changes are saved. /// </summary> /// <param name="entity">Entity to be updated.</param> /// <param name="changes">Changes as a JObject.</param> protected virtual void UpdateFromJObject <T1>(T1 entity, JObject changes) where T1 : class, IEntity { Dictionary <string, object> changedProperties = new Dictionary <string, object>(); Type entityType = typeof(T1); foreach (var pair in changes) { if (!ProcessJTokenUpdate(entity, pair.Key, pair.Value)) { var convertedPair = JsonExtensions.ConvertToType <T1>(pair); changedProperties.Add(convertedPair.Key, convertedPair.Value); } } IEntityLogic logic = BusinessLogicHelper.GetBusinessLogic <T1>(unitOfWork); unitOfWork.GetRepository <T1>().UpdateChangedProperties(entity, changedProperties, p => logic.Validate(p)); }
public virtual IDataResponse Update(T entity) { var response = new DataResponse <T>(); try { BusinessLogicHelper.GetBusinessLogic <T>(unitOfWork).Validate(entity); unitOfWork.Update(entity); unitOfWork.SaveChanges(); response.Data = unitOfWork.GetById(entity.Id, IncludesForSingle); } catch (Exception ex) { Logger.LogError(ex.ToString()); return(ProcessIDataResponseException(ex)); } return(response); }
public virtual IDataResponse <T> Add(T entity) { var response = new DataResponse <T>(); try { unitOfWork.Insert(entity); BusinessLogicHelper.GetBusinessLogic <T>(unitOfWork)?.Validate(entity); unitOfWork.SaveChanges(); response.Data = unitOfWork.GetById(entity.Id, IncludesForSingle); FormatEntityForGet(response.Data, FieldLists.AllFields); } catch (Exception ex) { Logger.LogError(ex.ToString()); return(ProcessIDataResponseException(ex)); } return(response); }
/// <summary> /// /// </summary> /// <param name="request"></param> /// <param name="data"></param> /// <returns></returns> private ResponseOfT <TestViewModel> BuildPredicateQuery(Dictionary <string, object> request, List <TestViewModel> data = null) { // Build query string order = BusinessLogicHelper.GetOrderBy(request, "Value1 asc"); int skip = BusinessLogicHelper.GetSkip(request); int take = BusinessLogicHelper.GetTake(request); string whereClause = BusinessLogicHelper.GetWhereCondition(request, typeof(TestViewModel)); object filterParam; bool parsedFilterParams = request.TryGetValue("workspaceFilters", out filterParam); // Begin queryable GET var queryableResults = data != null?data.AsQueryable() : _dbContext.TestViewModels.AsQueryable(); // Apply Filter parameters if (parsedFilterParams && filterParam != null) { var param = JObject.Parse(filterParam.ToString()).ToObject <FilterParams>(); if (param != null) { queryableResults = new TestViewModel().ApplyFilterParams(queryableResults, param); } } else { queryableResults = queryableResults.Select(y => y).Where(x => (int)x.Id == 1); } // apply grid options/grid filters queryableResults = queryableResults.Where(whereClause); int count = queryableResults.Count(); queryableResults = queryableResults.OrderBy(order).Skip(skip).Take(take); // Return data return(new ResponseOfT <TestViewModel>(queryableResults.ToList(), count)); }
// GET: BindCard public ActionResult Index() { int userid = Utils.checkloginsession(); 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)); } //if (pu.isbankcard == 0) //{ checkbank(pu.UsrCustId); //} V_UsrBindCardBank Ucard = new V_UsrBindCardBank(); Ucard = ef.V_UsrBindCardBank.Where(p => p.registerid == userid).OrderByDescending(p => p.defCard).Take(1).FirstOrDefault(); List <V_UsrBindCardBank> listcard = ef.V_UsrBindCardBank.Where(c => c.registerid == userid).ToList(); listcard = BusinessLogicHelper.LeftOne(listcard); ViewBag.listcard = listcard; return(View(Ucard)); }
public ActionResult PostCashProcessing(V_UserCash_Bank model) { Response.BufferOutput = true; StringBuilder strz = new StringBuilder(); int state = 0; M_CashAudit mc = new M_CashAudit(); string retUrl = Utils.GetRe_url("admin/UserCash/RePostCashProcessing"); string bgRetUrl = Utils.GetRe_url("admin/Thirdparty/BgCashProcessing"); bool res = BusinessLogicHelper.postCashHelper(model, ref state, ref mc, retUrl, bgRetUrl); if (!res && state == 0) { return(Content(StringAlert.Alert("取现强制未通过!", "/admin/UserCash/CashProcessing?UserCashId=" + model.UserCashId))); } if (res) { strz.Append(" <form id=\"formauto\" name=\"formauto\" action=\"" + Utils.GetChinapnrUrl() + "\" method=\"post\">"); strz.Append("<input id=\"Version\" name=\"Version\" type=\"hidden\" value=\"" + mc.Version + "\" />"); strz.Append("<input id=\"CmdId\" name=\"CmdId\" type=\"hidden\" value=\"" + mc.CmdId + "\" />"); strz.Append("<input id=\"MerCustId\" name=\"MerCustId\" type=\"hidden\" value=\"" + mc.MerCustId + "\" />"); strz.Append("<input id=\"OrdId\" name=\"OrdId\" type=\"hidden\" value=\"" + mc.OrdId + "\" />"); strz.Append("<input id=\"UsrCustId\" name=\"UsrCustId\" type=\"hidden\" value=\"" + mc.UsrCustId + "\" />"); strz.Append("<input id=\"TransAmt\" name=\"TransAmt\" type=\"hidden\" value=\"" + mc.TransAmt + "\" />"); strz.Append("<input id=\"AuditFlag\" name=\"AuditFlag\" type=\"hidden\" value=\"" + mc.AuditFlag + "\" />"); strz.Append("<input id=\"RetUrl\" name=\"RetUrl\" type=\"hidden\" value=\"" + mc.RetUrl + "\" />"); strz.Append("<input id=\"BgRetUrl\" name=\"BgRetUrl\" type=\"hidden\" value=\"" + mc.BgRetUrl + "\" />"); strz.Append("<input id=\"MerPriv\" name=\"MerPriv\" type=\"hidden\" value=\"" + mc.MerPriv + "\" />"); strz.Append("<input id=\"ChkValue\" name=\"ChkValue\" type=\"hidden\" value=\"" + mc.ChkValue + "\" />"); strz.Append(" </form>"); strz.Append("<script type=\"text/javascript\">document.getElementById('formauto').submit();</script>"); LogInfo.WriteLog("提交参数表单:" + strz.ToString()); } ViewBag.state = state; ViewBag.strz = strz; return(View()); }
/// <summary> /// 普通提现汇付后台主动通知 /// </summary> /// <returns></returns> public ActionResult PostGENERALAmt() { string str1 = ""; ReCash m = new ReCash(); m.CmdId = DNTRequest.GetString("CmdId"); m.RespCode = DNTRequest.GetString("RespCode"); m.RespDesc = HttpUtility.UrlDecode(DNTRequest.GetString("RespDesc")); m.MerCustId = DNTRequest.GetString("MerCustId"); m.OrdId = DNTRequest.GetString("OrdId"); m.UsrCustId = DNTRequest.GetString("UsrCustId"); m.TransAmt = DNTRequest.GetString("TransAmt"); m.OpenAcctId = DNTRequest.GetString("OpenAcctId"); m.OpenBankId = DNTRequest.GetString("OpenBankId"); m.FeeAmt = DNTRequest.GetString("FeeAmt"); m.FeeCustId = DNTRequest.GetString("FeeCustId"); m.FeeAcctId = DNTRequest.GetString("FeeAcctId"); m.ServFee = DNTRequest.GetString("ServFee"); m.ServFeeAcctId = DNTRequest.GetString("ServFeeAcctId"); m.RetUrl = HttpUtility.UrlDecode(DNTRequest.GetString("RetUrl")); m.BgRetUrl = HttpUtility.UrlDecode(DNTRequest.GetString("BgRetUrl")); m.MerPriv = DNTRequest.GetString("MerPriv"); m.RespExt = HttpUtility.UrlDecode(DNTRequest.GetString("RespExt")); m.ChkValue = DNTRequest.GetString("ChkValue"); LogInfo.WriteLog("后台取现返回报文:" + FastJSON.toJOSN(m)); //验签 StringBuilder chkVal = new StringBuilder(); chkVal.Append(m.CmdId); chkVal.Append(m.RespCode); chkVal.Append(m.MerCustId); chkVal.Append(m.OrdId); chkVal.Append(m.UsrCustId); chkVal.Append(m.TransAmt); chkVal.Append(m.OpenAcctId); chkVal.Append(m.OpenBankId); chkVal.Append(m.FeeAmt); chkVal.Append(m.FeeCustId); chkVal.Append(m.FeeAcctId); chkVal.Append(m.ServFee); chkVal.Append(m.ServFeeAcctId); chkVal.Append(m.RetUrl); chkVal.Append(m.BgRetUrl); chkVal.Append(m.MerPriv); chkVal.Append(m.RespExt); string msg = chkVal.ToString(); //私钥文件的位置(这里是放在了站点的根目录下) string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + Utils.GetPgPubk(); //需要指定提交字符串的长度 int len = Encoding.UTF8.GetBytes(msg).Length; StringBuilder sbChkValue = new StringBuilder(256); int ret = DllInterop.VeriSignMsg(merKeyFile, msg, msg.Length, m.ChkValue); // LogInfo.WriteLog("验签返回参数:" + ret.ToString()); StringBuilder str = new StringBuilder(); if (ret == 0) { //提现成功后,得多事务处理账户金额,流水及冻结金额等 if (m.RespCode == "000") { string cachename = m.OrdId + "Cash" + m.UsrCustId; if (Utils.GeTThirdCache(cachename) == 0) { Utils.SetThirdCache(cachename); B_usercenter BUC = new B_usercenter(); M_ReqExt mre = JsonConvert.DeserializeObject <M_ReqExt>(m.RespExt.Replace("[", "").Replace("]", "")); int CashOp = BUC.CashTran(m.OpenAcctId, m.OpenBankId, m.OrdId, m.TransAmt, m.UsrCustId, m.FeeAmt, mre.FeeObjFlag, mre.CashChl); //int CashOp = BUC.CashTran(m.OpenAcctId, m.OpenBankId, m.OrdId, m.TransAmt, m.UsrCustId); if (CashOp > 0) { string sql = "select registerid,username,mobile,UsrCustId,available_balance from hx_member_table where UsrCustId='" + m.UsrCustId + "'"; LogInfo.WriteLog("后台审请取现成功短信sql:" + sql); DataTable dt = DbHelperSQL.GET_DataTable_List(sql); if (dt.Rows.Count > 0) { //短信通知 //尊敬的#USERANEM#,您已成功提现#MONEY#元,账户余额#MONEY1#.请注意查收!【创利投】 string contxt = Utils.GetMSMEmailContext(12, 1); // 获取注册成功邮件内容 StringBuilder sbsms = new StringBuilder(contxt); sbsms = sbsms.Replace("#USERANEM#", dt.Rows[0]["username"].ToString()); sbsms = sbsms.Replace("#MONEY#", m.TransAmt); decimal amt = decimal.Parse(dt.Rows[0]["available_balance"].ToString()) - decimal.Parse(m.TransAmt); sbsms = sbsms.Replace("#MONEY1#", amt.ToString()); string mobile = dt.Rows[0]["mobile"].ToString(); M_td_SMS_record psms = new M_td_SMS_record(); B_td_SMS_record osms = new B_td_SMS_record(); int smstype = (int)Enum.Parse(typeof(EnumSMSType), EnumSMSType.取现成功.ToString()); psms.phone_number = mobile; psms.sendtime = DateTime.Now; psms.senduserid = int.Parse(dt.Rows[0]["registerid"].ToString()); psms.smstype = smstype; psms.smscontext = sbsms.ToString(); psms.orderid = SendSMS.Send_SMS(mobile, sbsms.ToString()); psms.vcode = ""; osms.Add(psms); DateTime dti = DateTime.Now; M_td_System_message pm = new M_td_System_message(); pm.MReg = int.Parse(dt.Rows[0]["registerid"].ToString()); pm.Mstate = 0; pm.MTitle = "提现成功"; pm.MContext = sbsms.ToString(); pm.PubTime = dti; pm.Mtype = 3; B_usercenter.AddMessage(pm); if (mre.CashChl == "IMMEDIATE" && decimal.Parse(m.TransAmt) <= 200000M) { string retUrl = Utils.GetRe_url("admin/UserCash/RePostCashProcessing"); string bgRetUrl = Utils.GetRe_url("admin/Thirdparty/BgCashProcessing"); BusinessLogicHelper.AutoCheckCash(m.UsrCustId, retUrl, bgRetUrl); } } } } str1 = "RECV_ORD_ID_" + m.OrdId; } } return(Content(str1)); }
/// <summary> /// 汇付主动通知页面 /// </summary> /// <returns></returns> public ActionResult CashBgCallback() { string str1 = ""; ReCash m = new ReCash(); m.CmdId = DNTRequest.GetString("CmdId"); m.RespCode = DNTRequest.GetString("RespCode"); m.RespDesc = HttpUtility.UrlDecode(DNTRequest.GetString("RespDesc")); m.MerCustId = DNTRequest.GetString("MerCustId"); m.OrdId = DNTRequest.GetString("OrdId"); m.UsrCustId = DNTRequest.GetString("UsrCustId"); m.TransAmt = DNTRequest.GetString("TransAmt"); m.OpenAcctId = DNTRequest.GetString("OpenAcctId"); m.OpenBankId = DNTRequest.GetString("OpenBankId"); m.FeeAmt = DNTRequest.GetString("FeeAmt"); m.FeeCustId = DNTRequest.GetString("FeeCustId"); m.FeeAcctId = DNTRequest.GetString("FeeAcctId"); m.ServFee = DNTRequest.GetString("ServFee"); m.ServFeeAcctId = DNTRequest.GetString("ServFeeAcctId"); m.RetUrl = HttpUtility.UrlDecode(DNTRequest.GetString("RetUrl")); m.BgRetUrl = HttpUtility.UrlDecode(DNTRequest.GetString("BgRetUrl")); m.MerPriv = DNTRequest.GetString("MerPriv"); m.RespExt = HttpUtility.UrlDecode(DNTRequest.GetString("RespExt")); m.ChkValue = DNTRequest.GetString("ChkValue"); m.RealTransAmt = DNTRequest.GetString("RealTransAmt"); LoggerHelper.Info("后台取现返回报文:" + JsonHelper.Entity2Json(m)); //验签 StringBuilder chkVal = new StringBuilder(); chkVal.Append(m.CmdId); chkVal.Append(m.RespCode); chkVal.Append(m.MerCustId); chkVal.Append(m.OrdId); chkVal.Append(m.UsrCustId); chkVal.Append(m.TransAmt); chkVal.Append(m.OpenAcctId); chkVal.Append(m.OpenBankId); chkVal.Append(m.FeeAmt); chkVal.Append(m.FeeCustId); chkVal.Append(m.FeeAcctId); chkVal.Append(m.ServFee); chkVal.Append(m.ServFeeAcctId); chkVal.Append(m.RetUrl); chkVal.Append(m.BgRetUrl); chkVal.Append(m.MerPriv); chkVal.Append(m.RespExt); string msg = chkVal.ToString(); //私钥文件的位置(这里是放在了站点的根目录下) string merKeyFile = AppDomain.CurrentDomain.BaseDirectory + 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); // LoggerHelper.Info("验签返回参数:" + ret.ToString()); StringBuilder str = new StringBuilder(); if (ret == 0) { //提现成功后,得多事务处理账户金额,流水及冻结金额等 if (m.RespCode == "000") { string cachename = m.OrdId + "Cash" + m.UsrCustId; if (Settings.Instance.GeTThirdCache(cachename) == 0) { Settings.Instance.SetThirdCache(cachename); B_usercenter BUC = new B_usercenter(); M_ReqExt mr = new M_ReqExt(); mr = FastJSON.ToObject <M_ReqExt>(m.RespExt.Replace("[", "").Replace("]", "")); int CashOp = BUC.CashTran(m.OpenAcctId, m.OpenBankId, m.OrdId, m.RealTransAmt, m.UsrCustId, m.FeeAmt, mr.FeeObjFlag, mr.CashChl); if (CashOp > 0) { string sql = "select registerid,username,mobile,UsrCustId,available_balance from hx_member_table where UsrCustId='" + m.UsrCustId + "'"; LoggerHelper.Info("后台审请取现成功短信sql:" + sql); DataTable dt = DbHelper.Query(sql).Tables[0]; if (dt.Rows.Count > 0) { //短信通知 //尊敬的#USERANEM#,您已成功提现#MONEY#元,账户余额#MONEY1#.请注意查收!【创利投】 MemberLogic _logic = new MemberLogic(); var ebt = _logic.GetSmsEmailEntity(1, 12); // 获取内容 string contxt = ebt.SEContext; StringBuilder sbsms = new StringBuilder(contxt); sbsms = sbsms.Replace("#USERANEM#", dt.Rows[0]["username"].ToString()); sbsms = sbsms.Replace("#MONEY#", m.TransAmt); decimal amt = decimal.Parse(dt.Rows[0]["available_balance"].ToString()) - decimal.Parse(m.TransAmt); sbsms = sbsms.Replace("#MONEY1#", amt.ToString()); string mobile = dt.Rows[0]["mobile"].ToString(); M_td_SMS_record psms = new M_td_SMS_record(); B_td_SMS_record osms = new B_td_SMS_record(); int smstype = (int)Enum.Parse(typeof(EnumSMSType), EnumSMSType.取现成功.ToString()); psms.phone_number = mobile; psms.sendtime = DateTime.Now; psms.senduserid = int.Parse(dt.Rows[0]["registerid"].ToString()); psms.smstype = smstype; psms.smscontext = sbsms.ToString(); psms.orderid = SendSMS.Send(mobile, sbsms.ToString()); psms.vcode = ""; osms.Add(psms); DateTime dti = DateTime.Now; M_td_System_message pm = new M_td_System_message(); pm.MReg = int.Parse(dt.Rows[0]["registerid"].ToString()); pm.Mstate = 0; pm.MTitle = "投现成功"; pm.MContext = sbsms.ToString(); pm.PubTime = dti; pm.Mtype = 3; B_usercenter.AddMessage(pm); //即时提现,提现金额小于等于20万自动审核,高于20万人工审核 string cashChl = Enum.GetName(typeof(EnumCommon.E_hx_td_UserCash.EnumCashChl), (int)EnumCommon.E_hx_td_UserCash.EnumCashChl.IMMEDIATE); if (mr.CashChl == cashChl && decimal.Parse(m.TransAmt) <= 200000) { string retUrl = Settings.Instance.ImagesDomain + "/admin/UserCash/RePostCashProcessing"; string bgRetUrl = Settings.Instance.ImagesDomain + "/admin/Thirdparty/BgCashProcessing"; BusinessLogicHelper.AutoCheckCash(m.UsrCustId, retUrl, bgRetUrl); } } } } str1 = "RECV_ORD_ID_" + m.OrdId; } } return(Content(str1)); }
/// <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)); }
public ActionResult PostGENERALAmt() { //显示于页面给汇付 string str = string.Empty; //日志变量 string log = string.Empty; //响应通知加签的状态码 int ret = -1; //业务的sql语句变量 string sql = string.Empty; ReCash m = ChinapnrFacade.CashCallBack(out ret); if (m != null) { //提现成功后,得多事务处理账户金额,流水及冻结金额等 if (m.RespCode == "000") { string cachename = m.OrdId + "Cash" + m.UsrCustId; if (Utils.GeTThirdCache(cachename) == 0) { Utils.SetThirdCache(cachename); B_usercenter BUC = new B_usercenter(); M_ReqExt mre = JsonConvert.DeserializeObject <M_ReqExt>(m.RespExt.Replace("[", "").Replace("]", "")); int CashOp = BUC.CashTran(m.OpenAcctId, m.OpenBankId, m.OrdId, m.RealTransAmt, m.UsrCustId, m.FeeAmt, mre.FeeObjFlag, mre.CashChl); if (CashOp > 0) { sql = "select registerid,username,mobile,UsrCustId,available_balance from hx_member_table where UsrCustId='" + m.UsrCustId + "'"; LogInfo.WriteLog("审请取现成功短信sql:" + sql); DataTable dt = DbHelperSQL.GET_DataTable_List(sql); if (dt.Rows.Count > 0) { //短信通知 //尊敬的#USERANEM#,您已成功提现#MONEY#元,账户余额#MONEY1#.请注意查收!【创利投】 string contxt = Utils.GetMSMEmailContext(12, 1); // 获取注册成功邮件内容 StringBuilder sbsms = new StringBuilder(contxt); sbsms = sbsms.Replace("#USERANEM#", dt.Rows[0]["username"].ToString()); sbsms = sbsms.Replace("#MONEY#", m.TransAmt); decimal amt = decimal.Parse(dt.Rows[0]["available_balance"].ToString()) - decimal.Parse(m.TransAmt); sbsms = sbsms.Replace("#MONEY1#", amt.ToString()); string mobile = dt.Rows[0]["mobile"].ToString(); M_td_SMS_record psms = new M_td_SMS_record(); B_td_SMS_record osms = new B_td_SMS_record(); int smstype = (int)Enum.Parse(typeof(EnumSMSType), EnumSMSType.取现成功.ToString()); psms.phone_number = mobile; psms.sendtime = DateTime.Now; psms.senduserid = int.Parse(dt.Rows[0]["registerid"].ToString()); psms.smstype = smstype; psms.smscontext = sbsms.ToString(); psms.orderid = SendSMS.Send_SMS(mobile, sbsms.ToString()); psms.vcode = ""; osms.Add(psms); DateTime dti = DateTime.Now; M_td_System_message pm = new M_td_System_message(); pm.MReg = int.Parse(dt.Rows[0]["registerid"].ToString()); pm.Mstate = 0; pm.MTitle = "提现"; pm.MContext = sbsms.ToString(); pm.PubTime = dti; pm.Mtype = 3; B_usercenter.AddMessage(pm); } string cashChl = Enum.GetName(typeof(EnumCommon.E_hx_td_UserCash.EnumCashChl), (int)EnumCommon.E_hx_td_UserCash.EnumCashChl.IMMEDIATE); if (mre.CashChl == cashChl && decimal.Parse(m.TransAmt) <= 200000M) { string retUrl = Utils.GetRe_url("admin/UserCash/RePostCashProcessing"); string bgRetUrl = Utils.GetRe_url("admin/Thirdparty/BgCashProcessing"); BusinessLogicHelper.AutoCheckCash(m.UsrCustId, retUrl, bgRetUrl); } } } } } return(View(m)); }
public PermisoController(BusinessLogicHelper blh, IMapper mapper) { _blh = blh; _mapper = mapper; }