Commit 287a9c93 by 戴尚尚

Add 1:添加门店管理操作

parent 7402871c
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include <QDir> #include <QDir>
#include <QApplication> #include <QApplication>
#include "DTools/orderstatus.h" #include "DTools/orderstatus.h"
#include "preDefine.h"
FlowControl &FlowControl::GetInstance() FlowControl &FlowControl::GetInstance()
{ {
...@@ -1139,3 +1140,81 @@ void FlowControl::onUpdDishes(QStringList channelCode, QString disheId, int stat ...@@ -1139,3 +1140,81 @@ void FlowControl::onUpdDishes(QStringList channelCode, QString disheId, int stat
emit processDishiesSuccssful(channelCode, disheId, status); emit processDishiesSuccssful(channelCode, disheId, status);
} }
} }
void FlowControl::onGetBusinessStatus()
{
QString error;
bool result;
QJsonObject sendJson;
QJsonObject recvJson;
sendJson = DataManger::GetInstance().GetStoreChannelInfoData();
emit showAlert(AlertForm::LOADING, "正在获取平台营业状态......");
QLOG_INFO() << QString("[---GetStoreChannelInfo---]. [requestData:%1]").arg(_GetJsonStr(sendJson));
result = m_pullDishesSocket->Request(sendJson, recvJson, error);
qDebug() << recvJson;
QLOG_INFO() << QString("GetStoreChannelInfo finsh. [result:%1][msg:%2][recvData:%3]")
.arg(result).arg(error, _GetJsonStr(recvJson));
if(!result)
{
emit showAlert(AlertForm::ERROR, "获取平台营业状态失败![网络错误]");
}else
{
if(JSON_STATUSCODE_OK != recvJson[JSON_STATUSCODE].toInt())
{
emit showAlert(AlertForm::ERROR, QString("获取平台营业状态失败![%1]").arg(recvJson[JSON_MESSAGE].toString()));
}else
{
// 分别获取每个平台的菜品信息
QJsonArray jaChannels = recvJson[JSON_SHOPSTATUS].toArray();
QStringList strListChannels;
foreach(QJsonValue v, jaChannels)
{
QJsonObject channel = v.toObject();
QString channelName = channel["name"].toString();
QString channelCode = channel["code"].toString();
QString channelStatus = QString::number(channel["status"].toInt());
strListChannels.append(channelCode+":"+channelName+":"+channelStatus);
}
if(!strListChannels.isEmpty())
{
emit hideAlert();
// 通知界面显示
emit initChannelsData(strListChannels);
}else
{
emit showAlert(AlertForm::ERROR, QString("未获取到平台信息!"));
}
}
}
}
void FlowControl::onSetStoreOperatingStatus(QString channel, int business_status)
{
QString error;
bool result;
QJsonObject sendJson;
QJsonObject recvJson;
sendJson = DataManger::GetInstance().GetOperatingStatusData(channel, business_status);
emit showAlert(AlertForm::LOADING, "正在设置门店营业状态......");
QLOG_INFO() << QString("[---SetStoreOperatingStatus---]. [requestData:%1]").arg(_GetJsonStr(sendJson));
result = m_pullDishesSocket->Request(sendJson, recvJson, error);
QLOG_INFO() << QString("SetStoreOperatingStatus finsh. [result:%1][msg:%2][recvData:%3]")
.arg(result).arg(error, _GetJsonStr(recvJson));
if(!result)
{
emit showAlert(AlertForm::ERROR, "设置门店营业状态失败![网络错误]");
}else
{
if(JSON_STATUSCODE_OK != recvJson[JSON_STATUSCODE].toInt())
{
emit showAlert(AlertForm::ERROR, QString("设置门店营业状态失败![%1]").arg(recvJson[JSON_MESSAGE].toString()));
}else
{
emit hideAlert();
emit setStoreOperatingStatusFinsh(channel);
}
}
}
...@@ -22,6 +22,8 @@ class FlowControl : public QObject ...@@ -22,6 +22,8 @@ class FlowControl : public QObject
public: public:
static FlowControl& GetInstance(); static FlowControl& GetInstance();
private: private:
FlowControl(); FlowControl();
FlowControl(FlowControl const&); FlowControl(FlowControl const&);
...@@ -125,6 +127,12 @@ signals: ...@@ -125,6 +127,12 @@ signals:
// 通知菜品管理界面操作成功刷新界面 [1]平台 [2]菜品ID [3]状态 // 通知菜品管理界面操作成功刷新界面 [1]平台 [2]菜品ID [3]状态
void processDishiesSuccssful(QStringList, QString, int); void processDishiesSuccssful(QStringList, QString, int);
// 通知门店营业管理界面初始化信息
void initChannelsData(QStringList);
// 通知营业状态管理界面操作成功
void setStoreOperatingStatusFinsh(QString);
private slots: private slots:
/* 功能:获取门店信息 /* 功能:获取门店信息
* 参数:NULL * 参数:NULL
...@@ -262,6 +270,16 @@ public slots: ...@@ -262,6 +270,16 @@ public slots:
* 返回:NULL * 返回:NULL
* */ * */
void onUpdDishes(QStringList channelCode, QString disheId, int status); void onUpdDishes(QStringList channelCode, QString disheId, int status);
/* 功能:获取门店营业状态
* 参数:NULL
* 返回:NULL
* */
void onGetBusinessStatus();
/* 功能:设置门店营业状态
* 参数:NULL
* 返回:NULL
* */
void onSetStoreOperatingStatus(QString channel, int business_status);
}; };
#endif // FLOWCONTROL_H #endif // FLOWCONTROL_H
...@@ -227,3 +227,13 @@ QJsonObject DataManger::GetStoreChannelInfoData() ...@@ -227,3 +227,13 @@ QJsonObject DataManger::GetStoreChannelInfoData()
rObj.insert(JSON_TOKEN, m_token); rObj.insert(JSON_TOKEN, m_token);
return rObj; return rObj;
} }
QJsonObject DataManger::GetOperatingStatusData(const QString &channel, int status)
{
QJsonObject rObj;
rObj.insert(JSON_REQTYPE, SET_STORE_OPERATING_STATUS);
rObj.insert(JSON_TOKEN, m_token);
rObj.insert(JSON_CHANNEL, channel);
rObj.insert("business_status", status);
return rObj;
}
...@@ -103,6 +103,8 @@ public: ...@@ -103,6 +103,8 @@ public:
* */ * */
QJsonObject GetStoreChannelInfoData(); QJsonObject GetStoreChannelInfoData();
QJsonObject GetOperatingStatusData(const QString &channel, int status);
private: private:
DataManger(){} DataManger(){}
......
#include "bstatusForm.h"
#include "ui_bstatusForm.h"
#include "Control/flowControl.h"
#include "bstatusItem.h"
BStatusForm::BStatusForm(QWidget *parent) :
QDialog(parent),
ui(new Ui::BStatusForm)
{
ui->setupUi(this);
connect(&FlowControl::GetInstance(), &FlowControl::initChannelsData, this, &BStatusForm::onInitChannelsData);
setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground);
this->setModal(true);
}
BStatusForm::~BStatusForm()
{
delete ui;
}
void BStatusForm::onInitChannelsData(QStringList list)
{
foreach(BStatusItem* item, m_items)
{
delete item;
}
m_items.clear();
foreach(QString channelInfo, list)
{
BStatusItem *item = new BStatusItem(this);
item->InitData(channelInfo);
m_items.append(item);
ui->verticalLayout->insertWidget(0, item);
}
show();
}
void BStatusForm::on_btsBtnClose_clicked()
{
hide();
}
#ifndef BSTATUSFORM_H
#define BSTATUSFORM_H
#include <QDialog>
#include "bstatusItem.h"
namespace Ui {
class BStatusForm;
}
class BStatusForm : public QDialog
{
Q_OBJECT
public:
explicit BStatusForm(QWidget *parent = 0);
~BStatusForm();
private:
Ui::BStatusForm *ui;
QList<BStatusItem*> m_items;
public slots:
void onInitChannelsData(QStringList list);
private slots:
void on_btsBtnClose_clicked();
};
#endif // BSTATUSFORM_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>BStatusForm</class>
<widget class="QDialog" name="BStatusForm">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>460</width>
<height>468</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QWidget" name="btsWdg" native="true">
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>28</x>
<y>19</y>
<width>4</width>
<height>20</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(58, 58, 58);</string>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="bstLab">
<property name="geometry">
<rect>
<x>40</x>
<y>18</y>
<width>201</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>门店营业状态设置</string>
</property>
</widget>
<widget class="QPushButton" name="btsBtnClose">
<property name="geometry">
<rect>
<x>130</x>
<y>363</y>
<width>181</width>
<height>40</height>
</rect>
</property>
<property name="text">
<string>确 定</string>
</property>
</widget>
<widget class="QWidget" name="verticalLayoutWidget">
<property name="geometry">
<rect>
<x>30</x>
<y>60</y>
<width>381</width>
<height>281</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>5</number>
</property>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
#include "bstatusItem.h"
#include "ui_bstatusItem.h"
#include <QStringList>
#include "Control/flowControl.h"
BStatusItem::BStatusItem(QWidget *parent) :
QDialog(parent),
ui(new Ui::BStatusItem)
{
ui->setupUi(this);
connect(this, &BStatusItem::setStoreOperatingStatus, &FlowControl::GetInstance(), &FlowControl::onSetStoreOperatingStatus);
connect(&FlowControl::GetInstance(), &FlowControl::setStoreOperatingStatusFinsh, this, &BStatusItem::onSetStoreOperatingStatusFinsh);
}
BStatusItem::~BStatusItem()
{
delete ui;
}
void BStatusItem::InitData(QString str)
{
QStringList list = str.split(":");
m_channelCode = list.at(0);
m_channelName = list.at(1);
m_channelStatus = QString(list.at(2)).toInt();
ui->btsItemLab->setText(m_channelName);
if(m_channelStatus == 0)
{
// 置休中
ui->btsItemStatus->setText("<font color='#ff0000'>已置休</font>");
ui->btsItemBtn->setText("营业");
}else
{
// 营业中
ui->btsItemStatus->setText("<font color='#22b807'>营业中</font>");
ui->btsItemBtn->setText("置休");
}
}
void BStatusItem::onSetStoreOperatingStatusFinsh(QString channel)
{
if(!channel.compare(m_channelCode))
{
m_channelStatus = m_channelStatus==0?1:0;
if(m_channelStatus == 0)
{
// 关店中
ui->btsItemStatus->setText("<font color='#ff0000'>已置休</font>");
ui->btsItemBtn->setText("营业");
}else
{
// 营业中
ui->btsItemStatus->setText("<font color='#22b807'>营业中</font>");
ui->btsItemBtn->setText("置休");
}
}
}
void BStatusItem::on_btsItemBtn_clicked()
{
emit setStoreOperatingStatus(m_channelCode, m_channelStatus==0?1:0);
}
#ifndef BSTATUSITEM_H
#define BSTATUSITEM_H
#include <QDialog>
namespace Ui {
class BStatusItem;
}
class BStatusItem : public QDialog
{
Q_OBJECT
public:
explicit BStatusItem(QWidget *parent = 0);
~BStatusItem();
void InitData(QString);
private slots:
void on_btsItemBtn_clicked();
private:
Ui::BStatusItem *ui;
QString m_channelName;
QString m_channelCode;
int m_channelStatus;
signals:
void setStoreOperatingStatus(const QString&, int);
public slots:
void onSetStoreOperatingStatusFinsh(QString);
};
#endif // BSTATUSITEM_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>BStatusItem</class>
<widget class="QDialog" name="BStatusItem">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>370</width>
<height>65</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>370</width>
<height>65</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>370</width>
<height>65</height>
</size>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<widget class="QLabel" name="btsItemLab">
<property name="geometry">
<rect>
<x>20</x>
<y>23</y>
<width>81</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>百度外卖</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
<widget class="QPushButton" name="btsItemBtn">
<property name="geometry">
<rect>
<x>261</x>
<y>18</y>
<width>75</width>
<height>30</height>
</rect>
</property>
<property name="text">
<string>置休</string>
</property>
</widget>
<widget class="QLabel" name="btsItemStatus">
<property name="geometry">
<rect>
<x>140</x>
<y>23</y>
<width>81</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
...@@ -46,7 +46,9 @@ SOURCES += main.cpp\ ...@@ -46,7 +46,9 @@ SOURCES += main.cpp\
Model/dishesObject.cpp \ Model/dishesObject.cpp \
dishesItem.cpp \ dishesItem.cpp \
dishesPickForm.cpp \ dishesPickForm.cpp \
disTabWdg.cpp disTabWdg.cpp \
bstatusForm.cpp \
bstatusItem.cpp
HEADERS += \ HEADERS += \
mainForm.h \ mainForm.h \
...@@ -78,7 +80,9 @@ HEADERS += \ ...@@ -78,7 +80,9 @@ HEADERS += \
Model/dishesObject.h \ Model/dishesObject.h \
dishesItem.h \ dishesItem.h \
dishesPickForm.h \ dishesPickForm.h \
disTabWdg.h disTabWdg.h \
bstatusForm.h \
bstatusItem.h
FORMS += mainForm.ui \ FORMS += mainForm.ui \
alertForm.ui \ alertForm.ui \
...@@ -92,7 +96,9 @@ FORMS += mainForm.ui \ ...@@ -92,7 +96,9 @@ FORMS += mainForm.ui \
dishesForm.ui \ dishesForm.ui \
dishesItem.ui \ dishesItem.ui \
dishesPickForm.ui \ dishesPickForm.ui \
disTabWdg.ui disTabWdg.ui \
bstatusForm.ui \
bstatusItem.ui
RC_FILE += fmTakeaway.rc RC_FILE += fmTakeaway.rc
......
...@@ -42,6 +42,7 @@ MainForm::MainForm(QWidget *parent) : ...@@ -42,6 +42,7 @@ MainForm::MainForm(QWidget *parent) :
connect(this, &MainForm::getOnDutyCashiers, &FlowControl::GetInstance(), &FlowControl::onGetOnDutyCashiers); connect(this, &MainForm::getOnDutyCashiers, &FlowControl::GetInstance(), &FlowControl::onGetOnDutyCashiers);
connect(this, &MainForm::getOrderDetails, &FlowControl::GetInstance(), &FlowControl::onGetOrderDetails); connect(this, &MainForm::getOrderDetails, &FlowControl::GetInstance(), &FlowControl::onGetOrderDetails);
connect(this, &MainForm::PullDishes, &FlowControl::GetInstance(), &FlowControl::onPullDishes); connect(this, &MainForm::PullDishes, &FlowControl::GetInstance(), &FlowControl::onPullDishes);
connect(this, &MainForm::GetBusinessStatus, &FlowControl::GetInstance(), &FlowControl::onGetBusinessStatus);
connect(&FlowControl::GetInstance(), &FlowControl::hideAlert, this, &MainForm::onHideAlert); connect(&FlowControl::GetInstance(), &FlowControl::hideAlert, this, &MainForm::onHideAlert);
connect(&FlowControl::GetInstance(), &FlowControl::showAlert, this, &MainForm::onShowAlert); connect(&FlowControl::GetInstance(), &FlowControl::showAlert, this, &MainForm::onShowAlert);
connect(&FlowControl::GetInstance(), &FlowControl::setOpeStatus, this, &MainForm::onSetOpeStatus); connect(&FlowControl::GetInstance(), &FlowControl::setOpeStatus, this, &MainForm::onSetOpeStatus);
...@@ -99,6 +100,8 @@ void MainForm::MyShow() ...@@ -99,6 +100,8 @@ void MainForm::MyShow()
m_dishesForm = new dishesForm(this); m_dishesForm = new dishesForm(this);
m_bunisStatusForm = new BStatusForm(this);
emit flowStart(); emit flowStart();
ui->mainEdtSearch->setFocus(); ui->mainEdtSearch->setFocus();
...@@ -522,3 +525,8 @@ void MainForm::on_mainBtnDc_clicked() ...@@ -522,3 +525,8 @@ void MainForm::on_mainBtnDc_clicked()
{ {
emit PullDishes(); emit PullDishes();
} }
void MainForm::on_mainBtnMDGL_clicked()
{
emit GetBusinessStatus();
}
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include <QListWidget> #include <QListWidget>
#include <QTimer> #include <QTimer>
#include "dishesForm.h" #include "dishesForm.h"
#include "bstatusForm.h"
namespace Ui { namespace Ui {
class MainForm; class MainForm;
...@@ -71,6 +72,9 @@ private: ...@@ -71,6 +72,9 @@ private:
// 菜品管理界面 // 菜品管理界面
dishesForm *m_dishesForm; dishesForm *m_dishesForm;
// 门店营业管理界面
BStatusForm *m_bunisStatusForm;
// 托盘图标 // 托盘图标
SysTray m_tray; SysTray m_tray;
...@@ -142,6 +146,11 @@ signals: ...@@ -142,6 +146,11 @@ signals:
* */ * */
void PullDishes(); void PullDishes();
/* 功能:获取门店营业状态
* 参数:NULL
* 返回:NULL
* */
void GetBusinessStatus();
private slots: private slots:
/* 功能:初始化 /* 功能:初始化
...@@ -222,6 +231,8 @@ private slots: ...@@ -222,6 +231,8 @@ private slots:
void on_mainBtnDc_clicked(); void on_mainBtnDc_clicked();
void on_mainBtnMDGL_clicked();
public slots: public slots:
/* 功能:隐藏通知窗口 /* 功能:隐藏通知窗口
* 参数:NULL * 参数:NULL
......
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_11" stretch="0,0,0,0,0"> <layout class="QHBoxLayout" name="horizontalLayout_11" stretch="0,0,0,0,0,0">
<property name="spacing"> <property name="spacing">
<number>20</number> <number>20</number>
</property> </property>
...@@ -254,6 +254,22 @@ ...@@ -254,6 +254,22 @@
</spacer> </spacer>
</item> </item>
<item> <item>
<widget class="QPushButton" name="mainBtnMDGL">
<property name="minimumSize">
<size>
<width>72</width>
<height>32</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string>门店管理</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="mainBtnDc"> <widget class="QPushButton" name="mainBtnDc">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment