From 09eeb9f05af8f40165c2b268bdbd6d2c8b64bde8 Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Mon, 2 Dec 2024 15:46:41 -0500 Subject: [PATCH] link process --- wrenchboard/src/shared_tool/site_crons.cc | 57 ++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/wrenchboard/src/shared_tool/site_crons.cc b/wrenchboard/src/shared_tool/site_crons.cc index b340612f..d16be976 100644 --- a/wrenchboard/src/shared_tool/site_crons.cc +++ b/wrenchboard/src/shared_tool/site_crons.cc @@ -41,7 +41,7 @@ long RegisterPromoPoint(CVars in); long RegisterPromoAction(CVars in); long ReferEmailsCleanup(); long ReferEmailsNotification(); - +long ReferLinkProcessing(); /* CREATE TABLE cron_jobs ( id SERIAL, @@ -278,6 +278,7 @@ long RefreshPromoActivities(CVars in, CVars &out){ } } + ReferLinkProcessing(); // handles refer links entries ReferEmailsCleanup(); // clean up account refer ReferEmailsNotification(); // end emsil if needed ret = PHP_API_OK; @@ -289,6 +290,60 @@ long RefreshPromoActivities(CVars in, CVars &out){ return ret; } +long ReferLinkProcessing(){ + long ret = PHP_API_BAD_PARAM; + const PGresult *res; +//in["promo"].c_str(), in["limit"].Long() + CVars out, in; + res = pgsql_query(" SELECT substring(refer_link,0,9) AS uid_part,email, id , uid substring(refer_link,9)::INT AS member_id, FROM referlink_signup " + " WHERE status = 1 LIMIT 20"); + if (res != NULL && pgsql_num_rows(res) > 0) { + out["total_record"] = pgsql_num_rows(res); + for (int i = 0, n = pgsql_num_rows(res); i < n; i++) { + + mapf = pgsql_fetch_assoc(res, i); + if (f.empty()) continue; + CVars rec; + map_to_cvars(f, rec); + + pgsql_query("UPDATE referlink_signup SET member_id=%lu WHERE id =%lu", rec["member_id"].Long(), rec["id"].Long()); + + if ( load_db_record(out, "SELECT * from members_pending WHERE refer_link = '%s' ORDER BY id DESC limit 1", rec["refer_link"].c_str())> 0){ + CVars x; + x["member_id"] = rec["member_id"]; + x["member_id"].set_valid(true); + x["firstname"] = out["firstname"]; + x["firstname"].set_valid(true); + x["email"] = rec["email"]; + x["email"].set_valid(true); + x["lastname"] = out["lastname"]; + x["lastname"].set_valid(true); + + int r1, r2, r3; + char refer_link[100]; + srand(time(NULL)); + r1 = abs(rand()*100000000); + srand(time(NULL)); + r2 = abs(rand() * r1); + srand(time(NULL)); + r3 = abs(rand() * r2); + sprintf(refer_link, "WRENREF-%09lu-%08lu-%08lu", r1, r2, r3); + x["refer_link"] = refer_link; + x["refer_link"].set_valid(true); + long refer_id = 0; + refer_id = insert_db_record(DBS_VALID, "members_refer_friend", "members_refer_friend_id_seq", x); + if( refer_id > 0){ + pgsql_query("UPDATE referlink_signup SET status=5 WHERE id =%lu", rec["id"].Long()); + } + + } + // pgsql_query("UPDATE referlink_signup SET email_sent=now() WHERE id =%lu", rec["promo_id"].Long()); + } + } + + return 0; +} + long ReferEmailsNotification(){ long ret = PHP_API_BAD_PARAM; const PGresult *res;