Jason 6 дней назад
Родитель
Сommit
1c995f1002
2 измененных файлов с 19 добавлено и 14 удалено
  1. 12 8
      webapi/webapi/HttpSocket.cpp
  2. 7 6
      webapi/webapi/data.h

+ 12 - 8
webapi/webapi/HttpSocket.cpp

@@ -826,7 +826,7 @@ std::string HttpSocket::regaccount(std::map<std::string, std::string> getdata)
 
 	//玩家基本信息插入缓存
 	auto userbuilder = bsoncxx::builder::stream::document{};
-	userbuilder << "userid" << userid << "gameid" << gameid << "areaid" << iareaid << "devicetype" << izero32 << "name" << strname.c_str() << "state" << izero32 << "usertype" << izero32
+	userbuilder << "userid" << userid << "gameid" << gameid << "areaid" << iareaid << "devicetype" << izero32 << "name" << strname.c_str() << "state" << izero32 << "usertype" << treguser.iwallet
 		<< "userright" << izero32 << "score" << iscore << "insurescore" << izero64 << "spreaderid" << adminuserid << "spreaderidall" << strspreaderidall.c_str()
 		<< "logontime" << izero64 << "account" << straccount.c_str() << "webuser" << straccount.c_str() << "nickname" << straccount.c_str() << "faceid" << izero32
 		<< "logonpwd" << strpwd.c_str() << "insurepwd" << strpwd.c_str() << "lastlogonmachineid" << strmac.c_str()
@@ -852,7 +852,7 @@ std::string HttpSocket::regaccount(std::map<std::string, std::string> getdata)
 	irechargetime *= (24 * 60 * 60 * 1000);
 	auto builder = bsoncxx::builder::stream::document{};
 	builder << "userid" << userid << "todaylwscore" << izero64 << "twolwscore" << izero64
-		<< "threelwscore" << izero64 << "alllwscore" << izero64 << "todayczscore" << izero64
+		<< "threelwscore" << izero64 << "alllwscore" << izero64 << "todayczscore" << izero64 << "usertype" << treguser.iwallet
 		<< "totalczscore" << izero64 << "totalxfscore" << izero64 << "lwupdatelwtime" << inserttime << "rechargetime" << irechargetime
 		<< "pointcontrolcount" << izero64 << "pointcompelettime" << izero64 << "registertime" << inserttime;
 
@@ -888,7 +888,7 @@ std::string HttpSocket::regaccount(std::map<std::string, std::string> getdata)
 		auto rechargecriteria = make_document(kvp("userid", userid));
 		auto rechargeupdate = make_document(kvp("$inc", make_document(kvp("totalczscore", iscore))),
 			kvp("$inc", make_document(kvp("todayczscore", iscore))),
-			kvp("$set", make_document(kvp("rechargetime", ilocaltime))));
+			kvp("$set", make_document(kvp("rechargetime", ilocaltime), kvp("wallet", treguser.iwallet))));
 		m_plosewincoll->find_one_and_update(rechargecriteria.view(), rechargeupdate.view());
 
 
@@ -1198,14 +1198,16 @@ std::string HttpSocket::updateuserscore(std::map<std::string, std::string> getda
 				{
 					auto rechargeupdate = make_document(kvp("$inc", make_document(kvp("totalczscore", tradescore))),
 						kvp("$set", make_document(kvp("todayczscore", tradescore))),
-						kvp("$set", make_document(kvp("rechargetime", ilocaltime))));
+						kvp("$set", make_document(kvp("rechargetime", ilocaltime))),
+						kvp("$set", make_document(kvp("wallet", tuserscore.iwallet))));
 					m_plosewincoll->find_one_and_update(rechargecriteria.view(), rechargeupdate.view());
 				}
 				else
 				{
 					auto rechargeupdate = make_document(kvp("$inc", make_document(kvp("totalczscore", tradescore))),
 						kvp("$inc", make_document(kvp("todayczscore", tradescore))),
-						kvp("$set", make_document(kvp("rechargetime", ilocaltime))));
+						kvp("$set", make_document(kvp("rechargetime", ilocaltime))),
+						kvp("$set", make_document(kvp("wallet", tuserscore.iwallet))));
 					m_plosewincoll->find_one_and_update(rechargecriteria.view(), rechargeupdate.view());
 				}
 			}
@@ -1213,7 +1215,8 @@ std::string HttpSocket::updateuserscore(std::map<std::string, std::string> getda
 			{
 				auto rechargeupdate = make_document(kvp("$inc", make_document(kvp("totalczscore", tradescore))),
 					kvp("$inc", make_document(kvp("todayczscore", tradescore))),
-					kvp("$set", make_document(kvp("rechargetime", ilocaltime))));
+					kvp("$set", make_document(kvp("rechargetime", ilocaltime))),
+					kvp("$set", make_document(kvp("wallet", tuserscore.iwallet))));
 				m_plosewincoll->find_one_and_update(rechargecriteria.view(), rechargeupdate.view());
 			}
 
@@ -1369,7 +1372,7 @@ std::string HttpSocket::updateuserscore(std::map<std::string, std::string> getda
 		tradescore = tuserscore.score;
 
 		//添加玩家总下分
-		auto xiafenupdate = make_document(kvp("$inc", make_document(kvp("totalxfscore", tradescore))));
+		auto xiafenupdate = make_document(kvp("$inc", make_document(kvp("totalxfscore", tradescore), kvp("wallet", tuserscore.iwallet))));
 		m_plosewincoll->find_one_and_update(usercriteria.view(), xiafenupdate.view());
 		
 		auto admincriteria = make_document(kvp("userid", adminuserid));
@@ -3747,7 +3750,7 @@ std::string HttpSocket::useredeemcodes(std::map<std::string, std::string> getdat
 		return strret;
 	}
 	
-	auto filteruser = make_document(kvp("account", reqparam.struseracc.c_str()), kvp("dynamicpass", reqparam.strcert.c_str()));
+	auto filteruser = make_document(kvp("account", reqparam.struseracc.c_str()));
 	auto finduser = m_pcoll->find_one(filteruser.view());
 	if (!finduser || !finduser->view()["userid"])
 	{
@@ -3771,6 +3774,7 @@ std::string HttpSocket::useredeemcodes(std::map<std::string, std::string> getdat
 
 	//如果玩家在线
 	auto useroline = m_pplayuseronline->find_one(bsoncxx::builder::stream::document{} << "userid" << iuserid << bsoncxx::builder::stream::finalize);
+	if(useroline)
 	{
 		strret = funclib::rettojson(Err_Player_InGame, "player in games");
 		return strret;

+ 7 - 6
webapi/webapi/data.h

@@ -201,11 +201,11 @@ struct reguser
 	std::string name{};					//鯤소檎츰
 	std::string phone{};				//鯤소든뺐
 	std::string info{};					//鯤소구鬧
-
+	std::int32_t iwallet{};				//풀관잚謹
 public:
 	std::string getfieldvalue(std::int32_t index)
 	{
-		const char* value[] = { "authcode", "authkey", "score", "name", "phone", "info"};
+		const char* value[] = { "authcode", "authkey", "score", "name", "phone", "info", "wallet"};
 		return value[index];
 	}
 
@@ -226,7 +226,7 @@ public:
 	bool datavalue()
 	{
 
-		if (authcode.empty() || authkey.empty())
+		if (authcode.empty() || authkey.empty() || (iwallet!=0 && iwallet != 2))
 		{
 			return false;
 		}
@@ -769,14 +769,15 @@ public:
 
 struct sUserRedeemCode
 {
+	std::string			authcode{};
+	std::string			authkey{};
 	std::string			struseracc{};				//鯤소
-	std::string			strcert{};			//鯤소쵱篤
 	std::string			strredeemcode{};			//뚝뻣쯤
 
 public:
 	std::string getfieldvalue(std::int32_t index)
 	{
-		const char* value[] = { "useracc",  "cert", "redeemcode" };
+		const char* value[] = { "authcode", "authkey", "useracc",   "redeemcode" };
 		return value[index];
 	}
 
@@ -786,7 +787,7 @@ public:
 
 	bool datavalue()
 	{
-		if (struseracc.empty() || strcert.empty() || strredeemcode.empty() )
+		if (struseracc.empty()  || strredeemcode.empty() )
 		{
 			return false;
 		}