Files
KJD/TEMUKJD/PDDForms/ShopForms/PDDSubAccountShopEditForm.cs
T

195 lines
7.9 KiB
C#

using AllBase;
using AllBase.Model.Result;
using TemuKJD.BaseForms;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Work;
namespace TemuKJD.PDDForms.ShopForms
{
public partial class PDDSubAccountShopEditForm : LRBaseForm
{
ShopLoginInfo shop = null;
public List<ShopSubAccountInfo> AllSubAccountList { get; set; } = new List<ShopSubAccountInfo>();
public List<ShopSubAccountInfo> ShopSubAccountList { get; set; } = new List<ShopSubAccountInfo>();
public List<ShopSubAccountInfo> NotShopSubAccountList { get; set; } = new List<ShopSubAccountInfo>();
public PDDSubAccountShopEditForm(ShopLoginInfo _shop)
{
InitializeComponent();
shop = _shop;
}
private void SubAccountShopEditForm_Load(object sender, EventArgs e)
{
this.TitleText = "店铺 " + shop?.ShopAccount + " 子账号编辑";
label1.Text = "店铺 " + shop?.ShopAccount + " 子账号";
label2.Text = "未分配的子账号";
GetUser();
}
private void GetUser()
{
flpNotSubAccount.Controls.Clear();
flpShopSubAccount.Controls.Clear();
AllSubAccountList.Clear();
string url = BaseClass.BuildObjString("user/get_sub_user");
string data = UserLogin.GetSignaturex();
string html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html))
return;
if (html.Contains("\"data\""))
{
var userObj = Newtonsoft.Json.Linq.JObject.Parse(html);
foreach (Newtonsoft.Json.Linq.JObject obj in userObj["data"])
{
string oStr = JsonHelper.SerializeObject(obj);
ShopSubAccountInfo user = new ShopSubAccountInfo();
user.id = BaseRegex.GetIntJson(ref oStr, "id");
user.nick_name = BaseRegex.GetStringJson(ref oStr, "nick_name");
user.user_name = BaseRegex.GetStringJson(ref oStr, "user_name");
user.mobile = BaseRegex.GetStringJson(ref oStr, "mobile");
user.group_id = BaseRegex.GetStringJson(ref oStr, "group_id");
user.shop_count = BaseRegex.GetIntJson(ref oStr, "shop_count");
AllSubAccountList.Add(user);
}
if (shop != null)
{
ShopSubAccountList.Clear();
ShopSubAccountList.AddRange(AllSubAccountList.Where(u=>shop.SubUserName.Contains(u.sub_user_name)));
shop.ShopSubAccountList.Clear();
shop.ShopSubAccountList.AddRange(ShopSubAccountList);
NotShopSubAccountList.AddRange(AllSubAccountList.Where(u => !ShopSubAccountList.Any(bu => bu.id == u.id)));
foreach (var item in ShopSubAccountList)
{
UcSubAccount s = new UcSubAccount(item, false);
s.AddSubAcountEvent += S_AddSubAcountEvent;
s.RemoveSubAcountEvent += S_RemoveSubAcountEvent;
flpShopSubAccount.Controls.Add(s);
}
foreach (var item in NotShopSubAccountList)
{
UcSubAccount s = new UcSubAccount(item);
s.AddSubAcountEvent += S_AddSubAcountEvent;
s.RemoveSubAcountEvent += S_RemoveSubAcountEvent;
flpNotSubAccount.Controls.Add(s);
}
}
}
}
private void S_AddSubAcountEvent(object obj)
{
var s = obj as UcSubAccount;
if (s != null)
{
if (this.flpShopSubAccount.Controls.Count > 0)
{
//BaseMsgForm.ShowInfo("只能有一个子账户!");
//s.lblRight_Click(null, null);
//return;
}
this.flpNotSubAccount.Controls.Remove(s);
this.flpShopSubAccount.Controls.Add(s);
}
}
private void S_RemoveSubAcountEvent(object obj)
{
var s = obj as UcSubAccount;
if (s != null)
{
this.flpShopSubAccount.Controls.Remove(s);
this.flpNotSubAccount.Controls.Add(s);
}
}
private void btnRemove_Click(object sender, EventArgs e)
{
var controls = this.flpShopSubAccount.Controls.Cast<Control>().ToList();
foreach (var c in controls)
{
(c as UcSubAccount).DeleteAccount();
}
}
private void btnAdd_Click(object sender, EventArgs e)
{
var controls = this.flpNotSubAccount.Controls.Cast<Control>().ToList();
foreach (var c in controls)
{
(c as UcSubAccount).AddAccount();
}
}
private void btnOk_Click(object sender, EventArgs e)
{
List<ShopSubAccountInfo> AddUsers = new List<ShopSubAccountInfo>();
List<ShopSubAccountInfo> DeleteUsers = new List<ShopSubAccountInfo>();
foreach (Control c in this.flpNotSubAccount.Controls)
{
var co = c as UcSubAccount;
if (co == null)
continue;
if (ShopSubAccountList.Contains(co.subAccount))
{
DeleteUsers.Add(co.subAccount);
shop.ShopSubAccountList.Remove(co.subAccount);
//string url = BaseClass.BuildObjString("shop&act=delete_shop_user_sub_group");
//string data = UserLogin.GetSignaturex()
// + "&shop_id=" + shop.ShopId
// + "&sub_user_id=" + co.subAccount.sub_user_id
// + "&sub_user_name=" + co.subAccount.sub_user_name
// + "&status=" + co.subAccount.status
// + "&group_id=" + co.subAccount.group_id;
//string html = GetHtml.PostUtf8(url, data);
}
}
foreach (Control c in this.flpShopSubAccount.Controls)
{
var co = c as UcSubAccount;
if (co == null)
continue;
if (NotShopSubAccountList.Contains(co.subAccount))
{
AddUsers.Add(co.subAccount);
shop.ShopSubAccountList.Add(co.subAccount);
//string url = BaseClass.BuildObjString("shop&act=update_shop_user_sub_group");
//string data = UserLogin.GetSignaturex()
// + "&shop_id=" + shop.ShopId
// + "&sub_user_id=" + co.subAccount.sub_user_id
// + "&sub_user_name=" + co.subAccount.sub_user_name
// + "&status=" + co.subAccount.status
// + "&group_id=" + co.subAccount.group_id;
//string html = GetHtml.PostUtf8(url, data);
}
}
shop.SubUserName = shop.ShopSubAccountList.FirstOrDefault()?.sub_user_name;
shop.SubUserName = string.Join(",", shop.ShopSubAccountList.Select(s => s.sub_user_name));
var shopLst = AllBase.Helper.GlobalConfig.ShopLoginList.Where(s => s.LoginName == shop.LoginName && s.ShopId!= shop.ShopId);
foreach(var s in shopLst)
{
s.SubUserName = shop.SubUserName;
s.ShopSubAccountList.Clear();
shop.ShopSubAccountList.AddRange(s.ShopSubAccountList);
}
OnSaveComplete(shop);
this.Close();
}
}
}