Commit 6c14e9a4 by 泽锋 李

支持读写分离

parent 0a19bb6a
{
"ConnectionStrings": {
"Default": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
"Default": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"ReadOnly": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
},
"PushBuyPlan": "http://api.purchase.bailuntec.com/api/CreatePlanToPurchase",
"QiNiu": {
......
{
"ConnectionStrings": {
"Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
"Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"ReadOnly": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
},
"PushBuyPlan": "http://api.purchase.bailuntec.com/api/CreatePlanToPurchase",
"QiNiu": {
......
{
"ConnectionStrings": {
"Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
"Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"ReadOnly": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
},
"PushBuyPlan": "http://api.purchase.bailuntec.com/api/CreatePlanToPurchase",
"QiNiu": {
......
......@@ -223,7 +223,7 @@ and t_w.hq_type!='国内仓'
/// 保存数据
/// </summary>
/// <param name="data"></param>
public static void Save(dc_average_purchase data, MySqlConnection conn)
public static void Save(dc_average_purchase data, MyMySqlConnection conn)
{
if (conn == null)
{
......@@ -253,7 +253,7 @@ and t_w.hq_type!='国内仓'
/// 保存数据
/// </summary>
/// <param name="data"></param>
public static void Save(dc_average_warehouse data, MySqlConnection conn)
public static void Save(dc_average_warehouse data, MyMySqlConnection conn)
{
if (conn == null)
{
......
......@@ -6,20 +6,22 @@ using Dapper;
using System.IO;
using Microsoft.Extensions.Configuration;
using AutoTurnOver.Utility;
using System.Data;
using AutoTurnOver.Models.Base;
using AutoTurnOver.DB.Base;
using System.Threading.Tasks;
namespace AutoTurnOver.DB
{
public class connectionHelper
{
public static string _connStr = null;
public static MySqlConnection _connection
public static MyMySqlConnection _connection
{
get
{
return new MySqlConnection(connStr);
return new MyMySqlConnection();
}
}
......@@ -33,19 +35,114 @@ namespace AutoTurnOver.DB
}
else
{
//var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
//var configurationBuilder = new ConfigurationBuilder()
// .SetBasePath(Directory.GetCurrentDirectory())
// .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
// .AddJsonFile($"appsettings.{environmentName}.json", true, reloadOnChange: true);
//var configuration = configurationBuilder.Build();
//_connStr = configuration.GetConnectionString("Default");
_connStr = ConfigHelper.ConnectionString("Default");
return _connStr;
}
}
}
}
public class MyMySqlConnection : IDisposable
{
void IDisposable.Dispose()
{
_connection.Dispose();
}
public static MySqlConnection _connection
{
get
{
return new MySqlConnection(ConfigHelper.ConnectionString("Default"));
}
}
public static MySqlConnection _connection_read_only
{
get
{
return new MySqlConnection(ConfigHelper.ConnectionString("ReadOnly"));
}
}
public void Open()
{
_connection.Open();
}
public void Close()
{
_connection.Close();
}
public int Execute(string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null)
{
return _connection.Execute(sql, param, transaction, commandTimeout, commandType);
}
public int Update<TEntity>(TEntity entityToUpdate, IDbTransaction transaction = null, int? commandTimeout = null)
{
return _connection.Update(entityToUpdate, transaction, commandTimeout);
}
public int Delete<T>(T entityToDelete, IDbTransaction transaction = null, int? commandTimeout = null)
{
return _connection.Delete(entityToDelete, transaction, commandTimeout);
}
public int Delete<T>(object id, IDbTransaction transaction = null, int? commandTimeout = null)
{
return _connection.Delete(id, transaction, commandTimeout);
}
public int? Insert<TEntity>(TEntity entityToInsert, IDbTransaction transaction = null, int? commandTimeout = null)
{
return _connection.Insert(entityToInsert, transaction, commandTimeout);
}
public IEnumerable<T> Query<T>(string sql, object param = null, IDbTransaction transaction = null, bool buffered = true, int? commandTimeout = null, CommandType? commandType = null)
{
return _connection_read_only.Query<T>(sql, param, transaction, buffered, commandTimeout, commandType);
}
public T QuerySingleOrDefault<T>(string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null)
{
return _connection_read_only.QuerySingleOrDefault<T>(sql, param, transaction, commandTimeout, commandType);
}
public dynamic QueryFirstOrDefault(string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null)
{
return _connection_read_only.QuerySingleOrDefault(sql, param, transaction, commandTimeout, commandType);
}
public T QueryFirstOrDefault<T>(string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null)
{
return _connection_read_only.QueryFirstOrDefault<T>(sql, param, transaction, commandTimeout, commandType);
}
public Task<T> QueryFirstOrDefaultAsync<T>(string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null)
{
return _connection_read_only.QueryFirstOrDefaultAsync<T>(sql, param, transaction, commandTimeout, commandType);
}
public T ExecuteScalar<T>( string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null)
{
return _connection.ExecuteScalar<T>(sql, param, transaction, commandTimeout, commandType);
}
public T QueryFirst<T>(string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null)
{
return _connection_read_only.QueryFirst<T>(sql, param, transaction, commandTimeout, commandType);
}
public Task<IEnumerable<T>> QueryAsync<T>(string sql, object param = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null)
{
return _connection_read_only.QueryAsync<T>(sql, param, transaction, commandTimeout, commandType);
}
public MySqlTransaction BeginTransaction()
{
return _connection.BeginTransaction();
}
public Page<T> Page<T>(string sql, page_search_dto search_data, object param = null, int? commandTimeout = null, bool isCount = true)
{
return _connection_read_only.Page<T>(sql, search_data, param, commandTimeout, isCount);
}
public IEnumerable<T> Page<T>(int offset, int limit, string strsql, ref int total, object param = null)
{
return _connection_read_only.Page<T>(offset, limit, strsql, ref total, param);
}
}
}
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Text;
using Dapper;
using System.IO;
using Microsoft.Extensions.Configuration;
using AutoTurnOver.Utility;
namespace AutoTurnOver.DB
{
public class connectionHelper_bak
{
public static string _connStr = null;
public static MySqlConnection _connection
{
get
{
return new MySqlConnection(connStr);
}
}
public static string connStr
{
get
{
if (!string.IsNullOrWhiteSpace(_connStr))
{
return _connStr;
}
else
{
//var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
//var configurationBuilder = new ConfigurationBuilder()
// .SetBasePath(Directory.GetCurrentDirectory())
// .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
// .AddJsonFile($"appsettings.{environmentName}.json", true, reloadOnChange: true);
//var configuration = configurationBuilder.Build();
//_connStr = configuration.GetConnectionString("Default");
_connStr = ConfigHelper.ConnectionString("Default");
return _connStr;
}
}
}
}
}
......@@ -752,7 +752,7 @@ where bailun_sku in @skus", new { skus = skus.Split(',').ToList() });
report.ResetDataHighFrequencyListting();
}
public static void BatchUpdateDatas(MySqlConnection conn, List<dc_base_listing_status> datas)
public static void BatchUpdateDatas(MyMySqlConnection conn, List<dc_base_listing_status> datas)
{
var sql = @"UPDATE dc_base_listing_status_temp SET bailun_sku=@bailun_sku,platform=@platform,`localtion`=@localtion,platform_sku=@platform_sku,`status`=@status,sys_update_date=@sys_update_date,update_date=@update_date,web_site=@web_site WHERE id = @id ;";
System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
......@@ -761,7 +761,7 @@ where bailun_sku in @skus", new { skus = skus.Split(',').ToList() });
Console.WriteLine($" 更新 {datas.Count} 条数据,耗时 {watch.ElapsedMilliseconds} 毫秒 ");
}
public static void BatchInsertDatas(MySqlConnection conn, List<dc_base_listing_status> datas)
public static void BatchInsertDatas(MyMySqlConnection conn, List<dc_base_listing_status> datas)
{
System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
watch.Start();//开始计时
......
......@@ -193,7 +193,7 @@ where 1=1
{
throw new Exception("请选择商品");
}
MySqlConnection conn = _connection;
MyMySqlConnection conn = _connection;
conn.Open();
IDbTransaction transaction = conn.BeginTransaction();
try
......@@ -239,7 +239,7 @@ where t1.sku = t2.bailun_sku and t2.product_inner_code in @product_inner_codes a
{
throw new Exception("请选择商品");
}
MySqlConnection conn = _connection;
MyMySqlConnection conn = _connection;
conn.Open();
IDbTransaction transaction = conn.BeginTransaction();
try
......
......@@ -431,7 +431,7 @@ namespace AutoTurnOver.DB
}
public static void UpdateUsersTest(MySqlConnection conn, List<dc_report_cash_flow_log> datas)
public static void UpdateUsersTest(MyMySqlConnection conn, List<dc_report_cash_flow_log> datas)
{
var sql = @"UPDATE dc_report_cash_flow_log SET web_site=@web_site,warehouse_code=@warehouse_code,platform_type=@platform_type,bailun_sku=@bailun_sku,data_type=@data_type,pay_type=@pay_type,val=@val,occur_time=@occur_time,pay_time=@pay_time,no=@no,item=@item,item_no=@item_no,remarks=@remarks,is_delete=@is_delete,update_time=@update_time,occur_time_year_month_no=@occur_time_year_month_no,pay_time_year_month_no=@pay_time_year_month_no WHERE id = @id ;";
System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
......@@ -440,7 +440,7 @@ namespace AutoTurnOver.DB
Console.WriteLine($" 更新 {datas.Count} 条数据,耗时 {watch.ElapsedMilliseconds} 毫秒 ");
}
public static void BatchInsertDatas(MySqlConnection conn, List<dc_report_cash_flow_log> datas)
public static void BatchInsertDatas(MyMySqlConnection conn, List<dc_report_cash_flow_log> datas)
{
System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
watch.Start();//开始计时
......@@ -1482,7 +1482,7 @@ where t1.report_date>=@btime and t1.report_date<=@etime ";
/// 获取平台分摊比例
/// </summary>
/// <returns></returns>
public static List<dc_report_cash_flow_platform_share_dto> GetPlatformShare(DateTime occurDate, MySqlConnection conn, List<dc_auto_config_safe_inventory> configs, string warehouse_code, string bailun_sku)
public static List<dc_report_cash_flow_platform_share_dto> GetPlatformShare(DateTime occurDate, MyMySqlConnection conn, List<dc_auto_config_safe_inventory> configs, string warehouse_code, string bailun_sku)
{
var rule = GetInventoryRule(configs, warehouse_code);
var sql = @"SELECT platform_type,website as 'web_stie',
......
......@@ -30,7 +30,7 @@ namespace AutoTurnOver.DB
/// <summary>
/// 计算现金流
/// </summary>
public static void CalculationSingle(MySqlConnection conn, dc_report_cash_flow_forecast_task task_data)
public static void CalculationSingle(MyMySqlConnection conn, dc_report_cash_flow_forecast_task task_data)
{
try
{
......
{
"ConnectionStrings": {
"Default": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
"Default": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"ReadOnly": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
},
"PPSSkuStatus": "http://pps.bailuntec.com/Api/Centre/Publish/External/SkuStatus",
"ApiLogisticsGetFilterLogisticsAssignLine": "http://lms.bailuntec.com/api/Logistics/ApiLogistics/GetFilterLogisticsAssignLine",
......
{
"ConnectionStrings": {
"Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
"Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"ReadOnly": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
},
"PPSSkuStatus": "http://pps.bailuntec.com/Api/Centre/Publish/External/SkuStatus",
"ApiLogisticsGetFilterLogisticsAssignLine": "http://lms.bailuntec.com/api/Logistics/ApiLogistics/GetFilterLogisticsAssignLine",
......
{
"ConnectionStrings": {
"Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
"Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"ReadOnly": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
},
"PPSSkuStatus": "http://pps.bailuntec.com/Api/Centre/Publish/External/SkuStatus",
"ApiLogisticsGetFilterLogisticsAssignLine": "http://lms.bailuntec.com/api/Logistics/ApiLogistics/GetFilterLogisticsAssignLine",
......
......@@ -21,7 +21,7 @@ namespace AutoTurnOver.Services
public static void Calculation()
{
MySqlConnection conn = connectionHelper._connection;
MyMySqlConnection conn = connectionHelper._connection;
var task_log = new dc_task_log
{
......
{
"ConnectionStrings": {
"Default": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
"Default": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"ReadOnly": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
},
"Logging": {
"LogLevel": {
......
{
"ConnectionStrings": {
"Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
"Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"ReadOnly": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
},
"Logging": {
"LogLevel": {
......
{
"ConnectionStrings": {
"Default": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
"Default": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"ReadOnly": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
},
"Logging": {
"LogLevel": {
......
......@@ -16,7 +16,7 @@ namespace ResetOutofstock
try
{
var now = DateTime.Now;
//report.StockWeekBackUp();
report.StockWeekBackUp();
//report_cash_flow_dao.CalculationTransferOrder(now.AddMonths(-3), DateTime.Parse(now.AddDays(-1).ToString("yyyy-MM-dd 23:59:59")));
//report_cash_flow_dao.SynchroTransferCost();
}
......
{
"ConnectionStrings": {
"Default": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
"Default": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"ReadOnly": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
},
"Pams_GetAccountToken": "http://pams.bailuntec.com/Api/GetAccountToken",
"redis": {
......
{
"ConnectionStrings": {
"Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
"Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"ReadOnly": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
},
"Pams_GetAccountToken": "http://pams.bailuntec.com/Api/GetAccountToken",
"redis": {
......
{
"ConnectionStrings": {
"Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
"Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"ReadOnly": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
},
"PPS_ShortagePush": "http://10.0.6.8:8002/api/EbayTask/PushSkuEditQtyTask",
"redis": {
......
{
"ConnectionStrings": {
"Default": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
"Default": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"ReadOnly": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
},
"Pams_GetAccountToken": "http://pams.bailuntec.com/Api/GetAccountToken",
"PPS_ShortagePush": "http://bltpro.bailuntec.com/api/EbayTask/PushSkuEditQtyTask",
......
{
"ConnectionStrings": {
"Default": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
"Default": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"ReadOnly": "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
},
"Pams_GetAccountToken": "http://pams.bailuntec.com/Api/GetAccountToken",
"redis": {
......
{
"ConnectionStrings": {
"Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
"Default": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;",
"ReadOnly": "server=10.0.8.15;port=3306;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"
},
"PPS_ShortagePush": "http://10.0.6.8:8002/api/EbayTask/PushSkuEditQtyTask",
"PPS_ShortagePush2": "http://10.0.0.27:5051/skutask/pushskueditqtytask",
......
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