Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
takeout_sbk
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
yunpeng.song
takeout_sbk
Commits
fab216f4
Commit
fab216f4
authored
Apr 26, 2020
by
wuyang.zou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add new function:
starbucks Now 扫码上吊屏;解除盒子 下吊屏;
parent
28e695f7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
93 additions
and
34 deletions
+93
-34
fmTakeout/Control/flowControl.cpp
+0
-0
fmTakeout/Control/flowControl.h
+4
-2
fmTakeout/DTools/pmsOrdersData.cpp
+15
-8
fmTakeout/DTools/pmsOrdersData.h
+1
-1
fmTakeout/DTools/qtRedisClient.cpp
+10
-5
fmTakeout/DTools/qtRedisClient.h
+3
-1
fmTakeout/Model/couponsObject.h
+25
-10
fmTakeout/Model/dishesObject.h
+7
-0
fmTakeout/Model/orderObject.h
+21
-0
fmTakeout/fmTakeout.rc
+5
-5
fmTakeout/preDefine.h
+2
-2
No files found.
fmTakeout/Control/flowControl.cpp
View file @
fab216f4
This diff is collapsed.
Click to expand it.
fmTakeout/Control/flowControl.h
View file @
fab216f4
...
...
@@ -112,8 +112,9 @@ private:
QTimer
*
m_pullTimer
;
QTimer
*
m_reportOMSReocrdOrderTimer
;
QTimer
*
m_loginTimer
;
QTimer
*
m_notifySimPullTimer
;
QTimer
*
m_remindCasherBlinkFloatTimer
;
//插件程序收到外卖订单后,需要一致提醒店员[直到此外卖订单被全部录入到POS系统]
QTimer
*
m_notifyPmsPullTimer
;
QTimer
*
m_cyclePullAllOrderTimer
;
//由于定时器是为了周期性获取全部订单; 原因: PmsPlugin set StoreServiceCenter; aviod missing Orders;
// 网络通信
BillSocket
*
m_loginSocket
;
BillSocket
*
m_pullOrderSocket
;
...
...
@@ -387,7 +388,8 @@ public slots:
//点击屏幕指定区域
void
_ClickOMSAssignArea
();
void
_ClickToLogin
();
void
_ClickToNotifySimPullOrder
();
void
_NotifyPmsPullOrder
();
void
_NotifyCyclePullAllOrder
();
void
_RemindCasherBlinkFloatForm
();
void
_OrderAnalysis
(
const
QJsonObject
&
jsonObject
);
...
...
fmTakeout/DTools/pmsOrdersData.cpp
View file @
fab216f4
...
...
@@ -177,9 +177,10 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
"delivery_price,delivery_discount,delivery_time, order_estimation,make_finish_time,is_package, "
"last_pay_time, address_latitude, address_longitude, oms_msrno, consumer_birthday, cancel_reason, "
"confirm_time,customer_id,customer_gender,way_bill_id,store_id,store_name,store_address,store_street, "
"pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee) "
"pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee
, make_status, make_source, make_device_id
) "
"VALUES(?, ?, ?, ?, ?,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,"
" ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
);
" ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?,?,?)"
);
query
.
addBindValue
(
orderObj
->
id
);
// --非码OMS订单号
query
.
addBindValue
(
orderObj
->
id
);
// --非码OMS订单号
query
.
addBindValue
(
orderObj
->
orderStatus
);
// --订单状态
...
...
@@ -240,6 +241,9 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
query
.
addBindValue
(
orderObj
->
riderPhone
);
// --配送者电话
query
.
addBindValue
(
orderObj
->
riderName
);
// -配送者名称
query
.
addBindValue
(
abs
(
orderObj
->
disPlateformFee
*
0.01
));
// --平台优惠
query
.
addBindValue
(
orderObj
->
makeStatus
);
// --制作状态
query
.
addBindValue
(
orderObj
->
makeSource
);
// --提供制作状态来源
query
.
addBindValue
(
orderObj
->
makeDeviceId
);
// --提供制作状态设备ID
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
"[<<<<---PmsOrdersData::insertOrderData:Insert Order Error--->>>>]"
<<
query
.
lastError
().
text
()
...
...
@@ -252,10 +256,10 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
"delivery_price,delivery_discount,delivery_time, order_estimation,make_finish_time,is_package, "
"last_pay_time, address_latitude, address_longitude, oms_msrno, consumer_birthday, cancel_reason, "
"confirm_time,customer_id,customer_gender,way_bill_id,store_id,store_name,store_address,store_street, "
"pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee) "
"pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee
, make_status, make_source, make_device_id
) "
"VALUES(%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18, %19, %20, "
"%21, %22, %23, %24, %25, %26, %27, %28, %29, %30, %31, %32, %33, %34, %35, %36, %37, %38, %39, %40,"
"%41, %42, %43, %44, %45, %46, %47, %48, %49, %50, %51)"
)
"%41, %42, %43, %44, %45, %46, %47, %48, %49, %50, %51
, %52, %53, %54
)"
)
.
arg
(
orderObj
->
id
).
arg
(
orderObj
->
id
).
arg
(
orderObj
->
orderStatus
).
arg
(
updateTimeString
).
arg
(
orderObj
->
channel
)
.
arg
(
orderObj
->
orderType
).
arg
(
tempOrderTypeId
)
.
arg
(
orderObj
->
pickupCode
).
arg
(
orderObj
->
totalPrice
*
0.01
).
arg
(
orderObj
->
productPrice
*
0.01
).
arg
(
orderObj
->
orderDiscount
*
0.01
)
...
...
@@ -268,7 +272,8 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
.
arg
(
orderObj
->
confirmTime
).
arg
(
orderObj
->
customerId
).
arg
(
"Female"
).
arg
(
orderObj
->
waybillId
).
arg
(
orderObj
->
storeId
)
.
arg
(
orderObj
->
storeName
).
arg
(
orderObj
->
storeAddress
).
arg
(
""
)
.
arg
(
""
).
arg
(
orderObj
->
lang
).
arg
(
orderObj
->
memo
).
arg
(
orderObj
->
riderPhone
).
arg
(
orderObj
->
riderName
)
.
arg
(
orderObj
->
disPlateformFee
*
0.01
);
.
arg
(
orderObj
->
disPlateformFee
*
0.01
).
arg
(
orderObj
->
makeStatus
).
arg
(
orderObj
->
makeSource
).
arg
(
orderObj
->
makeDeviceId
);
}
else
{
QLOG_INFO
()
<<
QString
(
"[<<<<---PmsOrdersData::insertOrderData:Insert OrderId %1 Into PMS Order Success--->>>>]"
).
arg
(
orderObj
->
id
);
pmsOrderRef
=
query
.
lastInsertId
().
toString
();
...
...
@@ -530,7 +535,7 @@ bool PmsOrdersData::insertSubProductData(const QList<dishesObject*> sub_products
}
//更新订单状态:需加锁;
bool
PmsOrdersData
::
updateOrderStatus
(
OrderObject
*
orderObj
,
const
int
&
OrderStatus
)
{
bool
PmsOrdersData
::
updateOrderStatus
(
OrderObject
*
orderObj
,
const
int
&
OrderStatus
,
const
QString
&
makeStatus
)
{
if
(
!
orderObj
)
{
QLOG_ERROR
()
<<
"[<<<<---PmsOrdersData::updateOrderStatus orderObj Point is Null --->>>>]"
;
...
...
@@ -553,8 +558,10 @@ bool PmsOrdersData::updateOrderStatus(OrderObject* orderObj, const int &OrderSta
// 需要对应转换并更新: order_type_id;
int
tempOrderTypeId
=
convertPosServiceTypeId
(
orderObj
,
orderObj
->
orderStatus
);
query
.
prepare
(
QString
(
"update orders set order_status=%1,order_type_id=%2 where order_id='%3'"
)
.
arg
(
QString
::
number
(
OrderStatus
)).
arg
(
QString
::
number
(
tempOrderTypeId
)).
arg
(
orderObj
->
id
));
query
.
prepare
(
QString
(
"update orders set order_status=%1,order_type_id=%2, make_status='%3',"
" make_source='%4', make_device_id='%5' where order_id='%6'"
)
.
arg
(
QString
::
number
(
OrderStatus
),
QString
::
number
(
tempOrderTypeId
),
makeStatus
,
orderObj
->
makeSource
,
orderObj
->
makeDeviceId
,
orderObj
->
id
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
"[<<<<---PmsOrdersData::update Order Status Failed--->>>>]"
;
...
...
fmTakeout/DTools/pmsOrdersData.h
View file @
fab216f4
...
...
@@ -75,7 +75,7 @@ public:
*参数:[1]订单对象
*返回:true操作成功,false失败
**/
bool
updateOrderStatus
(
OrderObject
*
orderObj
,
const
int
&
OrderStatus
);
bool
updateOrderStatus
(
OrderObject
*
orderObj
,
const
int
&
OrderStatus
,
const
QString
&
makeStatus
);
/**
*功能:查询 订单号和 订单状态 是否存在PMS数据库中;
...
...
fmTakeout/DTools/qtRedisClient.cpp
View file @
fab216f4
...
...
@@ -69,17 +69,21 @@ bool QtRedisClient::testOrderRedisExist(const QString& orderId){
return
bOrderExist
;
}
bool
QtRedisClient
::
pushOrder2Redis
(
const
QString
&
orderId
,
const
int
&
orderStatus
){
bool
QtRedisClient
::
pushOrder2Redis
(
const
OrderObject
*
orderObj
){
bool
bPushOrderSuc
=
false
;
QList
<
QByteArray
>
cmdString
;
cmdString
.
append
(
"LPUSH"
);
cmdString
.
append
(
"PmsOrderStatusNotifyList"
);
QJsonObject
orderStatusObj
;
orderStatusObj
.
insert
(
"ID"
,
order
I
d
);
orderStatusObj
.
insert
(
"STATUS"
,
orderStatus
);
orderStatusObj
.
insert
(
"ID"
,
order
Obj
->
i
d
);
orderStatusObj
.
insert
(
"STATUS"
,
order
Obj
->
order
Status
);
QString
timeStamp
=
QDateTime
::
currentDateTime
().
toString
(
"yyyy-MM-dd hh:mm:ss"
);
orderStatusObj
.
insert
(
"TIMESTAMP"
,
timeStamp
);
orderStatusObj
.
insert
(
"MAKESTATUS"
,
orderObj
->
makeStatus
);
orderStatusObj
.
insert
(
"MAKESOURCE"
,
orderObj
->
makeSource
);
orderStatusObj
.
insert
(
"MAKEDEVICEID"
,
orderObj
->
makeDeviceId
);
orderStatusObj
.
insert
(
"MAKEDEVICENAME"
,
""
);
QJsonDocument
orderStatusDoc
=
QJsonDocument
(
orderStatusObj
);
cmdString
.
append
(
orderStatusDoc
.
toJson
());
...
...
@@ -87,10 +91,11 @@ bool QtRedisClient::pushOrder2Redis(const QString& orderId,const int& orderStatu
auto
result
=
m_pRedisConnectOperat
->
commandSync
(
cmdString
);
QVariant
val
=
result
.
value
();
if
(
val
.
toInt
())
{
QLOG_INFO
()
<<
QString
(
"[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 ; orderStatus:%2 ; ret:%3 Success--->>>>]"
).
arg
(
orderId
).
arg
(
orderStatus
).
arg
(
val
.
toString
());
QLOG_INFO
()
<<
QString
(
"[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 ; orderStatus:%2 ; ret:%3 Success--->>>>]"
).
arg
(
orderObj
->
id
).
arg
(
orderObj
->
orderStatus
).
arg
(
val
.
toString
());
QLOG_INFO
()
<<
QString
(
"[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 Redis Context:%2--->>>>]"
).
arg
(
orderObj
->
id
).
arg
(
QString
(
orderStatusDoc
.
toJson
())
);
bPushOrderSuc
=
true
;
}
else
{
QLOG_ERROR
()
<<
QString
(
"[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 ; orderStatus:%2 ; val:%3 Failed--->>>>]"
).
arg
(
order
Id
).
arg
(
orderStatus
).
arg
(
val
.
toString
());
QLOG_ERROR
()
<<
QString
(
"[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 ; orderStatus:%2 ; val:%3 Failed--->>>>]"
).
arg
(
order
Obj
->
id
).
arg
(
orderObj
->
orderStatus
).
arg
(
val
.
toString
());
}
}
catch
(
const
RedisClient
::
Connection
::
Exception
&
e
)
{
QLOG_ERROR
()
<<
"QtRedisClient::isOrderRedisExist Cannot run command:"
<<
e
.
what
();
...
...
fmTakeout/DTools/qtRedisClient.h
View file @
fab216f4
...
...
@@ -8,6 +8,8 @@
#include <QCommandLineParser>
#include <QJsonDocument>
#include "Model/orderObject.h"
class
QtRedisClient
:
public
QObject
{
Q_OBJECT
...
...
@@ -27,7 +29,7 @@ public:
*参数:[1]订单号; [2]订单状态;
*返回:true:追加成功,false:追加失败
**/
bool
pushOrder2Redis
(
const
QString
&
orderId
,
const
int
&
orderStatus
);
bool
pushOrder2Redis
(
const
OrderObject
*
orderObj
);
/**
*功能:查询订单是否已经存在 Redis中;
...
...
fmTakeout/Model/couponsObject.h
View file @
fab216f4
...
...
@@ -18,23 +18,31 @@ class CouponsObject : public QObject
Q_PROPERTY
(
QString
payMethodId
READ
getPayMethodId
WRITE
setPayMethodId
)
Q_PROPERTY
(
int
consumeFactAmount
READ
getConsumeFactAmount
WRITE
setConsumeFactAmount
)
Q_PROPERTY
(
int
consumeDiscountAmount
READ
getConsumeDiscountAmount
WRITE
setConsumeDiscountAmount
)
Q_PROPERTY
(
QString
discount
READ
getDiscount
WRITE
setDiscount
)
Q_PROPERTY
(
QString
discount
READ
getDiscount
WRITE
setDiscount
)
Q_PROPERTY
(
QString
giverName
READ
getGiverName
WRITE
setGiverName
)
Q_PROPERTY
(
QString
blessingWords
READ
getBlessingWords
WRITE
setBlessingWords
)
public
:
explicit
CouponsObject
(
QObject
*
parent
=
0
)
:
QObject
(
parent
){}
CouponsObject
(
const
CouponsObject
&
coupons
,
QObject
*
parent
=
0
);
CouponsObject
&
operator
=
(
const
CouponsObject
&
coupons
);
void
FetchDataFromJson
(
const
QJsonObject
&
json
);
QString
couponSeq
;
//券序号
QString
code
;
QString
couponName
;
//券名
QString
menuItem
;
QString
couponType
;
bool
storeChannel
;
//是否门店券;
QString
payMethodId
;
int
consumeFactAmount
;
int
consumeDiscountAmount
;
QString
couponSeq
;
//券序号
QString
code
;
//券ID号
QString
couponName
;
//券名
QString
menuItem
;
// 菜单分类
QString
couponType
;
//券类型
bool
storeChannel
;
//是否门店券;
QString
payMethodId
;
//券支付方式ID
int
consumeFactAmount
;
//券实际售卖金额
int
consumeDiscountAmount
;
//券折扣金额
QString
discount
;
QString
giverName
;
//券赠送者
QString
blessingWords
;
//券赠送祝福
QList
<
SingleProductObject
*>
skus
;
protected
:
...
...
@@ -67,6 +75,13 @@ protected:
inline
QString
getDiscount
(){
return
discount
;
}
inline
void
setDiscount
(
const
QString
&
v
){
discount
=
v
;
}
inline
QString
getGiverName
(){
return
giverName
;
}
inline
void
setGiverName
(
const
QString
&
v
){
giverName
=
v
;
}
inline
QString
getBlessingWords
(){
return
blessingWords
;
}
inline
void
setBlessingWords
(
const
QString
&
v
){
blessingWords
=
v
;
}
};
#endif // COUPONSOBJECT_H
fmTakeout/Model/dishesObject.h
View file @
fab216f4
...
...
@@ -32,6 +32,8 @@ class dishesObject : public QObject
Q_PROPERTY
(
int
starPromotionQty
READ
getStarPromotionQty
WRITE
setStarPromotionQty
)
Q_PROPERTY
(
int
starPromotionPrice
READ
getStarPromotionPrice
WRITE
setStarPromotionPrice
)
Q_PROPERTY
(
QString
userName
READ
getUserName
WRITE
setUserName
)
public
:
explicit
dishesObject
(
QObject
*
parent
=
0
)
:
QObject
(
parent
){}
dishesObject
(
const
dishesObject
&
dish
,
QObject
*
parent
=
0
);
...
...
@@ -61,6 +63,7 @@ public:
QString
starPromotionName
=
""
;
int
starPromotionQty
=
0
;
int
starPromotionPrice
=
0
;
QString
userName
=
""
;
QList
<
dishesObject
*>
sub_products
;
...
...
@@ -132,6 +135,10 @@ protected:
inline
int
getStarPromotionQty
(){
return
starPromotionQty
;
}
inline
void
setStarPromotionQty
(
const
int
&
v
){
starPromotionQty
=
v
;
}
inline
QString
getUserName
(){
return
userName
;
}
inline
void
setUserName
(
const
QString
&
v
){
userName
=
v
;
}
};
#endif // DISHESOBJECT_H
fmTakeout/Model/orderObject.h
View file @
fab216f4
...
...
@@ -77,6 +77,10 @@ class OrderObject : public QObject
Q_PROPERTY
(
int
productPrice
READ
getProductPrice
WRITE
setProductPrice
)
Q_PROPERTY
(
int
totalPrice
READ
getTotalPrice
WRITE
setTotalPrice
)
Q_PROPERTY
(
int
orderStatus
READ
getOrderStatus
WRITE
setOrderStatus
)
Q_PROPERTY
(
QString
makeStatus
READ
getMakeStatus
WRITE
setMakeStatus
)
Q_PROPERTY
(
QString
makeSource
READ
getMakeSource
WRITE
setMakeSource
)
Q_PROPERTY
(
QString
makeDeviceId
READ
getMakeDeviceId
WRITE
setMakeDeviceId
)
Q_PROPERTY
(
QString
businessType
READ
getBusinessType
WRITE
setBusinessType
)
Q_PROPERTY
(
int
deliveryStatus
READ
getDeliveryStatus
WRITE
setDeliveryStatus
)
Q_PROPERTY
(
int
payStatus
READ
getPayStatus
WRITE
setPayStatus
)
Q_PROPERTY
(
int
refundStatus
READ
getRefundStatus
WRITE
setRefundStatus
)
...
...
@@ -176,6 +180,11 @@ public:
int
productPrice
=
0
;
int
totalPrice
=
0
;
int
orderStatus
=
0
;
QString
makeStatus
=
""
;
// PMS 制作状态
QString
makeSource
=
""
;
//PMS 制作来源: 普通扫描枪、扫描枪Now、顾客、PMS-kds、
QString
makeDeviceId
=
""
;
//PMS 更新制作状态的设备Id
QString
businessType
;
//订单业务类型: 10:预约单 20:杯贴祝福 30:拼团
int
deliveryStatus
=
0
;
int
payStatus
=
0
;
int
refundStatus
=
0
;
...
...
@@ -380,6 +389,18 @@ public:
inline
int
getOrderStatus
()
const
{
return
orderStatus
;}
inline
void
setOrderStatus
(
const
int
&
v
){
orderStatus
=
v
;}
inline
QString
getMakeStatus
()
const
{
return
makeStatus
;}
inline
void
setMakeStatus
(
const
QString
&
v
){
makeStatus
=
v
;}
inline
QString
getMakeSource
()
const
{
return
makeSource
;}
inline
void
setMakeSource
(
const
QString
&
v
){
makeSource
=
v
;}
inline
QString
getMakeDeviceId
()
const
{
return
makeDeviceId
;}
inline
void
setMakeDeviceId
(
const
QString
&
v
){
makeDeviceId
=
v
;}
inline
QString
getBusinessType
()
const
{
return
businessType
;}
inline
void
setBusinessType
(
const
QString
&
v
){
businessType
=
v
;}
inline
int
getDeliveryStatus
()
const
{
return
deliveryStatus
;}
inline
void
setDeliveryStatus
(
const
int
&
v
){
deliveryStatus
=
v
;}
...
...
fmTakeout/fmTakeout.rc
View file @
fab216f4
...
...
@@ -7,8 +7,8 @@ IDI_ICON ICON DISCARDABLE "logo.ico"
#endif
VS_VERSION_INFO VERSIONINFO
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
FILEVERSION 4,2020,
31
8,1
PRODUCTVERSION 4,2020,
31
8,1
FILEVERSION 4,2020,
50
8,1
PRODUCTVERSION 4,2020,
50
8,1
//*************************************************************************//
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
...
...
@@ -27,12 +27,12 @@ VS_VERSION_INFO VERSIONINFO
VALUE "CompanyName", "ShangHai.Freemud Co., Ltd."
VALUE "FileDescription", "PMS Plugin Application"
VALUE "InternalName", "PmsPlugin.exe"
VALUE "LegalCopyright", "Copyright (C)201
3
-2020"
VALUE "LegalCopyright", "Copyright (C)201
4
-2020"
VALUE "OriginalFilename", "PmsPlugin.exe"
VALUE "ProductName", "PMS Plugin"
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
VALUE "ProductVersion", "4.2020.
31
8.1"
VALUE "FileVersion", "4.2020.
31
8.1"
VALUE "ProductVersion", "4.2020.
50
8.1"
VALUE "FileVersion", "4.2020.
50
8.1"
//*************************************************************************//
END
END
...
...
fmTakeout/preDefine.h
View file @
fab216f4
...
...
@@ -5,9 +5,9 @@
#define APP_THEME "deaufult"
//#define APP_VERSION "4.2019.1031.1"
//#define APP_VERSION "4.2019.1225.1"
#define APP_VERSION "4.2020.318.1"
//#define APP_VERSION "4.2020.318.1"
#define APP_VERSION "4.2020.508.1"
//修正版本号时,切记修正 FmTakeout.rc 中的版本号
#define SERVER_PASSWORD "posoperator@freemud.cn"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment