| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- <?php
- namespace plugin\saiadmin\app\controller\agent;
- use plugin\saiadmin\app\logic\agent\AgentLogic;
- use plugin\saiadmin\app\validate\agent\AgentValidate;
- use plugin\saiadmin\basic\BaseController;
- use plugin\saiadmin\service\Permission;
- use support\Request;
- use support\Response;
- class AgentController extends BaseController
- {
- public function __construct()
- {
- $this->logic = new AgentLogic();
- $this->validate = new AgentValidate();
- parent::__construct();
- }
- #[Permission('代理列表', 'core:agent:index')]
- public function index(Request $request): Response
- {
- return $this->success($this->logic->indexList($this->agentFilters($request)));
- }
- #[Permission('导出代理', 'core:agent:export')]
- public function export(Request $request): Response
- {
- return $this->logic->export($this->agentFilters($request));
- }
- #[Permission('代理详情', 'core:agent:read')]
- public function read(Request $request): Response
- {
- return $this->success($this->logic->readAgent((int) $request->input('id', 0)));
- }
- #[Permission('修改代理信息', 'core:agent:update')]
- public function update(Request $request): Response
- {
- $data = $request->post();
- if ($data === []) {
- $json = json_decode($request->rawBody(), true);
- $data = is_array($json) ? $json : [];
- }
- $this->validate('update', $data);
- $this->logic->updateAgent((int) $data['id'], $data);
- return $this->success([], '代理信息保存成功');
- }
- #[Permission('删除代理', 'core:agent:destroy')]
- public function destroy(Request $request): Response
- {
- $id = (int) $request->post('id', 0);
- $this->validate('destroy', ['id' => $id]);
- $this->logic->destroyAgent($id);
- return $this->success([], '代理已删除');
- }
- #[Permission('查看代理合同', 'core:agent:contract:read')]
- public function readContract(Request $request): Response
- {
- return $this->success($this->logic->readContract((int) $request->input('id', 0)));
- }
- #[Permission('保存代理合同', 'core:agent:contract:update')]
- public function updateContract(Request $request): Response
- {
- $data = $request->post();
- if ($data === []) {
- $json = json_decode($request->rawBody(), true);
- $data = is_array($json) ? $json : [];
- }
- $this->validate('contract', $data);
- $result = $this->logic->updateContract((int) $data['id'], $data);
- return $this->success($result, '合同资料保存成功');
- }
- #[Permission('可分配设备', 'core:agent:device:candidates')]
- public function deviceCandidates(Request $request): Response
- {
- return $this->success($this->logic->candidateDevices($request->more([
- ['category', 'all'], ['goods_type', ''], ['device_sn', ''], ['qr_code', ''],
- ])));
- }
- #[Permission('分配设备', 'core:agent:device:assign')]
- public function assignDevice(Request $request): Response
- {
- $data = $request->post();
- $this->validate('deviceAction', $data);
- $result = $this->logic->assignDevices((int) $data['agent_id'], $data['device_sns']);
- return $this->success($result, (string) $result['message']);
- }
- #[Permission('回收设备', 'core:agent:device:recover')]
- public function recoverDevice(Request $request): Response
- {
- $data = $request->post();
- $this->validate('deviceAction', $data);
- $result = $this->logic->recoverDevices((int) $data['agent_id'], $data['device_sns']);
- return $this->success($result, (string) $result['message']);
- }
- #[Permission('设备分配记录', 'core:agent:device:records')]
- public function deviceRecords(Request $request): Response
- {
- $agentId = (int) $request->input('agent_id', 0);
- return $this->success($this->logic->assignmentRecords($agentId, $request->more([
- ['action_type', ''], ['goods_type', ''], ['device_sn', ''],
- ])));
- }
- private function agentFilters(Request $request): array
- {
- return $request->more([
- ['agent_type', ''], ['sort', 'default'], ['name', ''], ['phone', ''], ['status', ''],
- ]);
- }
- }
|