|
@@ -26,6 +26,7 @@ namespace molilian.core
|
|
|
static string queue_parse_dy_key = "queue:parse_logs:dy";
|
|
static string queue_parse_dy_key = "queue:parse_logs:dy";
|
|
|
static string queue_parse_tool_key = "queue:parse_logs:tool";
|
|
static string queue_parse_tool_key = "queue:parse_logs:tool";
|
|
|
|
|
|
|
|
|
|
+ static string queue_coupon_key = "queue:coupon_logs";
|
|
|
|
|
|
|
|
public static void BatchInsertLogDB()
|
|
public static void BatchInsertLogDB()
|
|
|
{
|
|
{
|
|
@@ -192,6 +193,14 @@ namespace molilian.core
|
|
|
.Add("create_time", data.create_time)
|
|
.Add("create_time", data.create_time)
|
|
|
.Create(DBContext.InsertType.NORMAL, transaction);
|
|
.Create(DBContext.InsertType.NORMAL, transaction);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ for (int i = 0; i < 100; i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ var data = RedisHelper.LPop<UnionCouponDTO>(queue_coupon_key);
|
|
|
|
|
+ if (data == null) break;
|
|
|
|
|
+ connection.Insert(data);
|
|
|
|
|
+ }
|
|
|
transaction.Commit();
|
|
transaction.Commit();
|
|
|
}
|
|
}
|
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
@@ -222,8 +231,7 @@ namespace molilian.core
|
|
|
var ts = DateTime.Now - response.create_time;
|
|
var ts = DateTime.Now - response.create_time;
|
|
|
response.elapsedTime = (int)ts.TotalMilliseconds;
|
|
response.elapsedTime = (int)ts.TotalMilliseconds;
|
|
|
RedisHelper.RPush(queue_jd_key, response);
|
|
RedisHelper.RPush(queue_jd_key, response);
|
|
|
- saveCache(response.channel.ToString(), response.accountId.ToString(), response.success, response.message, response.reason);
|
|
|
|
|
- saveCache(response.channel.ToString(), response.accountName, response.success, response.message, response.reason);
|
|
|
|
|
|
|
+ saveCache(response.channel.ToString(), response.accountId, response.accountName, response.success, response.message, response.reason);
|
|
|
}
|
|
}
|
|
|
catch (Exception ex) { }
|
|
catch (Exception ex) { }
|
|
|
}
|
|
}
|
|
@@ -235,8 +243,7 @@ namespace molilian.core
|
|
|
var ts = DateTime.Now - response.create_time;
|
|
var ts = DateTime.Now - response.create_time;
|
|
|
response.elapsedTime = (int)ts.TotalMilliseconds;
|
|
response.elapsedTime = (int)ts.TotalMilliseconds;
|
|
|
RedisHelper.RPush(queue_tb_key, response);
|
|
RedisHelper.RPush(queue_tb_key, response);
|
|
|
- saveCache(response.channel.ToString(), response.accountId.ToString(), response.success, response.message, response.reason);
|
|
|
|
|
- saveCache(response.channel.ToString(), response.accountName, response.success, response.message, response.reason);
|
|
|
|
|
|
|
+ saveCache(response.channel.ToString(), response.accountId, response.accountName, response.success, response.message, response.reason);
|
|
|
|
|
|
|
|
if (!response.success && "nologin".Equals(response.message))
|
|
if (!response.success && "nologin".Equals(response.message))
|
|
|
{
|
|
{
|
|
@@ -278,8 +285,7 @@ namespace molilian.core
|
|
|
var ts = DateTime.Now - response.create_time;
|
|
var ts = DateTime.Now - response.create_time;
|
|
|
response.elapsedTime = (int)ts.TotalMilliseconds;
|
|
response.elapsedTime = (int)ts.TotalMilliseconds;
|
|
|
RedisHelper.RPush(queue_parse_tb_key, response);
|
|
RedisHelper.RPush(queue_parse_tb_key, response);
|
|
|
- saveCache(response.channel.ToString(), response.accountId.ToString(), response.success, response.message, response.reason);
|
|
|
|
|
- saveCache(response.channel.ToString(), response.accountName, response.success, response.message, response.reason);
|
|
|
|
|
|
|
+ saveCache(response.channel.ToString(), response.accountId, response.accountName, response.success, response.message, response.reason);
|
|
|
if (!string.IsNullOrEmpty(response.itemId)) TkOrderTrackingCore.SaveLinkSummary(response);
|
|
if (!string.IsNullOrEmpty(response.itemId)) TkOrderTrackingCore.SaveLinkSummary(response);
|
|
|
|
|
|
|
|
if (!response.success && "nologin".Equals(response.message))
|
|
if (!response.success && "nologin".Equals(response.message))
|
|
@@ -308,6 +314,41 @@ namespace molilian.core
|
|
|
.Save();
|
|
.Save();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ public static async Task CouponLogAsync(UnionCouponDTO response, AlimamaPlus? alimamaPlus = null)
|
|
|
|
|
+ {
|
|
|
|
|
+ try
|
|
|
|
|
+ {
|
|
|
|
|
+ var ts = DateTime.Now - response.create_time;
|
|
|
|
|
+ response.elapsedTime = (int)ts.TotalMilliseconds;
|
|
|
|
|
+ RedisHelper.RPush(queue_coupon_key, response);
|
|
|
|
|
+ saveCouponCache(response.channel.ToString(), response.accountId, response.accountName, response.success, response.message, response.reason);
|
|
|
|
|
+
|
|
|
|
|
+ if (!response.success && "nologin".Equals(response.message))
|
|
|
|
|
+ {
|
|
|
|
|
+ switch (response.channel)
|
|
|
|
|
+ {
|
|
|
|
|
+ case TkChannelEnum.tb:
|
|
|
|
|
+ await Task.Run(() =>
|
|
|
|
|
+ {
|
|
|
|
|
+ if (alimamaPlus != null)
|
|
|
|
|
+ {
|
|
|
|
|
+ (bool success, string message) = alimamaPlus.RenewCookie();
|
|
|
|
|
+ if (success) return;
|
|
|
|
|
+ }
|
|
|
|
|
+ TkPoolCore.Disabled(response.accountName, $"{response.rawContent}");
|
|
|
|
|
+ }); break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (Exception ex)
|
|
|
|
|
+ {
|
|
|
|
|
+ new LoggerLibrary("unionCoupon", "database_error")
|
|
|
|
|
+ .Info(response.rawContent)
|
|
|
|
|
+ .Info(response.Convert2Json())
|
|
|
|
|
+ .Info(ex.Message, ex.StackTrace)
|
|
|
|
|
+ .Save();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
public static async Task ParseLogAsync(JdDataDTO response)
|
|
public static async Task ParseLogAsync(JdDataDTO response)
|
|
|
{
|
|
{
|
|
|
try
|
|
try
|
|
@@ -315,8 +356,7 @@ namespace molilian.core
|
|
|
var ts = DateTime.Now - response.create_time;
|
|
var ts = DateTime.Now - response.create_time;
|
|
|
response.elapsedTime = (int)ts.TotalMilliseconds;
|
|
response.elapsedTime = (int)ts.TotalMilliseconds;
|
|
|
RedisHelper.RPush(queue_parse_jd_key, response);
|
|
RedisHelper.RPush(queue_parse_jd_key, response);
|
|
|
- saveCache(response.channel.ToString(), response.accountId.ToString(), response.success, response.message, response.reason);
|
|
|
|
|
- saveCache(response.channel.ToString(), response.accountName, response.success, response.message, response.reason);
|
|
|
|
|
|
|
+ saveCache(response.channel.ToString(), response.accountId, response.accountName, response.success, response.message, response.reason);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
catch (Exception ex) { }
|
|
catch (Exception ex) { }
|
|
@@ -328,8 +368,7 @@ namespace molilian.core
|
|
|
var ts = DateTime.Now - response.create_time;
|
|
var ts = DateTime.Now - response.create_time;
|
|
|
response.elapsedTime = (int)ts.TotalMilliseconds;
|
|
response.elapsedTime = (int)ts.TotalMilliseconds;
|
|
|
RedisHelper.RPush(queue_parse_dy_key, response);
|
|
RedisHelper.RPush(queue_parse_dy_key, response);
|
|
|
- saveCache(response.channel.ToString(), response.accountId.ToString(), response.success, response.message, response.reason);
|
|
|
|
|
- saveCache(response.channel.ToString(), response.accountName, response.success, response.message, response.reason);
|
|
|
|
|
|
|
+ saveCache(response.channel.ToString(), response.accountId, response.accountName, response.success, response.message, response.reason);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
catch (Exception ex) { }
|
|
catch (Exception ex) { }
|
|
@@ -341,17 +380,21 @@ namespace molilian.core
|
|
|
var ts = DateTime.Now - response.create_time;
|
|
var ts = DateTime.Now - response.create_time;
|
|
|
response.elapsedTime = (int)ts.TotalMilliseconds;
|
|
response.elapsedTime = (int)ts.TotalMilliseconds;
|
|
|
RedisHelper.RPush(queue_parse_tool_key, response);
|
|
RedisHelper.RPush(queue_parse_tool_key, response);
|
|
|
- saveCache(response.channel.ToString(), "tool", response.success, response.message, response.reason);
|
|
|
|
|
|
|
+ saveCache(response.channel.ToString(), 0, "tool", response.success, response.message, response.reason);
|
|
|
}
|
|
}
|
|
|
catch (Exception ex) { }
|
|
catch (Exception ex) { }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private static void saveCache(string channel, string accountName, bool success, string message, string reason)
|
|
|
|
|
|
|
+ private static void saveCache(string channel, int accountId, string accountName, bool success, string message, string reason)
|
|
|
{
|
|
{
|
|
|
saveAccountCache("all", success, message, reason);
|
|
saveAccountCache("all", success, message, reason);
|
|
|
saveAccountCache($"{channel}", success, message, reason);
|
|
saveAccountCache($"{channel}", success, message, reason);
|
|
|
saveAccountCache($"{accountName}", success, message, reason);
|
|
saveAccountCache($"{accountName}", success, message, reason);
|
|
|
-
|
|
|
|
|
|
|
+ if (accountId != 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ //todo 放着跑两天,要将读取的地方改成读取accountid
|
|
|
|
|
+ saveAccountCache($"{channel}_{accountId}", success, message, reason);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private static void saveAccountCache(string accountName, bool success, string message, string reason)
|
|
private static void saveAccountCache(string accountName, bool success, string message, string reason)
|
|
@@ -390,6 +433,56 @@ namespace molilian.core
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ private static void saveCouponCache(string channel, int accountId, string accountName, bool success, string message, string reason)
|
|
|
|
|
+ {
|
|
|
|
|
+ saveAccountCouponCache("all", success, message, reason);
|
|
|
|
|
+ saveAccountCouponCache($"{channel}", success, message, reason);
|
|
|
|
|
+ if (accountId != 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ //todo 放着跑两天,要将读取的地方改成读取accountid
|
|
|
|
|
+ saveAccountCouponCache($"{channel}_{accountId}", success, message, reason);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private static void saveAccountCouponCache(string accountName, bool success, string message, string reason)
|
|
|
|
|
+ {
|
|
|
|
|
+ RedisHelper.IncrBy($":coupon_total:{accountName}:{DateTime.Now:yyyyMM}");
|
|
|
|
|
+ RedisHelper.IncrBy($":coupon_total:{accountName}:{DateTime.Now:yyyyMMdd}");
|
|
|
|
|
+ RedisHelper.IncrBy($":coupon_total:{accountName}:{DateTime.Now:yyyyMMddHH}");
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ string result = success ? "success" : "fail";
|
|
|
|
|
+ RedisHelper.IncrBy($":coupon_total:{accountName}:{result}:{DateTime.Now:yyyyMM}");
|
|
|
|
|
+ RedisHelper.IncrBy($":coupon_total:{accountName}:{result}:{DateTime.Now:yyyyMMdd}");
|
|
|
|
|
+ RedisHelper.IncrBy($":coupon_total:{accountName}:{result}:{DateTime.Now:yyyyMMddHH}");
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ if (!string.IsNullOrEmpty(message))
|
|
|
|
|
+ {
|
|
|
|
|
+ RedisHelper.SAdd($":coupon_total:{accountName}:message:{DateTime.Now:yyyyMM}", message);
|
|
|
|
|
+ RedisHelper.SAdd($":coupon_total:{accountName}:message:{DateTime.Now:yyyyMMdd}", message);
|
|
|
|
|
+ RedisHelper.SAdd($":coupon_total:{accountName}:message:{DateTime.Now:yyyyMMddHH}", message);
|
|
|
|
|
+
|
|
|
|
|
+ RedisHelper.IncrBy($":coupon_total:{accountName}:{message}:{DateTime.Now:yyyyMM}");
|
|
|
|
|
+ RedisHelper.IncrBy($":coupon_total:{accountName}:{message}:{DateTime.Now:yyyyMMdd}");
|
|
|
|
|
+ RedisHelper.IncrBy($":coupon_total:{accountName}:{message}:{DateTime.Now:yyyyMMddHH}");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (!string.IsNullOrEmpty(reason))
|
|
|
|
|
+ {
|
|
|
|
|
+ RedisHelper.SAdd($":coupon_total:{accountName}:reason:{DateTime.Now:yyyyMM}", reason);
|
|
|
|
|
+ RedisHelper.SAdd($":coupon_total:{accountName}:reason:{DateTime.Now:yyyyMMdd}", reason);
|
|
|
|
|
+ RedisHelper.SAdd($":coupon_total:{accountName}:reason:{DateTime.Now:yyyyMMddHH}", reason);
|
|
|
|
|
+
|
|
|
|
|
+ RedisHelper.IncrBy($":coupon_total:{accountName}:{reason}:{DateTime.Now:yyyyMM}");
|
|
|
|
|
+ RedisHelper.IncrBy($":coupon_total:{accountName}:{reason}:{DateTime.Now:yyyyMMdd}");
|
|
|
|
|
+ RedisHelper.IncrBy($":coupon_total:{accountName}:{reason}:{DateTime.Now:yyyyMMddHH}");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|