6075 lines
359 KiB
C#
6075 lines
359 KiB
C#
|
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
|
|||
|
session.Updateable<fl_member_info>(new { inviter_id = inviter.id }).Where(f => f.id == new_user.id).ExecuteCommand();
|
|||
|
}
|
|||
|
}
|
|||
|
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
|
|||
|
session.Updateable<fl_member_info>(new { inviter_id = inviter.id }).Where(f => f.id == new_user.id).ExecuteCommand();
|
|||
|
}
|
|||
|
}
|
|||
|
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; }
|
|||
|
}
|
|||
|
|
|||
|
}
|