diff --git a/application/admin/controller/Blacklist.php b/application/admin/controller/Blacklist.php new file mode 100644 index 0000000..0dbc158 --- /dev/null +++ b/application/admin/controller/Blacklist.php @@ -0,0 +1,144 @@ +model = new \app\admin\model\Blacklist; + $this->view->assign("statusList", $this->model->getStatusList()); + } + + + + /** + * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法 + * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑 + * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改 + */ + + public function index() + { + //设置过滤方法 + $this->request->filter(['strip_tags', 'trim']); + if (false === $this->request->isAjax()) { + return $this->view->fetch(); + } + //如果发送的来源是 Selectpage,则转发到 Selectpage + if ($this->request->request('keyField')) { + return $this->selectpage(); + } + [$where, $sort, $order, $offset, $limit] = $this->buildparams(); + $list = $this->model + ->where($where) + ->with(['user' => function($q){ + $q->field('id,nickname'); + }]) + ->order($sort, $order) + ->paginate($limit); + $result = ['total' => $list->total(), 'rows' => $list->items()]; + return json($result); + } + + public function add() + { + if (false === $this->request->isPost()) { + return $this->view->fetch(); + } + $params = $this->request->post('row/a'); + if (empty($params)) { + $this->error(__('Parameter %s can not be empty', '')); + } + $params = $this->preExcludeFields($params); + + if ($this->dataLimit && $this->dataLimitFieldAutoFill) { + $params[$this->dataLimitField] = $this->auth->id; + } + $result = false; + Db::startTrans(); + try { + //是否采用模型验证 + if ($this->modelValidate) { + $name = str_replace("\\model\\", "\\validate\\", get_class($this->model)); + $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : $name) : $this->modelValidate; + $this->model->validateFailException()->validate($validate); + } + + $params['status'] = 'active'; + $params['user_id'] = $this->auth->id; + $params['added_time'] = date('Y-m-d H:i:s'); + + $result = $this->model->allowField(true)->save($params); + Db::commit(); + } catch (ValidateException|PDOException|Exception $e) { + Db::rollback(); + $this->error($e->getMessage()); + } + if ($result === false) { + $this->error(__('No rows were inserted')); + } + $this->success(); + } + + public function edit($ids = null) + { + if (!$ids) { + if (request()->isPost()){ + $ids = input('id'); + if (!$ids){ + $this->error('缺少订单ID'); + } + }else{ + $this->error('缺少订单ID'); + } + } + + // 获取当前ID对应的订单信息 + $order = $this->model->get($ids); + if (!$order) { + $this->error('订单不存在'); + } + + // 判断是否为POST请求,进行更新操作 + if (request()->isPost()) { + // 获取表单提交的数据 + $data = input('post.row/a'); + + if ($data['status'] == 'removed'){ + $data['removed_time'] = date('Y-m-d H:i:s'); + }else{ + $data['removed_time'] = null; + } + + // 更新订单信息 + $order->save($data); + + // 返回成功信息 + $this->success('更新成功', 'index'); + } + // 将订单数据传递到视图 + $this->assign('row', $order); + + // 渲染编辑页面 + return $this->fetch(); + } +} diff --git a/application/admin/lang/zh-cn/blacklist.php b/application/admin/lang/zh-cn/blacklist.php new file mode 100644 index 0000000..7e68a93 --- /dev/null +++ b/application/admin/lang/zh-cn/blacklist.php @@ -0,0 +1,13 @@ + '账号', + 'Username' => '用户名', +// 'Username' => '用户名', + 'Added_time' => '加入时间', + 'Removed_time' => '移除时间', + 'Reason' => '原因', + 'Active' => '生效', + 'Removed' => '移除', + 'Remarks' => '备注' +]; diff --git a/application/admin/model/Blacklist.php b/application/admin/model/Blacklist.php new file mode 100644 index 0000000..341618d --- /dev/null +++ b/application/admin/model/Blacklist.php @@ -0,0 +1,54 @@ + __('Active'), 'removed' => __('Removed')]; + } + + + public function getStatusTextAttr($value, $data) + { + $value = $value ?: ($data['status'] ?? ''); + $list = $this->getStatusList(); + return $list[$value] ?? ''; + } + + + public function user(){ + return $this->belongsTo(Admin::class,'user_id'); + } + + + + +} diff --git a/application/admin/validate/Blacklist.php b/application/admin/validate/Blacklist.php new file mode 100644 index 0000000..c082dfb --- /dev/null +++ b/application/admin/validate/Blacklist.php @@ -0,0 +1,27 @@ + [], + 'edit' => [], + ]; + +} diff --git a/application/admin/view/blacklist/add.html b/application/admin/view/blacklist/add.html new file mode 100644 index 0000000..09765fb --- /dev/null +++ b/application/admin/view/blacklist/add.html @@ -0,0 +1,27 @@ +
diff --git a/application/admin/view/blacklist/edit.html b/application/admin/view/blacklist/edit.html new file mode 100644 index 0000000..6892123 --- /dev/null +++ b/application/admin/view/blacklist/edit.html @@ -0,0 +1,39 @@ + diff --git a/application/admin/view/blacklist/index.html b/application/admin/view/blacklist/index.html new file mode 100644 index 0000000..072af15 --- /dev/null +++ b/application/admin/view/blacklist/index.html @@ -0,0 +1,46 @@ +