* @version : HuoMp 1.0 */ namespace huomp\controller\agent; use huo\controller\common\CommonFunc; use huo\controller\member\MemCache; use huo\controller\rate\Rate; use huo\model\integral\MemItgLogModel; use huolib\constant\CommonConst; use huolib\constant\IaConst; use huolib\status\IntegralStatus; use huolib\tool\StrUtils; use think\Log; class Income { /** * 获取打开游戏收益 * * @param int $mem_id 玩家ID * @param int $app_id 游戏ID * * @param int $game_id * * @return array|int */ public function getOpenGain($mem_id, $app_id, $game_id = 0) { if (empty($mem_id) || empty($app_id)) { Log::write( "func=".__FUNCTION__."&class=".__CLASS__."&step=1&mem_id=".$mem_id."&app_id=".$app_id, LOG::ERROR ); return IntegralStatus::ITG_MEM_NOT_EXISTS; } /* 判断是否打开过游戏 */ if ($app_id == $game_id) { $_cnt = (new MemItgLogModel())->getSubCnt($mem_id, IaConst::IA_OPEN_GAME); } else { $_cnt = (new MemItgLogModel())->getSubCnt($mem_id, IaConst::IA_OPEN_GAME, $app_id); } if ($_cnt > CommonConst::CONST_ZERO) { return IntegralStatus::ITG_IA_DONE; } $_rmb_gain = (new Rate($app_id))->getMemReward(); $_gold_rmb_rate = CommonFunc::getGoldRmbRate(); $_gain = StrUtils::formatNumber($_gold_rmb_rate * $_rmb_gain); return ['integral' => $_gain]; } /** * 获取下级打开游戏收益 * * @param int $mem_id 玩家ID * @param int $app_id 游戏ID * * @return array|int [parent_id,gain] */ public function getShareGain($mem_id, $app_id) { if (empty($mem_id) || empty($app_id)) { Log::write( "func=".__FUNCTION__."&class=".__CLASS__."&step=1&mem_id=".$mem_id."&app_id=".$app_id, LOG::ERROR ); return IntegralStatus::ITG_MEM_NOT_EXISTS; } $_parent_id = MemCache::ins()->getParentIdByMemId($mem_id); if (empty($_parent_id)) { return [ 'parent_id' => 0, 'integral' => 0 ]; } /* 查询是否已计算过收益 */ $_cnt = (new MemItgLogModel())->getShareCnt($_parent_id, $app_id, $mem_id); if ($_cnt > CommonConst::CONST_ZERO) { return IntegralStatus::ITG_IA_DONE; } $_rmb_gain = (new Rate($app_id))->getMemAgentReward(); $_gold_rmb_rate = CommonFunc::getGoldRmbRate(); $_gain = StrUtils::formatNumber($_gold_rmb_rate * $_rmb_gain); return [ 'parent_id' => $_parent_id, 'integral' => $_gain ]; } }