using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Threading;
using Library;
using LitJson;
using System.Net;
using System.IO;
using MySystem.SpModels;
namespace MySystem
{
///
/// 获取好哒ftp数据
///
public class GetHaoDaFTPInfoService
{
public readonly static GetHaoDaFTPInfoService Instance = new GetHaoDaFTPInfoService();
private GetHaoDaFTPInfoService()
{ }
public void Start()
{
//每天凌晨执行获取好哒FTP昨日交易数据
Thread th2 = new Thread(GetFTPDataInfoYesterdayReady);
th2.IsBackground = true;
th2.Start();
}
///
/// 获取好哒FTP昨日交易数据
///
public void GetFTPDataInfoYesterdayReady()
{
while (true)
{
if (DateTime.Now.Hour > 12 && DateTime.Now.Hour < 22)
{
// string check = function.ReadInstance("/GetFTPDepositYesterday/check" + DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + ".txt");
// if (string.IsNullOrEmpty(check))
// {
// function.WritePage("/GetFTPDepositYesterday/", "check" + DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + ".txt", DateTime.Now.ToString());
GetFTPDataInfoYesterday();
Thread.Sleep(600000);
// }
}
else
{
Thread.Sleep(1800000);
}
}
}
public void GetFTPDataInfoYesterday()
{
// 47.108.253.46
// 用户名:hdftp
// 密:haodatradeftp2024
// 目录:/haoda-trade
// FTP服务器的地址
string ftpServerAddress = "ftp://47.108.253.46";
// FTP登录凭证
string ftpUser = "hdftp";
string ftpPassword = "haodatradeftp2024";
// 要下载的文件路径
string filePath = "/haoda-trade/test_deposit_" + DateTime.Now.AddDays(-1).ToString("yyyyMMdd") + ".csv";
try
{
// 创建FtpWebRequest对象
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpServerAddress + filePath);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential(ftpUser, ftpPassword);
// 使用WebResponse获取响应
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
// 打开数据流
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
// 读取数据
string fileContents = reader.ReadToEnd();
if (!string.IsNullOrEmpty(fileContents))
{
WebCMSEntities db = new WebCMSEntities();
var DataInfo = fileContents.TrimEnd('\n').Split('\n', 2);
var DataList = DataInfo[1].Split('\n');
foreach (var DataListItem in DataList)
{
var DataListInfo = DataListItem.Split(',');
string SnNo = ""; //sn
string MerNo = ""; //商户编号
string ActDate = ""; //激活时间
string Deposit = ""; //押金金额
string PrizeAmt = ""; //奖励金额
string PrizeDate = ""; //奖励发放时间
string Name = ""; //发放人姓名
string PosKind = ""; //机具型号
SnNo = DataListInfo[0];
MerNo = DataListInfo[1];
ActDate = DataListInfo[2];
Deposit = DataListInfo[3];
PrizeAmt = DataListInfo[4];
PrizeDate = DataListInfo[5];
Name = DataListInfo[6];
PosKind = DataListInfo[7];
string ProductType = "0";
if(PosKind == "1") ProductType = "18";
if(PosKind == "2") ProductType = "19";
if(PosKind == "3") ProductType = "20";
if(PosKind == "4") ProductType = "21";
db.BindRecord.Add(new BindRecord()
{
CreateDate = DateTime.Now,
UpdateTime = DateTime.Parse(ActDate), //机具绑定、解绑时间
CreateTime = DateTime.Parse(ActDate), //商户操作时间
MerSnNo = SnNo, //序列号
MerNo = MerNo, //商户编号
MerName = Name,
SeoTitle = PrizeAmt,
SeoKeyword = ActDate,
ProductType = ProductType,
Field1 = Deposit,
Field2 = PrizeDate,
Status = 1,
});
db.Merchants.Add(new Merchants()
{
SnNo = SnNo,
CreateTime = DateTime.Now,
UpdateTime = DateTime.Parse(ActDate),
AgentName = Name,
MerRealName = Name,
MerNo = MerNo,
MerName = Name,
ProductType = ProductType,
Status = 1,
});
db.SaveChanges();
db.ActivateRecord.Add(new ActivateRecord()
{
SnNo = SnNo,
CreateDate = DateTime.Now,
SeoTitle = Deposit,
ActivateDate = DateTime.Parse(ActDate),
AgentNo = MerNo,
MerRealName = Name,
MerNo = MerNo,
MerName = Name,
ProductType = ProductType,
ChannelSerial = DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8),
Status = 1,
});
db.SaveChanges();
}
db.Dispose();
}
// 关闭响应
reader.Dispose();
responseStream.Dispose();
response.Close();
}
catch (WebException ex)
{
function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "获取好哒FTP文件数据异常");
}
}
}
}