old_flsystem/应用/BackupAndImport/MainForm.cs

6077 lines
360 KiB
C#
Raw Permalink Normal View History

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 / 500m);
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 / 500m);
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 ? 0m : (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.) ? 0m : _cur_point) + (string.IsNullOrWhiteSpace(item.) ? 0m : decimal.Parse(item.)) + (string.IsNullOrWhiteSpace(item.广) ? 0m : decimal.Parse(item.广)) + (string.IsNullOrWhiteSpace(item.) ? 0m : decimal.Parse(item.)) - (string.IsNullOrWhiteSpace(item.) ? 0m : decimal.Parse(item.))),
sum_point = (double)(string.IsNullOrWhiteSpace(item.) ? 0m : decimal.Parse(item.)),
ext_point = (double)(string.IsNullOrWhiteSpace(item.广) ? 0m : 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.) ? 0m : _cur_point) + (string.IsNullOrWhiteSpace(item.) ? 0m : decimal.Parse(item.)) + (string.IsNullOrWhiteSpace(item.广) ? 0m : decimal.Parse(item.广)) + (string.IsNullOrWhiteSpace(item.) ? 0m : decimal.Parse(item.)) - (string.IsNullOrWhiteSpace(item.) ? 0m : decimal.Parse(item.)));
user.sum_point = user.sum_point + (double)(string.IsNullOrWhiteSpace(item.) ? 0m : decimal.Parse(item.));
user.ext_point = user.ext_point + (double)(string.IsNullOrWhiteSpace(item.广) ? 0m : 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 / 500m);
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 / 500m);
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 / 100m);
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 / 500m);
var _num2 = (int)Math.Ceiling((decimal)_temp2.Count / 500m);
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 / 500m);
var _num2 = (int)Math.Ceiling((decimal)_temp2.Count / 500m);
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 / 500m);
var _num2 = (int)Math.Ceiling((decimal)_temp2.Count / 500m);
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 / 500m);
var _num2 = (int)Math.Ceiling((decimal)_temp2.Count / 500m);
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 / 500m);
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 / 500m);
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; }
}
}