MetaForce佛萨奇2.0系统开发(案例及功能)丨MetaForce佛萨奇2.0开发源码方案

306 阅读2分钟

  MetaForce是一个结合了推荐程序和自动算法来分配会员奖励的平台。META FORCE中的会员链接是透明的:它们是绑定的,并且由于推荐链接,您可以看到谁邀请了谁,或者谁是上线,谁是下线合作伙伴。

  META FORCE has three matrix plans(Classic,Boost and UniteVerse).All 3 plans have different logics in terms of the location of partners in the structure and the accumulation of rewards.Each matrix consists of multiple levels that you can move to and make more profits.The level can only be activated layer by layer,and the activation cost of each lower layer is twice that of the upper layer.

  FORGE循环仪中使用的矩阵大小为3×1和2×2。3×1矩阵本质上很简单,只需要填充三个位置即可。2×2矩阵从第一层的两个位置开始,然后扩展到第二层的四个位置。职位通过直接和间接招募Forsage会员来填补。一旦矩阵中的所有位置都被填满,就激活循环佣金。从矩阵出来的位置也将输入相同大小的新矩阵。

  int WtHftStraDemo::__tqz_getCurrentHourMinute(){开发案例I35源码7O98详细O7I8

  struct tm*newtime;

  time_t long_time;

  time(&long_time);

  newtime=localtime(&long_time);

  return newtime->tm_hour*100+newtime->tm_min;

  }关于区块链项目技术开发唯:MrsFu123,代币发行、dapp智能合约开发、链游开发、多链钱包开发

  交易所开发、量化合约开发、互助游戏开发、Nft数字藏品开发、众筹互助开发、元宇宙开发、swap开发、

  链上合约开发、ido开发、商城开发等,开发过各种各样的系统模式,更有多种模式、制度、案例、后台等,成熟技术团队,欢迎实体参考。

  rapidjson::Document WtHftStraDemo::__tqz_loadJsonDocument(const std::string jsonPath){

  char readBuffer[65536];

  FILE*filePoint=fopen(jsonPath.c_str(),"r");

  rapidjson::FileReadStream fileStream(filePoint,readBuffer,sizeof(readBuffer));

  rapidjson::Document document;

  document.ParseStream(fileStream);

  fclose(filePoint);

  return document;

  }

  std::string WtHftStraDemo::__tqz_getSession(const std::string symbolCode){

  std::vector<std::string>elements;

  std::stringstream stringStream(symbolCode.c_str());

  std::string item;

  int index=0;

  std::string exchangeString;

  std::string symString;

  std::string symbolYearMonth;

  while(std::getline(stringStream,item,'.')){

  elements.push_back(item);

  if(index==0){

  exchangeString=item;

  }else if(index==1){

  symString=item;

  }else if(index==2){

  symbolYearMonth=item;

  }

  index++;

  }

  return this->_commoditiesDocument[exchangeString.c_str()][symString.c_str()]["session"].GetString();

  }

  bool WtHftStraDemo::__isTradingTime(const std::string code){

  string sessionString=this->__tqz_getSession(code);

  rapidjson::Value&sections=this->_sessionsDocument[sessionString.c_str()]["sections"];

  bool tradeable=false;

  if(sections.IsArray()&&!sections.Empty()){

  for(auto&section:sections.GetArray()){

  if(!section.IsObject())//type of section is not object.

  continue;

  if(!(section.HasMember("from")&&section.HasMember("to")))//has no from key or to key.

  continue;

  int currentHourMinute=this->__tqz_getCurrentHourMinute();

  if(section["from"].GetInt()<=currentHourMinute&&currentHourMinute<section["to"].GetInt()){//is trading time.

  tradeable=true;

  }

  if(section["from"].GetInt()>section["to"].GetInt()){//is night trading time.

  if(currentHourMinute>=section["from"].GetInt()||currentHourMinute<section["to"].GetInt()){

  tradeable=true;

  }

  }

  }

  }else{

  throw exception("result is not array type or empty array");

  }

  return tradeable;

  }

  bool WtHftStraDemo::__isClosePositionsTime(const std::string code){

  string sessionString=this->__tqz_getSession(code);

  rapidjson::Value&sections=this->_sessionsDocument[sessionString.c_str()]["sections"];

  bool isClosePositionsTime=false;

  if(sections.IsArray()&&!sections.Empty()){

  for(auto&section:sections.GetArray()){

  if(!section.IsObject())//type of section is not object.

  continue;

  if(!(section.HasMember("from")&&section.HasMember("to")))//has no from key or to key.

  continue;

  uint32_t toHourMinute=this->__tqz_resetToHourMinute(section["to"].GetInt(),this->_offset_close_minutes);

  uint32_t currentHourMinute=this->__tqz_getCurrentHourMinute();

  if((toHourMinute-this->_offset_close_minutes)<=currentHourMinute&&currentHourMinute<toHourMinute)//is close positions time.

  isClosePositionsTime=true;

  }

  }else{

  throw exception("result is not array type or empty array");

  }

  return isClosePositionsTime;

  }