scene('list')->check($param); $where = ['state'=>1]; $list = ChannelListModel::where($where)->order('id', 'desc')->paginate([ 'list_rows' => $param['limit'], 'page' => $param['page'], ]); return $this->toData('0', 'SUCCESS', [ 'list' => $list->items(), // 当前页的数据 'page' => $list->currentPage(), // 当前页码 'total' => $list->total(), // 总记录数 'last_page' => $list->lastPage(), // 最后一页页码 ]); } catch (\Exception $exception) { return $this->toData('1', '系统异常 请稍后重试', [$exception->getMessage(), $exception->getTrace()]); } } public function add($param) { try { validate(ChannelValidate::class)->scene('add')->check($param); // 检测是否存在相同渠道 $exists = ChannelListModel::where('channel', $param['channel'])->find(); if ($exists) { return json(['code'=>1, 'message'=>'已存在相同渠道,请勿重复添加']); } // 插入新增渠道 $desc = $param['desc'] ?? ""; ChannelListModel::create(['channel'=>$param['channel'], 'desc'=>$desc, 'state' => 1]); return $this->toData('0', 'success'); } catch (\Exception $exception) { return $this->toData('1', '系统异常 请稍后重试', [$exception->getMessage(), $exception->getTrace()]); } } public function edit($param) { try { validate(ChannelValidate::class)->scene('edit')->check($param); $channel = ChannelListModel::where(['id'=>$param['id']])->find(); if (empty($channel)) { return json(['code'=>1, 'message'=>'操作的数据不存在']); } $channel->channel = $param['channel']; $channel->desc = $param['desc'] ?? ''; $channel->save(); return $this->toData('0', 'success'); } catch (\Exception $exception) { return $this->toData('1', '系统异常 请稍后重试', [$exception->getMessage(), $exception->getTrace()]); } } public function delete($param) { try { validate(ChannelValidate::class)->scene('delete')->check($param); $channel = ChannelListModel::where(['id'=>$param['id']])->find(); if (empty($channel)) { return json(['code'=>1, 'message'=>'操作的数据不存在']); } $channel->state = 0; $channel->save(); return $this->toData('0', 'success'); } catch (\Exception $exception) { return $this->toData('1', '系统异常 请稍后重试', [$exception->getMessage(), $exception->getTrace()]); } } public function agentChannelList($param) { try { validate(ChannelValidate::class)->scene('agent_channel_list')->check($param); $where = []; if (!empty($param['agent_id'])) { $where['agent_id'] = $param['agent_id']; } $list = AgentChannelListModel::where($where)->order('id', 'desc')->paginate([ 'list_rows' => $param['limit'], 'page' => $param['page'], ]); return $this->toData('0', 'SUCCESS', [ 'list' => $list->items(), // 当前页的数据 'page' => $list->currentPage(), // 当前页码 'total' => $list->total(), // 总记录数 'last_page' => $list->lastPage(), // 最后一页页码 ]); } catch (\Exception $exception) { return $this->toData('1', '系统异常 请稍后重试', [$exception->getMessage(), $exception->getTrace()]); } } public function createAgentChannel($param) { try { validate(ChannelValidate::class)->scene('agent_created_channel')->check($param); // 代理推广连接 = 落地页域名 + 代理ID + 渠道名称 if (empty($param['domain'])) { return $this->toData('1', '缺少参数domain'); } $uqCode = bin2hex(random_bytes(16)); $domain = rtrim($param['domain'], '/') . '/'; $channelAddr = $domain.'?ext='.$uqCode; // 检测是否存在相同渠道 $exists = AgentChannelListModel::where(['agent_id'=>$param['agent_id'], 'channel_addr'=>$channelAddr])->find(); if ($exists) { return json(['code'=>1, 'message'=>'该代理已存在相同渠道']); } // 插入新增渠道 AgentChannelListModel::create(['agent_id'=>$param['agent_id'], 'channel_addr'=>$channelAddr, 'channel'=>$param['channel'], 'ch_code'=>$uqCode]); return $this->toData('0', 'success'); } catch (\Exception $exception) { return $this->toData('1', '系统异常 请稍后重试', [$exception->getMessage(), $exception->getTrace()]); } } }