private void imgTextPro(List <Web_UserBuildingCircle> data)
        {
            Stopwatch watch = new Stopwatch();

            watch.Start();

            //过来只有在服务器上的数据
            var domainData = data.Where(o => !string.IsNullOrEmpty(o.FirstTitleImg) && o.FirstTitleImg.Contains(_domain)).ToList();

            string domainOSSFirstTitlet = string.Empty;

            foreach (var item in domainData)
            {
                infoStatus.Summary = "处理再" + _domain + "域名数据";

                //处理封面图片数据
                string filePath = item.FirstTitleImg.ToLower()
                                  .Replace(_domain, _D)
                                  .Replace(_itemfiles.ToLower(), ItemImages.ToLower())
                                  .Replace('/', '\\').ToLower();

                if (filePath.Contains(_nS))
                {
                    filePath = filePath.Replace(_nS, "\\");

                    //判断/s/里面的图片是否带 Ori_
                    string tempFilePath = filePath.Replace(filePath.Split('\\').LastOrDefault(), "Ori_" + filePath.Split('\\').LastOrDefault());

                    if (File.Exists(tempFilePath))
                    {
                        filePath = tempFilePath;
                    }
                }

                //判断文件是否存在
                if (File.Exists(filePath))
                {
                    var fileInfo = new System.IO.FileInfo(filePath);
                    if (fileInfo.Length >= ImgLeng)
                    {
                        CompressImg.PicCompress(filePath);
                    }

                    // 移动操作
                    string ossImgPath = filePath
                                        .Replace(ItemImages.ToLower(), _itemfiles.ToLower())
                                        .Remove(0, 3)
                                        .Replace('\\', '/').ToLower();

                    //处理带Ori的数据
                    if (ossImgPath.Contains("Ori_".ToLower()))
                    {
                        ossImgPath = ossImgPath.Replace("Ori_".ToLower(), "");
                    }

                    this.OssUpload(ossImgPath, filePath, ref infoStatus);

                    domainOSSFirstTitlet = _domainOne + ossImgPath + firstTitletImg;
                }


                //处理 对象数据
                var obj = item.ResourceObj.ToList <CallbackUploadInfo>();


                List <CallbackUploadInfo> callbackUploadInfos = new List <CallbackUploadInfo>();

                if (obj != null)
                {
                    foreach (var itemRes in obj)
                    {
                        string filePathRes = itemRes.smallImgUrl
                                             .Replace(_domain, _D)
                                             .Replace(_itemfiles.ToLower(), ItemImages.ToLower())
                                             .Replace('/', '\\').ToLower();

                        if (filePathRes.Contains(_nS))
                        {
                            filePathRes = filePathRes.Replace(_nS, "\\");

                            //判断/s/里面的图片是否带 Ori_
                            string tempFilePath = filePathRes.Replace(filePathRes.Split('\\').LastOrDefault(), "Ori_" + filePathRes.Split('\\').LastOrDefault());

                            if (File.Exists(tempFilePath))
                            {
                                filePathRes = tempFilePath;
                            }

                            //判断文件是否存在
                            if (File.Exists(filePathRes))
                            {
                                var fileInfo = new System.IO.FileInfo(filePathRes);
                                if (fileInfo.Length >= ImgLeng)
                                {
                                    CompressImg.PicCompress(filePathRes);
                                }

                                // 移动操作
                                string ossImgPath = filePathRes
                                                    .Replace(ItemImages.ToLower(), _itemfiles.ToLower())
                                                    .Remove(0, 3)
                                                    .Replace('\\', '/').ToLower();

                                //处理带Ori的数据
                                if (ossImgPath.Contains("Ori_".ToLower()))
                                {
                                    ossImgPath = ossImgPath.Replace("Ori_".ToLower(), "");
                                }

                                this.OssUpload(ossImgPath, filePathRes, ref infoStatus);

                                CallbackUploadInfo callback = new CallbackUploadInfo();

                                string ossPro = string.Empty;
                                if (fileInfo.Length >= 500000)
                                {
                                    ossPro = string.Format(bigImg, 20);
                                }
                                else if (fileInfo.Length >= 400000)
                                {
                                    ossPro = string.Format(bigImg, 30);
                                }
                                else if (fileInfo.Length >= 300000)
                                {
                                    ossPro = string.Format(bigImg, 40);
                                }
                                else if (fileInfo.Length >= 200000)
                                {
                                    ossPro = string.Format(bigImg, 50);
                                }
                                else if (fileInfo.Length >= 100000)
                                {
                                    ossPro = string.Format(bigImg, 90);
                                }
                                else
                                {
                                    ossPro = string.Format(bigImg, 100);
                                }

                                string ossUrl = _domainOne + ossImgPath + ossPro;

                                callback.smallImgUrl = _domainOne + ossImgPath + "?x-oss-process=image/quality,q_90/resize,w_400";
                                callback.bigImgUrl   = ossUrl;
                                callback.fileName    = itemRes.fileName;

                                callbackUploadInfos.Add(callback);
                            }
                        }
                    }
                }



                // 保存数据
                try
                {
                    using (var context = new DataModelEntities())
                    {
                        var itemData = context.Web_UserBuildingCircle.FirstOrDefault(o => o.TalkId.Equals(item.TalkId));
                        if (itemData != null)
                        {
                            itemData.FirstTitleImg = domainOSSFirstTitlet;
                            itemData.ResourceObj   = callbackUploadInfos.Count == 0 ? null : callbackUploadInfos.ToJson();

                            itemData.TalkContent = string.IsNullOrEmpty(itemData.TalkContent.Trim()) ? itemData.TalkTitle : itemData.TalkContent;
                            itemData.TalkTitle   = string.IsNullOrEmpty(itemData.TalkTitle) ? null : "NULL";

                            context.SaveChanges();
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Failed with error info: {0}", ex.Message);
                    MessageBox.Show(string.Format("保存数据出错!{0}", ex.Message));
                }



                if (this.InvokeRequired)
                {
                    this.Invoke(new DelegateWriteMessage(_comm.WriteMessage), new object[] { 2, item.TalkId, filePath, infoStatus.OldPath, infoStatus.iStatus, infoStatus.Summary });
                    this.Invoke(new DelegateCurrent(_comm.Current), new object[] { 1, item.TalkId });
                    this.Invoke(new DelegateTimeCost(_comm.TimeCost), new object[] { watch.Elapsed.ToString() });
                }
                else
                {
                    _comm.WriteMessage(2, item.TalkId, filePath, infoStatus.OldPath, infoStatus.iStatus, infoStatus.Summary);
                    _comm.Current(1, item.TalkId);
                    _comm.TimeCost(watch.Elapsed.ToString());
                }
            }



            // 修改https://www.pic1.jzbl.com 的后缀
            var domainOneData = data.Where(o => !string.IsNullOrEmpty(o.FirstTitleImg) && o.FirstTitleImg.Contains(_domainOne)).ToList();

            // var domainOneData = data.Where(o =>o.TalkId.Equals("615a6f97-4fda-439a-b5c4-3b0e708bce13")).ToList();


            foreach (var itemOne in domainOneData)
            {
                infoStatus.Summary = "处理再" + _domainOne + "域名数据";

                List <CallbackUploadInfo> callbackUploadInfos = new List <CallbackUploadInfo>();

                //处理oss图片有后缀的,只压缩图片就行
                if (itemOne.FirstTitleImg.Split('.').LastOrDefault().ToLower().Equals("jpg"))
                {
                    domainOSSFirstTitlet = itemOne.FirstTitleImg + firstTitletImg;

                    //处理 对象数据
                    var obj = itemOne.ResourceObj.ToList <CallbackUploadInfo>();


                    if (obj != null)
                    {
                        foreach (var itemRes in obj)
                        {
                            CallbackUploadInfo callback = new CallbackUploadInfo();

                            string ossPro = string.Empty;

                            ossPro = string.Format(bigImg, 90);

                            string ossUrl = itemRes.smallImgUrl + ossPro;

                            callback.smallImgUrl = itemRes.smallImgUrl + "?x-oss-process=image/quality,q_90/resize,w_400";
                            callback.bigImgUrl   = ossUrl;
                            callback.fileName    = itemRes.fileName;

                            callbackUploadInfos.Add(callback);
                        }
                    }

                    infoStatus.Summary = "处理oss图片有后缀的,只压缩图片就行";
                }
                else
                {
                    string sourcekey = itemOne.FirstTitleImg.Replace(_domainOne, "");
                    string targetkey = sourcekey + ".jpg";


                    CopyObject(bucketName, sourcekey, bucketName, targetkey);

                    domainOSSFirstTitlet = _domainOne + targetkey;

                    //处理 对象数据
                    var obj = itemOne.ResourceObj.ToList <CallbackUploadInfo>();

                    if (obj != null)
                    {
                        foreach (var itemRes in obj)
                        {
                            CallbackUploadInfo callback = new CallbackUploadInfo();


                            string sourcekeylist = itemRes.smallImgUrl.Replace(_domainOne, "");
                            string targetkeylist = sourcekeylist + ".jpg";

                            CopyObject(bucketName, sourcekeylist, bucketName, targetkeylist);


                            string ossPro = string.Empty;

                            ossPro = string.Format(bigImg, 90);

                            string ossUrl = itemRes.smallImgUrl + ossPro;

                            callback.smallImgUrl = itemRes.smallImgUrl + "?x-oss-process=image/quality,q_90/resize,w_400";
                            callback.bigImgUrl   = ossUrl;
                            callback.fileName    = itemRes.fileName;

                            callbackUploadInfos.Add(callback);
                        }
                    }


                    infoStatus.Summary = "处理oss图片没有后缀,先拷贝,再删除原图";
                }


                // 保存数据
                try
                {
                    using (var context = new DataModelEntities())
                    {
                        var itemData = context.Web_UserBuildingCircle.FirstOrDefault(o => o.TalkId.Equals(itemOne.TalkId));
                        if (itemData != null)
                        {
                            itemData.FirstTitleImg = domainOSSFirstTitlet;
                            itemData.ResourceObj   = callbackUploadInfos.Count == 0 ? null : callbackUploadInfos.ToJson();

                            itemData.TalkContent = string.IsNullOrEmpty(itemData.TalkContent.Trim()) ? itemData.TalkTitle : itemData.TalkContent;
                            itemData.TalkTitle   = string.IsNullOrEmpty(itemData.TalkTitle) ? null : "NULL";

                            context.SaveChanges();
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Failed with error info: {0}", ex.Message);
                    MessageBox.Show(string.Format("保存数据出错!{0}", ex.Message));
                }



                if (this.InvokeRequired)
                {
                    this.Invoke(new DelegateWriteMessage(_comm.WriteMessage), new object[] { 2, itemOne.TalkId, "---------", infoStatus.OldPath, infoStatus.iStatus, infoStatus.Summary });
                    this.Invoke(new DelegateCurrent(_comm.Current), new object[] { 1, itemOne.TalkId });
                    this.Invoke(new DelegateTimeCost(_comm.TimeCost), new object[] { watch.Elapsed.ToString() });
                }
                else
                {
                    _comm.WriteMessage(2, itemOne.TalkId, "---------", infoStatus.OldPath, infoStatus.iStatus, infoStatus.Summary);
                    _comm.Current(1, itemOne.TalkId);
                    _comm.TimeCost(watch.Elapsed.ToString());
                }
            }
        }
        private void videoPro(List <Web_UserBuildingCircle> data)
        {
            Stopwatch watch = new Stopwatch();

            watch.Start();

            //过来只有在服务器上的数据https://www.pic.jzbl.com
            var domainData = data.Where(o => o.FirstTitleImg.Contains(_domain)).ToList();

            string domainOSSFirstTitlet = string.Empty;

            foreach (var item in domainData)
            {
                //处理封面图片数据
                string filePath = item.FirstTitleImg.ToLower()
                                  .Replace(_domain, _D)
                                  .Replace(_itemfiles.ToLower(), ItemImages.ToLower())
                                  .Replace('/', '\\').ToLower();

                if (filePath.Contains(_nS))
                {
                    filePath = filePath.Replace(_nS, "\\");

                    //判断/s/里面的图片是否带 Ori_
                    string tempFilePath = filePath.Replace(filePath.Split('\\').LastOrDefault(), "Ori_" + filePath.Split('\\').LastOrDefault());

                    if (File.Exists(tempFilePath))
                    {
                        filePath = tempFilePath;
                    }
                }

                //判断文件是否存在
                if (File.Exists(filePath))
                {
                    var fileInfo = new System.IO.FileInfo(filePath);
                    if (fileInfo.Length >= ImgLeng)
                    {
                        CompressImg.PicCompress(filePath);
                    }

                    // 移动操作
                    string ossImgPath = filePath
                                        .Replace(ItemImages.ToLower(), _itemfiles.ToLower())
                                        .Remove(0, 3)
                                        .Replace('\\', '/').ToLower();

                    //处理带Ori的数据
                    if (ossImgPath.Contains("Ori_".ToLower()))
                    {
                        ossImgPath = ossImgPath.Replace("Ori_".ToLower(), "");
                    }

                    this.OssUpload(ossImgPath, filePath, ref infoStatus);

                    domainOSSFirstTitlet = _domainOne + ossImgPath + firstTitletImg;
                }


                //处理 对象数据
                var obj = item.ResourceObj.ToList <CallbackUploadInfo>();


                List <CallbackUploadInfo> callbackUploadInfos = new List <CallbackUploadInfo>();

                if (obj != null)
                {
                    foreach (var itemRes in obj)
                    {
                        string filePathRes = itemRes.smallImgUrl
                                             .Replace(_domain, _D)
                                             .Replace(_itemfiles.ToLower(), ItemImages.ToLower())
                                             .Replace('/', '\\').ToLower();

                        if (filePathRes.Contains(_nS))
                        {
                            filePathRes = filePathRes.Replace(_nS, "\\");

                            //判断/s/里面的图片是否带 Ori_
                            string tempFilePath = filePathRes.Replace(filePathRes.Split('\\').LastOrDefault(), "Ori_" + filePathRes.Split('\\').LastOrDefault());

                            if (File.Exists(tempFilePath))
                            {
                                filePathRes = tempFilePath;
                            }

                            //判断文件是否存在
                            if (File.Exists(filePathRes))
                            {
                                var fileInfo = new System.IO.FileInfo(filePathRes);
                                if (fileInfo.Length >= ImgLeng)
                                {
                                    CompressImg.PicCompress(filePathRes);
                                }

                                // 移动操作
                                string ossImgPath = filePathRes
                                                    .Replace(ItemImages.ToLower(), _itemfiles.ToLower())
                                                    .Remove(0, 3)
                                                    .Replace('\\', '/').ToLower();

                                //处理带Ori的数据
                                if (ossImgPath.Contains("Ori_".ToLower()))
                                {
                                    ossImgPath = ossImgPath.Replace("Ori_".ToLower(), "");
                                }

                                this.OssUpload(ossImgPath, filePathRes, ref infoStatus);

                                CallbackUploadInfo callback = new CallbackUploadInfo();

                                string ossPro = string.Empty;
                                if (fileInfo.Length >= 500000)
                                {
                                    ossPro = string.Format(bigImg, 20);
                                }
                                else if (fileInfo.Length >= 400000)
                                {
                                    ossPro = string.Format(bigImg, 30);
                                }
                                else if (fileInfo.Length >= 300000)
                                {
                                    ossPro = string.Format(bigImg, 40);
                                }
                                else if (fileInfo.Length >= 200000)
                                {
                                    ossPro = string.Format(bigImg, 50);
                                }
                                else if (fileInfo.Length >= 100000)
                                {
                                    ossPro = string.Format(bigImg, 90);
                                }
                                else
                                {
                                    ossPro = string.Format(bigImg, 100);
                                }

                                string ossUrl = _domainOne + ossImgPath + ossPro;

                                callback.smallImgUrl = _domainOne + ossImgPath + smallImg;
                                callback.bigImgUrl   = ossUrl;
                                callback.fileName    = itemRes.fileName;

                                callbackUploadInfos.Add(callback);
                            }
                        }
                    }
                }



                // 保存数据
                try
                {
                    using (var context = new DataModelEntities())
                    {
                        var itemData = context.Web_UserBuildingCircle.FirstOrDefault(o => o.TalkId.Equals(item.TalkId));
                        if (itemData != null)
                        {
                            itemData.FirstTitleImg = domainOSSFirstTitlet;
                            itemData.ResourceObj   = callbackUploadInfos.Count == 0 ? null : callbackUploadInfos.ToJson();

                            itemData.TalkContent = string.IsNullOrEmpty(itemData.TalkContent.Trim()) ? itemData.TalkTitle : itemData.TalkContent;
                            itemData.TalkTitle   = string.IsNullOrEmpty(itemData.TalkTitle) ? null : "NULL";

                            context.SaveChanges();
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Failed with error info: {0}", ex.Message);
                    MessageBox.Show(string.Format("保存数据出错!{0}", ex.Message));
                }



                if (this.InvokeRequired)
                {
                    this.Invoke(new DelegateWriteMessage(_comm.WriteMessage), new object[] { 2, item.TalkId, filePath, infoStatus.OldPath, infoStatus.iStatus, infoStatus.Summary });
                    this.Invoke(new DelegateCurrent(_comm.Current), new object[] { 1, item.TalkId });
                    this.Invoke(new DelegateTimeCost(_comm.TimeCost), new object[] { watch.Elapsed.ToString() });
                }
                else
                {
                    _comm.WriteMessage(2, item.TalkId, filePath, infoStatus.OldPath, infoStatus.iStatus, infoStatus.Summary);
                    _comm.Current(1, item.TalkId);
                    _comm.TimeCost(watch.Elapsed.ToString());
                }
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 移动图片
        /// </summary>
        private void TitleImgCopy()
        {
            using (var context = new DataModelEntities())
            {
                string message = "开始获取数据,请等待…";

                if (this.InvokeRequired)
                {
                    this.Invoke(new DelegateWriteMessage(WriteMessage), new object[] { message });
                }
                else
                {
                    this.WriteMessage(message);
                }

                SimpleLoading loadingfrm = new SimpleLoading(this);
                //将Loaing窗口,注入到 SplashScreenManager 来管理
                SplashScreenManager loading = new SplashScreenManager(loadingfrm);
                loading.ShowLoading();

                var data = context.Web_ItemLibrary
                           .Where(o => o.IsDelete.ToString().Equals("0"))
                           .OrderByDescending(o => o.CreateDate)
                           .ToList();



                int iExists = 1, iUnExists = 1;


                for (int i = 0; i < data.Count; i++)
                {
                    string filePath = data[i].ItemTitleImg.Replace(_domain, _G).Replace('/', '\\');

                    if (!File.Exists(filePath))
                    {
                        iUnExists++;
                        message = $"路径:{filePath} 状态:< > 文件不存在";
                    }
                    else
                    {
                        iExists++;
                        message = $"路径:{filePath} 状态:< > 待复制";
                        //没有就创建一个基本文件夹

                        string filePathCopy = filePath.Replace(_itemfiles, _itemfilescopy);
                        try
                        {
                            //没有文件夹还需要创建
                            //拷贝原始文件
                            string fileName = filePathCopy.Split('\\').LastOrDefault();
                            string basePath = filePathCopy.Replace(fileName, "");
                            if (!Directory.Exists(basePath))
                            {
                                Directory.CreateDirectory(basePath);
                            }

                            //判断文件是否存在
                            if (File.Exists(filePathCopy))
                            {
                                message = $"拷贝(新路径原图)文件:{filePath} 到 {filePathCopy} 状态:》文件以存在《";
                            }
                            else
                            {
                                File.Copy(filePath, filePathCopy);
                                message = $"拷贝(压缩图片)文件:{filePath} 到 {filePathCopy} 状态:》成功《";
                            }

                            if (filePath.Contains(_samll))
                            {
                                if (filePath.Contains(_nS))
                                {
                                    string nSPath     = filePath.Replace(_nS, @"\").Replace(_samll, "");
                                    string nSfilePath = filePathCopy.Replace(_nS, @"\").Replace(_samll, "");

                                    //判断文件是否存在
                                    if (File.Exists(nSfilePath))
                                    {
                                        message = $"拷贝(新路径原图)文件:{nSPath} 到 {nSfilePath} 状态:》文件以存在《";
                                    }
                                    else
                                    {
                                        File.Copy(nSPath, nSfilePath);
                                        message = $"拷贝(新路径原图)文件:{nSPath} 到 {nSfilePath} 状态:》成功《";
                                    }
                                }
                                else
                                {
                                    string nSPath     = filePath.Replace(_samll, "");
                                    string nSfilePath = filePathCopy.Replace(_samll, "");
                                    //判断文件是否存在
                                    if (File.Exists(nSfilePath))
                                    {
                                        message = $"拷贝(老路径原图)文件:{nSPath} 到 {nSfilePath} 状态:》文件以存在《";
                                    }
                                    else
                                    {
                                        File.Copy(nSPath, nSfilePath);
                                        message = $"拷贝(老路径原图)文件:{nSPath} 到 {nSfilePath} 状态:》成功《";
                                    }
                                }
                            }
                            else
                            {
                                message = $"封面路径:{filePath} 不包含_small 状态:》未知《";
                            }
                        }
                        catch (Exception ex)
                        {
                            message = $"拷贝文件:{filePath} 状态:》失败{ex}";
                        }
                    }
                    if (this.InvokeRequired)
                    {
                        this.Invoke(new DelegateWriteMessage(WriteMessage), new object[] { message });
                    }
                    else
                    {
                        this.WriteMessage(message);
                    }
                }


                message = $"共计{data.Count}条,本地存在{iExists}条,不存在{iUnExists}条";


                if (this.InvokeRequired)
                {
                    this.Invoke(new DelegateWriteMessage(WriteMessage), new object[] { message });
                }
                else
                {
                    this.WriteMessage(message);
                }
            }
        }