123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286 |
- using LYFZ.Model;
- using Newtonsoft.Json;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Runtime.Remoting.Messaging;
- using System.Text;
- using HPSocketCS;
- using HPSocketCS.Extended;
- using LYFZ.Helper;
- namespace LYFZ.Network.OssOperation
- {
- public class OssProcess
- {
- #region 服务端
- public delegate bool SaveTaskToFile(OssUploadTask uploadTask);
- /// <summary>
- /// 获取oss的分店信息;
- /// </summary>
- /// <returns></returns>
- public static List<OssBranch> GetBranchList()
- {
- string jsonPath =LYFZ.WinAPI.CustomPublicMethod.GetFullDirectoryPath(LYFZ.WinAPI.CustomPublicMethod.BasePath)+ "AliyunOssClient\\branchlist.json";
- if (!File.Exists(jsonPath))
- {
- LYFZ.BLL.BLL_FileLogs.WriteMainLogs("未找到branchlist.json");
- return null;
- }
- try
- {
- string strJson = File.ReadAllText(jsonPath);
- List<OssBranch> osslist = (List<OssBranch>)JsonConvert.DeserializeObject(strJson, typeof(List<OssBranch>));
- return osslist;
- }
- catch(Exception ex)
- {
- BLL.BLL_FileLogs.WriteMainLogs("GetBranchList 失败:" + ex.Message);
- }
- return null;
- }
- /// <summary>
- /// 将任务保存成json文件;
- /// </summary>
- /// <param name="uploadTask"></param>
- public static bool SaveUploadTaskToFile(OssUploadTask uploadTask)
- {
- if ( uploadTask != null)
- {
- try
- {
- string strJson = JsonConvert.SerializeObject(uploadTask);
- // 用订单号+相片类型+分店id来命名任务文件;
- File.WriteAllText(string.Format("{0}AliyunOssClient\\uploadTask\\{1}#{2}.json", LYFZ.WinAPI.CustomPublicMethod.GetFullDirectoryPath(LYFZ.WinAPI.CustomPublicMethod.BasePath), uploadTask.UploadOrder, uploadTask.UploadImageType), strJson);
-
- return true;
- }
- catch
- {
- }
- }
- return false;
- }
- public static void CallbackFunc(IAsyncResult result)
- {
- SaveTaskToFile handler = (SaveTaskToFile)((AsyncResult)result).AsyncDelegate;
- handler.EndInvoke(result);
- }
- #endregion
- #region 客户端
- public static readonly LYFZ.Network.TCPNetworkClient.TCP_NetworkClient tcpClient = new Network.TCPNetworkClient.TCP_NetworkClient();
- public static bool PlatinumConnect( )
- {
- string hostAddress;
- LYFZ.BLL.BLL_Config cBll = new BLL.BLL_Config();
- LYFZ.Model.Model_Config mConfig = cBll.GetModel_SysConfig();
- if (mConfig.IsOpenLocalImportPhoto && !LYFZ.WinAPI.CustomPublicMethod.CheckInternaNetworkAddress(mConfig.ServerHostOrIP))
- hostAddress = "127.0.0.1";
- else
- hostAddress = mConfig.ServerHostOrIP;
- if ( !tcpClient.ConnectionServer(hostAddress, (ushort)mConfig.OssServerPort) )
- {
- return false;
- }
- return true;
- }
- public static bool GetOssBranchList(TcpPackClient client, out List<OssBranch> listbranch, ref bool useOss)
- {
- listbranch = null;
- RequestData requestData = new RequestData((int)TCPNetworkServer.SerializerRequestCommand.OSS_QueryBranch);
- ReturnData returnData = SerializerDataProcessed.HP_SendSerializerCommandToServer(client, requestData);
- if (returnData.ReturnStatus)
- {
- useOss = Convert.ToBoolean(returnData.AttachedMessage);
- if (returnData.DataByte != null)
- {
- listbranch = returnData.DataByteToModelObject<List<OssBranch>>();
- }
- }
- return returnData.ReturnStatus;
- }
- /// <summary>
- /// 获取云传片开启状态;
- /// </summary>
- /// <param name="client"></param>
- /// <param name="useOss"></param>
- /// <returns></returns>
- public static bool GetOssStatus(TcpPackClient client, ref bool useOss)
- {
- RequestData requestData = new RequestData((int)TCPNetworkServer.SerializerRequestCommand.OSS_Status);
- ReturnData returnData = SerializerDataProcessed.HP_SendSerializerCommandToServer(client, requestData);
- if (returnData.ReturnStatus)
- {
- useOss = Convert.ToBoolean(returnData.AttachedMessage);
- }
- return returnData.ReturnStatus;
- }
- public static bool GetOssBranchList(out List<AliyunOssLibrary.Model.SimplifyBranch> listbranch, ref bool useOss)
- {
- listbranch = null;
- if (tcpClient.AppState == HPSocketCS.Extended.AppState.Stoped)
- {
- if ( !PlatinumConnect() )
- return false;
- }
- RequestData requestData = new RequestData((int)AliyunOssLibrary.Enumerate.CommProtocol.C2C_PLATINUM_GET_BRANCH);
- ReturnData returnData = SerializerDataProcessed.HP_SendSerializerCommandToServer(tcpClient.Client, requestData);
- if (returnData.ReturnStatus)
- {
- useOss = Convert.ToBoolean(returnData.AttachedMessage);
- if (returnData.DataByte != null)
- {
- listbranch = returnData.DataByteToModelObject<List<AliyunOssLibrary.Model.SimplifyBranch>>();
- }
- }
- return returnData.ReturnStatus;
- }
- public static bool SendOssUploadInfo(TcpPackClient client, OssUploadTask uploadTask)
- {
- string strJson = JsonConvert.SerializeObject(uploadTask);
- HPSocketCS.Extended.RequestParameters reqParameters = new HPSocketCS.Extended.RequestParameters();
- reqParameters.SetRequestParameter<OssUploadTask>("uploadtask", uploadTask);
- RequestData requestData = new RequestData((int)TCPNetworkServer.SerializerRequestCommand.OSS_UploadTask);
- requestData.AttachedData = reqParameters.ToBytes();
- ReturnData returnData = SerializerDataProcessed.HP_SendSerializerCommandToServer(client, requestData);
- return returnData.ReturnStatus;
- }
- public static bool SendOssUploadInfo(AliyunOssLibrary.Model.UploadTask uploadTask)
- {
- if (tcpClient.AppState == HPSocketCS.Extended.AppState.Stoped)
- {
- if (!PlatinumConnect())
- return false;
- }
- string strJson = JsonConvert.SerializeObject(uploadTask);
- HPSocketCS.Extended.RequestParameters reqParameters = new HPSocketCS.Extended.RequestParameters();
- reqParameters.SetRequestParameter<AliyunOssLibrary.Model.UploadTask>("new_task", uploadTask);
- RequestData requestData = new RequestData((int)AliyunOssLibrary.Enumerate.CommProtocol.C2C_PLATINUM_NEW_TASK);
- requestData.AttachedData = reqParameters.ToBytes();
- ReturnData returnData = SerializerDataProcessed.HP_SendSerializerCommandToServer(tcpClient.Client, requestData);
- return returnData.ReturnStatus;
- }
- public static bool GetUploadOrDownload(out List<AliyunOssLibrary.Model.SafeUploadOrderDetail> listResult, AliyunOssLibrary.Enumerate.OrderListType type)
- {
- listResult = null;
- if (tcpClient.AppState == HPSocketCS.Extended.AppState.Stoped)
- {
- if (!PlatinumConnect())
- return false;
- }
- if (tcpClient != null)
- {
- HPSocketCS.Extended.RequestParameters reqParameters = new HPSocketCS.Extended.RequestParameters();
- reqParameters.SetRequestParameter<AliyunOssLibrary.Enumerate.OrderListType>("get_upload_or_download", type);
- RequestData requestData = new RequestData((int)AliyunOssLibrary.Enumerate.CommProtocol.C2C_PLATINUM_GET_UPLOAD_OR_DOWNLOAD);
- requestData.AttachedData = reqParameters.ToBytes();
- if (tcpClient.Client != null)
- {
- ReturnData returnData = SerializerDataProcessed.HP_SendSerializerCommandToServer(tcpClient.Client, requestData);
- if (returnData.ReturnStatus)
- {
- listResult = returnData.DataByteToModelObject<List<AliyunOssLibrary.Model.SafeUploadOrderDetail>>();
- }
- return returnData.ReturnStatus;
- }
- else
- {
- LYFZ.BLL.BLL_FileLogs.WriteMainLogs("tcpClient.Client = nulll");
- return false;
- }
- }
- else
- {
- LYFZ.BLL.BLL_FileLogs.WriteMainLogs("tcpClient = nulll");
- return false;
- }
- }
- public static bool SetUploadOpt(string upload_id, AliyunOssLibrary.Enumerate.UploadStatus status)
- {
- if (tcpClient.AppState == HPSocketCS.Extended.AppState.Stoped)
- {
- if (!PlatinumConnect())
- return false;
- }
- HPSocketCS.Extended.RequestParameters reqParameters = new HPSocketCS.Extended.RequestParameters();
- reqParameters.SetRequestParameter<AliyunOssLibrary.Enumerate.UploadStatus>("set_upload_opt", status);
- RequestData requestData = new RequestData((int)AliyunOssLibrary.Enumerate.CommProtocol.C2C_PLATINUM_SET_UPLOAD);
- requestData.AttachedData = reqParameters.ToBytes();
- requestData.AttachedMessage = upload_id;
- ReturnData returnData = SerializerDataProcessed.HP_SendSerializerCommandToServer(tcpClient.Client, requestData);
- return returnData.ReturnStatus;
- }
- public static bool SetDownloadOpt(string upload_id, AliyunOssLibrary.Enumerate.DownloadStatus status)
- {
- if (tcpClient.AppState == HPSocketCS.Extended.AppState.Stoped)
- {
- if (!PlatinumConnect())
- return false;
- }
- HPSocketCS.Extended.RequestParameters reqParameters = new HPSocketCS.Extended.RequestParameters();
- reqParameters.SetRequestParameter<AliyunOssLibrary.Enumerate.DownloadStatus>("set_download_opt", status);
- RequestData requestData = new RequestData((int)AliyunOssLibrary.Enumerate.CommProtocol.C2C_PLATINUM_SET_DOWNLOAD);
- requestData.AttachedData = reqParameters.ToBytes();
- requestData.AttachedMessage = upload_id;
- ReturnData returnData = SerializerDataProcessed.HP_SendSerializerCommandToServer(tcpClient.Client, requestData);
- return returnData.ReturnStatus;
- }
- public static bool SetPriority(string upload_id, bool isUpload)
- {
- if (tcpClient.AppState == HPSocketCS.Extended.AppState.Stoped)
- {
- if (!PlatinumConnect())
- return false;
- }
- HPSocketCS.Extended.RequestParameters reqParameters = new HPSocketCS.Extended.RequestParameters();
- reqParameters.SetRequestParameter<bool>("set_priority", isUpload);
- RequestData requestData = new RequestData((int)AliyunOssLibrary.Enumerate.CommProtocol.C2C_PLATINUM_SET_PRIORITY);
- requestData.AttachedData = reqParameters.ToBytes();
- requestData.AttachedMessage = upload_id;
- ReturnData returnData = SerializerDataProcessed.HP_SendSerializerCommandToServer(tcpClient.Client, requestData);
- return returnData.ReturnStatus;
- }
- #endregion
- }
- }
|