create($item); event(new ChannelCreatedEvent($obj->uid)); return $obj; } /** * 更新一个 * @param $item * @param $uid * @return bool */ public function updateOne($item, $uid) { $opResult = false; $obj = ChannelModel::query()->where(['id', 'uid' => $uid])->first(); if ($obj->count()) { $opResult = $obj->save($item); event(new ChannelUpdatedEvent($uid)); } return $opResult; } /** * 删除一个. * @param $uid * @return bool|mixed|null * @throws \Exception */ public function deleteOne($uid) { $opResult = false; $obj = ChannelModel::query()->where(['uid' => $uid])->first(); if ($obj->count()) { $opResult = $obj->delete(); $eventParams = [ 'uid' => $uid, 'agent_uid' => $obj->agent_uid, 'mom_app_uid' => $obj->mom_app_uid, ]; event(new ChannelDeletedEvent($eventParams)); } return $opResult; } /** * 获取代理的渠道列表 * * @param $agentUid * @return \Illuminate\Database\Eloquent\Builder[]|\Illuminate\Database\Eloquent\Collection */ public function agentChannel($agentUid, $appUids = []) { return ChannelModel::query()->where('agent_uid', $agentUid)->whereIn('mom_app_uid', $appUids)->get()->keyBy('mom_app_uid'); } /** * 创建代理渠道 * * @param $agentUid */ public function createAgentChannel($agentUid) { /** * @var AppRepository $appRepo */ $appRepo = app(AppRepository::class); $appData = $appRepo->all(['uid']); if ($appData->isNotEmpty()) { $setData = []; foreach ($appData->toArray() as $key => $item) { $setData['name'] = rand_letter(9); $setData['agent_uid'] = $agentUid; $setData['mom_app_uid'] = $item['uid']; $this->create($setData); } } } /** * * @param $uid * @return \Illuminate\Database\Eloquent\Builder */ public function getAppChannel($uid) { return ChannelModel::query() ->where('uid',$uid) ->with(['app'=>function($query){ $query->select('uid','name','android_url','ios_url','android_version','ios_version','app_id'); }])->first(); } }