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 "";
}
}
}