* @version : HUOSDK 7.5 */ namespace huomp\controller\finance; use huo\controller\agent\AgentCache; use huo\controller\common\Base; use huo\controller\common\CommonFunc; use huo\controller\integral\IaCache; use huo\controller\integral\MemIa; use huo\controller\member\MemCache; use huo\model\user\UserModel; use huolib\constant\IaConst; use huolib\status\IntegralStatus; use huolib\tool\StrUtils; use huomp\controller\member\MemberOut; class IncomeOut extends Base { /** * 获取分享收益 * * @param int $mem_id 玩家ID * @param int $app_id 应用ID * * @return array */ public function getShareIncome($mem_id, $app_id = 0) { $_ia_id = IaConst::IA_INVITE_3; $_mem_out = new MemberOut(); $_share_cnt = $_mem_out->getShareCnt($mem_id); if (IaConst::IA_STATUS_REWARD == $_share_cnt['status']) { $_code = IntegralStatus::ITG_IA_DONE; return $this->huoError($_code, IntegralStatus::getMsg($_code)); } if (IaConst::IA_STATUS_SUC != $_share_cnt['status']) { $_code = IntegralStatus::ITG_IA_NOT_DONE; return $this->huoError($_code, IntegralStatus::getMsg($_code)); } $_ext = [ 'app_id' => $app_id, 'game_id' => $app_id ]; $_rs = (new MemIa($mem_id))->doItgAct($_ia_id, $_ext); if (IntegralStatus::NO_ERROR != $_rs['code']) { return $this->huoReturn($_rs); } $_ia_data = IaCache::ins()->getIa($_ia_id); $_integral = $_ia_data['integral']; $_mem_out->setShareCnt($mem_id, 0, IaConst::IA_STATUS_REWARD); return $this->getReturnData($mem_id, $_integral); } /** * 获取领取试玩奖励 * * @param int $mem_id 玩家ID * @param int $app_id 应用ID * * @return array */ public function getPlayIncome($mem_id, $app_id = 0) { $_ia_id = IaConst::IA_PLAY_3; $_mem_out = new MemberOut(); $_play_cnt = $_mem_out->getPlayCnt($mem_id); if (IaConst::IA_STATUS_REWARD == $_play_cnt['status']) { $_code = IntegralStatus::ITG_IA_DONE; return $this->huoError($_code, IntegralStatus::getMsg($_code)); } if (IaConst::IA_STATUS_SUC != $_play_cnt['status']) { $_code = IntegralStatus::ITG_IA_NOT_DONE; return $this->huoError($_code, IntegralStatus::getMsg($_code)); } $_ext = [ 'app_id' => $app_id, 'game_id' => $app_id ]; $_rs = (new MemIa($mem_id))->doItgAct($_ia_id, $_ext); if (IntegralStatus::NO_ERROR != $_rs['code'] && IntegralStatus::ITG_IA_NOT_DONE != $_rs['code']) { return $this->huoReturn($_rs); } $_ia_data = IaCache::ins()->getIa($_ia_id); $_integral = $_ia_data['integral']; $_mem_out->setPlayCnt($mem_id, 0, IaConst::IA_STATUS_REWARD, $_ext); if (IntegralStatus::ITG_IA_NOT_DONE == $_rs['code']) { return $this->huoReturn($_rs); } return $this->getReturnData($mem_id, $_integral); } /** * 获取游戏奖励 * * @param int $mem_id 玩家ID * * @return array */ public function getGameIncome($mem_id) { $_ia_id = IaConst::IA_PLAY_3; $_play_cnt = (new MemberOut())->getPlayCnt($mem_id); if (IaConst::IA_STATUS_REWARD == $_play_cnt['status']) { $_code = IntegralStatus::ITG_IA_DONE; return $this->huoError($_code, IntegralStatus::getMsg($_code)); } if (IaConst::IA_STATUS_SUC != $_play_cnt['status']) { $_code = IntegralStatus::ITG_IA_NOT_DONE; return $this->huoError($_code, IntegralStatus::getMsg($_code)); } $_rs = (new MemIa($mem_id))->doItgAct($_ia_id); if (IntegralStatus::NO_ERROR != $_rs['code']) { return $this->huoReturn($_rs); } $_ia_data = IaCache::ins()->getIa($_ia_id); $_integral = $_ia_data['integral']; return $this->getReturnData($mem_id, $_integral); } /** * 领取签到奖励 * * @param int $mem_id 玩家ID * @param int $app_id 应用ID * * @return array */ public function getSignIncome($mem_id, $app_id = 0) { $_ia_id = IaConst::IA_SIGN; $_rs = (new MemIa($mem_id))->doItgAct($_ia_id, $app_id); if (IntegralStatus::NO_ERROR != $_rs['code']) { return $this->huoReturn($_rs); } $_integral = $_rs['data']['gain_integral']; return $this->getReturnData($mem_id, $_integral); } /** * 领取签到奖励 * * @param int $mem_id 玩家ID * @param int $app_id 应用ID * * @return array */ public function getFavoriteIncome($mem_id, $app_id = 0) { $_ia_id = IaConst::IA_FAVORITE; $_ext = [ 'app_id' => $app_id, 'game_id' => $app_id ]; $_rs = (new MemIa($mem_id))->doItgAct($_ia_id, $_ext); if (IntegralStatus::NO_ERROR != $_rs['code']) { return $this->huoReturn($_rs); } $_ia_data = IaCache::ins()->getIa($_ia_id); $_integral = $_ia_data['integral']; return $this->getReturnData($mem_id, $_integral); } /** * 获取返回信息 * * @param int $mem_id 玩家ID * @param int $itg 积分 * * @return array */ public function getReturnData($mem_id, $itg = 0) { $_agent_id = (new UserModel())->getIdByMemId($mem_id); $_agent_ext_info = AgentCache::ins()->getAgentExtByAgentId($_agent_id); if (empty($_agent_ext_info)) { $_code = IntegralStatus::INVALID_PARAMS; return $this->huoError($_code, IntegralStatus::getMsg($_code)); } $_gold_rmb_rate = CommonFunc::getGoldRmbRate(); $_me_data = MemCache::ins()->getMeInfoById($mem_id); $_rdata = [ 'my_integral' => $_me_data['my_integral'], 'gain_integral' => $itg, 'balance' => !empty($_agent_ext_info) ? $_agent_ext_info['share_remain'] : 0, 'gain_amount' => StrUtils::formatNumber($itg / $_gold_rmb_rate) ]; $_code = IntegralStatus::NO_ERROR; return $this->huoSuccess($_code, IntegralStatus::getMsg($_code), $_rdata); } }