using POSV.Bean; using POSV.Card; using POSV.Utils; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Reflection; using System.Text; using System.Windows.Forms; namespace POSV.Member { public partial class CardMergeForm : BusinessForm { public CardMergeForm() { InitializeComponent(); } public void SearchMessage() { } /// /// 线上会员 /// private MemberInfoQueryResponse Onlinemember = null; /// /// 线下会员 /// private MemberInfoQueryResponse Offlinemember = null; /// /// 会员卡信息 /// private MemberInfoQueryResponse CardInfoMessage(string property, string txtInput) { try { var request = new MemberInfoQueryRequest(); request.Property = property; request.Keyword = txtInput; request.ShopNo = Global.Instance.Authc.StoreNo; request.PosNo = Global.Instance.Authc.PosNo; request.WorkerNo = Global.Instance.Worker.No; var response = CardUtils.MemberInfoQuery(request); //成功 if (response.Item1) { ShowMessage(this.lblInfo, response.Item2, false); MemberInfoQueryResponse memberInfoQueryResponse = response.Item3; //label7.Text = memberInfoQueryResponse.Name; //label5.Text = memberInfoQueryResponse.LinkPhone; //label9.Text = memberInfoQueryResponse.CurrentCard.AvailableAmount.ToString("0.00"); //label11.Text = memberInfoQueryResponse.CurrentCard.TotalPoint.ToString("0.00"); return memberInfoQueryResponse; } else { ShowMessage(this.lblInfo, response.Item2, true); } } catch (Exception ex) { ShowMessage(this.lblInfo, "会员卡信息查询异常", true); LOGGER.Error(ex, "会员卡信息查询异常"); } return null; } private void btnOfflineCard_Click(object sender, EventArgs e) { var _voucherNo = this.txtInput.Text; var way = CardUtils.JudgeCardWay(Global.Instance.Worker.TenantId, _voucherNo); if (way == MemberCardNoType.未知) { this.ShowMessage(this.lblInfo, "无法识别的卡号,请确认", true); return; } string property = ""; switch (way) { case MemberCardNoType.真实卡号: { property = ("cardNo"); } break; case MemberCardNoType.卡面号: { property = ("surfaceNo"); } break; } var _data = CardInfoMessage(property, _voucherNo); if (_data == null) { return; } this.Offlinemember = _data; label23.Text = _data.Name; label21.Text = _data.Mobile; label19.Text = _data.CardList[0].AvailableAmount.ToString("0.00"); label17.Text = _data.CardList[0].TotalPoint.ToString("0.00"); } private void btnCard_Click(object sender, EventArgs e) { var _voucherNo = this.numericTextBox1.Text; var way = CardUtils.JudgeCardWay(Global.Instance.Worker.TenantId, _voucherNo); if (way == MemberCardNoType.未知) { this.ShowMessage(this.lblInfo, "无法识别的卡号,请确认", true); return; } if (way != MemberCardNoType.电子卡号) { this.ShowMessage(this.lblInfo, "请扫描客户手机上的会员码", true); return; } var _data = CardInfoMessage("scanCode", _voucherNo); if (_data == null) { return; } this.Onlinemember = _data; label7.Text = _data.Name; label5.Text = _data.Mobile; label9.Text = _data.CardList[0].AvailableAmount.ToString("0.00"); label11.Text = _data.CardList[0].TotalPoint.ToString("0.00"); return; } private void numericTextBox1_OnEnterClick(object sender, Component.EnterEventArg e) { btnCard_Click(null, null); } private void txtInput_ButtonCustomClick(object sender, EventArgs e) { var result = CardOperateUtils.Instance.ReadCardNo(); if (result.Item1) { this.txtInput.Text = result.Item2; //读卡成功,模拟回车事件 InputSimulatorUtils.SendKey(KeyCodes.Map["return"]); } else { result = CardOperateUtilsOther.Instance.ReadCardNo(); if (result.Item1) { this.txtInput.Text = result.Item2; //读卡成功,模拟回车事件 InputSimulatorUtils.SendKey(KeyCodes.Map["return"]); } else { this.ShowMessage(lblInfo, result.Item2); } } } private void txtInput_OnEnterClick(object sender, Component.EnterEventArg e) { btnOfflineCard_Click(null, null); } private void buttonX3_Click(object sender, EventArgs e) { if (Onlinemember == null) { this.ShowMessage(this.lblInfo, "请扫描客户手机上的会员码", true); return; } if (Offlinemember == null) { this.ShowMessage(this.lblInfo, "请刷实体卡会员", true); return; } //CardGetWidInfoRequest cardGetWidInfo = new CardGetWidInfoRequest(); //cardGetWidInfo.ShopNo = Global.Instance.Authc.StoreNo; //cardGetWidInfo.PosNo = Global.Instance.Authc.PosNo; //cardGetWidInfo.WorkerNo = Global.Instance.Worker.No; //var GetWidresponse = CardUtils.CardGetWidInfo(cardGetWidInfo); //if (!GetWidresponse.Item1) //{ // this.ShowMessage(this.lblInfo, GetWidresponse.Item2, true); // return; //} CardMergeRequest cardMerge = new CardMergeRequest(); cardMerge.WxcardNo = Onlinemember.LinkPhone; cardMerge.ShopNo = Global.Instance.Authc.StoreNo; cardMerge.PosNo = Global.Instance.Authc.PosNo; cardMerge.WorkerNo = Global.Instance.Worker.No; cardMerge.CardNo = Offlinemember.CardList[0].CardNo; cardMerge.WxcardNo = Onlinemember.CardList[0].CardNo; var _CardMerge = CardUtils.CardMerge(cardMerge); if (_CardMerge.Item1) { var _mess = string.Format("会员ID:{0}\t\n会员卡号:{3}\t\n合并后金额:{1}\t\n手机号:{2}\t\n", _CardMerge.Item3.MemberId, _CardMerge.Item3.TotalAmount, _CardMerge.Item3.Mobile, _CardMerge.Item3.CardNo); DialogForm dialog = new DialogForm("合并成功", _mess,MessageBoxIcon.Asterisk); dialog.ShowDialog(); LOGGER.Info(_mess); } else { this.ShowMessage(this.lblInfo, _CardMerge.Item2, true); return; } } #region 窗口事件 private void ButtonCancel_Click(object sender, EventArgs e) { //先关闭父窗体 if (this.Owner != null) { this.Owner.Close(); } //再关闭当前窗体 this.Close(); } private void controlBox_CloseClick(object sender, EventArgs e) { ButtonCancel_Click(null, null); } private void controlBox_KeyboardClick(object sender, EventArgs e) { try { KeyboardType keyboardType = KeyboardType.数字; Type type = this.ActiveControl.GetType(); PropertyInfo pinfo = type.GetProperty("Keyboard"); if (pinfo != null) { keyboardType = (KeyboardType)pinfo.GetValue(this.ActiveControl, null); } var keyboard = Application.OpenForms["VirtualKeyboard"]; if (keyboard == null) { keyboard = new VirtualKeyboard(keyboardType); } ((VirtualKeyboard)keyboard).ShowVirtualKeyboard(this, keyboardType); } catch (Exception ex) { LOGGER.Error(ex, "打开屏幕键盘异常"); } } #endregion } }