using Common.system; using Newtonsoft.Json.Linq; using System; using System.Collections.Specialized; using System.Threading; using XHWK.Model; namespace XHWK.WKTool.DAL { /// /// TQL在线铺码服务-改为SDK 暂无用 /// public class DAL_TmatrixCode { /// /// TQL铺码地址 /// private string TmatrixCodeURL = APP.TmatrixCodeURL; /// /// TQL用户名 /// string TQLUserName = "test122"; /// /// TQL密码 /// string TQLPassword = "123456"; /// /// 用户登陆后的用户ID /// string UserID; /// /// 分配的铺码 ID /// string pageserial; //1000 操作成功 //1001 打开数据库失败 //1002 用户名或密码错误 //1003 Key 信息错误(过期或已使用完) //1004 上传 Pdf 文档无法打开 //1005 铺码初始化失败 //1006 铺码错误 //1007 Json 数据错误 //1008 接口错误 //1009 UserID 错误 //1010 未查到该历史数据 /// /// TQL登陆 /// /// /// public bool TQLUserLogin(out string Message) { Exception ex = null; Message = "";//请求重试5次 共5秒 for (int num = 0; num < 5; num++) { try { JObject jo = HttpHelper.PostFunction(TmatrixCodeURL + @"/TmatrixCode/User/UserLogin", @"application/x-www-form-urlencoded", @"userName=" + TQLUserName + "&password=" + TQLPassword, ""); if (jo == null) { Message = "无法访问铺码服务器,请检查网络或铺码服务器地址。"; return false; } //"state":"1000", //"message":"File upload was succeed!", //" userID ":"1" //1000 操作成功 if (jo["state"].ToString() == "1000") { Message = ""; //登陆成功后用户ID UserID = jo["userID"].ToString(); return true; } else { Message = jo["message"].ToString(); return false; } } catch (Exception e) { Message = "无法访问铺码服务器:" + e.Message; ex = e; Thread.Sleep(1000); } } string ErrMessage = "【TQL登陆】(TQLUserLogin):请求失败。" + Message; LogHelper.WriteErrLog(ErrMessage, ex); return false; } /// /// TQL上传文件 /// /// 文件路径 /// 文件名 /// /// public bool TQLStartTmatrix(string filePath, string fileName, out string Message) { Exception ex = null; Message = "";//请求重试5次 共5秒 if (string.IsNullOrWhiteSpace(UserID)) { if (!TQLUserLogin(out Message)) { return false; } } for (int num = 0; num < 5; num++) { try { //byte[] byteArray = FileToolsCommon.ReadBigFileSpecifyLength(VideoInfo.VideoPath, len, (int)VideoInfo.SliceLen); //userID Y 字符 登录之后分配的 ID //callBack Y 回调 API 该 API 由应用方提供,为 post 请求 //createimage Y 字符 是否生成 png 图片(若生 成则会进行文件打包成 zip)0,不生成,1 生 成。 //fileName Y 字符 文件名称数组 //tmatrixType Y 字符 铺码类型(0.600DPI 打 印、1.1200DPI 打印、 2.印刷 //fileData //参数 NameValueCollection formFields = new NameValueCollection { { "userID", UserID }, { "callBack", ""}, { "createimage", "0" }, { "fileName", fileName }, { "tmatrixType", "1" } }; string[] PathList = new string[] { filePath }; JObject jo = HttpHelper.UploadFilesToRemoteUrl(TmatrixCodeURL + @"/TmatrixCode/User/startTmatrix", PathList, "", formFields); if (jo == null) { Message = "无法访问铺码服务器,请检查网络或铺码服务器地址。"; return false; } Model_TmatrixCode resultObj = JsonHelper.JsonToObj(jo.ToString()); //1000 操作成功 if (resultObj.state == "1000") { Message = ""; pageserial = resultObj.pageserial; return true; } else { Message = resultObj.message; return false; } } catch (Exception e) { Message = "无法访问铺码服务器:" + e.Message; ex = e; Thread.Sleep(1000); } } string ErrMessage = "【TQL上传】(TQLStartTmatrix):请求失败。" + Message; LogHelper.WriteErrLog(ErrMessage, ex); return false; } /// /// 查询进度 /// /// /// -1失败 0:未铺码 1:正在铺码 2:铺码完成,3:未查到。 public int TQLSchedulequery(out string Message) { Exception ex = null; Message = "";//请求重试5次 共5秒 for (int num = 0; num < 5; num++) { try { string[] pageserialList = new string[] { pageserial }; JObject jo = HttpHelper.PostFunction(TmatrixCodeURL + @"/TmatrixCode/User/schedulequery", @"application/x-www-form-urlencoded", @"userID=" + UserID + "&pageserialList=" + pageserialList, ""); if (jo == null) { Message = "无法访问铺码服务器,请检查网络或铺码服务器地址。"; return -1; } Model_ScheduleQuery resultObj = JsonHelper.JsonToObj(jo.ToString()); //1000 操作成功 if (resultObj.state == "1000") { //state Y 字符 返回标志 //message Y 字符 返回标志说明 //list Y 字符 进度数组 //schedule Y 字符 返回铺码进度:0 - 100 //pageserial 铺码 ID 字符 铺码 ID //state Y 数字 0:未铺码 1:正在铺码 2:铺码完成,3:未查到。 Message = ""; return int.Parse(resultObj.list.Find(x => x.pageserial == pageserial).state); } else { Message = resultObj.message; return -1; } } catch (Exception e) { Message = "无法访问铺码服务器:" + e.Message; ex = e; Thread.Sleep(1000); } } string ErrMessage = "【TQL查询进度】(TQLSchedulequery):请求失败。" + Message; LogHelper.WriteErrLog(ErrMessage, ex); return -1; } /// /// TQL历史查询 /// /// /// public string TQLHistoryQuery(string fileName, string startPage, string maxPage, out string Message) { Exception ex = null; Message = "";//请求重试5次 共5秒 for (int num = 0; num < 5; num++) { try { //userID Y 字符 登录之后分配的 ID //fileName N 字符 查询文件名称 //pageserial N 字符 铺码 ID(铺码 ID 或文件名必须设置一个) //startPage Y int 开始查询页码,从 1 开 始 //maxPage Y int 最大页码数 JObject jo = HttpHelper.PostFunction(TmatrixCodeURL + @"/TmatrixCode/User/HistoryQuery", @"application/x-www-form-urlencoded", @"userID=" + UserID + "&fileName=" + fileName + "&pageserial=" + pageserial + "&startPage=" + startPage + "&maxPage=" + maxPage, ""); if (jo == null) { Message = "无法访问铺码服务器,请检查网络或铺码服务器地址。"; return ""; } Model_HistoryQuery resultObj = JsonHelper.JsonToObj(jo.ToString()); //1000 操作成功 if (resultObj.state == "1000") { Message = ""; Model_HistoryPageList model_HistoryPageList = resultObj.pageList[0]; Model_HistoryListItem model_HistoryListItem = model_HistoryPageList.list.Find(x => x.pageserial == pageserial); return model_HistoryListItem.url; } else { Message = resultObj.message; return ""; } } catch (Exception e) { Message = "无法访问铺码服务器:" + e.Message; ex = e; Thread.Sleep(1000); } } string ErrMessage = "【TQL查询历史记录】(TQLHistoryQuery):请求失败。" + Message; LogHelper.WriteErrLog(ErrMessage, ex); return ""; } } }