コード例 #1
0
        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);
        }
コード例 #2
0
        /// <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: "数据接收失败"));
                }
            }
        }
コード例 #3
0
        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));
                }
            }
        }
コード例 #4
0
        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()
                    };
                }
            }
        }
コード例 #5
0
        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));
                }
            }
        }
コード例 #6
0
        /// <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));
                }
            }
        }
コード例 #7
0
 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());
     }
 }
コード例 #8
0
        /// <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: "订单请求失败,服务器繁忙!"));
            }
        }
コード例 #9
0
        /// <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));
            }
        }
コード例 #10
0
        /// <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);
            }
        }
コード例 #11
0
        /// <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);
        }
コード例 #12
0
        /// <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, ""));
                }
            }
        }
コード例 #13
0
 /// <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());
 }
コード例 #14
0
 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: "通知格式错误"));
     }
 }
コード例 #15
0
        /// <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));
                }
            }
        }
コード例 #16
0
        /// <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);
        }
コード例 #17
0
ファイル: RealmService.cs プロジェクト: Lincoln007/DotNet.ERP
        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));
                }
            }
        }
コード例 #18
0
 /// <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());
 }
コード例 #19
0
        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: "通知格式错误"));
            }
        }
コード例 #20
0
ファイル: OrderBuilder.cs プロジェクト: Lincoln007/DotNet.ERP
 /// <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)));
     }
 }
コード例 #21
0
ファイル: RealmService.cs プロジェクト: Lincoln007/DotNet.ERP
 /// <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));
         }
     }
 }
コード例 #22
0
        /// <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);
        }
コード例 #23
0
ファイル: BrandService.cs プロジェクト: Lincoln007/DotNet.ERP
        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));
        }
コード例 #24
0
        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());
        }
コード例 #25
0
        /// <summary>
        /// 记录错误日志
        /// </summary>
        /// <param name="msg"></param>
        public static void WriteError(string msg, Exception ex)
        {
            var log = new LogEngine();

            log.WriteError(msg, ex, LogModule.支付交易);
        }
コード例 #26
0
        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));
        }
コード例 #27
0
        /// <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));
                }
            }
        }
コード例 #28
0
        /// <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));
                }
            }
        }
コード例 #29
0
        /// <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));
        }
コード例 #30
0
        /// <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));
            }
        }