Ejemplo n.º 1
0
        /// <summary>
        /// 同步基础数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnBaseInfo_Click(object sender, EventArgs e)
        {
            try
            {
                // 记录执行时间类
                using (StopWatcherAuto auto = new StopWatcherAuto())
                {
                    // 银行账户信息
                    if (this.ChkBankAccount.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncBankAccount();
                    }
                    // 关帐日信息
                    if (this.ChkCloseBillDay.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncCloseBillDay();
                    }
                    // 账户关帐日信息
                    if (this.ChkAccountingCloseBillDay.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncAccountingCloseBillDay();
                    }
                }

                MessageBox.Show("同步基础数据成功。");
            }
            catch (Exception ex)
            {
                this.BeginInvoke(new ExportLogHandler(ExportLog), ex.Message);
                this.BeginInvoke(new ExportLogHandler(ExportLog), ex.StackTrace);
                MessageBox.Show("同步基础数据失败。请查看日志,修改错误。");
            }
        }
Ejemplo n.º 2
0
        protected override void DoExecute(RequestEntity requestEntity, ResponseEntity responseEntity)
        {
            // 记录执行时间类
            using (StopWatcherAuto auto = new StopWatcherAuto())
            {
                try
                {
                    // 定义接收客户端参数的变量
                    IDictionary <string, string> paraDict = requestEntity.Parameters;
                    DunSearchFilter filter
                                  = ServiceUtility.ConvertToFilterFromDict <DunSearchFilter>(paraDict);
                    filter.UserId = responseEntity.UserId;

                    //检索数据获取符合条件的催收单信息
                    //Singleton<GetOverDueReportSearchResultBLL>.Instance.SearchData(filter, responseEntity);
                    Singleton <DunSearchBLL> .Instance.SearchData(filter, responseEntity);
                }
                catch (Exception ex)
                {
                    responseEntity.ResponseStatus  = (int)EnumResponseState.Others;
                    responseEntity.ResponseMessage = "催收单列表查询失败。" + ex.Message.ToString();
                    m_Logger.Error("催收单列表查询失败:" + ex.Message.ToString());
                    m_Logger.Error("催收单列表查询失败:" + ex.StackTrace.ToString());
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 程序执行主入口
        /// </summary>
        /// <param name="serviceData"></param>
        public void Execute(object serviceData)
        {
            m_Logger = LogFactory.CreateLogger(this.GetType());

            try
            {
                ResponseEntity responseEntity = new ResponseEntity();
                ServiceData    data           = serviceData as ServiceData;
                if (data == null)
                {
                    ExportLog("服务端传输数据错误。");
                    return;
                }

                ServiceCommand command = data.Command;
                if (command == null)
                {
                    ExportLog("请求命令格式出错。");
                    return;
                }

                RequestEntity requestEntity = command.Entity as RequestEntity;
                if (requestEntity == null)
                {
                    ExportLog("请求命令格式出错。");
                    ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.RequestCommandError);
                    return;
                }

                // 请求ID
                responseEntity.RequestId = requestEntity.RequestId;
                // 用户名
                responseEntity.UserId = requestEntity.UserId;

                // 各自处理
                ExportLog("开始处理请求。");
                ExportServiceInfo();
                // 记录执行时间类
                using (StopWatcherAuto auto = new StopWatcherAuto())
                {
                    try
                    {
                        DoExecute(requestEntity, responseEntity);
                    }
                    catch (Exception ex)
                    {
                        // 输出异常日志
                        ExportExceptionLog(responseEntity, ex);
                    }
                }
                ExportLog("处理请求结束。");

                //放入字典
                Singleton <ResultCacheManager <ResponseEntity> > .Instance.AddResult(command.Guid, responseEntity);
            }
            catch (Exception ex)
            {
                m_Logger.Fatal(this.GetType().Name, ex);
            }
        }
        protected override void DoExecute(Entity.Communication.RequestEntity requestEntity, Entity.Communication.ResponseEntity responseEntity)
        {
            using (StopWatcherAuto auto = new StopWatcherAuto())
            {
                IDictionary <string, string> paraDict = requestEntity.Parameters;

                //BaseFilter filter = ServiceUtility.ConvertToFilterFromDict<QueryEnumerationFilter>(paraDict);
                //filter.UserId = requestEntity.UserId;
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 程序执行主入口
        /// </summary>
        /// <param name="requestEntity"></param>
        /// <param name="responseEntity"></param>
        protected override void DoExecute(RequestEntity requestEntity, ResponseEntity responseEntity)
        {
            //传递的参数
            IDictionary <string, string> dicParamteters = requestEntity.Parameters;

            string errorMessage = "";

            // 记录执行时间类
            using (StopWatcherAuto auto = new StopWatcherAuto())
            {
                try
                {
                    // 定义接收客户端参数的变量
                    IDictionary <string, string> paraDict = requestEntity.Parameters;
                    BadTransferFilter            filter   = LogicUtility.ConvertToFilterFromDict <BadTransferFilter>(paraDict);

                    // 根据检索条件获取坏账清贷信息
                    var result = Singleton <BadTransferDal> .Instance.GetBadTransferInfor(
                        filter.BusinessID, filter.ContractNo, filter.CustomerName, filter.IdenNo);

                    if (result == null || result.Count == 0)
                    {
                        responseEntity.ResponseStatus  = (int)EnumResponseState.NoResult;
                        responseEntity.ResponseMessage = "无申请记录";
                        m_Logger.Info("无申请记录。");
                    }
                    else
                    {
                        var responseResult = new ResponseListResult <BadTransferSearchData>();
                        responseResult.LstResult = result;

                        responseEntity.ResponseStatus = (int)EnumResponseState.Success;
                        responseEntity.Results        = responseResult;
                    }
                }
                catch (Exception ex)
                {
                    errorMessage = "";
                    responseEntity.ResponseStatus  = (int)EnumResponseState.Others;
                    responseEntity.ResponseMessage = "检索申请记录失败。" + ex.Message.ToString();
                    m_Logger.Error("检索申请记录失败:" + ex.Message.ToString());
                    m_Logger.Error("检索申请记录失败:" + ex.StackTrace.ToString());
                }
                finally
                {
                    if (errorMessage.Length > 0)
                    {
                        responseEntity.ResponseStatus  = (int)EnumResponseState.Others;
                        responseEntity.ResponseMessage = errorMessage;
                    }
                }
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 程序执行主入口
        /// </summary>
        /// <param name="requestEntity"></param>
        /// <param name="responseEntity"></param>
        protected override void DoExecute(RequestEntity requestEntity, ResponseEntity responseEntity)
        {
            // 记录执行时间类
            using (StopWatcherAuto auto = new StopWatcherAuto())
            {
                IDictionary <string, string> paraDict = requestEntity.Parameters;

                BaseFilter filter = ServiceUtility.ConvertToFilterFromDict <QueryEnumerationFilter>(paraDict);
                filter.UserId = requestEntity.UserId;

                Singleton <QueryEnumerationBLL> .Instance.QueryEnumeration(filter, responseEntity);
            }
        }
        /// <summary>
        /// 程序执行主入口
        /// </summary>
        /// <param name="requestEntity"></param>
        /// <param name="responseEntity"></param>
        protected override void DoExecute(RequestEntity requestEntity, ResponseEntity responseEntity)
        {
            string errorMessage = "";

            // 记录执行时间类
            using (StopWatcherAuto auto = new StopWatcherAuto())
            {
                try
                {
                    // 定义接收客户端参数的变量
                    IDictionary <string, string> paraDict = requestEntity.Parameters;
                    BadTransferFilter            filter   = LogicUtility.ConvertToFilterFromDict <BadTransferFilter>(paraDict);

                    // 坏账清贷拒绝
                    int count = Singleton <BadTransferDal> .Instance.RejectBadTransfer(
                        filter.CloanApplyID, requestEntity.UserId);

                    //var responseResult = new BadTransferResponseResult<BadTransferDetailResultData>();
                    //responseResult.LstResult = detailResults;

                    if (count > 0)
                    {
                        responseEntity.ResponseStatus = (int)EnumResponseState.Success;
                    }
                    else
                    {
                        responseEntity.ResponseStatus = (int)EnumResponseState.Others;
                    }
                }
                catch (Exception ex)
                {
                    errorMessage = "";
                    responseEntity.ResponseStatus  = (int)EnumResponseState.Others;
                    responseEntity.ResponseMessage = "坏账清贷拒绝失败。" + ex.Message.ToString();
                    m_Logger.Error("坏账清贷拒绝失败:" + ex.Message.ToString());
                    m_Logger.Error("坏账清贷拒绝失败:" + ex.StackTrace.ToString());
                }
                finally
                {
                    if (errorMessage.Length > 0)
                    {
                        responseEntity.ResponseStatus  = (int)EnumResponseState.Others;
                        responseEntity.ResponseMessage = errorMessage;
                    }
                }
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Redis全量同步
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnAllSync_Click(object sender, EventArgs e)
        {
            try
            {
                // 记录执行时间类
                using (StopWatcherAuto auto = new StopWatcherAuto())
                {
                    Singleton <RedisEnumOperatorBLL> .Instance.FullSyncRedisEnumData();
                }

                MessageBox.Show("全量同步成功。");
            }
            catch (Exception ex)
            {
                this.BeginInvoke(new ExportLogHandler(ExportLog), ex.Message);
                this.BeginInvoke(new ExportLogHandler(ExportLog), ex.StackTrace);
                MessageBox.Show("全量同步失败。请查看日志,修改错误。");
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 同步权限
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnSyncPermission_Click(object sender, EventArgs e)
        {
            try
            {
                // 记录执行时间类
                using (StopWatcherAuto auto = new StopWatcherAuto())
                {
                    // 用户菜单权限
                    if (this.ChkMenuPermission.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncMenuPermission();
                    }
                    // 地区权限
                    if (this.ChkRegionPermission.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncRegionPermission();
                    }
                    // 门店权限
                    if (this.ChkStroePermission.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncStroePermission();
                    }
                    // 分部权限
                    if (this.ChkDivisionPermission.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SynsDivisionPermission();
                    }
                }

                MessageBox.Show("权限数据同步成功。");
            }
            catch (Exception ex)
            {
                this.BeginInvoke(new ExportLogHandler(ExportLog), ex.Message);
                this.BeginInvoke(new ExportLogHandler(ExportLog), ex.StackTrace);
                MessageBox.Show("权限数据同步失败。请查看日志,修改错误。");
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 程序执行主入口
        /// </summary>
        /// <param name="requestEntity"></param>
        /// <param name="responseEntity"></param>
        protected override void DoExecute(RequestEntity requestEntity, ResponseEntity responseEntity)
        {
            string errorMessage = "";

            // 记录执行时间类
            using (StopWatcherAuto auto = new StopWatcherAuto())
            {
                try
                {
                    ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.Success);
                    responseEntity.Results = null;
                }
                catch (Exception ex)
                {
                    ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.Others, "时间轴设置数据初始化失败。" + ex.Message.ToString());
                    m_Logger.Error("时间轴设置数据初始化失败:" + ex.Message.ToString());
                    m_Logger.Error("时间轴设置数据初始化失败:" + ex.StackTrace.ToString());
                }
                finally
                {
                }
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 下拉框数据同步
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnDropSync_Click(object sender, EventArgs e)
        {
            try
            {
                // 记录执行时间类
                using (StopWatcherAuto auto = new StopWatcherAuto())
                {
                    // 公司
                    if (this.ChkDropCompany.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncDropListEnumData(SysConst.COMPANY);
                    }
                    // 订单类型
                    if (this.ChkDropLoanKind.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncDropListEnumData(SysConst.LOANKIND);
                    }
                    // 贷款产品种类
                    if (this.ChkDropProductKind.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncDropListEnumData(SysConst.PRODUCTKIND);
                    }
                    // 银行
                    if (this.ChkDropBank.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncDropListEnumData(Const.BANKLIST);
                    }
                    // 订单状态
                    if (this.ChkDropBusinessStatus.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncDropListEnumData(SysConst.BUSINESSSTATUS);
                    }
                    // 清贷状态
                    if (this.ChkDropClearStatus.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncDropListEnumData(SysConst.CLOANSTATUS);
                    }
                    // 账单状态类型
                    if (this.ChkDropBillStatus.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncDropListEnumData(SysConst.BILLSTATUS);
                    }
                    // 诉讼状态类型
                    if (this.ChkDropLawSuit.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncDropListEnumData(SysConst.LAWSUITSTATUS);
                    }
                    // 工商注册类型
                    if (this.ChkDropEntregist.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncDropListEnumData(SysConst.ENTREGIST);
                    }
                    // 18位合同号适用地区
                    if (this.Chk18Region.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncDropListEnumData(SysConst.CODE_FITAREA);
                    }
                    // 分公司
                    if (this.ChkSubCompany.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncDropListEnumData(SysConst.SUBCOMPANY);
                    }
                    // 地区和门店
                    if (this.ChkDropRS.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncRegionData();

                        Singleton <RedisEnumOperatorBLL> .Instance.SyncStoreData();
                    }
                    // 团队信息
                    if (this.ChkDropTeam.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncTeamData();
                    }
                    // 门店地区关联信息
                    if (this.ChkDropRSR.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncRegionStoreData();
                    }
                }

                MessageBox.Show("下拉框数据同步成功。");
            }
            catch (Exception ex)
            {
                this.BeginInvoke(new ExportLogHandler(ExportLog), ex.Message);
                this.BeginInvoke(new ExportLogHandler(ExportLog), ex.StackTrace);
                MessageBox.Show("下拉框数据同步失败。请查看日志,修改错误。");
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Key_Value数据同步
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnKeySync_Click(object sender, EventArgs e)
        {
            try
            {
                // 记录执行时间类
                using (StopWatcherAuto auto = new StopWatcherAuto())
                {
                    // 用户
                    if (this.ChkUser.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncUserData();
                    }
                    // 服务方
                    if (this.ChkService.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncServiceGroup();
                    }
                    // 担保方
                    if (this.ChkGuarantee.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncGuaranteeGroup();
                    }
                    // 放贷方
                    if (this.ChkLending.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncLendingGroup();
                    }
                    // 订单类型
                    if (this.ChkBusinessStatus.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncTypeEnumData(
                            RedisEnumOperatorBLL.HashId_LoanKind_6, Const.LOANKIND);
                    }
                    // 贷款产品类型
                    if (this.ChkProductKind.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncTypeEnumData(
                            RedisEnumOperatorBLL.HashId_ProductKind_7, Const.PRODUCTKIND);
                    }
                    // 银行数据
                    if (this.ChkBank.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncTypeEnumData(
                            RedisEnumOperatorBLL.HashId_BankList_8, Const.BANKLIST);
                    }
                    // 销售模式数据
                    if (this.ChkSaleMode.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncTypeEnumData(
                            RedisEnumOperatorBLL.HashId_SaleMode_13, Const.SALEMODE);
                    }
                    // 工商注册类型
                    if (this.ChkEntregist.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncTypeEnumData(
                            RedisEnumOperatorBLL.HashId_Entregist_14, Const.ENTREGIST);
                    }
                    // 订单状态
                    if (this.ChkBusinessStatus.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncTypeEnumDataForValue(
                            RedisEnumOperatorBLL.HashId_BusinessStatus_10, Const.BUSINESSSTATUS);
                    }
                    // 清贷状态
                    if (this.ChkCloanStatus.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncTypeEnumDataForValue(
                            RedisEnumOperatorBLL.HashId_CLoanStatus_11, Const.CLOANSTATUS);
                    }
                    // 18位合同号适用地区
                    if (this.Chk18RegionKey.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncTypeEnumData(
                            RedisEnumOperatorBLL.HashId_18Region_15, Const.CODE_FITAREA);
                    }
                    // 分公司
                    if (this.ChkSubCompanyKey.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncTypeEnumData(
                            RedisEnumOperatorBLL.HashId_SubCompany_16, Const.SUBCOMPANY);
                    }
                    // 地区
                    if (this.ChkRegion.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncRegionEnumData();
                    }
                    // 门店
                    if (this.ChkStore.Checked)
                    {
                        Singleton <RedisEnumOperatorBLL> .Instance.SyncStoreEnumData();
                    }
                }

                MessageBox.Show("Key_Value数据同步成功。");
            }
            catch (Exception ex)
            {
                this.BeginInvoke(new ExportLogHandler(ExportLog), ex.Message);
                this.BeginInvoke(new ExportLogHandler(ExportLog), ex.StackTrace);
                MessageBox.Show("Key_Value数据同步失败。请查看日志,修改错误。");
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 程序执行主入口
        /// </summary>
        /// <param name="requestEntity"></param>
        /// <param name="responseEntity"></param>
        protected override void DoExecute(RequestEntity requestEntity, ResponseEntity responseEntity)
        {
            string errorMessage = "";

            // 记录执行时间类
            using (StopWatcherAuto auto = new StopWatcherAuto())
            {
                try
                {
                    // 定义接收客户端参数的变量
                    IDictionary <string, string> paraDict = requestEntity.Parameters;
                    BadTransferFilter            filter   = LogicUtility.ConvertToFilterFromDict <BadTransferFilter>(paraDict);

                    // 获取坏账清贷欠费账单信息(欠费账单(当期+逾期))
                    var oweBills
                        = Singleton <BadTransferDal> .Instance.GetBadTransferOweBill(filter.CloanApplyID);

                    int    businessId    = 0;
                    string path          = "";
                    int    i             = 0;
                    var    detailResults = new List <BadTransferDetailResultData>();
                    if (oweBills != null && oweBills.Count > 0)
                    {
                        var data = oweBills[0];
                        businessId = data.BusinessID;
                        path       = data.Path;
                        var product  = ProductFactory.Instance.GetProduct(data.BusinessLogicID);
                        var dirItems = product.GetProductItems();
                        foreach (var item in dirItems)
                        {
                            var subj = item.Key.ValueToEnum <EnumCostSubject>();
                            m_Logger.Debug("费用科目:" + subj);
                            decimal tAmt = oweBills.Where(x => x.Subject == (byte)subj)
                                           .Sum(o => o.DueAmt - o.ReceivedAmt);
                            m_Logger.Debug("费用金额:" + tAmt);

                            var resultData = new BadTransferDetailResultData();
                            resultData.SubjectId    = (byte)subj;
                            resultData.SubjectName  = item.Value.Replace("月", string.Empty);
                            resultData.SubjectValue = tAmt;
                            resultData.SubjectType  = WebServiceConst.BadTransferFeeType_OweBill;
                            resultData.Order        = ++i;
                            resultData.Path         = path;
                            detailResults.Add(resultData);
                        }
                    }

                    if (businessId != 0)
                    {
                        // 获取坏账清贷欠费账单信息(其它费用)
                        var otherResult
                            = Singleton <BadTransferDal> .Instance.GetBadTransferOtherFee(businessId);

                        if (otherResult != null && otherResult.Count > 0)
                        {
                            foreach (BadTransferDetailOtherData data in otherResult)
                            {
                                var resultData = new BadTransferDetailResultData();
                                resultData.SubjectId    = (byte)EnumCostSubject.GuaranteeLateFee;
                                resultData.SubjectName  = EnumCostSubject.GuaranteeLateFee.ToDescription();
                                resultData.SubjectValue = data.GuaranteeLateFee;
                                resultData.SubjectType  = WebServiceConst.BadTransferFeeType_Other;
                                resultData.Order        = ++i;
                                detailResults.Add(resultData);

                                resultData              = new BadTransferDetailResultData();
                                resultData.SubjectId    = (byte)EnumCostSubject.Litigation;
                                resultData.SubjectName  = EnumCostSubject.Litigation.ToDescription();
                                resultData.SubjectValue = data.Litigation;
                                resultData.SubjectType  = WebServiceConst.BadTransferFeeType_Other;
                                resultData.Order        = ++i;
                                detailResults.Add(resultData);

                                resultData              = new BadTransferDetailResultData();
                                resultData.SubjectId    = (byte)EnumCostSubject.LitigationLateFee;
                                resultData.SubjectName  = EnumCostSubject.LitigationLateFee.ToDescription();
                                resultData.SubjectValue = data.LitigationLateFee;
                                resultData.SubjectType  = WebServiceConst.BadTransferFeeType_Other;
                                resultData.Order        = ++i;
                                detailResults.Add(resultData);
                            }
                        }
                    }

                    var responseResult = new ResponseListResult <BadTransferDetailResultData>();
                    responseResult.LstResult = detailResults;

                    responseEntity.ResponseStatus = (int)EnumResponseState.Success;
                    responseEntity.Results        = responseResult;
                }
                catch (Exception ex)
                {
                    errorMessage = "";
                    responseEntity.ResponseStatus  = (int)EnumResponseState.Others;
                    responseEntity.ResponseMessage = "获取坏账清贷详细信息失败。" + ex.Message.ToString();
                    m_Logger.Error("获取坏账清贷详细信息失败:" + ex.Message.ToString());
                    m_Logger.Error("获取坏账清贷详细信息失败:" + ex.StackTrace.ToString());
                }
                finally
                {
                    if (errorMessage.Length > 0)
                    {
                        responseEntity.ResponseStatus  = (int)EnumResponseState.Others;
                        responseEntity.ResponseMessage = errorMessage;
                    }
                }
            }
        }
Ejemplo n.º 14
0
        /// <summary>
        /// 注册所有的服务
        /// </summary>
        public void RegisterAllServices()
        {
            // 记录执行时间类
            using (StopWatcherAuto auto = new StopWatcherAuto())
            {
                ServiceUtility.ExportLog(m_Logger, LogExport, "开始注册所有的服务。");

                // 全部清空
                m_DicServices.Clear();

                string        runDirecory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Services");
                DirectoryInfo dirInfo     = new DirectoryInfo(runDirecory);

                Assembly   assembly;
                Type[]     types        = null;
                ServiceMap map          = null;
                IService   service      = null;
                int        serviceCount = 0;

                try
                {
                    IEnumerable <FileInfo> info
                        = dirInfo.EnumerateFiles("*.dll", SearchOption.AllDirectories);

                    foreach (FileInfo fileInfo in info)
                    {
                        try
                        {
                            assembly = Assembly.LoadFile(fileInfo.FullName);
                            types    = assembly.GetTypes();

                            foreach (Type type in types)
                            {
                                if (!type.IsClass ||
                                    type.GetInterface("IService") == null ||
                                    !type.GetInterface("IService").IsInterface ||
                                    type.IsAbstract)
                                {
                                    continue;
                                }

                                map = Singleton <ConfigManager> .Instance.GetServiceMapByFullName(type.FullName);

                                if (map == null)
                                {
                                    continue;
                                }

                                // 延迟加载
                                if (map.IsDelayLoad)
                                {
                                    m_Logger.Debug("服务延迟加载,服务名称:" + map.ServiceFullName);
                                    continue;
                                }

                                service = Activator.CreateInstance(type) as IService;
                                if (service != null &&
                                    AddService(service))
                                {
                                    //LogExport(string.Concat("成功加载服务,服务名称 :", type.FullName));
                                    m_Logger.Info(string.Concat("成功加载服务,服务名称 :", type.FullName));
                                    serviceCount++;
                                    continue;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            m_Logger.Fatal(ex.Message);
                            m_Logger.Fatal(ex.Source);
                        }
                    }

                    ServiceUtility.ExportLog(m_Logger, LogExport, "注册所有的服务结束。");
                    ServiceUtility.ExportLog(m_Logger, LogExport, string.Concat("共计加载服务:Service Count:", serviceCount));
                }
                catch (Exception ex)
                {
                    m_Logger.Debug("注册所有的服务异常。");
                    m_Logger.Fatal(string.Concat("RegisterAllServices 错误: ", ex.Message));
                    m_Logger.Fatal(string.Concat("RegisterAllServices 错误: ", ex.StackTrace));
                    throw ex;
                }
            }
        }
        /// <summary>
        /// 程序执行主入口
        /// </summary>
        /// <param name="serviceData"></param>
        public void Execute(object serviceData)
        {
            ResponseEntity responseEntity = new ResponseEntity();
            ServiceData    data           = serviceData as ServiceData;

            if (data == null)
            {
                return;
            }

            ServiceCommand command = data.Command;

            if (command == null)
            {
                return;
            }

            RequestEntity requestEntity = command.Entity;

            if (requestEntity == null)
            {
                responseEntity.ResponseStatus = (int)EnumResponseState.RequestCommandError;
                return;
            }

            //请求ID
            responseEntity.RequestId = requestEntity.RequestId;
            // 用户名
            responseEntity.UserId = requestEntity.UserId;

            string errorMessage = "";

            // 记录执行时间类
            using (StopWatcherAuto auto = new StopWatcherAuto())
            {
                int ServiceID   = ContractSide.SHWS;
                int LendingBHID = ContractSide.SHBH;

                string lockkey = string.Empty;
                try
                {
                    if (HaveFrozenBusiness(LendingBHID, ServiceID, ref errorMessage))
                    {
                        return;
                    }

                    AnnulCLoanByBusinessesByBoHai(Const.COMPANY_WX_SHWS_SERVICE, Const.COMPANY_BHXT_LENDING);

                    string sqllend = SqlFile.PayBankSqlBH.ToFileContent
                                         (true, ServiceID, "AND BUS.LendingSideID =" + LendingBHID,
                                         ServiceID, "AND BUS.LendingSideID =" + LendingBHID);
                    string sqlserv = SqlFile.PayBankSqlServer.ToFileContent
                                         (true, ServiceID, "AND BUS.LendingSideID =" + LendingBHID);

                    PayBankDal dal      = new PayBankDal();
                    var        datalend = dal.GetPayBankExportItem(sqllend);
                    var        dataserv = dal.GetPayBankExportItem(sqlserv);

                    if (datalend.Count == 0 && dataserv.Count == 0)
                    {
                        errorMessage = "无扣款指令导出。";
                        m_Logger.Info("无扣款指令导出!");
                        return;
                    }

                    // 为导出订单加锁
                    lockkey = SetBusinessLock(ServiceID, LendingBHID);

                    // 根据子公司编号获取导出扣款文件名
                    var titles = GetTitles(ServiceID, lockkey);

                    // 根据子公司编号获取导出扣款指令配置
                    var dic = GetDeductCommand(ServiceID);

                    var         lstBankAccount = Singleton <BankAccountsCache> .Instance.BankAccounts;
                    BankFactory fac            = new BankFactory(dic);

                    var    cmpanys = Singleton <CompanyCache> .Instance.CompanyEnumeration;
                    byte[] ret     = fac.ExportBHXT(datalend, dataserv, requestEntity.UserId,
                                                    lstBankAccount, cmpanys, titles, ServiceID, LendingBHID, lockkey);

                    if (ret == null)
                    {
                        //为导出订单解锁
                        SetBusinessUnLock(lockkey);
                        errorMessage = "无扣款指令导出。";
                        m_Logger.Info("无扣款指令导出。");
                    }
                    else
                    {
                        var result = new ResponseFileResult();
                        result.Result = ret;

                        responseEntity.ResponseStatus = (int)EnumResponseState.Success;
                        responseEntity.Results        = result;
                    }
                }
                catch (Exception ex)
                {
                    errorMessage = "";
                    responseEntity.ResponseStatus  = (int)EnumResponseState.Others;
                    responseEntity.ResponseMessage = "导出扣款指令失败。" + ex.Message.ToString();
                    m_Logger.Error("导出扣款指令失败:" + ex.Message.ToString());
                    m_Logger.Error("导出扣款指令失败:" + ex.StackTrace.ToString());
                    // 为导出订单解锁
                    SetBusinessUnLock(lockkey);
                }
                finally
                {
                    if (errorMessage.Length > 0)
                    {
                        responseEntity.ResponseStatus  = (int)EnumResponseState.Others;
                        responseEntity.ResponseMessage = errorMessage;
                    }

                    Singleton <ResultCacheManager> .Instance.AddResult(command.Guid, responseEntity);
                }
            }
        }
Ejemplo n.º 16
0
        /// <summary>
        /// 加载所有服务端配置信息
        /// </summary>
        public void ReloadAllServiceMapConfig()
        {
            // 记录执行时间类
            using (StopWatcherAuto auto = new StopWatcherAuto())
            {
                ServiceUtility.ExportLog(m_Logger, LogExport, "开始加载所有服务端配置信息。");

                // 全部清空
                m_ServiceMapDic.Clear();

                if (string.IsNullOrEmpty(ServiceMapConfigFilePath))
                {
                    return;
                }

                string filePath = ServiceMapConfigFilePath + ServiceMapFileName;
                m_Logger.Debug("服务配置文件路径:" + filePath);
                if (!File.Exists(filePath))
                {
                    return;
                }

                string xmlContent = File.ReadAllText(filePath);
                m_Logger.Debug("服务配置文件内容:" + xmlContent);
                if (string.IsNullOrEmpty(xmlContent))
                {
                    return;
                }

                try
                {
                    ServiceConfigs configs = ServiceConfigs.XmlDeSerialization(xmlContent);

                    if (configs == null ||
                        configs.ServiceMaps == null ||
                        configs.ServiceMaps.Count == 0)
                    {
                        m_Logger.Debug("文件中没有服务配置信息。");
                        return;
                    }

                    foreach (var map in configs.ServiceMaps)
                    {
                        AddServiceMap(map);
                    }

                    ServiceUtility.ExportLog(m_Logger, LogExport, "加载所有服务端配置信息完成。");
                    ServiceUtility.ExportLog(m_Logger, LogExport
                                             , string.Concat("共计加载配置文件:ServiceConfig Count:", configs.ServiceMaps.Count));

                    // 加载完毕
                    IsLoadOver = true;
                }
                catch (Exception ex)
                {
                    m_Logger.Fatal(string.Concat("加载所有服务端配置信息异常 异常信息: ", ex.Message));
                    m_Logger.Fatal(string.Concat("加载所有服务端配置信息异常 异常信息: ", ex.StackTrace));
                    throw ex;
                }
            }
        }