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 : Form { public List lstCardCodeInfo = new List(); 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 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 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 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 list = new List(); 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(jObj["data"].ToString()); } List GetCheckedIdList() { List idList = new List(); 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().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); } } } }