Commit 607a96ba by NitefullWind

1. 实现获取门店信息。 2. 实现登陆。

parent 53a320c2
...@@ -160,6 +160,25 @@ inline std::shared_ptr<odb::database> DBSP() { ...@@ -160,6 +160,25 @@ inline std::shared_ptr<odb::database> DBSP() {
return DBConnect::Instance()->DBPointer(); return DBConnect::Instance()->DBPointer();
} }
inline QSharedPointer<StoreInfo> GetLastStoreInfo()
{
QSharedPointer<StoreInfo> storeInfoP(new StoreInfo());
try {
odb::transaction t (DBSP()->begin ());
StoreInfo_last storeInfo = DBSP()->query_value<StoreInfo_last>();
storeInfoP->setStoreId(storeInfo._storeId);
storeInfoP->setPosId(storeInfo._posId);
storeInfoP->setBusinessDate(storeInfo._businessDate);
storeInfoP->setOperatorId(storeInfo._operatorId);
t.commit ();
} catch (const odb::exception &e) {
qDebug() << "Exception: Get last store info: " << e.what();
}
return storeInfoP;
}
} }
#endif // DATABASE_H #endif // DATABASE_H
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#include <odb/qt/lazy-ptr.hxx> #include <odb/qt/lazy-ptr.hxx>
#define DB_VERSION_BASE 1 #define DB_VERSION_BASE 1
#define DB_VERSION_CURRENT 9 #define DB_VERSION_CURRENT 10
#pragma db model version(DB_VERSION_BASE, DB_VERSION_CURRENT) #pragma db model version(DB_VERSION_BASE, DB_VERSION_CURRENT)
namespace DB { namespace DB {
...@@ -214,6 +214,20 @@ private: ...@@ -214,6 +214,20 @@ private:
QString _businessDate; QString _businessDate;
}; };
#pragma db view object(StoreInfo) \
query((?) + "order by id desc limit 0,1")
struct StoreInfo_last
{
#pragma db column(StoreInfo::_storeId)
QString _storeId;
#pragma db column(StoreInfo::_posId)
QString _posId;
#pragma db column(StoreInfo::_operatorId)
QString _operatorId;
#pragma db column(StoreInfo::_businessDate)
QString _businessDate;
};
} }
Q_DECLARE_METATYPE(DB::Item*) Q_DECLARE_METATYPE(DB::Item*)
......
<changelog xmlns="http://www.codesynthesis.com/xmlns/odb/changelog" database="sqlite" version="1"> <changelog xmlns="http://www.codesynthesis.com/xmlns/odb/changelog" database="sqlite" version="1">
<changeset version="10"/>
<changeset version="9"/> <changeset version="9"/>
<changeset version="8"/> <changeset version="8"/>
......
...@@ -78,7 +78,7 @@ struct PP{ ...@@ -78,7 +78,7 @@ struct PP{
StoreId = "store_id"; StoreId = "store_id";
PosId = "pos_id"; PosId = "pos_id";
OperatorId = "operator_id"; OperatorId = "operator_id";
BussinessDate = "business_date"; BusinessDate = "business_date";
Fm_cmd = "fm_cmd"; Fm_cmd = "fm_cmd";
FM_Type = "FM_Type"; FM_Type = "FM_Type";
TransId = "trans_id"; TransId = "trans_id";
...@@ -162,7 +162,7 @@ struct PP{ ...@@ -162,7 +162,7 @@ struct PP{
QString StoreId ; QString StoreId ;
QString PosId ; QString PosId ;
QString OperatorId ; QString OperatorId ;
QString BussinessDate ; QString BusinessDate ;
QString Fm_cmd ; QString Fm_cmd ;
QString FM_Type ; QString FM_Type ;
QString TransId ; QString TransId ;
...@@ -261,7 +261,7 @@ const PropsMap::value_type PropsMapPairs[] = ...@@ -261,7 +261,7 @@ const PropsMap::value_type PropsMapPairs[] =
PropsMap::value_type(PosProps.Phone, "mobile"), PropsMap::value_type(PosProps.Phone, "mobile"),
PropsMap::value_type(PosProps.TransId, "transId"), PropsMap::value_type(PosProps.TransId, "transId"),
PropsMap::value_type(PosProps.Coupon, "couponCode"), PropsMap::value_type(PosProps.Coupon, "couponCode"),
PropsMap::value_type(PosProps.BussinessDate,"businessDate"), PropsMap::value_type(PosProps.BusinessDate,"businessDate"),
PropsMap::value_type(PosProps.Fm_order_id, "memberTransId"), PropsMap::value_type(PosProps.Fm_order_id, "memberTransId"),
PropsMap::value_type(PosProps.Fm_open_id, "account"), PropsMap::value_type(PosProps.Fm_open_id, "account"),
PropsMap::value_type(PosProps.Account, "memberNo"), PropsMap::value_type(PosProps.Account, "memberNo"),
...@@ -315,7 +315,7 @@ const static QString DefaultProps[] = { ...@@ -315,7 +315,7 @@ const static QString DefaultProps[] = {
PosProps.StoreId, PosProps.StoreId,
PosProps.PosId, PosProps.PosId,
PosProps.OperatorId, PosProps.OperatorId,
PosProps.BussinessDate PosProps.BusinessDate
}; };
// 删除指针宏 // 删除指针宏
......
...@@ -84,7 +84,7 @@ void FMTask::showWindow() ...@@ -84,7 +84,7 @@ void FMTask::showWindow()
PosProps.StoreId, PosProps.StoreId,
PosProps.PosId, PosProps.PosId,
PosProps.OperatorId, PosProps.OperatorId,
PosProps.BussinessDate, PosProps.BusinessDate,
}; };
for(int i=0; i<sizeof(sL)/sizeof(sL[0]); ++i) { for(int i=0; i<sizeof(sL)/sizeof(sL[0]); ++i) {
......
...@@ -3,8 +3,9 @@ ...@@ -3,8 +3,9 @@
#include "fmp_vip_settings.h" #include "fmp_vip_settings.h"
#include "fmnetwork.h" #include "fmnetwork.h"
#include <QJsonDocument> #include <QJsonDocument>
//#include "items/storeinfo.h" #include "database.h"
//#include "dbop.h"
using namespace DB;
TaskLogin::TaskLogin(QJsonObject &jsonObj, Session *session, QObject *parent) TaskLogin::TaskLogin(QJsonObject &jsonObj, Session *session, QObject *parent)
:FMTask(jsonObj, FM_Login, session, parent) :FMTask(jsonObj, FM_Login, session, parent)
...@@ -13,10 +14,18 @@ TaskLogin::TaskLogin(QJsonObject &jsonObj, Session *session, QObject *parent) ...@@ -13,10 +14,18 @@ TaskLogin::TaskLogin(QJsonObject &jsonObj, Session *session, QObject *parent)
void TaskLogin::packagePOSReq() void TaskLogin::packagePOSReq()
{ {
// auto storeInfo = new FMItem::StoreInfo(); auto storeInfo = GetLastStoreInfo();
// DBOP::GetLastItem(storeInfo);
// posReqJsonObj = storeInfo->toJson(QStringList(), posReqJsonObj); QString msg;
if(storeInfo == nullptr) {
msg = QString::fromLocal8Bit("未设置营业信息,不能进行会员认证");
setError(FM_API_ERROR, msg);
return;
}
posReqJsonObj[PosProps.StoreId] = storeInfo->storeId();
posReqJsonObj[PosProps.PosId] = storeInfo->posId();
posReqJsonObj[PosProps.BusinessDate] = storeInfo->businessDate();
posReqJsonObj[PosProps.OperatorId] = storeInfo->operatorId();
} }
void TaskLogin::setWindow() void TaskLogin::setWindow()
......
...@@ -19,7 +19,7 @@ void TaskSetStoreInfo::packagePOSRsp() ...@@ -19,7 +19,7 @@ void TaskSetStoreInfo::packagePOSRsp()
QSharedPointer<StoreInfo> storeInfo(new StoreInfo()); QSharedPointer<StoreInfo> storeInfo(new StoreInfo());
storeInfo->setStoreId(getPosJsonValue(PosProps.StoreId).toString()); storeInfo->setStoreId(getPosJsonValue(PosProps.StoreId).toString());
storeInfo->setPosId(getPosJsonValue(PosProps.PosId).toString()); storeInfo->setPosId(getPosJsonValue(PosProps.PosId).toString());
storeInfo->setBusinessDate(getPosJsonValue(PosProps.BussinessDate).toString()); storeInfo->setBusinessDate(getPosJsonValue(PosProps.BusinessDate).toString());
storeInfo->setOperatorId(getPosJsonValue(PosProps.OperatorId).toString()); storeInfo->setOperatorId(getPosJsonValue(PosProps.OperatorId).toString());
int statusCode = FM_API_SUCCESS; int statusCode = FM_API_SUCCESS;
......
...@@ -19,7 +19,7 @@ bool FMVipFund::initWnd(Session *session) ...@@ -19,7 +19,7 @@ bool FMVipFund::initWnd(Session *session)
_session = session; _session = session;
QString operator_id = session->data(PosProps.OperatorId).toString(); QString operator_id = session->data(PosProps.OperatorId).toString();
QString business_date = session->data(PosProps.BussinessDate).toString(); QString business_date = session->data(PosProps.BusinessDate).toString();
QString account = session->data(PosProps.Fm_open_id).toString(); QString account = session->data(PosProps.Fm_open_id).toString();
QString name = session->data(PosProps.Name).toString(); QString name = session->data(PosProps.Name).toString();
......
...@@ -40,7 +40,7 @@ bool FMVipLogin::initWnd(Session *session) ...@@ -40,7 +40,7 @@ bool FMVipLogin::initWnd(Session *session)
ui->store_label->setText(session->data(PosProps.StoreId).toString()); ui->store_label->setText(session->data(PosProps.StoreId).toString());
ui->pos_label->setText(session->data(PosProps.PosId).toString()); ui->pos_label->setText(session->data(PosProps.PosId).toString());
ui->operator_label->setText(session->data(PosProps.OperatorId).toString()); ui->operator_label->setText(session->data(PosProps.OperatorId).toString());
ui->bd_label->setText(session->data(PosProps.BussinessDate).toString()); ui->bd_label->setText(session->data(PosProps.BusinessDate).toString());
ui->login_edit->setPlaceholderText(placeText); ui->login_edit->setPlaceholderText(placeText);
return true; return true;
} }
......
...@@ -35,7 +35,7 @@ bool FMVipOrder::initWnd(Session *session) ...@@ -35,7 +35,7 @@ bool FMVipOrder::initWnd(Session *session)
this->_session = session; this->_session = session;
QString operator_id = session->data(PosProps.OperatorId).toString(); QString operator_id = session->data(PosProps.OperatorId).toString();
QString business_date = session->data(PosProps.BussinessDate).toString(); QString business_date = session->data(PosProps.BusinessDate).toString();
QString fm_id = session->data(PosProps.Fm_open_id).toString(); QString fm_id = session->data(PosProps.Fm_open_id).toString();
QString name = session->data(PosProps.Name).toString(); QString name = session->data(PosProps.Name).toString();
if(name.isEmpty()) { if(name.isEmpty()) {
......
...@@ -67,4 +67,24 @@ TEST_F(TestDBQuery, QueryAnd) ...@@ -67,4 +67,24 @@ TEST_F(TestDBQuery, QueryAnd)
} }
TEST_F(TestDBQuery, T_GetLastStoreInfo)
{
QSharedPointer<StoreInfo> storeInfo = GetLastStoreInfo();
ASSERT_NE(storeInfo, nullptr);
EXPECT_EQ(storeInfo->storeId(), "fm9999");
StoreInfo newSi;
newSi.setStoreId(storeInfo->storeId());
newSi.setPosId(storeInfo->posId());
newSi.setOperatorId(storeInfo->operatorId());
newSi.setBusinessDate(QDate::currentDate().toString("yyyyMMdd"));
odb::transaction t(DBSP()->begin());
DBSP()->persist(newSi);
t.commit();
QSharedPointer<StoreInfo> newLastSi = GetLastStoreInfo();
EXPECT_EQ(newLastSi->businessDate(), newSi.businessDate());
}
#endif // TST_DB_QUERY_H #endif // TST_DB_QUERY_H
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