Exemple #1
0
        public void AddShopInfo(ShopInfo item)
        {
            int error = 0;

            do
            {
                try
                {
                    using (var db = _dbFactory.OpenDbConnection())
                    {
                        item.CreateTime = DateTime.Now;

                        db.Insert(item);
                    }
                    break;
                }
                catch (Exception ex1)
                {
                    error++;
                    Thread.Sleep(10000);
                    LogServer.WriteLog(ex1.Message, "DBError");
                }
            } while (error < 4);
        }
Exemple #2
0
        public static void Main()
        {
            int clientCount = 1;
            var port        = 8888;

            TcpListener serverSocket = new TcpListener(IPAddress.Any, port);

            serverSocket.Start();

            Thread serverListeningMessageOnDisplayThread = new Thread(ServerListeningMessageOnDisplay);

            serverListeningMessageOnDisplayThread.Start();

            while (true)
            {
                try
                {
                    TcpClient client = serverSocket.AcceptTcpClient();
                    lock (_lock)
                    {
                        clientTable.Add(clientCount, client);
                    }

                    LogServer.Message("Client connected!");
                    Console.WriteLine("Client connected!");

                    Thread clientThread = new Thread(HandleClients);
                    clientThread.Start(clientCount);
                    clientCount++;
                }
                catch (Exception ex)
                {
                    LogServer.Error(ex);
                }
            }
        }
Exemple #3
0
        public bool DeleteData(int id)
        {
            int error = 0;

            do
            {
                try
                {
                    using (var db = _dbFactory.OpenDbConnection())
                    {
                        error = db.DeleteById <ShopInfo>(id);
                        return(true);
                    }
                    break;
                }
                catch (Exception ex1)
                {
                    error++;
                    Thread.Sleep(10000);
                    LogServer.WriteLog(ex1.Message, "DBError");
                }
            } while (error < 4);
            return(false);
        }
Exemple #4
0
        void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            Exception ex = e.ExceptionObject as Exception;

            if (ex != null)
            {
                HeartServerInfo hsInfo = this[ex.Source];
                if (hsInfo != null)
                {
                    hsInfo.ReceiveException(ex);
                }
                else
                {
                    LogServer.WriteException("Default AppDomain", ex);

                    Exception subException = ex.InnerException;
                    while (subException != null)
                    {
                        LogServer.WriteException("InnerException", subException);
                        subException = subException.InnerException;
                    }
                }
            }
        }
Exemple #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["userid"] == null || Session["userid"].ToString() != "23")
            {
                string url = HttpContext.Current.Request.Url.PathAndQuery;
                Response.Redirect("Login.aspx?url=" + url);
            }

            var oldnum = Request.Form["oldnumber"];
            var newnum = Request.Form["newnumber"];
            var method = Request.Form["method"];

            if (method == "2" && !string.IsNullOrEmpty(oldnum))
            {
                // 查询
                StringBuilder items = new StringBuilder();
                var           list  = new prologDb().GetproLogById(oldnum.Trim());
                string        head  = " <table cellspacing ='0' cellpadding = '0' width = '100%' class='listtable'><tbody><tr><th>编号</th><th>名称</th></tr>";

                items.Append(head);
                foreach (var car in list)
                {
                    items.AppendFormat("<tr><td>{0}</td><td><a target='_blank' href='http://www.nb77.cn/dealer/index.php?mod=user&amp;ac=refresh&amp;id={2}&page=1'>{1}</a></td></tr>", car.shopNumber, car.proName, car.proid);
                }
                items.Append("</table>");

                return;
            }
            if (!string.IsNullOrEmpty(oldnum) && !string.IsNullOrEmpty(newnum))
            {
                var list = new prologDb().GetproLogById(oldnum.Trim());
                if (list.Count == 0)
                {
                    msg = "没有找到任何车辆信息";
                    return;
                }
                brandList = new BandInfoDb().GetBandInfoByParentNum("0");

                foreach (var bandInfo in brandList)
                {
                    brandReg += bandInfo.BrandName + "|";
                }
                brandReg = brandReg.TrimEnd('|');

                foreach (var item in list)
                {
                    try
                    {
                        addCar(item);
                    }
                    catch (Exception ex)
                    {
                        LogServer.WriteLog("proid:" + item.proid + "error" + ex.Message, "jiexi");
                    }
                }
                msg = "导入完毕共导入" + Items.Count + "条信息";
            }


            //brandList = new BandInfoDb().GetBandInfoByParentNum("0");

            //foreach (var bandInfo in brandList)
            //{
            //    brandReg += bandInfo.BrandName + "|";
            //}
            //brandReg = brandReg.TrimEnd('|');

            //var list = new prologDb().GetproLogById(0, 100);
            //foreach (var item in list)
            //{
            //    try
            //    {
            //        addCar(item);
            //    }
            //    catch (Exception ex)
            //    {
            //        LogServer.WriteLog("proid:" + item.proid + "error" + ex.Message, "jiexi");
            //    }

            //}
        }
Exemple #6
0
 static void Main(string[] args)
 {
     mServer = new LogServer();
     mServer.Open();
     Console.Read();
 }
Exemple #7
0
        static void Main(string[] args)
        {
            LogServer server = new LogServer();

            server.Run();
        }
Exemple #8
0
 public void Load(int clientId, string port, string address)
 {
     Init(clientId, port, address);
     m_serviceManager = new ServiceManager(m_clientId);
     LogServer.LogStatus(STT.General.INFO_GENERAL, $"ServiceManager had been loaded.");
 }
Exemple #9
0
        private object ServiceGenericLogic(ServiceType type, string data)
        {
            try
            {
                if (OperationContext.Current != null)
                {
                    IPublishing registeredUser = OperationContext.Current.GetCallbackChannel <IPublishing>();

                    var result = false;
                    if (!_callbackList.Contains(new KeyValuePair <ServiceType, IPublishing>(type, registeredUser)))
                    {
                        result = _callbackList.TryAdd(type, registeredUser);
                    }
                }
                IManager manager;
                object   childManager = null;

                DataBoundary serializedObject = JsonConvert.DeserializeObject <DataBoundary>(data);

                if (Services.TryGetValue(type, out manager) && serializedObject != null)
                {
                    MethodInfo method;
                    if (serializedObject.TypeName != string.Empty && serializedObject.TypeName != null)
                    {
                        method       = manager.GetType().GetMethod(serializedObject.TypeName);
                        childManager = method.Invoke(manager, new object[0]);
                        method       = childManager.GetType().GetMethod(serializedObject.CommandName);
                    }
                    else
                    {
                        method = manager.GetType().GetMethod(serializedObject.CommandName);
                    }

                    if (method != null)
                    {
                        List <object> parameters = new List <object>();
                        foreach (var val in serializedObject.Attributes)
                        {
                            var typo = Type.GetType(val.Key.ToString());
                            if (typo.IsEnum)
                            {
                                parameters.Add(Enum.Parse(typo, val.Value.ToString()));
                            }
                            else
                            {
                                parameters.Add(val.Value.ToString());
                            }
                        }

                        object result;
                        if (childManager != null)
                        {
                            result = method.Invoke(childManager, parameters.ToArray());
                        }
                        else
                        {
                            result = method.Invoke(manager, parameters.ToArray());
                        }

                        serializedObject.Attributes.Clear();
                        serializedObject.Attributes.Add(method.ReturnType, result);

                        return(JsonConvert.SerializeObject(serializedObject));
                    }
                }
                return(null);
            }
            catch (Exception e)
            {
                LogServer.LogException(e, General.EXCEPTION_GENERAL);
                return(null);
            }
        }
Exemple #10
0
 public LogServer()
 {
     _instance = this;
 }
Exemple #11
0
        public static bool UploadWaybill_Node(Model_Waybill_Node node, int customerId, int?parentStorageId)
        {
            bool saveUploadDataProgress = false;//是否保存到冷链数据上报进度表
            bool isFirstNode            = false;

            try
            {
                if (node != null)
                {
                    LogServer.AddLogText(string.Format("进入创建运单节点逻辑{0},操作时间{1}", node.BaseId, node.operateAt), node.BaseId);
                    string cwMsg = "(上报节点)NodeNumber=" + node.BaseId + ";Content=" + node.Content + ";CustomerId=" + customerId + ";ParentStorageId=" + (parentStorageId == null ? "无" : parentStorageId.ToString());
                    Console.WriteLine(cwMsg);

                    LogServer.AddLogText(cwMsg, node.BaseId);
                    if (!string.IsNullOrEmpty(node.BaseId) && node.BaseId.Contains(@"\"))
                    {
                        node.BaseId = node.BaseId.Replace(@"\", "").Replace("/", "");
                        Console.WriteLine("替换运单号中的斜杠:" + node.BaseId);
                        LogServer.AddLogText("替换运单号中的斜杠:" + node.BaseId, node.BaseId);
                    }
                }
                string sql    = string.Empty;
                string number = node.BaseId;//PDA传过来的BaseId就是运单号
                //Customer=0为自运单,否则为第三方运单
                if (customerId != 0)
                {
                    //第三方运单需要查询关系表获取转换后的运单号
                    sql    = "select number from huadong_tmsorder_waybillbase where relationid='" + number + "' and customerId=" + customerId;
                    number = _SqlHelp.ExecuteScalar <string>(sql);
                    LogServer.AddLogText(string.Format("第三方运单需要查询关系表获取转换后的运单号{0},结果:{1}", sql, number), node.BaseId);
                }
                else
                {
                    LogServer.AddLogText("自运单 :", node.BaseId);
                }
                Model_Waybill_Base waybillBase = null;//根据运单号获取到BaseId
                sql = "select * from waybill_base where number = '" + number + "' order by id desc limit 1";
                LogServer.AddLogText("查询运单是否存在:" + sql, node.BaseId);
                waybillBase = _SqlHelp.ExecuteObject <Model_Waybill_Base>(sql);
                if (waybillBase == null)
                {
                    string remark = "运单[" + (string.IsNullOrEmpty(number) ? node.BaseId : number) + "]不存在";
                    remark += "传入的CustomerId=" + customerId;
                    sql     = string.Format("insert into unnecessary_node(baseId,operateAt,storageId,storageName,content,arrived,remarks,inserttime,parentStorageId,customerId) values('{0}', '{1}', {2}, '{3}', '{4}', {5}, '{6}','{7}','{8}','{9}');",
                                            node.BaseId, node.operateAt.ToString("yyyy-MM-dd HH:mm:ss"), node.StorageId, node.StorageName, node.Content, (int)node.Arrived, remark, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), parentStorageId, customerId);
                    int insertResult = _SqlHelp.ExecuteNonQuery(sql);
                    saveUploadDataProgress = insertResult > 0;
                    LogServer.AddLogText(remark + ":" + sql + " 执行结果:" + insertResult, node.BaseId);
                    return(true);//运单不存在,将存入暂存表
                }
                else
                {
                    LogServer.AddLogText("当前运单存在,开始添加节点", node.BaseId);
                }
                if (waybillBase.BeginAt == node.operateAt)
                {
                    isFirstNode = true;
                }
                //查询该运单已有的所有节点
                List <Model_Waybill_Node> base_NodeList = new List <Model_Waybill_Node>();
                sql           = "select id, convert(baseId, CHAR) as baseId ,operateAt,storageId,storageName,content,arrived from waybill_node where baseId = " + waybillBase.Id;
                base_NodeList = _SqlHelp.ExecuteObjects <Model_Waybill_Node>(sql);
                LogServer.AddLogText("查询该运单已有的所有节点:" + sql + ",查询到的节点条数:" + base_NodeList.Count + "", node.BaseId);
                foreach (Model_Waybill_Node item in base_NodeList)
                {
                    //存在内容一致,时间一致的节点时丢弃
                    if (item.operateAt == node.operateAt)
                    {
                        LogServer.AddLogText(string.Format("内容一致,时间一致的节点丢弃;节点ID[{0}] 节点时间[{1}] 节点内容[{2}]", item.Id, item.operateAt.ToString("yyyy-MM-dd HH:mm:ss"), item.Content), node.BaseId);
                        return(true);
                    }
                    if (item.Arrived == Enum_Arrived.HaveArrived)
                    {
                        if (node.Arrived == Enum_Arrived.HaveArrived) //存在运抵节点时,并且当前上报的也是运抵节点则丢弃
                        {
                            LogServer.AddLogText("已存在运抵节点,当前也是运抵节点,弃之", node.BaseId);
                            return(true);
                        }
                        else if (node.operateAt >= item.operateAt)    //存在运抵节点时,当前节点虽然不是运抵节点但是创建时间比运抵时间大的也丢弃
                        {
                            LogServer.AddLogText("已存在运抵节点,当前节点时间大于运抵节点时间,弃之", node.BaseId);
                            return(true);
                        }
                    }
                }
                List <string> sqlList = new List <string>();
                sqlList.Add(string.Format("insert into waybill_node (baseId,operateAt,storageId,storageName,content,arrived,parentStorageId,handleFlag,scanNumber,CustomerId,insertTime) values ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}','{6}','{7}','{8}','{9}','{10}');", waybillBase.Id, node.operateAt.ToString("yyyy-MM-dd HH:mm:ss"), node.StorageId, node.StorageName.Replace("[默认]", ""), node.Content, (int)node.Arrived, (parentStorageId == null?-1:parentStorageId), (parentStorageId == null ? -1 : (customerId == 0 ? -1 : 0)), node.BaseId, customerId, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
                if (node.Arrived == Enum_Arrived.HaveArrived)
                {
                    sqlList.Add(string.Format("update waybill_base set stage=1 ,signinAt='{0}' where number='{1}';", node.operateAt.ToString("yyyy-MM-dd HH:mm:ss"), number));
                    //运抵时更新此单的上报优先级(第三方运单)
                    //if (customerId != 0)
                    //    sqlList.Add(string.Format("update huadong_tmsorder_waybillbase set handleCount = null,handleLastTime=now() where number = '{0}';", number));
                }
                foreach (string item in sqlList)
                {
                    LogServer.AddLogText(string.Format("添加节点:{0}", item), node.BaseId);
                }
                bool result = _SqlHelp.ExecuteTranstration(sqlList);
                LogServer.AddLogText("添加结果:" + result.ToString(), node.BaseId);
                saveUploadDataProgress = result;
                return(result);
            }
            catch (Exception ex)
            {
                LogServer.AddLogText("添加节点失败:" + ex.Message, node.BaseId);
                throw ex;
            }
            finally
            {
                try
                {
                    if (customerId != 0 && parentStorageId != null && saveUploadDataProgress)
                    {
                        SaveUploadDataProgress(node, (int)parentStorageId, isFirstNode);
                    }
                }
                catch (Exception ex)
                {
                    LogServer.AddLogText("添加冷链数据上报进度失败,但未影响该节点上报:" + ex.Message, node.BaseId);
                }
            }
        }
Exemple #12
0
        ///// <summary>
        ///// 查询运单以前是否存在节点信息,没有超过一个月的节点信息保存到节点表中,超过时间的节点信息删除。
        ///// </summary>
        ///// <param name="waybillList"></param>
        ///// <returns></returns>
        //public static int GetNode(List<Model_Waybill_Base> waybillList)
        //{
        //    int result = 0;
        //    try
        //    {
        //        //是否存在运单信息
        //        List<Model_Waybill_Base> numberList = GetExistWaybills(waybillList.Select(l => l.Number).Distinct().ToList());
        //        foreach (Model_Waybill_Base item in waybillList)
        //        {
        //            //查询unnecessary_node是否存在节点信息
        //            string sql = string.Format("select * from unnecessary_node where baseId='{0}' ;", item.Number);
        //            List<Model_Waybill_Node> waybillnode = _SqlHelp.ExecuteObjects<Model_Waybill_Node>(sql);
        //            if (waybillnode.Count != 0)
        //            {
        //                //获取id
        //                int baseId = numberList.Find(l => l.Number == item.Number).Id;
        //                foreach (Model_Waybill_Node node in waybillnode)
        //                {
        //                    //节点信息超过一个月就删除
        //                    if (node.operateAt.AddMonths(1) > item.BeginAt)
        //                    {
        //                        sql = string.Format("insert into waybill_node (baseId,operateAt,storageId,storageName,content,arrived) values('{0}','{1}','{2}','{3}','{4}','{5}') ;",
        //                        baseId, node.operateAt, node.StorageId, node.StorageName, node.Content, (int)node.Arrived);
        //                        result = _SqlHelp.ExecuteNonQuery(sql);
        //                        //添加成功后删除节点
        //                        if (result > 0)
        //                        {
        //                            sql = string.Format("delete from unnecessary_node where id={0} ", node.Id);
        //                            _SqlHelp.ExecuteNonQuery(sql);
        //                        }
        //                    }
        //                    else
        //                    {
        //                        sql = string.Format("delete from unnecessary_node where id={0} ", node.Id);
        //                        _SqlHelp.ExecuteNonQuery(sql);
        //                    }


        //                }
        //            }
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //    return result;
        //}

        /// <summary>
        /// 上传图片,插入签收拍照信息
        /// </summary>
        /// <param name="postback">签收拍照信息</param>
        /// <param name="postbackTime">签收拍照时间</param>
        /// <param name="picList">图片列表</param>
        /// <returns></returns>
        public static bool UploadWaybill_Postbacks(Model_Waybill_Postback_Pic postback, DateTime postbackTime, List <object> picList, int customerId = 0)
        {
            LogServer.AddLogText(string.Format("开始进入保存图片逻辑{0},DateTime:{1}", postback.BaseId, postbackTime), postback.BaseId);
            bool result   = false;
            int  picIndex = 0;//成功上传的图片数量

            if (picList.Count == 0)
            {
                LogServer.AddLogText(string.Format("图片列表{0}", picList.Count), postback.BaseId);
                return(false);
            }
            if (string.IsNullOrEmpty(postback.PicName))
            {
                LogServer.AddLogText(string.Format("图片名称{0}", postback.PicName), postback.BaseId);
                return(false);
            }
            string[] picNameArr = postback.PicName.Split('|');
            if (picNameArr.Length != picList.Count)
            {
                LogServer.AddLogText(string.Format("picNameArr:{0},picList:{1}", picNameArr.Length, picList.Count), postback.BaseId);
                return(false);
            }
            //配置文件中的路径
            string filePath = string.Empty;
            string tempPath = System.Configuration.ConfigurationManager.AppSettings["PostbackPath"];

            if (string.IsNullOrEmpty(tempPath))
            {
                LogServer.AddLogText(string.Format("配置文件路径:{0}", tempPath), postback.BaseId);
                return(false);
            }
            string timePath = DateTime.Now.ToString("yyyyMM");

            filePath = tempPath + "\\" + timePath;
            try
            {
                string sql    = string.Empty;
                string number = postback.BaseId;//PDA传过来的BaseId就是运单号
                //Customer=0为自运单,否则为第三方运单
                if (customerId != 0)
                {
                    //第三方运单需要查询关系表获取转换后的运单号
                    sql    = "select number from huadong_tmsorder_waybillbase where relationid='" + number + "' and customerId=" + customerId;
                    number = _SqlHelp.ExecuteScalar <string>(sql);
                    LogServer.AddLogText(string.Format("查询关联表,huadong_tmsorder_waybillbase:{0},结果:{1}", sql, number), postback.BaseId);
                    if (string.IsNullOrEmpty(number))
                    {
                        string remark = "运单[" + (string.IsNullOrEmpty(number) ? postback.BaseId : number) + "]不存在";
                        remark += "传入的CustomerId=" + customerId;
                        if (!System.IO.Directory.Exists(filePath))
                        {
                            System.IO.Directory.CreateDirectory(filePath);
                        }
                        StringBuilder pic = new StringBuilder("insert into temporarypictures(baseId,operateAt,PicName,remarks,inserttime) values ");
                        for (int i = 0; i < picList.Count; i++)
                        {
                            string fileName = postback.BaseId + "_" + System.IO.Path.GetFileName(postback.PicName.Split('|')[i]);
                            MyTool.SaveImage(MyTool.GetGzipPicBytes(picList[i] as byte[]), filePath + "\\" + fileName);
                            pic.AppendFormat("('{0}', '{1}', '{2}', '{3}', '{4}'),", postback.BaseId, postbackTime.ToString("yyyy-MM-dd HH:mm:ss"), timePath + "/" + fileName, remark, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                            //picIndex++;
                        }
                        pic.Length -= 1;
                        List <string> sqlpicList = new List <string>();
                        sqlpicList.Add(pic.ToString());
                        bool pictures = _SqlHelp.ExecuteTranstration(sqlpicList);
                        LogServer.AddLogText(string.Format("sql:{0},结果:{1}", sql, pictures), postback.BaseId);
                        return(true);
                    }
                }
                Model_Waybill_Base waybillBase = null;//根据运单号获取到BaseId
                sql         = "select * from waybill_base where number = '" + number + "' order by id desc limit 1";
                waybillBase = _SqlHelp.ExecuteObject <Model_Waybill_Base>(sql);
                if (waybillBase == null)
                {
                    string remark = "运单[" + (string.IsNullOrEmpty(number) ? postback.BaseId : number) + "]不存在";
                    remark += "传入的CustomerId=" + customerId;
                    if (!System.IO.Directory.Exists(filePath))
                    {
                        System.IO.Directory.CreateDirectory(filePath);
                    }
                    StringBuilder pic = new StringBuilder("insert into temporarypictures(baseId,operateAt,PicName,remarks,inserttime) values ");
                    for (int i = 0; i < picList.Count; i++)
                    {
                        string fileName = postback.BaseId + "_" + System.IO.Path.GetFileName(postback.PicName.Split('|')[i]);
                        MyTool.SaveImage(MyTool.GetGzipPicBytes(picList[i] as byte[]), filePath + "\\" + fileName);
                        pic.AppendFormat("('{0}', '{1}', '{2}', '{3}', '{4}'),", postback.BaseId, postbackTime.ToString("yyyy-MM-dd HH:mm:ss"), timePath + "/" + fileName, remark, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                        //picIndex++;
                    }
                    pic.Length -= 1;
                    List <string> sqlpicList = new List <string>();
                    sqlpicList.Add(pic.ToString());
                    bool pictures = _SqlHelp.ExecuteTranstration(sqlpicList);
                    LogServer.AddLogText(string.Format("查询运单,waybill_base:{0},结果:{1}", sql, waybillBase == null ? "未查询到信息" : waybillBase.Number), postback.BaseId);
                    return(true);//运单还未上传,无法上传签收图片
                }
                //List<Model_Waybill_Base> numberList = GetExistWaybills(new List<string> { postback.BaseId }).Distinct().ToList();
                //if (numberList.Count == 0)
                //    return true;//运单还未上传,无法上传签收图片
                if (!System.IO.Directory.Exists(filePath))
                {
                    System.IO.Directory.CreateDirectory(filePath);
                }
                StringBuilder sb = new StringBuilder("insert into waybill_postback_pic (baseId,picName) values ");
                for (int i = 0; i < picList.Count; i++)
                {
                    string fileName = postback.BaseId + "_" + System.IO.Path.GetFileName(postback.PicName.Split('|')[i]);
                    MyTool.SaveImage(MyTool.GetGzipPicBytes(picList[i] as byte[]), filePath + "\\" + fileName);
                    sb.AppendFormat("('{0}','{1}'),", waybillBase.Id, timePath + "/" + fileName);
                    picIndex++;
                }
                sb.Length -= 1;
                List <string> sqlList = new List <string>();
                sqlList.Add(sb.ToString());
                sqlList.Add(string.Format("update waybill_base set picPostbackAt='{0}' where number='{1}'", postbackTime.ToString("yyyy-MM-dd HH:mm:ss"), waybillBase.Number));
                result = _SqlHelp.ExecuteTranstration(sqlList);
                foreach (string item in sqlList)
                {
                    LogServer.AddLogText(string.Format("sql:{0}", item), postback.BaseId);
                }
                LogServer.AddLogText(string.Format("保存结果:{0}", result), postback.BaseId);
            }
            catch (Exception ex)
            {
                LogServer.AddLogText("保存图片失败:" + ex.Message, postback.BaseId);
                throw ex;
            }
            finally
            {
                if (result == false && picIndex > 0)
                {
                    //失败时删除图片
                    for (int i = picIndex; i > 0; i--)
                    {
                        string fileName = postback.BaseId + "_" + System.IO.Path.GetFileName(postback.PicName.Split('|')[i - 1]);
                        System.IO.File.Delete(filePath + "\\" + fileName);
                        LogServer.AddLogText(string.Format("失败时删除图片,路径:{0}", filePath + "\\" + fileName), postback.BaseId);
                    }
                }
            }
            return(result);
        }
Exemple #13
0
        /// <summary>
        /// websocket监听
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private async Task ProcessRequest(AspNetWebSocketContext context)
        {
            var             socket    = context.WebSocket;
            string          uuid      = context.QueryString["uuid"].ToString();
            XzyWeChatThread xzy       = null;
            DicSocket       dicSocket = new DicSocket()
            {
                socket       = socket,
                weChatThread = xzy
            };

            if (_dicSockets.ContainsKey(uuid))
            {
                try
                {
                    await _dicSockets[uuid].socket.CloseAsync(WebSocketCloseStatus.Empty, string.Empty, CancellationToken.None);//如果client发起close请求,对client进行ack
                }
                catch (Exception ex)
                {
                    LogServer.Info(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "socketErr:" + ex.Message);
                }
            }
            _dicSockets.Add(uuid, dicSocket);
            while (true)
            {
                var buffer         = new ArraySegment <byte>(new byte[1024]);
                var receivedResult = await socket.ReceiveAsync(buffer, CancellationToken.None);//对web socket进行异步接收数据

                if (receivedResult.MessageType == WebSocketMessageType.Close)
                {
                    try
                    {
                        //从连接池移除对象,如果想保持websocket断线后 微信继续执行可以不做此操作
                        #region 微信注销线程释放
                        //string myuuid = _dicSockets.Where(p => p.Value.socket.Equals(socket)).FirstOrDefault().Key;
                        //_dicSockets[myuuid].weChatThread.Wx_Logout();
                        //_dicSockets[myuuid].weChatThread = null;
                        //_dicSockets.Remove(myuuid);
                        #endregion 微信注销线程释放

                        await socket.CloseAsync(WebSocketCloseStatus.Empty, string.Empty, CancellationToken.None);//如果client发起close请求,对client进行ack
                    }
                    catch (Exception ex)
                    {
                        LogServer.Info(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "socketErr:" + ex.Message);
                    }
                    break;
                }
                if (socket.State == System.Net.WebSockets.WebSocketState.Open)
                {
                    string      recvMsg = Encoding.UTF8.GetString(buffer.Array, 0, receivedResult.Count);
                    SocketModel model   = JsonConvert.DeserializeObject <SocketModel>(recvMsg);
                    switch (model.action.ToLower())
                    {
                    case "start":    //创建socket
                        await Task.Factory.StartNew(() =>
                        {
                            xzy = new XzyWeChatThread(socket);
                        });

                        break;

                    case "start62":    //通过账号密码+62数据登录
                        await Task.Factory.StartNew(() =>
                        {
                            SocketStart62 socketStart62 = JsonConvert.DeserializeObject <SocketStart62>(model.context);
                            xzy = new XzyWeChatThread(socket, socketStart62.username, socketStart62.password, socketStart62.str62);
                        });

                        break;
                    }
                }
            }
        }
Exemple #14
0
 public LogBusiness()
 {
     _ls = new LogServer();
 }
Exemple #15
0
        /// <summary>
        /// 创建第三方运单
        /// </summary>
        /// <param name="orderInfo"></param>
        /// <returns>0:处理失败; 1:处理成功; 2:运单已存在</returns>
        public static int UploadThirdPartyOrder(Model_ThirdPartOrder orderInfo, int customerId = 0)
        {
            int result = 0;

            try
            {
                LogServer.AddLogText(string.Format("进入创建第三方运单逻辑{0},操作时间{1}", orderInfo.RelationId, orderInfo.OperateAt), orderInfo.RelationId);
                if (orderInfo == null)
                {
                    result = 1;
                }
                string sql = string.Empty;
                Model_ThirdCustomer customerInfo = new Model_ThirdCustomer();
                //检查是否已经创建过第三方运单的关联运单
                Model_Waybill_Base IsExist = CheckThirdPartyNumberExist(orderInfo.RelationId);
                LogServer.AddLogText(string.Format("CheckThirdPartyNumberExist:{0}", IsExist != null ? 1 : 0), orderInfo.RelationId);
                if (IsExist == null)
                {
                    #region 获取自动生成的运单号
                    //sql = "select concat('99', 1000000000 + Count(*) + 1) from waybill_base where company = 1";
                    //object obj = _SqlHelp.ExecuteScalar(sql);
                    string number = string.Empty;
                    string nHead  = "981000000000";
                    if (customerId != 2)
                    {
                        nHead = "991000000000";
                    }
                    int jLen = orderInfo.RelationId.Length;
                    //if (orderInfo.RelationId.Length >= 12)
                    //    jLen = 10;
                    //number = nHead.Substring(0, 12 - orderInfo.RelationId.Length) + orderInfo.RelationId;
                    if (orderInfo.RelationId.Length > 9)
                    {
                        string str1 = orderInfo.RelationId.ToString().Substring(orderInfo.RelationId.Length - 9);
                        number = nHead.Substring(0, 12 - str1.Length) + str1;
                    }
                    else
                    {
                        number = nHead.Substring(0, 12 - orderInfo.RelationId.Length) + orderInfo.RelationId;
                    }
                    LogServer.AddLogText("拼接后的运单号:" + number + "", orderInfo.RelationId);
                    //if (obj != null)
                    //{
                    //    number = obj.ToString();
                    //    if (obj.ToString() == "System.Byte[]")
                    //        number = Encoding.Default.GetString(obj as byte[]);
                    //}
                    #endregion
                    #region 旧版通过配置文件获取第三方供应商名称,新版查询根据CustomerID查询
                    int    Huadong_Id   = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["Huadong_Id"]);
                    string Huadong_Name = System.Configuration.ConfigurationManager.AppSettings["Huadong_Name"];
                    if (customerId != 0)
                    {
                        Huadong_Id   = customerId;
                        customerInfo = PDA_CustomerServer.GetThirdCustomers(customerId).First();
                        Huadong_Name = customerInfo.CustomerName;
                    }
                    #endregion
                    List <string> sqlList = new List <string>();
                    //更新关系ID
                    sql  = string.Format("update huadong_tms_order set relationId='{0}' where (SHIPDETAILID = '{0}' or LEGCODE = '{0}' )", orderInfo.RelationId);
                    sql += customerId == 0 ? string.Empty : (" and customerId = " + customerId);
                    int count = _SqlHelp.ExecuteNonQuery(sql);
                    LogServer.AddLogText(string.Format("更新第三方运单relationId:{0},结果:{1}", sql, count), orderInfo.RelationId);
                    if (count == 0)
                    {
                        LogServer.AddLogText(string.Format("第三方运单不存在时,先插入一条空信息的运单,待第三方运单同步回来时更新运单信息", orderInfo.RelationId, orderInfo.OperateAt, customerId), orderInfo.RelationId);
                        //第三方运单不存在时,先插入一条空信息的运单,待第三方运单同步回来时更新运单信息
                        sqlList.Add(string.Format("INSERT INTO `coldchain_logistics_db`.`huadong_tms_order` ( `relationId`, `code`, `SRCEXPNO`, `ROADID`, `SHIPDETAILID`, `TOTALID`, `LEGCODE`, `SHIPMENTCODE`, `CONSIGNORCODE`, `CONSIGNORNAME`, `DEPTNO`, `DEPTNAME`, `CUSTOMERCODE`, `CUSTOMERNAME`, `AREAHOUSE`, `SALESMAN`, `TRANSMODEID`, `ERPTRANSMODENAME`, `OPERATIONTYPE`, `DEMANDARRIVETIME`, `TRANSPORTTYPE`, `ORDERINSTANCY`, `TRANSPORTCATEGORY`, `ROUTENO`, `TRANSDEADLINE`, `FROMGTRANSID`, `FROMGTRANSNAME`, `TOGTRANSID`, `TOGTRANSNAME`, `RECEIVEADDR`, `RECEIVEMAN`, `RECEIVEPHONE`, `CREDATE`, `INOUTFLAG`, `WMSROUTEWAVENO`, `PRINTTYPE`, `TOTALQUNTITY`, `WHOLEQUNTITY`, `PARTQUNTITY`, `JFQUNTITY`, `DESCRIPTION`, `EXTCOL0`, `EXTCOL1`, `EXTCOL2`, `EXTCOL3`, `EXTCOL4`, `EXTCOL5`, `EXTCOL6`, `EXTCOL7`, `EXTCOL8`, `EXTCOL9`, `EXTCOL10`, `EXTCOL11`, `EXTCOL12`, `EXTCOL13`, `EXTCOL14`, `EXTCOL15`, `EXTCOL16`, `EXTCOL17`, `EXTCOL18`, `EXTCOL19`, `senderOrg`, `senderPerson`, `senderTel`, `senderAddress`, `receiverOrg`, `receiverPerson`, `receiverTel`, `receiverAddress`, `SecretKey`, `CreateTime`, `customerId`) VALUES ( '{0}', '', '', '', '{0}', '', '{0}', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 0, 0,0, 0, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '未知', '{1}', '{2}');", orderInfo.RelationId, orderInfo.OperateAt, customerId));
                    }
                    LogServer.AddLogText("开始添加关联运单", orderInfo.RelationId);
                    //插入本系统自用的关联运单
                    sqlList.Add(string.Format("insert into huadong_tmsorder_waybillbase(relationId,number{2}) values('{0}', '{1}'{3})", orderInfo.RelationId, number, customerId != 0 ? ",customerId" : "", customerId != 0 ? "," + customerId : ""));
                    string updateReceiverIdSql = string.Empty;
                    if (customerInfo.LinkType == 2)
                    {
                        sql = string.Format("insert into waybill_base (number,senderId,senderOrg,senderPerson,senderTel,senderAddress,receiverId,receiverOrg,receiverPerson, receiverTel, receiverAddress, billingCount, stage, beginAt, signinAt, picPostbackAt, company) select '{4}' as number, {0} as senderId, '{1}' as senderOrg, senderPerson , senderTel , senderAddress ,null as receiverId, receiverOrg , receiverPerson , receiverTel , receiverAddress,(if(isnull(JFQUNTITY),0,JFQUNTITY)) as billingCount, 0 as stage, '{2}' as beginAt, null as signinAt, null as picPostbackAt, 1 as company from huadong_tms_order where (SHIPDETAILID = '{3}' or LEGCODE = '{3}') and customerId={5} limit 1", Huadong_Id, Huadong_Name, orderInfo.OperateAt, orderInfo.RelationId, number, customerId);
                        //宁波医药
                        updateReceiverIdSql = ("update waybill_base set receiverId = (select Id from customer where BindReceiverOrg=receiverOrg order by lastUpdateTime desc limit 1) where number = '" + number + "'");
                    }
                    else
                    {
                        sql = string.Format("insert into waybill_base (number,senderId,senderOrg,senderPerson,senderTel,senderAddress,receiverId,receiverOrg,receiverPerson, receiverTel, receiverAddress, billingCount, stage, beginAt, signinAt, picPostbackAt, company) select '{4}' as number, {0} as senderId, '{1}' as senderOrg, EXTCOL12 as senderPerson, '' as senderTel, EXTCOL11 as senderAddress,null as receiverId, CUSTOMERNAME as receiverOrg, RECEIVEMAN as receiverPerson, RECEIVEPHONE as receiverTel, RECEIVEADDR as receiverAddress,0 as billingCount, 0 as stage, '{2}' as beginAt, null as signinAt, null as picPostbackAt, 1 as company from huadong_tms_order where SHIPDETAILID = '{3}' or LEGCODE = '{3}' limit 1", Huadong_Id, Huadong_Name, orderInfo.OperateAt, orderInfo.RelationId, number);
                        //大华东
                        updateReceiverIdSql = ("update waybill_base set receiverId = (select Id from customer where fullName=receiverOrg order by lastUpdateTime desc limit 1) where number = '" + number + "'");
                    }
                    sqlList.Add(sql);
                    sqlList.Add(updateReceiverIdSql);
                    foreach (string item in sqlList)
                    {
                        LogServer.AddLogText(item, orderInfo.RelationId);
                    }
                    result = _SqlHelp.ExecuteTranstration(sqlList) ? 1 : 0;
                    LogServer.AddLogText(string.Format("执行结果:{0}", result), orderInfo.RelationId);
                    //回滚暂存表中的可用节点
                    if (result == 1)
                    {
                        HuaDongFcCoTable(orderInfo.RelationId);
                        HuaDongFcCoPictures(orderInfo.RelationId);
                    }
                    LogServer.AddLogText("创建第三方运单逻辑结束", orderInfo.RelationId);
                }
                else
                {
                    //判断运单操作时间先后,操作时间早的更新后的
                    if (Convert.ToDateTime(orderInfo.OperateAt) < IsExist.BeginAt)
                    {
                        sql = string.Format("update  waybill_base set beginAt='{0}' where number='{1}' ;", orderInfo.OperateAt, IsExist.Number);
                        int updatbeginAt = _SqlHelp.ExecuteNonQuery(sql);
                        LogServer.AddLogText(string.Format("sql:{0},结果:{1}", sql, updatbeginAt), orderInfo.RelationId);
                        result = 1;
                    }
                    else
                    {
                        result = 1;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(result);
        }
Exemple #16
0
        public List <CarDetialInfo> GetCarList(string carType, string brandNum, string brandType, string carColor, string bianShuQi, decimal minBaojia, decimal maxBaojia, int pageid, int pagecount, string sortKey, string sortType)
        {
            int error = 0;

            do
            {
                try
                {
                    using (var db = _dbFactory.OpenDbConnection())
                    {
                        var query = db.From <CarDetialInfo>();
                        if (!string.IsNullOrEmpty(carType))
                        {
                            query = query.Where(c => c.CarType == carType);
                        }
                        if (!string.IsNullOrEmpty(brandNum))
                        {
                            query = query.Where(c => c.BrandInfoKey == brandNum);
                        }
                        if (!string.IsNullOrEmpty(brandType))
                        {
                            query = query.Where(c => c.BrandTypeKey == brandType);
                        }
                        if (!string.IsNullOrEmpty(carColor))
                        {
                            query = query.Where(c => c.CarColor == carColor);
                        }
                        if (!string.IsNullOrEmpty(bianShuQi))
                        {
                            query = query.Where(c => c.BianShuQi == bianShuQi);
                        }

                        if (minBaojia > 0)
                        {
                            query = query.Where(c => c.baojia >= minBaojia);
                        }
                        if (maxBaojia > minBaojia)
                        {
                            query = query.Where(c => c.baojia <= maxBaojia);
                        }
                        switch (sortKey)
                        {
                        case "ShangPaiYear":
                            query = sortType == "desc" ? query.OrderByDescending(c => c.ShangPaiYear) : query.OrderBy(c => c.ShangPaiYear);
                            break;

                        case "BrandInfoKey":
                            query = sortType == "desc" ? query.OrderByDescending(c => c.BrandInfoKey) : query.OrderBy(c => c.BrandInfoKey);
                            break;

                        case "baojia":
                            query = sortType == "desc" ? query.OrderByDescending(c => c.baojia) : query.OrderBy(c => c.baojia);
                            break;

                        default:
                            query = query.OrderByDescending(c => c.Id);
                            break;
                        }
                        int skip = (pageid - 1) * pagecount;
                        query = query.Skip(skip).Take(pagecount);
                        return(db.Select(query));
                    }
                }
                catch (Exception ex1)
                {
                    error++;
                    Thread.Sleep(3000);
                    LogServer.WriteLog(ex1.Message, "DBError");
                }
            } while (error < 4);
            return(null);
        }
Exemple #17
0
 /// <summary>
 /// 查询暂存表是否存在运单节点信息,存在保存到节点表中
 /// </summary>
 /// <param name="RelationId">运单号</param>
 public static void HuaDongFcCoTable(string RelationId)
 {
     try
     {
         LogServer.AddLogText("开始删除临时表超过一个月的信息", RelationId);
         //删除超过一个月的数据
         string sql = string.Format("delete from unnecessary_node where inserttime<'{0}' ;", DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd HH:mm:ss"));
         _SqlHelp.ExecuteNonQuery(sql);
         //查询关系表是否存在信息
         sql = string.Format("select * from huadong_tmsorder_waybillbase where relationId='{0}';", RelationId);
         LogServer.AddLogText(string.Format("查询关系表是否存在信息{0}", sql), RelationId);
         Model_Huadong_Tmsorder_Waybillbase huadongbase = _SqlHelp.ExecuteObject <Model_Huadong_Tmsorder_Waybillbase>(sql);
         if (huadongbase != null)
         {
             //查询运单信息是否存在
             sql = string.Format("select * from waybill_base where number='{0}'; ", huadongbase.number);
             LogServer.AddLogText(string.Format("查询运单信息是否存在{0} ", sql), RelationId);
             Model_Waybill_Base waybbase = _SqlHelp.ExecuteObject <Model_Waybill_Base>(sql);
             if (waybbase != null)
             {
                 //查询暂存表是否存在节点信息
                 sql = string.Format("select * from unnecessary_node where baseId='{0}' and operateAt>='{1}';", RelationId, waybbase.BeginAt.ToString("yyyy-MM-dd HH:mm:ss"));
                 LogServer.AddLogText(string.Format("查询暂存表是否存在节点信息{0}", sql), RelationId);
                 List <Model_UnnecessaryNode> waybnode = _SqlHelp.ExecuteObjects <Model_UnnecessaryNode>(sql);
                 if (waybnode.Count != 0)
                 {
                     sql = string.Empty;//清空sql语句
                     foreach (Model_UnnecessaryNode item in waybnode)
                     {
                         string tempSql = string.Format("insert into waybill_node (baseId,operateAt,storageId,storageName,content,arrived,parentStorageId,handleFlag,scanNumber,customerId,insertTime) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{10}','{8}','{9}') ; ",
                                                        waybbase.Id, item.operateAt.ToString("yyyy-MM-dd HH:mm:ss"), item.StorageId, item.StorageName, item.Content, (int)item.Arrived, item.ParentStorageId, (item.CustomerId == 0 ? -1 : 0), item.CustomerId, item.InsertTime.ToString("yyyy-MM-dd HH:mm:ss"), item.BaseId);
                         LogServer.AddLogText("插入节点:" + tempSql, RelationId);
                         //查询到的信息保存到节点中
                         sql += tempSql;
                         //删除暂存表中的信息
                         tempSql = string.Format("delete from unnecessary_node where id={0} ;", item.Id);
                         LogServer.AddLogText("删除临时节点:" + tempSql, RelationId);
                         sql += tempSql;
                         if (item.Arrived == Enum_Arrived.HaveArrived)
                         {
                             tempSql = string.Format("update waybill_base set stage=1 ,signinAt='{0}' where number='{1}';", item.operateAt, waybbase.Number);
                             LogServer.AddLogText("更新运单运抵时间:" + tempSql, RelationId);
                             sql += tempSql;
                         }
                     }
                     int result = _SqlHelp.ExecuteNonQuery(sql);
                     LogServer.AddLogText("查询到的信息保存到节点中,删除暂存表中的信息", RelationId);
                 }
                 else
                 {
                     LogServer.AddLogText("暂存表不存在节点信息", RelationId);
                 }
             }
             else
             {
                 LogServer.AddLogText("运单信息不存在", RelationId);
             }
         }
         else
         {
             LogServer.AddLogText("关系表信息不存在", RelationId);
         }
     }
     catch (Exception ex)
     {
         LogServer.AddLogText("HuaDongFcCoTable异常:" + ex.Message, RelationId);
     }
 }
Exemple #18
0
        public void LogServer_PerformingClientOnClose_ShouldCallAction_And_OnMessage_ShouldTryConsume_Fails()
        {
            //--------------------------------Arrange-------------------------------
            var mockStreamConfig                = new Mock <IStreamConfig>();
            var mockPublisher                   = new Mock <IPublisher>();
            var mockLeaderConnection            = new Mock <IConnection>();
            var mockSourceConnectionFactory     = new Mock <ISourceConnectionFactory>();
            var mockAuditCommandConsumerFactory = new Mock <IAuditCommandConsumerFactory>();
            var mockAuditCommandConsumer        = new Mock <IAuditCommandConsumer>();

            mockAuditCommandConsumerFactory.Setup(o => o.New(It.IsAny <SeriLogConsumer>(), It.IsAny <IWebSocketConnection>(), It.IsAny <IWriter>()))
            .Returns(mockAuditCommandConsumer.Object);

            var serializer  = new JsonSerializer();
            var testMessage = serializer.Serialize <AuditCommand>(new AuditCommand());

            var falseException = new Exception("False exception from LogServerTests.cs");

            mockPublisher.Setup(o => o.Publish(It.IsAny <byte[]>())).Throws(falseException);
            mockLeaderConnection.Setup(o => o.NewPublisher(It.IsAny <IStreamConfig>())).Returns(mockPublisher.Object);
            mockSourceConnectionFactory.Setup(o => o.NewConnection()).Returns(mockLeaderConnection.Object);

            var mockLoggerSource = new Mock <ILoggerSource>();

            mockLoggerSource.Setup(ls => ls.NewConnection(It.IsAny <ILoggerConfig>())).Returns(new Mock <ILoggerConnection>().Object);

            var mockLoggerContext = new Mock <ILoggerContext>();

            mockLoggerContext.Setup(l => l.LoggerConfig).Returns(new Mock <ILoggerConfig>().Object);
            mockLoggerContext.Setup(l => l.Source).Returns(mockLoggerSource.Object);
            mockLoggerContext.Setup(o => o.LeaderSource).Returns(mockSourceConnectionFactory.Object);
            mockLoggerContext.Setup(o => o.LeaderConfig).Returns(mockStreamConfig.Object);

            Action <IWebSocketConnection> performedAction = null;
            var mockWebSocketServerWrapper = new Mock <IWebSocketServerWrapper>();

            mockWebSocketServerWrapper.Setup(ws => ws.Start(It.IsAny <Action <IWebSocketConnection> >())).Callback((Action <IWebSocketConnection> a) =>
            {
                performedAction = a;
            });

            var mockWebSocketServerFactory = new Mock <IWebSocketServerFactory>();

            mockWebSocketServerFactory.Setup(ws => ws.New(It.IsAny <string>())).Returns(mockWebSocketServerWrapper.Object);
            var consoleString = "";
            var mockWriter    = new Mock <IWriter>();

            mockWriter.Setup(w => w.WriteLine(It.IsAny <string>())).Callback((string s) => { consoleString = s; });
            var logServer = new LogServer(mockWebSocketServerFactory.Object, mockWriter.Object, mockLoggerContext.Object, mockAuditCommandConsumerFactory.Object);

            var mockClient = new Mock <IWebSocketConnection>();

            mockClient.SetupAllProperties();
            var clients = new List <IWebSocketConnection> {
                mockClient.Object
            };

            logServer.Start(clients);
            performedAction(mockClient.Object);

            mockClient.Object.OnMessage(Encoding.UTF8.GetString(testMessage));
            //--------------------------------Act-----------------------------------
            mockClient.Object.OnClose();
            //--------------------------------Assert--------------------------------
            Assert.AreEqual(0, clients.Count);

            mockAuditCommandConsumerFactory.Verify(o => o.New(It.IsAny <SeriLogConsumer>(), It.IsAny <IWebSocketConnection>(), It.IsAny <IWriter>()));
        }
Exemple #19
0
 /// <summary>
 /// 查询临时图片表是否存在图片信息,存在保存到图片表中
 /// </summary>
 /// <param name="RelationId"></param>
 public static void HuaDongFcCoPictures(string RelationId)
 {
     try
     {
         LogServer.AddLogText("开始删除临时图片表超过一个月的信息", RelationId);
         //删除超过一个月的数据
         string sql = string.Format("delete from temporarypictures where inserttime<'{0}' ;", DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd HH:mm:ss"));
         _SqlHelp.ExecuteNonQuery(sql);
         //查询关系表是否存在信息
         sql = string.Format("select * from huadong_tmsorder_waybillbase where relationId='{0}';", RelationId);
         Model_Huadong_Tmsorder_Waybillbase huadongbase = _SqlHelp.ExecuteObject <Model_Huadong_Tmsorder_Waybillbase>(sql);
         if (huadongbase != null)
         {
             //查询运单信息是否存在
             sql = string.Format("select * from waybill_base where number='{0}'; ", huadongbase.number);
             Model_Waybill_Base waybbase = _SqlHelp.ExecuteObject <Model_Waybill_Base>(sql);
             if (waybbase != null)
             {
                 //查询临时图片表是否存在图片信息
                 sql = string.Format("select * from temporarypictures where baseId='{0}' and operateAt>='{1}';", RelationId, waybbase.BeginAt.ToString("yyyy-MM-dd HH:mm:ss"));
                 List <Model_TemporaryPictures> waybnode = _SqlHelp.ExecuteObjects <Model_TemporaryPictures>(sql);
                 if (waybnode.Count != 0)
                 {
                     sql = string.Empty;//清空sql语句
                     foreach (Model_TemporaryPictures item in waybnode)
                     {
                         string tempSql = string.Format("insert into waybill_postback_pic(baseId,picName) values({0},'{1}') ; ",
                                                        waybbase.Id, item.PicName);
                         LogServer.AddLogText("插入图片:" + tempSql, RelationId);
                         //查询到的信息保存到节点中
                         sql += tempSql;
                         //删除暂存表中的信息
                         tempSql = string.Format("delete from temporarypictures where id={0} ;", item.id);
                         LogServer.AddLogText("删除临时图片:" + tempSql, RelationId);
                         sql    += tempSql;
                         tempSql = string.Format("update waybill_base set picPostbackAt='{0}' where number='{1}';", item.operateAt, waybbase.Number);
                         LogServer.AddLogText("更新运单图片时间:" + tempSql, RelationId);
                         sql += tempSql;
                     }
                     int result = _SqlHelp.ExecuteNonQuery(sql);
                     LogServer.AddLogText("临时图片信息保存到图片表,删除临时图片表中的信息,结果:" + result, RelationId);
                 }
                 else
                 {
                     LogServer.AddLogText(string.Format("图片表不存在图片信息,sql:{0},结果:{1}", sql, waybnode.Count), RelationId);
                 }
             }
             else
             {
                 LogServer.AddLogText(string.Format("运单信息不存在,sql:{0},结果:{1}", sql, waybbase == null ? "没有信息" : "1"), RelationId);
             }
         }
         else
         {
             LogServer.AddLogText(string.Format("关联信息不存在,sql:{0},结果:{1}", sql, huadongbase == null ? "没有信息" : "1"), RelationId);
         }
     }
     catch (Exception ex)
     {
         LogServer.AddLogText("HuaDongFcCoTable异常:" + ex.Message, RelationId);
     }
 }
Exemple #20
0
        /// <summary>
        /// 启动程序
        /// </summary>
        /// <param name="services"></param>
        public void ConfigureServices(IServiceCollection services)
        {
            #region Cors跨域需要添加以下代码
            //services.AddCors(c =>
            //{
            //    //控制器中[EnableCors("AllRequests")]名字需对应
            //    c.AddPolicy(CorsName,
            //        policy => policy
            //        .AllowAnyOrigin()
            //        .AllowAnyMethod()//允许任何方式
            //        .AllowAnyHeader());//允许任何头//允许cookie
            //});

            //services.AddCors(op =>
            //{ op.AddPolicy("cors",
            //    set => { set.SetIsOriginAllowed(origin => true)
            //        .AllowAnyHeader().AllowAnyMethod().AllowCredentials(); }); });

            #endregion
            services.AddSignalR();

            #region 配置启动程序
            //获取appsettings.json文件Default节点下面的连接字符串
            var sqlconn = Configuration.GetConnectionString("SqlserverDefault");
            LogServer.WriteLog("20190107", "数据库链接字符串", sqlconn);
            //第一个参数传入连接字符串 ,     第二个参数指明执行迁移的程序集
            //options.UseSqlServer(sqlconn,b=>b.MigrationsAssembly("CorePractice")   如果事WebApi 项目的话需要加services.AddEntityFrameworkSqlServer().AddDbContext
            services.AddEntityFrameworkSqlServer().AddDbContext <UwlDbContext>(options =>
                                                                               options.UseSqlServer(sqlconn, b => b.MigrationsAssembly("UwlAPI.Tools")));
            #endregion
            services.AddControllers(mvc =>
            {
                //全局路由权限公约,给路由添加Authorize特性
                mvc.Conventions.Insert(0, new GlobalRouteAuthorizeConvention());
                //mvc.Conventions.Insert(0, new AddRoutePrefixFilter(new RouteAttribute(RoutePrefix.Name)));
            });

            #region Swagger
            services.SwaggerConfigureExtension();
            #endregion



            #region No.1     官方的JWT验证 简单的策略授权(简单版)
            //services.AddAuthorization(options =>
            //{
            //    options.AddPolicy("Client", policy => policy.RequireRole("Client").Build());
            //    options.AddPolicy("Admin", policy => policy.RequireRole("Admin").Build());
            //    options.AddPolicy("SystemOrAdmin", policy => policy.RequireRole("Admin", "System"));
            //    options.AddPolicy("SystemOrAdminOrOther", policy => policy.RequireRole("Admin", "System", "Other"));
            //});
            //services.AddAuthentication(options =>
            //{
            //    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
            //    options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
            //}).AddJwtBearer(jwt=>
            //{
            //    jwt.TokenValidationParameters = TokenValidationParameters;
            //});
            #endregion

            #region No.2    中间件授权认证方式 使用此认证需要在Configure里面放开app.UseMiddleware<JwtTokenAuth>();取消注释所有控制器的[Authorize(Policy = "Admin")] 并且注释掉[Authorize]
            //中间件签名过期无效待解决——————需要自己写鉴权方式,前名是否过期……?????????????????????????????????
            //基于角色的策略授权(简单版) + 自定义认证中间件
            //services.AddAuthorization(options =>
            //{
            //    options.AddPolicy("Client", policy => policy.RequireRole("Client").Build());
            //    options.AddPolicy("Admin", policy => policy.RequireRole("Admin").Build());
            //    options.AddPolicy("AdminOrClient", policy => policy.RequireRole("AdminOrClient").Build());
            //});
            // 2【认证】、然后在下边的configure里,配置中间件即可:
            // app.UseMiddleware<JwtTokenAuth>();

            //services.AddAuthorization(options =>
            //{
            //    options.AddPolicy("Client", policy => policy.RequireRole("Client").Build());
            //    options.AddPolicy("Admin", policy => policy.RequireRole("Admin").Build());
            //    options.AddPolicy("SystemOrAdmin", policy => policy.RequireRole("Admin", "System"));
            //    options.AddPolicy("SystemOrAdminOrOther", policy => policy.RequireRole("Admin", "System", "Other"));
            //});
            //services.AddAuthentication(options =>
            //{
            //    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
            //    options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
            //}).AddJwtBearer(jwt =>
            //{
            //    jwt.TokenValidationParameters = TokenValidationParameters;
            //});
            #endregion

            #region No.3    复杂策略授权 + 官方JWT认证
            services.AddHttpContextExtension();
            services.AuthExtension();
            #endregion
            #region 添加automapper实体映射,如果存在相同字段则自动映射
            services.AddAutoMapper(GetType());
            //注册需要自动映射的实体类
            _mapperConfiguration = new MapperConfiguration(cfg =>
            {
                //初始化自动映射类
                cfg.AddProfile <MyProfile>();
            });
            //将自动映射属性封装为静态属性
            MyMappers.ObjectMapper = _mapperConfiguration.CreateMapper();
            services.AddScoped <MyProfile>();//注入自动映射类
            #endregion

            #region 接口控制反转依赖注入      -netcore自带方法
            services.ServerExtension();
            services.RepositotyExtension();
            #endregion

            #region 缓存和任务调度中心使用 单例模式注入生命周期
            services.CommonExtension();
            services.JobExtension();



            #endregion
        }
 public override void SendData(int clientId, string data)
 {
     LogServer.LogStatus(STT.General.INFO_GENERAL, $"CommClientNotifier client ID= {clientId}send data to server side. ");
     CommClientNotifier.Instance.StringDataToServerEvent?.Invoke(clientId, data);
 }