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.

1502 lines
76 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using DevComponents.DotNetBar;
using DevComponents.DotNetBar.Controls;
using NLog;
using POSV.Card;
using POSV.Component;
using POSV.Entity;
using POSV.Helper;
using POSV.MessageEvent;
using POSV.MsgCenter;
using POSV.OtherWaiMai;
using POSV.ServiceCenter;
using POSV.ShoppingCart;
using POSV.Utils;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace POSV.WaiMai
{
public partial class MeituanForm : BusinessForm
{
private int orderType = 0;//订单类型
private int SelectType = 0;//待处理订单
private bool generalQuerying = false;//历史订单查询锁
private bool handleQuerying = false;//待处理订单查询锁
private bool isBudanFlag = false;//是否正在进行补单操作
private int ConfirmType = 0;
private static Logger logger = NLog.LogManager.GetCurrentClassLogger();
public MeituanForm()
{
InitializeComponent();
this.dateInputPicker.Value = DateTime.Now.Date;
//是否开启自动接单
bool openConfirm = Global.Instance.GlobalConfigBoolValue(ConfigConstant.MEITUAN_CONFIRM_PARAMETER, false);
if (openConfirm)
{
ConfirmType = 1;
this.radioButtonOpen.Checked = true;
}
else
{
ConfirmType = 0;
this.radioButtonClose.Checked = true;
}
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.checkBoxX0.Checked = true;
//第一步加载门店信息
QueryMeiTuanPoiInfo();
//第二步,获取待处理订单
Proxy.Mqtt.MqttClientUtils.Instance.OnMessageReceived -= Instance_OnMessageReceived;
Proxy.Mqtt.MqttClientUtils.Instance.OnMessageReceived += Instance_OnMessageReceived;
DoHandQuery();
}
private void Instance_OnMessageReceived(object sender, Proxy.Mqtt.MessageEventArgs e)
{
try
{
string message = e.Message;
int type = e.Type;
if (type == 0)
{
Dictionary<string, string> messageMap = JsonUtils.Deserialize<Dictionary<string, string>>(message);
if (messageMap.ContainsKey("meituan") && !"".Equals(messageMap["meituan"]))
{
DoHandQuery();
}
}
}
catch (Exception ex)
{
LOGGER.Error(ex);
}
}
private void OnControlBoxCloseClick(object sender, EventArgs e)
{
OnCloseTouchClick(sender, e);
}
private void OnControlBoxMinClick(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
}
private void btn_exit_Click(object sender, EventArgs e)
{
OnCloseTouchClick(sender, e);
}
private void OnCloseTouchClick(object sender, EventArgs e)
{
//先关闭父窗体
if (this.Owner != null)
{
this.Owner.Close();
}
//再关闭当前窗体
this.Close();
}
private void btn_close(object sender, EventArgs e)
{
OnCloseTouchClick(sender, e);
}
/// <summary>
/// 查询全部订单
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_query(object sender, EventArgs e)
{
var obj = sender as ButtonX;
try
{
obj.Enabled = false;
DoQuery(1, pagerControl2.RowsPerPage);
}
finally
{
obj.Enabled = true;
}
}
/// <summary>
/// 门店门店信息
/// </summary>
private void QueryMeiTuanPoiInfo()
{
Task.Factory.StartNew(() =>
{
MeiTuanPoiInfoRequest request = new MeiTuanPoiInfoRequest();
request.StoreId = Global.Instance.BusinessPlanLog.StoreId;
var response = OtherWaiMaiUtils.MeiTuanPoiInfo(request);
if (response != null && response.Item1)
{
if (this.IsDisposed || !this.IsHandleCreated) return;
this.Invoke(new Action(() =>
{
var responseMessage = response.Item3;
if (responseMessage != null && responseMessage.Data != null)
{
MeiTuanPoiInfoResponse PoiInfo = responseMessage.Data;
this.StoreNameLabelX.Text = PoiInfo.Name;//门店名称
switch (PoiInfo.IsOpen)
{
case 0:
this.isOpenLabelX.Text = "未上线";
break;
case 1:
this.isOpenLabelX.Text = "可配送";
break;
case 3:
this.isOpenLabelX.Text = "休息中";
break;
default:
this.isOpenLabelX.Text = "未营业";
break;
}
this.openTimeLabelX.Text = PoiInfo.OpenTime;
}
}));
}
});
}
private void DoQuery(int pageNum, int pageSize)
{
if (generalQuerying)
{
this.ShowToastNotify(this, "查询中.....");
return;
}
generalQuerying = true;
//zhangy 2020-03-01 Add 释放资源避免Error creating window handle
while (tableLayoutPanel2.Controls.Count > 0)
{
if (tableLayoutPanel2.Controls[0] != null)
{
var ctl = tableLayoutPanel2.Controls[0];
ctl.Dispose();
}
}
this.tableLayoutPanel2.Controls.Clear();
Task.Factory.StartNew(() =>
{
MeiTuanOrderListRequest request = new MeiTuanOrderListRequest();
string orderDate = this.dateInputPicker.Text;
request.StoreId = Global.Instance.BusinessPlanLog.StoreId;
request.PageNumber = pageNum;
request.PageSize = pageSize;
request.OrderDate = orderDate;
request.Type = orderType;
var response = OtherWaiMaiUtils.QueryMeiTuanOrder(request);
if (response != null && response.Item1)
{
if (this.IsDisposed || !this.IsHandleCreated) return;
this.Invoke(new Action(() =>
{
List<MeiTuanItem> detailList = new List<MeiTuanItem>();
int handCount = 0;
foreach (MeiTuanOrderListResponse order in response.Item3.List)
{
if (order.Status == 1 || order.Status == 2 || order.Status == 3)
{
handCount = handCount + 1;
}
var item = new MeiTuanItem(order);
item.OnConfirm += Item_OnConfirm;
item.OnCancel += Item_OnCancel;
item.OnRefundAgree += Item_OnRefundAgree;
item.OnRefundReject += Item_OnRefundReject;
item.OnOrderPrint += Item_OnPrint;
item.OnOrderBuDan += Item_OnBuDan;
detailList.Add(item);
}
if (this.IsDisposed || !this.IsHandleCreated) return;
//更新控件
sendNewView(handCount);
if (detailList.Count > 0)
{
this.tableLayoutPanel2.Controls.AddRange(detailList.ToArray());
//滚动至顶部
this.tableLayoutPanel2.AutoScrollPosition = new Point(0, 0);
}
this.pagerControl2.TotalPage = response.Item3.PageCount;
this.pagerControl2.CurrentPage = response.Item3.PageNumber;
this.pagerControl2.RecordCount = response.Item3.TotalCount;
this.pagerControl2.RowsPerPage = response.Item3.PageSize;
}));
}
generalQuerying = false;
});
}
/// <summary>
/// 订单打印
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Item_OnPrint(object sender, MeiTuanOrderEventArgs e)
{
Task.Factory.StartNew(() =>
{
try
{
string orderId = e.OrderId;
MeiTuanOrderRequest request = new MeiTuanOrderRequest();
string orderDate = this.dateInputPicker.Text;
request.StoreId = Global.Instance.BusinessPlanLog.StoreId;
request.OrderId = orderId;
var response = OtherWaiMaiUtils.MeiTuanOrder(request);
if (response != null && response.Item1)
{
this.ShowToastNotify(this, "开始打印");
//构建收银小票模版参数
var vars = WaiMaiHelper.BuilderMeiTuanVariable(response.Item3.Data.PoiName, response.Item3.Data, true);
Tuple<bool, string> result = WaiMaiHelper.PrinterTicket("美团外卖", vars);
this.ShowToastNotify(this, string.Format("{0}", result.Item2));
//组装本地数据
OrderObject orderObject = OtherWaiMaiApi.getOrderLocalMeiTuan(response.Item3.Data);
//打印标签
LabelPrintHelper.PrintOrderLabel(orderObject);
//启用外卖商品绑定厨显方案
var planKds = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CONFIG_CASHIER_OTHERWAIMAI_PLANKDS, true);
//启用外卖商品绑定厨打方案
var planKit = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CONFIG_CASHIER_OTHERWAIMAI_PLANKIT, true);
if (planKit)
{
//执行厨打
ChuDaHelper.KitchenPrinter(orderObject);
logger.Info("美团外卖厨打成功");
//执行出品
ChuDaHelper.MadePrinter(orderObject);
logger.Info("美团外卖出品成功");
}
if (planKds)
{
//通知厨显
UploadSCNewOrder.UploadNewOrder2SC4KDS(orderObject);
logger.Info("美团外卖厨显成功");
}
}
}
catch (Exception ex)
{
logger.Info("外卖订单打印异常:" + ex.Message);
}
});
}
/// <summary>
/// 订单拒绝退单
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Item_OnRefundReject(object sender, MeiTuanOrderEventArgs e)
{
string orderId = e.OrderId;
MeiTuanOrderRefundDisagreeRequest request = new MeiTuanOrderRefundDisagreeRequest();
request.StoreId = Global.Instance.BusinessPlanLog.StoreId;
request.OrderId = orderId;
request.Reason = "您订购的饭菜已出餐,不能退款";
var response = OtherWaiMaiUtils.MeiTuanOrderRefundReject(request);
if (response != null)
{
LOGGER.Info("美团外卖订单拒绝退单:" + response.Item2);
this.ShowToastNotify(this, response.Item2);
if (response.Item1)
{
switch (SelectType)
{
case 0:
DoHandQuery();
break;
case 1:
DoQuery(1, pagerControl2.RowsPerPage);
break;
}
}
}
}
/// <summary>
/// 订单接受退单
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Item_OnRefundAgree(object sender, MeiTuanOrderEventArgs e)
{
string orderId = e.OrderId;
MeiTuanOrderRefundAgreeRequest request = new MeiTuanOrderRefundAgreeRequest();
request.StoreId = Global.Instance.BusinessPlanLog.StoreId;
request.OrderId = orderId;
request.Reason = "已同意退款请求,谢谢您的光临";
var response = OtherWaiMaiUtils.MeiTuanOrderRefundAgree(request);
if (response != null)
{
LOGGER.Info("美团外卖订单同意退单:" + response.Item2);
this.ShowToastNotify(this, response.Item2);
if (response.Item1)
{
//退单业务处理,退单处理退本地单
this.DoRefund("4" + orderId);
switch (SelectType)
{
case 0:
DoHandQuery();
break;
case 1:
DoQuery(1, pagerControl2.RowsPerPage);
break;
}
}
}
}
private Tuple<bool, string> DoRefund(string tradeNo)
{
try
{
OrderObject _OrderObject = OrderUtils.getOrderObjectByTranNo(tradeNo);
if (_OrderObject != null)
{
if (_OrderObject.OrgTradeNo != null && !"".Equals(_OrderObject.OrgTradeNo))
{
return new Tuple<bool, string>(false, "订单已完全退单");
}
//生成新单
OrderObject _BackOrderObject = ObjectUtils.Copy(_OrderObject);
string finishDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
//=========更新原单内容
//录入原单号
_BackOrderObject.Id = IdWorkerUtils.Instance.NextId();
//操作员工号
_BackOrderObject.WorkerNo = Global.Instance.Worker.No;
//操作员名称
_BackOrderObject.WorkerName = Global.Instance.Worker.Name;
_BackOrderObject.SaleDate = finishDate;
//班次名称
_BackOrderObject.ShiftName = Global.Instance.BusinessPlanLog.Name;
//班次编号
_BackOrderObject.ShiftNo = Global.Instance.BusinessPlanLog.No;
//订单标识为 新建状态
_BackOrderObject.OrderStatus = OrderStatus.退;
//订单创建时间
_BackOrderObject.CreateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
//订单创建人
_BackOrderObject.CreateUser = Global.Instance.Worker.Name;
string[] day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
string weeker = day[Convert.ToInt32(DateTime.Now.DayOfWeek.ToString("d"))].ToString();
//星期
_BackOrderObject.Weeker = weeker;
//天气
_BackOrderObject.Weather = string.Empty;
_BackOrderObject.ObjectId = ObjectId.GenerateNewStringId();
_BackOrderObject.TradeNo = _BackOrderObject.OrderType.ToString() + OrderUtils.Instance.GenerateTicketNo();
_BackOrderObject.FinishDate = finishDate;
_BackOrderObject.Amount = 0 - _OrderObject.Amount;
_BackOrderObject.DiscountAmount = 0 - _OrderObject.DiscountAmount;
_BackOrderObject.ReceivableAmount = 0 - _OrderObject.ReceivableAmount;
_BackOrderObject.PaidAmount = 0 - _OrderObject.PaidAmount;
_BackOrderObject.ReceivedAmount = 0 - _OrderObject.ReceivedAmount;
_BackOrderObject.MalingAmount = 0 - _OrderObject.MalingAmount;
_BackOrderObject.ChangeAmount = 0 - _OrderObject.ChangeAmount;
_BackOrderObject.InvoicedAmount = 0 - _OrderObject.InvoicedAmount;
_BackOrderObject.SyncStatus = 0;
_BackOrderObject.PrintStatus = 0;
_BackOrderObject.AddPoint = 0 - _OrderObject.AddPoint;
_BackOrderObject.UploadStatus = 0;
_BackOrderObject.UploadMessage = "";
_BackOrderObject.TicketId = "";
_BackOrderObject.OrgTradeNo = _OrderObject.TradeNo;
//整单优惠
foreach (PromotionOrder promotion in _BackOrderObject.Promotions)
{
promotion.Id = IdWorkerUtils.Instance.NextId();
promotion.OrderId = _BackOrderObject.Id;
promotion.TradeNo = _BackOrderObject.TradeNo;
promotion.Amount = 0 - promotion.Amount;
promotion.DiscountAmount = 0 - promotion.DiscountAmount;
promotion.ReceivableAmount = 0 - promotion.ReceivableAmount;
promotion.FinishDate = finishDate;
}
//====== 更新明细内容
foreach (OrderItem item in _BackOrderObject.Items)
{
item.Id = IdWorkerUtils.Instance.NextId();
item.OrderId = _BackOrderObject.Id;
item.TradeNo = _BackOrderObject.TradeNo;
//单品优惠
foreach (PromotionItem promotion in item.Promotions)
{
promotion.Id = IdWorkerUtils.Instance.NextId();
promotion.OrderId = _BackOrderObject.Id;
promotion.ItemId = item.Id;
promotion.TradeNo = _BackOrderObject.TradeNo;
promotion.Amount = 0 - promotion.Amount;
promotion.DiscountAmount = 0 - promotion.DiscountAmount;
promotion.ReceivableAmount = 0 - promotion.ReceivableAmount;
promotion.FinishDate = finishDate;
}
//做法信息
foreach (FlavorItem flavor in item.Flavors)
{
flavor.Id = IdWorkerUtils.Instance.NextId();
flavor.OrderId = _BackOrderObject.Id;
flavor.ItemId = item.Id;
flavor.TradeNo = _BackOrderObject.TradeNo;
flavor.RefundQuantity = flavor.Quantity;
flavor.Amount = 0 - flavor.Amount;
flavor.Quantity = 0;
flavor.DiscountAmount = 0 - flavor.DiscountAmount;
flavor.FinishDate = finishDate;
flavor.isBackTicket = true;
flavor.isWaiMaiTicket = true;
}
item.RefundQuantity = item.Quantity;
item.Quantity = 0;
item.Amount = 0 - item.Amount;
item.FlavorAmount = 0 - item.FlavorAmount;
item.FlavorDiscountAmount = 0 - item.FlavorDiscountAmount;
item.FlavorReceivableAmount = 0 - item.FlavorReceivableAmount;
item.TotalAmonut = 0 - item.TotalAmonut;
item.SuitAddPrice = 0 - item.SuitAddPrice;
item.SuitAmount = 0 - item.SuitAmount;
item.SaleDate = finishDate;
item.ChudaQty = 0;
item.ChupinQty = 0;
item.ChuxianQty = 0;
item.KdsChupinQty = 0;
item.FinishDate = finishDate;
}
//支付方式遍历
foreach (PayItem pay in _BackOrderObject.Pays)
{
pay.Id = IdWorkerUtils.Instance.NextId();
pay.TradeNo = _BackOrderObject.TradeNo;
pay.PayNo = OrderUtils.Instance.GeneratePayNo();
pay.OrderId = _BackOrderObject.Id;
pay.Amount = 0 - pay.Amount;
pay.PaidAmount = 0 - pay.PaidAmount;
pay.ChangeAmount = 0 - pay.ChangeAmount;
pay.PayTime = finishDate;
pay.FinishDate = finishDate;
pay.OverAmount = 0 - pay.OverAmount;
pay.ShiftName = _BackOrderObject.ShiftName;
pay.ShiftNo = _BackOrderObject.ShiftNo;
}
var isException = OrderUtils.Instance.SaveOrderObject(_BackOrderObject);
if (!isException)
{
_OrderObject.OrgTradeNo = _BackOrderObject.TradeNo;
using (var db = Global.Instance.OpenDataBase)
{
using (var trans = db.GetTransaction())
{
db.Update(_OrderObject);
trans.Complete();
}
}
//LOGGER.Info("开始打印");
//this.ShowToastNotify(this, "正在打印退款单...");
//开始打印
//_BackOrderObject.PrintType = 1;
//_BackOrderObject.RPrint = false;
//this.PrintOrderObject(_BackOrderObject, true);
return new Tuple<bool, string>(true, "退单完成");
}
else
{
return new Tuple<bool, string>(false, "退单保存失败!");
}
}
else
{
return new Tuple<bool, string>(false, "获取订单信息异常");
}
}
catch (Exception ex)
{
LOGGER.Error(ex, "退单发生异常");
return new Tuple<bool, string>(false, "退单发生异常");
}
}
/// <summary>
/// 订单取消
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Item_OnCancel(object sender, MeiTuanOrderEventArgs e)
{
string orderId = e.OrderId;
MeiTuanOrderCancelRequest request = new MeiTuanOrderCancelRequest();
request.StoreId = Global.Instance.BusinessPlanLog.StoreId;
request.OrderId = orderId;
request.ReasonCode = "2007";
request.Reason = "对不起暂时无法提供服务";
var response = OtherWaiMaiUtils.MeiTuanOrderCancel(request);
if (response != null)
{
LOGGER.Info("美团外卖订单取消:" + response.Item2);
this.ShowToastNotify(this, response.Item2);
if (response.Item1)
{
switch (SelectType)
{
case 0:
DoHandQuery();
break;
case 1:
DoQuery(1, pagerControl2.RowsPerPage);
break;
}
}
}
}
/// <summary>
/// 订单接单
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Item_OnConfirm(object sender, MeiTuanOrderEventArgs e)
{
LOGGER.Info("美团外卖手动接单");
string orderId = e.OrderId;
OrderOnConfirm(orderId);
}
/// <summary>
/// 订单补单
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Item_OnBuDan(object sender, MeiTuanOrderEventArgs e)
{
if (isBudanFlag)
{
return;
}
isBudanFlag = true;
string orderId = e.OrderId;
OrderObject _OrderObject = OrderUtils.getOrderObjectByTranNo("4" + orderId);
//判断订单是否存在
if (_OrderObject == null)
{
try
{
//接单成功打印订单
MeiTuanOrderRequest request1 = new MeiTuanOrderRequest();
string orderDate = this.dateInputPicker.Text;
request1.StoreId = Global.Instance.BusinessPlanLog.StoreId;
request1.OrderId = orderId;
var response1 = OtherWaiMaiUtils.MeiTuanOrder(request1);
if (response1 != null && response1.Item1)
{
//组装本地数据
LOGGER.Info("美团外卖订单组装本地数据");
OrderObject orderObject = OtherWaiMaiApi.getOrderLocalMeiTuan(response1.Item3.Data);
lock (Global.Instance.SyncLock)
{
using (var db = Global.Instance.OpenDataBase)
{
using (var trans = db.GetTransaction())
{
//遍历获取成本价
foreach (OrderItem item in orderObject.Items)
{
ProductSpec productSpec = Global.ProductSpec._productSpecList.Find(x => x.Id.Equals(item.SpecId));
if (productSpec != null)
{
item.CostPrice = productSpec.CostPrice;
}
else
{
item.CostPrice = 0.00M;
}
}
//整单
db.Insert<OrderObject>(orderObject);
//单品明细
db.InsertBatch<OrderItem>(orderObject.Items);
if (orderObject.Items != null)
{
//单品优惠
foreach (var promotion in orderObject.Items)
{
if (promotion.Promotions != null && promotion.Promotions.Count > 0)
{
db.InsertBatch<PromotionItem>(promotion.Promotions);
}
}
}
//添加支付汇总的必填字段
foreach (PayItem payItem in orderObject.Pays)
{
var payMode = OrderUtils.GetPayMode(payItem.No);
if (payMode == null)
{
payItem.IncomeFlag = 1;
payItem.OtherRateType = 0;
payItem.OtherRateValue = 0.00M;
}
else
{
payItem.IncomeFlag = payMode.IncomeFlag;
payItem.OtherRateType = payMode.OtherRateType;
payItem.OtherRateValue = payMode.OtherRateValue;
}
}
//支付明细
db.InsertBatch<PayItem>(orderObject.Pays);
//做法明细
foreach (var flavor in orderObject.Items)
{
if (flavor.Flavors.Count > 0)
{
db.InsertBatch<FlavorItem>(flavor.Flavors);
}
}
//8、保存耗料信息
List<OrderProductBurden> orderBurdenList = new List<OrderProductBurden>();
//第一步组装耗料数量
foreach (var item in orderObject.Items)
{
//第一步先看看商品是否是管理库存的直销品
var lists = Global.Product._productList;
var selectProduct = new List<ProductExt>();
selectProduct = lists.FindAll(x => x.Id.Equals(item.ProductId));
if (selectProduct != null && selectProduct.Count > 0)
{
ProductExt productExt = selectProduct[0];
if (productExt.StockFlag == 1)
{
OrderProductBurden orderProductBurden = new OrderProductBurden();
orderProductBurden.OrderId = orderObject.Id;
orderProductBurden.TenantId = orderObject.TenantId;
orderProductBurden.TradeNo = orderObject.TradeNo;
orderProductBurden.BurdenProductId = item.ProductId;
orderProductBurden.BurdenSpecId = item.SpecId;
orderProductBurden.SalesUnitId = item.ProductUnitId;
orderProductBurden.SalesAmount = item.Quantity - item.RefundQuantity;
orderBurdenList.Add(orderProductBurden);
}
}
//第二步获取门店耗料
StringBuilder sqlBuf = new StringBuilder();
sqlBuf.Append("select burdenProductId,burdenSpecId,salesUnitId,salesAmount from pos_product_burden where productId='{0}' and specId='{1}'");
string productBurdenSql = string.Format(sqlBuf.ToString(), item.ProductId, item.SpecId);
List<ProductBurden> productBurdenList = db.Query<ProductBurden>(productBurdenSql).ToList();
if (productBurdenList != null && productBurdenList.Count > 0)
{
foreach (ProductBurden productBurden in productBurdenList)
{
OrderProductBurden orderProductBurden = new OrderProductBurden();
orderProductBurden.OrderId = orderObject.Id;
orderProductBurden.TenantId = orderObject.TenantId;
orderProductBurden.TradeNo = orderObject.TradeNo;
orderProductBurden.BurdenProductId = productBurden.BurdenProductId;
orderProductBurden.BurdenSpecId = productBurden.BurdenSpecId;
orderProductBurden.SalesUnitId = productBurden.SalesUnitId;
orderProductBurden.SalesAmount = productBurden.SalesAmount * (item.Quantity - item.RefundQuantity);
orderBurdenList.Add(orderProductBurden);
}
}
//做法耗料
foreach (var flavorItem in item.Flavors)
{
StringBuilder sqlBuf1 = new StringBuilder();
sqlBuf1.Append("select burdenProductId,burdenSpecId,salesUnitId,salesAmount from pos_make_burden where makeId='{0}'");
string makeBurdenSql = string.Format(sqlBuf1.ToString(), flavorItem.MakeId);
List<MakeBurden> makeBurdenList = db.Query<MakeBurden>(makeBurdenSql).ToList();
if (makeBurdenList != null && makeBurdenList.Count > 0)
{
foreach (MakeBurden makeBurden in makeBurdenList)
{
OrderProductBurden orderProductBurden = new OrderProductBurden();
orderProductBurden.OrderId = orderObject.Id;
orderProductBurden.TenantId = orderObject.TenantId;
orderProductBurden.TradeNo = orderObject.TradeNo;
orderProductBurden.BurdenProductId = makeBurden.BurdenProductId;
orderProductBurden.BurdenSpecId = makeBurden.BurdenSpecId;
orderProductBurden.SalesUnitId = makeBurden.SalesUnitId;
orderProductBurden.SalesAmount = makeBurden.SalesAmount * (flavorItem.Quantity - flavorItem.RefundQuantity);
orderBurdenList.Add(orderProductBurden);
}
}
}
}
//第二部合并耗料数量
if (orderBurdenList != null && orderBurdenList.Count > 0)
{
List<OrderProductBurden> temList = orderBurdenList.OrderBy(x => x.BurdenSpecId).ToList();
Dictionary<string, Object> typeMap = new Dictionary<string, Object>();
string burdenProductId_temp = "";
string burdenSpecId_temp = "";
string salesUnitId_temp = "";
int i = 0;
List<Dictionary<string, Object>> result = new List<Dictionary<string, Object>>();
decimal salesAmount = 0.00M;
int listLength = temList.Count;
foreach (OrderProductBurden orderProductBurden in temList)
{
string burdenSpecId = orderProductBurden.BurdenSpecId;
if (!burdenSpecId_temp.Equals(burdenSpecId))
{
if (i != 0)
{
typeMap.Add("orderId", orderProductBurden.OrderId);
typeMap.Add("tenantId", orderProductBurden.TenantId);
typeMap.Add("tradeNo", orderProductBurden.TradeNo);
typeMap.Add("burdenProductId", burdenProductId_temp);
typeMap.Add("burdenSpecId", burdenSpecId_temp);
typeMap.Add("salesUnitId", salesUnitId_temp);
typeMap.Add("salesAmount", salesAmount);
result.Add(typeMap);
//分类改变时,清除缓存
typeMap = new Dictionary<string, Object>();
}
salesAmount = 0.00M;
burdenProductId_temp = orderProductBurden.BurdenProductId;
burdenSpecId_temp = orderProductBurden.BurdenSpecId;
salesUnitId_temp = orderProductBurden.SalesUnitId;
}
salesAmount = salesAmount + orderProductBurden.SalesAmount;
i = i + 1;
if (i == listLength)
{
typeMap.Add("orderId", orderProductBurden.OrderId);
typeMap.Add("tenantId", orderProductBurden.TenantId);
typeMap.Add("tradeNo", orderProductBurden.TradeNo);
typeMap.Add("burdenProductId", burdenProductId_temp);
typeMap.Add("burdenSpecId", burdenSpecId_temp);
typeMap.Add("salesUnitId", salesUnitId_temp);
typeMap.Add("salesAmount", salesAmount);
result.Add(typeMap);
//分类改变时,清除缓存
typeMap = new Dictionary<string, Object>();
}
}
List<OrderProductBurden> list = new List<OrderProductBurden>();
foreach (Dictionary<string, Object> map in result)
{
OrderProductBurden entity = new OrderProductBurden();
entity.Id = IdWorkerUtils.Instance.NextId();
entity.StoreId = orderObject.StoreId;
entity.OrderId = StringUtils.GetString(map["orderId"]);
entity.TenantId = StringUtils.GetString(map["tenantId"]);
entity.TradeNo = StringUtils.GetString(map["tradeNo"]);
entity.BurdenProductId = StringUtils.GetString(map["burdenProductId"]);
entity.BurdenSpecId = StringUtils.GetString(map["burdenSpecId"]);
entity.SalesUnitId = StringUtils.GetString(map["salesUnitId"]);
entity.SalesAmount = StringUtils.GetDecimal(map["salesAmount"]);
list.Add(entity);
}
db.InsertBatch<OrderProductBurden>(list);
}
//更新是否有订单需要上传的状态
LOGGER.Info("有需要上传的营业数据,isHaveUpLoadTicket = true");
Global.isHaveUpLoadTicket = true;
Global.isHaveBurdenTicket = true;
LOGGER.Info("有需要同步到服务中心的订单,isHaveCenterTicket = true");
Global.isHaveCenterTicket = true;
trans.Complete();
}
}
Thread.Sleep(100);
}
LOGGER.Info("美团外卖订单存储本地数据");
}
this.ShowToastNotify(this, "补单成功");
}
catch (Exception ex)
{
LOGGER.Error(ex, "美团补单异常");
this.ShowToastNotify(this, "美团补单异常");
}
}
else
{
this.ShowToastNotify(this, "本地订单已存在,不用再补单");
}
isBudanFlag = false;
}
public void OrderOnConfirm(string orderId)
{
MeiTuanOrderConfirmRequest request = new MeiTuanOrderConfirmRequest();
request.StoreId = Global.Instance.BusinessPlanLog.StoreId;
request.OrderId = orderId;
var response = OtherWaiMaiUtils.MeiTuanOrderConfirm(request);
if (response != null)
{
LOGGER.Info("美团外卖订单接单:" + response.Item2);
this.ShowToastNotify(this, response.Item2);
if (response.Item1)
{
try
{
//接单成功打印订单
MeiTuanOrderRequest request1 = new MeiTuanOrderRequest();
string orderDate = this.dateInputPicker.Text;
request1.StoreId = Global.Instance.BusinessPlanLog.StoreId;
request1.OrderId = orderId;
var response1 = OtherWaiMaiUtils.MeiTuanOrder(request1);
if (response1 != null && response1.Item1)
{
OrderObject _OrderObject = OrderUtils.getOrderObjectByTranNo("4" + orderId);
if (_OrderObject != null)
{
LOGGER.Info("美团外卖订单已存在");
return;
}
//组装本地数据
LOGGER.Info("美团外卖订单组装本地数据");
OrderObject orderObject = OtherWaiMaiApi.getOrderLocalMeiTuan(response1.Item3.Data);
lock (Global.Instance.SyncLock)
{
using (var db = Global.Instance.OpenDataBase)
{
using (var trans = db.GetTransaction())
{
//遍历获取成本价
foreach (OrderItem item in orderObject.Items)
{
ProductSpec productSpec = Global.ProductSpec._productSpecList.Find(x => x.Id.Equals(item.SpecId));
if (productSpec != null)
{
item.CostPrice = productSpec.CostPrice;
}
else
{
item.CostPrice = 0.00M;
}
}
//整单
db.Insert<OrderObject>(orderObject);
//单品明细
db.InsertBatch<OrderItem>(orderObject.Items);
if (orderObject.Items != null)
{
//单品优惠
foreach (var promotion in orderObject.Items)
{
if (promotion.Promotions != null && promotion.Promotions.Count > 0)
{
db.InsertBatch<PromotionItem>(promotion.Promotions);
}
}
}
//添加支付汇总的必填字段
foreach (PayItem payItem in orderObject.Pays)
{
var payMode = OrderUtils.GetPayMode(payItem.No);
if (payMode == null)
{
payItem.IncomeFlag = 1;
payItem.OtherRateType = 0;
payItem.OtherRateValue = 0.00M;
}
else
{
payItem.IncomeFlag = payMode.IncomeFlag;
payItem.OtherRateType = payMode.OtherRateType;
payItem.OtherRateValue = payMode.OtherRateValue;
}
}
//支付明细
db.InsertBatch<PayItem>(orderObject.Pays);
//做法明细
foreach (var flavor in orderObject.Items)
{
if (flavor.Flavors.Count > 0)
{
db.InsertBatch<FlavorItem>(flavor.Flavors);
}
}
//8、保存耗料信息
List<OrderProductBurden> orderBurdenList = new List<OrderProductBurden>();
//第一步组装耗料数量
foreach (var item in orderObject.Items)
{
//第一步先看看商品是否是管理库存的直销品
var lists = Global.Product._productList;
var selectProduct = new List<ProductExt>();
selectProduct = lists.FindAll(x => x.Id.Equals(item.ProductId));
if (selectProduct != null && selectProduct.Count > 0)
{
ProductExt productExt = selectProduct[0];
if (productExt.StockFlag == 1)
{
OrderProductBurden orderProductBurden = new OrderProductBurden();
orderProductBurden.OrderId = orderObject.Id;
orderProductBurden.TenantId = orderObject.TenantId;
orderProductBurden.TradeNo = orderObject.TradeNo;
orderProductBurden.BurdenProductId = item.ProductId;
orderProductBurden.BurdenSpecId = item.SpecId;
orderProductBurden.SalesUnitId = item.ProductUnitId;
orderProductBurden.SalesAmount = item.Quantity - item.RefundQuantity;
orderBurdenList.Add(orderProductBurden);
}
}
//第二步获取门店耗料
StringBuilder sqlBuf = new StringBuilder();
sqlBuf.Append("select burdenProductId,burdenSpecId,salesUnitId,salesAmount from pos_product_burden where productId='{0}' and specId='{1}'");
string productBurdenSql = string.Format(sqlBuf.ToString(), item.ProductId, item.SpecId);
List<ProductBurden> productBurdenList = db.Query<ProductBurden>(productBurdenSql).ToList();
if (productBurdenList != null && productBurdenList.Count > 0)
{
foreach (ProductBurden productBurden in productBurdenList)
{
OrderProductBurden orderProductBurden = new OrderProductBurden();
orderProductBurden.OrderId = orderObject.Id;
orderProductBurden.TenantId = orderObject.TenantId;
orderProductBurden.TradeNo = orderObject.TradeNo;
orderProductBurden.BurdenProductId = productBurden.BurdenProductId;
orderProductBurden.BurdenSpecId = productBurden.BurdenSpecId;
orderProductBurden.SalesUnitId = productBurden.SalesUnitId;
orderProductBurden.SalesAmount = productBurden.SalesAmount * (item.Quantity - item.RefundQuantity);
orderBurdenList.Add(orderProductBurden);
}
}
//做法耗料
foreach (var flavorItem in item.Flavors)
{
StringBuilder sqlBuf1 = new StringBuilder();
sqlBuf1.Append("select burdenProductId,burdenSpecId,salesUnitId,salesAmount from pos_make_burden where makeId='{0}'");
string makeBurdenSql = string.Format(sqlBuf1.ToString(), flavorItem.MakeId);
List<MakeBurden> makeBurdenList = db.Query<MakeBurden>(makeBurdenSql).ToList();
if (makeBurdenList != null && makeBurdenList.Count > 0)
{
foreach (MakeBurden makeBurden in makeBurdenList)
{
OrderProductBurden orderProductBurden = new OrderProductBurden();
orderProductBurden.OrderId = orderObject.Id;
orderProductBurden.TenantId = orderObject.TenantId;
orderProductBurden.TradeNo = orderObject.TradeNo;
orderProductBurden.BurdenProductId = makeBurden.BurdenProductId;
orderProductBurden.BurdenSpecId = makeBurden.BurdenSpecId;
orderProductBurden.SalesUnitId = makeBurden.SalesUnitId;
orderProductBurden.SalesAmount = makeBurden.SalesAmount * (flavorItem.Quantity - flavorItem.RefundQuantity);
orderBurdenList.Add(orderProductBurden);
}
}
}
}
//第二部合并耗料数量
if (orderBurdenList != null && orderBurdenList.Count > 0)
{
List<OrderProductBurden> temList = orderBurdenList.OrderBy(x => x.BurdenSpecId).ToList();
Dictionary<string, Object> typeMap = new Dictionary<string, Object>();
string burdenProductId_temp = "";
string burdenSpecId_temp = "";
string salesUnitId_temp = "";
int i = 0;
List<Dictionary<string, Object>> result = new List<Dictionary<string, Object>>();
decimal salesAmount = 0.00M;
int listLength = temList.Count;
foreach (OrderProductBurden orderProductBurden in temList)
{
string burdenSpecId = orderProductBurden.BurdenSpecId;
if (!burdenSpecId_temp.Equals(burdenSpecId))
{
if (i != 0)
{
typeMap.Add("orderId", orderProductBurden.OrderId);
typeMap.Add("tenantId", orderProductBurden.TenantId);
typeMap.Add("tradeNo", orderProductBurden.TradeNo);
typeMap.Add("burdenProductId", burdenProductId_temp);
typeMap.Add("burdenSpecId", burdenSpecId_temp);
typeMap.Add("salesUnitId", salesUnitId_temp);
typeMap.Add("salesAmount", salesAmount);
result.Add(typeMap);
//分类改变时,清除缓存
typeMap = new Dictionary<string, Object>();
}
salesAmount = 0.00M;
burdenProductId_temp = orderProductBurden.BurdenProductId;
burdenSpecId_temp = orderProductBurden.BurdenSpecId;
salesUnitId_temp = orderProductBurden.SalesUnitId;
}
salesAmount = salesAmount + orderProductBurden.SalesAmount;
i = i + 1;
if (i == listLength)
{
typeMap.Add("orderId", orderProductBurden.OrderId);
typeMap.Add("tenantId", orderProductBurden.TenantId);
typeMap.Add("tradeNo", orderProductBurden.TradeNo);
typeMap.Add("burdenProductId", burdenProductId_temp);
typeMap.Add("burdenSpecId", burdenSpecId_temp);
typeMap.Add("salesUnitId", salesUnitId_temp);
typeMap.Add("salesAmount", salesAmount);
result.Add(typeMap);
//分类改变时,清除缓存
typeMap = new Dictionary<string, Object>();
}
}
List<OrderProductBurden> list = new List<OrderProductBurden>();
foreach (Dictionary<string, Object> map in result)
{
OrderProductBurden entity = new OrderProductBurden();
entity.Id = IdWorkerUtils.Instance.NextId();
entity.StoreId = orderObject.StoreId;
entity.OrderId = StringUtils.GetString(map["orderId"]);
entity.TenantId = StringUtils.GetString(map["tenantId"]);
entity.TradeNo = StringUtils.GetString(map["tradeNo"]);
entity.BurdenProductId = StringUtils.GetString(map["burdenProductId"]);
entity.BurdenSpecId = StringUtils.GetString(map["burdenSpecId"]);
entity.SalesUnitId = StringUtils.GetString(map["salesUnitId"]);
entity.SalesAmount = StringUtils.GetDecimal(map["salesAmount"]);
list.Add(entity);
}
db.InsertBatch<OrderProductBurden>(list);
}
//更新是否有订单需要上传的状态
LOGGER.Info("有需要上传的营业数据,isHaveUpLoadTicket = true");
Global.isHaveUpLoadTicket = true;
Global.isHaveBurdenTicket = true;
LOGGER.Info("有需要同步到服务中心的订单,isHaveCenterTicket = true");
Global.isHaveCenterTicket = true;
trans.Complete();
}
}
Thread.Sleep(100);
}
LOGGER.Info("美团外卖订单存储本地数据");
Task.Factory.StartNew(() =>
{
LOGGER.Info("美团外卖订单打印");
this.ShowToastNotify(this, "开始打印");
//构建收银小票模版参数打印
var vars = WaiMaiHelper.BuilderMeiTuanVariable(response1.Item3.Data.PoiName, response1.Item3.Data, false);
Tuple<bool, string> result = WaiMaiHelper.PrinterTicket("美团外卖", vars);
this.ShowToastNotify(this, string.Format("{0}", result.Item2));
//打印标签
LOGGER.Info("美团外卖标签打印");
LabelPrintHelper.PrintOrderLabel(orderObject);
//执行厨打标签
ChuDaHelper.KitchenLabelPrinter(orderObject);
LOGGER.Info("美团外卖执行厨打标签");
//启用外卖商品绑定厨显方案
var planKds = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CONFIG_CASHIER_OTHERWAIMAI_PLANKDS, true);
//启用外卖商品绑定厨打方案
var planKit = Global.Instance.GlobalConfigBoolValue(ConfigConstant.CONFIG_CASHIER_OTHERWAIMAI_PLANKIT, true);
if (planKit)
{
//执行厨打
ChuDaHelper.KitchenPrinter(orderObject);
logger.Info("美团外卖厨打成功");
//执行出品
ChuDaHelper.MadePrinter(orderObject);
logger.Info("美团外卖出品成功");
}
if (planKds)
{
//通知厨显
UploadSCNewOrder.UploadNewOrder2SC4KDS(orderObject);
logger.Info("美团外卖厨显成功");
}
});
}
}
catch (Exception ex)
{
LOGGER.Error(ex, "美团接单异常");
}
switch (SelectType)
{
case 0:
DoHandQuery();
break;
case 1:
DoQuery(1, pagerControl2.RowsPerPage);
break;
}
}
}
}
/// <summary>
/// 门店营业
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_openStore(object sender, EventArgs e)
{
MeiTuanPoiOpenRequest request = new MeiTuanPoiOpenRequest();
request.StoreId = Global.Instance.BusinessPlanLog.StoreId;
var response = OtherWaiMaiUtils.MeiTuanPoiOpen(request);
if (response != null)
{
if (response.Item1)
{
this.ShowToastNotify(this, response.Item2);
QueryMeiTuanPoiInfo();
}
}
}
/// <summary>
/// 门店休息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_closeStore(object sender, EventArgs e)
{
MeiTuanPoiCloseRequest request = new MeiTuanPoiCloseRequest();
request.StoreId = Global.Instance.BusinessPlanLog.StoreId;
var response = OtherWaiMaiUtils.MeiTuanPoiClose(request);
if (response != null)
{
if (response.Item1)
{
this.ShowToastNotify(this, response.Item2);
QueryMeiTuanPoiInfo();
}
}
}
private void btn_getHandOrder(object sender, EventArgs e)
{
DoHandQuery();
}
/// <summary>
/// 获取待处理订单
/// </summary>
private void DoHandQuery()
{
if (handleQuerying)
{
this.ShowToastNotify(this, "查询中.....");
return;
}
handleQuerying = true;
this.tableLayoutPanel1.Controls.Clear();
Task.Factory.StartNew(() =>
{
MeiTuanOrderHandleRequest request = new MeiTuanOrderHandleRequest();
string orderDate = this.dateInputPicker.Text;
request.StoreId = Global.Instance.BusinessPlanLog.StoreId;
var response = OtherWaiMaiUtils.QueryMeiTuanOrderHandle(request);
if (response != null && response.Item1)
{
if (this.IsDisposed || !this.IsHandleCreated) return;
this.Invoke(new Action(() =>
{
List<MeiTuanItem> detailList = new List<MeiTuanItem>();
foreach (MeiTuanOrderHandleResponse order in response.Item3.List)
{
var item = new MeiTuanItem(order);
item.OnConfirm += Item_OnConfirm;
item.OnCancel += Item_OnCancel;
item.OnRefundAgree += Item_OnRefundAgree;
item.OnRefundReject += Item_OnRefundReject;
item.OnOrderPrint += Item_OnPrint;
item.OnOrderBuDan += Item_OnBuDan;
detailList.Add(item);
}
if (this.IsDisposed || !this.IsHandleCreated) return;
if (detailList.Count > 0)
{
this.tableLayoutPanel1.Controls.AddRange(detailList.ToArray());
//滚动至顶部
this.tableLayoutPanel1.AutoScrollPosition = new Point(0, 0);
}
//更新控件
sendNewView(response.Item3.List.Count);
}));
}
handleQuerying = false;
});
}
/// <summary>
/// 待处理订单和历史订单查询切换
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tab_onclick(object sender, EventArgs e)
{
var obj = sender as SuperTabItem;
var name = obj.Tag as string;
switch (name)
{
case "superTabItem1"://待处理订单
SelectType = 0;
break;
case "superTabItem2"://历史订单
SelectType = 1;
break;
}
}
private void OnQueryPageChangeWithObject(object obj)
{
//获得当前页
int cur = pagerControl2.CurrentPage;
//获得每页显示的记录数
int rows = pagerControl2.RowsPerPage;
PagerControl pager = obj as PagerControl;
if (pager != null)
{
DoQuery(cur, rows);
}
}
/// <summary>
/// 是否自动接单
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cb_change_click(object sender, EventArgs e)
{
var obj = sender as CheckBoxX;
var indexT = obj.Tag as string;
int type = 0;
if ("开启".Equals(indexT) && obj.Checked)
{
ConfirmType = 1;
}
if ("关闭".Equals(indexT) && obj.Checked)
{
ConfirmType = 0;
}
var config = new Config();
config.Id = IdWorkerUtils.Instance.NextId();
config.Group = ConfigConstant.DEVICE_GROUP;
config.TenantId = Global.Instance.Authc.TenantId;
config.Keys = ConfigConstant.MEITUAN_CONFIRM_PARAMETER;
config.Values = string.Format("{0}", ConfirmType);
try
{
using (var db = Global.Instance.OpenDataBase)
{
using (var trans = db.GetTransaction())
{
db.Save(config);
trans.Complete();
}
}
Global.Instance.ReloadConfig(ConfigConstant.DEVICE_GROUP);
if (ConfirmType == 1)
{
this.ShowToastNotify(this, "开启自动接单");
}
else
{
this.ShowToastNotify(this, "关闭自动接单");
}
}
catch (Exception ex)
{
string message = "美团外卖参数更新异常";
LOGGER.Error(ex, message);
}
}
//根据待处理订单的数量刷新提示
public void sendNewView(int orderCount)
{
//有百度外卖订单
MsgEvent.Send(Constant.MSGCENTER_NOTIFY, new MsgEntity()
{
Subject = Constant.MENU_TITLE_CHANGED_NOTIFY,
SubSubject = ModuleKeyCode..ToString(),
Operate = MsgEntityOperate.,
Data = new Tuple<ModuleKeyCode, MenuTileNotifyType, string>(ModuleKeyCode., MenuTileNotifyType., string.Format("{0}", orderCount))
});
}
private void btn_time_Click(object sender, EventArgs e)
{
var obj = sender as ButtonX;
try
{
obj.Enabled = false;
var date = obj.Tag as string;
switch (date)
{
case "today":
this.dateInputPicker.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
break;
case "yesterday":
this.dateInputPicker.Value = DateTime.Parse(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"));
break;
}
DoQuery(1, pagerControl2.RowsPerPage);
}
finally
{
obj.Enabled = true;
}
}
private void cbstatus_change_click(object sender, EventArgs e)
{
var obj = sender as CheckBoxX;
var indexT = obj.Tag as string;
if ("全部".Equals(indexT))
{
orderType = 0;
}
if ("已取消".Equals(indexT))
{
orderType = 1;
}
if ("已退单".Equals(indexT))
{
orderType = 2;
}
DoQuery(1, pagerControl2.RowsPerPage);
}
private void miniToolStrip_RefreshItems(object sender, EventArgs e)
{
}
/// <summary>
/// 美团绑定
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_bindStore(object sender, EventArgs e)
{
try
{
MeiTuanStoreSaveRequest request = new MeiTuanStoreSaveRequest();
request.StoreId = Global.Instance.BusinessPlanLog.StoreId;
var response = OtherWaiMaiUtils.MeiTuanStoreSave(request);
//成功
if (response.Item1)
{
MeiTuanStoreMapUrlRequest request1 = new MeiTuanStoreMapUrlRequest();
request1.StoreId = Global.Instance.BusinessPlanLog.StoreId;
request1.BusinessId = "2";
var response1 = OtherWaiMaiUtils.MeiTuanStoreMapUrl(request1);
//成功
if (response1.Item1)
{
this.ShowToastNotify(this, response1.Item2);
//打开二维码生成界面
var form = new WaiMaiBindForm(response1.Item3.Data.Url);
form.ShowDialog();
}
else
{
this.ShowToastNotify(this, response1.Item2);
}
}
else
{
this.ShowToastNotify(this, response.Item2);
}
}
catch (Exception ex)
{
this.ShowToastNotify(this, "美团绑定链接生成失败!");
LOGGER.Error(ex, "美团绑定链接生成失败");
}
}
/// <summary>
/// 美团解绑
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_unbindStore(object sender, EventArgs e)
{
try
{
MeiTuanStoreMapRelaseUrlRequest request = new MeiTuanStoreMapRelaseUrlRequest();
request.StoreId = Global.Instance.BusinessPlanLog.StoreId;
request.BusinessId = "2";
var response = OtherWaiMaiUtils.MeiTuanStoreMapRelaseUrl(request);
//成功
if (response.Item1)
{
this.ShowToastNotify(this, response.Item2);
//打开二维码生成界面
var form = new WaiMaiBindForm(response.Item3.Data.Url);
form.ShowDialog();
}
else
{
this.ShowToastNotify(this, response.Item2);
}
}
catch (Exception ex)
{
this.ShowToastNotify(this, "美团解绑链接生成失败!");
LOGGER.Error(ex, "美团解绑链接生成失败");
}
}
}
}