You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

288 lines
9.2 KiB
C#

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()
{
}
/// <summary>
/// 线上会员
/// </summary>
private MemberInfoQueryResponse Onlinemember = null;
/// <summary>
/// 线下会员
/// </summary>
private MemberInfoQueryResponse Offlinemember = null;
/// <summary>
/// 会员卡信息
/// </summary>
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
}
}