Files
KJD/TEMUKJD/KJDForms/AdminForms/AdminCardCodeForm.cs
T

234 lines
8.3 KiB
C#

using AllBase;
using AllBase.Model.Result;
using NaiBa.Util.Extension;
using Newtonsoft.Json.Linq;
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 TemuKJD.BaseForms;
using TemuKJD.Extension;
using Work;
namespace TemuKJD.KJDForms.AdminForms
{
public partial class AdminCardCodeForm : BaseForm
{
public List<JitCardCodeInfo> lstCardCodeInfo = new List<JitCardCodeInfo>();
public AdminCardCodeForm()
{
InitializeComponent();
}
private void AdminCardCodeForm_Load(object sender, EventArgs e)
{
this.dgvCardCode.AddSelectorColumn("colSelect");
}
bool firstLoad = true;
private void AdminCardCodeForm_VisibleChanged(object sender, EventArgs e)
{
if (this.Visible == true && firstLoad)
{
firstLoad = false;
this.pbLoading.Visible = true;
SearchCardCode(this.ucSplitPage1.CurrentPage);
}
}
private void btnSearch_Click(object sender, EventArgs e)
{
if (this.ucSplitPage1.CurrentPage != 1)
this.ucSplitPage1.CurrentPage = 1;
else
SearchCardCode(1);
}
public void SearchCardCode(int page)
{
List<string> IdList = GetCheckedIdList();
if (InvokeRequired)
{
Invoke(new Action(() =>
{
this.pbLoading.Visible = true;
this.dgvCardCode.Rows.Clear();
lstCardCodeInfo.Clear();
}));
}
else
{
this.pbLoading.Visible = true;
this.dgvCardCode.Rows.Clear();
lstCardCodeInfo.Clear();
}
Task.Run(() =>
{
int pageCount;
var list = GetJitCardCodeLst(out pageCount, page);
lstCardCodeInfo.AddRange(list);
this.ucSplitPage1.TotalPage = pageCount;
foreach (var cardCode in lstCardCodeInfo)
{
Invoke(new Action(() =>
{
int rowIndex = this.dgvCardCode.Rows.Add(
IdList.Contains(cardCode.id.ToString()),
cardCode.id,
cardCode.card_code_id,
cardCode.add_time,
cardCode.active_time,
cardCode.expire_time,
cardCode.shop_id,
cardCode.shop_account,
cardCode.notes,
"编辑",
"删除");
}));
}
Invoke(new Action(() =>
{
this.pbLoading.Visible = false;
}));
});
}
public List<JitCardCodeInfo> GetJitCardCodeLst(out int pageCount, int page = 1, int pageSize = 50)
{
return GetJitCardCodeLst(out pageCount, txtCardCode.Text.Trim(), txtNotes.Text.Trim(),
txtShopId.Text.Trim(), txtShopName.Text.Trim(), page, pageSize);
}
public List<JitCardCodeInfo> GetJitCardCodeLst(out int pageCount, string search_card_code, string search_notes,
string search_shop_id, string search_shop_name, int page = 1, int pageSize = 50)
{
List<JitCardCodeInfo> list = new List<JitCardCodeInfo>();
pageCount = 1;
var url = BaseClass.BuildObjString("shop/get_shop_card_code_list");
var data = UserLogin.GetSignaturex() +
"&page=" + page +
"&page_size=" + pageSize +
"&search_card_code_id=" + search_card_code +
"&search_notes=" + search_notes +
"&search_shop_id=" + search_shop_id +
"&search_shop_name=" + search_shop_name;
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
{
return list;
}
int count = BaseRegex.GetIntJson(ref html, "count");
pageCount = Math.Ceiling(1.0 * count / pageSize).ParseToInt();
pageCount = Math.Max(pageCount, 1);
JObject jObj = JObject.Parse(html);
return JsonHelper.DeserializeJsonToList<JitCardCodeInfo>(jObj["data"].ToString());
}
List<string> GetCheckedIdList()
{
List<string> idList = new List<string>();
for (int i = 0; i < dgvCardCode.Rows.Count; i++)
{
if (dgvCardCode.Rows[i].Cells["colSelect"].Value.ParseToBool())
{
string id = dgvCardCode.Rows[i].Cells["colId"].Value.ParseToString();
idList.Add(id);
}
}
return idList;
}
private void pnlEmpty_Click(object sender, EventArgs e)
{
txtCardCode.Text = txtShopId.Text = txtNotes.Text = txtShopName.Text = "";
}
private void btnCreate_Click(object sender, EventArgs e)
{
StringBuilder data = new StringBuilder();
data.Append(UserLogin.GetSignaturex());
data.Append("&create_count=" + txtCreateCount.Text.Trim());
string url = BaseClass.BuildObjString("shop/create_shop_card_code");
string html = GetHtml.PostUtf8(url, data.ToString()).Trim();
if (string.IsNullOrEmpty(html))
{
BaseMsgForm.ShowError("未知错误,请重试!", "错误");
return;
}
if (html.Contains("\"code\":200"))
{
BaseMsgForm.ShowInfo("生成成功!");
SearchCardCode(this.ucSplitPage1.CurrentPage);
}
else
{
var msg = BaseRegex.GetStringJson(ref html, "msg");
if (string.IsNullOrEmpty(msg))
msg = html;
BaseMsgForm.ShowError(msg, "错误");
}
}
private void dgvCardCode_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
return;
string headerText = dgvCardCode.Columns[e.ColumnIndex].HeaderText;
string dbId = dgvCardCode.Rows[e.RowIndex].Cells["colId"].Value.ParseToString();
string shopId = dgvCardCode.Rows[e.RowIndex].Cells["colShopId"].Value.ParseToString();
switch (headerText)
{
case "删除":
DelCardCode(dbId);
break;
case "":
dgvCardCode.Rows[e.RowIndex].Cells["colSelect"].Value = !(bool)dgvCardCode.Rows[e.RowIndex].Cells["colSelect"].Value;
break;
default:
break;
}
}
private void ucSplitPage1_PageChange(object obj)
{
SearchCardCode(this.ucSplitPage1.CurrentPage);
}
private void btnBatchDel_Click(object sender, EventArgs e)
{
var idLst = this.dgvCardCode.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colSelect"].Value.ParseToBool() == true).Select(r => r.Cells["colId"].Value.ParseToString());
string ids = string.Join(",", idLst);
DelCardCode(ids);
}
void DelCardCode(string ids)
{
var url = BaseClass.BuildObjString("shop/del_shop_card_code");
var data = UserLogin.GetSignaturex();
data += "&del_ids=" + ids;
var result = GetHtml.PostUtf8(url, data);
if (!result.Contains("\"code\":200"))
{
BaseMsgForm.ShowError("删除失败:" + BaseRegex.GetStringJson(ref result, "msg"));
}
else
{
BaseMsgForm.ShowInfo("删除成功!");
SearchCardCode(this.ucSplitPage1.CurrentPage);
}
}
}
}