public Utility.OpResult Deletes(int[] ids) { var op = new OpResult(); try { var devices = DevicesRepository.GetQuery(o => ids.Contains(o.Id)); if (!devices.Any()) { op.Message = "查不到数据"; return(op); } var delDeviceId = devices.Select(o => o.DeviceId); var authorize = DeviceAuthorizeRepository.GetQuery(o => delDeviceId.Contains(o.DeviceId)); if (authorize.Any()) { op.Message = "无法删除,设备授权包含了要删除的设备"; return(op); } DevicesRepository.RemoveRange(devices.ToList()); op.Successed = true; LogEngine.WriteDelete("移除设备", LogModule.设备管理); } catch (Exception ex) { op.Message = ex.Message; LogEngine.WriteError(ex); } return(op); }
/// <summary> /// 创建生成支付通知 /// </summary> /// <param name="reqModel"></param> /// <returns></returns> public override SxfPayReturn Build(SxfPayNotifyRequest reqModel) { TradeOrder tradeOrder = null; var tradeResult = new TradeResult(reqModel); //保存通知结果并更改TradeOrder状态 var isSucc = PaySvc.SaveMchTradeResult(tradeResult, out tradeOrder); if (!isSucc) { return(SxfPayReturn.Fail(msg: "数据接收失败")); } else { try { var payNotify = new NotifyPayRequest(tradeOrder, tradeResult); var payNotifyDic = PaySignHelper.ToASCIIDictionary(payNotify); return(SendPost(PayConst.QCTTRADE_NOTIFY_PAY, payNotifyDic, tradeOrder.CID, tradeOrder.PayNotifyUrl)); } catch (Exception ex) { LogEngine.WriteError(string.Format("发起支付后台通知请求异常:商户ID:{0},门店ID:{1},返回参数:{2}", reqModel.MerchantId, reqModel.ShopId, reqModel.ToJson()), null, LogModule.支付交易); return(SxfPayReturn.Fail(msg: "数据接收失败")); } } }
public OpResult Save(TradersPaySecretKey tradersPaySecretKey, int id, DateTime dt, System.Collections.Specialized.NameValueCollection nvl) { //验证 var op = Verification(nvl, id, tradersPaySecretKey); if (!op.Successed) { return(op); } else { try { using (EFDbContext context = new EFDbContext()) { using (TransactionScope transaction = new TransactionScope()) { //商家支付主密钥 TradersPaySecretKey PaySecretKey = InsertUpdate(tradersPaySecretKey, id); //支付方式 string h_PayManner = (nvl["h_PayManner"] ?? "").Trim(); if (!h_PayManner.IsNullOrEmpty()) { JObject jObj = null; jObj = JObject.Parse(h_PayManner); JArray jlist = JArray.Parse(jObj["TradersPayChannel"].ToString()); tradersPayChannelService.DeleteByWhere(o => o.TPaySecrectId == PaySecretKey.TPaySecrectId); foreach (JObject item in jlist) { short ChannelPayMode = Convert.ToInt16(item["ChannelPayMode"]); string PayNotifyUrl = item["PayNotifyUrl"].ToString(); string RfdNotifyUrl = item["RfdNotifyUrl"].ToString(); TradersPayChannel tradersPayChannel = new TradersPayChannel(); tradersPayChannel.TPayChannelId = CommonService.GUID.ToUpper(); tradersPayChannel.TPaySecrectId = PaySecretKey.TPaySecrectId; tradersPayChannel.ChannelPayMode = ChannelPayMode; tradersPayChannel.PayNotifyUrl = PayNotifyUrl; tradersPayChannel.RfdNotifyUrl = RfdNotifyUrl; tradersPayChannel.State = 1; tradersPayChannel.CreateUID = CurrentUser.UID; tradersPayChannel.CreateDT = dt; tradersPayChannel.ModifyUID = CurrentUser.UID; tradersPayChannel.ModifyDT = dt; tradersPayChannelService.InsertUpdate(tradersPayChannel, 0); } } //提交事务 transaction.Complete(); return(OpResult.Success()); } } } catch (Exception e) { LogEngine.WriteError(e); return(OpResult.Fail(e.InnerException.InnerException.Message)); } } }
protected override void OnException(ExceptionContext filterContext) { var err = DataCache.Get <string>("err"); if (err != filterContext.Exception.Message)//不重复添加异常信息 { LogEngine log = new LogEngine(); log.WriteError(filterContext.Exception); DataCache.Set("err", filterContext.Exception.Message, 1); if (filterContext.HttpContext.Request.IsAjaxRequest() || filterContext.HttpContext.Request.HttpMethod.Equals("POST", StringComparison.CurrentCultureIgnoreCase)) { filterContext.ExceptionHandled = true; var op = new OpResult() { Message = filterContext.Exception.Message }; filterContext.Result = new ContentResult() { Content = op.ToJson() }; } } }
public OpResult Save(TradersUser tradersUser, int id, System.Collections.Specialized.NameValueCollection nvl) { //验证 var op = Verification(nvl, id); if (!op.Successed) { return(op); } else { try { using (EFDbContext context = new EFDbContext()) { using (TransactionScope transaction = new TransactionScope()) { InsertUpdate(tradersUser, id); //提交事务 transaction.Complete(); return(OpResult.Success()); } } } catch (Exception e) { LogEngine.WriteError(e); return(OpResult.Fail(e.InnerException.InnerException.Message)); } } }
/// <summary> /// 更新状态 /// </summary> /// <param name="ids"></param> /// <param name="state">1是可用,2是暂停,3是注销,4是无效</param> /// <returns></returns> public OpResult UpState(string ids, int state) { OpResult opr = ExistState(ids, state); if (!opr.Successed) { return(opr); } else { try { var idss = ids.Split(',').Select(o => int.Parse(o)); UpListByWhere(o => idss.Contains(o.Id), o => { o.State = state; }); return(OpResult.Success()); } catch (Exception e) { LogEngine.WriteError(e); return(OpResult.Fail(e.InnerException.InnerException.Message)); } } }
public override object Query(RefundQueryRequest reqModel) { try { var canObj = CanAccess(); if (!canObj.Successed) { return(canObj); } var sxfReq = new SxfRefundQueryRequest(reqModel, MerchStoreModel); //sxf签名并请求 var sxfResult = PayHelper.SendPost(MerchStoreModel.ApiUrl, PaySignHelper.ToDicAndSign(sxfReq, MerchModel.SecretKey3, "signature")); if (sxfResult.Successed) { //处理返回结果 var sxfResultObj = JsonConvert.DeserializeObject <SxfRefundQueryResponse>(sxfResult.Data.ToString()); var result = sxfResultObj.ToRefundQueryResponse(MerchStoreModel); //Qct签名 var rstRsp = PaySignHelper.ToDicAndSign(result, MerchModel.SecretKey, "sign"); return(rstRsp); } else { return(sxfResult); } } catch (Exception ex) { LogEngine.WriteError(string.Format("退款订单查询请求异常:{0},请求参数:{1}", ex.Message, reqModel.ToJson()), null, LogModule.支付交易); return(QctPayReturn.Fail()); } }
/// <summary> /// 发送Post支付请求 /// </summary> /// <param name="url"></param> /// <param name="paramsStr"></param> /// <returns></returns> public static QctPayReturn SendPost(this string url, string paramsStr) { string reqUrl = url + "?" + paramsStr; PayLogServer.WriteInfo(string.Format("发送交易请求:{0}", reqUrl)); try { var httpRequest = (HttpWebRequest)WebRequest.Create(url); httpRequest.Method = "POST"; httpRequest.ContentType = "application/x-www-form-urlencoded"; httpRequest.Timeout = 45000; byte[] byteRequest = System.Text.Encoding.UTF8.GetBytes(paramsStr); httpRequest.ContentLength = byteRequest.Length; Stream requestStream = httpRequest.GetRequestStream(); requestStream.Write(byteRequest, 0, byteRequest.Length); requestStream.Close(); //获取服务端返回 var response = (HttpWebResponse)httpRequest.GetResponse(); //获取服务端返回数据 StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8); var result = sr.ReadToEnd().Trim(); sr.Close(); result = HttpUtility.UrlDecode(result, Encoding.UTF8); return(QctPayReturn.Success(data: result)); } catch (Exception ex) { var logEng = new LogEngine(); logEng.WriteError(string.Format("发送交易请求异常:{0},请求地址:{1}", ex.Message, reqUrl), ex, LogModule.支付交易); return(QctPayReturn.Fail(code: PayConst.FAIL_CODE_20000, msg: "订单请求失败,服务器繁忙!")); } }
/// <summary> /// 设为通过 /// </summary> /// <param name="ids"></param> /// <param name="state">3是设为通过(设为已审核)</param> /// <returns></returns> public OpResult UpStatus(string ids, short state) { try { var idss = ids.Split(',').Select(o => int.Parse(o)); var list = GetListByWhere(o => idss.Contains(o.Id) && o.State == state); if (list.Any()) { return(OpResult.Fail("所选项存在已审核,无法重复审核!")); } var list2 = GetListByWhere(o => idss.Contains(o.Id) && (o.State == (short)TraderPayLicenseState.Cancel || o.State == (short)TraderPayLicenseState.Invalid)); if (list2.Any()) { return(OpResult.Fail("只能审核商户信息状态为:未审核、被驳回、暂停")); } UpListByWhere(o => idss.Contains(o.Id), o => o.State = state, false); var listLog = GetListByWhere(o => idss.Contains(o.Id)); foreach (var v in listLog) { ApproveLog approveLog = new ApproveLog(); approveLog.ModuleNum = Convert.ToInt16(ApproveLogNum.支付许可); approveLog.ItemId = v.LicenseId; approveLog.CreateTime = DateTime.Now; approveLog.OperationType = Convert.ToInt16(ApproveLogType.审批); approveLog.OperatorUID = CurrentUser.UID; if (state == (short)TraderPayLicenseState.Audited) { approveLog.Description = "审核通过:支付许可材料信息审核通过"; } //审核日志 approveLogService.InsertUpdate(approveLog, 0, false); } var CIDS = GetListByWhere(o => idss.Contains(o.Id)).Select(o => o.CID); UpAdmin(CIDS, 0); SaveChanges(); return(OpResult.Success()); } catch (Exception e) { LogEngine.WriteError(e); return(OpResult.Fail(e.Message)); } }
/// <summary> /// 支付订单分页查询 /// </summary> /// <param name="reqModel"></param> /// <returns></returns> public override object Query(PayBatchQueryRequest reqModel) { try { var canObj = CanAccess(); if (!canObj.Successed) { return(canObj); } var sxfReq = new SxfPayBatchQueryRequest(reqModel, MerchStoreModel); //sxf签名并请求 var sxfResult = PayHelper.SendPost(MerchStoreModel.ApiUrl, PaySignHelper.ToDicAndSign(sxfReq, MerchModel.SecretKey3, "signature")); if (sxfResult.Successed) { //处理返回结果 var sxfJObj = JObject.Parse(HttpUtility.UrlDecode(sxfResult.Data.ToString())); var sxfResultRsp = sxfJObj.ToObject <SxfPayBatchQueryResponse>(); if (sxfResultRsp.IsSuccess()) { var result = sxfResultRsp.ToPayBatchQueryRsp(MerchStoreModel); //Qct签名 var resultDic = PaySignHelper.ToDicAndSign(result, MerchModel.SecretKey, "sign"); return(resultDic); } else { LogEngine.WriteError(string.Format("支付订单分页查询请求错误:请求参数:{0},返回参数:{1}", sxfResultRsp.ToJson(), sxfResult.ToJson()), null, LogModule.支付交易); var rst = QctPayReturn.Fail(PayConst.FAIL_CODE_40004, sxfResultRsp.RspMsg); return(rst); } } else { return(sxfResult); } } catch (Exception ex) { LogEngine.WriteError(string.Format("支付订单分页查询请求异常:{0},请求参数:{1}", ex.Message, reqModel.ToJson()), null, LogModule.支付交易); var rst = QctPayReturn.Fail(); return(rst); } }
/// <summary> /// 保存购买者付款扫码返回结果 /// </summary> /// <param name="tradeResult"></param> /// <param name="tradeOrder"></param> /// <returns></returns> public bool SaveMchTradeResult(TradeResult tradeResult, out TradeOrder tradeOrder) { tradeOrder = null; var result = false; var tradeResultObj = _tradeResultRepost.GetQuery(o => o.OutTradeNo == tradeResult.OutTradeNo && o.MchId3 == tradeResult.MchId3 && o.StoreId3 == tradeResult.StoreId3).FirstOrDefault(); using (var trans = new EFDbContext().Database.BeginTransaction()) { try { if (tradeResultObj != null) { tradeResult.ToCopyProperty(tradeResultObj, new List <string>() { "CreateDT", "OutTradeNo", "Id", "MchId3", "StoreId3" }); } else { _tradeResultRepost.Add(tradeResult); } //变更TradeOrder数据状态 tradeOrder = _tradeOrderRepost.GetQuery(o => o.OutTradeNo == tradeResult.OutTradeNo && o.MchId3 == tradeResult.MchId3 && o.StoreId3 == tradeResult.StoreId3).FirstOrDefault(); tradeOrder.ReceiptAmount = tradeResult.ReceiptAmount; tradeOrder.TradeNo3 = tradeResult.TradeNo3; tradeOrder.State = tradeResult.TradeState; tradeOrder.TradeDate = tradeResult.TradeDate; tradeOrder.TradeTime = tradeResult.TradeTime; tradeOrder.UpdateDT = DateTime.Now; tradeOrder.PayChannel = tradeResult.PayChannel; result = _tradeResultRepost.SaveChanges(); var result1 = _tradeOrderRepost.SaveChanges(); } catch (Exception ex) { trans.Rollback();//回滚事务 _logEngine.WriteError(string.Format("保存后台结果通知并更新状态异常执行回滚操作:{0},参数:{1},异常信息:{2}", tradeResult.OutTradeNo, tradeResult.ToJson(), ex.Message), ex, LogModule.支付交易); result = false; } } return(result); }
/// <summary> /// 回发通知给商家 /// </summary> /// <param name="method"></param> /// <param name="dic"></param> /// <param name="cid"></param> /// <param name="notifyUrl"></param> /// <returns></returns> public SxfPayReturn SendPost(string method, Dictionary <string, object> dic, int cid, string notifyUrl) { var secretKey = (new PaySignService()).GetMerchSecretKeyByCID(cid); if (secretKey.IsNullOrEmpty()) { LogEngine.WriteError(string.Format("发起后台通知请求错误:找不到SecretKey,接口参数名:{0},通知URL:{1},发送参数:{2}", method, notifyUrl, dic.ToJson()), null, LogModule.支付交易); return(SxfPayReturn.Fail(msg: "数据接收失败")); } else { //Qct签名 dic = PaySignHelper.SetSign(dic, secretKey, "sign"); try { //给商家发送结果通知 var postResult = PayHelper.SendPost(notifyUrl, dic); if (postResult.Successed) { var resultObj = JsonConvert.DeserializeObject <JObject>(postResult.Data.ToString()); if (resultObj.Property("return_code", true) == PayConst.SUCCESS_CODE) { return(SxfPayReturn.Success()); } else { return(SxfPayReturn.Fail(msg: "数据接收失败")); } } else { return(SxfPayReturn.Fail(msg: postResult.ReturnMsg)); } } catch (Exception ex) { LogEngine.WriteError(string.Format("发起后台通知请求异常:商户通知Url无响应,接口参数名:{0},通知URL:{1}]", method, notifyUrl), ex, LogModule.支付交易); return(SxfPayReturn.Fail(PayConst.FAIL_CODE_40004, "")); } } }
/// <summary> /// 更新状态为到期 /// </summary> /// <param name="id"></param> /// <returns></returns> public OpResult upEndTime(int id) { try { var olist = AgentsInfoRepository.GetQuery(o => o.Id == id).ToList(); olist.Each(o => { o.ValidityYear = 0; o.StartTime = ""; o.Status = 4; }); AgentsInfoRepository.SaveChanges(); } catch (Exception e) { LogEngine.WriteError(e); throw new Exception("发生错误!", e); } return(OpResult.Success()); }
public object SxfPayNotify(SxfPayNotifyRequest reqModel) { try { if (reqModel.Type == PayConst.SXF_TYPE_PAYNOTIFY) { NotifyBuilder <SxfPayNotifyRequest> payNotify = new NotifyBuilderForPay(); return(payNotify.Build(reqModel)); } else { return(SxfPayReturn.Fail(msg: "通知参数type值错误")); } } catch (WebException ex) { LogEngine.WriteError(string.Format("支付通知异常:{0},请求参数:{1}", ex.Message, reqModel.ToJson()), ex, LogModule.支付交易); return(SxfPayReturn.Fail(msg: "通知格式错误")); } }
/// <summary> /// 更新状态 /// </summary> /// <param name="ids"></param> /// <param name="state">1是可用,2是暂停,3是注销,4是无效</param> /// <returns></returns> public OpResult UpState(string ids, short state) { OpResult opr = ExistState(ids, state); if (!opr.Successed) { return(opr); } else { try { using (EFDbContext context = new EFDbContext()) { using (TransactionScope transaction = new TransactionScope()) { var idss = ids.Split(',').Select(o => int.Parse(o)); DateTime dt = DateTime.Now; string UID = CurrentUser.UID; UpListByWhere(o => idss.Contains(o.Id), o => { o.State = state; o.AuditDT = dt; o.AuditUID = UID; o.ModifyDT = dt; o.ModifyUID = UID; }); //提交事务 transaction.Complete(); return(OpResult.Success()); } } } catch (Exception e) { LogEngine.WriteError(e); return(OpResult.Fail(e.InnerException.InnerException.Message)); } } }
/// <summary> /// 删除 /// </summary> /// <param name="ids"></param> /// <returns></returns> public OpResult Deletes(int[] ids) { var op = new OpResult(); try { var AgentsRelationships = AgentsRelationshipRepository.GetQuery(o => ids.Contains(o.Id)); if (!AgentsRelationships.Any()) { op.Message = "查不到数据"; return(op); } AgentsRelationshipRepository.RemoveRange(AgentsRelationships.ToList()); op.Successed = true; } catch (Exception ex) { op.Message = ex.Message; LogEngine.WriteError(ex); } return(op); }
public OpResult Save(Realm realm, int id, System.Collections.Specialized.NameValueCollection nvl) { //验证 var op = Verification(nvl, id); if (!op.Successed) { return(op); } else { try { InsertUpdate(realm, id); return(OpResult.Success()); } catch (Exception e) { LogEngine.WriteError(e); return(OpResult.Fail(e.InnerException.InnerException.Message)); } } }
/// <summary> /// 终止所选代理商 /// </summary> public OpResult StopAgents(string ids) { try { var sId = ids.Split(',').Select(o => int.Parse(o)); var olist = AgentsInfoRepository.GetQuery(o => sId.Contains(o.Id)).ToList(); var agentsId = olist.Select(o => o.AgentsId).ToArray(); //下级代理商 var sub = AgentsInfoRepository.GetQuery(o => agentsId.Contains(o.PAgentsId)).ToList(); if (sub.Any()) { return(OpResult.Fail("所选代理商存在下级代理商,如需终止请先终止下级代理商!")); } olist.Each(o => o.Status = 3); AgentsInfoRepository.SaveChanges(); } catch (Exception e) { LogEngine.WriteError(e); throw new Exception("发生错误!", e); } return(OpResult.Success()); }
public object SxfRefundNotify(SxfRefundNotifyRequest reqModel) { try { //退款通知日志记录 PayLogServer.WriteInfo(string.Format("退款通知:{0}", reqModel.ToJson())); if (reqModel.Type == PayConst.SXF_TYPE_RFDNOTIFY) { NotifyBuilder <SxfRefundNotifyRequest> rfdNotify = new NotifyBuilderForRefund(); return(rfdNotify.Build(reqModel)); } else { return(SxfPayReturn.Fail(msg: "通知参数type值错误")); } } catch (WebException ex) { LogEngine.WriteError(string.Format("退款通知异常:{0},请求参数:{1}", ex.Message, reqModel.ToJson()), ex, LogModule.支付交易); return(SxfPayReturn.Fail(msg: "通知格式错误")); } }
/// <summary> /// 发送请求 /// </summary> /// <returns></returns> public QctPayReturn SendPost <TSxfReqModel, TSxfRspModel>(string url, TSxfReqModel sxfReqModel) where TSxfReqModel : SxfBaseTradeRequest where TSxfRspModel : SxfBaseTradeResponse { //var resultStr = string.Empty; try { var postResult = PayHelper.SendPost(url, PaySignHelper.ToDicAndSign(sxfReqModel, MerchModel.SecretKey3, "signature")); if (postResult.Successed) { var resultObj = JsonConvert.DeserializeObject <TSxfRspModel>(postResult.Data.ToString()); if (resultObj.IsSuccess()) { return(QctPayReturn.Success(data: resultObj)); } else { //处理返回失败结果 LogEngine.WriteError(string.Format("发送交易请求成功但返回交易错误信息:请求参数:{0},返回参数:{1}]", sxfReqModel.ToJson(), postResult), null, LogModule.支付交易); if (string.IsNullOrWhiteSpace(resultObj.RspMsg)) { resultObj.RspMsg = "服务器请求失败"; } return(QctPayReturn.Fail(PayTradeHelper.TransCodeBySxf(resultObj.RspCod), resultObj.RspMsg)); } } else { return(postResult); } } catch (Exception ex) { return(ResultFail(msg: "订单请求失败", logMsg: string.Format("发送交易请求异常:服务器异常,请求参数:{0},异常信息:{1}]", sxfReqModel.ToJson(), ex.Message))); } }
/// <summary> /// 添加保留域名前缀 /// </summary> /// <param name="realm"></param> /// <returns></returns> public OpResult AddRetain(Realm realm) { if (isExistByWhere(o => o.CID == -1 && o.Name == realm.Name)) { return(OpResult.Fail("域名前缀已经是保留预留域名前缀,无法重复添加")); } else if (isExistByWhere(o => o.CID != -1 && o.Name == realm.Name)) { return(OpResult.Fail("域名前缀已经被商户使用,无法添加")); } else { try { InsertUpdate(realm, 0); return(OpResult.Success()); } catch (Exception e) { LogEngine.WriteError(e); return(OpResult.Fail(e.InnerException.InnerException.Message)); } } }
/// <summary> /// 删除 /// </summary> public Utility.OpResult Delete(string TraderTypeId) { var op = new OpResult(); try { var Traders = TradersRepository.GetQuery(o => o.TraderTypeId == TraderTypeId.ToUpper()); if (Traders.Any()) { op.Message = "无法删除,该类别已经在商户中使用"; return(op); } var type = TraderTypeRepository.GetQuery(o => o.TraderTypeId == TraderTypeId); TraderTypeRepository.RemoveRange(type.ToList()); op.Successed = true; LogEngine.WriteDelete("删除商户分类", LogModule.商户分类); } catch (Exception ex) { op.Message = ex.Message; LogEngine.WriteError(ex); } return(op); }
public OpResult Import(ImportSet obj, System.Web.HttpFileCollectionBase httpFiles, string fieldName, string columnName) { var op = new OpResult(); var errLs = new List <string>(); int count = 0; try { Dictionary <string, char> fieldCols = null; DataTable dt = null; op = ImportSetService.ImportSet(obj, httpFiles, fieldName, columnName, ref fieldCols, ref dt); if (!op.Successed) { return(op); } var brandClass = DataDictRepository.GetQuery(o => o.DicPSN == 5).ToList(); var otherClass = brandClass.FirstOrDefault(o => o.Title.StartsWith("其")); var brands = GetList(); var clsIdx = Convert.ToInt32(fieldCols["ClassifyId"]) - 65; var titleIdx = Convert.ToInt32(fieldCols["Title"]) - 65; count = dt.Rows.Count; var max = DataDictRepository.GetQuery().Max(o => o.DicSN); for (int i = dt.Rows.Count - 1; i >= 0; i--) { try { var dr = dt.Rows[i]; var text = dr[clsIdx].ToString(); if (text.IsNullOrEmpty()) { continue; } var cls = brandClass.FirstOrDefault(o => o.Title == text); if (cls != null) { dr[clsIdx] = cls.DicSN.ToString(); } else { if (obj.RefCreate) { var data = new SysDataDictionary { DicPSN = 5, Status = true, Title = text, DicSN = max++, CreateDT = DateTime.Now, CreateUID = CurrentUser.UID }; DataDictRepository.Add(data); brandClass.Add(data); dr[clsIdx] = data.DicSN.ToString(); } else if (otherClass != null) { dr[clsIdx] = otherClass.DicSN.ToString(); } else { errLs.Add("行业分类[" + text + "]不存在!"); dt.Rows.RemoveAt(i);//去除不导入 continue; } } text = dr[titleIdx].ToString().Trim(); if (brands.Any(o => o.Title == text)) { errLs.Add("品牌名称[" + text + "]已存在!"); dt.Rows.RemoveAt(i);//去除不导入 } else { brands.Add(new ProductBrand() { Title = text }); } } catch (Exception e) { throw new Exception("品牌分类处理失败!", e); } } var maxsn = BrandRepository.GetQuery().Max(o => (int?)o.BrandSN).GetValueOrDefault(); StringBuilder sb = new StringBuilder(); sb.Append("begin tran "); foreach (DataRow dr in dt.Rows) { sb.Append("insert into "); sb.Append(obj.TableName); sb.Append("(BrandSN,State,Source,"); sb.Append(string.Join(",", fieldCols.Keys)); sb.Append(") values("); sb.AppendFormat("{0},", ++maxsn); sb.AppendFormat("1,0,"); foreach (var de in fieldCols) { var index = Convert.ToInt32(de.Value) - 65; try { var text = dr[index].ToString(); sb.Append("'" + text + "',"); } catch (Exception e) { throw new Exception("列选择超过范围!", e); } } sb = sb.Remove(sb.Length - 1, 1); sb.Append(");"); } sb.Append(" commit tran"); if (dt.Rows.Count > 0) { op.Successed = new DBHelper().ExecuteNonQueryText(sb.ToString(), null) > 0; LogEngine.WriteInsert("品牌导入", LogModule.档案管理); } } catch (Exception ex) { op.Message = ex.Message; op.Successed = false; LogEngine.WriteError(ex); errLs.Add("导入出现异常!"); } return(CommonService.GenerateImportHtml(errLs, count)); }
public OpResult UpdateData() { ProductPublishVer ver = null; try { using (TransactionScope tran = new TransactionScope()) { ver = PublishVerService.UpdatePublish(0, 1, CurrentUser.FullName); if (ver.ProductModuleVer != null) { var menus = new List <SysMenus>(); var limits = new List <SysLimits>(); ver.ProductModuleVer.ProductMenuLimits.Each(o => { switch (o.Type) { case 1: menus.Add(new SysMenus() { MenuId = o.MenuId, PMenuId = o.PMenuId, SortOrder = o.SortOrder, Status = o.Status, Title = o.Title, URL = o.Url }); break; case 3: limits.Add(new SysLimits() { LimitId = o.MenuId, PLimitId = o.PMenuId, SortOrder = o.SortOrder, Status = o.Status, Title = o.Title }); break; default: break; } }); if (menus.Any()) { var list = MenuRepository.GetQuery().ToList(); MenuRepository.RemoveRange(list); MenuRepository.AddRange(menus); } if (limits.Any()) { LimitRepository.RemoveRange(LimitRepository.GetQuery().ToList()); LimitRepository.AddRange(limits); } } if (ver.ProductRoleVer != null) { var roles = new List <SysRoles>(); ver.ProductRoleVer.ProductRoles.Each(o => { var role = new SysRoles(); role.CreateDT = DateTime.Now; role.CreateUID = CurrentUser.UID; role.RoleId = o.RoleId.GetValueOrDefault(); role.Title = o.Title; role.Limitids = o.Limitids; role.Type = 0; role.Status = true; role.UpdateDT = role.CreateDT; role.UpdateUID = role.CreateUID; role.SysRoleDatas = new List <SysRoleData>(); o.ProductRoleDatas.Each(i => { role.SysRoleDatas.Add(new SysRoleData() { HasSelected = i.HasSelected, MenuId = i.MenuId, PMenuId = i.PMenuId, SortOrder = i.SortOrder }); }); roles.Add(role); }); if (roles.Any()) { var list = RoleRepository.GetQuery(o => o.Type == 0).Include(o => o.SysRoleDatas).ToList(); roles.Each(o => { var r = list.FirstOrDefault(i => i.RoleId == o.RoleId); if (r != null) { o.DeptId = r.DeptId; if (!r.Memo.IsNullOrEmpty()) { o.Memo = r.Memo; } o.Status = r.Status; o.CreateDT = r.CreateDT; o.CreateUID = r.CreateUID; } }); RoleDataRepository.RemoveRange(list.SelectMany(o => o.SysRoleDatas).ToList()); RoleRepository.RemoveRange(list); RoleRepository.AddRange(roles); } } if (ver.ProductDictionaryVer != null) { var dicts = new List <SysDataDictionary>(); ver.ProductDictionaryVer.ProductDictionaryDatas.Each(o => { dicts.Add(new SysDataDictionary() { CreateDT = DateTime.Now, CreateUID = CurrentUser.UID, Depth = o.Depth, DicPSN = o.DicPSN, DicSN = o.DicSN, HasChild = o.HasChild, SortOrder = o.SortOrder, Status = Convert.ToBoolean(o.Status), Title = o.Title }); }); if (dicts.Any()) { var list = DictRepository.GetQuery().ToList(); DictRepository.RemoveRange(list); DictRepository.AddRange(dicts); } } var sqls = new Dictionary <int, string>(); var db = new DBFramework.DBHelper(); if (ver.ProductDataVer != null) { ver.ProductDataVer.ProductDataSqls.OrderBy(o => o.RunSort).Each(o => { sqls[o.MenuId] = o.RunSql; }); foreach (var de in sqls) { try { db.ExecuteNonQueryText(de.Value, null); } catch (Exception ex) { throw new Exception("更新初始化数据失败!MenuId:" + de.Key + ";" + LogEngine.ToInnerException(ex).Message); } } sqls.Clear(); } ver.ProductPublishSqls.OrderBy(o => o.RunSort).Each(o => { sqls[o.MenuId] = o.RunSql; }); foreach (var de in sqls) { try { db.ExecuteNonQueryText(de.Value, null); } catch (Exception ex) { throw new Exception("历史数据处理失败!MenuId:" + de.Key + ";" + LogEngine.ToInnerException(ex).Message); } } tran.Complete(); } }catch (Exception e) { LogEngine.WriteError(e); if (ver != null) { PublishVerService.AddUpdateLog(ver.PublishId, 0, false, LogEngine.ToInnerException(e).Message, CurrentUser.FullName); } return(OpResult.Fail()); } return(OpResult.Success()); }
/// <summary> /// 记录错误日志 /// </summary> /// <param name="msg"></param> public static void WriteError(string msg, Exception ex) { var log = new LogEngine(); log.WriteError(msg, ex, LogModule.支付交易); }
public OpResult Import(ImportSet obj, System.Web.HttpFileCollectionBase httpFiles, string fieldName, string columnName) { var op = new OpResult(); var errLs = new List <string>(); int count = 0; try { Dictionary <string, char> fieldCols = null; DataTable dt = null; op = ImportSetService.ImportSet(obj, httpFiles, fieldName, columnName, ref fieldCols, ref dt); if (!op.Successed) { return(op); } var categorys = ProductCategoryService.GetList(); var otherClass = categorys.FirstOrDefault(o => o.Title.StartsWith("其")); var brands = BrandService.GetList(); var otherBrand = brands.FirstOrDefault(o => o.Title.StartsWith("其")); var brandClass = DictionaryService.GetChildList(5); var otherBrandClass = brandClass.FirstOrDefault(o => o.Title.StartsWith("其"));//? var units = DictionaryService.GetSubUnitCategories(); var otherUnit = units.FirstOrDefault(o => o.Title.StartsWith("其")); var products = GetList(); var maxCate = ProductCategoryService.MaxSN() + 1; var maxBrand = BrandService.MaxSN() + 1; var maxDict = DictionaryService.MaxSN() + 1; var clsIdx = Convert.ToInt32(fieldCols["CategorySN"]) - 65; var brandIdx = Convert.ToInt32(fieldCols["BrandSN"]) - 65; var unitIdx = Convert.ToInt32(fieldCols["SubUnitId"]) - 65; var titleIdx = Convert.ToInt32(fieldCols["Barcode"]) - 65; count = dt.Rows.Count; for (int i = dt.Rows.Count - 1; i >= 0; i--) { try { var dr = dt.Rows[i]; #region 条码验证 var text = dr[titleIdx].ToString(); if (text.IsNullOrEmpty()) { errLs.Add("行号[" + i + "]条码为空!"); dt.Rows.RemoveAt(i); continue; } else if (products.Any(o => o.Barcode == text)) { errLs.Add("条码[" + text + "]已存在!"); dt.Rows.RemoveAt(i); continue; } else { products.Add(new ProductRecord() { Barcode = text }); } #endregion #region 处理类别 text = dr[clsIdx].ToString(); if (!text.IsNullOrEmpty() && text.Contains("/")) { var cates = text.Split('/'); var first = cates.FirstOrDefault(); var third = cates.LastOrDefault(); var second = ""; if (cates.Length == 3) { second = cates[1]; third = cates[2]; } else if (cates.Length == 2) { second = cates[1]; third = null; } else if (cates.Length > 3) { second = cates[1]; third = text.Replace(first + "/" + second + "/", ""); } var parent = categorys.FirstOrDefault(o => o.Title == first); var cls = parent != null?categorys.FirstOrDefault(o => o.CategoryPSN == parent.CategorySN && o.Title == second) : null; cls = cls != null && !third.IsNullOrEmpty() ? categorys.FirstOrDefault(o => o.CategoryPSN == cls.CategorySN && o.Title == third) : cls; if (cls != null) { dr[clsIdx] = cls.CategorySN.ToString(); } else { if (obj.RefCreate) { var list = new List <ProductCategory>(); cls = categorys.FirstOrDefault(o => o.Title == first); int psn = 0; short grade = 2; if (cls == null) { parent = new ProductCategory() { CategorySN = maxCate, Title = first, CategoryCode = 1, Grade = 1, State = 1, }; list.Add(parent); psn = parent.CategorySN; var child = new ProductCategory() { CategoryPSN = psn, CategorySN = ++maxCate, Title = second, CategoryCode = 1, Grade = grade, State = 1, }; list.Add(child); psn = child.CategorySN; grade = 3; if (!third.IsNullOrEmpty()) { child = new ProductCategory() { CategoryPSN = psn, CategorySN = ++maxCate, Title = third, CategoryCode = 1, Grade = grade, State = 1, }; psn = child.CategorySN; list.Add(child); } } else { psn = cls.CategorySN; cls = categorys.FirstOrDefault(o => o.Title == second); if (cls == null) { var maxcode = ProductCategoryService.MaxCode(psn); var child = new ProductCategory() { CategoryPSN = psn, CategorySN = ++maxCate, Title = second, CategoryCode = ++maxcode, Grade = grade, State = 1 }; list.Add(child); psn = child.CategorySN; grade = 3; } else { psn = cls.CategorySN; } if (!third.IsNullOrEmpty()) { cls = categorys.FirstOrDefault(o => o.Title == third); if (cls == null) { var maxcode = ProductCategoryService.MaxCode(psn); var child = new ProductCategory() { CategoryPSN = psn, CategorySN = ++maxCate, Title = third, CategoryCode = ++maxcode, Grade = grade, State = 1 }; list.Add(child); psn = child.CategorySN; } else { psn = cls.CategorySN; } } } ProductCategoryService.AddRange(list); categorys.AddRange(list); dr[clsIdx] = psn.ToString(); } else if (otherClass != null) { dr[clsIdx] = otherClass.CategorySN.ToString(); } else { errLs.Add("条码[" + dr[titleIdx] + "]类别不存在!"); dt.Rows.RemoveAt(i);//去除不导入 continue; } } } else { errLs.Add("条码[" + dr[titleIdx] + "]类别不存在!"); dt.Rows.RemoveAt(i);//去除不导入 continue; } #endregion #region 处理品牌 text = dr[brandIdx].ToString(); if (!text.IsNullOrEmpty()) { var cls = brands.FirstOrDefault(o => o.Title == text); if (cls != null) { dr[brandIdx] = cls.BrandSN.ToString(); } else { if (obj.RefCreate) { if (otherBrandClass == null) { errLs.Add("条码[" + dr[titleIdx] + "]品牌分类不存在!"); dt.Rows.RemoveAt(i); continue; } var data = new ProductBrand() { //BrandSN = maxBrand++, Title = text, ClassifyId = otherBrandClass.DicSN, JianPin = "", State = 1 }; BrandService.SaveOrUpdate(data); brands.Add(data); dr[brandIdx] = data.BrandSN.ToString(); } else if (otherBrand != null) { dr[brandIdx] = otherBrand.BrandSN.ToString(); } else { errLs.Add("条码[" + dr[titleIdx] + "]品牌不存在!"); dt.Rows.RemoveAt(i); continue; } } } #endregion #region 处理单位 text = dr[unitIdx].ToString(); if (!text.IsNullOrEmpty()) { var cls = units.FirstOrDefault(o => o.Title == text); if (cls != null) { dr[unitIdx] = cls.DicSN.ToString(); } else { if (obj.RefCreate) { var data = new SysDataDictionary() { DicPSN = 4, //DicSN = maxDict++, Status = true, Title = text, }; DictionaryService.SaveOrUpdate(data); units.Add(data); dr[unitIdx] = data.DicSN.ToString(); } else if (otherUnit != null) { dr[unitIdx] = otherUnit.DicSN.ToString(); } else { errLs.Add("条码[" + dr[titleIdx] + "]单位不存在!"); dt.Rows.RemoveAt(i); continue; } } } #endregion } catch (Exception e) { throw new Exception("创建相关记录失败," + e.Message, e); } } StringBuilder sb = new StringBuilder(); sb.Append("begin tran "); foreach (DataRow dr in dt.Rows) { sb.Append("insert into "); sb.Append(obj.TableName); sb.Append("(State,"); sb.Append(string.Join(",", fieldCols.Keys)); sb.Append(") values(1,"); foreach (var de in fieldCols) { var index = Convert.ToInt32(de.Value) - 65; try { var text = dr[index].ToString().Trim(); sb.Append("'" + text + "',"); } catch (Exception e) { throw new Exception("列选择超过范围!", e); } } sb = sb.Remove(sb.Length - 1, 1); sb.Append(");"); } sb.Append(" commit tran"); if (dt.Rows.Count > 0) { new DBFramework.DBHelper().ExecuteNonQueryText(sb.ToString(), null); } } catch (Exception ex) { op.Message = ex.Message; op.Successed = false; LogEngine.WriteError(ex); errLs.Add("导入出现异常!"); } return(CommonService.GenerateImportHtml(errLs, count)); }
/// <summary> /// 状态 /// </summary> /// <param name="ids"></param> /// <param name="state">2是可用,3是被驳回,4是暂停,5是注销,6是无效</param> /// <returns></returns> public OpResult UpState(string ids, short state, string specific) { OpResult opr = ExistState(ids, state); if (!opr.Successed) { return(opr); } else { try { using (EFDbContext context = new EFDbContext()) { using (TransactionScope transaction = new TransactionScope()) { var idss = ids.Split(',').Select(o => int.Parse(o)); DateTime dt = DateTime.Now; string UID = CurrentUser.UID; UpListByWhere(o => idss.Contains(o.Id), o => { o.State = state; o.AuditDT = dt; o.AuditUID = UID; o.ModifyDT = dt; o.ModifyUID = UID; }); if (state == (short)TraderBalanceAccountState.Enabled) { var CIDS = GetListByWhere(o => idss.Contains(o.Id)).Select(o => o.CID); payLicenseService.UpAdmin(CIDS, 1); SaveChanges(); } var listLog = GetListByWhere(o => idss.Contains(o.Id)); foreach (var v in listLog) { ApproveLog approveLog = new ApproveLog(); approveLog.ModuleNum = Convert.ToInt16(ApproveLogNum.支付许可); approveLog.ItemId = v.LicenseId; approveLog.CreateTime = dt; if (state == 3) { approveLog.OperationType = Convert.ToInt16(ApproveLogType.驳回); } else { approveLog.OperationType = Convert.ToInt16(ApproveLogType.审批); } approveLog.OperatorUID = UID; if (state == 2) { approveLog.Description = "结算账户已被设为可用" + (specific == "" ? "" : ":" + specific); } else if (state == 3) { approveLog.Description = "结算账户被驳回" + (specific == "" ? "" : ":" + specific); } else if (state == 4) { approveLog.Description = "结算账户被暂停" + (specific == "" ? "" : ":" + specific); } else if (state == 5) { approveLog.Description = "结算账户被注销" + (specific == "" ? "" : ":" + specific); } else if (state == 6) { approveLog.Description = "结算账户被设为无效" + (specific == "" ? "" : ":" + specific); } //审核日志 approveLogService.InsertUpdate(approveLog, 0); } //提交事务 transaction.Complete(); return(OpResult.Success()); } } } catch (Exception e) { LogEngine.WriteError(e); return(OpResult.Fail(e.InnerException.InnerException.Message)); } } }
/// <summary> /// 更新状态 /// </summary> /// <param name="ids"></param> /// <param name="state">1是可用,2是暂停,3是注销,4是无效</param> /// <returns></returns> public OpResult UpState(string ids, short state) { OpResult opr = ExistState(ids, state); if (!opr.Successed) { return(opr); } else { try { using (EFDbContext context = new EFDbContext()) { using (TransactionScope transaction = new TransactionScope()) { var idss = ids.Split(',').Select(o => int.Parse(o)); DateTime dt = DateTime.Now; string UID = CurrentUser.UID; UpListByWhere(o => idss.Contains(o.Id), o => { o.State = state; o.AuditDT = dt; o.AuditUID = UID; o.ModifyDT = dt; o.ModifyUID = UID; }); string des = ""; if (state == (short)TraderPayCchannelState.Enabled) { des = "支付通道已被设为可用"; } if (state == (short)TraderPayCchannelState.Pause) { des = "支付通道已被设为暂停"; } var listLog = GetListByWhere(o => idss.Contains(o.Id)); foreach (var v in listLog) { string LicenseId = payLicenseService.GetEntityByWhere(o => o.CID == v.CID).LicenseId; ApproveLog approveLog = new ApproveLog(); approveLog.ModuleNum = Convert.ToInt16(ApproveLogNum.支付许可); approveLog.ItemId = LicenseId; approveLog.CreateTime = dt; approveLog.OperationType = Convert.ToInt16(ApproveLogType.审批); approveLog.OperatorUID = UID; approveLog.Description = des; //审核日志 approveLogService.InsertUpdate(approveLog, 0); } if (state == (short)TraderPayCchannelState.Enabled) { var CIDS = GetListByWhere(o => idss.Contains(o.Id)).Select(o => o.CID); payLicenseService.UpAdmin(CIDS, 2); SaveChanges(); } //提交事务 transaction.Complete(); return(OpResult.Success()); } } } catch (Exception e) { LogEngine.WriteError(e); return(OpResult.Fail(e.InnerException.InnerException.Message)); } } }
/// <summary> /// 导入 /// </summary> /// <param name="obj"></param> /// <param name="httpFiles"></param> /// <param name="fieldName"></param> /// <param name="columnName"></param> /// <returns></returns> public OpResult Import(ImportSet obj, System.Web.HttpFileCollectionBase httpFiles, string fieldName, string columnName) { var op = new OpResult(); var errLs = new List <string>(); int count = 0; try { Dictionary <string, char> fieldCols = null; DataTable dt = null; op = ImportSetService.ImportSet(obj, httpFiles, fieldName, columnName, ref fieldCols, ref dt); if (!op.Successed) { return(op); } //数据字典 var dataDictionary = SysDataDictionaryRepository.GetQuery(); //设备分类名称 var CIdx = Convert.ToInt32(fieldCols["CategoryId"]) - 65; //设备名称 var TitleIdx = Convert.ToInt32(fieldCols["Title"]) - 65; //品牌 var BrandIdx = Convert.ToInt32(fieldCols["Brand"]) - 65; //型号 var SpecIdx = Convert.ToInt32(fieldCols["Spec"]) - 65; count = dt.Rows.Count; for (int i = dt.Rows.Count - 1; i >= 0; i--) { try { var dr = dt.Rows[i]; #region 验证 //设备分类名称 var text = dr[CIdx].ToString().Trim(); if (text.IsNullOrEmpty()) { errLs.Add("行号[" + (i + 1) + "]设备分类为空!"); dt.Rows.RemoveAt(i); continue; } var dd = dataDictionary.Where(o => o.DicPSN == 197 && o.Title == text); if (!dd.Any()) { errLs.Add("行号[" + (i + 1) + "]设备分类在字典中不存在,请先添加!"); dt.Rows.RemoveAt(i); continue; } else { dr[CIdx] = dd.Select(o => o.DicSN).FirstOrDefault(); } //设备名称 var text2 = dr[TitleIdx].ToString().Trim(); if (text2.IsNullOrEmpty()) { errLs.Add("行号[" + (i + 1) + "]设备名称为空!"); dt.Rows.RemoveAt(i); continue; } //品牌 var text3 = dr[BrandIdx].ToString().Trim(); if (text3.IsNullOrEmpty()) { errLs.Add("行号[" + (i + 1) + "]品牌为空!"); dt.Rows.RemoveAt(i); continue; } //型号 var text4 = dr[SpecIdx].ToString().Trim(); if (text4.IsNullOrEmpty()) { errLs.Add("行号[" + (i + 1) + "]型号为空!"); dt.Rows.RemoveAt(i); continue; } //设备分类ID var cid = dataDictionary.Where(o => o.DicPSN == 197 && o.Title == text).Select(o => o.DicSN).FirstOrDefault(); var isExist = DevicesRepository.GetQuery(o => o.CategoryId == cid && o.Title == text2 && o.Brand == text3 && o.Spec == text4); if (isExist.Any()) { errLs.Add("行号[" + (i + 1) + "]设备记录已经存在!"); dt.Rows.RemoveAt(i); continue; } #endregion } catch (Exception e) { throw new Exception("创建相关记录失败," + e.Message, e); } } StringBuilder sb = new StringBuilder(); sb.Append("begin tran "); foreach (DataRow dr in dt.Rows) { Devices devices = new Devices(); devices.DeviceId = CommonService.GUID.ToUpper(); devices.CreateUID = CurrentUser.UID; devices.CreateDT = DateTime.Now; sb.Append("insert into "); sb.Append(obj.TableName); sb.Append("(Status,DeviceId,CreateDT,CreateUID,"); sb.Append(string.Join(",", fieldCols.Keys)); sb.Append(") values(1,'" + devices.DeviceId + "','" + devices.CreateDT + "','" + devices.CreateUID + "',"); foreach (var de in fieldCols) { var index = Convert.ToInt32(de.Value) - 65; try { var text = dr[index].ToString().Trim(); sb.Append("'" + text + "',"); } catch (Exception e) { throw new Exception("列选择超过范围!", e); } } sb = sb.Remove(sb.Length - 1, 1); sb.Append(");"); } sb.Append(" commit tran"); new DBFramework.DBHelper().ExecuteNonQueryText(sb.ToString(), null); } catch (Exception ex) { op.Message = ex.Message; op.Successed = false; LogEngine.WriteError(ex); errLs.Add("导入出现异常!"); } return(CommonService.GenerateImportHtml(errLs, count)); }
/// <summary> /// 保存 /// </summary> /// <param name="agentsInfo">基本信息</param> /// <param name="hpf">证件照</param> /// <param name="nvl"></param> /// <returns></returns> public OpResult Save(AgentsInfo agentsInfo, HttpPostedFileBase hpf, System.Collections.Specialized.NameValueCollection nvl) { try { using (EFDbContext context = new EFDbContext()) { using (TransactionScope transaction = new TransactionScope()) { //基本信息 OpResult op = SaveOrUpdate(agentsInfo, hpf); //代理商编号 int AgentsId = Convert.ToInt32(op.Message); //删除已经存在的代理商下级关系 int[] ids = AgentsRelationshipRepository.GetQuery(o => o.SubAgentsId == AgentsId).Select(o => o.Id).ToArray(); agentsRelationshipService.Deletes(ids); //上级代理商编号 int pid = Convert.ToInt32(op.Message); //代理商下级关系 for (int i = 0; i < 3; i++) { AgentsRelationship agentsRelationship = new AgentsRelationship(); AgentsInfo aInfo = AgentsInfoRepository.GetQuery(o => o.AgentsId == pid).FirstOrDefault(); pid = aInfo.PAgentsId; agentsRelationship.SubAgentsId = AgentsId; agentsRelationship.AgentsId = pid; agentsRelationship.Status = 1; if (pid == 0 && i == 0) { agentsRelationship.Depth = 0; agentsRelationshipService.SaveOrUpdate(agentsRelationship); break; } else if (pid == 0 && i != 0) { break; } else if (pid != 0) { agentsRelationship.Depth = Convert.ToInt16(i + 1); } agentsRelationshipService.SaveOrUpdate(agentsRelationship); } //结算银行机构 string Agency = (nvl["Agency"] ?? "").Trim(); //结算账户类型 string BillingType = (nvl["BillingType"] ?? "").Trim(); //结算卡号 string CardNum = (nvl["CardNum"] ?? "").Trim(); //账户名称 string CardName = (nvl["CardName"] ?? "").Trim(); //账户状态 string cardStatus = (nvl["cardStatus"] ?? "").Trim(); //交易支付通道 string PayChannel = (nvl["PayChannel"] ?? "").Trim(); //成本费率(%) string Cost = (nvl["Cost"] ?? "").Trim(); //下级费率(%) string Lower = (nvl["Lower"] ?? "").Trim(); //结算账户 BankCardInfo bankCardInfo = new BankCardInfo(); bankCardInfo.AgentsId = AgentsId; bankCardInfo.Type = 1; bankCardInfo.Agency = Agency; bankCardInfo.BillingType = BillingType == "" ? -1 : Convert.ToInt32(BillingType); bankCardInfo.CardNum = CardNum; bankCardInfo.CardName = CardName; bankCardInfo.Status = cardStatus == "" ? -1 : Convert.ToInt32(cardStatus); if (agentsInfo.Id > 0) { int bankCardInfoId = 0; BankCardInfo bankCardInfo2 = bankCardInfoService.GetOne(AgentsId); if (bankCardInfo2 != null) { bankCardInfoId = bankCardInfo2.Id; } bankCardInfo.Id = bankCardInfoId; } bankCardInfoService.SaveOrUpdate(bankCardInfo); //支付渠道 AgentPay agentPay = new AgentPay(); agentPay.AgentsId = AgentsId; agentPay.ApiNo = PayChannel == "" ? -1 : Convert.ToInt32(PayChannel); agentPay.Cost = Cost == "" ? Convert.ToDecimal("0.00") : Convert.ToDecimal(Cost); agentPay.Lower = Lower == "" ? Convert.ToDecimal("0.00") : Convert.ToDecimal(Lower); if (agentsInfo.Id > 0) { int agentPayId = 0; AgentPay agentPay2 = agentPayService.GetOne(AgentsId); if (agentPay2 != null) { agentPayId = agentPay2.Id; } agentPay.Id = agentPayId; } agentPayService.SaveOrUpdate(agentPay); //提交事务 transaction.Complete(); return(OpResult.Success()); } } } catch (Exception e) { LogEngine.WriteError(e); return(OpResult.Fail(e.InnerException.InnerException.Message)); } }