2022-09-29 10:35:00 +00:00
using Api.Framework ;
using Api.Framework.Enums ;
using Api.Framework.Model ;
using Api.Framework.SDK ;
using Api.Framework.Tools ;
using Api.Framework.Utils ;
using BackupAndImport ;
using BackupAndImport.ECO ;
using BackupAndImport.ECO.Entitys ;
using BackupAndImport.ECO.Events ;
using BackupAndImport.Entitys ;
using BackupAndImport.Entitys.annaer ;
using BackupAndImport.Entitys.annaer_cloud ;
using BackupAndImport.Entitys.lieke ;
using BackupAndImport.Entitys. 悠 哉 ;
using BackupAndImport.Entitys. 淘 某 喵 ;
using BackupAndImport.Entitys. 速 推 客 ;
using BackupAndImport.NianChu ;
using BackupAndImport.Properties ;
using CsharpHttpHelper ;
using DataDocking.Entitys ;
using DataDocking.Utils ;
using DevExpress.XtraEditors ;
using DevExpress.XtraEditors.Controls ;
using SqlSugar ;
using System ;
using System.Collections ;
using System.Collections.Generic ;
using System.Configuration ;
using System.Data ;
using System.Diagnostics ;
using System.IO ;
using System.Linq ;
using System.Reflection ;
using System.Text ;
using System.Text.RegularExpressions ;
using System.Threading ;
using System.Threading.Tasks ;
using System.Windows.Forms ;
using BackupAndImport. 速 推 客 云 端 ;
using BackupAndImport. 速 推 客 云 端 . Entitys ;
using CsharpHttpHelper.Enum ;
using DevExpress.Data.Helpers ;
using Newtonsoft.Json.Linq ;
using UI.Framework.Forms ;
using static Api . Framework . Cps . AlimamaApi ;
using static BackupAndImport . ECO . Eco ;
using static BackupAndImport . ECO . EventLog ;
namespace DataDocking
{
public partial class MainForm : BaseForm
{
/// <summary>
/// 用户自定义回复库
/// </summary>
public class fl_plugin_autoanswer_definedlib : base_model
{
/// <summary>
/// 平台类型
/// </summary>
public string chat_type { get ; set ; }
/// <summary>
/// 关键词
/// </summary>
public string antistop { get ; set ; }
/// <summary>
/// 匹配模式 0是为完全匹配, false为模糊 and 正则表达式 【这里用int类型,主要是因为dev中的Gridcontrol bool好像不支持 修改界面显示】
/// </summary>
public int match_pattern { get ; set ; }
/// <summary>
/// 指定回复的机器人信息,为空时所有机器人都使用
/// </summary>
public string specific_robot_setting_text { get ; set ; }
/// <summary>
/// 回复内容
/// </summary>
[SugarColumn(Length = 10000)] //设置字段为长文本
public string content { get ; set ; }
/// <summary>
/// 是否通知管理员 【这里用int类型,主要是因为dev中的Gridcontrol bool好像不支持 修改界面显示】
/// </summary>
public int is_alert_admin { get ; set ; }
public bool CheckChatType ( ChatType type )
{
return string . IsNullOrWhiteSpace ( this . chat_type ) ? false : this . chat_type . Split ( ',' ) . FirstOrDefault ( f = > ushort . Parse ( f ) = = ( ushort ) type ) ! = null ? true : false ;
}
}
public class fl_plugin_autoanswer_userdefinedlibrary : base_model
{
/// <summary>
/// 平台类型
/// </summary>
public string chat_type { get ; set ; }
/// <summary>
/// 关键词
/// </summary>
public string antistop { get ; set ; }
/// <summary>
/// 匹配模式 0是为完全匹配, false为模糊 and 正则表达式 【这里用int类型,主要是因为dev中的Gridcontrol bool好像不支持 修改界面显示】
/// </summary>
public int match_pattern { get ; set ; }
/// <summary>
/// 回复内容
/// </summary>
[SugarColumn(Length = 10000)] //设置字段为长文本
public string content { get ; set ; }
/// <summary>
/// 是否通知管理员 【这里用int类型,主要是因为dev中的Gridcontrol bool好像不支持 修改界面显示】
/// </summary>
public int is_alert_admin { get ; set ; }
public bool CheckChatType ( ChatType type )
{
return string . IsNullOrWhiteSpace ( this . chat_type ) ? false : this . chat_type . Split ( ',' ) . FirstOrDefault ( f = > ushort . Parse ( f ) = = ( ushort ) type ) ! = null ? true : false ;
}
}
/// <summary>
/// 打标记条件
/// </summary>
public enum SignType
{
好 友 天 数 = 0 ,
查 询 次 数 = 1 ,
订 单 总 数 = 2 ,
退 款 总 数 = 3 ,
推 荐 人 数 = 4
}
/// <summary>
/// 自动打标签数据表
/// </summary>
public class fl_plugin_signcontacts_sign_info : base_model
{
public SignType signtype { get ; set ; }
public long amount { get ; set ; }
public string sign { get ; set ; }
}
public MainForm ( )
{
InitializeComponent ( ) ;
this . Text = Resources . MainFormTitle ;
}
public void CloseForm ( )
{
if ( ! this . IsDisposed )
{
this . Invoke ( new Action ( delegate
{
this . Close ( ) ;
this . Dispose ( ) ;
} ) ) ;
}
}
/// <summary>
/// 数据库表中的数据
/// </summary>
List < string > tableData = new List < string > ( ) { "延迟结算配置" , "会员分组配置" , "分出比例配置" , "自定义问答" , "自动打标签数据" , "独立分出比例" } ;
private void MainForm_Load ( object sender , EventArgs e )
{
BackupAndImport . ECO . EventLog . LogEvent + = EventLog_LogEvent ;
BackupAndImport . NianChu . EventLog . LogEvent + = NCEventLog_LogEvent ;
BackupAndImport . 速 推 客 云 端 . EventLog . LogEvent + = STKEventLog_LogEvent ;
this . checkedListBoxControl1 . Items . Add ( new CheckedListBoxItem ( null , "全选" ) ) ;
this . checkedListBoxControl1 . Items . Add ( new CheckedListBoxItem ( null , "全消" ) ) ;
this . checkedListBoxControl1 . Items . Add ( new CheckedListBoxItem ( null , tableData [ 0 ] ) ) ;
this . checkedListBoxControl1 . Items . Add ( new CheckedListBoxItem ( null , tableData [ 1 ] ) ) ;
this . checkedListBoxControl1 . Items . Add ( new CheckedListBoxItem ( null , tableData [ 2 ] ) ) ;
this . checkedListBoxControl1 . Items . Add ( new CheckedListBoxItem ( null , tableData [ 3 ] ) ) ;
this . checkedListBoxControl1 . Items . Add ( new CheckedListBoxItem ( null , tableData [ 4 ] ) ) ;
this . checkedListBoxControl1 . Items . Add ( new CheckedListBoxItem ( null , tableData [ 5 ] ) ) ;
var session = ApiClient . GetSession ( ) ;
var system_configs = session . Find < fl_dictionary_item > ( "select * from fl_dictionary_item" ) ;
if ( system_configs ! = null & & system_configs . Count ! = 0 )
{
foreach ( var item in system_configs )
{
this . checkedListBoxControl1 . Items . Add ( new CheckedListBoxItem ( null , item . dickey ) ) ;
}
this . checkedListBoxControl1 . Tag = system_configs ;
}
else
this . checkedListBoxControl1 . Items . Add ( new CheckedListBoxItem ( null , "无配置信息!" ) ) ;
Auto_Bak_onoff . Checked = Class1 . Config . Auto_Bak_OnOff ;
label12 . Text = ( session . CurrentConnectionConfig . DbType = = SqlSugar . DbType . MySql ) ? "Mysql" : "Sqlite" ;
if ( string . IsNullOrWhiteSpace ( Class1 . Config . Auto_Bak_Path ) )
Class1 . Config . Auto_Bak_Path = Util . MapPath ( $"File\\备份" ) ;
textEdit7 . Text = Class1 . Config . Auto_Bak_Path ;
dateTimePicker1 . Value = Class1 . Config . Auto_Bak_Time ;
numericUpDown2 . Value = Class1 . Config . Auto_Bak_Day ;
checkBox6 . Checked = Class1 . Config . Is_Bak_Send_Email ;
#region 增 加 所 有 微 信 机 器 人 账 号
this . comboBoxEdit3 . Properties . Items . Clear ( ) ;
//var weixinBases = Chat.Framework.ChatClient.WXClient.Values.ToList();
var objList = new List < object > ( ) { "请选择机器人" } ;
var robotWXInfos = session . Find < fl_robot_info > ( "select * from fl_robot_info where type = 2" ) ;
if ( robotWXInfos ! = null & & robotWXInfos . Count ! = 0 )
{
foreach ( var item in robotWXInfos )
{
objList . Add ( item . name ) ;
}
}
this . comboBoxEdit3 . Properties . Items . AddRange ( objList ) ;
#endregion
#region 增 加 所 有 QQ机器人账号
this . comboBoxEdit1 . Properties . Items . Clear ( ) ;
//var qqBases = Chat.Framework.ChatClient.QQPool.QQClients.Values;
var objqqList = new List < object > ( ) { "请选择机器人" } ;
var robotQQInfos = session . Find < fl_robot_info > ( "select * from fl_robot_info where type = 1" ) ;
if ( robotQQInfos ! = null & & robotQQInfos . Count ! = 0 )
{
foreach ( var item in robotQQInfos )
{
objqqList . Add ( item . name ) ;
}
}
this . comboBoxEdit1 . Properties . Items . AddRange ( objqqList ) ;
#endregion
}
private void STKEventLog_LogEvent ( object sender , LogEvent e )
{
this . Invoke ( new Action ( ( ) = >
{
try
{
if ( memoEdit5 . Text . Length > = 1000000 )
{
memoEdit5 . Text = memoEdit5 . Text . Remove ( 300 ) ;
}
memoEdit5 . Text = $ @ "
{ DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) } : { e . Message . Trim ( ) }
{ memoEdit5 . Text } ";
//memoEdit5.SelectionStart = memoEdit5.Text.Length;
}
catch ( Exception ex )
{
ShowError ( $"日志异常:{ex.Message} - {ex.StackTrace}" ) ;
}
} ) ) ;
}
public string RemoveEmoji ( string text )
{
try
{
if ( string . IsNullOrWhiteSpace ( text ) ) return string . Empty ;
if ( Regex . IsMatch ( text , @"^(\d+(\.\d+)?)$" ) )
return text ;
//if (!string.IsNullOrEmpty(ConfigurationManager.AppSettings["RemoveWechatEmoji"]) && System.Configuration.ConfigurationManager.AppSettings["RemoveWechatEmoji"].ToUpper() == "FALSE")
//{
// return text;
//}
//text = Regex.Replace(Regex.Replace(text, @"\%uD.{3}", ""), "[👃☺️☹️☠️✊✌️☝✋✍️♀️♂️]", "");
foreach ( var a in text )
{
byte [ ] bts = Encoding . UTF32 . GetBytes ( a . ToString ( ) ) ;
if ( bts [ 0 ] . ToString ( ) = = "253" & & bts [ 1 ] . ToString ( ) = = "255" )
{
text = text . Replace ( a . ToString ( ) , "" ) ;
}
}
}
catch ( Exception ex )
{
}
return text ;
}
private void MainForm_FormClosing ( object sender , FormClosingEventArgs e )
{
try
{
Class1 . Config . Is_Bak_Send_Email = checkBox6 . Checked ;
BackupAndImport . ECO . EventLog . LogEvent - = EventLog_LogEvent ;
BackupAndImport . NianChu . EventLog . LogEvent - = NCEventLog_LogEvent ;
Api . Framework . Tools . Util . Save ( Class1 . Config ) ;
}
catch ( Exception ex )
{
ShowError ( ex ) ;
}
}
private void EventLog_LogEvent ( object sender , BackupAndImport . ECO . Events . LogEvent e )
{
this . Invoke ( new Action ( ( ) = >
{
try
{
if ( memoEdit3 . Text . Length > = 1000 )
{
memoEdit3 . Text = memoEdit3 . Text . Remove ( 300 ) ;
}
memoEdit3 . Text = $ @ "
{ DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) } : { e . Message . Trim ( ) }
{ memoEdit3 . Text } ";
//memoEdit3.SelectionStart = memoEdit3.Text.Length;
}
catch ( Exception ex )
{
ShowError ( $"日志异常:{ex.Message} - {ex.StackTrace}" ) ;
}
} ) ) ;
}
private void NCEventLog_LogEvent ( object sender , LogEvent e )
{
this . Invoke ( new Action ( ( ) = >
{
try
{
if ( memoEdit4 . Text . Length > = 1000 )
{
memoEdit4 . Text = memoEdit4 . Text . Remove ( 300 ) ;
}
memoEdit4 . Text = $ @ "
{ DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) } : { e . Message . Trim ( ) }
{ memoEdit4 . Text } ";
//memoEdit4.SelectionStart = memoEdit4.Text.Length;
}
catch ( Exception ex )
{
ShowError ( $"日志异常:{ex.Message} - {ex.StackTrace}" ) ;
}
} ) ) ;
}
#region 导 入 其 他 数 据 库
string checkState = string . Empty ;
private void simpleButton1_Click ( object sender , EventArgs e )
{
try
{
if ( comboBoxEdit2 . SelectedIndex = = 0 ) throw new Exception ( "请先选择要导入的软件名称" ) ;
if ( folderBrowserDialog1 . ShowDialog ( ) = = DialogResult . OK )
{
bool isEnabled = false ;
var path = folderBrowserDialog1 . SelectedPath ;
if ( Directory . Exists ( path ) )
{
checkState = string . Empty ;
//string[] paths = BackupAndImport.Tools.GetFiles(path, "(?<db>(数据库.db$)|(AliPro.db$)|(aliTools.db$)|(AlimamaPro.Framework.Configs.SQLConfig.config$)|(db.db$)|(积分.db$)|(订单.db$)|(lieke.db)|(AlimamaPro.Framework.Configs.Config))", -1);
bool isSeek = false ;
#region alitools
if ( comboBoxEdit2 . SelectedIndex = = 1 )
{
string [ ] paths = BackupAndImport . Tools . GetFiles ( path , "(?<db>(AliPro.db$)|(aliTools.db$)|(AlimamaPro.Framework.Configs.SQLConfig.config$)|(AlimamaPro.Framework.Configs.Config))" , - 1 ) ;
if ( ! string . IsNullOrEmpty ( paths . FirstOrDefault ( f = > f . Contains ( "AliPro.db" ) | | f . Contains ( "aliTools.db" ) | | f . Contains ( "AlimamaPro.Framework.Configs.SQLConfig.config" ) ) ) )
{
isSeek = true ;
var sqlConfig = paths . FirstOrDefault ( f = > f . Contains ( "AlimamaPro.Framework.Configs.SQLConfig.config" ) ) ;
var settingConfig = paths . FirstOrDefault ( f = > f . Contains ( "AlimamaPro.Framework.Configs.Config" ) ) ;
if ( sqlConfig ! = null & & settingConfig ! = null )
{
var settingJson = File . ReadAllText ( settingConfig ) ;
var settingResult = HttpExtend . JsonToDictionary ( settingJson ) ;
if ( settingResult ! = null & & settingResult . ContainsKey ( "积分_换算比例" ) )
{
var ratio = settingResult [ "积分_换算比例" ] . ToString ( ) ;
if ( ratio = = "0" )
{
ShowError ( "Alitools积分比例为0,终止操作~!" ) ;
return ;
}
simpleButton2 . Tag = ratio ;
}
else
{
ShowError ( "AlimamaPro.Framework.Configs.Config 配置不存在,终止操作~!" ) ;
return ;
}
var text = File . ReadAllText ( sqlConfig ) ;
var result = HttpExtend . JsonToDictionary ( text ) ;
var slqModel = result [ "SQLModel" ] . ToString ( ) ;
if ( slqModel = = "1" ) //SQLiteConfig
{
textEdit1 . Text = paths . FirstOrDefault ( f = > f . ToLower ( ) . Contains ( "alipro.db" ) ) ;
if ( string . IsNullOrEmpty ( textEdit1 . Text ) )
textEdit1 . Text = paths . FirstOrDefault ( f = > f . ToLower ( ) . Contains ( "alitools.db" ) ) ;
checkState = conn . CheckSqliteLink ( textEdit1 . Text . Trim ( ) , "" ) ;
//label7.Text = "AliTools";
label8 . Text = "Sqlite" ;
}
else if ( slqModel = = "2" ) //MySQLConfig
{
textEdit1 . Text = sqlConfig ;
var mySQLConfig = result [ "MySQLConfig" ] as Dictionary < string , object > ;
checkState = conn . CheckMysqlLink ( mySQLConfig [ "Host" ] . ToString ( ) , mySQLConfig [ "Name" ] . ToString ( ) , mySQLConfig [ "User" ] . ToString ( ) , mySQLConfig [ "Pass" ] . ToString ( ) , mySQLConfig [ "Port" ] . ToString ( ) ) ; //mysql链接是否成功
//label7.Text = "AliTools";
label8 . Text = "MySql" ;
}
isEnabled = true ;
}
else
throw new Exception ( "选中的目录中未存在源数据库信息,请确定后重试" ) ;
}
}
#endregion
#region 安 娜 尔
else if ( comboBoxEdit2 . SelectedIndex = = 2 )
{
string [ ] paths = BackupAndImport . Tools . GetFiles ( path , "(?<db>(数据库.db$))" , - 1 ) ;
textEdit1 . Text = paths . FirstOrDefault ( f = > f . Contains ( "数据库.db" ) ) ;
if ( ! string . IsNullOrEmpty ( textEdit1 . Text . Trim ( ) ) )
{
isSeek = true ;
checkState = conn . CheckSqliteLink ( textEdit1 . Text . Trim ( ) , "" ) ;
//label7.Text = "安娜尔";
label8 . Text = "Sqlite" ;
}
}
#endregion
#region 悠 哉
else if ( comboBoxEdit2 . SelectedIndex = = 3 )
{
string [ ] paths = BackupAndImport . Tools . GetFiles ( path , "(?<db>(数据库.db$)|(AliPro.db$)|(aliTools.db$)|(AlimamaPro.Framework.Configs.SQLConfig.config$)|(db.db$)|(积分.db$)|(订单.db$)|(lieke.db)|(AlimamaPro.Framework.Configs.Config))" , - 1 ) ;
if ( ! string . IsNullOrEmpty ( paths . FirstOrDefault ( f = > f . Contains ( "db.db" ) ) ) )
{
isSeek = true ;
textEdit1 . Text = paths . FirstOrDefault ( f = > f . Contains ( "db.db" ) ) ;
checkState = conn . CheckSqliteLink ( textEdit1 . Text . Trim ( ) , "" ) ;
//label7.Text = "悠哉";
label8 . Text = "Sqlite" ;
}
}
#endregion
#region 速 推 客
else if ( comboBoxEdit2 . SelectedIndex = = 4 )
{
string [ ] paths = BackupAndImport . Tools . GetFiles ( path , "(?<db>(积分.db$))" , - 1 ) ;
if ( ! string . IsNullOrEmpty ( paths . FirstOrDefault ( f = > f . Contains ( "积分.db" ) ) ) ) //&& !string.IsNullOrEmpty(paths.FirstOrDefault(f => f.Contains("订单.db")))) //速推客
{
isSeek = true ;
textEdit1 . Text = paths . FirstOrDefault ( f = > f . Contains ( "积分.db" ) ) ;
checkState = conn . CheckSqliteLink ( textEdit1 . Text . Trim ( ) , "" ) ; //速推客积分库
//label7.Text = "速推客";
label8 . Text = "Sqlite" ;
}
}
#endregion
#region 猎 客
else if ( comboBoxEdit2 . SelectedIndex = = 5 )
{
string [ ] paths = BackupAndImport . Tools . GetFiles ( path , "(?<db>(lieke.db))" , - 1 ) ;
if ( ! string . IsNullOrEmpty ( paths . FirstOrDefault ( f = > f . Contains ( "lieke.db" ) ) ) )
{
isSeek = true ;
textEdit1 . Text = paths . FirstOrDefault ( f = > f . Contains ( "lieke.db" ) ) ;
checkState = conn . CheckSqliteLink ( textEdit1 . Text . Trim ( ) , "" ) ;
//label7.Text = "猎客";
label8 . Text = "Sqlite" ;
}
}
#endregion
#region 淘 客 喵
else if ( comboBoxEdit2 . SelectedIndex = = 6 )
{
string [ ] paths = BackupAndImport . Tools . GetFiles ( path , @"(?<db>(data_\d+.db))" , - 1 ) ;
if ( ! string . IsNullOrEmpty ( paths . FirstOrDefault ( f = > f . Contains ( "data_46349.db" ) ) ) )
{
isSeek = true ;
//textEdit1.Text = paths.FirstOrDefault(f => f.Contains("data_46349.db"));
textEdit1 . Text = paths . FirstOrDefault ( f = > f . Contains ( "data_46349.db" ) ) ;
checkState = conn . CheckSqliteLink ( textEdit1 . Text . Trim ( ) , "" ) ;
//label7.Text = "淘客喵";
label8 . Text = "Sqlite" ;
}
}
#endregion
#region 安 娜 尔 云 控 版
else if ( comboBoxEdit2 . SelectedIndex = = 7 )
{
string [ ] paths = BackupAndImport . Tools . GetFiles ( path , "(?<db>(数据库.db$))" , - 1 ) ;
textEdit1 . Text = paths . FirstOrDefault ( f = > f . Contains ( "数据库.db" ) ) ;
if ( ! string . IsNullOrEmpty ( textEdit1 . Text . Trim ( ) ) )
{
isSeek = true ;
checkState = conn . CheckSqliteLink ( textEdit1 . Text . Trim ( ) , "" ) ;
//label7.Text = "安娜尔";
label8 . Text = "Sqlite" ;
}
}
#endregion
if ( ! isSeek & & string . IsNullOrEmpty ( checkState ) )
checkState = "目录中没有找到数据库文件或配置文件" ;
if ( isSeek & & string . IsNullOrEmpty ( checkState ) )
{
comboBoxEdit1 . Enabled = isEnabled ;
ShowSuccess ( "数据库链接成功!" ) ;
}
else
{
//label7.Text = label8.Text = "请选择数据库";
ShowError ( checkState ) ;
}
}
else
throw new Exception ( "选择的目录路径存在异常" ) ;
}
}
catch ( Exception ex )
{
ShowError ( ex ) ;
}
}
private void simpleButton14_Click ( object sender , EventArgs e )
{
try
{
//checkState = conn.CheckMysqlLink(mySQLConfig["Host"].ToString(), mySQLConfig["Name"].ToString(), mySQLConfig["User"].ToString(), mySQLConfig["Pass"].ToString(), mySQLConfig["Port"].ToString());//mysql链接是否成功
checkState = conn . CheckMysqlLink ( textEdit9 . Text . Trim ( ) , textEdit10 . Text . Trim ( ) , textEdit11 . Text . Trim ( ) , textEdit12 . Text . Trim ( ) , textEdit13 . Text . Trim ( ) ) ; //mysql链接是否成功
if ( string . IsNullOrEmpty ( checkState ) )
{
comboBoxEdit1 . Enabled = false ;
label8 . Text = "MySql" ;
ShowSuccess ( "数据库链接成功!" ) ;
}
else
{
//label7.Text = label8.Text = "请选择数据库";
label8 . Text = "请选择数据库" ;
ShowError ( checkState ) ;
}
}
catch ( Exception ex )
{
tempConfig = null ;
ShowError ( ex ) ;
}
}
SetConnectionConfig conn = new SetConnectionConfig ( ) ; //测试数据链接的对象
/// <summary>
/// 开始同步订单
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void simpleButton2_Click ( object sender , EventArgs e )
{
try
{
if ( comboBoxEdit2 . SelectedIndex = = 0 ) throw new Exception ( "请先选择要导入的软件名称" ) ;
if ( conn = = null | | conn . tempConfig = = null ) throw new Exception ( "请选择数据库~! " ) ;
//if (label7.Text == "AliTools")
if ( comboBoxEdit2 . SelectedIndex = = 1 )
{
if ( comboBoxEdit3 . SelectedIndex = = 0 & & comboBoxEdit1 . SelectedIndex = = 0 ) throw new Exception ( @ "请选择导入的对应机器人账号
1. 只 导 入 微 信 请 选 择 "" 微 信 对 应 机 器 人 账 号 ""
2. 只 导 入 QQ请选择 "" QQ对应机器人账号 ""
3. 微 信 、 QQ两个都导入请都选择
注 : 一 个 数 据 库 只 能 导 入 一 次 ");
}
else
{
if ( comboBoxEdit3 . SelectedIndex = = 0 ) throw new Exception ( "请选择对应机器人账号" ) ;
}
if ( checkBox1 . Checked | | checkBox2 . Checked )
{
comboBoxEdit1 . Enabled = comboBoxEdit3 . Enabled = simpleButton2 . Enabled = false ;
simpleButton2 . Text = "同步中.." ;
//index = comboBox1.SelectedIndex;
TaskTool task = new TaskTool ( ) ;
task . AddTask ( delegate
{
try
{
EventClient . StopParsing = false ;
SynchronousMemberData ( ) ;
SynchronousBindTBOrderData ( ) ;
}
catch ( Exception ex )
{
this . Invoke ( new Action ( delegate
{
ShowError ( ex ) ;
} ) ) ;
}
finally
{
EventClient . StopParsing = true ;
}
} ) ;
task . Start ( 1 , callback ) ;
}
else
throw new Exception ( "至少选择一项导入任务" ) ;
}
catch ( Exception ex )
{
ShowError ( ex . Message ) ;
comboBoxEdit1 . Enabled = comboBoxEdit3 . Enabled = simpleButton2 . Enabled = true ;
}
}
private void callback ( IAsyncResult ar )
{
try
{
this . Invoke ( new Action ( delegate
{
comboBoxEdit3 . Enabled = simpleButton2 . Enabled = true ;
simpleButton2 . Text = "开始同步" ;
ShowSuccess ( $"同步操作已执行完毕!" ) ;
} ) ) ;
}
catch ( Exception ex )
{
ShowError ( ex ) ;
}
}
/// <summary>
/// 将新用的id和旧的id保存起来.用于之后的修改上级id
/// </summary>
List < PrimaryKeyTemp > pkts = new List < PrimaryKeyTemp > ( ) ;
private object objLock = new object ( ) ;
private object lock_obj = new object ( ) ;
private void AddJindu ( string text = "" , int max = 0 )
{
base . UpdateUI ( ( ) = >
{
try
{
lock ( lock_obj )
{
if ( ! string . IsNullOrEmpty ( text ) & & max = = 0 )
{
label31 . Text = text ;
}
else if ( ! string . IsNullOrEmpty ( text ) & & max ! = 0 )
{
label31 . Text = text ;
this . progressBar1 . Value = 0 ;
this . progressBar1 . Maximum = max ;
}
else
{
if ( this . progressBar1 . Value < this . progressBar1 . Maximum ) this . progressBar1 . Value + + ;
label31 . Text = $"{this.progressBar1.Value}/{this.progressBar1.Maximum}" ;
}
}
Application . DoEvents ( ) ;
}
catch ( Exception )
{
}
} ) ;
}
/// <summary>
/// 同步会员信息
/// </summary>
private void SynchronousMemberData ( )
{
try
{
if ( checkBox1 . Checked ) //会员数据同步
{
var session = ApiClient . GetSession ( ) ;
session . BeginTransaction ( ) ;
var srcSession = ApiClient . GetSession ( conn . tempConfig , false ) ;
pkts = new List < PrimaryKeyTemp > ( ) ;
try
{
#region AliTools
//if (label7.Text == "AliTools")
if ( comboBoxEdit2 . SelectedIndex = = 1 )
{
if ( ! srcSession . TableExist < Entitys . alitools . MemberInfo > ( ) ) throw new Exception ( @"导入会员数据失败,可能原因:会员信息执行过一次导入操作" ) ;
AddJindu ( "正在读取会员数据..." ) ;
List < Entitys . alitools . MemberInfo > old_member_infos ;
if ( comboBoxEdit3 . SelectedIndex ! = 0 & & comboBoxEdit1 . SelectedIndex ! = 0 )
old_member_infos = srcSession . Find < Entitys . alitools . MemberInfo > ( "select * from MemberInfo" ) ; //预导入的会员数据
else
old_member_infos = srcSession . Find < Entitys . alitools . MemberInfo > ( "select * from MemberInfo where UserType = @UserType" , new { UserType = comboBoxEdit3 . SelectedIndex ! = 0 ? 1 : 0 } ) ; //预导入的会员数据 1是微信,0是QQ
if ( old_member_infos . Count > 0 ) AddJindu ( "导入会员数据中..." , old_member_infos . Count ) ;
if ( old_member_infos ! = null & & old_member_infos . Count ! = 0 )
{
List < fl_member_info > member_infos = null ;
if ( comboBoxEdit3 . SelectedIndex ! = 0 & & comboBoxEdit1 . SelectedIndex ! = 0 )
member_infos = session . Queryable < fl_member_info > ( ) . ToList ( ) ;
else
{
var chatType = comboBoxEdit3 . SelectedIndex ! = 0 ? ChatType . 微 信 : ChatType . QQ ;
member_infos = session . Queryable < fl_member_info > ( ) . Where ( f = > f . robot_type = = chatType ) . ToList ( ) ;
}
var Exists_old_members = old_member_infos . Where ( old = > member_infos . Exists ( goal = > goal . username = = old . UserName ) ) . ToList ( ) ; //已经存在的用户,直接加积分
var UnExists_old_members = old_member_infos . Where ( old = > ! member_infos . Exists ( goal = > goal . username = = old . UserName ) ) . ToList ( ) ; //不存在的用户,创建用户对象
var ratio = 1 ; //积分比例
if ( simpleButton2 . Tag ! = null )
ratio = int . Parse ( simpleButton2 . Tag as string ) ;
//将所有的订单结算 用户id查询到集合中
var userIds = srcSession . Find < int > ( "select userId from AliOrder where status = '订单结算' and userId != 0" , new { } ) ;
#region 已 经 存 在 的 用 户
if ( Exists_old_members . Count ! = 0 )
{
List < fl_member_info > memberInfos = new List < fl_member_info > ( ) ; //保存存在的用户对象
foreach ( var oldmember in Exists_old_members )
{
long finishOrder = 0 ; //已完成订单数量
if ( userIds ! = null )
finishOrder = userIds . Count ( f = > f = = oldmember . Id ) ;
double point = double . Parse ( ( oldmember . Point / ratio ) . ToString ( "#0.00 " ) ) ;
double ticPoint = double . Parse ( ( oldmember . TicPoint / ratio ) . ToString ( "#0.00 " ) ) ;
double sumPoint = double . Parse ( ( oldmember . SumPoint / ratio ) . ToString ( "#0.00 " ) ) ;
var member = member_infos . FirstOrDefault ( f = > f . username = = oldmember . UserName & & f . robot_type = = ( oldmember . UserType = = 1 ? ChatType . 微 信 : ChatType . QQ ) ) ; //获取对应的对象
if ( member = = null ) continue ;
member . cur_point = ( double ) ( ( decimal ) member . cur_point + ( decimal ) point ) ;
member . ext_point = ( double ) ( ( decimal ) member . ext_point + ( decimal ) ticPoint ) ;
member . sum_point = ( double ) ( ( decimal ) member . sum_point + ( decimal ) sumPoint ) ;
member . finish_order = ( long ) ( ( decimal ) member . finish_order + ( decimal ) finishOrder ) ;
member . bind_order = member . finish_order ;
member . remark = member . remark + ( string . IsNullOrEmpty ( member . remark ) ? "" : " -- " ) + oldmember . Remark ;
if ( string . IsNullOrWhiteSpace ( member . robot_name ) )
{
member . robot_name = member . robot_type = = ChatType . 微 信 ? comboBoxEdit3 . Text : comboBoxEdit1 . Text ;
}
memberInfos . Add ( member ) ;
pkts . Add ( new PrimaryKeyTemp ( ) { NewId = member . id , UserName = oldmember . UserName , OldId = oldmember . Id } ) ;
AddJindu ( ) ;
}
var _num1 = ( int ) Math . Ceiling ( ( decimal ) memberInfos . Count / 500 m ) ;
for ( int o = 1 ; o < = _num1 ; o + + )
{
var _list = memberInfos . Skip ( ( o - 1 ) * 500 ) . Take ( 500 ) . ToList ( ) ;
session . Updateable ( _list . ToArray ( ) ) . ExecuteCommand ( ) ;
}
}
#endregion
#region 不 存 在 的 用 户
if ( UnExists_old_members . Count ! = 0 )
{
List < fl_member_info > unMemberInfos = new List < fl_member_info > ( ) ; //保存不存在的用户对象
foreach ( var oldmember in UnExists_old_members )
{
long finishOrder = 0 ; //已完成订单数量
if ( userIds ! = null )
finishOrder = userIds . Count ( f = > f = = oldmember . Id ) ;
double point = double . Parse ( ( ( decimal ) oldmember . Point / ( decimal ) ratio ) . ToString ( "#0.00 " ) ) ;
double ticPoint = double . Parse ( ( ( decimal ) oldmember . TicPoint / ( decimal ) ratio ) . ToString ( "#0.00 " ) ) ;
double sumPoint = double . Parse ( ( ( decimal ) oldmember . SumPoint / ( decimal ) ratio ) . ToString ( "#0.00 " ) ) ;
var member = new fl_member_info ( ) { crt_time = oldmember . CrtTime , robot_type = ( oldmember . UserType = = 1 ? ChatType . 微 信 : ChatType . QQ ) , username = oldmember . UserName , usernick = oldmember . NickName . Replace ( "'" , "''" ) , cur_point = point , sum_point = sumPoint , ext_point = ticPoint , remark = oldmember . Remark , inviter_id = 0 , finish_order = finishOrder , bind_order = finishOrder , robot_name = oldmember . UserType = = 1 ? comboBoxEdit3 . Text : comboBoxEdit1 . Text , alipay_name = "" , alipay_num = "" } ;
var groups = session . FindGroups ( ) ;
if ( groups . Count ! = 0 )
member . group_id = groups [ 0 ] . id ;
if ( unMemberInfos . FirstOrDefault ( f = > f . username = = member . username ) = = null )
unMemberInfos . Add ( member ) ;
else
{ }
pkts . Add ( new PrimaryKeyTemp ( ) { NewId = 0 , UserName = oldmember . UserName , OldId = oldmember . Id } ) ;
AddJindu ( ) ;
}
var _num1 = ( int ) Math . Ceiling ( ( decimal ) unMemberInfos . Count / 500 m ) ;
for ( int o = 1 ; o < = _num1 ; o + + )
{
var _list = unMemberInfos . Skip ( ( o - 1 ) * 500 ) . Take ( 500 ) . ToList ( ) ;
session . Insertable ( _list . ToArray ( ) ) . ExecuteCommand ( ) ;
}
}
#endregion
#region 绑 定 上 下 级 关 系
//member_infos = session.Find<fl_member_info>("select * from fl_member_info");//现有的会员数据
if ( comboBoxEdit3 . SelectedIndex ! = 0 & & comboBoxEdit1 . SelectedIndex ! = 0 )
member_infos = session . Queryable < fl_member_info > ( ) . ToList ( ) ; //现有的会员数据
else
{
var chatType = comboBoxEdit3 . SelectedIndex ! = 0 ? ChatType . 微 信 : ChatType . QQ ;
member_infos = session . Queryable < fl_member_info > ( ) . Where ( f = > f . robot_type = = chatType ) . ToList ( ) ;
}
foreach ( var item in pkts )
item . NewId = member_infos . FirstOrDefault ( f = > f . username = = item . UserName ) . id ; //增加fl_member_info对应的id
var allRecIdMember = old_member_infos . Where ( f = > f . RecId ! = 0 ) . OrderBy ( f = > f . RecId ) . ThenBy ( f = > f . Id ) . ToList ( ) ; //2.获取预导入集合中所有有上级的用户.
if ( allRecIdMember ! = null & & allRecIdMember . Count ! = 0 )
{
AddJindu ( "绑定上下级关系中..." , allRecIdMember . Count ) ;
//member_infos = session.Find<fl_member_info>("select * from fl_member_info");//现有的会员数据
foreach ( var item in allRecIdMember )
{
var value = pkts . FirstOrDefault ( f = > f . OldId = = item . Id ) ; //获取...
if ( value ! = null )
{
var oldmember = old_member_infos . FirstOrDefault ( f = > f . Id = = value . OldId ) ;
if ( oldmember ! = null )
{
var pkt = pkts . FirstOrDefault ( f = > f . OldId = = oldmember . RecId ) ; //通过对比老的id获取新的id值
if ( pkt ! = null )
{
var member = member_infos . FirstOrDefault ( f = > f . id = = value . NewId ) ;
if ( member ! = null & & member . inviter_id = = 0 )
{
member . inviter_id = pkt . NewId ; //赋值推荐人
session . SaveOrUpdate ( member ) ;
}
else
{ }
}
else
{ }
}
else
{ }
}
else
{ }
AddJindu ( ) ;
}
}
#endregion
AddJindu ( "保存会员数据中.." ) ;
if ( label8 . Text . ToLower ( ) = = "sqlite" )
srcSession . ExcuteSQL ( "ALTER TABLE 'MemberInfo' RENAME TO 'MemberInfo_备份'" ) ;
else if ( label8 . Text . ToLower ( ) = = "mysql" )
srcSession . ExcuteSQL ( "ALTER TABLE MemberInfo RENAME TO MemberInfo_备份" ) ;
session . Commit ( ) ;
AddJindu ( "保存会员数据成功" ) ;
//base.UpdateUI(() =>{ label31.Text = "导入会员数据完成";});
//this.Invoke(new Action(delegate
//{
// ShowSuccess($"会员数量预导入数据量:{old_member_infos.Count}条,成功导入:{old_member_infos.Count}");
//}));
return ;
}
else
throw new Exception ( @"导入会员数据失败,可能原因:选中数据库中会员数据为空" ) ;
}
#endregion
#region 安 娜 儿
//else if (label7.Text == "安娜尔")
else if ( comboBoxEdit2 . SelectedIndex = = 2 )
{
try
{
if ( ! srcSession . TableExist < BackupAndImport . Entitys . annaer . 会 员 信 息 > ( ) ) throw new Exception ( @"导入会员数据失败,可能原因:会员信息执行过一次导入操作" ) ; //检测表是否存在
AddJindu ( "正在读取会员数据..." ) ;
srcSession . ExcuteSQL ( "DROP TABLE IF EXISTS '会员信息A'" ) ;
srcSession . ExcuteSQL ( "ALTER TABLE 会员信息 RENAME TO 会员信息A" ) ;
srcSession . ExcuteSQL ( @ "CREATE TABLE '会员信息'(
' 对 应 ID ' TEXT NOT NULL ,
' 微 信 名 字 ' varchar ( 255 ) DEFAULT ' ' ,
' 姓 名 ' varchar ( 255 ) DEFAULT ' ' ,
' 支 付 宝 ' varchar ( 255 ) DEFAULT ' ' ,
' 总 提 现 金 额 ' double DEFAULT 0 ,
' 可 提 现 金 额 ' double DEFAULT 0 ,
' 未 收 货 金 额 ' double DEFAULT 0 ,
' 总 成 功 订 单 ' double DEFAULT 0 ,
' 签 到 次 数 ' double DEFAULT 0 ,
' 签 到 奖 励 ' double DEFAULT 0 ,
' 签 到 时 间 ' varchar ( 255 ) DEFAULT ' ' ,
' 推 广 奖 励 ' double DEFAULT 0 ,
' 定 向 比 例 ' varchar ( 255 ) DEFAULT ' ' ,
' 独 立 PID ' varchar ( 255 ) DEFAULT ' ' ,
' 注 册 时 间 ' varchar ( 255 ) DEFAULT ' ' ,
' 公 众 号 对 应 ID ' varchar ( 255 ) DEFAULT ' ' ,
PRIMARY KEY ( ' 对 应 ID ' ASC )
) ; ");
srcSession . ExcuteSQL ( "INSERT INTO 会员信息 SELECT 对应ID,微信名字,姓名,支付宝,总提现金额,可提现金额,未收货金额,总成功订单,签到次数,签到奖励,签到时间,推广奖励,定向比例,独立PID,注册时间,公众号对应ID FROM 会员信息A" ) ;
srcSession . ExcuteSQL ( "DROP TABLE '会员信息A'" ) ;
var member_infos = srcSession . Queryable < BackupAndImport . Entitys . annaer . 会 员 信 息 > ( ) . ToList ( ) ;
var current_member_infos = session . Find < fl_member_info > ( "select * from fl_member_info" ) ; //目标数据库中获取所有的会员数据
if ( member_infos . Count > 0 ) AddJindu ( "导入会员数据中..." , member_infos . Count ) ;
List < fl_member_info > unMemberInfos = new List < fl_member_info > ( ) ; //保存不存在的用户对象
List < fl_member_info > memberInfos = new List < fl_member_info > ( ) ; //保存存在的用户对象
//var tixian = decimal.Parse(session.FindTable(@"select uid,COALESCE(sum(point),0) from fl_point_hist where '2019-06-15 16:40:00' <= crt_time and crt_time <= '2019-06-16 15:00:00' and point < 0 and uid = @uid group by uid").Rows[0]["num"].ToString());
foreach ( var item in member_infos )
{
var user = current_member_infos . FirstOrDefault ( f = > f . username = = item . 对 应 ID & & f . robot_type = = ChatType . 微 信 ) ;
if ( user = = null )
{
user = new fl_member_info ( )
{
username = item . 对 应 ID ,
robot_type = ChatType . 微 信 ,
usernick = item . 微 信 名 字 . Replace ( "'" , "''" ) ,
cur_point = item . 可 提 现 金 额 = = null ? 0d : ( double ) item . 可 提 现 金 额 ,
sum_point = item . 总 提 现 金 额 = = null ? 0d : ( double ) item . 总 提 现 金 额 ,
ext_point = item . 推 广 奖 励 = = null ? 0d : ( double ) item . 推 广 奖 励 ,
finish_order = ( long ) item . 总 成 功 订 单 ,
bind_order = ( long ) item . 总 成 功 订 单 ,
robot_name = comboBoxEdit3 . Text ,
alipay_name = string . Empty ,
alipay_num = string . Empty ,
remark = string . Empty
} ;
var groups = session . FindGroups ( ) ;
if ( groups . Count ! = 0 )
user . group_id = groups [ 0 ] . id ;
unMemberInfos . Add ( user ) ;
AddJindu ( ) ;
}
else
{
user . cur_point = ( double ) ( ( decimal ) user . cur_point + ( item . 可 提 现 金 额 = = null ? 0 m : ( decimal ) item . 可 提 现 金 额 ) ) ;
user . sum_point = user . sum_point + ( item . 总 提 现 金 额 = = null ? 0d : ( double ) item . 总 提 现 金 额 ) ;
user . ext_point = user . ext_point + ( item . 推 广 奖 励 = = null ? 0d : ( double ) item . 推 广 奖 励 ) ;
user . finish_order = user . finish_order + ( long ) item . 总 成 功 订 单 ;
user . bind_order = user . finish_order ;
if ( string . IsNullOrWhiteSpace ( user . robot_name ) )
{
user . robot_name = comboBoxEdit3 . Text ;
user . robot_type = ChatType . 微 信 ;
}
memberInfos . Add ( user ) ;
AddJindu ( ) ;
}
}
if ( unMemberInfos . Count ! = 0 )
session . Insertable ( unMemberInfos . ToArray ( ) ) . ExecuteCommand ( ) ;
if ( memberInfos . Count ! = 0 )
session . Updateable ( memberInfos . ToArray ( ) ) . ExecuteCommand ( ) ;
//绑定上下级
if ( member_infos ! = null & & member_infos . Count ! = 0 )
{
AddJindu ( "绑定上下级关系中..." , member_infos . Count ) ;
var newDbs = session . Queryable < fl_member_info > ( ) . ToList ( ) ;
var old = srcSession . Find < 上 下 级 管 理 > ( "select * from 上下级管理" ) ;
foreach ( var item in old )
{
var new_user = newDbs . FirstOrDefault ( f = > f . username = = item . 下 级 对 应 ID ) ;
if ( new_user ! = null & & new_user . inviter_id = = 0 )
{
var inviter = newDbs . FirstOrDefault ( f = > f . username = = item . 上 级 对 应 ID ) ; //找出上级账号
if ( inviter ! = null )
{
new_user . inviter_id = inviter . id ; //填写上级ID
2022-10-10 07:15:51 +00:00
//session.Updateable<fl_member_info>(new { inviter_id = inviter.id }).Where(f => f.id == new_user.id).ExecuteCommand();
session . Updateable ( new_user ) ;
2022-09-29 10:35:00 +00:00
}
}
AddJindu ( ) ;
}
AddJindu ( "保存会员数据中.." ) ;
srcSession . ExcuteSQL ( "ALTER TABLE '会员信息' RENAME TO '会员信息_备份'" ) ;
AddJindu ( "保存会员数据成功" ) ;
}
session . Commit ( ) ;
return ;
}
catch ( Exception ex )
{
throw new Exception ( $"数据异常,同步终止.{ex.Message}" ) ;
}
}
#endregion
#region 速 推 客
//else if (label7.Text == "速推客")
else if ( comboBoxEdit2 . SelectedIndex = = 4 )
{
try
{
if ( ! srcSession . TableExist < BackupAndImport . Entitys . 速 推 客 . 会 员 信 息 > ( ) ) throw new Exception ( @"导入会员数据失败,可能原因:会员信息执行过一次导入操作" ) ; //检测表是否存在
AddJindu ( "正在读取会员数据..." ) ;
var member_infos = srcSession . Find < BackupAndImport . Entitys . 速 推 客 . 会 员 信 息 > ( "select * from 会员信息" ) ; //获取预导入表的所有数据
var current_member_infos = session . Find < fl_member_info > ( "select * from fl_member_info" ) ; //目标数据库中获取所有的会员数据
if ( member_infos . Count > 0 ) AddJindu ( "导入会员数据中..." , member_infos . Count ) ;
//var tableNum = srcSession.FindTable("select count(ID) as num from 订单管理 where ID = @username and 订单状态 = '订单结算' GROUP BY ID,订单状态", new { username = item.ID });
var usernames = srcSession . Find < UserName > ( "select ID from 订单管理 where 订单状态 = '订单结算'" , new { } ) ;
List < fl_member_info > unMemberInfos = new List < fl_member_info > ( ) ; //保存不存在的用户对象
List < fl_member_info > memberInfos = new List < fl_member_info > ( ) ; //保存存在的用户对象
foreach ( var item in member_infos )
{
var user = current_member_infos . FirstOrDefault ( f = > f . username = = item . ID & & f . robot_type = = ChatType . 微 信 ) ; //判断是否存在存在给用户的数据
long finishOrder = 0 ; //已完成订单数量
//var tableNum = srcSession.FindTable("select count(ID) as num from 订单管理 where ID = @username and 订单状态 = '订单结算' GROUP BY ID,订单状态", new { username = item.ID });
//if (tableNum.Rows.Count != 0)
// finishOrder = long.Parse(tableNum.Rows[0]["num"].ToString());
if ( usernames ! = null )
finishOrder = usernames . Count ( f = > f . username = = item . ID ) ;
if ( user = = null )
{
decimal _cur_point = 0 ;
decimal . TryParse ( item . 结 算 金 额 , out _cur_point ) ;
user = new fl_member_info ( )
{
username = item . ID ,
robot_type = ChatType . 微 信 ,
usernick = item . 名 称 . Replace ( "'" , "''" ) ,
cur_point = ( double ) ( ( string . IsNullOrWhiteSpace ( item . 结 算 金 额 ) ? 0 m : _cur_point ) + ( string . IsNullOrWhiteSpace ( item . 签 到 奖 励 ) ? 0 m : decimal . Parse ( item . 签 到 奖 励 ) ) + ( string . IsNullOrWhiteSpace ( item . 推 广 奖 励 ) ? 0 m : decimal . Parse ( item . 推 广 奖 励 ) ) + ( string . IsNullOrWhiteSpace ( item . 额 外 奖 励 ) ? 0 m : decimal . Parse ( item . 额 外 奖 励 ) ) - ( string . IsNullOrWhiteSpace ( item . 已 提 现 金 额 ) ? 0 m : decimal . Parse ( item . 已 提 现 金 额 ) ) ) ,
sum_point = ( double ) ( string . IsNullOrWhiteSpace ( item . 已 提 现 金 额 ) ? 0 m : decimal . Parse ( item . 已 提 现 金 额 ) ) ,
ext_point = ( double ) ( string . IsNullOrWhiteSpace ( item . 推 广 奖 励 ) ? 0 m : decimal . Parse ( item . 推 广 奖 励 ) ) ,
finish_order = finishOrder ,
bind_order = finishOrder ,
robot_name = comboBoxEdit3 . Text ,
alipay_name = string . Empty ,
alipay_num = string . Empty ,
remark = string . Empty
} ;
var groups = session . FindGroups ( ) ;
if ( groups . Count ! = 0 )
user . group_id = groups [ 0 ] . id ;
unMemberInfos . Add ( user ) ;
AddJindu ( ) ;
}
else
{
decimal _cur_point = 0 ;
decimal . TryParse ( item . 结 算 金 额 , out _cur_point ) ;
user . cur_point = user . cur_point + ( double ) ( ( string . IsNullOrWhiteSpace ( item . 结 算 金 额 ) ? 0 m : _cur_point ) + ( string . IsNullOrWhiteSpace ( item . 签 到 奖 励 ) ? 0 m : decimal . Parse ( item . 签 到 奖 励 ) ) + ( string . IsNullOrWhiteSpace ( item . 推 广 奖 励 ) ? 0 m : decimal . Parse ( item . 推 广 奖 励 ) ) + ( string . IsNullOrWhiteSpace ( item . 额 外 奖 励 ) ? 0 m : decimal . Parse ( item . 额 外 奖 励 ) ) - ( string . IsNullOrWhiteSpace ( item . 已 提 现 金 额 ) ? 0 m : decimal . Parse ( item . 已 提 现 金 额 ) ) ) ;
user . sum_point = user . sum_point + ( double ) ( string . IsNullOrWhiteSpace ( item . 已 提 现 金 额 ) ? 0 m : decimal . Parse ( item . 已 提 现 金 额 ) ) ;
user . ext_point = user . ext_point + ( double ) ( string . IsNullOrWhiteSpace ( item . 推 广 奖 励 ) ? 0 m : decimal . Parse ( item . 推 广 奖 励 ) ) ;
user . finish_order = user . finish_order + finishOrder ;
user . bind_order = user . finish_order ;
if ( string . IsNullOrWhiteSpace ( user . robot_name ) )
{
user . robot_name = comboBoxEdit3 . Text ;
user . robot_type = ChatType . 微 信 ;
}
memberInfos . Add ( user ) ;
AddJindu ( ) ;
}
//session.SaveOrUpdate(user);
}
if ( unMemberInfos . Count ! = 0 )
{
//session.Insertable(unMemberInfos.ToArray()).ExecuteCommand();
var _num = ( int ) Math . Ceiling ( ( decimal ) unMemberInfos . Count / 500 m ) ;
for ( int o = 1 ; o < = _num ; o + + )
{
var _list = unMemberInfos . Skip ( ( o - 1 ) * 500 ) . Take ( 500 ) . ToList ( ) ;
session . Insertable ( _list . ToArray ( ) ) . ExecuteCommand ( ) ;
AddJindu2 ( $"用户表 保存中...{_num - o}" ) ;
}
}
if ( memberInfos . Count ! = 0 )
{
//session.Updateable(memberInfos.ToArray()).ExecuteCommand();
var _num = ( int ) Math . Ceiling ( ( decimal ) memberInfos . Count / 500 m ) ;
for ( int o = 1 ; o < = _num ; o + + )
{
var _list = memberInfos . Skip ( ( o - 1 ) * 500 ) . Take ( 500 ) . ToList ( ) ;
session . Updateable ( _list . ToArray ( ) ) . ExecuteCommand ( ) ;
AddJindu2 ( $"用户表2 保存中...{_num - o}" ) ;
}
}
//绑定上下级
if ( member_infos ! = null & & member_infos . Count ! = 0 )
{
AddJindu ( "绑定上下级关系中..." , member_infos . Count ) ;
var newDbs = session . Find < fl_member_info > ( "select * from fl_member_info" ) ;
var old = srcSession . Find < 代 理 管 理 > ( "select * from 代理管理" ) ;
foreach ( var item in newDbs )
{
AddJindu ( ) ;
if ( item . inviter_id ! = 0 ) continue ;
if ( old ! = null & & old . Count ! = 0 )
{
//Console.WriteLine($"{item.username},{item.usernick}");
var i = old . FirstOrDefault ( f = > f . 下 级 ID = = item . username ) ;
if ( i ! = null )
{
var inviter = newDbs . FirstOrDefault ( f = > f . username = = i . 上 级 ID ) ; //找出上级账号
if ( inviter ! = null )
{
item . inviter_id = inviter . id ; //填写上级ID
session . SaveOrUpdate ( item ) ;
}
}
}
}
AddJindu ( "保存会员数据中.." ) ;
srcSession . ExcuteSQL ( "ALTER TABLE '会员信息' RENAME TO '会员信息_备份'" ) ;
AddJindu ( "保存会员数据成功" ) ;
}
session . Commit ( ) ;
//this.Invoke(new Action(delegate
//{
// ShowSuccess($"会员数量预导入数据量:{member_infos.Count}条,成功导入:{member_infos.Count}");
//}));
return ;
}
catch ( Exception ex )
{
throw new Exception ( $"数据异常,同步终止.{ex.Message}" ) ;
}
}
#endregion
#region 悠 哉
//else if (label7.Text == "悠哉")
else if ( comboBoxEdit2 . SelectedIndex = = 3 )
{
if ( ! srcSession . TableExist < BackupAndImport . Entitys . 悠 哉 . member > ( ) ) throw new Exception ( @"导入会员数据失败,可能原因:会员信息执行过一次导入操作" ) ;
AddJindu ( "正在读取会员数据..." ) ;
var old_member_infos = srcSession . Find < BackupAndImport . Entitys . 悠 哉 . member > ( "select * from member where wxid != ''" ) ; //预导入的会员数据
if ( old_member_infos ! = null & & old_member_infos . Count ! = 0 )
{
if ( old_member_infos . Count > 0 ) AddJindu ( "导入会员数据中..." , old_member_infos . Count ) ;
var member_infos = session . Find < fl_member_info > ( "select * from fl_member_info" ) ; //现有的会员数据
var TBOrders = srcSession . Find < int > ( @"select userid from orders where orderstatus = '1' and userid is not null" , new { } ) ;
var PDDOrders = srcSession . Find < int > ( @"select userid from pddorders where orderstatus = '1' and userid is not null" , new { } ) ;
var JDOrders = srcSession . Find < int > ( @"select userid from jdorders where orderstatus = '1' and userid is not null" , new { } ) ;
List < fl_member_info > unMemberInfos = new List < fl_member_info > ( ) ; //保存不存在的用户对象
List < fl_member_info > memberInfos = new List < fl_member_info > ( ) ; //保存存在的用户对象
foreach ( var oldmember in old_member_infos )
{
var member = member_infos . FirstOrDefault ( f = > f . username = = oldmember . wxid & & f . robot_type = = ( oldmember . usertype = = 1 ? ChatType . 微 信 : ChatType . QQ ) ) ; //现有的集合中是否已经存在预导入的会员
long finishOrder = 0 ; //已完成订单数量
if ( TBOrders . Count ! = 0 ) //淘宝订单完成数
finishOrder + = TBOrders . Count ( f = > f = = oldmember . uid ) ;
if ( PDDOrders . Count ! = 0 ) //拼多多订单完成数
finishOrder + = PDDOrders . Count ( f = > f = = oldmember . uid ) ;
if ( JDOrders . Count ! = 0 ) //京东订单完成数
finishOrder + = JDOrders . Count ( f = > f = = oldmember . uid ) ;
double ticPoint = 0 ;
double sumPoint = 0 ;
oldmember . balance = ( oldmember . balance . ToString ( ) . ToLower ( ) . Contains ( "e-" ) ? null : oldmember . balance ) ;
double point = oldmember . balance = = null ? 0d : ( double ) oldmember . balance ;
if ( member = = null )
{
member = new fl_member_info ( )
{
crt_time = DateTime . Parse ( oldmember . regtime . Replace ( "/星期一" , "" ) . Replace ( "/星期二" , "" ) . Replace ( "/星期三" , "" ) . Replace ( "/星期四" , "" ) . Replace ( "/星期五" , "" ) . Replace ( "/星期六" , "" ) . Replace ( "/星期日" , "" ) ) ,
robot_type = ChatType . 微 信 , //oldmember.usertype = 1 为普通用户 2 为客户设置的vip用户
username = oldmember . wxid ,
usernick = oldmember . nickname . Replace ( "'" , "''" ) ,
cur_point = point ,
sum_point = sumPoint ,
ext_point = ticPoint ,
inviter_id = 0 ,
finish_order = finishOrder ,
bind_order = finishOrder ,
remark = string . Empty ,
robot_name = oldmember . usertype = = 1 ? comboBoxEdit3 . Text : comboBoxEdit1 . Text ,
alipay_name = string . Empty ,
alipay_num = string . Empty
} ;
var groups = session . FindGroups ( ) ;
if ( groups . Count ! = 0 )
member . group_id = groups [ 0 ] . id ;
unMemberInfos . Add ( member ) ;
}
else
{
member . cur_point = member . cur_point + point ;
member . ext_point = member . ext_point + ticPoint ;
member . sum_point = member . sum_point + sumPoint ;
member . finish_order = member . finish_order + finishOrder ;
member . bind_order = member . finish_order ;
member . remark = string . Empty ;
if ( string . IsNullOrWhiteSpace ( member . robot_name ) )
{
member . robot_name = member . robot_type = = ChatType . 微 信 ? comboBoxEdit3 . Text : comboBoxEdit1 . Text ;
//member.robot_name = comboBoxEdit3.Text;
//member.robot_type = ChatType.微信;
}
memberInfos . Add ( member ) ;
}
AddJindu ( ) ;
pkts . Add ( new PrimaryKeyTemp ( ) { NewId = member . id , UserName = oldmember . wxid , OldId = ( int ) oldmember . uid } ) ;
}
if ( unMemberInfos . Count ! = 0 )
session . Insertable ( unMemberInfos . ToArray ( ) ) . ExecuteCommand ( ) ;
if ( memberInfos . Count ! = 0 )
session . Updateable ( memberInfos . ToArray ( ) ) . ExecuteCommand ( ) ;
member_infos = session . Queryable < fl_member_info > ( ) . ToList ( ) ; //现有的会员数据
foreach ( var pkt in pkts )
pkt . NewId = member_infos . FirstOrDefault ( f = > f . username = = pkt . UserName ) . id ; //增加fl_member_info对应的id
var allRecIdMember = old_member_infos . Where ( f = > f . trjid ! = 0 ) . OrderBy ( f = > f . trjid ) . ThenBy ( f = > f . uid ) . ToList ( ) ; //2.获取预导入集合中所有有上级的用户.
if ( allRecIdMember ! = null & & allRecIdMember . Count ! = 0 )
{
AddJindu ( "绑定上下级关系中..." , allRecIdMember . Count ) ;
member_infos = session . Find < fl_member_info > ( "select * from fl_member_info" ) ; //现有的会员数据
foreach ( var item in allRecIdMember )
{
AddJindu ( ) ;
var value = pkts . FirstOrDefault ( f = > f . OldId = = item . uid ) ; //获取...
if ( value ! = null )
{
var oldmember = old_member_infos . FirstOrDefault ( f = > f . uid = = value . OldId ) ;
if ( oldmember ! = null )
{
var pkt = pkts . FirstOrDefault ( f = > f . OldId = = oldmember . trjid ) ; //通过对比老的id获取新的id值
if ( pkt ! = null )
{
var member = member_infos . FirstOrDefault ( f = > f . id = = value . NewId ) ;
if ( member ! = null & & member . inviter_id = = 0 )
{
member . inviter_id = pkt . NewId ; //赋值推荐人
session . SaveOrUpdate ( member ) ;
}
else
{ }
}
else
{ }
}
else
{ }
}
else
{ }
}
}
AddJindu ( "保存会员数据中.." ) ;
if ( label8 . Text . ToLower ( ) = = "sqlite" )
srcSession . ExcuteSQL ( "ALTER TABLE 'member' RENAME TO 'member_备份'" ) ;
else if ( label8 . Text . ToLower ( ) = = "mysql" )
srcSession . ExcuteSQL ( "ALTER TABLE member RENAME TO member_备份" ) ;
AddJindu ( "保存会员数据成功" ) ;
session . Commit ( ) ;
//this.Invoke(new Action(delegate
//{
// ShowSuccess($"会员数量预导入数据量:{old_member_infos.Count}条,成功导入:{old_member_infos.Count}");
//}));
return ;
}
else
throw new Exception ( @"导入会员数据失败,可能原因:选中数据库中会员数据为空" ) ;
}
#endregion
#region 猎 客
//else if (label7.Text == "猎客")
else if ( comboBoxEdit2 . SelectedIndex = = 5 )
{
try
{
if ( ! srcSession . TableExist < BackupAndImport . Entitys . lieke . Member > ( ) ) throw new Exception ( @"导入会员数据失败,可能原因:会员信息执行过一次导入操作" ) ; //检测表是否存在
//var member_infos = srcSession.Find<Member>("select * from Member"); //获取预导入表的所有数据
AddJindu ( "正在读取会员数据..." ) ;
var member_infos = srcSession . Queryable < BackupAndImport . Entitys . lieke . Member > ( ) . ToList ( ) ;
var current_member_infos = session . Find < fl_member_info > ( "select * from fl_member_info" ) ; //目标数据库中获取所有的会员数据
if ( member_infos . Count > 0 ) AddJindu ( "导入会员数据中..." , member_infos . Count ) ;
var TBuserNames = srcSession . Find < UserName > ( "select lkid from PaymentDetail where payStatusInfo = '订单结算'" , new { } ) ;
var JDuserNames = srcSession . Find < UserName > ( "select lkid from JDOrder where payStatusInfo = '已结算'" , new { } ) ;
var PDDuserNames = srcSession . Find < UserName > ( "select lkid from PddOrder where payStatusInfo = '已结算'" , new { } ) ;
List < fl_member_info > unMemberInfos = new List < fl_member_info > ( ) ; //保存不存在的用户对象
List < fl_member_info > memberInfos = new List < fl_member_info > ( ) ; //保存存在的用户对象
foreach ( var item in member_infos )
{
var user = current_member_infos . FirstOrDefault ( f = > f . username = = item . lkid & & f . robot_type = = ChatType . 微 信 ) ;
long finishOrder = 0 ; //已完成订单数量
if ( PDDuserNames . Count ! = 0 )
finishOrder + = PDDuserNames . Count ( f = > f . username = = item . lkid ) ;
if ( JDuserNames . Count ! = 0 )
finishOrder + = JDuserNames . Count ( f = > f . username = = item . lkid ) ;
if ( TBuserNames . Count ! = 0 )
finishOrder + = TBuserNames . Count ( f = > f . username = = item . lkid ) ;
if ( user = = null )
{
if ( item . lkid . Length > 30 )
continue ;
user = new fl_member_info ( )
{
username = item . lkid ,
robot_type = ChatType . 微 信 ,
usernick = item . usernick . Replace ( "'" , "''" ) ,
cur_point = item . ketixianMoney = = null ? 0.00 : ( double ) item . ketixianMoney ,
sum_point = item . yitixianMoney = = null ? 0.00 : ( double ) item . yitixianMoney ,
ext_point = 0 ,
finish_order = finishOrder ,
bind_order = finishOrder ,
robot_name = comboBoxEdit3 . Text ,
alipay_name = string . Empty ,
alipay_num = string . Empty ,
remark = string . Empty
} ;
var groups = session . FindGroups ( ) ;
if ( groups . Count ! = 0 )
user . group_id = groups [ 0 ] . id ;
unMemberInfos . Add ( user ) ;
AddJindu ( ) ;
}
else
{
user . cur_point = user . cur_point + ( item . ketixianMoney = = null ? 0.00 : ( double ) item . ketixianMoney ) ;
user . sum_point = user . sum_point + ( item . yitixianMoney = = null ? 0.00 : ( double ) item . yitixianMoney ) ;
user . ext_point = user . ext_point ;
user . finish_order = user . finish_order + finishOrder ;
user . bind_order = user . finish_order ;
if ( string . IsNullOrWhiteSpace ( user . robot_name ) )
{
user . robot_name = comboBoxEdit3 . Text ;
user . robot_type = ChatType . 微 信 ;
}
memberInfos . Add ( user ) ;
AddJindu ( ) ;
}
//session.SaveOrUpdate(user);
}
if ( unMemberInfos . Count ! = 0 )
session . Insertable ( unMemberInfos . ToArray ( ) ) . ExecuteCommand ( ) ;
if ( memberInfos . Count ! = 0 )
session . Updateable ( memberInfos . ToArray ( ) ) . ExecuteCommand ( ) ;
//绑定上下级
if ( member_infos ! = null & & member_infos . Count ! = 0 )
{
AddJindu ( "绑定上下级关系中..." , member_infos . Count ) ;
var newDbs = session . Find < fl_member_info > ( "select * from fl_member_info" ) ;
var old = srcSession . Find < GroupInvite > ( "select * from groupInvite" ) ;
foreach ( var item in newDbs )
{
AddJindu ( ) ;
if ( item . inviter_id ! = 0 ) continue ;
if ( old ! = null & & old . Count ! = 0 )
{
//Console.WriteLine($"{item.username},{item.usernick}");
var i = old . FirstOrDefault ( f = > f . inviteeLkid = = item . username ) ;
if ( i ! = null )
{
var inviter = newDbs . FirstOrDefault ( f = > f . username = = i . inviterLkid ) ; //找出上级账号
if ( inviter ! = null )
{
item . inviter_id = inviter . id ; //填写上级ID
session . SaveOrUpdate ( item ) ;
}
}
}
}
AddJindu ( "保存会员数据中.." ) ;
//srcSession.ExcuteSQL("ALTER TABLE 'Member' RENAME TO 'Member_备份'");
if ( label8 . Text . ToLower ( ) = = "sqlite" )
srcSession . ExcuteSQL ( "ALTER TABLE 'Member' RENAME TO 'Member_备份'" ) ;
else if ( label8 . Text . ToLower ( ) = = "mysql" )
srcSession . ExcuteSQL ( "ALTER TABLE Member RENAME TO Member_备份" ) ;
AddJindu ( "保存会员数据成功" ) ;
}
session . Commit ( ) ;
//this.Invoke(new Action(delegate
//{
// ShowSuccess($"会员数量预导入数据量:{member_infos.Count}条,成功导入:{member_infos.Count}");
//}));
return ;
}
catch ( Exception ex )
{
throw new Exception ( $"数据异常,同步终止.{ex.Message}" ) ;
}
}
#endregion
#region 淘 某 喵
//else if (label7.Text == "淘某喵")
else if ( comboBoxEdit2 . SelectedIndex = = 6 )
{
try
{
if ( ! srcSession . TableExist < members_46349 > ( ) ) throw new Exception ( @"导入会员数据失败,可能原因:会员信息执行过一次导入操作" ) ; //检测表是否存在
AddJindu ( "正在读取会员数据..." ) ;
var member_infos = srcSession . Queryable < members_46349 > ( ) . ToList ( ) ;
var current_member_infos = session . Find < fl_member_info > ( "select * from fl_member_info" ) ; //目标数据库中获取所有的会员数据
if ( member_infos . Count > 0 ) AddJindu ( "导入会员数据中..." , member_infos . Count ) ;
List < fl_member_info > unMemberInfos = new List < fl_member_info > ( ) ; //保存不存在的用户对象
List < fl_member_info > memberInfos = new List < fl_member_info > ( ) ; //保存存在的用户对象
//var tixian = decimal.Parse(session.FindTable(@"select uid,COALESCE(sum(point),0) from fl_point_hist where '2019-06-15 16:40:00' <= crt_time and crt_time <= '2019-06-16 15:00:00' and point < 0 and uid = @uid group by uid").Rows[0]["num"].ToString());
foreach ( var item in member_infos )
{
var user = current_member_infos . FirstOrDefault ( f = > f . username = = item . wxid & & f . robot_type = = ChatType . 微 信 ) ;
var coins = ( item . frozen_coins = = null ? 0d : ( double ) item . frozen_coins ) ;
if ( user = = null )
{
user = new fl_member_info ( )
{
username = item . wxid ,
robot_type = ChatType . 微 信 ,
usernick = item . name . Replace ( "'" , "''" ) ,
cur_point = item . coins = = null ? 0d + coins : ( double ) item . coins + coins ,
sum_point = 0d ,
ext_point = 0d ,
finish_order = item . purchase_volume = = null ? 0L : ( long ) item . purchase_volume ,
bind_order = item . purchase_volume = = null ? 0L : ( long ) item . purchase_volume ,
robot_name = comboBoxEdit3 . Text ,
alipay_name = string . Empty ,
alipay_num = string . Empty ,
remark = string . Empty
} ;
var groups = session . FindGroups ( ) ;
if ( groups . Count ! = 0 )
user . group_id = groups [ 0 ] . id ;
unMemberInfos . Add ( user ) ;
AddJindu ( ) ;
}
else
{
user . cur_point = ( double ) ( ( decimal ) user . cur_point + ( decimal ) ( item . coins = = null ? 0d + coins : ( double ) item . coins + coins ) ) ;
//user.sum_point = user.sum_point + (item.总提现金额 == null ? 0d : (double)item.总提现金额);
//user.ext_point = user.ext_point + (item.推广奖励 == null ? 0d : (double)item.推广奖励);
user . finish_order = user . finish_order + ( item . purchase_volume = = null ? 0L : ( long ) item . purchase_volume ) ;
user . bind_order = user . finish_order ;
if ( string . IsNullOrWhiteSpace ( user . robot_name ) )
{
user . robot_name = comboBoxEdit3 . Text ;
user . robot_type = ChatType . 微 信 ;
}
memberInfos . Add ( user ) ;
AddJindu ( ) ;
}
}
if ( unMemberInfos . Count ! = 0 )
session . Insertable ( unMemberInfos . ToArray ( ) ) . ExecuteCommand ( ) ;
if ( memberInfos . Count ! = 0 )
session . Updateable ( memberInfos . ToArray ( ) ) . ExecuteCommand ( ) ;
//绑定上下级
if ( member_infos ! = null & & member_infos . Count ! = 0 )
{
AddJindu ( "获取所有的上级信息..." ) ;
var superiors = member_infos . GroupBy ( f = > f . superior ) . Select ( f = > f . Key ) . Where ( f = > ! string . IsNullOrWhiteSpace ( f ) ) . ToList ( ) ;
current_member_infos = session . Find < fl_member_info > ( "select * from fl_member_info" ) ; //重新获取用户列表
Dictionary < string , long > inviters = new Dictionary < string , long > ( ) ; //上级用户微信号与对应的id
foreach ( var item in superiors )
{
var member = current_member_infos . FirstOrDefault ( f = > f . username = = item ) ;
if ( member ! = null )
inviters . Add ( item , member . id ) ;
}
AddJindu ( "获取的上级信息完毕" ) ;
AddJindu ( "整理的需要绑定上级的用户..." ) ;
var wantBindInviterMembers = member_infos . Where ( f = > ! string . IsNullOrWhiteSpace ( f . superior ) ) . ToList ( ) ; //需要绑定上级的用户
AddJindu ( "需要绑定上级的用户整理完毕" ) ;
AddJindu ( "绑定上下级关系中..." , wantBindInviterMembers . Count ) ;
foreach ( var item in wantBindInviterMembers )
{
var member = current_member_infos . FirstOrDefault ( f = > f . username = = item . wxid ) ;
if ( member ! = null & & member . inviter_id = = 0 )
{
if ( inviters . ContainsKey ( item . superior ) )
{
member . inviter_id = inviters [ item . superior ] ;
session . Updateable ( member ) . ExecuteCommand ( ) ;
}
}
AddJindu ( ) ;
}
AddJindu ( "保存会员数据中.." ) ;
srcSession . ExcuteSQL ( "ALTER TABLE 'members_46349' RENAME TO 'members_46349_备份'" ) ;
AddJindu ( "保存会员数据成功" ) ;
}
session . Commit ( ) ;
return ;
}
catch ( Exception ex )
{
throw new Exception ( $"数据异常,同步终止.{ex.Message}" ) ;
}
}
#endregion
#region 安 娜 儿 云 控 版
//else if (label7.Text == "安娜尔云控版")
else if ( comboBoxEdit2 . SelectedIndex = = 7 )
{
try
{
if ( ! srcSession . TableExist < BackupAndImport . Entitys . annaer_cloud . member > ( ) ) throw new Exception ( @"导入会员数据失败,可能原因:会员信息执行过一次导入操作" ) ; //检测表是否存在
AddJindu ( "正在读取会员数据..." ) ;
var member_infos = srcSession . Queryable < BackupAndImport . Entitys . annaer_cloud . member > ( ) . ToList ( ) ;
var current_member_infos = session . Find < fl_member_info > ( "select * from fl_member_info" ) ; //目标数据库中获取所有的会员数据
if ( member_infos . Count > 0 ) AddJindu ( "导入会员数据中..." , member_infos . Count ) ;
List < fl_member_info > unMemberInfos = new List < fl_member_info > ( ) ; //保存不存在的用户对象
List < fl_member_info > memberInfos = new List < fl_member_info > ( ) ; //保存存在的用户对象
//var tixian = decimal.Parse(session.FindTable(@"select uid,COALESCE(sum(point),0) from fl_point_hist where '2019-06-15 16:40:00' <= crt_time and crt_time <= '2019-06-16 15:00:00' and point < 0 and uid = @uid group by uid").Rows[0]["num"].ToString());
foreach ( var item in member_infos )
{
var user = current_member_infos . FirstOrDefault ( f = > f . username = = item . wxid & & f . robot_type = = ChatType . 微 信 ) ;
if ( user = = null )
{
user = new fl_member_info ( )
{
username = item . wxid ,
robot_type = ChatType . 微 信 ,
usernick = item . wx_name . Replace ( "'" , "''" ) ,
cur_point = item . ktx_money ,
sum_point = item . ztx_money ,
ext_point = item . royalty_total , //推广奖励,
finish_order = item . zcg_number ,
bind_order = item . zcg_number ,
robot_name = comboBoxEdit3 . Text ,
alipay_name = string . Empty ,
alipay_num = string . Empty ,
remark = string . Empty
} ;
var groups = session . FindGroups ( ) ;
if ( groups . Count ! = 0 )
user . group_id = groups [ 0 ] . id ;
unMemberInfos . Add ( user ) ;
AddJindu ( ) ;
}
else
{
user . cur_point = ( double ) ( ( decimal ) user . cur_point + ( decimal ) item . ktx_money ) ;
user . sum_point = user . sum_point + item . ztx_money ;
user . ext_point = user . ext_point + item . royalty_total ;
user . finish_order = user . finish_order + item . zcg_number ;
user . bind_order = user . finish_order ;
if ( string . IsNullOrWhiteSpace ( user . robot_name ) )
{
user . robot_name = comboBoxEdit3 . Text ;
user . robot_type = ChatType . 微 信 ;
}
memberInfos . Add ( user ) ;
AddJindu ( ) ;
}
}
if ( unMemberInfos . Count ! = 0 )
session . Insertable ( unMemberInfos . ToArray ( ) ) . ExecuteCommand ( ) ;
if ( memberInfos . Count ! = 0 )
session . Updateable ( memberInfos . ToArray ( ) ) . ExecuteCommand ( ) ;
//绑定上下级
if ( member_infos ! = null & & member_infos . Count ! = 0 )
{
AddJindu ( "绑定上下级关系中..." , member_infos . Count ) ;
var newDbs = session . Queryable < fl_member_info > ( ) . ToList ( ) ;
//var old = srcSession.Find<fission>("select * from fission");
var old = srcSession . Queryable < BackupAndImport . Entitys . annaer_cloud . fission > ( ) . ToList ( ) ;
foreach ( var item in old )
{
var new_user = newDbs . FirstOrDefault ( f = > f . username = = item . xj_wxid ) ;
if ( new_user ! = null & & new_user . inviter_id = = 0 )
{
var inviter = newDbs . FirstOrDefault ( f = > f . username = = item . sj_wxid ) ; //找出上级账号
if ( inviter ! = null )
{
new_user . inviter_id = inviter . id ; //填写上级ID
2022-10-10 07:15:51 +00:00
//session.Updateable<fl_member_info>(new { inviter_id = inviter.id }).Where(f => f.id == new_user.id).ExecuteCommand();
session . Updateable ( new_user ) ;
2022-09-29 10:35:00 +00:00
}
}
AddJindu ( ) ;
}
AddJindu ( "保存会员数据中.." ) ;
try
{
srcSession . ExcuteSQL ( "ALTER TABLE 'member' RENAME TO 'member_2_备份'" ) ;
}
catch ( Exception )
{ }
AddJindu ( "保存会员数据成功" ) ;
}
session . Commit ( ) ;
return ;
}
catch ( Exception ex )
{
throw new Exception ( $"数据异常,同步终止.{ex.Message}" ) ;
}
}
#endregion
}
catch ( Exception ex )
{
base . UpdateUI ( ( ) = > { label31 . Text = "导入会员数据失败!" ; } ) ;
session . Rollback ( ) ;
throw ex ;
}
}
}
catch ( Exception ex )
{
throw ex ;
}
}
/// <summary>
/// 同步绑定淘宝订单数据
/// </summary>
public void SynchronousBindTBOrderData ( )
{
try
{
if ( checkBox2 . Checked ) //淘宝订单同步
{
var srcSession = ApiClient . GetSession ( conn . tempConfig , false ) ;
var session = ApiClient . GetSession ( ) ;
session . BeginTransaction ( ) ;
try
{
#region AliTools
//if (label7.Text == "AliTools")
if ( comboBoxEdit2 . SelectedIndex = = 1 )
{
#region 淘 宝
string sql = string . Empty ;
AddJindu ( "正在读取淘宝订单到缓存..." ) ;
//if (!srcSession.TableExist<Entitys.alitools.MemberInfo>())
// sql = "select username,orderid,status,endTime from AliOrder a inner join MemberInfo_备份 m on a.userid = m.id GROUP BY orderid";
//else
// sql = "select username,orderid,status,endTime from AliOrder a inner join MemberInfo m on a.userid = m.id GROUP BY orderid";
//var aliOrders = srcSession.Find<BackupAndImport.Entitys.alitools.AliOrder>(sql);
if ( ! srcSession . TableExist < Entitys . alitools . MemberInfo > ( ) )
sql = "select username,orderid,status,endTime from AliOrder a inner join MemberInfo_备份 m on a.userid = m.id GROUP BY username,orderid" ;
else
sql = "select username,orderid,status,endTime from AliOrder a inner join MemberInfo m on a.userid = m.id GROUP BY username,orderid" ;
var aliOrders = srcSession . Find < BackupAndImport . Entitys . alitools . AliOrder > ( sql ) ;
if ( aliOrders ! = null & & aliOrders . Count ! = 0 )
{
var unBinds = session . Find < fl_order_alimama > ( "select * from fl_order_alimama where db_userid = 0" ) ; //所有没有绑定的订单
if ( unBinds ! = null & & unBinds . Count ! = 0 )
{
var userId = session . Find < UserId > ( "select id,username from fl_member_info" , new { } ) ; //所有 fl_member_info 用户id 和 username
AddJindu ( "正在绑定订单..." , unBinds . Count ) ;
foreach ( var item in unBinds )
{
var result = aliOrders . FirstOrDefault ( f = > f . orderid = = item . trade_parent_id ) ;
//EventClient.OnEvent(this,$"找到订单-{item.trade_parent_id}");
if ( result ! = null )
{
try
{
var user = userId . FirstOrDefault ( f = > f . username = = result . username ) ; //fl_member_info 查询用户信息
//EventClient.OnEvent(this, $"找到用户-{item.trade_parent_id}");
if ( user ! = null )
{
item . db_userid = user . id ;
if ( ! item . IsFinish ( ) )
{
SystemOrderStatus enumOne = ( SystemOrderStatus ) Enum . Parse ( typeof ( SystemOrderStatus ) , result . status ) ;
item . db_status = enumOne ;
item . db_endtime = DateTime . Parse ( result . endtime ) ;
var member = session . FindMemberInfoById ( user . id ) ;
if ( member ! = null )
{
item . db_robotname = member . robot_type = = ChatType . 微 信 ? comboBoxEdit3 . Text : comboBoxEdit1 . Text ;
item . db_robottype = member . robot_type ;
}
}
else
{
if ( string . IsNullOrWhiteSpace ( item . db_robotname ) )
{
var member = session . FindMemberInfoById ( user . id ) ;
if ( member ! = null )
{
item . db_robotname = member . robot_type = = ChatType . 微 信 ? comboBoxEdit3 . Text : comboBoxEdit1 . Text ;
item . db_robottype = member . robot_type ;
}
}
}
session . SaveOrUpdate ( item ) ;
}
}
catch ( Exception )
{
}
}
Thread . Sleep ( 2 ) ;
AddJindu ( ) ;
}
}
}
AddJindu ( "订单绑定执行完毕" ) ;
#endregion
session . Commit ( ) ;
}
#endregion
#region 安 娜 儿
//else if (label7.Text == "安娜尔")
else if ( comboBoxEdit2 . SelectedIndex = = 2 )
{
#region 淘 宝
AddJindu ( "正在读取订单到缓存..." ) ;
var bindCaches = srcSession . Find < BindCache > ( "select 订单编号 as orderid,对应ID as username,状态 as status from 订单管理 where 类目 = '淘宝' GROUP BY 订单编号" ) ;
if ( bindCaches ! = null & & bindCaches . Count ! = 0 )
{
var unBinds = session . Find < fl_order_alimama > ( "select * from fl_order_alimama where db_userid = 0" ) ;
if ( unBinds ! = null & & unBinds . Count ! = 0 )
{
AddJindu ( "正在绑定订单..." , unBinds . Count ) ;
var userIds = session . Find < UserId > ( "select id,username from fl_member_info" , new { } ) ;
foreach ( var item in unBinds )
{
AddJindu ( ) ;
var result = bindCaches . FirstOrDefault ( f = > f . orderid = = item . trade_parent_id ) ;
if ( result ! = null )
{
var user = userIds . FirstOrDefault ( f = > f . username = = result . username ) ;
if ( user ! = null )
item . db_userid = user . id ;
if ( item . db_status = = SystemOrderStatus . 订 单 冻 结 )
{
if ( result . status = = "交易成功" | | result . status = = "等待收货" )
{
item . db_status = SystemOrderStatus . 订 单 结 算 ;
item . db_endtime = DateTime . Now . AddDays ( - 1 ) ;
item . tk_status = 3 ;
}
}
if ( string . IsNullOrWhiteSpace ( item . db_robotname ) )
{
item . db_robotname = comboBoxEdit3 . Text ;
item . db_robottype = ChatType . 微 信 ;
}
session . SaveOrUpdate ( item ) ;
}
}
session . ExcuteSQL ( "update fl_order_alimama set db_status = 1002,tk_status = 3,db_endtime = @endtime where db_status = 1001 and db_userid = 0" , new { endtime = DateTime . Now . AddDays ( - 2 ) } ) ;
}
}
#endregion
#region 拼 多 多
AddJindu ( "正在读取拼多多订单到缓存..." ) ;
var pddBindCaches = srcSession . Find < BindCache > ( "select 订单编号 as orderid,对应ID as username,状态 as status from 订单管理 where 类目 = '拼多多' GROUP BY 订单编号" ) ;
if ( pddBindCaches ! = null & & pddBindCaches . Count ! = 0 )
{
var unBinds = session . Find < fl_order_pinduoduo > ( "select * from fl_order_pinduoduo where db_userid = 0" ) ;
if ( unBinds ! = null & & unBinds . Count ! = 0 )
{
AddJindu ( "正在绑定拼多多订单..." , unBinds . Count ) ;
var userids = session . Find < UserId > ( "select id,username from fl_member_info" , new { } ) ;
foreach ( var item in unBinds )
{
AddJindu ( ) ;
var result = pddBindCaches . FirstOrDefault ( f = > f . orderid = = item . order_sn ) ;
if ( result ! = null )
{
var user = userids . FirstOrDefault ( f = > f . username = = result . username ) ;
if ( user ! = null )
item . db_userid = user . id ;
if ( item . db_status = = SystemOrderStatus . 订 单 冻 结 )
{
if ( result . status = = "交易成功" | | result . status = = "等待收货" )
{
item . db_status = SystemOrderStatus . 订 单 结 算 ;
item . db_endtime = DateTime . Now . AddDays ( - 1 ) ;
item . order_status = 2 ;
}
}
if ( string . IsNullOrWhiteSpace ( item . db_robotname ) )
{
item . db_robotname = comboBoxEdit3 . Text ;
item . db_robottype = ChatType . 微 信 ;
}
session . SaveOrUpdate ( item ) ;
}
}
session . ExcuteSQL ( "update fl_order_pinduoduo set db_status = 1002,order_status = 2,db_endtime = @endtime where db_status = 1001 and db_userid = 0" , new { endtime = DateTime . Now . AddDays ( - 2 ) } ) ;
}
}
#endregion
#region 京 东
AddJindu ( "正在读取京东订单到缓存..." ) ;
var jdBindCaches = srcSession . Find < BindCache > ( "select 订单编号 as orderid,对应ID as username,状态 as status from 订单管理 where 类目 = '京东' GROUP BY 订单编号" ) ;
if ( jdBindCaches ! = null & & jdBindCaches . Count ! = 0 )
{
var unBinds = session . Find < fl_order_jingdong > ( "select * from fl_order_jingdong where db_userid = 0" ) ;
if ( unBinds ! = null & & unBinds . Count ! = 0 )
{
AddJindu ( "正在绑定订单..." , unBinds . Count ) ;
var userIds = session . Find < UserId > ( "select id,username from fl_member_info" , new { } ) ;
foreach ( var item in unBinds )
{
AddJindu ( ) ;
var result = jdBindCaches . FirstOrDefault ( f = > f . orderid = = item . orderId . ToString ( ) ) ;
if ( result ! = null )
{
var user = userIds . FirstOrDefault ( f = > f . username = = result . username ) ;
if ( user ! = null )
item . db_userid = user . id ;
if ( item . db_status = = SystemOrderStatus . 订 单 冻 结 )
{
if ( result . status = = "交易成功" | | result . status = = "等待收货" )
{
item . db_status = SystemOrderStatus . 订 单 结 算 ;
item . db_endtime = DateTime . Now . AddDays ( - 1 ) ;
item . validCode = 17 ;
}
}
if ( string . IsNullOrWhiteSpace ( item . db_robotname ) )
{
item . db_robotname = comboBoxEdit3 . Text ;
item . db_robottype = ChatType . 微 信 ;
}
session . SaveOrUpdate ( item ) ;
}
}
session . ExcuteSQL ( "update fl_order_jingdong set db_status = 1002,validCode = 17,db_endtime = @endtime where db_status = 1001 and db_userid = 0" , new { endtime = DateTime . Now . AddDays ( - 2 ) } ) ;
}
}
#endregion
AddJindu ( "订单绑定执行完毕" ) ;
session . Commit ( ) ;
}
#endregion
#region 悠 哉
//else if (label7.Text == "悠哉")
else if ( comboBoxEdit2 . SelectedIndex = = 3 )
{
#region 淘 宝
AddJindu ( "正在读取淘宝订单到缓存..." ) ;
string sql = string . Empty ;
var aliOrders = srcSession . Find < AliOrder > ( "select wxid as username,orderno as orderid,orderstatus as status,accountdt as endtime from orders where wxid is not null GROUP BY orderno" ) ;
var users = session . Find < UserId > ( "select id,username from fl_member_info" , new { } ) ;
if ( aliOrders ! = null & & aliOrders . Count ! = 0 )
{
var unBinds = session . Find < fl_order_alimama > ( "select * from fl_order_alimama where db_userid = 0" ) ;
if ( unBinds ! = null & & unBinds . Count ! = 0 )
{
AddJindu ( "正在绑定淘宝订单..." , unBinds . Count ) ;
foreach ( var item in unBinds )
{
AddJindu ( ) ;
var result = aliOrders . FirstOrDefault ( f = > f . orderid = = item . trade_parent_id ) ;
if ( result ! = null )
{
var user = users . FirstOrDefault ( f = > f . username = = result . username ) ;
if ( user ! = null )
item . db_userid = user . id ;
/ *
订 单 创 建 = 1006 ,
订 单 付 款 = 1005 ,
订 单 失 效 = 1004 ,
订 单 退 款 = 1003 ,
订 单 结 算 = 1002 ,
订 单 冻 结 = 1001 ,
订 单 未 知 = - 99
- - - - - - - - - - - - - - - - - - - - - - - - -
0 付 款
1 结 算
2 失 效
3 退 款
* /
int status = - 1 ;
int tk_status = - 1 ;
if ( ! string . IsNullOrEmpty ( result . endtime ) & & result . status = = 1 )
{
if ( DateTime . Parse ( result . endtime ) < = DateTime . Now )
status = 1002 ;
else
status = 1001 ;
tk_status = 3 ;
}
if ( result . status = = 0 )
{
status = 1005 ;
tk_status = 12 ;
}
else if ( result . status = = 2 )
{
status = 1004 ;
tk_status = 13 ;
}
else if ( result . status = = 3 )
{
status = 1003 ;
tk_status = 3 ;
}
SystemOrderStatus enumOne = ( SystemOrderStatus ) Enum . ToObject ( typeof ( SystemOrderStatus ) , status ) ;
item . db_status = enumOne ;
item . db_endtime = string . IsNullOrEmpty ( result . endtime ) ? DateTime . MinValue : DateTime . Parse ( result . endtime ) ;
item . tk_status = tk_status ;
if ( string . IsNullOrWhiteSpace ( item . db_robotname ) & & user ! = null )
{
var member = session . FindMemberInfoById ( user . id ) ;
if ( member ! = null )
{
item . db_robotname = member . robot_type = = ChatType . 微 信 ? comboBoxEdit3 . Text : comboBoxEdit1 . Text ;
item . db_robottype = member . robot_type ;
}
}
session . SaveOrUpdate ( item ) ;
}
}
session . ExcuteSQL ( "update fl_order_alimama set db_status = 1002,tk_status = 3,db_endtime = @endtime where db_status = 1001 and db_userid = 0" , new { endtime = DateTime . Now . AddDays ( - 2 ) } ) ;
}
}
#endregion
#region 拼 多 多
AddJindu ( "正在读取拼多多订单到缓存..." ) ;
var pddOrders = srcSession . Find < AliOrder > ( "select wxid as username,ordersn as orderid,orderstatus as status,accountdt as endtime from pddorders where wxid is not null GROUP BY ordersn" ) ;
if ( pddOrders ! = null & & pddOrders . Count ! = 0 )
{
var unBinds = session . Find < fl_order_pinduoduo > ( "select * from fl_order_pinduoduo where db_userid = 0" ) ;
if ( unBinds ! = null & & unBinds . Count ! = 0 )
{
AddJindu ( "正在绑定拼多多订单..." , unBinds . Count ) ;
foreach ( var item in unBinds )
{
AddJindu ( ) ;
var result = pddOrders . FirstOrDefault ( f = > f . orderid = = item . order_sn ) ;
if ( result ! = null )
{
//var value = session.FindRow("select id from fl_member_info where username = @username", new { username = result.username });
var user = users . FirstOrDefault ( f = > f . username = = result . username ) ;
if ( user ! = null )
item . db_userid = user . id ;
/ *
订 单 创 建 = 1006 ,
订 单 付 款 = 1005 ,
订 单 失 效 = 1004 ,
订 单 退 款 = 1003 ,
订 单 结 算 = 1002 ,
订 单 冻 结 = 1001 ,
订 单 未 知 = - 99
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
0 付 款
1 结 算
2 失 效
3 退 款
* /
int status = - 1 ;
int order_status = - 1 ;
if ( ! string . IsNullOrEmpty ( result . endtime ) & & result . status = = 1 )
{
if ( DateTime . Parse ( result . endtime ) < = DateTime . Now )
status = 1002 ;
else
status = 1001 ;
order_status = 2 ;
}
if ( result . status = = 0 )
{
status = 1005 ;
order_status = 1 ;
}
else if ( result . status = = 2 )
{
status = 1004 ;
order_status = 4 ;
}
else if ( result . status = = 3 )
{
status = 1003 ;
order_status = 2 ;
}
SystemOrderStatus enumOne = ( SystemOrderStatus ) Enum . ToObject ( typeof ( SystemOrderStatus ) , status ) ;
item . db_status = enumOne ;
item . db_endtime = string . IsNullOrEmpty ( result . endtime ) ? DateTime . MinValue : DateTime . Parse ( result . endtime ) ;
item . order_status = order_status ;
if ( string . IsNullOrWhiteSpace ( item . db_robotname ) & & user ! = null )
{
var member = session . FindMemberInfoById ( user . id ) ;
if ( member ! = null )
{
item . db_robotname = member . robot_type = = ChatType . 微 信 ? comboBoxEdit3 . Text : comboBoxEdit1 . Text ;
item . db_robottype = member . robot_type ;
}
}
session . SaveOrUpdate ( item ) ;
}
}
session . ExcuteSQL ( "update fl_order_pinduoduo set db_status = 1002,order_status = 2,db_endtime = @endtime where db_status = 1001 and db_userid = 0" , new { endtime = DateTime . Now . AddDays ( - 2 ) } ) ;
}
}
#endregion
#region 京 东
AddJindu ( "正在读取京东订单到缓存..." ) ;
var jdBindTBCaches = srcSession . Find < AliOrder > ( "select ordersn as orderid,wxid as username from jdorders where wxid is not null GROUP BY ordersn" ) ;
if ( jdBindTBCaches ! = null & & jdBindTBCaches . Count ! = 0 )
{
var unBinds = session . Find < fl_order_jingdong > ( "select * from fl_order_jingdong where db_userid = 0" ) ;
if ( unBinds ! = null & & unBinds . Count ! = 0 )
{
AddJindu ( "正在绑定订单..." , unBinds . Count ) ;
var userIds = session . Find < UserId > ( "select id,username from fl_member_info" , new { } ) ;
foreach ( var item in unBinds )
{
AddJindu ( ) ;
var result = jdBindTBCaches . FirstOrDefault ( f = > f . orderid = = item . orderId . ToString ( ) ) ;
if ( result ! = null )
{
var user = userIds . FirstOrDefault ( f = > f . username = = result . username ) ;
if ( user ! = null )
item . db_userid = user . id ;
/ *
订 单 创 建 = 1006 ,
订 单 付 款 = 1005 ,
订 单 失 效 = 1004 ,
订 单 退 款 = 1003 ,
订 单 结 算 = 1002 ,
订 单 冻 结 = 1001 ,
订 单 未 知 = - 99
- - - - - - - - - - - - - - - - - - - -
0 付 款
1 结 算
2 失 效
3 退 款
* /
int status = - 1 ;
int validCode = - 1 ;
if ( ! string . IsNullOrEmpty ( result . endtime ) & & result . status = = 1 )
{
if ( DateTime . Parse ( result . endtime ) < = DateTime . Now )
status = 1002 ;
else
status = 1001 ;
validCode = 17 ;
}
if ( result . status = = 0 )
{
status = 1005 ;
validCode = 15 ;
}
else if ( result . status = = 2 )
{
status = 1004 ;
validCode = 3 ;
}
else if ( result . status = = 3 )
{
status = 1003 ;
validCode = 17 ;
}
SystemOrderStatus enumOne = ( SystemOrderStatus ) Enum . ToObject ( typeof ( SystemOrderStatus ) , status ) ;
item . db_status = enumOne ;
item . db_endtime = string . IsNullOrEmpty ( result . endtime ) ? DateTime . MinValue : DateTime . Parse ( result . endtime ) ;
item . validCode = validCode ;
if ( string . IsNullOrWhiteSpace ( item . db_robotname ) & & user ! = null )
{
var member = session . FindMemberInfoById ( user . id ) ;
if ( member ! = null )
{
item . db_robotname = member . robot_type = = ChatType . 微 信 ? comboBoxEdit3 . Text : comboBoxEdit1 . Text ;
item . db_robottype = member . robot_type ;
}
}
session . SaveOrUpdate ( item ) ;
}
}
session . ExcuteSQL ( "update fl_order_jingdong set db_status = 1002,validCode = 17,db_endtime = @endtime where db_status = 1001 and db_userid = 0" , new { endtime = DateTime . Now . AddDays ( - 2 ) } ) ;
}
}
#endregion
AddJindu ( "订单绑定执行完毕" ) ;
session . Commit ( ) ;
}
#endregion
#region 速 推 客
//else if (label7.Text == "速推客")
else if ( comboBoxEdit2 . SelectedIndex = = 4 )
{
#region 淘 宝
AddJindu ( "正在读取淘宝订单到缓存..." ) ;
var bindTBCaches = srcSession . Find < BindCache > ( "select 订单ID as orderid,ID as username,订单状态 as status from 订单管理 where 类目 = '淘宝' GROUP BY 订单ID" ) ;
if ( bindTBCaches ! = null & & bindTBCaches . Count ! = 0 )
{
var unBinds = session . Find < fl_order_alimama > ( "select * from fl_order_alimama where db_userid = 0" ) ;
if ( unBinds ! = null & & unBinds . Count ! = 0 )
{
AddJindu ( "正在绑定淘宝订单..." , unBinds . Count ) ;
var userids = session . Find < UserId > ( "select id,username from fl_member_info" , new { } ) ;
List < GZH > GZHs = new List < GZH > ( ) ;
if ( srcSession . TableExist ( "会员信息" ) | | srcSession . TableExist ( "会员信息_备份" ) )
{
GZHs = srcSession . Find < GZH > ( "select ID,公众号ID from 会员信息_备份 where 公众号ID != \"\"" ) ;
}
foreach ( var item in unBinds )
{
AddJindu ( ) ;
var result = bindTBCaches . FirstOrDefault ( f = > f . orderid = = item . trade_parent_id ) ;
if ( result ! = null )
{
var user = userids . FirstOrDefault ( f = > f . username = = result . username ) ;
if ( user = = null ) //速推客用公总号ID绑定
{
var gzh = GZHs . FirstOrDefault ( f = > f . 公 众 号 ID = = result . username ) ;
if ( gzh ! = null )
{
user = userids . FirstOrDefault ( f = > f . username = = gzh . ID ) ;
}
}
if ( user ! = null )
item . db_userid = user . id ;
if ( item . db_status = = SystemOrderStatus . 订 单 冻 结 )
{
if ( result . status = = "订单结算" )
{
item . db_status = SystemOrderStatus . 订 单 结 算 ;
item . db_endtime = DateTime . Now . AddHours ( - 2 ) ;
item . tk_status = 3 ;
}
}
if ( string . IsNullOrWhiteSpace ( item . db_robotname ) )
{
item . db_robotname = comboBoxEdit3 . Text ;
item . db_robottype = ChatType . 微 信 ;
}
session . SaveOrUpdate ( item ) ;
}
}
session . ExcuteSQL ( "update fl_order_alimama set db_status = 1002,tk_status = 3,db_endtime = @endtime where db_status = 1001 and db_userid = 0" , new { endtime = DateTime . Now . AddDays ( - 2 ) } ) ;
}
}
#endregion
#region 拼 多 多
AddJindu ( "正在读取拼多多订单到缓存..." ) ;
var bindPDDCaches = srcSession . Find < BindCache > ( "select 订单ID as orderid,ID as username,订单状态 as status from 订单管理 where 类目 = '拼多多' GROUP BY 订单ID" ) ;
if ( bindPDDCaches ! = null & & bindPDDCaches . Count ! = 0 )
{
var unBinds = session . Find < fl_order_pinduoduo > ( "select * from fl_order_pinduoduo where db_userid = 0" ) ;
if ( unBinds ! = null & & unBinds . Count ! = 0 )
{
AddJindu ( "正在拼多多绑定订单..." , unBinds . Count ) ;
var userids = session . Find < UserId > ( "select id,username from fl_member_info" , new { } ) ;
foreach ( var item in unBinds )
{
AddJindu ( ) ;
var result = bindPDDCaches . FirstOrDefault ( f = > f . orderid = = item . order_sn ) ;
if ( result ! = null )
{
var user = userids . FirstOrDefault ( f = > f . username = = result . username ) ;
if ( user ! = null )
item . db_userid = user . id ;
if ( item . db_status = = SystemOrderStatus . 订 单 冻 结 )
{
if ( result . status = = "订单结算" )
{
item . db_status = SystemOrderStatus . 订 单 结 算 ;
item . db_endtime = DateTime . Now . AddHours ( - 2 ) ;
item . order_status = 2 ;
}
}
if ( string . IsNullOrWhiteSpace ( item . db_robotname ) )
{
item . db_robotname = comboBoxEdit3 . Text ;
item . db_robottype = ChatType . 微 信 ;
}
session . SaveOrUpdate ( item ) ;
}
}
session . ExcuteSQL ( "update fl_order_pinduoduo set db_status = 1002,order_status = 2,db_endtime = @endtime where db_status = 1001 and db_userid = 0" , new { endtime = DateTime . Now . AddDays ( - 2 ) } ) ;
}
}
#endregion
#region 京 东
AddJindu ( "正在读取京东订单到缓存..." ) ;
var jdBindTBCaches = srcSession . Find < BindCache > ( "select 订单ID as orderid,ID as username,订单状态 as status from 订单管理 where 类目 = '京东' GROUP BY 订单ID" ) ;
if ( jdBindTBCaches ! = null & & jdBindTBCaches . Count ! = 0 )
{
var unBinds = session . Find < fl_order_jingdong > ( "select * from fl_order_jingdong where db_userid = 0" ) ;
if ( unBinds ! = null & & unBinds . Count ! = 0 )
{
AddJindu ( "正在京东绑定订单..." , unBinds . Count ) ;
var userids = session . Find < UserId > ( "select id,username from fl_member_info" , new { } ) ;
List < GZH > GZHs = new List < GZH > ( ) ;
if ( srcSession . TableExist ( "会员信息" ) | | srcSession . TableExist ( "会员信息_备份" ) )
{
GZHs = srcSession . Find < GZH > ( "select ID,公众号ID from 会员信息_备份 where 公众号ID != \"\"" ) ;
}
foreach ( var item in unBinds )
{
AddJindu ( ) ;
var result = jdBindTBCaches . FirstOrDefault ( f = > f . orderid = = item . orderId . ToString ( ) ) ;
if ( result ! = null )
{
var user = userids . FirstOrDefault ( f = > f . username = = result . username ) ;
if ( user = = null ) //速推客用公总号ID绑定
{
var gzh = GZHs . FirstOrDefault ( f = > f . 公 众 号 ID = = result . username ) ;
if ( gzh ! = null )
{
user = userids . FirstOrDefault ( f = > f . username = = gzh . ID ) ;
}
}
if ( user ! = null )
item . db_userid = user . id ;
if ( item . db_status = = SystemOrderStatus . 订 单 冻 结 )
{
if ( result . status = = "订单结算" )
{
item . db_status = SystemOrderStatus . 订 单 结 算 ;
item . db_endtime = DateTime . Now . AddHours ( - 2 ) ;
item . validCode = 17 ;
}
}
if ( string . IsNullOrWhiteSpace ( item . db_robotname ) )
{
item . db_robotname = comboBoxEdit3 . Text ;
item . db_robottype = ChatType . 微 信 ;
}
session . SaveOrUpdate ( item ) ;
}
}
session . ExcuteSQL ( "update fl_order_jingdong set db_status = 1002,validCode = 17,db_endtime = @endtime where db_status = 1001 and db_userid = 0" , new { endtime = DateTime . Now . AddDays ( - 2 ) } ) ;
}
//session.Commit();
//this.Invoke(new Action(delegate
//{
// ShowSuccess($"速推客 - 淘宝订单绑定完成");
//}));
}
#endregion
AddJindu ( "订单绑定执行完毕" ) ;
session . Commit ( ) ;
}
#endregion
#region 猎 客
//else if (label7.Text == "猎客")
else if ( comboBoxEdit2 . SelectedIndex = = 5 )
{
#region 淘 宝
AddJindu ( "正在读取淘宝订单到缓存..." ) ;
var bindTBCaches = srcSession . Find < BindCache > ( "select taobaoTradeParentId as orderid,lkid as username,payStatusInfo as status from PaymentDetail where lkid is not null GROUP BY taobaoTradeParentId" ) ;
if ( bindTBCaches ! = null & & bindTBCaches . Count ! = 0 )
{
var unBinds = session . Find < fl_order_alimama > ( "select * from fl_order_alimama where db_userid = 0" ) ;
if ( unBinds ! = null & & unBinds . Count ! = 0 )
{
AddJindu ( "正在淘宝绑定订单..." , unBinds . Count ) ;
var userIds = session . Find < UserId > ( "select id,username from fl_member_info" , new { } ) ;
foreach ( var item in unBinds )
{
AddJindu ( ) ;
var result = bindTBCaches . FirstOrDefault ( f = > f . orderid = = item . trade_parent_id ) ;
if ( result ! = null )
{
var user = userIds . FirstOrDefault ( f = > f . username = = result . username ) ;
if ( user ! = null )
item . db_userid = user . id ;
if ( item . db_status = = SystemOrderStatus . 订 单 冻 结 )
{
if ( result . status = = "订单结算" )
{
item . db_status = SystemOrderStatus . 订 单 结 算 ;
item . db_endtime = DateTime . Now . AddHours ( - 2 ) ;
item . tk_status = 3 ;
}
}
if ( string . IsNullOrWhiteSpace ( item . db_robotname ) )
{
item . db_robotname = comboBoxEdit3 . Text ;
item . db_robottype = ChatType . 微 信 ;
}
session . SaveOrUpdate ( item ) ;
}
}
session . ExcuteSQL ( "update fl_order_alimama set db_status = 1002,tk_status = 3,db_endtime = @endtime where db_status = 1001 and db_userid = 0" , new { endtime = DateTime . Now . AddDays ( - 2 ) } ) ;
}
}
#endregion
#region 拼 多 多
AddJindu ( "正在读取拼多多订单到缓存..." ) ;
var bindPDDCaches = srcSession . Find < BindCache > ( "select pddTradeParentId as orderid,lkid as username,payStatusInfo as status from PddOrder where lkid is not null GROUP BY pddTradeParentId" ) ;
if ( bindPDDCaches ! = null & & bindPDDCaches . Count ! = 0 )
{
var unBinds = session . Find < fl_order_pinduoduo > ( "select * from fl_order_pinduoduo where db_userid = 0" ) ;
if ( unBinds ! = null & & unBinds . Count ! = 0 )
{
AddJindu ( "正在绑定拼多多订单..." , unBinds . Count ) ;
var userIds = session . Find < UserId > ( "select id,username from fl_member_info" , new { } ) ;
foreach ( var item in unBinds )
{
AddJindu ( ) ;
var result = bindPDDCaches . FirstOrDefault ( f = > f . orderid = = item . order_sn ) ;
if ( result ! = null )
{
var user = userIds . FirstOrDefault ( f = > f . username = = result . username ) ;
if ( user ! = null )
item . db_userid = user . id ;
if ( item . db_status = = SystemOrderStatus . 订 单 冻 结 )
{
if ( result . status = = "订单结算" )
{
item . db_status = SystemOrderStatus . 订 单 结 算 ;
item . db_endtime = DateTime . Now . AddHours ( - 2 ) ;
}
}
if ( string . IsNullOrWhiteSpace ( item . db_robotname ) )
{
item . db_robotname = comboBoxEdit3 . Text ;
item . db_robottype = ChatType . 微 信 ;
}
session . SaveOrUpdate ( item ) ;
}
}
session . ExcuteSQL ( "update fl_order_pinduoduo set db_status = 1002,order_status = 2,db_endtime = @endtime where db_status = 1001 and db_userid = 0" , new { endtime = DateTime . Now . AddDays ( - 2 ) } ) ;
}
}
#endregion
#region 京 东
AddJindu ( "正在读取京东订单到缓存..." ) ;
var jdBindTBCaches = srcSession . Find < BindCache > ( "select jdTradeParentId as orderid,lkid as username,payStatusInfo as status from JDOrder where lkid is not null GROUP BY jdTradeParentId" ) ;
if ( jdBindTBCaches ! = null & & jdBindTBCaches . Count ! = 0 )
{
var unBinds = session . Find < fl_order_jingdong > ( "select * from fl_order_jingdong where db_userid = 0" ) ;
if ( unBinds ! = null & & unBinds . Count ! = 0 )
{
AddJindu ( "正在绑定京东订单..." , unBinds . Count ) ;
var userIds = session . Find < UserId > ( "select id,username from fl_member_info" , new { } ) ;
foreach ( var item in unBinds )
{
AddJindu ( ) ;
var result = jdBindTBCaches . FirstOrDefault ( f = > f . orderid = = item . orderId . ToString ( ) ) ;
if ( result ! = null )
{
var user = userIds . FirstOrDefault ( f = > f . username = = result . username ) ;
if ( user ! = null )
item . db_userid = user . id ;
if ( item . db_status = = SystemOrderStatus . 订 单 冻 结 )
{
if ( result . status = = "订单结算" )
{
item . db_status = SystemOrderStatus . 订 单 结 算 ;
item . db_endtime = DateTime . Now . AddHours ( - 2 ) ;
item . validCode = 17 ;
}
}
if ( string . IsNullOrWhiteSpace ( item . db_robotname ) )
{
item . db_robotname = comboBoxEdit3 . Text ;
item . db_robottype = ChatType . 微 信 ;
}
session . SaveOrUpdate ( item ) ;
}
}
session . ExcuteSQL ( "update fl_order_jingdong set db_status = 1002,validCode = 17,db_endtime = @endtime where db_status = 1001 and db_userid = 0" , new { endtime = DateTime . Now . AddDays ( - 2 ) } ) ;
}
}
#endregion
AddJindu ( "订单绑定执行完毕" ) ;
session . Commit ( ) ;
}
#endregion
#region 淘 客 喵
if ( comboBoxEdit2 . SelectedIndex = = 6 )
{
#region 淘 宝
string sql = string . Empty ;
AddJindu ( "正在读取淘宝订单到缓存..." ) ;
//if (!srcSession.TableExist<Entitys.alitools.MemberInfo>())
// sql = "select username,orderid,status,endTime from AliOrder a inner join MemberInfo_备份 m on a.userid = m.id GROUP BY orderid";
//else
// sql = "select username,orderid,status,endTime from AliOrder a inner join MemberInfo m on a.userid = m.id GROUP BY orderid";
//var aliOrders = srcSession.Find<BackupAndImport.Entitys.alitools.AliOrder>(sql);
//if (!srcSession.TableExist<members_46349>())
// sql = "select username,orderid,status,endTime from AliOrder a inner join members_46349_备份 m on a.userid = m.id GROUP BY username,orderid";
//else
// sql = "select username,orderid,status,endTime from AliOrder a inner join members_46349 m on a.userid = m.id GROUP BY username,orderid";
var aliOrders = srcSession . Find < rewarded_orders_46349 > ( "select * from rewarded_orders_46349 where wxid != ''" , new { } ) ;
if ( aliOrders ! = null & & aliOrders . Count ! = 0 )
{
var unBinds = session . Find < fl_order_alimama > ( "select * from fl_order_alimama where db_userid = 0" ) ; //所有没有绑定的订单
if ( unBinds ! = null & & unBinds . Count ! = 0 )
{
var userId = session . Find < UserId > ( "select id,username from fl_member_info" , new { } ) ; //所有 fl_member_info 用户id 和 username
AddJindu ( "正在绑定订单..." , unBinds . Count ) ;
foreach ( var item in unBinds )
{
var result = aliOrders . FirstOrDefault ( f = > f . order_no . ToString ( ) = = item . trade_parent_id ) ;
//EventClient.OnEvent(this,$"找到订单-{item.trade_parent_id}");
if ( result ! = null )
{
try
{
var user = userId . FirstOrDefault ( f = > f . username = = result . wxid ) ; //fl_member_info 查询用户信息
//EventClient.OnEvent(this, $"找到用户-{item.trade_parent_id}");
if ( user ! = null )
{
item . db_userid = user . id ;
if ( ! item . IsFinish ( ) )
{
var status = ( AlimamaOrderStatus ) result . pay_status ;
switch ( status )
{
case AlimamaOrderStatus . 全 部 订 单 :
break ;
case AlimamaOrderStatus . 订 单 结 算 :
case AlimamaOrderStatus . 订 单 成 功 :
item . db_status = SystemOrderStatus . 订 单 结 算 ;
item . db_endtime = DateTime . Now ;
break ;
case AlimamaOrderStatus . 订 单 付 款 :
item . db_status = SystemOrderStatus . 订 单 付 款 ;
item . db_endtime = DateTime . MinValue ;
break ;
case AlimamaOrderStatus . 订 单 失 效 :
item . db_status = SystemOrderStatus . 订 单 失 效 ;
item . db_endtime = DateTime . MinValue ;
break ;
case AlimamaOrderStatus . 订 单 维 权 中 :
break ;
default :
break ;
}
var member = session . FindMemberInfoById ( user . id ) ;
if ( member ! = null )
{
item . db_robotname = member . robot_type = = ChatType . 微 信 ? comboBoxEdit3 . Text : comboBoxEdit1 . Text ;
item . db_robottype = member . robot_type ;
}
}
else
{
if ( string . IsNullOrWhiteSpace ( item . db_robotname ) )
{
var member = session . FindMemberInfoById ( user . id ) ;
if ( member ! = null )
{
item . db_robotname = member . robot_type = = ChatType . 微 信 ? comboBoxEdit3 . Text : comboBoxEdit1 . Text ;
item . db_robottype = member . robot_type ;
}
}
}
session . SaveOrUpdate ( item ) ;
}
}
catch ( Exception )
{
}
}
Thread . Sleep ( 2 ) ;
AddJindu ( ) ;
}
}
}
AddJindu ( "订单绑定执行完毕" ) ;
#endregion
session . Commit ( ) ;
}
#endregion
#region 安 娜 儿
//else if (label7.Text == "安娜尔")
else if ( comboBoxEdit2 . SelectedIndex = = 7 )
{
#region 淘 宝
AddJindu ( "正在读取订单到缓存..." ) ;
var bindCaches = srcSession . Find < BindCache > ( "select order_main as orderid,wxid as username,order_state as status from register_order where platform = '淘宝' GROUP BY order_main" ) ;
if ( bindCaches ! = null & & bindCaches . Count ! = 0 )
{
var unBinds = session . Find < fl_order_alimama > ( "select * from fl_order_alimama where db_userid = 0" ) ;
if ( unBinds ! = null & & unBinds . Count ! = 0 )
{
AddJindu ( "正在绑定订单..." , unBinds . Count ) ;
var userIds = session . Find < UserId > ( "select id,username from fl_member_info" , new { } ) ;
foreach ( var item in unBinds )
{
AddJindu ( ) ;
var result = bindCaches . FirstOrDefault ( f = > f . orderid = = item . trade_parent_id ) ;
if ( result ! = null )
{
var user = userIds . FirstOrDefault ( f = > f . username = = result . username ) ;
if ( user ! = null )
item . db_userid = user . id ;
if ( item . db_status = = SystemOrderStatus . 订 单 冻 结 )
{
if ( result . status = = "交易成功" | | result . status = = "等待收货" )
{
item . db_status = SystemOrderStatus . 订 单 结 算 ;
item . db_endtime = DateTime . Now . AddDays ( - 1 ) ;
item . tk_status = 3 ;
}
}
if ( string . IsNullOrWhiteSpace ( item . db_robotname ) )
{
item . db_robotname = comboBoxEdit3 . Text ;
item . db_robottype = ChatType . 微 信 ;
}
session . SaveOrUpdate ( item ) ;
}
}
session . ExcuteSQL ( "update fl_order_alimama set db_status = 1002,tk_status = 3,db_endtime = @endtime where db_status = 1001 and db_userid = 0" , new { endtime = DateTime . Now . AddDays ( - 2 ) } ) ;
}
}
#endregion
#region 拼 多 多
AddJindu ( "正在读取拼多多订单到缓存..." ) ;
//var pddBindCaches = srcSession.Find<BindCache>("select 订单编号 as orderid,对应ID as username,状态 as status from 订单管理 where 类目 = '拼多多' GROUP BY 订单编号");
var pddBindCaches = srcSession . Find < BindCache > ( "select order_main as orderid,wxid as username,order_state as status from register_order where platform = '拼多多' GROUP BY order_main" ) ;
if ( pddBindCaches ! = null & & pddBindCaches . Count ! = 0 )
{
var unBinds = session . Find < fl_order_pinduoduo > ( "select * from fl_order_pinduoduo where db_userid = 0" ) ;
if ( unBinds ! = null & & unBinds . Count ! = 0 )
{
AddJindu ( "正在绑定拼多多订单..." , unBinds . Count ) ;
var userids = session . Find < UserId > ( "select id,username from fl_member_info" , new { } ) ;
foreach ( var item in unBinds )
{
AddJindu ( ) ;
var result = pddBindCaches . FirstOrDefault ( f = > f . orderid = = item . order_sn ) ;
if ( result ! = null )
{
var user = userids . FirstOrDefault ( f = > f . username = = result . username ) ;
if ( user ! = null )
item . db_userid = user . id ;
if ( item . db_status = = SystemOrderStatus . 订 单 冻 结 )
{
if ( result . status = = "交易成功" | | result . status = = "等待收货" )
{
item . db_status = SystemOrderStatus . 订 单 结 算 ;
item . db_endtime = DateTime . Now . AddDays ( - 1 ) ;
item . order_status = 2 ;
}
}
if ( string . IsNullOrWhiteSpace ( item . db_robotname ) )
{
item . db_robotname = comboBoxEdit3 . Text ;
item . db_robottype = ChatType . 微 信 ;
}
session . SaveOrUpdate ( item ) ;
}
}
session . ExcuteSQL ( "update fl_order_pinduoduo set db_status = 1002,order_status = 2,db_endtime = @endtime where db_status = 1001 and db_userid = 0" , new { endtime = DateTime . Now . AddDays ( - 2 ) } ) ;
}
}
#endregion
#region 京 东
AddJindu ( "正在读取京东订单到缓存..." ) ;
//var jdBindCaches = srcSession.Find<BindCache>("select 订单编号 as orderid,对应ID as username,状态 as status from 订单管理 where 类目 = '京东' GROUP BY 订单编号");
var jdBindCaches = srcSession . Find < BindCache > ( "select order_main as orderid,wxid as username,order_state as status from register_order where platform = '京东' GROUP BY order_main" ) ;
if ( jdBindCaches ! = null & & jdBindCaches . Count ! = 0 )
{
var unBinds = session . Find < fl_order_jingdong > ( "select * from fl_order_jingdong where db_userid = 0" ) ;
if ( unBinds ! = null & & unBinds . Count ! = 0 )
{
AddJindu ( "正在绑定订单..." , unBinds . Count ) ;
var userIds = session . Find < UserId > ( "select id,username from fl_member_info" , new { } ) ;
foreach ( var item in unBinds )
{
AddJindu ( ) ;
var result = jdBindCaches . FirstOrDefault ( f = > f . orderid = = item . orderId . ToString ( ) ) ;
if ( result ! = null )
{
var user = userIds . FirstOrDefault ( f = > f . username = = result . username ) ;
if ( user ! = null )
item . db_userid = user . id ;
if ( item . db_status = = SystemOrderStatus . 订 单 冻 结 )
{
if ( result . status = = "交易成功" | | result . status = = "等待收货" )
{
item . db_status = SystemOrderStatus . 订 单 结 算 ;
item . db_endtime = DateTime . Now . AddDays ( - 1 ) ;
item . validCode = 17 ;
}
}
if ( string . IsNullOrWhiteSpace ( item . db_robotname ) )
{
item . db_robotname = comboBoxEdit3 . Text ;
item . db_robottype = ChatType . 微 信 ;
}
session . SaveOrUpdate ( item ) ;
}
}
session . ExcuteSQL ( "update fl_order_jingdong set db_status = 1002,validCode = 17,db_endtime = @endtime where db_status = 1001 and db_userid = 0" , new { endtime = DateTime . Now . AddDays ( - 2 ) } ) ;
}
}
#endregion
AddJindu ( "订单绑定执行完毕" ) ;
session . Commit ( ) ;
}
#endregion
}
catch ( Exception ex )
{
base . UpdateUI ( ( ) = > { label31 . Text = "绑定订单失败!" ; } ) ;
session . Rollback ( ) ;
throw ex ;
}
finally
{
srcSession . Close ( ) ;
}
}
}
catch ( Exception ex )
{
this . Invoke ( new Action ( delegate
{
ShowError ( ex ) ;
} ) ) ;
}
}
#endregion
#region 导 出 导 入 配 置 文 件
/// <summary>
/// 保存文件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void simpleButton4_Click ( object sender , EventArgs e )
{
try
{
var checks = checkedListBoxControl1 . CheckedItems ;
if ( checks ! = null & & checks . Count ! = 0 )
{
var checkAdminForm = new CheckAdminForm ( ) ;
if ( checkAdminForm . ShowDialog ( ) = = DialogResult . OK )
{
//var system_configs = checkedListBoxControl1.Tag as List<fl_dictionary_item>;
var out_configs = new List < fl_dictionary_item > ( ) ;
var strb = new StringBuilder ( ) ;
var session = ApiClient . GetSession ( ) ;
foreach ( var item in checks )
{
try
{
if ( ! string . IsNullOrWhiteSpace ( tableData . FirstOrDefault ( f = > f = = item . ToString ( ) ) ) )
{
fl_dictionary_item config = new fl_dictionary_item ( ) { dickey = item . ToString ( ) } ;
if ( item . ToString ( ) = = tableData [ 0 ] ) //"延迟结算配置"
{
var order_sleeps = session . Find < fl_order_sleep > ( "select * from fl_order_sleep" ) ;
if ( order_sleeps . Count ! = 0 )
{
config . dicvalue = HttpHelper . ObjectToJson ( new Dictionary < string , object > ( ) { { "data" , order_sleeps } } ) ; //Tools.Serialize(order_sleeps);
}
}
else if ( item . ToString ( ) = = tableData [ 1 ] ) //"会员分组配置"
{
var member_group = session . Find < fl_member_group > ( "select * from fl_member_group" ) ;
if ( member_group . Count ! = 0 )
config . dicvalue = HttpHelper . ObjectToJson ( new Dictionary < string , object > ( ) { { "data" , member_group } } ) ;
}
else if ( item . ToString ( ) = = tableData [ 2 ] ) //"分出比例配置"
{
var ratio_info = session . Find < fl_ratio_info > ( "select * from fl_ratio_info" ) ;
if ( ratio_info . Count ! = 0 )
config . dicvalue = HttpHelper . ObjectToJson ( new Dictionary < string , object > ( ) { { "data" , ratio_info } } ) ;
}
else if ( item . ToString ( ) = = tableData [ 3 ] ) //"自定义问答"
{
try
{
if ( session . TableExist ( "fl_plugin_autoanswer_userdefinedlibrary" ) )
{
var userdefinedlibrarys = session . Queryable < fl_plugin_autoanswer_userdefinedlibrary > ( ) . ToList ( ) ;
if ( userdefinedlibrarys . Count ! = 0 )
config . dicvalue = HttpHelper . ObjectToJson ( new Dictionary < string , object > ( ) { { "data" , userdefinedlibrarys } } ) ;
}
}
catch ( Exception )
{ }
try
{
if ( session . TableExist ( "fl_plugin_autoanswer_definedlib" ) )
{
var userdefinedlibrarys = session . Queryable < fl_plugin_autoanswer_definedlib > ( ) . ToList ( ) ;
if ( userdefinedlibrarys . Count ! = 0 )
config . dicvalue = HttpHelper . ObjectToJson ( new Dictionary < string , object > ( ) { { "data" , userdefinedlibrarys } } ) ;
}
}
catch ( Exception )
{ }
}
else if ( item . ToString ( ) = = tableData [ 4 ] ) //"自动打标签数据"
{
if ( session . TableExist ( "fl_plugin_signcontacts_sign_info" ) )
{
var signcontacts_sign_infos = session . Queryable < fl_plugin_signcontacts_sign_info > ( ) . ToList ( ) ;
if ( signcontacts_sign_infos . Count ! = 0 )
config . dicvalue = HttpHelper . ObjectToJson ( new Dictionary < string , object > ( ) { { "data" , signcontacts_sign_infos } } ) ;
}
}
else if ( item . ToString ( ) = = tableData [ 5 ] ) //"独立分出比例"
{
var dic = new Dictionary < string , object > ( ) ;
if ( session . TableExist ( "fl_ratio_info_custom_group" ) )
{
var fl_ratio_info_custom_groups = session . Queryable < fl_ratio_info_custom_group > ( ) . ToList ( ) ;
if ( fl_ratio_info_custom_groups . Count ! = 0 )
dic [ "data" ] = fl_ratio_info_custom_groups ;
}
if ( session . TableExist ( "fl_ratio_info_custom" ) )
{
var fl_ratio_info_customs = session . Queryable < fl_ratio_info_custom > ( ) . ToList ( ) ;
if ( fl_ratio_info_customs . Count ! = 0 )
dic [ "data2" ] = fl_ratio_info_customs ;
}
config . dicvalue = HttpHelper . ObjectToJson ( new Dictionary < string , object > ( ) { { "data" , dic } } ) ;
}
out_configs . Add ( config ) ;
strb . AppendLine ( $"{item},读取成功." ) ;
}
else
{
if ( item . ToString ( ) = = "全选" | | item . ToString ( ) = = "全消" ) continue ;
var config = session . FindSingle < fl_dictionary_item > ( "select * from fl_dictionary_item where dickey = @dickey" , new { dickey = item . ToString ( ) } ) ;
if ( config = = null ) throw new Exception ( "" ) ;
//var config = system_configs.FirstOrDefault(f => f.dickey == item.ToString());
out_configs . Add ( config ) ;
strb . AppendLine ( $"{config.dickey},读取成功." ) ;
}
}
catch ( Exception )
{
strb . AppendLine ( $"{item.ToString()},读取失败." ) ;
}
}
SaveFileDialog saveDlg = new SaveFileDialog ( ) ;
saveDlg . Filter = "文本文件|*.dxd" ;
if ( saveDlg . ShowDialog ( ) = = DialogResult . OK )
{
FileStream fs = File . Open ( saveDlg . FileName ,
FileMode . Create ,
FileAccess . Write ) ;
StreamWriter sw = new StreamWriter ( fs ) ;
sw . WriteLine ( HttpHelper . ObjectToJson ( out_configs ) ) ;
//关闭文件
sw . Flush ( ) ;
sw . Close ( ) ;
fs . Close ( ) ;
}
memoEdit1 . Text = $"{strb.ToString()}\r\n配置文件导出成功!\r\n导出路径: {saveDlg.FileName}" ;
}
else
memoEdit1 . Text = "终止配置导出任务" ;
}
else
{
throw new Exception ( "请勾选要到导出的配置文件!" ) ;
}
}
catch ( Exception ex )
{
ShowError ( ex ) ;
}
}
private void simpleButton5_Click ( object sender , EventArgs e )
{
try
{
OpenFileDialog dialog = new OpenFileDialog ( ) ;
dialog . Multiselect = false ;
dialog . Title = "请选择文件夹" ;
dialog . Filter = "所有文件(*.dxd)|*.dxd" ;
if ( dialog . ShowDialog ( ) = = System . Windows . Forms . DialogResult . OK )
{
string json = File . ReadAllText ( dialog . FileName ) ;
var configs = HttpHelper . JsonToObject < List < fl_dictionary_item > > ( json ) as List < fl_dictionary_item > ;
if ( configs ! = null & & configs . Count ! = 0 )
{
this . checkedListBoxControl2 . Items . Add ( new CheckedListBoxItem ( null , "全选" ) ) ;
this . checkedListBoxControl2 . Items . Add ( new CheckedListBoxItem ( null , "全消" ) ) ;
foreach ( var item in configs )
{
this . checkedListBoxControl2 . Items . Add ( new CheckedListBoxItem ( null , item . dickey ) ) ;
}
checkedListBoxControl2 . SelectAll ( ) ;
this . checkedListBoxControl2 . Tag = configs ;
}
else
throw new Exception ( "无配置信息!" ) ;
}
}
catch ( Exception ex )
{
ShowError ( ex ) ;
}
}
private void simpleButton6_Click ( object sender , EventArgs e )
{
try
{
var check_config = checkedListBoxControl2 . CheckedItems ;
if ( check_config ! = null & & check_config . Count ! = 0 )
{
var out_configs = checkedListBoxControl2 . Tag as List < fl_dictionary_item > ;
var strb = new StringBuilder ( ) ;
var session = ApiClient . GetSession ( ) ;
foreach ( var item in check_config )
{
if ( item . ToString ( ) = = "全选" | | item . ToString ( ) = = "全消" ) continue ;
try
{
var new_config = out_configs . FirstOrDefault ( f = > f . dickey = = item . ToString ( ) ) ; //新的配置
if ( ! string . IsNullOrWhiteSpace ( tableData . FirstOrDefault ( f = > f = = item . ToString ( ) ) ) )
{
if ( item . ToString ( ) = = tableData [ 0 ] ) //"延迟结算配置"
{
var order_sleeps = session . Find < fl_order_sleep > ( "select * from fl_order_sleep" ) ;
if ( checkBox3 . Checked | | order_sleeps . Count = = 0 )
{
session . ExcuteSQL ( "DELETE FROM fl_order_sleep" ) ;
var _sleeps = HttpExtend . JsonToDictionary ( new_config . dicvalue ) ; //Tools.Serialize(order_sleeps);
List < fl_order_sleep > list = new List < fl_order_sleep > ( ) ;
var array = _sleeps [ "data" ] as ArrayList ;
foreach ( Dictionary < string , object > arr in array )
{
list . Add ( new fl_order_sleep ( ) { money = double . Parse ( arr [ "money" ] . ToString ( ) ) , cps_type = ( CpsType ) ( int . Parse ( arr [ "cps_type" ] . ToString ( ) ) ) , sleep = int . Parse ( arr [ "sleep" ] . ToString ( ) ) , white_groups = arr [ "white_groups" ] . ToString ( ) } ) ;
}
session . Insertable ( list ) . ExecuteCommand ( ) ;
strb . AppendLine ( $"{item},配置已覆盖." ) ;
}
else
{
strb . AppendLine ( $"{item},配置已存在." ) ;
continue ;
}
}
else if ( item . ToString ( ) = = tableData [ 1 ] ) //"会员分组配置"
{
var order_sleeps = session . Find < fl_member_group > ( "select * from fl_member_group" ) ;
if ( checkBox3 . Checked | | order_sleeps . Count = = 0 )
{
session . ExcuteSQL ( "DELETE FROM fl_member_group" ) ;
var _sleeps = HttpExtend . JsonToDictionary ( new_config . dicvalue ) ; //Tools.Serialize(order_sleeps);
List < fl_member_group > list = new List < fl_member_group > ( ) ;
var array = _sleeps [ "data" ] as ArrayList ;
foreach ( Dictionary < string , object > arr in array )
{
list . Add ( new fl_member_group ( )
{
name = arr [ "name" ] = = null ? string . Empty : arr [ "name" ] . ToString ( ) ,
subsidy = double . Parse ( arr [ "subsidy" ] . ToString ( ) ) ,
subsidy_type = ( SubsidyType ) int . Parse ( arr [ "subsidy_type" ] . ToString ( ) ) ,
terms = double . Parse ( arr [ "terms" ] . ToString ( ) ) ,
terms_ordersum = long . Parse ( arr [ "terms_ordersum" ] . ToString ( ) ) ,
ratio_custom_dy = int . Parse ( arr [ "ratio_custom_dy" ] . ToString ( ) ) ,
ratio_custom_jd = int . Parse ( arr [ "ratio_custom_jd" ] . ToString ( ) ) ,
ratio_custom_pdd = int . Parse ( arr [ "ratio_custom_pdd" ] . ToString ( ) ) ,
ratio_custom_sn = int . Parse ( arr [ "ratio_custom_sn" ] . ToString ( ) ) ,
ratio_custom_ks = int . Parse ( arr [ "ratio_custom_ks" ] . ToString ( ) ) ,
ratio_custom_tb = int . Parse ( arr [ "ratio_custom_tb" ] . ToString ( ) ) ,
ratio_custom_wph = int . Parse ( arr [ "ratio_custom_wph" ] . ToString ( ) )
} ) ;
}
session . Insertable ( list ) . ExecuteCommand ( ) ;
strb . AppendLine ( $"{item},配置已覆盖." ) ;
}
else
{
strb . AppendLine ( $"{item},配置已存在." ) ;
continue ;
}
}
else if ( item . ToString ( ) = = tableData [ 2 ] ) //"分出比例配置"
{
var order_sleeps = session . Find < fl_ratio_info > ( "select * from fl_ratio_info" ) ;
if ( checkBox3 . Checked | | order_sleeps . Count = = 0 )
{
session . ExcuteSQL ( "DELETE FROM fl_ratio_info" ) ;
var _sleeps = HttpExtend . JsonToDictionary ( new_config . dicvalue ) ; //Tools.Serialize(order_sleeps);
List < fl_ratio_info > list = new List < fl_ratio_info > ( ) ;
var array = _sleeps [ "data" ] as ArrayList ;
foreach ( Dictionary < string , object > arr in array )
{
list . Add ( new fl_ratio_info ( ) { comm = double . Parse ( arr [ "comm" ] . ToString ( ) ) , cps_type = ( CpsType ) ( int . Parse ( arr [ "cps_type" ] . ToString ( ) ) ) , subsidy_num = double . Parse ( arr [ "subsidy_num" ] . ToString ( ) ) , subsidy_type = ( SubsidyType ) ( int . Parse ( arr [ "subsidy_type" ] . ToString ( ) ) ) } ) ;
}
session . Insertable ( list ) . ExecuteCommand ( ) ;
strb . AppendLine ( $"{item},配置已覆盖." ) ;
}
else
{
strb . AppendLine ( $"{item},配置已存在." ) ;
continue ;
}
}
else if ( item . ToString ( ) = = tableData [ 3 ] ) //"自定义问答"
{
try
{
var order_sleeps = session . Find < fl_plugin_autoanswer_definedlib > ( "select * from fl_plugin_autoanswer_definedlib" ) ;
if ( checkBox3 . Checked | | order_sleeps . Count = = 0 )
{
session . ExcuteSQL ( "DELETE FROM fl_plugin_autoanswer_definedlib" ) ;
var _sleeps = HttpExtend . JsonToDictionary ( new_config . dicvalue ) ; //Tools.Serialize(order_sleeps);
//List<fl_plugin_autoanswer_definedlib> list = new List<fl_plugin_autoanswer_definedlib>();
var array = _sleeps [ "data" ] as ArrayList ;
foreach ( Dictionary < string , object > arr in array )
{
//list.Add(new fl_plugin_autoanswer_definedlib() { antistop = arr["antistop"].ToString(), chat_type = arr["chat_type"].ToString(), content = arr["content"].ToString(), match_pattern = (int.Parse(arr["match_pattern"].ToString())), is_alert_admin = (int.Parse(arr["is_alert_admin"].ToString())), specific_robot_setting_text = arr["specific_robot_setting_text"].ToString() });
try
{
session . Insertable ( new fl_plugin_autoanswer_definedlib ( ) { antistop = arr [ "antistop" ] . ToString ( ) , chat_type = arr [ "chat_type" ] . ToString ( ) , content = arr [ "content" ] . ToString ( ) , match_pattern = ( int . Parse ( arr [ "match_pattern" ] . ToString ( ) ) ) , is_alert_admin = ( int . Parse ( arr [ "is_alert_admin" ] . ToString ( ) ) ) , specific_robot_setting_text = arr [ "specific_robot_setting_text" ] . ToString ( ) } ) . ExecuteCommand ( ) ;
}
catch ( Exception )
{ }
finally { Thread . Sleep ( 20 ) ; }
}
//session.Insertable(list).ExecuteCommand();
strb . AppendLine ( $"{item},配置已覆盖." ) ;
}
else
{
strb . AppendLine ( $"{item},配置已存在." ) ;
continue ;
}
}
catch ( Exception )
{ }
try
{
var order_sleeps = session . Find < fl_plugin_autoanswer_userdefinedlibrary > ( "select * from fl_plugin_autoanswer_userdefinedlibrary" ) ;
if ( checkBox3 . Checked | | order_sleeps . Count = = 0 )
{
session . ExcuteSQL ( "DELETE FROM fl_plugin_autoanswer_userdefinedlibrary" ) ;
var _sleeps = HttpExtend . JsonToDictionary ( new_config . dicvalue ) ; //Tools.Serialize(order_sleeps);
List < fl_plugin_autoanswer_userdefinedlibrary > list = new List < fl_plugin_autoanswer_userdefinedlibrary > ( ) ;
var array = _sleeps [ "data" ] as ArrayList ;
foreach ( Dictionary < string , object > arr in array )
{
list . Add ( new fl_plugin_autoanswer_userdefinedlibrary ( ) { antistop = arr [ "antistop" ] . ToString ( ) , chat_type = arr [ "chat_type" ] . ToString ( ) , content = arr [ "content" ] . ToString ( ) , match_pattern = ( int . Parse ( arr [ "match_pattern" ] . ToString ( ) ) ) , is_alert_admin = ( int . Parse ( arr [ "is_alert_admin" ] . ToString ( ) ) ) } ) ;
}
session . Insertable ( list ) . ExecuteCommand ( ) ;
strb . AppendLine ( $"{item},配置已覆盖." ) ;
}
else
{
strb . AppendLine ( $"{item},配置已存在." ) ;
continue ;
}
}
catch ( Exception )
{ }
}
else if ( item . ToString ( ) = = tableData [ 4 ] ) //"自动打标签数据"
{
var order_sleeps = session . Find < fl_plugin_signcontacts_sign_info > ( "select * from fl_plugin_signcontacts_sign_info" ) ;
if ( checkBox3 . Checked | | order_sleeps . Count = = 0 )
{
session . ExcuteSQL ( "DELETE FROM fl_plugin_signcontacts_sign_info" ) ;
var _sleeps = HttpExtend . JsonToDictionary ( new_config . dicvalue ) ; //Tools.Serialize(order_sleeps);
List < fl_plugin_signcontacts_sign_info > list = new List < fl_plugin_signcontacts_sign_info > ( ) ;
var array = _sleeps [ "data" ] as ArrayList ;
foreach ( Dictionary < string , object > arr in array )
{
list . Add ( new fl_plugin_signcontacts_sign_info ( ) { amount = long . Parse ( arr [ "amount" ] . ToString ( ) ) , sign = arr [ "sign" ] . ToString ( ) , signtype = ( SignType ) ( int . Parse ( arr [ "signtype" ] . ToString ( ) ) ) } ) ;
}
session . Insertable ( list ) . ExecuteCommand ( ) ;
strb . AppendLine ( $"{item},配置已覆盖." ) ;
}
else
{
strb . AppendLine ( $"{item},配置已存在." ) ;
continue ;
}
}
else if ( item . ToString ( ) = = tableData [ 5 ] ) //"独立分出比例"
{
//if (session.TableExist("fl_ratio_info_custom_group"))
//{
// var fl_ratio_info_custom_groups = session.Queryable<fl_ratio_info_custom_group>().ToList();
// if (fl_ratio_info_custom_groups.Count != 0)
// config.dicvalue = HttpHelper.ObjectToJson(new Dictionary<string, object>() { { "data", fl_ratio_info_custom_groups } });
//}
//else if (session.TableExist("fl_ratio_info_custom"))
//{
// var fl_ratio_info_customs = session.Queryable<fl_ratio_info_custom>().ToList();
// if (fl_ratio_info_customs.Count != 0)
// config.dicvalue = HttpHelper.ObjectToJson(new Dictionary<string, object>() { { "data", fl_ratio_info_customs } });
//}
var custom_groups = session . Find < fl_ratio_info_custom_group > ( "select * from fl_ratio_info_custom_group" ) ;
if ( checkBox3 . Checked | | custom_groups . Count = = 0 )
{
session . ExcuteSQL ( "DELETE FROM fl_ratio_info_custom_group" ) ;
var _datas = HttpExtend . JsonToDictionary ( new_config . dicvalue ) ; //Tools.Serialize(order_sleeps);
List < fl_ratio_info_custom_group > list = new List < fl_ratio_info_custom_group > ( ) ;
var _sleeps = _datas [ "data" ] as Dictionary < string , object > ;
var array = _sleeps [ "data" ] as ArrayList ;
foreach ( Dictionary < string , object > arr in array )
{
//list.Add(new fl_ratio_info_custom_group() { name = arr["name"].ToString(), cps_type = (CpsType)(int.Parse(arr["cps_type"].ToString())), id = long.Parse(arr["id"].ToString()) });
session . Ado . ExecuteCommand ( $"INSERT INTO 'fl_ratio_info_custom_group' ('name', 'cps_type', 'id') VALUES ('{arr[" name "].ToString()}', {(int.Parse(arr[" cps_type "].ToString()))}, {long.Parse(arr[" id "].ToString())});" ) ;
}
//------------------
session . ExcuteSQL ( "DELETE FROM fl_ratio_info_custom" ) ;
List < fl_ratio_info_custom > list2 = new List < fl_ratio_info_custom > ( ) ;
var array2 = _sleeps [ "data2" ] as ArrayList ;
foreach ( Dictionary < string , object > arr in array2 )
{
//list2.Add(new fl_ratio_info_custom() { cgid = long.Parse(arr["cgid"].ToString()), comm = double.Parse(arr["comm"].ToString()), subsidy_num = double.Parse(arr["subsidy_num"].ToString()), subsidy_type = (SubsidyType)(int.Parse(arr["subsidy_type"].ToString())), cps_type = (CpsType)(int.Parse(arr["cps_type"].ToString())), id = long.Parse(arr["id"].ToString()) });
session . Ado . ExecuteCommand ( $"INSERT INTO 'fl_ratio_info_custom' ('cgid', 'comm', 'subsidy_num', 'subsidy_type', 'cps_type', 'id') VALUES ({long.Parse(arr[" cgid "].ToString())}, {double.Parse(arr[" comm "].ToString())},{double.Parse(arr[" subsidy_num "].ToString())},{(int.Parse(arr[" subsidy_type "].ToString()))}, {int.Parse(arr[" cps_type "].ToString())}, {long.Parse(arr[" id "].ToString())});" ) ;
}
strb . AppendLine ( $"{item},配置已覆盖." ) ;
}
else
{
strb . AppendLine ( $"{item},配置已存在." ) ;
continue ;
}
}
}
else
{
var src_config = session . Find < fl_dictionary_item > ( "select * from fl_dictionary_item where dickey = @dickey" , new { dickey = new_config . dickey } ) . FirstOrDefault ( ) ; //原来的配置
if ( src_config ! = null )
{
if ( checkBox3 . Checked )
{
src_config . dicvalue = new_config . dicvalue ;
strb . AppendLine ( $"{src_config.dickey},配置已覆盖." ) ;
}
else
{
strb . AppendLine ( $"{src_config.dickey},配置已存在." ) ;
continue ;
}
}
else
{
src_config = new fl_dictionary_item ( ) { dickey = new_config . dickey , dicvalue = new_config . dicvalue } ;
strb . AppendLine ( $"{src_config.dickey},导入成功" ) ;
}
session . SaveOrUpdate ( src_config ) ;
}
}
catch ( Exception ex )
{
strb . AppendLine ( ex . Message ) ;
}
}
memoEdit2 . Text = strb . ToString ( ) ;
if ( strb . Length ! = 0 & & memoEdit2 . Text . Contains ( "配置已覆盖" ) )
{
//覆盖成功提示用户是否重启软件
if ( MessageBox . Show ( "配置导入成功,启动后生效,是否马上重启软件?" , "提示" , MessageBoxButtons . YesNo , MessageBoxIcon . Question ) = = DialogResult . Yes )
{
#region 是 否 允 许 软 件 重 启 [ 创 建 一 个 名 为 reset 的 空 文 件 , 在 FLSystem的Program中判断这个文件是否存在 , 存 在 将 允 许 重 启 ]
var reset_program = Util . MapFile ( "reset" , "File" ) ;
File . Create ( reset_program ) ;
#endregion
Application . ExitThread ( ) ;
Thread thtmp = new Thread ( new ParameterizedThreadStart ( run ) ) ;
object appName = Application . ExecutablePath ;
Thread . Sleep ( 500 ) ;
thtmp . Start ( appName ) ;
}
}
}
else
throw new Exception ( "请选择要导入的配置" ) ;
}
catch ( Exception ex )
{
ShowError ( ex ) ;
}
}
private void checkedListBoxControl1_ItemCheck ( object sender , DevExpress . XtraEditors . Controls . ItemCheckEventArgs e )
{
try
{
if ( e . Index = = 0 & & e . State = = CheckState . Checked )
{
for ( int j = 0 ; j < checkedListBoxControl1 . Items . Count ; j + + )
checkedListBoxControl1 . SetItemChecked ( j , j ! = 1 ) ;
}
else if ( e . Index = = 1 & & e . State = = CheckState . Checked )
{
for ( int j = 0 ; j < checkedListBoxControl1 . Items . Count ; j + + )
checkedListBoxControl1 . SetItemChecked ( j , j = = 1 ) ;
}
}
catch ( Exception ex )
{
ShowError ( ex ) ;
}
}
private void checkedListBoxControl2_ItemCheck ( object sender , DevExpress . XtraEditors . Controls . ItemCheckEventArgs e )
{
try
{
if ( e . Index = = 0 & & e . State = = CheckState . Checked )
{
for ( int j = 0 ; j < checkedListBoxControl2 . Items . Count ; j + + )
checkedListBoxControl2 . SetItemChecked ( j , j ! = 1 ) ;
}
else if ( e . Index = = 1 & & e . State = = CheckState . Checked )
{
for ( int j = 0 ; j < checkedListBoxControl2 . Items . Count ; j + + )
checkedListBoxControl2 . SetItemChecked ( j , j = = 1 ) ;
}
}
catch ( Exception ex )
{
ShowError ( ex ) ;
}
}
#endregion
private void run ( Object obj )
{
Process ps = new Process ( ) ;
ps . StartInfo . FileName = obj . ToString ( ) ;
ps . Start ( ) ;
}
#region 自 转 Sqlite 转 MySql
private object lock_obj4 = new object ( ) ;
private void AddJindu4 ( string text = "" , int max = 0 )
{
base . UpdateUI ( ( ) = >
{
try
{
lock ( lock_obj4 )
{
if ( ! string . IsNullOrEmpty ( text ) & & max = = 0 )
{
label7 . Text = text ;
}
else if ( ! string . IsNullOrEmpty ( text ) & & max ! = 0 )
{
label7 . Text = text ;
this . progressBar4 . Value = 0 ;
this . progressBar4 . Maximum = max ;
}
else
{
if ( this . progressBar4 . Value < this . progressBar4 . Maximum ) this . progressBar4 . Value + + ;
label7 . Text = $"{this.progressBar4.Value}/{this.progressBar4.Maximum}" ;
}
}
Application . DoEvents ( ) ;
}
catch ( Exception )
{
}
} ) ;
}
Api . Framework . Tools . ConnectionConfig tempConfig = null ;
private void simpleButton3_Click ( object sender , EventArgs e )
{
try
{
if ( ApiClient . Setting . DbConfig . DatabaseType = = DatabaseType . MYSQL ) throw new Exception ( "当前运行环境使用的数据库为Mysql,本次操作终止" ) ;
tempConfig = new Api . Framework . Tools . ConnectionConfig ( ) ;
tempConfig . ConnectionString = string . Format ( "Data Source={0};Initial Catalog={1};Persist Security Info=True;User ID={2};Password={3};Port={4};Min Pool Size = 5; Max Pool Size = 30;Charset=utf8;" , this . textEdit6 . Text , this . textEdit3 . Text , this . textEdit4 . Text , this . textEdit5 . Text , this . textEdit2 . Text ) ;
tempConfig . DatabaseType = DatabaseType . MYSQL ;
var session = ApiClient . GetSession ( tempConfig ) ;
session . BeginTransaction ( ) ;
session . Rollback ( ) ;
ShowSuccess ( "恭喜您,数据库连接成功!" ) ;
}
catch ( Exception ex )
{
tempConfig = null ;
ShowError ( ex ) ;
}
}
private async void simpleButton7_Click ( object sender , EventArgs e )
{
bool flag = false ;
simpleButton7 . Enabled = false ;
await Task . Run ( ( ) = >
{
var tableNameLog = string . Empty ; //记录表的名称
try
{
if ( tempConfig = = null ) throw new Exception ( "请先测试Mysql 是否可以正常连接!" ) ;
var mySqlSession = ApiClient . GetSession ( tempConfig ) ;
//Loding.ShowWaitForm();
mySqlSession . BeginTransaction ( ) ;
try
{
AddJindu4 ( "检测并创建基础表信息..." ) ;
ApiClient . CreateTables ( mySqlSession ) ;
AddJindu4 ( "基础表创建完成~!" ) ;
var sqliteSession = ApiClient . GetSession ( ) ;
//查询数据库名字
AddJindu4 ( "获取所有存在表的信息..." ) ;
var query = sqliteSession . FindTable ( "SELECT name,sql FROM sqlite_master WHERE type='table' and name != 'sqlite_sequence'" , new { } ) ;
AddJindu4 ( "获取所有存在表的信息完成~!" ) ;
if ( query . Rows . Count > 0 )
{
AddJindu4 ( "整理阿里妈妈表数据...(数据越多,等待时间越长)" ) ;
sqliteSession . ExcuteSQL ( "update fl_order_alimama set paid_time = '0001-01-01 00:00:00' where paid_time IS NULL" ) ;
AddJindu4 ( "整理阿里妈妈表数据完成~!" ) ;
AddJindu4 ( "整理京东表数据...(数据越多,等待时间越长)" ) ;
sqliteSession . ExcuteSQL ( "update fl_order_jingdong set refundcreatetime = '0001-01-01 00:00:00' where refundcreatetime IS NULL" ) ;
AddJindu4 ( "整理京东表数据完成~!" ) ;
sqliteSession . ExcuteSQL ( "update fl_exchange_info set check_time = '0001-01-01 00:00:00' where check_time IS NULL" ) ;
sqliteSession . ExcuteSQL ( "update fl_order_pinduoduo set price_compare_status = 0 where price_compare_status IS NULL" ) ;
for ( int i = 0 ; i < query . Rows . Count ; i + + )
{
var name = query . Rows [ i ] [ "name" ] . ToString ( ) ;
try
{
if ( name . ToLower ( ) = = "sqlite_stat1" | | name . ToLower ( ) = = "fl_plugin_encourage__tasks" | | name . ToLower ( ) = = "fl_plugin_encourage_tasks"
| | name . ToLower ( ) = = "fl_plugin_tbcirclepromotion_goodsinfos"
| | name . ToLower ( ) = = "fl_plugin_pddcirclepromotion_goodsinfos"
| | name . ToLower ( ) = = "fl_plugin_jdcirclepromotion_goodsinfos"
| | name . ToLower ( ) = = "fl_plugin_wphcirclepromotion_goodsinfos"
| | name . ToLower ( ) = = "fl_plugin_couponssend_goodsinfos"
| | name . ToLower ( ) = = "fl_debug_log"
)
continue ;
tableNameLog = name ;
if ( ! mySqlSession . TableExist ( name ) )
{
AddJindu4 ( $"表{name}不存在,正在创建..." ) ;
#region 不 存 在 的 表
var sql = query . Rows [ i ] [ "sql" ] . ToString ( ) ;
sql = sql . Replace ( "AUTOINCREMENT" , "AUTO_INCREMENT" ) . Replace ( "\"" , "" ) ;
if ( name . ToLower ( ) . Contains ( "fl_wechat_device" ) )
sql = "CREATE TABLE " + name + " (weixinhao varchar(255) default '' ,device_info text ,id integer primary key AUTO_INCREMENT not null )" ;
AddJindu4 ( $"表{name}创建完成~!" ) ;
sql = sql . Replace ( "text default ''" , "text default null" ) ;
mySqlSession . ExcuteSQL ( sql , new { } ) ;
#endregion
}
if ( mySqlSession . TableExist ( name ) ) //mysql数据库存在
{
AddJindu4 ( $"表{name}存在,正在清空数据..." ) ;
#region 数 据 库 表 存 在
mySqlSession . ExcuteSQL ( "TRUNCATE TABLE " + name , new { } ) ;
AddJindu4 ( $"表{name}清空数据完成~!" ) ;
AddJindu4 ( $"获取表{name}所有字段..." ) ;
List < string > fieldList = new List < string > ( ) ; //字段
var sql = "pragma table_info('" + name + "')" ;
var fields = sqliteSession . FindTable ( sql , new { } ) ;
for ( int k = 0 ; k < fields . Rows . Count ; k + + )
{
var temp = fields . Rows [ k ] [ "name" ] . ToString ( ) ;
fieldList . Add ( $"`{temp}`" ) ;
}
AddJindu4 ( $"获取表{name}所有字段完成~!" ) ;
//读取数量
sql = $"select count(1) from {name}" ;
var countResult = sqliteSession . FindTable ( sql ) ;
//数据总数量
//if(countResult.Rows.Count)
var rowCount = Convert . ToInt32 ( countResult . Rows [ 0 ] . ItemArray [ 0 ] ) ;
if ( rowCount = = 0 )
continue ;
var querySize = 1000 ;
//倍率
var rate = ( int ) Math . Ceiling ( ( decimal ) rowCount / querySize ) ;
//分页查询数据并添加到数据库
for ( int j = 0 ; j < rate ; j + + )
{
sql = $"select * from {name} limit {j * querySize},{querySize}" ;
var result = sqliteSession . FindTable ( sql ) ;
List < string > valueList = new List < string > ( ) ; //值
if ( result . Rows . Count > 0 )
{
AddJindu4 ( $"表{name},总共{rate + 1}页数据,正在获取第{j + 1}页数据..." ) ;
//循环过一次就情况
valueList . Clear ( ) ;
//存字段对应的数
var list = new List < string > ( ) ;
for ( int k = 0 ; k < result . Rows . Count ; k + + )
{
var temp = string . Empty ;
//foreach (var item in fieldList)
for ( int z = 0 ; z < fieldList . Count ; z + + )
{
try
{
var item = fieldList [ z ] ;
temp = result . Rows [ k ] [ item . Replace ( "`" , "" ) ] . ToString ( ) . ToLower ( ) ;
temp = temp = = "false" ? "0" : temp = = "true" ? "1" : temp . Replace ( @"\" , @"\\" ) . Replace ( "'" , "\''" ) ;
list . Add ( temp ) ;
}
catch ( Exception exx )
{
//Console.WriteLine(temp);
throw exx ;
}
}
valueList . Add ( "'" + string . Join ( "','" , list ) + "'" ) ;
list . Clear ( ) ;
//AddJindu4();
}
AddJindu4 ( $"表{name},总共{rate + 1}页数据,准备转移插入第{j + 1}数据中..." ) ;
if ( valueList . Count ! = 0 )
{
int size = 120 ;
var num = ( int ) Math . Ceiling ( ( decimal ) valueList . Count / size ) ;
//AddJindu4($"表{name},总共{rate+1}页数据,准备转移插入第{j + 1}数据中...", num);
for ( int o = 1 ; o < = num ; o + + )
{
var _list = valueList . Skip ( ( o - 1 ) * size ) . Take ( size ) . ToList ( ) ;
sql = "INSERT INTO " + name + " (" + string . Join ( "," , fieldList ) + ") VALUES (" + string . Join ( "),(" , _list ) + ")" ;
sql = RemoveEmoji ( sql ) ;
mySqlSession . ExcuteSQL ( sql , new { } ) ;
//AddJindu4();
_list . Clear ( ) ;
_list = null ;
}
}
AddJindu4 ( $"表{name},总共{rate + 1}页数据,转移插入第{j + 1}数据成功~!" ) ;
//AddJindu4($"表{name},获取数据完成~!");
//AddJindu4($"表{name},准备转移插入数据中...");
//if (valueList.Count != 0)
//{
// int size = 120;
// var num = (int)Math.Ceiling((decimal)valueList.Count / size);
// AddJindu4($"表{name},准备转移插入数据中...", num);
// for (int o = 1; o <= num; o++)
// {
// var _list = valueList.Skip((o - 1) * size).Take(size).ToList();
// sql = "INSERT INTO " + name + " (" + string.Join(",", fieldList) + ") VALUES (" + string.Join("),(", _list) + ")";
// sql = RemoveEmoji(sql);
// mySqlSession.ExcuteSQL(sql, new { });
// AddJindu4();
// _list.Clear();
// _list = null;
// }
//}
//valueList.Clear();
//valueList = null;
//AddJindu4($"表{name},转移插入第{j + 1}数据成功~!");
}
}
#endregion
}
}
catch ( Exception ex )
{
//Console.WriteLine(name);
throw ex ;
}
}
}
AddJindu4 ( $"所有数据转移完毕,正在提交数据...请稍等~!" ) ;
mySqlSession . Commit ( ) ;
AddJindu4 ( $"所有数据转移完成~!软件重启即可~!" ) ;
ApiClient . Setting . DbConfig = tempConfig ;
Util . Save ( ApiClient . Setting ) ;
flag = true ;
}
catch ( Exception ex )
{
flag = false ;
AddJindu4 ( $"转移失败,正在回滚数据..." ) ;
mySqlSession . Rollback ( ) ;
AddJindu4 ( $"转移失败,数据回滚完成~!" ) ;
if ( ! this . IsDisposed ) ShowError ( $"数据转移异常:({tableNameLog}) {ex}" ) ;
}
finally
{
//Loding.CloseWaitForm();
}
}
catch ( Exception ex )
{
if ( ! this . IsDisposed ) ShowError ( $"数据转移异常_: ({tableNameLog})" + ex ) ;
}
} ) ;
simpleButton7 . Enabled = true ;
if ( flag )
{
if ( MessageBox . Show ( "配置导入成功,启动后生效,是否马上重启软件?" , "提示" , MessageBoxButtons . YesNo , MessageBoxIcon . Question ) = = DialogResult . Yes )
{
#region 是 否 允 许 软 件 重 启 [ 创 建 一 个 名 为 reset 的 空 文 件 , 在 FLSystem的Program中判断这个文件是否存在 , 存 在 将 允 许 重 启 ]
var reset_program = Util . MapFile ( "reset" , "File" ) ;
File . Create ( reset_program ) ;
#endregion
Application . ExitThread ( ) ;
Thread thtmp = new Thread ( new ParameterizedThreadStart ( run ) ) ;
object appName = Application . ExecutablePath ;
Thread . Sleep ( 500 ) ;
thtmp . Start ( appName ) ;
}
}
}
/// <summary>
/// 保存数据
/// </summary>
/// <param name="valueList"></param>
/// <param name="name"></param>
/// <param name="sql"></param>
/// <param name="fieldList"></param>
/// <param name="mySqlSession"></param>
private void SaveData ( List < string > valueList , string name , string sql , List < string > fieldList , SqlSugarClient mySqlSession )
{
}
#endregion
#region 自 动 备 份
private void simpleButton8_Click ( object sender , EventArgs e )
{
try
{
if ( label12 . Text . ToLower ( ) ! = "sqlite" ) throw new Exception ( "当前使用的是mysql数据库,该版块功能不支持" ) ;
if ( string . IsNullOrWhiteSpace ( textEdit7 . Text ) ) throw new Exception ( "数据库备份路径不能为空" ) ;
else if ( ! Directory . Exists ( textEdit7 . Text . Trim ( ) ) ) throw new Exception ( "数据库备份路径不存在" ) ;
//var path = textEdit7.Text.Trim() + "数据库" + DateTime.Now.ToString("yyyyMMddHHmmss_fff.db");
var path = Path . Combine ( new string [ ] { textEdit7 . Text . Trim ( ) , "数据库" + DateTime . Now . ToString ( "yyyyMMddHHmmssfff" ) } ) ;
File . Copy ( Util . MapFile ( "数据库.db" , "Config" ) , path ) ;
if ( File . Exists ( path ) )
{
if ( Class1 . Config . Is_Bak_Send_Email )
{
Zip . Process ( new string [ ] { path } ) ;
var zipPath = path + ".zip" ;
if ( File . Exists ( zipPath ) )
ApiClient . SendAdminEmail ( ApiClient . Setting . SystemConfig . account_admin_email , $"数据库备份{DateTime.Now.ToString(" yyyy - MM - dd HH : mm : ss ")}" , "数据库备份" , zipPath , true ) ;
}
ShowSuccess ( "数据库备份成功" ) ;
}
else
ShowError ( "数据库备份失败" ) ;
}
catch ( Exception ex )
{
ShowError ( ex ) ;
}
}
private void Auto_Bak_onoff_Click ( object sender , EventArgs e )
{
Class1 . Config . Auto_Bak_OnOff = Auto_Bak_onoff . Checked ;
}
private void textEdit7_TextChanged ( object sender , EventArgs e )
{
Class1 . Config . Auto_Bak_Path = textEdit7 . Text ;
}
private void dateTimePicker1_ValueChanged ( object sender , EventArgs e )
{
Class1 . Config . Auto_Bak_Time = dateTimePicker1 . Value ;
}
private void numericUpDown2_ValueChanged ( object sender , EventArgs e )
{
Class1 . Config . Auto_Bak_Day = ( int ) numericUpDown2 . Value ;
}
private void simpleButton9_Click ( object sender , EventArgs e )
{
try
{
FolderBrowserDialog dialog = new FolderBrowserDialog ( ) ;
dialog . Description = "请选择文件路径" ;
if ( dialog . ShowDialog ( ) = = DialogResult . OK )
{
textEdit7 . Text = dialog . SelectedPath ;
}
}
catch ( Exception ex )
{
ShowError ( ex ) ;
}
}
#endregion
#region 一 键 重 新 计 算 订 单 分 出 金 额
private async void simpleButton12_Click ( object sender , EventArgs e )
{
try
{
simpleButton12 . Enabled = simpleButton15 . Enabled = simpleButton16 . Enabled = false ;
await Task . Run ( ( ) = >
{
var session = ApiClient . GetSession ( ) ;
try
{
session . BeginTransaction ( ) ;
AddJindu3 ( "正在读取淘宝订单..." ) ;
var tb_orders = session . Find < fl_order_alimama > ( "select * from fl_order_alimama" , new { } ) ;
AddJindu3 ( $"淘宝订单获取成功" , tb_orders . Count ) ;
var members = session . Find < fl_member_info > ( "select * from fl_member_info" ) ;
foreach ( var order in tb_orders )
{
var member = members . FirstOrDefault ( f = > f . id = = order . db_userid ) ;
//计算的佣金 - 判断使用设置模式,符合将扣除用户自定义预扣佣金
var commission = session . GetTbComparisonFeeRate ( order ) ;
//var itempoint = session.FindItemPoint(member, order.pub_share_pre_fee, order.item_num, CpsType.阿里妈妈);
var itempoint = session . FindItemPoint ( member , commission , order . item_num , CpsType . 阿 里 妈 妈 ) ;
order . db_userpoint = itempoint . UserPoint ;
order . db_point = HttpHelper . ObjectToJson ( itempoint ) ;
session . SaveOrUpdate ( order ) ;
AddJindu3 ( ) ;
}
tb_orders . Clear ( ) ;
AddJindu3 ( "淘宝订单修改完毕~!" ) ;
AddJindu3 ( "正在读取京东订单..." ) ;
var jd_orders = session . Find < fl_order_jingdong > ( "select * from fl_order_jingdong" , new { } ) ;
AddJindu3 ( $"京东订单获取成功" , jd_orders . Count ) ;
foreach ( var order in jd_orders )
{
var member = members . FirstOrDefault ( f = > f . id = = order . db_userid ) ;
var itempoint = session . FindItemPoint ( member , order . estimateFee , ( int ) order . skuNum , CpsType . 京 东 联 盟 ) ;
order . db_userpoint = itempoint . UserPoint ;
order . db_point = HttpHelper . ObjectToJson ( itempoint ) ;
session . SaveOrUpdate ( order ) ;
AddJindu3 ( ) ;
}
jd_orders . Clear ( ) ;
AddJindu3 ( "京东订单修改完毕~!" ) ;
AddJindu3 ( "正在读取拼多多订单..." ) ;
var pdd_orders = session . Find < fl_order_pinduoduo > ( "select * from fl_order_pinduoduo" , new { } ) ;
AddJindu3 ( $"京东订单获取成功" , pdd_orders . Count ) ;
foreach ( var order in pdd_orders )
{
var member = members . FirstOrDefault ( f = > f . id = = order . db_userid ) ;
var itempoint = session . FindItemPoint ( member , order . promotion_amount , order . goods_quantity , CpsType . 多 多 进 宝 ) ;
order . db_userpoint = itempoint . UserPoint ;
order . db_point = HttpHelper . ObjectToJson ( itempoint ) ;
session . SaveOrUpdate ( order ) ;
}
pdd_orders . Clear ( ) ;
AddJindu3 ( "拼多多订单修改完毕~!" ) ;
}
catch ( Exception ex )
{
AddJindu3 ( "修改异常,正在回滚数据~" ) ;
session . Rollback ( ) ;
AddJindu3 ( "修改异常,回滚数据完成~!" ) ;
}
finally
{
AddJindu3 ( "所有订单修改完毕!!!" ) ;
session . Commit ( ) ;
}
} ) ;
simpleButton12 . Enabled = simpleButton15 . Enabled = simpleButton16 . Enabled = true ;
}
catch ( Exception ex )
{
if ( ! this . IsDisposed ) ShowError ( "批量修改异常:" + ex . Message + " - " + ex . StackTrace ) ;
}
}
private object lock_obj3 = new object ( ) ;
private void AddJindu3 ( string text = "" , int max = 0 )
{
base . UpdateUI ( ( ) = >
{
try
{
lock ( lock_obj3 )
{
if ( ! string . IsNullOrEmpty ( text ) & & max = = 0 )
{
label6 . Text = text ;
}
else if ( ! string . IsNullOrEmpty ( text ) & & max ! = 0 )
{
label6 . Text = text ;
this . progressBar3 . Value = 0 ;
this . progressBar3 . Maximum = max ;
}
else
{
if ( this . progressBar3 . Value < this . progressBar3 . Maximum ) this . progressBar3 . Value + + ;
label6 . Text = $"{this.progressBar3.Value}/{this.progressBar3.Maximum}" ;
}
}
Application . DoEvents ( ) ;
}
catch ( Exception )
{ }
} ) ;
}
#endregion
#region ECO数据导入
/// <summary>
/// 用户登录信息
/// </summary>
EcoLoginInfo loginInfo = null ;
/// <summary>
/// 获取验证码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private async void button4_Click ( object sender , EventArgs e )
{
//try
//{
// if (string.IsNullOrWhiteSpace(textBox4.Text.Trim())) throw new Exception("请输入手机号码");
// Eco eco = new Eco();
// button4.Enabled = false;
// await Task.Run(() =>
// {
// if (eco.ECOFindCerificationCode(textBox4.Text.Trim()))
// {
// if (!this.IsDisposed) ShowSuccessAutoClose("请求验证码成功");
// Thread.Sleep(20000);
// }
// else
// this.Invoke(new Action(() =>
// {
// if (!this.IsDisposed) ShowErrorAutoClose("获取验证码失败,请稍后重试");
// }));
// });
// button4.Enabled = true;
//}
//catch (Exception ex)
//{
// if (!this.IsDisposed) ShowError($"{ex.Message} - {ex.StackTrace}");
//}
}
/// <summary>
/// 手机号码登录
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click ( object sender , EventArgs e )
{
try
{
//if (string.IsNullOrWhiteSpace(textBox3.Text.Trim())) throw new Exception("请输入验证码");
//Eco eco = new Eco();
////var html = eco.ECOCheckVerificationCode(textBox4.Text.Trim(), textBox3.Text.Trim());
//var html = eco.ECOLogin(textBox4.Text.Trim(), textBox3.Text.Trim(), Eco.LoginType.手机号码登录);
//if (string.IsNullOrWhiteSpace(html)) throw new Exception("请求异常,返回数据为空");
//var dic = HttpExtend.JsonToDictionary(html);
//if (dic != null && dic.ContainsKey("msg"))
//{
// var msg = dic["msg"].ToString();
// //ShowSuccess(msg);//TODO 这里看怎么显示
// if (msg != "登录成功") return;
// if (!dic.ContainsKey("data")) throw new Exception("数据异常,未包含data");
// var data = dic["data"] as Dictionary<string, object>;
// if (!data.ContainsKey("loginValicateSingle")) throw new Exception("数据异常,未包含loginValicateSingle");
// var loginValicateSingle = data["loginValicateSingle"].ToString();
// if (!data.ContainsKey("loginValicateName")) throw new Exception("数据异常,未包含loginValicateName");
// var loginValicateName = data["loginValicateName"].ToString();
// if (!data.ContainsKey("token")) throw new Exception("数据异常,未包含token");
// var token = data["token"].ToString();
// if (!data.ContainsKey("username")) throw new Exception("数据异常,未包含username");
// var username = data["username"].ToString();
// loginInfo = new EcoLoginInfo() { loginValicateName = loginValicateName, loginValicateSingle = loginValicateSingle, token = token, username = username };
// ShowSuccess("第二步操作完成");
//}
loginInfo = new EcoLoginInfo ( ) { loginValicateName = textBox1 . Text . Trim ( ) , loginValicateSingle = textBox2 . Text . Trim ( ) , token = textBox5 . Text . Trim ( ) , username = textBox6 . Text . Trim ( ) } ;
ShowSuccess ( "第二步操作完成" ) ;
}
catch ( Exception ex )
{
ShowError ( $"{ex.Message} - {ex.StackTrace}" ) ;
}
}
#region ECO
/// <summary>
/// ECO数据导入
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button3_Click ( object sender , EventArgs e )
{
if ( loginInfo = = null ) { ShowErrorAutoClose ( "请先登录" ) ; return ; }
try
{
bool tbIsSelect = false ;
bool pddIsSelect = false ;
bool jdIsSelect = false ;
if ( ! checkBox5 . Checked & & ! checkBox8 . Checked & & ! checkBox9 . Checked & & ! checkBox10 . Checked & & ! checkBox11 . Checked & & ! checkBox12 . Checked & & ! checkBox13 . Checked & & ! checkBox14 . Checked & & ! checkBox15 . Checked & & ! checkBox16 . Checked )
{
ShowSuccessAutoClose ( @"会员数据,订单绑定至少勾选一个需要同步的数据!" ) ; return ;
}
if ( checkBox8 . Checked | | checkBox9 . Checked | | checkBox10 . Checked ) tbIsSelect = true ;
if ( checkBox11 . Checked | | checkBox12 . Checked | | checkBox13 . Checked ) jdIsSelect = true ;
if ( checkBox14 . Checked | | checkBox15 . Checked | | checkBox16 . Checked ) pddIsSelect = true ;
if ( checkBox5 . Checked )
{
if ( XtraMessageBox . Show ( @ "如果以前导入成功过会员数据,请勿重复导入!
点 击 yes 继 续 导 入 ", " 温 馨 提 示 ", MessageBoxButtons.YesNo) == DialogResult.No) return;
}
Task . Run ( ( ) = >
{
//EventClient.StopParsing = false;
try
{
OnEvent ( this , "ECO导入开始执行..." ) ;
Eco eco = new Eco ( ) ;
#region 导 入 eco用户
if ( checkBox5 . Checked )
{
try
{
#region excel用户数据导入 ( 用 户 数 据 好 像 有 缺 失 )
// //第一步找到设备列表(获取所有的机器人id)
// var robotids = new List<string>();
// OnEvent(this, "开始获取机器人列表...");
// eco.ECOFindRobotList(loginInfo.loginValicateName, loginInfo.loginValicateSingle, loginInfo.token, robotids);
// OnEvent(this, "获取机器人列表结束!");
// var savepath = @"Cache\ECO";
// //第二步下载excel
// OnEvent(this, $"开始获取用户数据...");
// OnEvent(this, $"第一个阶段开始...");
// eco.ECODownloadMemberExcel(robotids, loginInfo.token, savepath);
// //第三步读取excel
// OnEvent(this, $"第二个阶段开始...");
// List<ECOMemberInfo> memberInfos = eco.ECOReadExcel(savepath);
// OnEvent(this, $"获取用户数据结束!");
// //var ss = memberInfos.FirstOrDefault(f=>f.username == "wxid_9njcmjotsgm512");
// //第四部插入用户数据
// OnEvent(this, $"导入用户数据开始...");
// eco.ECOInsertMember(memberInfos);
// OnEvent(this, $"导入用户数据结束...");
// this.UpdateUI(() =>
// {
// labelControl8.Text = "【导入成功】";
// robotids.Clear();
// });
// ShowSuccess(@"用户数据导入成功
//请勿重复导入用户数据,否则会导致积分叠加");
#endregion
#region 数 据 采 集
//第一步找到设备列表(获取所有的机器人id)
var robotids = new List < string > ( ) ;
OnEvent ( this , "开始获取机器人列表..." ) ;
eco . ECOFindRobotList ( loginInfo . loginValicateName , loginInfo . loginValicateSingle , loginInfo . token , robotids ) ;
OnEvent ( this , "获取机器人列表结束!" ) ;
//var savepath = @"Cache\ECO";
////第二步下载excel
//OnEvent(this, $"开始获取用户数据...");
//OnEvent(this, $"第一个阶段开始...");
//eco.ECODownloadMemberExcel(robotids, loginInfo.token, savepath);
////第三步读取excel
//OnEvent(this, $"第二个阶段开始...");
//List<ECOMemberInfo> memberInfos = eco.ECOReadExcel(savepath);
//OnEvent(this, $"获取用户数据结束!");
//第二步采集用户数据
OnEvent ( this , $"开始采集用户数据" ) ;
List < ECOMemberInfo > memberInfos = eco . ECOFindMembers ( loginInfo . token , robotids ) ;
//第三步数据校验
eco . ECOFindMemberList ( loginInfo . token , string . Empty , memberInfos ) ;
//var ss = memberInfos.FirstOrDefault(f=>f.username == "wxid_9njcmjotsgm512");
//第四部插入用户数据
OnEvent ( this , $"导入用户数据开始..." ) ;
eco . ECOInsertMember ( memberInfos ) ;
OnEvent ( this , $"导入用户数据结束..." ) ;
this . UpdateUI ( ( ) = >
{
labelControl8 . Text = "【导入成功】" ;
robotids . Clear ( ) ;
} ) ;
ShowSuccess ( @ "用户数据导入成功
请 勿 重 复 导 入 用 户 数 据 , 否 则 会 导 致 积 分 叠 加 ");
#endregion
}
catch ( Exception ex )
{
this . UpdateUI ( ( ) = >
{
labelControl8 . Text = "【导入失败】" ;
} ) ;
ShowErrorAutoClose ( $@"用户数据导入失败 - {ex.Message} - {ex.StackTrace}" ) ;
}
}
#endregion
#region 绑 定 订 单 数 据
if ( tbIsSelect )
{
var session = ApiClient . GetSession ( ) ;
#region ECO淘宝订单采集
var tbBindOrderList = new List < ECOOrderInfo > ( ) ; //保存采集到的已经绑定的订单数据
OnEvent ( this , $"ECO淘宝订单信息开始采集..." ) ;
#region 淘 宝 采 集
if ( checkBox8 . Checked )
eco . ECOBindOrder ( 1 , Eco . OrderType . 淘 宝 , OrderStateType . 已 结 算 , tbBindOrderList , loginInfo . token , "" ) ;
//eco.ECOBindOrder(1, OrderType.淘宝, OrderStateType.已失效, tbBindOrderList, loginInfo.token, "");
if ( checkBox9 . Checked )
eco . ECOBindOrder ( 1 , Eco . OrderType . 淘 宝 , OrderStateType . 未 结 算 , tbBindOrderList , loginInfo . token , "" ) ;
#endregion
#region 淘 宝 订 单 ( 剩 余 那 些 绑 定 的 订 单 ( 超 过 1000 的 ) )
if ( checkBox10 . Checked )
{
List < fl_order_alimama > tbOrders = null ;
if ( ! checkEdit1 . Checked )
{
//tbOrders = session.Find<fl_order_alimama>("select * from fl_order_alimama where db_userid = 0 and db_status != 1004 and create_time > @create_time", new { create_time = DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd HH:mm::ss") }).ToList();
tbOrders = session . Find < fl_order_alimama > ( "select * from fl_order_alimama where db_userid = 0 and db_status != 1004 order by create_time desc" , new { } ) . ToList ( ) ;
}
else
{
tbOrders = session . Find < fl_order_alimama > ( "select * from fl_order_alimama where db_userid = 0 and db_status != 1004 and @create_time1 <= create_time and create_time <= @create_time2 order by create_time desc" , new { create_time1 = dateTimePicker2 . Value . ToString ( "yyyy-MM-dd HH:mm:ss" ) , create_time2 = dateTimePicker3 . Value . ToString ( "yyyy-MM-dd HH:mm:ss" ) } ) . ToList ( ) ;
}
//tbOrders = session.Find<fl_order_alimama>("select * from fl_order_alimama where db_userid = 0 and db_status != 1004 and trade_parent_id in ('664726848631005452','664726240485482072','664933795817639226')", new { }).ToList();
if ( tbOrders ! = null )
{
var tbBindOrderList2 = new List < ECOOrderInfo > ( ) ; //保存采集到的剩余没有绑定的订单数据
foreach ( var item in tbOrders )
{
if ( tbBindOrderList . FirstOrDefault ( f = > f . orderId = = item . trade_parent_id & & f . itemId = = item . num_iid ) = = null )
eco . ECOBindOrder ( 1 , Eco . OrderType . 淘 宝 , OrderStateType . 所 有 , tbBindOrderList2 , loginInfo . token , item . trade_parent_id ) ;
if ( tbBindOrderList2 . Count > 20 )
{
eco . ECOOrderBind ( CpsType . 阿 里 妈 妈 , tbBindOrderList2 ) ;
tbBindOrderList2 = new List < ECOOrderInfo > ( ) ;
}
}
//防止还有订单遗漏提交
if ( tbBindOrderList2 . Count ! = 0 )
{
eco . ECOOrderBind ( CpsType . 阿 里 妈 妈 , tbBindOrderList2 ) ;
tbBindOrderList2 = new List < ECOOrderInfo > ( ) ;
}
}
}
#endregion
OnEvent ( this , $"ECO淘宝订单采集完毕!!!" ) ;
OnEvent ( this , $"开始进行淘宝用户绑定..." ) ;
//tbBindOrderList.AddRange(tbBindOrderList2);
eco . ECOOrderBind ( CpsType . 阿 里 妈 妈 , tbBindOrderList ) ;
OnEvent ( this , $"淘宝订单绑定完毕!" ) ;
#endregion
}
if ( jdIsSelect )
{
var session = ApiClient . GetSession ( ) ;
#region ECO京东订单采集
var jdBindOrderList = new List < ECOOrderInfo > ( ) ; //保存采集到的已经绑定的订单数据
OnEvent ( this , $"ECO京东订单信息开始采集..." ) ;
if ( checkBox11 . Checked )
eco . ECOBindOrder ( 1 , Eco . OrderType . 京 东 , OrderStateType . 已 结 算 , jdBindOrderList , loginInfo . token , "" ) ;
//eco.ECOBindOrder(1, OrderType.京东, OrderStateType.已失效, jdBindOrderList, loginInfo.token, "");
if ( checkBox12 . Checked )
eco . ECOBindOrder ( 1 , Eco . OrderType . 京 东 , OrderStateType . 未 结 算 , jdBindOrderList , loginInfo . token , "" ) ;
#region 京 东 订 单 剩 余 那 些 绑 定 的 订 单 ( 超 过 1000 的 )
var jdBindOrderList2 = new List < ECOOrderInfo > ( ) ; //保存采集到的剩余没有绑定的订单数据
if ( checkBox13 . Checked )
{
//var jdOrders = session.Find<fl_order_jingdong>("select * from fl_order_jingdong where db_userid = 0 and db_status != 1004").ToList();
List < fl_order_jingdong > jdOrders = null ;
if ( ! checkEdit1 . Checked )
{
jdOrders = session . Find < fl_order_jingdong > ( "select * from fl_order_jingdong where db_userid = 0 and db_status != 1004 order by orderTime desc" , new { } ) . ToList ( ) ;
}
else
{
jdOrders = session . Find < fl_order_jingdong > ( "select * from fl_order_jingdong where db_userid = 0 and db_status != 1004 and @orderTime1 <= orderTime and orderTime <= @orderTime2 order by orderTime desc" , new { orderTime1 = dateTimePicker2 . Value . ToString ( "yyyy-MM-dd HH:mm:ss" ) , orderTime2 = dateTimePicker3 . Value . ToString ( "yyyy-MM-dd HH:mm:ss" ) } ) . ToList ( ) ;
}
if ( jdOrders ! = null )
{
foreach ( var item in jdOrders )
{
if ( jdBindOrderList . FirstOrDefault ( f = > f . orderId = = item . orderId . ToString ( ) & & f . itemId = = item . skuId . ToString ( ) ) = = null )
eco . ECOBindOrder ( 1 , Eco . OrderType . 京 东 , OrderStateType . 所 有 , jdBindOrderList2 , loginInfo . token , item . orderId . ToString ( ) ) ;
if ( jdBindOrderList2 . Count > 20 )
{
eco . ECOOrderBind ( CpsType . 京 东 联 盟 , jdBindOrderList2 ) ;
jdBindOrderList2 = new List < ECOOrderInfo > ( ) ;
}
}
//防止还有订单遗漏提交
if ( jdBindOrderList2 . Count ! = 0 )
{
eco . ECOOrderBind ( CpsType . 京 东 联 盟 , jdBindOrderList2 ) ;
jdBindOrderList2 = new List < ECOOrderInfo > ( ) ;
}
}
}
#endregion
OnEvent ( this , $"ECO京东订单采集完毕!!!" ) ;
OnEvent ( this , $"开始进行京东用户绑定..." ) ;
//jdBindOrderList.AddRange(jdBindOrderList2);
eco . ECOOrderBind ( CpsType . 京 东 联 盟 , jdBindOrderList ) ;
OnEvent ( this , $"京东订单绑定完毕!" ) ;
#endregion
}
if ( pddIsSelect )
{
var session = ApiClient . GetSession ( ) ;
#region 拼 多 多 采 集
var pddBindOrderList = new List < ECOOrderInfo > ( ) ; //保存采集到的已经绑定的订单数据
OnEvent ( this , $"ECO拼多多订单信息开始采集..." ) ;
if ( checkBox14 . Checked )
eco . ECOBindOrder ( 1 , Eco . OrderType . 拼 多 多 , OrderStateType . 已 结 算 , pddBindOrderList , loginInfo . token , "" ) ;
//eco.ECOBindOrder(1, OrderType.拼多多, OrderStateType.已失效, pddBindOrderList, loginInfo.token, "");
if ( checkBox15 . Checked )
eco . ECOBindOrder ( 1 , Eco . OrderType . 拼 多 多 , OrderStateType . 未 结 算 , pddBindOrderList , loginInfo . token , "" ) ;
#region 拼 多 多 订 单 剩 余 那 些 绑 定 的 订 单 ( 超 过 1000 的 )
var pddBindOrderList2 = new List < ECOOrderInfo > ( ) ; //保存采集到的剩余没有绑定的订单数据
if ( checkBox16 . Checked )
{
//var pddOrders = session.Find<fl_order_pinduoduo>("select * from fl_order_pinduoduo where db_userid = 0 and db_status != 1004").ToList();
List < fl_order_pinduoduo > pddOrders = null ;
if ( ! checkEdit1 . Checked )
{
pddOrders = session . Find < fl_order_pinduoduo > ( "select * from fl_order_pinduoduo where db_userid = 0 and db_status != 1004 order by order_create_time desc" , new { } ) . ToList ( ) ;
}
else
{
pddOrders = session . Find < fl_order_pinduoduo > ( "select * from fl_order_pinduoduo where db_userid = 0 and db_status != 1004 and @orderTime1 <= order_create_time and order_create_time <= @orderTime2 order by order_create_time desc" , new { orderTime1 = dateTimePicker2 . Value . ToString ( "yyyy-MM-dd HH:mm:ss" ) , orderTime2 = dateTimePicker3 . Value . ToString ( "yyyy-MM-dd HH:mm:ss" ) } ) . ToList ( ) ;
}
if ( pddOrders ! = null )
{
foreach ( var item in pddOrders )
{
if ( pddBindOrderList . FirstOrDefault ( f = > f . orderId = = item . order_sn & & f . itemId = = item . goods_id ) = = null )
eco . ECOBindOrder ( 1 , Eco . OrderType . 拼 多 多 , OrderStateType . 所 有 , pddBindOrderList2 , loginInfo . token , item . order_sn ) ;
if ( pddBindOrderList2 . Count > 20 )
{
eco . ECOOrderBind ( CpsType . 多 多 进 宝 , pddBindOrderList2 ) ;
pddBindOrderList2 = new List < ECOOrderInfo > ( ) ;
}
}
//防止还有订单遗漏提交
if ( pddBindOrderList2 . Count ! = 0 )
{
eco . ECOOrderBind ( CpsType . 多 多 进 宝 , pddBindOrderList2 ) ;
pddBindOrderList2 = new List < ECOOrderInfo > ( ) ;
}
}
}
#endregion
OnEvent ( this , $"ECO拼多多订单采集完毕!!!" ) ;
OnEvent ( this , $"开始进行拼多多用户绑定..." ) ;
#region 绑 定 本 地 数 据 库 的 订 单
//pddBindOrderList.AddRange(pddBindOrderList2);
eco . ECOOrderBind ( CpsType . 多 多 进 宝 , pddBindOrderList ) ;
OnEvent ( this , $"拼多多订单绑定完毕!" ) ;
#endregion
#endregion
}
OnEvent ( this , $"ECO订单所有执行完毕同步绑定执行完毕!" ) ;
if ( ! this . IsDisposed ) ShowSuccess ( @"订单绑定成功" ) ;
#endregion
}
catch ( Exception ex )
{
OnEvent ( this , $"ECO导入异常,已经终止导入操作~{ex.Message} - {ex.StackTrace}" ) ;
if ( ! this . IsDisposed ) ShowError ( $"ECO导入异常: {ex.Message} - {ex.StackTrace}" ) ;
}
finally
{
OnEvent ( this , "ECO导入执行完毕!" ) ;
//EventClient.StopParsing = true;
}
} ) ;
}
catch ( Exception ex )
{
if ( ! this . IsDisposed ) ShowError ( $"{ex.Message} - {ex.StackTrace}" ) ;
}
}
#endregion
#endregion
#region 数 据 库 合 并
public static List < string > ConvertTo ( DataTable table , string name )
{
if ( table = = null )
{
return null ;
}
List < string > list = new List < string > ( ) ;
foreach ( DataRow row in table . Rows )
{
list . Add ( row [ name ] . ToString ( ) ) ;
}
return list ;
}
public static IList < T > ConvertTo < T > ( IList < DataRow > rows )
{
IList < T > list = null ;
if ( rows ! = null )
{
list = new List < T > ( ) ;
foreach ( DataRow row in rows )
{
T item = CreateItem < T > ( row ) ;
list . Add ( item ) ;
}
}
return list ;
}
public static T CreateItem < T > ( DataRow row )
{
T obj = default ( T ) ;
if ( row ! = null )
{
obj = Activator . CreateInstance < T > ( ) ;
foreach ( DataColumn column in row . Table . Columns )
{
PropertyInfo prop = obj . GetType ( ) . GetProperty ( column . ColumnName ) ;
try
{
object value = row [ column . ColumnName ] ;
prop . SetValue ( obj , value , null ) ;
}
catch
{ //You can log something here
//throw;
}
}
}
return obj ;
}
/// <summary>
/// 选择合并的数据库
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void simpleButton11_Click ( object sender , EventArgs e )
{
try
{
checkState = "-1" ;
if ( folderBrowserDialog1 . ShowDialog ( ) = = DialogResult . OK )
{
var path = folderBrowserDialog1 . SelectedPath ;
if ( Directory . Exists ( path ) )
{
string [ ] paths = BackupAndImport . Tools . GetFiles ( path , "(?<ini>(系统配置.ini$)|(数据库.db$))" , - 1 ) ;
if ( paths ! = null & & paths . Length ! = 0 )
{
var iniConfig = paths . FirstOrDefault ( f = > f . ToLower ( ) . Contains ( "系统配置.ini" ) ) ;
if ( iniConfig ! = null )
{
Api . Framework . Tools . IniHelper ini = new Api . Framework . Tools . IniHelper ( iniConfig ) ;
var slqModel = ini . GetValue ( "数据库" , "类型" ) ;
if ( slqModel = = "5" ) //SQLiteConfig
{
textEdit8 . Text = paths . FirstOrDefault ( f = > f . ToLower ( ) . Contains ( "数据库.db" ) ) ;
checkState = conn . CheckSqliteLink ( textEdit8 . Text . Trim ( ) , "" ) ;
label9 . Text = "Sqlite" ;
}
else if ( slqModel = = "4" ) //MySQLConfig
{
textEdit8 . Text = iniConfig ;
var mySQLConfig = ini . GetValue ( "数据库" , "链接" ) ;
var reg = Regex . Match ( mySQLConfig , "Data Source=(?<db_host>.*?);Initial Catalog=(?<db_name>.*?);Persist Security Info=True;User ID=(?<db_user>.*?);Password=(?<db_pass>.*?);Port=(?<db_port>.*?);" ) ;
if ( reg . Success )
{
checkState = conn . CheckMysqlLink ( reg . Groups [ "db_host" ] . ToString ( ) , reg . Groups [ "db_name" ] . ToString ( ) , reg . Groups [ "db_user" ] . ToString ( ) , reg . Groups [ "db_pass" ] . ToString ( ) , reg . Groups [ "db_port" ] . ToString ( ) ) ; //mysql链接是否成功
label9 . Text = "MySql" ;
}
}
}
else
throw new Exception ( "未搜索到数据库" ) ;
//else
//{
// var db = paths.FirstOrDefault(f => f.ToLower().Contains("数据库.db"));
// if (db != null)
// {
// textEdit8.Text = db;
// checkState = conn.CheckSqliteLink(db, "");
// label9.Text = "Sqlite";
// }
// else throw new Exception("未搜索到数据库");
//}
if ( string . IsNullOrEmpty ( checkState ) )
ShowSuccess ( "数据库链接成功!" ) ;
else
{
label9 . Text = "请选择数据库" ;
ShowError ( checkState ) ;
}
}
}
}
}
catch ( Exception ex )
{
ShowError ( ex ) ;
}
}
#region 合 并 的 进 度 条
private object lock_obj2 = new object ( ) ;
private void AddJindu2 ( string text = "" , int max = 0 )
{
base . UpdateUI ( ( ) = >
{
try
{
lock ( lock_obj2 )
{
if ( ! string . IsNullOrEmpty ( text ) & & max = = 0 )
{
label36 . Text = text ;
}
else if ( ! string . IsNullOrEmpty ( text ) & & max ! = 0 )
{
label36 . Text = text ;
this . progressBar2 . Value = 0 ;
this . progressBar2 . Maximum = max ;
}
else
{
if ( this . progressBar2 . Value < this . progressBar2 . Maximum ) this . progressBar2 . Value + + ;
label36 . Text = $"{this.progressBar2.Value}/{this.progressBar2.Maximum}" ;
}
}
Application . DoEvents ( ) ;
}
catch ( Exception )
{
}
} ) ;
}
#endregion
/// <summary>
/// 通用插入数据
/// </summary>
/// <param name="session"></param>
/// <param name="srcSession"></param>
/// <param name="tableNamelist"></param>
/// <param name="tableNme"></param>
private void InsertData ( SqlSugarClient session , SqlSugarClient srcSession , IList < string > tableNamelist , string tableNme , string fieldName = "" , Dictionary < long , long > memberIdDic = null , Dictionary < long , long > robotIdDic = null , string defaultFieldName = "" )
{
try
{
if ( tableNamelist . Contains ( tableNme ) )
{
List < string > fieldList = new List < string > ( ) ; //字段
var sql = string . Empty ;
if ( conn . tempConfig . DatabaseType = = DatabaseType . MYSQL )
sql = "select COLUMN_NAME as name from information_schema.COLUMNS where table_name = '" + tableNme + "'" ;
else
sql = "pragma table_info('" + tableNme + "')" ;
var fields = srcSession . FindTable ( sql , new { } ) ;
for ( int k = 0 ; k < fields . Rows . Count ; k + + )
{
var temp = fields . Rows [ k ] [ "name" ] . ToString ( ) ;
if ( temp . ToLower ( ) ! = "id" )
fieldList . Add ( temp ) ;
}
sql = "select * from " + tableNme + "" ;
var resultSrc = srcSession . FindTable ( sql ) ;
if ( resultSrc . Rows . Count > 0 )
{
List < string > valueList = new List < string > ( ) ; //值
for ( int k = 0 ; k < resultSrc . Rows . Count ; k + + )
{
var _list = new List < string > ( ) ;
var temp = string . Empty ;
//foreach (var item in fieldList)
for ( int z = 0 ; z < fieldList . Count ; z + + )
{
var item = fieldList [ z ] ;
if ( item . ToLower ( ) = = "id" ) continue ;
temp = resultSrc . Rows [ k ] [ item ] . ToString ( ) . ToLower ( ) ;
if ( ! string . IsNullOrEmpty ( fieldName ) & & item = = fieldName )
{
if ( memberIdDic ! = null & & memberIdDic . ContainsKey ( int . Parse ( temp ) ) )
temp = memberIdDic [ int . Parse ( temp ) ] . ToString ( ) ;
if ( robotIdDic ! = null & & robotIdDic . ContainsKey ( int . Parse ( temp ) ) )
temp = robotIdDic [ int . Parse ( temp ) ] . ToString ( ) ;
}
//回复默认值
if ( ! string . IsNullOrEmpty ( defaultFieldName ) & & item = = defaultFieldName )
{
temp = "0" ;
}
temp = temp = = "false" ? "0" : temp = = "true" ? "1" : temp . Replace ( @"\" , @"\\" ) . Replace ( "'" , "\''" ) ;
if ( item . Contains ( "remark" )
| | item . Contains ( "name" )
| | item . Contains ( "custom_type" )
| | item . Contains ( "nick" )
| | item . Contains ( "title" )
| | item . Contains ( "text" )
| | item . Contains ( "comment" )
| | item . Contains ( "sign" )
| | item . Contains ( "message" )
)
_list . Add ( RemoveEmoji ( temp ) ) ;
else
_list . Add ( temp ) ;
}
valueList . Add ( "'" + string . Join ( "','" , _list ) + "'" ) ;
}
if ( valueList . Count ! = 0 )
{
var num1 = ( int ) Math . Ceiling ( ( decimal ) valueList . Count / 100 m ) ;
int size = 100 ;
for ( int o = 1 ; o < = num1 ; o + + )
{
var _list = valueList . Skip ( ( o - 1 ) * size ) . Take ( size ) . ToList ( ) ;
sql = "INSERT INTO " + tableNme + " (" + string . Join ( "," , fieldList ) + ") VALUES (" + string . Join ( "),(" , _list ) + ")" ;
session . ExcuteSQL ( sql , new { } ) ;
}
}
}
}
}
catch ( Exception ex )
{
EventClient . OnEvent ( this , ex . Message + "-" + ex . StackTrace ) ;
}
}
/// <summary>
/// 开始合并
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void simpleButton10_Click ( object sender , EventArgs e )
{
try
{
simpleButton10 . Enabled = false ;
if ( conn = = null ) throw new Exception ( "请选择数据库~! " ) ;
//await Task.Run(delegate ()
Task . Run ( delegate ( )
{
var session = ApiClient . GetSession ( ) ;
session . BeginTransaction ( ) ;
try
{
var srcSession = ApiClient . GetSession ( conn . tempConfig , false ) ;
DataTable query = null ;
AddJindu2 ( "正在读取数据库表结构..." ) ;
if ( ApiClient . Setting . DbConfig . DatabaseType = = DatabaseType . SQLITE )
{
query = session . FindTable ( "SELECT name FROM sqlite_master WHERE type='table' and name != 'sqlite_sequence'" , new { } ) ;
session . ExcuteSQL ( "update fl_order_alimama set paid_time = '0001-01-01 00:00:00' where paid_time IS NULL" ) ;
session . ExcuteSQL ( "update fl_order_jingdong set refundcreatetime = '0001-01-01 00:00:00' where refundcreatetime IS NULL" ) ;
}
else if ( ApiClient . Setting . DbConfig . DatabaseType = = DatabaseType . MYSQL )
{
var reg = Regex . Match ( ApiClient . Setting . DbConfig . ConnectionString , "Data Source=(?<db_host>.*?);Initial Catalog=(?<db_name>.*?);Persist Security Info=True;User ID=(?<db_user>.*?);Password=(?<db_pass>.*?);Port=(?<db_port>.*?);" ) ;
if ( ! reg . Success )
{
AddJindu2 ( "读取数据库表名失败,终止操作" ) ;
return ;
}
//获取数据库表结构
query = session . FindTable ( "select table_name as name from information_schema.tables where table_schema=@table_schema and table_type='base table'" , new { table_schema = reg . Groups [ "db_name" ] . ToString ( ) } ) ;
//下面两句是将异常的字段数据改为正常的数据
session . ExcuteSQL ( "update fl_order_alimama set paid_time = '0001-01-01 00:00:00' where ISNULL(paid_time)" ) ;
session . ExcuteSQL ( "update fl_order_jingdong set refundcreatetime = '0001-01-01 00:00:00' where ISNULL(refundcreatetime)" ) ;
}
if ( query = = null | | query . Rows . Count = = 0 )
{
AddJindu2 ( "读取数据库表结构失败,终止操作" ) ;
return ;
}
DataTable srcquery = null ;
if ( query ! = null & & query . Rows . Count > 0 )
{
AddJindu2 ( "读取所有表结构成功" ) ;
var list = ConvertTo ( query , "name" ) ; //将DataTable 转成 List
#region 读 取 原 数 据 库 表 结 构
if ( conn . tempConfig . DatabaseType = = DatabaseType . SQLITE )
{
srcquery = srcSession . FindTable ( "SELECT name FROM sqlite_master WHERE type='table' and name != 'sqlite_sequence'" , new { } ) ;
srcSession . ExcuteSQL ( "update fl_order_alimama set paid_time = '0001-01-01 00:00:00' where paid_time IS NULL" ) ;
}
else if ( conn . tempConfig . DatabaseType = = DatabaseType . MYSQL )
{
var reg = Regex . Match ( conn . tempConfig . ConnectionString , "Data Source=(?<db_host>.*?);Initial Catalog=(?<db_name>.*?);Persist Security Info=True;User ID=(?<db_user>.*?);Password=(?<db_pass>.*?);Port=(?<db_port>.*?);" ) ;
if ( ! reg . Success )
{
AddJindu2 ( "读取数据库表名失败,终止操作" ) ;
return ;
}
srcquery = srcSession . FindTable ( "select table_name as name from information_schema.tables where table_schema=@table_schema and table_type='base table'" , new { table_schema = reg . Groups [ "db_name" ] . ToString ( ) } ) ;
srcSession . ExcuteSQL ( "update fl_order_alimama set paid_time = '0001-01-01 00:00:00' where ISNULL(paid_time)" ) ;
}
if ( srcquery = = null | | srcquery . Rows . Count = = 0 )
{
AddJindu2 ( "读取目标数据库表结构失败,终止操作" ) ;
return ;
}
var srclist = ConvertTo ( srcquery , "name" ) ; //将DataTable 转成 List
#endregion
#region fl_wechat_device 微 信 设 备 表
AddJindu2 ( "正在判断表:设备表 是否存在" ) ;
if ( list . Contains ( "fl_wechat_device" ) & & srclist . Contains ( "fl_wechat_device" ) )
{
AddJindu2 ( "设备表 存在,正在读取数据..." ) ;
var wechat_device = session . Find < fl_wechat_device > ( "select * from fl_wechat_device" , new { } ) ;
var wechat_device_src = srcSession . Find < fl_wechat_device > ( "select * from fl_wechat_device" , new { } ) ;
AddJindu2 ( $"设备表 导入中..." , wechat_device_src . Count ) ;
foreach ( var item in wechat_device_src )
{
if ( wechat_device . FirstOrDefault ( f = > f . weixinhao = = item . weixinhao ) = = null )
session . Insertable ( item ) . ExecuteReturnIdentity ( ) ;
AddJindu2 ( ) ;
}
AddJindu2 ( "设备表 数据导入成功" ) ;
wechat_device . Clear ( ) ;
wechat_device_src . Clear ( ) ;
}
else AddJindu2 ( "设备表 不存在" ) ;
#endregion
#region fl_robot_info 机 器 人 表
AddJindu2 ( "正在判断表:机器人表 是否存在" ) ;
if ( list . Contains ( "fl_robot_info" ) & & srclist . Contains ( "fl_robot_info" ) )
{
AddJindu2 ( "机器人表 存在,正在读取数据..." ) ;
var robot_info = session . Find < fl_robot_info > ( "select * from fl_robot_info" , new { } ) ;
var robot_info_src = srcSession . Find < fl_robot_info > ( "select * from fl_robot_info" , new { } ) ;
Dictionary < long , long > robotIdDic = new Dictionary < long , long > ( ) ; //原来的和现在的ID保存,以后直接替换机器人ID//前旧后新
AddJindu2 ( $"机器人表 导入中..." , robot_info_src . Count ) ;
foreach ( var item in robot_info_src )
{
if ( robot_info . FirstOrDefault ( f = > f . name = = item . name & & f . type = = item . type ) = = null )
{
var oldId = item . id ;
item . id = 0 ;
item . nick = Util . RemoveEmoji ( item . nick ) ;
var id = session . Insertable ( item ) . ExecuteReturnIdentity ( ) ;
if ( ! robotIdDic . ContainsKey ( oldId ) )
robotIdDic . Add ( oldId , id ) ;
}
AddJindu2 ( ) ;
}
robot_info_src . Clear ( ) ;
robot_info . Clear ( ) ;
AddJindu2 ( "机器人表 数据导入成功" ) ;
#region fl_adzone_group 推 广 位 组 表
AddJindu2 ( "正在判断表:推广位组表 是否存在" ) ;
if ( list . Contains ( "fl_adzone_group" ) & & srclist . Contains ( "fl_adzone_group" ) )
{
AddJindu2 ( "推广位组表 存在,正在读取数据..." ) ;
var adzone_groups = srcSession . Queryable < fl_adzone_group > ( ) . ToList ( ) ;
var srcadzone_groups = srcSession . Queryable < fl_adzone_group > ( ) . ToList ( ) ;
AddJindu2 ( $"推广位组表 导入中..." , srcadzone_groups . Count ) ;
foreach ( var item in srcadzone_groups )
{
var adzone_group = adzone_groups . FirstOrDefault ( f = > f . name = = item . name ) ;
if ( adzone_group = = null )
{
session . Insertable ( item ) . ExecuteCommand ( ) ;
}
AddJindu2 ( ) ;
}
AddJindu2 ( "推广位组表 数据导入成功" ) ;
}
#endregion
#region fl_adzone_info 推 广 位 表
AddJindu2 ( "正在判断表:推广位表 是否存在" ) ;
if ( list . Contains ( "fl_adzone_info" ) & & srclist . Contains ( "fl_adzone_info" ) )
{
AddJindu2 ( "推广位表 存在,正在读取数据..." ) ;
var adzone_info = srcSession . Find < fl_adzone_info > ( "select * from fl_adzone_info" ) ;
AddJindu2 ( $"推广位表 导入中..." , adzone_info . Count ) ;
foreach ( var item in adzone_info )
{
if ( robotIdDic . ContainsKey ( item . robot_id ) ) //将机器人存在的ID的数据导过来,不存在的不要了
{
item . robot_id = robotIdDic [ item . robot_id ] ;
item . id = 0 ;
session . Saveable ( item ) . ExecuteCommand ( ) ;
}
AddJindu2 ( ) ;
}
AddJindu2 ( "推广位表 数据导入成功" ) ;
}
#endregion
#region fl_weixin_password 微 信 其 他 信 息
AddJindu2 ( "正在判断表:微信其他信息表 是否存在" ) ;
if ( list . Contains ( "fl_weixin_password" ) & & srclist . Contains ( "fl_weixin_password" ) )
{
AddJindu2 ( "微信其他信息表 存在,正在读取数据..." ) ;
var weixin_password = srcSession . Find < fl_weixin_password > ( "select * from fl_weixin_password" ) ;
AddJindu2 ( $"微信其他信息表 导入中..." , weixin_password . Count ) ;
foreach ( var item in weixin_password )
{
if ( robotIdDic . ContainsKey ( ( int ) item . robot_id ) ) //将机器人存在的ID的数据导过来,不存在的不要了
{
item . robot_id = robotIdDic [ item . robot_id ] ;
item . id = 0 ;
session . Saveable ( item ) . ExecuteCommand ( ) ;
}
AddJindu2 ( ) ;
}
AddJindu2 ( "微信其他信息表 数据导入成功" ) ;
}
else AddJindu2 ( "微信其他信息表 不存在" ) ;
#endregion
}
else AddJindu2 ( "微信其他信息表 不存在" ) ;
#endregion
#region fl_cps_member 联 盟 账 号
AddJindu2 ( "正在判断表:联盟账号表 是否存在" ) ;
if ( list . Contains ( "fl_cps_member" ) & & srclist . Contains ( "fl_cps_member" ) )
{
AddJindu2 ( "联盟账号表 存在,正在读取数据..." ) ;
var cps_member = session . Find < fl_cps_member > ( "select * from fl_cps_member" , new { } ) ;
var cps_member_src = srcSession . Find < fl_cps_member > ( "select * from fl_cps_member" , new { } ) ;
var exp = cps_member_src . Where ( a = > ! cps_member . Where ( t = > a . username = = t . username ) . Any ( ) ) . ToList ( ) ;
AddJindu2 ( $"联盟账号表 导入中..." , cps_member_src . Count ) ;
foreach ( var _item in cps_member_src )
{
var item = exp . FirstOrDefault ( f = > f . username = = _item . username ) ;
if ( item ! = null )
{
item . id = 0 ;
session . Saveable ( item ) . ExecuteCommand ( ) ;
}
AddJindu2 ( ) ;
}
cps_member_src . Clear ( ) ;
cps_member . Clear ( ) ;
AddJindu2 ( "联盟账号表 数据导入成功" ) ;
}
else AddJindu2 ( "联盟账号表 不存在" ) ;
#endregion
#region fl_member_info 用 户 数 据
AddJindu2 ( "正在判断表:用户数据表 是否存在" ) ;
if ( list . Contains ( "fl_member_info" ) & & srclist . Contains ( "fl_member_info" ) )
{
AddJindu2 ( "用户数据表 存在,正在读取数据..." ) ;
var member_info = session . Find < fl_member_info > ( "select * from fl_member_info" , new { } ) ;
var member_info_src = srcSession . Find < fl_member_info > ( "select * from fl_member_info" , new { } ) ;
Dictionary < long , long > memberIdDic = new Dictionary < long , long > ( ) ; //前旧后新
Dictionary < int , int > bindDic = new Dictionary < int , int > ( ) ; //记录老的用户上级id,前面的是新用户的id_后面的是上级用户的老的id
int id = 0 ;
var robots = session . FindRobots ( true ) ;
AddJindu2 ( $"用户数据表 导入中..." , member_info_src . Count ) ;
foreach ( var item in member_info_src )
{
var member = member_info . FirstOrDefault ( f = > f . username = = item . username ) ;
if ( member ! = null )
{
member . chat_count = member . chat_count + item . chat_count ;
member . cur_point = ( double ) ( ( decimal ) member . cur_point + ( decimal ) item . cur_point ) ;
member . buy_point = ( double ) ( ( decimal ) member . buy_point + ( decimal ) item . buy_point ) ;
member . sum_point = ( double ) ( ( decimal ) member . sum_point + ( decimal ) item . sum_point ) ;
member . ext_point = ( double ) ( ( decimal ) member . ext_point + ( decimal ) item . ext_point ) ;
member . rew_point = ( double ) ( ( decimal ) member . rew_point + ( decimal ) item . rew_point ) ;
member . finish_order = member . finish_order + item . finish_order ;
member . bind_order = member . finish_order ;
member . remark = member . remark + ( string . IsNullOrEmpty ( member . remark ) ? "" : " -- " ) + item . remark ;
session . Updateable ( member ) . ExecuteCommand ( ) ;
memberIdDic . Add ( item . id , member . id ) ;
}
else
{
item . group_id = 0 ;
var robot = robots . FirstOrDefault ( f = > f . name = = item . robot_name & & f . type = = item . robot_type ) ;
item . robot_name = robot = = null ? string . Empty : robot . name ;
if ( robot ! = null ) item . robot_type = robot . type ;
item . usernick = Util . RemoveEmoji ( item . usernick ) ;
item . realnick = Util . RemoveEmoji ( item . realnick ) ;
//TODO 还要绑定上下级,这里还要绑定机器人信息
id = session . Insertable ( item ) . ExecuteReturnIdentity ( ) ;
memberIdDic . Add ( item . id , id ) ;
if ( item . inviter_id ! = 0 )
bindDic . Add ( id , ( int ) item . inviter_id ) ;
}
AddJindu2 ( ) ;
}
AddJindu2 ( "用户数据表 数据导入成功" ) ;
member_info_src . Clear ( ) ; //释放
member_info . Clear ( ) ; //释放
#region 将 老 的 上 级 替 换 成 对 应 的 新 id用户
AddJindu2 ( "用户数据表 正在绑定上下级关系中..." , bindDic . Count ) ;
if ( bindDic . Count ! = 0 )
{
foreach ( var item in bindDic )
{
var member = session . FindMemberInfoById ( item . Key ) ;
if ( member ! = null & & memberIdDic . ContainsKey ( member . inviter_id ) )
{
member . inviter_id = memberIdDic [ member . inviter_id ] ;
session . SaveOrUpdate ( member ) ;
}
AddJindu2 ( ) ;
}
}
bindDic . Clear ( ) ;
AddJindu2 ( "用户数据表 绑定上下级成功" ) ;
#endregion
#region fl_alimama_order_lastnum 用 户 订 单 尾 号
AddJindu2 ( "正在判断表:用户订单尾号表 是否存在" ) ;
if ( list . Contains ( "fl_alimama_order_lastnum" ) & & srclist . Contains ( "fl_alimama_order_lastnum" ) )
{
AddJindu2 ( "用户订单尾号表 存在,正在读取数据..." ) ;
var alimama_order_lastnum = session . Find < fl_alimama_order_lastnum > ( "select * from fl_alimama_order_lastnum" , new { } ) ; //现有的
var alimama_order_lastnum_src = srcSession . Find < fl_alimama_order_lastnum > ( "select * from fl_alimama_order_lastnum" , new { } ) ; //导入的
AddJindu2 ( "用户订单尾号表 导入中..." , alimama_order_lastnum_src . Count ) ;
foreach ( var item in alimama_order_lastnum_src )
{
if ( memberIdDic . ContainsKey ( item . userid ) )
{
var order_lastnum = alimama_order_lastnum . FirstOrDefault ( f = > f . userid = = memberIdDic [ item . userid ] ) ;
if ( order_lastnum = = null ) //不存在的插入,存在的不管
{
item . userid = memberIdDic [ item . userid ] ;
session . Insertable ( item ) . ExecuteCommand ( ) ;
}
}
AddJindu2 ( ) ;
}
alimama_order_lastnum_src . Clear ( ) ;
alimama_order_lastnum . Clear ( ) ;
}
AddJindu2 ( "用户订单尾号表 合并成功" ) ;
#endregion
#region 黄 海 的 合 并 需 要 注 释 掉
#region fl_order_alimama 淘 宝 订 单
AddJindu2 ( "正在判断表:淘宝订单表 是否存在" ) ;
if ( list . Contains ( "fl_order_alimama" ) & & srclist . Contains ( "fl_order_alimama" ) )
{
AddJindu2 ( "淘宝订单表 存在,正在读取数据...(数据越多等待时间越长)" ) ;
var order_alimama = session . Find < fl_order_alimama > ( "select * from fl_order_alimama" , new { } ) ; //现有的数据
var order_alimama_src = srcSession . Find < fl_order_alimama > ( "select * from fl_order_alimama where db_userid != 0" , new { } ) ; //导入的数据
var _temp = new List < fl_order_alimama > ( ) ; //要保存的订单
var _temp2 = new List < fl_order_alimama > ( ) ; //本地有的订单,但是没有被绑定
AddJindu2 ( $"淘宝订单表 导入中..." , order_alimama_src . Count ) ;
foreach ( var item in order_alimama_src )
{
var order = order_alimama . FirstOrDefault ( f = > f . trade_id = = item . trade_id & & f . trade_parent_id = = item . trade_parent_id ) ; //匹配订单
if ( order = = null )
{
if ( item . db_userid ! = 0 )
{
if ( memberIdDic . ContainsKey ( item . db_userid ) )
item . db_userid = memberIdDic [ item . db_userid ] ;
else //要是用户不存在,改订单不属于任何人
item . db_userid = 0 ;
}
item . id = 0 ;
_temp . Add ( item ) ;
}
else
{
if ( order . db_userid = = 0 & & item . db_userid ! = 0 ) //本地的订单没有绑定用户,但是导入的的订单已经绑定了用户
{
if ( memberIdDic . ContainsKey ( item . db_userid ) )
order . db_userid = memberIdDic [ item . db_userid ] ;
else //要是用户不存在,改订单不属于任何人
order . db_userid = 0 ;
}
_temp2 . Add ( order ) ;
}
AddJindu2 ( ) ;
}
order_alimama_src . Clear ( ) ;
order_alimama . Clear ( ) ;
AddJindu2 ( "淘宝订单表 保存中..." ) ;
var _num1 = ( int ) Math . Ceiling ( ( decimal ) _temp . Count / 500 m ) ;
var _num2 = ( int ) Math . Ceiling ( ( decimal ) _temp2 . Count / 500 m ) ;
var _num = _num1 + _num2 ;
for ( int o = 1 ; o < = _num1 ; o + + )
{
var _list = _temp . Skip ( ( o - 1 ) * 500 ) . Take ( 500 ) . ToList ( ) ;
session . Insertable ( _list . ToArray ( ) ) . ExecuteCommand ( ) ;
AddJindu2 ( $"淘宝订单表 保存中...{_num - o}" ) ;
}
for ( int o = 1 ; o < = _num2 ; o + + )
{
var _list = _temp2 . Skip ( ( o - 1 ) * 500 ) . Take ( 500 ) . ToList ( ) ;
session . Updateable ( _list . ToArray ( ) ) . ExecuteCommand ( ) ;
AddJindu2 ( $"淘宝订单表 保存中...{_num - o - _num1}" ) ;
}
_temp2 . Clear ( ) ;
_temp . Clear ( ) ;
AddJindu2 ( "淘宝订单表 保存成功" ) ;
}
#endregion
#region fl_order_pinduoduo 拼 多 多 订 单
AddJindu2 ( "正在判断表:拼多多订单表 是否存在" ) ;
if ( list . Contains ( "fl_order_pinduoduo" ) & & srclist . Contains ( "fl_order_pinduoduo" ) )
{
AddJindu2 ( "拼多多订单表 存在,正在读取数据...(数据越多等待时间越长)" ) ;
var order_pinduoduo = session . Find < fl_order_pinduoduo > ( "select * from fl_order_pinduoduo" , new { } ) ;
var order_pinduoduo_src = srcSession . Find < fl_order_pinduoduo > ( "select * from fl_order_pinduoduo where db_userid != 0" , new { } ) ;
var _temp = new List < fl_order_pinduoduo > ( ) ;
var _temp2 = new List < fl_order_pinduoduo > ( ) ;
AddJindu2 ( $"拼多多订单表 导入中..." , order_pinduoduo_src . Count ) ;
foreach ( var item in order_pinduoduo_src )
{
var order = order_pinduoduo . FirstOrDefault ( f = > f . order_sn = = item . order_sn ) ;
if ( order = = null )
{
if ( item . db_userid ! = 0 )
{
if ( memberIdDic . ContainsKey ( item . db_userid ) )
item . db_userid = memberIdDic [ item . db_userid ] ;
else //要是用户不存在,改订单不属于任何人
item . db_userid = 0 ;
}
item . id = 0 ;
_temp . Add ( item ) ;
}
else
{
if ( order . db_userid = = 0 & & item . db_userid ! = 0 ) //本地的订单没有绑定用户,但是导入的的订单已经绑定了用户
{
if ( memberIdDic . ContainsKey ( item . db_userid ) )
order . db_userid = memberIdDic [ item . db_userid ] ;
else //要是用户不存在,改订单不属于任何人
order . db_userid = 0 ;
}
_temp2 . Add ( order ) ;
}
AddJindu2 ( ) ;
}
order_pinduoduo . Clear ( ) ;
order_pinduoduo_src . Clear ( ) ;
AddJindu2 ( "拼多多订单表 保存中..." ) ;
var _num1 = ( int ) Math . Ceiling ( ( decimal ) _temp . Count / 500 m ) ;
var _num2 = ( int ) Math . Ceiling ( ( decimal ) _temp2 . Count / 500 m ) ;
var _num = _num1 + _num2 ;
for ( int o = 1 ; o < = _num1 ; o + + )
{
var _list = _temp . Skip ( ( o - 1 ) * 500 ) . Take ( 500 ) . ToList ( ) ;
session . Insertable ( _list . ToArray ( ) ) . ExecuteCommand ( ) ;
AddJindu2 ( $"拼多多订单表 保存中...{_num - o}" ) ;
}
for ( int o = 1 ; o < = _num2 ; o + + )
{
var _list = _temp2 . Skip ( ( o - 1 ) * 500 ) . Take ( 500 ) . ToList ( ) ;
session . Updateable ( _list . ToArray ( ) ) . ExecuteCommand ( ) ;
AddJindu2 ( $"拼多多订单表 保存中...{_num - o - _num1}" ) ;
}
_temp2 . Clear ( ) ;
_temp . Clear ( ) ;
AddJindu2 ( "拼多多订单表 保存成功" ) ;
}
#endregion
#region fl_order_jingdong 京 东 订 单
AddJindu2 ( "正在判断表:京东订单表 是否存在" ) ;
if ( list . Contains ( "fl_order_jingdong" ) & & srclist . Contains ( "fl_order_jingdong" ) )
{
AddJindu2 ( "京东订单表 存在,正在读取数据...(数据越多等待时间越长)" ) ;
var order_jingdong = session . Find < fl_order_jingdong > ( "select * from fl_order_jingdong" , new { } ) ;
var order_jingdong_src = srcSession . Find < fl_order_jingdong > ( "select * from fl_order_jingdong where db_userid != 0" , new { } ) ;
var _temp = new List < fl_order_jingdong > ( ) ;
var _temp2 = new List < fl_order_jingdong > ( ) ;
AddJindu2 ( $"京东订单表 导入中..." , order_jingdong_src . Count ) ;
foreach ( var item in order_jingdong_src )
{
var order = order_jingdong . FirstOrDefault ( f = > f . orderId = = item . orderId ) ;
if ( order = = null )
{
if ( item . db_userid ! = 0 )
{
if ( memberIdDic . ContainsKey ( item . db_userid ) )
item . db_userid = memberIdDic [ item . db_userid ] ;
else //要是用户不存在,改订单不属于任何人
item . db_userid = 0 ;
}
item . id = 0 ;
_temp . Add ( item ) ;
}
else
{
order = order_jingdong . FirstOrDefault ( f = > f . orderId = = item . orderId & & f . db_userid = = 0 ) ;
if ( order ! = null & & order . db_userid = = 0 & & item . db_userid ! = 0 ) //本地的订单没有绑定用户,但是导入的的订单已经绑定了用户
{
if ( memberIdDic . ContainsKey ( item . db_userid ) )
order . db_userid = memberIdDic [ item . db_userid ] ;
else //要是用户不存在,改订单不属于任何人
order . db_userid = 0 ;
}
if ( order ! = null )
_temp2 . Add ( order ) ;
else
{
}
}
AddJindu2 ( ) ;
}
order_jingdong_src . Clear ( ) ;
order_jingdong . Clear ( ) ;
AddJindu2 ( "京东订单表 保存中..." ) ;
var _num1 = ( int ) Math . Ceiling ( ( decimal ) _temp . Count / 500 m ) ;
var _num2 = ( int ) Math . Ceiling ( ( decimal ) _temp2 . Count / 500 m ) ;
var _num = _num1 + _num2 ;
for ( int o = 1 ; o < = _num1 ; o + + )
{
var _list = _temp . Skip ( ( o - 1 ) * 500 ) . Take ( 500 ) . ToList ( ) ;
session . Insertable ( _list . ToArray ( ) ) . ExecuteCommand ( ) ;
AddJindu2 ( $"京东订单表 保存中...{_num - o}" ) ;
}
for ( int o = 1 ; o < = _num2 ; o + + )
{
var _list = _temp2 . Skip ( ( o - 1 ) * 500 ) . Take ( 500 ) . ToList ( ) ;
session . Updateable ( _list . ToArray ( ) ) . ExecuteCommand ( ) ;
AddJindu2 ( $"京东订单表 保存中...{_num - o - _num1}" ) ;
}
_temp . Clear ( ) ;
_temp2 . Clear ( ) ;
AddJindu2 ( "京东订单表 保存成功" ) ;
}
#endregion
#region fl_order_weipinhui 唯 品 会 订 单
AddJindu2 ( "正在判断表:唯品会订单 是否存在" ) ;
if ( list . Contains ( "fl_order_weipinhui" ) & & srclist . Contains ( "fl_order_weipinhui" ) )
{
AddJindu2 ( "唯品会订单表 存在,正在读取数据...(数据越多等待时间越长)" ) ;
var order_weipinhui = session . Find < fl_order_weipinhui > ( "select * from fl_order_weipinhui" , new { } ) ; //现有的数据
var order_weipinhui_src = srcSession . Find < fl_order_weipinhui > ( "select * from fl_order_weipinhui where db_userid != 0" , new { } ) ; //导入的数据
var _temp = new List < fl_order_weipinhui > ( ) ; //要保存的订单
var _temp2 = new List < fl_order_weipinhui > ( ) ; //本地有的订单,但是没有被绑定
AddJindu2 ( $"唯品会订单表 导入中..." , order_weipinhui_src . Count ) ;
foreach ( var item in order_weipinhui_src )
{
var order = order_weipinhui . FirstOrDefault ( f = > f . orderSn = = item . orderSn & & f . goodsId = = item . goodsId & & f . sizeId = = item . sizeId ) ; //匹配订单
if ( order = = null )
{
if ( item . db_userid ! = 0 )
{
if ( memberIdDic . ContainsKey ( item . db_userid ) )
item . db_userid = memberIdDic [ item . db_userid ] ;
else //要是用户不存在,改订单不属于任何人
item . db_userid = 0 ;
}
item . id = 0 ;
_temp . Add ( item ) ;
}
else
{
if ( order . db_userid = = 0 & & item . db_userid ! = 0 ) //本地的订单没有绑定用户,但是导入的的订单已经绑定了用户
{
if ( memberIdDic . ContainsKey ( item . db_userid ) )
order . db_userid = memberIdDic [ item . db_userid ] ;
else //要是用户不存在,改订单不属于任何人
order . db_userid = 0 ;
}
_temp2 . Add ( order ) ;
}
AddJindu2 ( ) ;
}
order_weipinhui_src . Clear ( ) ;
order_weipinhui . Clear ( ) ;
AddJindu2 ( "唯品会订单表 保存中..." ) ;
var _num1 = ( int ) Math . Ceiling ( ( decimal ) _temp . Count / 500 m ) ;
var _num2 = ( int ) Math . Ceiling ( ( decimal ) _temp2 . Count / 500 m ) ;
var _num = _num1 + _num2 ;
for ( int o = 1 ; o < = _num1 ; o + + )
{
var _list = _temp . Skip ( ( o - 1 ) * 500 ) . Take ( 500 ) . ToList ( ) ;
session . Insertable ( _list . ToArray ( ) ) . ExecuteCommand ( ) ;
AddJindu2 ( $"唯品会订单表 保存中...{_num - o}" ) ;
}
for ( int o = 1 ; o < = _num2 ; o + + )
{
var _list = _temp2 . Skip ( ( o - 1 ) * 500 ) . Take ( 500 ) . ToList ( ) ;
session . Updateable ( _list . ToArray ( ) ) . ExecuteCommand ( ) ;
AddJindu2 ( $"唯品会订单表 保存中...{_num - o - _num1}" ) ;
}
_temp2 . Clear ( ) ;
_temp . Clear ( ) ;
AddJindu2 ( "唯品会订单表 保存成功" ) ;
}
#endregion
#endregion
#region fl_point_hist 积 分 日 志
AddJindu2 ( "正在判断表:积分日志表 是否存在" ) ;
if ( list . Contains ( "fl_point_hist" ) & & srclist . Contains ( "fl_point_hist" ) )
{
AddJindu2 ( "积分日志表 存在,正在读取数据..." ) ;
var point_hist_src = srcSession . Find < fl_point_hist > ( "select * from fl_point_hist" , new { } ) ;
AddJindu2 ( "积分日志表 导入中..." , point_hist_src . Count ) ;
foreach ( var item in point_hist_src )
{
item . uid = memberIdDic . ContainsKey ( ( int ) item . uid ) ? memberIdDic [ ( int ) item . uid ] : 0 ;
if ( item . rid ! = 0 & & item . uid ! = 0 )
{
var member = session . FindMemberInfoById ( item . uid ) ;
if ( member ! = null )
{
var robot = robots . FirstOrDefault ( f = > f . name = = member . robot_name & & f . type = = member . robot_type ) ;
item . rid = robot = = null ? 0 : robot . id ;
}
}
item . id = 0 ;
AddJindu2 ( ) ;
}
var num = ( int ) Math . Ceiling ( ( decimal ) point_hist_src . Count / 500 m ) ;
for ( int o = 1 ; o < = num ; o + + )
{
var _list = point_hist_src . Skip ( ( o - 1 ) * 500 ) . Take ( 500 ) . ToList ( ) ;
session . Insertable ( _list . ToArray ( ) ) . ExecuteCommand ( ) ;
}
AddJindu2 ( "积分日志表 保存成功" ) ;
point_hist_src . Clear ( ) ;
}
else AddJindu2 ( "积分日志表 不存在" ) ;
#endregion
#region fl_query_hist 查 询 日 志 xxx这个不导了
//AddJindu2("正在判断表:查询日志表 是否存在");
//if (list.Contains("fl_query_hist"))
//{
// AddJindu2("查询日志表 存在");
// var query_hist = srcSession.Find<fl_query_hist>("select * from fl_query_hist", new { });
// AddJindu2("查询日志表 导入中...", query_hist.Count);
// foreach (var item in query_hist)
// {
// item.userid = memberIdDic.ContainsKey((int)item.userid) ? memberIdDic[(int)item.userid] : 0;
// item.id = 0;
// AddJindu2();
// }
// var _num = (int)Math.Ceiling((decimal)query_hist.Count / 500m);
// for (int o = 1; o <= _num; o++)
// {
// var _list = query_hist.Skip((o - 1) * 500).Take(500).ToList();
// session.Insertable(_list.ToArray()).ExecuteCommand();
// }
// AddJindu2("查询日志表 导入成功");
//}
//else AddJindu2("查询日志表 不存在");
#endregion
#region fl_private_pid 用 户 私 人 pid表
AddJindu2 ( "正在判断表: 用户私人pid表 是否存在" ) ;
if ( list . Contains ( "fl_private_pid" ) & & srclist . Contains ( "fl_private_pid" ) )
{
AddJindu2 ( "用户私人pid表 存在,正在读取数据..." ) ;
var private_pid = srcSession . Find < fl_private_pid > ( "select * from fl_private_pid" , new { } ) ;
AddJindu2 ( "用户私人pid表 导入中..." , private_pid . Count ) ;
List < fl_private_pid > items = new List < fl_private_pid > ( ) ;
foreach ( var item in private_pid )
{
if ( memberIdDic . ContainsKey ( ( int ) item . uid ) )
{
item . uid = memberIdDic [ ( int ) item . uid ] ;
item . id = 0 ;
items . Add ( item ) ;
}
AddJindu2 ( ) ;
}
var _num_ = ( int ) Math . Ceiling ( ( decimal ) items . Count / 500 m ) ;
for ( int o = 1 ; o < = _num_ ; o + + )
{
var _list = items . Skip ( ( o - 1 ) * 500 ) . Take ( 500 ) . ToList ( ) ;
session . Insertable ( _list . ToArray ( ) ) . ExecuteCommand ( ) ;
}
items . Clear ( ) ;
private_pid . Clear ( ) ;
AddJindu2 ( "用户私人pid表 导入成功" ) ;
}
else
AddJindu2 ( "用户私人pid表 不存在" ) ;
#endregion
#region fl_exchange_info 积 分 兑 换 记 录
AddJindu2 ( "正在判断表:积分兑换记录表 是否存在" ) ;
if ( list . Contains ( "fl_exchange_info" ) & & srclist . Contains ( "fl_exchange_info" ) )
{
AddJindu2 ( "积分兑换记录表 存在,正在读取数据..." ) ;
AddJindu2 ( "积分兑换记录表 导入中...(速度可能有点慢)" ) ;
InsertData ( session , srcSession , list , "fl_exchange_info" , "uid" , memberIdDic , defaultFieldName : "rid" ) ;
//重新查询导入后的数据,进行rid绑定
var unRobotBind = session . Find < fl_exchange_info > ( "select * from fl_exchange_info where rid = 0" , new { } ) ;
if ( unRobotBind ! = null & & unRobotBind . Count ! = 0 )
{
foreach ( var item in unRobotBind )
{
var _member = session . FindMemberInfoById ( item . uid ) ;
if ( _member ! = null )
{
var robot = robots . FirstOrDefault ( f = > f . name = = _member . robot_name & & f . type = = _member . robot_type ) ;
item . rid = robot = = null ? 0 : robot . id ;
session . Saveable ( item ) . ExecuteCommand ( ) ;
}
AddJindu2 ( ) ;
}
}
if ( unRobotBind ! = null )
unRobotBind . Clear ( ) ;
AddJindu2 ( "积分兑换记录表 导入完成" ) ;
}
else AddJindu2 ( "积分兑换记录表 不存在" ) ;
#endregion
#region fl_plugin_pointmanage_checkin_info 签 到 数 据 xxx这个不导入
//AddJindu2("正在判断表:签到数据表 是否存在");
//if (list.Contains("fl_plugin_pointmanage_checkin_info"))
//{
// AddJindu2("签到数据表 存在");
// var plugin_pointmanage_checkin_info = session.Queryable("fl_plugin_pointmanage_checkin_info", "").ToDataTable();
// var plugin_pointmanage_checkin_info_src = srcSession.Queryable("fl_plugin_pointmanage_checkin_info", "").ToDataTable();
// List<string> fieldList = new List<string>(); //字段
// string sql = string.Empty;
// string name = "fl_plugin_pointmanage_checkin_info";
// if (conn.tempConfig.DatabaseType == DatabaseType.MYSQL)
// sql = "select COLUMN_NAME as name from information_schema.COLUMNS where table_name = '" + name + "'";
// else
// sql = "pragma table_info('" + name + "')";
// var fields = srcSession.FindTable(sql, new { });
// for (int k = 0; k < fields.Rows.Count; k++)
// {
// var temp = fields.Rows[k]["name"].ToString();
// if (temp.ToLower() != "id")
// fieldList.Add(temp);
// }
// sql = "select * from " + name + "";
// var resultSrc = srcSession.FindTable(sql);
// if (resultSrc.Rows.Count > 0)
// {
// var result = session.FindTable(sql);
// List<string> valueList = new List<string>(); //值
// for (int k = 0; k < resultSrc.Rows.Count; k++)
// {
// #region 两个数据库数据合并
// if (result.Rows.Count > 0)
// {
// var uidSrc = long.Parse(resultSrc.Rows[k]["uid"].ToString());
// if (memberIdDic.ContainsKey((int)uidSrc))
// {
// var uidSrcStr = memberIdDic[(int)uidSrc].ToString();
// for (int i = 0; i < result.Rows.Count; i++)
// {
// if (result.Rows[i]["uid"].ToString() == uidSrcStr)
// {
// var daysSrc =
// long.Parse(resultSrc.Rows[k]["days"].ToString());
// var days = long.Parse(result.Rows[i]["days"].ToString());
// var sumdaySrc =
// long.Parse(resultSrc.Rows[k]["sumday"].ToString());
// var sumday = long.Parse(result.Rows[i]["sumday"].ToString());
// var timeSrc =
// DateTime.Parse(resultSrc.Rows[k]["sumday"].ToString());
// var time = DateTime.Parse(
// result.Rows[i]["sumday"].ToString());
// session.ExcuteSQL(
// "update " + name +
// " set days = @days,sumday = @sumday,time = @time where id = @id",
// new
// {
// days = days + daysSrc,
// sumday = sumdaySrc + sumday,
// time = (timeSrc > time ? timeSrc : time),
// id = long.Parse(result.Rows[i]["id"].ToString())
// });
// uidSrcStr = string.Empty; //赋值为空, 用于外部continue;
// break;
// }
// }
// if (string.IsNullOrEmpty(uidSrcStr)) continue;
// }
// }
// #endregion
// var _list = new List<string>();
// var temp = string.Empty;
// foreach (var item in fieldList)
// {
// if (item.ToLower() == "id") continue;
// temp = resultSrc.Rows[k][item].ToString();
// if (item == "uid")
// {
// if (memberIdDic.ContainsKey(int.Parse(temp)))
// temp = memberIdDic[int.Parse(temp)].ToString();
// }
// temp = temp.ToLower() == "false" ? "0" :
// temp.ToLower() == "true" ? "1" :
// temp.Replace(@"\", @"\\").Replace("'", "\''");
// _list.Add(RemoveEmoji(temp));
// }
// valueList.Add("'" + string.Join("','", _list) + "'");
// }
// if (valueList.Count != 0)
// {
// var num1 = (int)Math.Ceiling((decimal)valueList.Count / 100m);
// int size = 100;
// for (int o = 1; o <= num1; o++)
// {
// var _list = valueList.Skip((o - 1) * size).Take(size).ToList();
// sql = "INSERT INTO " + name + " (" + string.Join(",", fieldList) +
// ") VALUES (" + string.Join("),(", _list) + ")";
// session.ExcuteSQL(sql, new { });
// }
// }
// }
//}
//else AddJindu2("签到数据表 不存在");
#endregion
#region fl_plugin_userfission_user_invitation_code 用 户 邀 请 码 xxx这个不导入
//InsertData(session, srcSession, list, "fl_plugin_userfission_user_invitation_code", "member_info_id", memberIdDic);
#endregion
}
else AddJindu2 ( "用户数据表 不存在" ) ;
#endregion
#region fl_order_refund_alimama 维 权 的 订 单 数 据 表
//AddJindu2("正在判断表:维权的订单数据表 是否存在");
//if (list.Contains("fl_order_refund_alimama") && srclist.Contains("fl_order_refund_alimama"))
//{
// AddJindu2("维权的订单数据表 存在,正在读取数据...");
// var order_refund_alimama = session.Find<fl_order_refund_alimama>("select * from fl_order_refund_alimama", new { });
// var order_refund_alimama_src = srcSession.Find<fl_order_refund_alimama>("select * from fl_order_refund_alimama", new { });
// AddJindu2($"维权的订单数据表 导入中...", order_refund_alimama_src.Count);
// foreach (var item in order_refund_alimama_src)
// {
// var order_refund = order_refund_alimama.FirstOrDefault(f => f.tbtradeparentid == item.tbtradeparentid && f.tbtradeid == item.tbtradeid);
// if (order_refund == null)
// {
// item.id = 0;
// session.Insertable(item).ExecuteCommand();
// }
// AddJindu2();
// }
// order_refund_alimama.Clear();
// order_refund_alimama_src.Clear();
// AddJindu2("维权的订单数据表 导入成功");
//}
#endregion
#region fl_plugin_userfission_applyfriend_info 加 好 友 申 请 xxx
//InsertData(session, srcSession, list, "fl_plugin_userfission_applyfriend_info");
#endregion
#region fl_plugin_userfission_invite_record 用 户 邀 请 进 群 邀 请 记 录
//InsertData(session, srcSession, list, "fl_plugin_userfission_invite_record");
#endregion
}
session . Commit ( ) ;
Thread . Sleep ( 200 ) ;
AddJindu2 ( "所有数据已经全部合并完成,并提交成功!" ) ;
Thread . Sleep ( 2000 ) ;
}
catch ( Exception ex )
{
AddJindu2 ( "合并操作执行异常,正在回滚数据..." ) ;
session . Rollback ( ) ;
AddJindu2 ( "合并操作执行异常,数据回滚完毕!" ) ;
this . Invoke ( new Action ( delegate { ShowError ( ex ) ; } ) ) ;
}
finally
{
this . Invoke ( new Action ( delegate
{
simpleButton10 . Enabled = true ;
} ) ) ;
}
} ) ;
}
catch ( Exception ex )
{
if ( ! this . IsDisposed ) ShowError ( ex ) ;
}
}
private void comboBoxEdit2_SelectedIndexChanged ( object sender , EventArgs e )
{
if ( comboBoxEdit2 . SelectedIndex = = 5 )
{
checkBox4 . Enabled = true ;
if ( checkBox4 . Checked )
{
panelControl1 . Visible = true ;
labelControl34 . Visible = labelControl32 . Visible = textEdit1 . Visible = simpleButton1 . Visible = false ;
}
else
{
panelControl1 . Visible = false ;
labelControl34 . Visible = labelControl32 . Visible = textEdit1 . Visible = simpleButton1 . Visible = true ;
}
}
else
{
labelControl34 . Visible = labelControl32 . Visible = textEdit1 . Visible = simpleButton1 . Visible = true ;
checkBox4 . Enabled = panelControl1 . Visible = checkBox4 . Checked = false ;
}
}
private void checkBox4_CheckedChanged ( object sender , EventArgs e )
{
panelControl1 . Visible = checkBox4 . Checked ;
labelControl34 . Visible = labelControl32 . Visible = textEdit1 . Visible = simpleButton1 . Visible = ! checkBox4 . Checked ;
}
private void simpleButton13_Click ( object sender , EventArgs e )
{
var session = ApiClient . GetSession ( ) ;
session . BeginTransaction ( ) ;
try
{
var members = session . Find < fl_member_info > ( "select * from fl_member_info" ) ;
var tblist = session . Find < fl_order_alimama > ( "select * from fl_order_alimama where db_userid != 0 and db_robotname = ''" ) ;
foreach ( var item in tblist )
{
var member = members . FirstOrDefault ( f = > f . id = = item . db_userid ) ;
if ( member ! = null )
{
item . db_robotname = member . robot_name ;
item . db_robottype = member . robot_type ;
}
session . SaveOrUpdate ( item ) ;
}
var pddlist = session . Find < fl_order_pinduoduo > ( "select * from fl_order_pinduoduo where db_userid != 0 and db_robotname = ''" ) ;
foreach ( var item in pddlist )
{
var member = members . FirstOrDefault ( f = > f . id = = item . db_userid ) ;
if ( member ! = null )
{
item . db_robotname = member . robot_name ;
item . db_robottype = member . robot_type ;
}
session . SaveOrUpdate ( item ) ;
}
var jdlist = session . Find < fl_order_jingdong > ( "select * from fl_order_jingdong where db_userid != 0 and db_robotname = ''" ) ;
foreach ( var item in jdlist )
{
var member = members . FirstOrDefault ( f = > f . id = = item . db_userid ) ;
if ( member ! = null )
{
item . db_robotname = member . robot_name ;
item . db_robottype = member . robot_type ;
}
session . SaveOrUpdate ( item ) ;
}
session . Commit ( ) ;
}
catch ( Exception ex )
{
session . Rollback ( ) ;
}
}
private void simpleButton15_Click ( object sender , EventArgs e )
{
try
{
var EditRobotNameForm = new EditRobotNameForm ( ) ;
EditRobotNameForm . ShowDialog ( ) ;
var RobotNameDic = EditRobotNameForm . RobotNameDic ;
if ( RobotNameDic . Count = = 0 )
labelControl48 . Text = "无设置" ;
else
{
labelControl48 . Text = "已经设置" ;
labelControl48 . Tag = RobotNameDic ;
}
}
catch ( Exception ex )
{
}
}
private async void simpleButton16_Click ( object sender , EventArgs e )
{
try
{
if ( labelControl48 . Tag = = null ) throw new Exception ( "请先设置要修改的机器人账号,点击【修改数据】设置." ) ;
simpleButton12 . Enabled = simpleButton15 . Enabled = simpleButton16 . Enabled = false ;
Action restatr = null ;
EventClient . StopParsing = false ;
await Task . Run ( ( ) = >
{
var session = ApiClient . GetSession ( ) ;
session . BeginTransaction ( ) ;
try
{
var RobotNameDic = labelControl48 . Tag as Dictionary < string , string > ;
AddJindu3 ( $"获取需要修改的数据{RobotNameDic.Count}条" , RobotNameDic . Count ) ;
Thread . Sleep ( 1300 ) ;
foreach ( KeyValuePair < string , string > item in RobotNameDic )
{
if ( session . TableExist ( "fl_robot_info" ) )
{
AddJindu3 ( $"正在修改{item.Key},表 fl_robot_info 数据..." ) ;
session . ExcuteSQL ( "update fl_robot_info set name = @newName where name = @robot_name" , new { newName = item . Value , robot_name = item . Key } ) ;
}
if ( session . TableExist ( "fl_member_info" ) )
{
AddJindu3 ( $"正在修改{item.Key},表 fl_member_info 数据..." ) ;
session . ExcuteSQL ( "update fl_member_info set robot_name = @newName where robot_name = @robot_name" , new { newName = item . Value , robot_name = item . Key } ) ;
}
if ( session . TableExist ( "fl_order_alimama" ) )
{
AddJindu3 ( $"正在修改{item.Key},表 fl_order_alimama 数据..." ) ;
session . ExcuteSQL ( "update fl_order_alimama set db_robotname = @newName where db_robotname = @robot_name" , new { newName = item . Value , robot_name = item . Key } ) ;
}
if ( session . TableExist ( "fl_order_pinduoduo" ) )
{
AddJindu3 ( $"正在修改{item.Key},表 fl_order_pinduoduo 数据..." ) ;
session . ExcuteSQL ( "update fl_order_pinduoduo set db_robotname = @newName where db_robotname = @robot_name" , new { newName = item . Value , robot_name = item . Key } ) ;
}
if ( session . TableExist ( "fl_order_jingdong" ) )
{
AddJindu3 ( $"正在修改{item.Key},表 fl_order_jingdong 数据..." ) ;
session . ExcuteSQL ( "update fl_order_jingdong set db_robotname = @newName where db_robotname = @robot_name" , new { newName = item . Value , robot_name = item . Key } ) ;
}
if ( session . TableExist ( "fl_plugin_pointmanage_exchange_list" ) )
{
AddJindu3 ( $"正在修改{item.Key},表 fl_plugin_pointmanage_exchange_list 数据..." ) ;
session . ExcuteSQL ( "update fl_plugin_pointmanage_exchange_list set robot_name = @newName where robot_name = @robot_name" , new { newName = item . Value , robot_name = item . Key } ) ;
}
if ( session . TableExist ( "fl_plugin_userfission_applyfriend_info" ) )
{
AddJindu3 ( $"正在修改{item.Key},表 fl_plugin_userfission_applyfriend_info 数据..." ) ;
session . ExcuteSQL ( "update fl_plugin_userfission_applyfriend_info set robot_name = @newName where robot_name = @robot_name" , new { newName = item . Value , robot_name = item . Key } ) ;
}
if ( session . TableExist ( "fl_query_hist" ) )
{
AddJindu3 ( $"正在修改{item.Key},表 fl_query_hist 数据..." ) ;
session . ExcuteSQL ( "update fl_query_hist set robot_name = @newName where robot_name = @robot_name" , new { newName = item . Value , robot_name = item . Key } ) ;
}
if ( session . TableExist ( "fl_wechat_device" ) )
{
AddJindu3 ( $"正在修改{item.Key},表 fl_wechat_device 数据..." ) ;
session . ExcuteSQL ( "update fl_wechat_device set weixinhao = @newName where weixinhao = @robot_name" , new { newName = item . Value , robot_name = item . Key } ) ;
}
if ( session . TableExist ( "fl_plugin_autoanswer__log" ) )
{
AddJindu3 ( $"正在修改{item.Key},表 fl_plugin_autoanswer__log 数据..." ) ;
session . ExcuteSQL ( "update fl_plugin_autoanswer__log set robot_name = @newName where robot_name = @robot_name" , new { newName = item . Value , robot_name = item . Key } ) ;
}
AddJindu3 ( $"修改{item.Key}相关的表数据成功~!" ) ;
AddJindu3 ( ) ;
session . Commit ( ) ;
AddJindu3 ( "所有账号修改完毕!!!" ) ;
restatr = ReStart ;
}
}
catch ( Exception ex )
{
AddJindu3 ( "修改异常,正在回滚数据~" ) ;
session . Rollback ( ) ;
ShowError ( ex ) ;
AddJindu3 ( "修改异常,回滚数据完成~!" ) ;
}
} ) ;
EventClient . StopParsing = true ;
simpleButton12 . Enabled = simpleButton15 . Enabled = simpleButton16 . Enabled = true ;
restatr ? . Invoke ( ) ;
}
catch ( Exception ex )
{
if ( ! this . IsDisposed ) ShowError ( "批量修改异常:" + ex . Message + " - " + ex . StackTrace ) ;
}
}
/// <summary>
/// 软件重启
/// </summary>
public void ReStart ( )
{
try
{
labelControl48 . Text = "无设置" ;
labelControl48 . Tag = null ;
//覆盖成功提示用户是否重启软件
if ( MessageBox . Show ( "机器人账号修改成功,启动后生效,是否马上重启软件?" , "提示" , MessageBoxButtons . YesNo , MessageBoxIcon . Question ) = = DialogResult . Yes )
{
#region 是 否 允 许 软 件 重 启 [ 创 建 一 个 名 为 reset 的 空 文 件 , 在 FLSystem的Program中判断这个文件是否存在 , 存 在 将 允 许 重 启 ]
var reset_program = Util . MapFile ( "reset" , "File" ) ;
File . Create ( reset_program ) ;
#endregion
Application . ExitThread ( ) ;
Thread thtmp = new Thread ( new ParameterizedThreadStart ( run ) ) ;
object appName = Application . ExecutablePath ;
Thread . Sleep ( 500 ) ;
thtmp . Start ( appName ) ;
}
}
catch ( Exception ex )
{
ShowError ( ex ) ;
}
}
#region 念 初 新 版
Nianchu nc = null ;
/// <summary>
/// 验证token的有效性
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button6_Click ( object sender , EventArgs e )
{
try
{
if ( string . IsNullOrWhiteSpace ( textBox7 . Text ) ) throw new Exception ( "请先填写念初token" ) ;
nc = new Nianchu ( textBox7 . Text ) ;
ShowSuccess ( "验证成功,请进行下一步操作!" ) ;
}
catch ( Exception ex )
{
nc = null ;
ShowError ( $"{ex.Message} - {ex.StackTrace}" ) ;
}
}
/// <summary>
/// 开始念初导入
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button5_Click ( object sender , EventArgs e )
{
try
{
if ( string . IsNullOrWhiteSpace ( textBox7 . Text ) | | nc = = null ) throw new Exception ( "请先填写念初token" ) ;
Task . Run ( ( ) = >
{
try
{
OnEvent ( this , "念初导入开始执行..." ) ;
#region 导 入 念 初 用 户
if ( checkBox19 . Checked )
{
try
{
//导入用户操作(获取机器人列表,机器人对应用户列表)
nc . InsertMember ( ) ;
ShowSuccess ( @ "用户数据导入成功
请 勿 重 复 导 入 用 户 数 据 , 否 则 会 导 致 积 分 叠 加 ");
}
catch ( Exception ex )
{
ShowError ( $@"用户数据导入失败 - {ex.Message} - {ex.StackTrace}" ) ;
}
}
#endregion
#region 同 步 淘 宝 订 单
if ( checkBox18 . Checked )
{
nc . BindTb ( ) ;
}
#endregion
#region 同 步 京 东 订 单
if ( checkBox17 . Checked )
{
}
#endregion
#region 同 步 拼 多 多 订 单
if ( checkBox7 . Checked )
{
}
#endregion
OnEvent ( this , $"念初订单所有执行完毕同步绑定执行完毕!" ) ;
if ( ! this . IsDisposed ) ShowSuccess ( @"订单绑定成功" ) ;
#endregion
}
catch ( Exception ex )
{
OnEvent ( this , $"念初导入异常,已经终止导入操作~{ex.Message} - {ex.StackTrace}" ) ;
if ( ! this . IsDisposed ) ShowError ( $"念初导入异常:{ex.Message} - {ex.StackTrace}" ) ;
}
finally
{
OnEvent ( this , "念初导入执行完毕!" ) ;
//EventClient.StopParsing = true;
}
} ) ;
}
catch ( Exception ex )
{
ShowError ( "念初导入异常:" + ex . Message + " - " + ex . StackTrace ) ;
}
}
#endregion
private void checkedListBoxControl1_SelectedIndexChanged ( object sender , EventArgs e )
{
}
private void textEdit1_EditValueChanged ( object sender , EventArgs e )
{
}
private void labelControl34_Click ( object sender , EventArgs e )
{
}
private void button7_Click ( object sender , EventArgs e )
{
if ( textBox8 . Text = = null ) { ShowErrorAutoClose ( "请填写速推客云端cookie" ) ; return ; }
try
{
if ( checkBox20 . Checked )
{
if ( XtraMessageBox . Show ( @ "如果以前导入成功过会员数据,请勿重复导入!
点 击 yes 继 续 导 入 ", " 温 馨 提 示 ", MessageBoxButtons.YesNo) == DialogResult.No) return;
}
var ck = textBox8 . Text ;
button7 . Enabled = false ;
Task . Run ( ( ) = >
{
try
{
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , "速推客云端导入开始执行..." ) ;
Stk stk = new Stk ( ck ) ;
#region 导 入 eco用户
if ( checkBox20 . Checked )
{
try
{
#region 数 据 采 集
//第一步找到设备列表(获取所有的机器人id以及机器人类型 ,1为普通微信,2为企业微信)
var robotids = new Dictionary < string , string > ( ) ;
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , "开始获取机器人列表..." ) ;
stk . GetRobot ( robotids ) ;
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"获取机器人列表结束,一共{robotids.Count}!" ) ;
//第二步采集用户数据
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"开始采集用户数据" ) ;
//Dictionary<string, List<STKMemberInfo>> memberdic = new Dictionary<string, List<STKMemberInfo>>();
foreach ( KeyValuePair < string , string > robotinfo in robotids )
{
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"{robotinfo.Key}导入用户数据开始..." ) ;
var members = new List < STKMemberInfo > ( ) ;
stk . GetMembers ( robotinfo . Key , members ) ;
//memberdic[robotinfo.Key] = members;
stk . STKInsertMember ( robotinfo . Key , robotids [ robotinfo . Key ] = = "1" ? ChatType . 微 信 : ChatType . 企 业 微 信 , members ) ;
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"{robotinfo.Key},导入用户数据结束!!!\r\n" ) ;
}
////第四部插入用户数据
//BackupAndImport.速推客云端.EventLog.OnEvent(this, $"导入用户数据开始...");
//foreach (var dic in memberdic)
//{
// stk.STKInsertMember(dic.Key, robotids[dic.Key] == "1" ? ChatType.微信 : ChatType.企业微信, dic.Value);
//}
//BackupAndImport.速推客云端.EventLog.OnEvent(this, $"导入用户数据结束!!!");
this . UpdateUI ( ( ) = >
{
labelControl8 . Text = "【导入成功】" ;
robotids . Clear ( ) ;
} ) ;
ShowSuccess ( @ "用户数据导入成功
请 勿 重 复 导 入 用 户 数 据 , 否 则 会 导 致 积 分 叠 加 ");
#endregion
}
catch ( Exception ex )
{
this . UpdateUI ( ( ) = >
{
labelControl8 . Text = "【导入失败】" ;
} ) ;
ShowErrorAutoClose ( $@"用户数据导入失败 - {ex.Message} - {ex.StackTrace}" ) ;
}
}
#endregion
if ( checkBox31 . Checked )
{
#region STK未审核提现采集
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"速推客未审核提现信息开始采集..." ) ;
int total = 0 ;
int page = 0 ;
int pageSize = 100 ;
var date = DateTime . Now ;
do
{
page + + ;
//Thread.Sleep(200);
stk . Exchanges ( date , page , pageSize , out total ) ;
} while ( total > ( page * pageSize ) ) ;
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"未审核提现采集完毕!" ) ;
#endregion
}
#region 绑 定 订 单 数 据
if ( checkBox21 . Checked )
{
#region STK淘宝订单采集
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"速推客淘宝订单信息开始采集..." ) ;
int total = 0 ;
int page = 0 ;
int pageSize = 30 ;
var date = DateTime . Now ;
do
{
page + + ;
//Thread.Sleep(200);
stk . BindTBOrder ( date , page , pageSize , out total ) ;
} while ( total > ( page * pageSize ) ) ;
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"淘宝订单绑定完毕!" ) ;
#endregion
}
if ( checkBox22 . Checked )
{
#region STK京东订单采集
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"速推客京东订单信息开始采集..." ) ;
int total = 0 ;
int page = 0 ;
int pageSize = 30 ;
var date = DateTime . Now ;
do
{
page + + ;
//Thread.Sleep(200);
stk . BindJDOrder ( date , page , pageSize , out total ) ;
} while ( total > ( page * pageSize ) ) ;
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"京东订单绑定完毕!" ) ;
#endregion
}
if ( checkBox23 . Checked )
{
#region STK拼多多订单采集
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"速推客拼多多订单信息开始采集..." ) ;
int total = 0 ;
int page = 0 ;
int pageSize = 30 ;
var date = DateTime . Now ;
do
{
page + + ;
//Thread.Sleep(200);
stk . BindPDDOrder ( date , page , pageSize , out total ) ;
} while ( total > ( page * pageSize ) ) ;
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"拼多多订单绑定完毕!" ) ;
#endregion
}
if ( checkBox24 . Checked )
{
#region STK唯品会订单采集
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"速推客唯品会订单信息开始采集..." ) ;
int total = 0 ;
int page = 0 ;
int pageSize = 30 ;
var date = DateTime . Now ;
do
{
page + + ;
stk . BindWPHOrder ( date , page , pageSize , out total ) ;
} while ( total > ( page * pageSize ) ) ;
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"唯品会订单绑定完毕!" ) ;
#endregion
}
if ( checkBox25 . Checked )
{
#region STK抖音订单采集
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"速推客抖音订单信息开始采集..." ) ;
int total = 0 ;
int page = 0 ;
int pageSize = 30 ;
var date = DateTime . Now ;
do
{
page + + ;
stk . BindDYOrder ( date , page , pageSize , out total ) ;
} while ( total > ( page * pageSize ) ) ;
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"抖音订单绑定完毕!" ) ;
#endregion
}
//---------
if ( checkBox26 . Checked )
{
#region STK淘宝订单采集
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"速推客淘宝订单信息开始采集..." ) ;
int total = 0 ;
int page = 0 ;
int pageSize = 30 ;
var date = DateTime . Now ;
do
{
page + + ;
//Thread.Sleep(200);
stk . BindTBOrder2 ( date , page , pageSize , out total ) ;
} while ( total > ( page * pageSize ) ) ;
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"淘宝订单绑定完毕!" ) ;
#endregion
}
if ( checkBox27 . Checked )
{
#region STK京东订单采集
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"速推客京东订单信息开始采集..." ) ;
int total = 0 ;
int page = 0 ;
int pageSize = 30 ;
var date = DateTime . Now ;
do
{
page + + ;
//Thread.Sleep(200);
stk . BindJDOrder2 ( date , page , pageSize , out total ) ;
} while ( total > ( page * pageSize ) ) ;
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"京东订单绑定完毕!" ) ;
#endregion
}
if ( checkBox28 . Checked )
{
#region STK拼多多订单采集
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"速推客拼多多订单信息开始采集..." ) ;
int total = 0 ;
int page = 0 ;
int pageSize = 30 ;
var date = DateTime . Now ;
do
{
page + + ;
//Thread.Sleep(200);
stk . BindPDDOrder2 ( date , page , pageSize , out total ) ;
} while ( total > ( page * pageSize ) ) ;
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"拼多多订单绑定完毕!" ) ;
#endregion
}
if ( checkBox29 . Checked )
{
#region STK唯品会订单采集
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"速推客唯品会订单信息开始采集..." ) ;
int total = 0 ;
int page = 0 ;
int pageSize = 30 ;
var date = DateTime . Now ;
do
{
page + + ;
stk . BindWPHOrder2 ( date , page , pageSize , out total ) ;
} while ( total > ( page * pageSize ) ) ;
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"唯品会订单绑定完毕!" ) ;
#endregion
}
if ( checkBox30 . Checked )
{
#region STK抖音订单采集
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"速推客抖音订单信息开始采集..." ) ;
int total = 0 ;
int page = 0 ;
int pageSize = 30 ;
var date = DateTime . Now ;
do
{
page + + ;
stk . BindDYOrder2 ( date , page , pageSize , out total ) ;
} while ( total > ( page * pageSize ) ) ;
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"抖音订单绑定完毕!" ) ;
#endregion
}
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"云端速推客订单所有执行完毕同步绑定执行完毕!" ) ;
if ( ( checkBox21 . Checked | | checkBox22 . Checked | | checkBox23 . Checked | | checkBox24 . Checked | | checkBox25 . Checked
| | checkBox26 . Checked | | checkBox27 . Checked | | checkBox28 . Checked | | checkBox29 . Checked | | checkBox30 . Checked ) & & ! this . IsDisposed ) ShowSuccess ( @"订单绑定成功" ) ;
#endregion
}
catch ( Exception ex )
{
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , $"云端速推客导入异常,已经终止导入操作~{ex.Message} - {ex.StackTrace}" ) ;
if ( ! this . IsDisposed ) ShowError ( $"云端速推客导入异常:{ex.Message} - {ex.StackTrace}" ) ;
}
finally
{
this . Invoke ( new Action ( ( ) = >
{
button7 . Enabled = true ;
} ) ) ;
BackupAndImport . 速 推 客 云 端 . EventLog . OnEvent ( this , "云端速推客导入执行完毕!" ) ;
//EventClient.StopParsing = true;
}
} ) ;
}
catch ( Exception ex )
{
if ( ! this . IsDisposed ) ShowError ( $"{ex.Message} - {ex.StackTrace}" ) ;
}
}
}
class point
{
public long uid { get ; set ; }
public double num { get ; set ; }
}
}