Commit 6967a074 authored by wuliangshun's avatar wuliangshun

添加影院同步

parent 21571f6a
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using iqiyiWin.Constant;
using iqiyiWin.Model;
using iqiyiWin.Response.Cinema.CinemaItem;
using iqiyiWin.Response.Cinema.Citites;
using iqiyiWin.Util;
using Newtonsoft.Json;
namespace iqiyiWin.Api
{
public class Cinema
{
public static List<IqiyiCity> GetCities()
{
var headers = new SortedDictionary<string, string>();
headers.Add("version", IqiyiVersion.Version);
headers.Add("os", IqiyiVersion.Os);
headers.Add("src", IqiyiVersion.Src);
headers.Add("platform", IqiyiVersion.Platform);
headers.Add("appid", IqiyiVersion.Appid);
headers.Add("dvsrc", IqiyiVersion.Dvsrc);
headers.Add("dfp", IqiyiVersion.Dfp());
headers.Add("ts", DateUtils.GetTimeStampOfMilliseconds().ToString());
headers.Add("nonce", IqiyiVersion.Nonce());
headers.Add("sig", IqiyiSign.Sign(headers));
var queryText = UrlUtils.BuildQueryStringUrl(headers);
var responseStr = HttpUtils.DoGet(new CookieContainer(), Domain.REFERER_DOMAIN, Domain.TICKET_IQIYI + ApiConstant.GET_CITIES + queryText, headers);
var response = JsonConvert.DeserializeObject<CityListResponse>(responseStr);
var cityList = new List<IqiyiCity>();
if (response != null && response.Code == "A00000")
{
foreach (var cItem in response.Data.Cities)
{
foreach (var item in cItem.Value)
{
cityList.Add(item);
}
}
//UILogUtils.Info($"爱奇艺票务 【获取城市列表】成功;");
return cityList;
}
else
{
//UILogUtils.Error($"爱奇艺票务 【获取城市列表】失败: {(response == null ? responseStr : response.Msg)}");
return cityList;
}
}
public static List<IqiyiCinema> GetCinemaList(IqiyiCity city, int pageIndex = 0)
{
var headers = new SortedDictionary<string, string>();
headers.Add("version", IqiyiVersion.Version);
headers.Add("os", IqiyiVersion.Os);
headers.Add("src", IqiyiVersion.Src);
headers.Add("platform", IqiyiVersion.Platform);
headers.Add("appid", IqiyiVersion.Appid);
headers.Add("dvsrc", IqiyiVersion.Dvsrc);
headers.Add("dfp", IqiyiVersion.Dfp());
headers.Add("ts", DateUtils.GetTimeStampOfMilliseconds().ToString());
headers.Add("nonce", IqiyiVersion.Nonce());
headers.Add("cityId", city.CityId.ToString());
headers.Add("page", pageIndex.ToString());
headers.Add("pageCount", "20");
headers.Add("sig", IqiyiSign.Sign(headers));
var queryText = UrlUtils.BuildQueryStringUrl(headers);
var responseStr = HttpUtils.DoGet(new CookieContainer(), Domain.REFERER_DOMAIN, Domain.TICKET_IQIYI + ApiConstant.GET_CINEMA_LIST + queryText, headers);
var response = JsonConvert.DeserializeObject<CinemaResponse>(responseStr);
var cinemaList = new List<IqiyiCinema>();
if (response != null && response.Code == "A00000")
{
foreach (var item in response.Data.Cinemas)
{
cinemaList.Add(item);
}
if (response.HasNext)
{
var nextCinemaList =GetCinemaList(city, pageIndex + 1);
cinemaList.AddRange(nextCinemaList);
}
//UILogUtils.Info($"爱奇艺票务 【获取影院列表】成功;");
return cinemaList;
}
else
{
//UILogUtils.Error($"爱奇艺票务 【获取影院列表】失败: {(response == null ? responseStr : response.Msg)}");
return cinemaList;
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using iqiyiWin.Qianzhu.Model.User;
using iqiyiWin.Enums;
namespace iqiyiWin
{
public class App
{
/// <summary>
/// Instance
/// </summary>
public static readonly App Instance = new App();
/// <summary>
/// Construct
/// </summary>
private App()
{
}
/// <summary>
/// 环境
/// </summary>
public AppEnvironmentEnum Environment { get; set; }
/// <summary>
/// 千猪用户账号
/// </summary>
public QianzhuUserAccount QianzhuUserAccount { get; set; }
/// <summary>
/// 千猪用户
/// </summary>
public QianzhuUser QianzhuUser { get; set; }
public void SetEnvironmentByDescriprtion(string environmentDescriprtion)
{
if (string.IsNullOrWhiteSpace(environmentDescriprtion))
{
throw new Exception("环境描述不能为空。");
}
switch (environmentDescriprtion)
{
case "本地":
Environment = AppEnvironmentEnum.LOCAL;
break;
case "测试":
Environment = AppEnvironmentEnum.TEST;
break;
case "正式":
Environment = AppEnvironmentEnum.PROD;
break;
default:
throw new Exception("非法环境描述。");
}
}
/// <summary>
/// 获取千猪域名
/// </summary>
/// <returns></returns>
public string GetQianzhuDomain()
{
string domain = "";
switch (Environment)
{
case AppEnvironmentEnum.LOCAL:
domain = "http://127.0.0.1:20001";
break;
case AppEnvironmentEnum.TEST:
domain = "https://live-test.qianzhu8.com";
break;
case AppEnvironmentEnum.PROD:
domain = "https://live.qianzhu8.com";
break;
default:
break;
}
return domain;
}
}
}
...@@ -28,5 +28,13 @@ namespace iqiyiWin.Constant ...@@ -28,5 +28,13 @@ namespace iqiyiWin.Constant
/// 抽奖 /// 抽奖
/// </summary> /// </summary>
public static string LOCK_DRAW = "/lotto/lottery"; public static string LOCK_DRAW = "/lotto/lottery";
/// <summary>
/// 获取城市列表
/// </summary>
public static string GET_CITIES = "/app/v2/lbs/cities";
/// <summary>
/// 获取影院列表
/// </summary>
public static string GET_CINEMA_LIST = "/app/v2/cinema/cinemaList";
} }
} }
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iqiyiWin.Enums
{
public enum AppEnvironmentEnum
{
/// <summary>
/// 本地
/// </summary>
[Description("本地")]
LOCAL = 0,
/// <summary>
/// 测试
/// </summary>
[Description("测试")]
TEST = 5,
/// <summary>
/// 正式
/// </summary>
[Description("正式")]
PROD = 10
}
}
...@@ -16,6 +16,8 @@ namespace iqiyiWin.Enums ...@@ -16,6 +16,8 @@ namespace iqiyiWin.Enums
[Description("查询优惠券")] [Description("查询优惠券")]
Coupon = 2, Coupon = 2,
[Description("抽奖")] [Description("抽奖")]
LockDraw = 3 LockDraw = 3,
[Description("获取影院列表")]
GetCinemaList = 4,
} }
} }
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
this.签到ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.签到ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.查询观影豆ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.查询观影豆ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.查询优惠券ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.查询优惠券ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.抽奖ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
this.复制账号ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.复制账号ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.删除ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.删除ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
...@@ -78,7 +79,7 @@ ...@@ -78,7 +79,7 @@
this.tssl_error_num = new System.Windows.Forms.ToolStripStatusLabel(); this.tssl_error_num = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStripStatusLabel5 = new System.Windows.Forms.ToolStripStatusLabel(); this.toolStripStatusLabel5 = new System.Windows.Forms.ToolStripStatusLabel();
this.tssl_wait_num = new System.Windows.Forms.ToolStripStatusLabel(); this.tssl_wait_num = new System.Windows.Forms.ToolStripStatusLabel();
this.抽奖ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.button4 = new System.Windows.Forms.Button();
this.tableLayoutPanel1.SuspendLayout(); this.tableLayoutPanel1.SuspendLayout();
this.groupBox1.SuspendLayout(); this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dgv_user)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dgv_user)).BeginInit();
...@@ -216,7 +217,7 @@ ...@@ -216,7 +217,7 @@
this.导出账号ToolStripMenuItem, this.导出账号ToolStripMenuItem,
this.清空账号ToolStripMenuItem}); this.清空账号ToolStripMenuItem});
this.cms_user.Name = "cms_user"; this.cms_user.Name = "cms_user";
this.cms_user.Size = new System.Drawing.Size(187, 268); this.cms_user.Size = new System.Drawing.Size(187, 246);
// //
// 签到ToolStripMenuItem // 签到ToolStripMenuItem
// //
...@@ -239,6 +240,13 @@ ...@@ -239,6 +240,13 @@
this.查询优惠券ToolStripMenuItem.Text = "查询优惠券"; this.查询优惠券ToolStripMenuItem.Text = "查询优惠券";
this.查询优惠券ToolStripMenuItem.Click += new System.EventHandler(this.查询优惠券ToolStripMenuItem_Click); this.查询优惠券ToolStripMenuItem.Click += new System.EventHandler(this.查询优惠券ToolStripMenuItem_Click);
// //
// 抽奖ToolStripMenuItem
//
this.抽奖ToolStripMenuItem.Name = "抽奖ToolStripMenuItem";
this.抽奖ToolStripMenuItem.Size = new System.Drawing.Size(186, 22);
this.抽奖ToolStripMenuItem.Text = "抽奖";
this.抽奖ToolStripMenuItem.Click += new System.EventHandler(this.抽奖ToolStripMenuItem_Click);
//
// toolStripMenuItem2 // toolStripMenuItem2
// //
this.toolStripMenuItem2.Name = "toolStripMenuItem2"; this.toolStripMenuItem2.Name = "toolStripMenuItem2";
...@@ -406,6 +414,7 @@ ...@@ -406,6 +414,7 @@
this.tableLayoutPanel2.Controls.Add(this.button2, 0, 1); this.tableLayoutPanel2.Controls.Add(this.button2, 0, 1);
this.tableLayoutPanel2.Controls.Add(this.btn_set_interval, 1, 1); this.tableLayoutPanel2.Controls.Add(this.btn_set_interval, 1, 1);
this.tableLayoutPanel2.Controls.Add(this.button3, 0, 2); this.tableLayoutPanel2.Controls.Add(this.button3, 0, 2);
this.tableLayoutPanel2.Controls.Add(this.button4, 1, 2);
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 17); this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 17);
this.tableLayoutPanel2.Name = "tableLayoutPanel2"; this.tableLayoutPanel2.Name = "tableLayoutPanel2";
...@@ -569,12 +578,16 @@ ...@@ -569,12 +578,16 @@
this.tssl_wait_num.Size = new System.Drawing.Size(15, 17); this.tssl_wait_num.Size = new System.Drawing.Size(15, 17);
this.tssl_wait_num.Text = "0"; this.tssl_wait_num.Text = "0";
// //
// 抽奖ToolStripMenuItem // button4
// //
this.抽奖ToolStripMenuItem.Name = "抽奖ToolStripMenuItem"; this.button4.Dock = System.Windows.Forms.DockStyle.Fill;
this.抽奖ToolStripMenuItem.Size = new System.Drawing.Size(186, 22); this.button4.Location = new System.Drawing.Point(117, 83);
this.抽奖ToolStripMenuItem.Text = "抽奖"; this.button4.Name = "button4";
this.抽奖ToolStripMenuItem.Click += new System.EventHandler(this.抽奖ToolStripMenuItem_Click); this.button4.Size = new System.Drawing.Size(108, 34);
this.button4.TabIndex = 5;
this.button4.Text = "获取影院列表";
this.button4.UseVisualStyleBackColor = true;
this.button4.Click += new System.EventHandler(this.Button4_Click);
// //
// Main // Main
// //
...@@ -655,6 +668,7 @@ ...@@ -655,6 +668,7 @@
private System.Windows.Forms.CheckBox cb_luckDraw; private System.Windows.Forms.CheckBox cb_luckDraw;
private System.Windows.Forms.Button button3; private System.Windows.Forms.Button button3;
private System.Windows.Forms.ToolStripMenuItem 抽奖ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem 抽奖ToolStripMenuItem;
private System.Windows.Forms.Button button4;
} }
} }
...@@ -18,6 +18,7 @@ using System.IO; ...@@ -18,6 +18,7 @@ using System.IO;
using DingDingSdk; using DingDingSdk;
using iqiyiWin.Enums; using iqiyiWin.Enums;
using iqiyiWin.Extension; using iqiyiWin.Extension;
using iqiyiWin.Qianzhu.Api;
namespace iqiyiWin namespace iqiyiWin
{ {
...@@ -103,6 +104,10 @@ namespace iqiyiWin ...@@ -103,6 +104,10 @@ namespace iqiyiWin
/// 抽奖id /// 抽奖id
/// </summary> /// </summary>
public string ActCode = ""; public string ActCode = "";
/// <summary>
/// 爱奇艺影院账号列表
/// </summary>
public List<QianZhuSaveIqiyiCinema> IqiyiCinemas = new List<QianZhuSaveIqiyiCinema>();
public Main() public Main()
{ {
...@@ -276,7 +281,10 @@ namespace iqiyiWin ...@@ -276,7 +281,10 @@ namespace iqiyiWin
FileUtils.AppendAllText(filePath, fileText, Encoding.UTF8); FileUtils.AppendAllText(filePath, fileText, Encoding.UTF8);
} }
} }
else if( TaskList[TaskIndex] == TaskTypeEnum.GetCinemaList)
{
QianzhuIqiyiCinema.InsertBatch(App.Instance.QianzhuUserAccount.Token, IqiyiCinemas);
}
if (TimerTiming.Enabled) if (TimerTiming.Enabled)
{ {
SendDingdingMessagesAsync($"{logText}", "18057708086"); SendDingdingMessagesAsync($"{logText}", "18057708086");
...@@ -862,6 +870,97 @@ namespace iqiyiWin ...@@ -862,6 +870,97 @@ namespace iqiyiWin
} }
} }
#endregion #endregion
#region 获取影院列表
private void GetCinemaListInfo()
{
StartTime = DateUtils.GetTimeStampOfMilliseconds();
var cityList = Cinema.GetCities();
SelectNum = cityList.Count;
ImplementNum = 0;
SuccessNum = 0;
ErrorNum = 0;
WaitNum = cityList.Count;
setStatusStripNum();
_cancellationTokenSource?.Cancel();
_cancellationTokenSource = new CancellationTokenSource();
CancellationToken cancellationToken = _cancellationTokenSource.Token;
String fileDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "日志", "影院列表", DateTime.Now.ToString("yyyyMMdd"));
String fileNamePrefixSuccess = "影院列表-" + DateTime.Now.ToString("HHmmss") + ".txt";
string filePath = "";
string fileText = $"城市Id----城市名称----爱奇艺影院Id----爱奇艺影院名称----爱奇艺影院地址----爱奇艺影院AreaId\n";
filePath = Path.Combine(fileDirectory, fileNamePrefixSuccess);
FileUtils.AppendAllText(filePath, fileText, Encoding.UTF8);
// 设定服务器
App.Instance.SetEnvironmentByDescriprtion("测试");
// 登录账号
var account = "15005885021";
var password = "a123456";
var response = QianzhuUserApi.Login(account, password);
// 获取token
string token = response.Data.AccessToken;
// 判断是否登陆成功
if (!response.Success)
{
throw new Exception(response.Message);
}
App.Instance.QianzhuUserAccount = new Qianzhu.Model.User.QianzhuUserAccount()
{
Account = account,
Password = password,
Token = token
};
// 同步用户信息
var user = QianzhuUserApi.GetUser(token);
// 写入用户信息
App.Instance.QianzhuUser = user;
IqiyiCinemas = new List<QianZhuSaveIqiyiCinema>();
foreach (var cityItem in cityList)
{
Task.Factory.StartNew(() =>
{
int threadId = Thread.CurrentThread.ManagedThreadId;
if (!_threadIdSet.Contains(threadId))
{
_threadIdSet.Add(threadId);
UILogUtils.Info($"线程[{threadId}]运行中...总线程数[{_threadIdSet.Count}]");
}
var cinemaList = Cinema.GetCinemaList(cityItem);
// UILogUtils.Info($"{item.Name} - {cinemaList.Count}");
Interlocked.Increment(ref SuccessNum);
Interlocked.Increment(ref ImplementNum);
Interlocked.Decrement(ref WaitNum);
setStatusStripNum();
fileText = "";
foreach (var item in cinemaList)
{
IqiyiCinemas.Add(new QianZhuSaveIqiyiCinema()
{
Name = item.CinemaName,
Address = item.CinemaAddress,
IqiyiAreaId = item.AreaId,
IqiyiCinemaId = item.CinemaId,
IqiyiCityId = cityItem.CityId.ToString(),
IqiyiCityName = cityItem.Name
});
fileText += $"{cityItem.CityId}----{cityItem.Name}----{item.CinemaId}----{item.CinemaName}----{item.CinemaAddress}----{item.AreaId}\n";
}
filePath = Path.Combine(fileDirectory, fileNamePrefixSuccess);
FileUtils.AppendAllText(filePath, fileText, Encoding.UTF8);
//var user = QianzhuUserApi.GetUser(token);
//App.Instance.QianzhuUser = user;
});
}
}
#endregion
private void Btn_start_Click(object sender, EventArgs e) private void Btn_start_Click(object sender, EventArgs e)
{ {
if (dgv_user.Rows.Count == 0) if (dgv_user.Rows.Count == 0)
...@@ -960,6 +1059,9 @@ namespace iqiyiWin ...@@ -960,6 +1059,9 @@ namespace iqiyiWin
} }
lockDraw(IqiyiAccounts); lockDraw(IqiyiAccounts);
break; break;
case TaskTypeEnum.GetCinemaList:
GetCinemaListInfo();
break;
default: default:
UILogUtils.Error($"未知任务类型"); UILogUtils.Error($"未知任务类型");
break; break;
...@@ -1231,5 +1333,31 @@ namespace iqiyiWin ...@@ -1231,5 +1333,31 @@ namespace iqiyiWin
setLuckDraw.ShowDialog(this); setLuckDraw.ShowDialog(this);
} }
private void Button4_Click(object sender, EventArgs e)
{
try
{
if (DateUtils.GetTimeStampOfMilliseconds() - StartTime > TimeAbnormalInterval)
{
IsLoading = false;
}
if (IsLoading)
{
return;
}
IsLoading = true;
TaskList = new List<TaskTypeEnum>{
TaskTypeEnum.GetCinemaList
};
TaskIndex = 0;
GetCinemaListInfo();
}
catch (Exception ex)
{
UILogUtils.Error(ex);
}
}
} }
} }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace iqiyiWin.Model
{
public class IqiyiCinema
{
/// <summary>
/// Examples: 15.1, 19.9, 44.9, 22.8, 27.9
/// </summary>
[JsonProperty("cinemaPrice")]
public double CinemaPrice { get; set; }
/// <summary>
/// Examples: "15.1", "19.9", "44.9", "22.8", "27.9"
/// </summary>
[JsonProperty("cinemaPriceString")]
public string CinemaPriceString { get; set; }
/// <summary>
/// Examples: 0
/// </summary>
[JsonProperty("seatStatus")]
public string SeatStatus { get; set; }
/// <summary>
/// Examples: ""
/// </summary>
[JsonProperty("cinemaDistanceString")]
public string CinemaDistanceString { get; set; }
/// <summary>
/// Examples: 0
/// </summary>
[JsonProperty("movieId")]
public string MovieId { get; set; }
/// <summary>
/// Examples: false
/// </summary>
[JsonProperty("isStored")]
public bool IsStored { get; set; }
/// <summary>
/// Examples: "上海市闵行区永跃路360号万达广场4F-A室", "通河路533弄2号红太阳商业广场3楼(从一楼爱婴室旁手扶梯电梯至三楼)", "上海市闵行区漕宝路3366号上海七宝万科广场5层L501单元", "上海南汇区惠南镇南门大街18号乐购广场5层", "上海市闵行区都市路2700号4F-A,5F-A"
/// </summary>
[JsonProperty("cinemaAddress")]
public string CinemaAddress { get; set; }
/// <summary>
/// Examples: 249, 243, 241, 239, 235
/// </summary>
[JsonProperty("sessionTotalCount")]
public string SessionTotalCount { get; set; }
/// <summary>
/// Examples: 1401256098, 1401255798, 1401257098, 1401256398, 1401257398
/// </summary>
[JsonProperty("areaId")]
public string AreaId { get; set; }
/// <summary>
/// Examples: 382548827, 382413427, 381227327, 180457627, 381934427
/// </summary>
[JsonProperty("cinemaId")]
public string CinemaId { get; set; }
/// <summary>
/// Examples: "万达影城(上海浦江万达广场店)", "大光明RGB全激光影城(红太阳店)", "CGV影城(七宝万科广场店)", "大地影院(上海南汇店)", "万达国际影城(颛桥万达广场店)"
/// </summary>
[JsonProperty("cinemaName")]
public string CinemaName { get; set; }
/// <summary>
/// Examples: 0.0
/// </summary>
[JsonProperty("cinemaDistance")]
public double CinemaDistance { get; set; }
/// <summary>
/// Examples: false, true
/// </summary>
[JsonProperty("hasImx")]
public bool HasImx { get; set; }
/// <summary>
/// Examples: 0
/// </summary>
[JsonProperty("order")]
public string Order { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace iqiyiWin.Model
{
public class IqiyiCity
{
/// <summary>
/// Examples: "akesu", "anshan", "alashan", "anqing", "anshun"
/// </summary>
[JsonProperty("pinyin")]
public string Pinyin { get; set; }
/// <summary>
/// Examples: "A", "B", "C", "D", "E"
/// </summary>
[JsonProperty("initial")]
public string Initial { get; set; }
/// <summary>
/// Examples: "阿克苏", "鞍山", "阿盟,阿拉善", "安庆", "安顺"
/// </summary>
[JsonProperty("name")]
public string Name { get; set; }
/// <summary>
/// Examples: 1401542293, 1401269893, 1401292393, 1401280593, 1401273993
/// </summary>
[JsonProperty("cityId")]
public int CityId { get; set; }
/// <summary>
/// Examples: false, true
/// </summary>
[JsonProperty("isHotCity")]
public bool IsHotCity { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace iqiyiWin.Model
{
public class QianZhuSaveIqiyiCinema
{
/// <summary>
/// id
/// </summary>
[JsonProperty("id")]
public string Id { get; set; } = "";
/// <summary>
/// 影院名称
/// </summary>
[JsonProperty("name")]
public string Name { get; set; } = "";
/// <summary>
/// 影院地址
/// </summary>
[JsonProperty("address")]
public string Address { get; set; } = "";
/// <summary>
/// 爱奇艺区域id
/// </summary>
[JsonProperty("iqiyiAreaId")]
public string IqiyiAreaId { get; set; } = "";
/// <summary>
/// 爱奇艺影院id
/// </summary>
[JsonProperty("iqiyiCinemaId")]
public string IqiyiCinemaId { get; set; } = "";
/// <summary>
/// 爱奇艺城市id
/// </summary>
[JsonProperty("iqiyiCityId")]
public string IqiyiCityId { get; set; } = "";
/// <summary>
/// 爱奇艺城市名称
/// </summary>
[JsonProperty("iqiyiCityName")]
public string IqiyiCityName { get; set; } = "";
/// <summary>
/// 纬度
/// </summary>
[JsonProperty("lat")]
public string Lat { get; set; } = "";
/// <summary>
/// 经度
/// </summary>
[JsonProperty("lon")]
public string Lon { get; set; } = "";
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using iqiyiWin.Model;
using iqiyiWin.Util;
using Newtonsoft.Json;
namespace iqiyiWin.Qianzhu.Api
{
public class QianzhuIqiyiCinema
{
public static void InsertBatch(string token , List<QianZhuSaveIqiyiCinema> iqiyiCinemas)
{
Dictionary<string, string> headers = new Dictionary<string, string>();
headers.Add("Authorization", token);
var responseStr = HttpUtils.DoPost(App.Instance.GetQianzhuDomain() + "/admin/v1/iqiyiCinema/insertBatch", JsonConvert.SerializeObject(iqiyiCinemas), headers);
UILogUtils.Debug("千猪 【批量写入爱奇艺影院】响应:" + responseStr);
//var response = JsonConvert.DeserializeObject<QianzhuGetUserResponse>(responseStr);
//if (response != null && response.Success)
//{
// UILogUtils.Info("千猪 【用户信息】成功。");
// return response.Data.User;
//}
//else
//{
// UILogUtils.Error("千猪 【用户信息】失败:" + (response == null ? responseStr : response.Message));
// return null;
//}
}
}
}
using iqiyiWin.Qianzhu.Model.User;
using iqiyiWin.Qianzhu.Request.User;
using iqiyiWin.Qianzhu.Response;
using iqiyiWin.Qianzhu.Response.User;
using iqiyiWin.Util;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iqiyiWin.Qianzhu.Api
{
public class QianzhuUserApi
{
/// <summary>
/// 登录
/// </summary>
/// <param name="mobile">手机号</param>
/// <param name="password">密码</param>
/// <returns>token</returns>
public static QianzhuUserLoginResponse Login(string mobile, string password)
{
QianzhuUserLoginRequest request = new QianzhuUserLoginRequest();
request.Mobile = mobile;
request.Password = password;
var responseStr = HttpUtils.DoPost(App.Instance.GetQianzhuDomain() + "/admin/login/mobile", JsonConvert.SerializeObject(request), null);
UILogUtils.Debug("千猪 【登录】响应:" + responseStr);
var response = JsonConvert.DeserializeObject<QianzhuUserLoginResponse>(responseStr);
return response;
}
/// <summary>
/// 获取用户信息
/// </summary>
/// <param name="token">token</param>
/// <returns>用户信息</returns>
public static QianzhuUser GetUser(string token)
{
Dictionary<string, string> headers = new Dictionary<string, string>();
headers.Add("Authorization", token);
var responseStr = HttpUtils.DoGet(App.Instance.GetQianzhuDomain() + "/admin/user/userInfo", headers);
UILogUtils.Debug("千猪 【用户信息】响应:" + responseStr);
var response = JsonConvert.DeserializeObject<QianzhuGetUserResponse>(responseStr);
if (response != null && response.Success)
{
UILogUtils.Info("千猪 【用户信息】成功。");
return response.Data.User;
}
else
{
UILogUtils.Error("千猪 【用户信息】失败:" + (response == null ? responseStr : response.Message));
return null;
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iqiyiWin.Qianzhu.Enums
{
public enum QianzhuCinemaCardTypeEnum
{
/// <summary>
/// 会员卡
/// </summary>
[Description("会员卡")]
CARD = 0,
/// <summary>
/// 优惠券
/// </summary>
[Description("优惠券")]
COUPON = 5
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iqiyiWin.Qianzhu.Enums
{
public enum QianzhuMovieOrderDrawStatusEnum
{
/// <summary>
/// 待出票
/// </summary>
[Description("待出票")]
TOBE_DRAW = 5,
/// <summary>
/// 已出票
/// </summary>
[Description("已出票")]
DRAWED = 10,
/// <summary>
/// 已取消
/// </summary>
[Description("已取消")]
CANCELED = -5
}
}
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iqiyiWin.Qianzhu.Model.User
{
public class QianzhuUser
{
/// <summary>
/// Examples: 1001080
/// </summary>
[JsonProperty("id")]
public int Id { get; set; }
/// <summary>
/// Examples: "2019-09-18 11:17:51"
/// </summary>
[JsonProperty("createTime")]
public string CreateTime { get; set; }
/// <summary>
/// Examples: "2020-11-24 13:41:43"
/// </summary>
[JsonProperty("updateTime")]
public string UpdateTime { get; set; }
/// <summary>
/// Examples: "雨夜"
/// </summary>
[JsonProperty("nickname")]
public string Nickname { get; set; }
/// <summary>
/// Examples: "134****1872"
/// </summary>
[JsonProperty("mobile")]
public string Mobile { get; set; }
/// <summary>
/// Examples: 1
/// </summary>
[JsonProperty("level")]
public int Level { get; set; }
/// <summary>
/// Examples: "小二"
/// </summary>
[JsonProperty("levelDesc")]
public string LevelDesc { get; set; }
/// <summary>
/// Examples: 0
/// </summary>
[JsonProperty("enableStatus")]
public int? EnableStatus { get; set; }
/// <summary>
/// Examples: 2
/// </summary>
[JsonProperty("supplierId")]
public int? SupplierId { get; set; }
/// <summary>
/// Examples: false
/// </summary>
[JsonProperty("sxMovie")]
public bool? SxMovie { get; set; }
/// <summary>
/// Examples: 1
/// </summary>
[JsonProperty("sxMovieStatus")]
public int? SxMovieStatus { get; set; }
/// <summary>
/// Examples: false
/// </summary>
[JsonProperty("admin")]
public bool? Admin { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iqiyiWin.Qianzhu.Model.User
{
public class QianzhuUserAccount
{
/// <summary>
/// 账号
/// </summary>
public string Account { get; set; }
/// <summary>
/// 密码
/// </summary>
public string Password { get; set; }
/// <summary>
/// Token
/// </summary>
public string Token { get; set; }
}
}
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iqiyiWin.Qianzhu.Request.User
{
public class QianzhuUserLoginRequest
{
/// <summary>
/// 账号
/// </summary>
[JsonProperty("mobile")]
public string Mobile { get; set; }
/// <summary>
/// 密码
/// </summary>
[JsonProperty("password")]
public string Password { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iqiyiWin.Qianzhu.Response
{
public class QianzhuBaseResponse<T>
{
/// <summary>
/// 是否成功
/// </summary>
public bool Success { get; set; }
/// <summary>
/// 响应码
/// </summary>
public int Code { get; set; }
/// <summary>
/// 响应消息
/// </summary>
public String Message { get; set; }
/// <summary>
/// 响应数据
/// </summary>
public T Data { get; set; }
}
}
using iqiyiWin.Qianzhu.Model.User;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iqiyiWin.Qianzhu.Response.User
{
public class QianzhuGetUserResponse : QianzhuBaseResponse<QianzhuGetUserResponseData>
{
}
public class QianzhuGetUserResponseData
{
/// <summary>
/// User
/// </summary>
[JsonProperty("user")]
public QianzhuUser User { get; set; }
}
}
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iqiyiWin.Qianzhu.Response.User
{
public class QianzhuUserLoginResponse: QianzhuBaseResponse<QianzhuUserLoginResponseData>
{
}
public class QianzhuUserLoginResponseData
{
/// <summary>
/// Examples: 1001080
/// </summary>
[JsonProperty("userId")]
public int UserId { get; set; }
/// <summary>
/// Examples: "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MDkxMjE1OTIsInVzZXJJZCI6MTAwMTA4MCwidXNlck5hbWUiOiLpm6jlpJwiLCJ0b2tlblR5cGUiOjB9.1cdGJ-UDq_a7-Ydop6Q78msLNy10ki3pZgF_9Q9LoU0"
/// </summary>
[JsonProperty("accessToken")]
public string AccessToken { get; set; }
/// <summary>
/// Examples: 604800
/// </summary>
[JsonProperty("accessTokenExpireIn")]
public int AccessTokenExpireIn { get; set; }
/// <summary>
/// Examples: "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MTExMDg3OTIsInVzZXJJZCI6MTAwMTA4MCwidXNlck5hbWUiOiLpm6jlpJwiLCJ0b2tlblR5cGUiOjF9.G23BaKzNLXbqtsaaRUHaYOBP86_WjB5--_Qk2EJCL40"
/// </summary>
[JsonProperty("refreshToken")]
public string RefreshToken { get; set; }
/// <summary>
/// Examples: ["user","admin","supplier","platform","sxKfc"]
/// </summary>
[JsonProperty("roles")]
public List<string> Roles { get; set; }
/// <summary>
/// Examples: false
/// </summary>
[JsonProperty("newUser")]
public bool NewUser { get; set; }
}
}
This diff is collapsed.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using iqiyiWin.Model;
using Newtonsoft.Json;
namespace iqiyiWin.Response.Cinema.Citites
{
public class CityListResponse
{
/// </summary>
[JsonProperty("data")]
public CityData Data { get; set; }
/// <summary>
/// Examples: "20210513122003"
/// </summary>
[JsonProperty("timestamp")]
public string Timestamp { get; set; }
/// <summary>
/// Examples: "A00000"
/// </summary>
[JsonProperty("code")]
public string Code { get; set; }
/// <summary>
/// Examples: "925cbf49-d3a1-45fe-8cc6-d0801ebf2dcc"
/// </summary>
[JsonProperty("requestId")]
public string RequestId { get; set; }
/// <summary>
/// Examples: "成功"
/// </summary>
[JsonProperty("msg")]
public string Msg { get; set; }
/// <summary>
/// Examples: false
/// </summary>
[JsonProperty("hasNext")]
public bool HasNext { get; set; }
}
public class CityData
{
/// <summary>
/// Examples: {"pinyin":"shanghai","initial":"S","name":"上海","cityId":1400254893,"isHotCity":true}
/// </summary>
[JsonProperty("defaultCity")]
public IqiyiCity DefaultCity { get; set; }
/// <summary>
/// Examples: [{"pinyin":"beijing","initial":"B","name":"北京","cityId":1400249193,"isHotCity":true},{"pinyin":"chongqing","initial":"C","name":"重庆","cityId":1400249593,"isHotCity":true},{"pinyin":"shanghai","initial":"S","name":"上海","cityId":1400254893,"isHotCity":true},{"pinyin":"guangzhou","initial":"G","name":"广州","cityId":1400250993,"isHotCity":true},{"pinyin":"shenzhen","initial":"S","name":"深圳","cityId":1400254993,"isHotCity":true},{"pinyin":"nanjing","initial":"N","name":"南京","cityId":1400253693,"isHotCity":true},{"pinyin":"hangzhou","initial":"H","name":"杭州","cityId":1400251193,"isHotCity":true},{"pinyin":"chengdu","initial":"C","name":"成都","cityId":1400249693,"isHotCity":true}]
/// </summary>
[JsonProperty("hotCities")]
public List<IqiyiCity> HotCities { get; set; }
/// <summary>
/// Examples:
/// </summary>
[JsonProperty("cities")]
public List<CityBox> Cities { get; set; }
/// <summary>
/// Examples: {"pinyin":"shanghai","initial":"S","name":"上海","cityId":1400254893,"isHotCity":true}
/// </summary>
[JsonProperty("currentCity")]
public IqiyiCity CurrentCity { get; set; }
}
public class CityBox
{
/// <summary>
/// Examples: [{"pinyin":"akesu","initial":"A","name":"阿克苏","cityId":1401542293,"isHotCity":false},{"pinyin":"anshan","initial":"A","name":"鞍山","cityId":1401269893,"isHotCity":false},{"pinyin":"alashan","initial":"A","name":"阿盟,阿拉善","cityId":1401292393,"isHotCity":false},{"pinyin":"anqing","initial":"A","name":"安庆","cityId":1401280593,"isHotCity":false},{"pinyin":"anshun","initial":"A","name":"安顺","cityId":1401273993,"isHotCity":false},{"pinyin":"ankang","initial":"A","name":"安康","cityId":1401275593,"isHotCity":false},{"pinyin":"anyang","initial":"A","name":"安阳","cityId":1401264193,"isHotCity":false},{"pinyin":"aba","initial":"A","name":"阿坝","cityId":1401271193,"isHotCity":false}], [{"pinyin":"beijing","initial":"B","name":"北京","cityId":1400249193,"isHotCity":true},{"pinyin":"baiyin","initial":"B","name":"白银","cityId":1401280793,"isHotCity":false},{"pinyin":"binzhou","initial":"B","name":"滨州","cityId":1401271693,"isHotCity":false},{"pinyin":"baicheng","initial":"B","name":"白城","cityId":1401280893,"isHotCity":false},{"pinyin":"baishan","initial":"B","name":"白山","cityId":1400249293,"isHotCity":false},{"pinyin":"bayinguoleng","initial":"B","name":"巴音郭楞","cityId":1401292493,"isHotCity":false},{"pinyin":"baise","initial":"B","name":"百色","cityId":1401275493,"isHotCity":false},{"pinyin":"beihai","initial":"B","name":"北海","cityId":1401274593,"isHotCity":false},{"pinyin":"benxi","initial":"B","name":"本溪","cityId":1401281393,"isHotCity":false},{"pinyin":"bayannaoer","initial":"B","name":"巴彦淖尔","cityId":1401281193,"isHotCity":false},{"pinyin":"baotou","initial":"B","name":"包头","cityId":1400249493,"isHotCity":false},{"pinyin":"bengbu","initial":"B","name":"蚌埠","cityId":1400249393,"isHotCity":false},{"pinyin":"bozhou","initial":"B","name":"亳州","cityId":1401265893,"isHotCity":false},{"pinyin":"bijie","initial":"B","name":"毕节","cityId":1401273293,"isHotCity":false},{"pinyin":"baoding","initial":"B","name":"保定","cityId":1401268393,"isHotCity":false},{"pinyin":"baoji","initial":"B","name":"宝鸡","cityId":1401268893,"isHotCity":false},{"pinyin":"baoshan","initial":"B","name":"保山","cityId":1401268693,"isHotCity":false},{"pinyin":"bazhong","initial":"B","name":"巴中","cityId":1401281493,"isHotCity":false}], [{"pinyin":"chongqing","initial":"C","name":"重庆","cityId":1400249593,"isHotCity":true},{"pinyin":"chaozhou","initial":"C","name":"潮州","cityId":1401260793,"isHotCity":false},{"pinyin":"changchun","initial":"C","name":"长春","cityId":1400249893,"isHotCity":false},{"pinyin":"changzhi","initial":"C","name":"长治","cityId":1401282193,"isHotCity":false},{"pinyin":"changji","initial":"C","name":"昌吉","cityId":1401292793,"isHotCity":false},{"pinyin":"chongzuo","initial":"C","name":"崇左","cityId":1401281793,"isHotCity":false},{"pinyin":"changzhou","initial":"C","name":"常州","cityId":1400249793,"isHotCity":false},{"pinyin":"chengmai","initial":"C","name":"澄迈","cityId":1401420593,"isHotCity":false},{"pinyin":"chifeng","initial":"C","name":"赤峰","cityId":1401264393,"isHotCity":false},{"pinyin":"chuzhou","initial":"C","name":"滁州","cityId":1401263393,"isHotCity":false},{"pinyin":"chizhou","initial":"C","name":"池州","cityId":1401275793,"isHotCity":false},{"pinyin":"cangzhou","initial":"C","name":"沧州","cityId":1401262393,"isHotCity":false},{"pinyin":"chengde","initial":"C","name":"承德","cityId":1401279393,"isHotCity":false},{"pinyin":"changsha","initial":"C","name":"长沙","cityId":1400249993,"isHotCity":false},{"pinyin":"changde","initial":"C","name":"常德","cityId":1401281893,"isHotCity":false},{"pinyin":"chenzhou","initial":"C","name":"郴州","cityId":1401263893,"isHotCity":false},{"pinyin":"chuxiong","initial":"C","name":"楚雄","cityId":1401270293,"isHotCity":false},{"pinyin":"chengdu","initial":"C","name":"成都","cityId":1400249693,"isHotCity":true}], [{"pinyin":"daxinganling","initial":"D","name":"大兴安岭","cityId":1401540693,"isHotCity":false},{"pinyin":"daqing","initial":"D","name":"大庆","cityId":1400250293,"isHotCity":false},{"pinyin":"dingxi","initial":"D","name":"定西","cityId":1401282693,"isHotCity":false},{"pinyin":"dongguan","initial":"D","name":"东莞","cityId":1400250493,"isHotCity":false},{"pinyin":"dongying","initial":"D","name":"东营","cityId":1400250593,"isHotCity":false},{"pinyin":"dezhou","initial":"D","name":"德州","cityId":1401266393,"isHotCity":false},{"pinyin":"datong","initial":"D","name":"大同","cityId":1400250393,"isHotCity":false},{"pinyin":"dalian","initial":"D","name":"大连","cityId":1400250193,"isHotCity":false},{"pinyin":"dandong","initial":"D","name":"丹东","cityId":1401265793,"isHotCity":false},{"pinyin":"danzhou","initial":"D","name":"儋州","cityId":1401270693,"isHotCity":false},{"pinyin":"dongfang","initial":"D","name":"东方","cityId":1401295893,"isHotCity":false},{"pinyin":"dingan","initial":"D","name":"定安","cityId":1401376393,"isHotCity":false},{"pinyin":"dali","initial":"D","name":"大理","cityId":1400250093,"isHotCity":false},{"pinyin":"diqing","initial":"D","name":"迪庆","cityId":1401293093,"isHotCity":false},{"pinyin":"dehong","initial":"D","name":"德宏","cityId":1401293193,"isHotCity":false},{"pinyin":"deyang","initial":"D","name":"德阳","cityId":1401266493,"isHotCity":false},{"pinyin":"dazhou","initial":"D","name":"达州","cityId":1401262993,"isHotCity":false}], [{"pinyin":"ezhou","initial":"E","name":"鄂州","cityId":1401282793,"isHotCity":false},{"pinyin":"enshi","initial":"E","name":"恩施","cityId":1401291093,"isHotCity":false},{"pinyin":"eerduosi","initial":"E","name":"鄂尔多斯","cityId":1401264593,"isHotCity":false}]
/// </summary>
[JsonProperty("value")]
public List<IqiyiCity> Value { get; set; }
/// <summary>
/// Examples: "A", "B", "C", "D", "E"
/// </summary>
[JsonProperty("key")]
public string Key { get; set; }
}
}
...@@ -228,6 +228,11 @@ namespace iqiyiWin.Util ...@@ -228,6 +228,11 @@ namespace iqiyiWin.Util
return result; return result;
} }
catch (Exception ex)
{
UILogUtils.Info(ex.ToString());
return null;
}
finally finally
{ {
streamReader?.Close(); streamReader?.Close();
......
...@@ -50,14 +50,32 @@ ...@@ -50,14 +50,32 @@
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Api\Cinema.cs" />
<Compile Include="Api\Domain.cs" /> <Compile Include="Api\Domain.cs" />
<Compile Include="Api\User.cs" /> <Compile Include="Api\User.cs" />
<Compile Include="App.cs" />
<Compile Include="Constant\ApiConstant.cs" /> <Compile Include="Constant\ApiConstant.cs" />
<Compile Include="Constant\DingDingConstant.cs" /> <Compile Include="Constant\DingDingConstant.cs" />
<Compile Include="Constant\IqiyiVersion.cs" /> <Compile Include="Constant\IqiyiVersion.cs" />
<Compile Include="Enums\AppEnvironmentEnum.cs" />
<Compile Include="Enums\TaskEnums.cs" /> <Compile Include="Enums\TaskEnums.cs" />
<Compile Include="Extension\EnumExtension.cs" /> <Compile Include="Extension\EnumExtension.cs" />
<Compile Include="Model\IqiyiCinema.cs" />
<Compile Include="Model\IqiyiCity.cs" />
<Compile Include="Model\IqiyiLockDraw.cs" /> <Compile Include="Model\IqiyiLockDraw.cs" />
<Compile Include="Model\QianZhuSaveIqiyiCinema.cs" />
<Compile Include="Qianzhu\Api\QianzhuIqiyiCinema.cs" />
<Compile Include="Qianzhu\Api\QianzhuUserApi.cs" />
<Compile Include="Qianzhu\Enums\QianzhuCinemaCardTypeEnum.cs" />
<Compile Include="Qianzhu\Enums\QianzhuMovieOrderDrawStatusEnum.cs" />
<Compile Include="Qianzhu\Model\User\QianzhuUser.cs" />
<Compile Include="Qianzhu\Model\User\QianzhuUserAccount.cs" />
<Compile Include="Qianzhu\Request\User\QianzhuUserLoginRequest.cs" />
<Compile Include="Qianzhu\Response\QianzhuBaseResponse.cs" />
<Compile Include="Qianzhu\Response\User\QianzhuGetUserResponse.cs" />
<Compile Include="Qianzhu\Response\User\QianzhuUserLoginResponse.cs" />
<Compile Include="Response\Cinema\CinemaItem\CinemaResponse.cs" />
<Compile Include="Response\Cinema\Citites\CityListResponse.cs" />
<Compile Include="Response\User\LockDraw\LockDrawResponse.cs" /> <Compile Include="Response\User\LockDraw\LockDrawResponse.cs" />
<Compile Include="SetLuckDraw.cs"> <Compile Include="SetLuckDraw.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment