# @Date: 2024-08-02T01:08:31+08:00 # @Email: 1280880631@qq.com # @Last modified by: fm453 # @Last modified time: 2024-08-09T09:00:06+08:00 # @Copyright: www.hiluker.cn namespace api\controllers\client\v1; use addons\models\AcNotice; use yii\data\Pagination; class NoticeController extends Common { public function beforeAction($action) { if (!$this->pid) { $this->result('您正使用本系统内部接口,禁止非法链接使用!'); } return parent::beforeAction($action); } public function actionIndex() { $apis = [ 'list' => '通知清单', 'detail' => '通知详情' ]; $this->result('您正使用CMTS-CLIENT系统通知管理接口!', $apis, 200); } //订单列表 public function actionList() { // $s = $this->search(['is_show'=>1]); $s = $this->search(); $res = $s['res']; if (!$res) { $this->result('没有查询到相应的数据!', [], 0); } $data = $s['data']; $list = $this->formatList($res); $return = [ 'total' => $data->count(), 'notices' => $list, 'page' => $this->page ]; $this->result('通知查询成功!', $return, 200); } public function actionDetail() { $pid = $this->pid; $post = $this->postdata; $id = isset($post['id']) ? $post['id'] : 0; if ($id <= 0) { $this->result('查询参数错误!'); } $model = new AcNotice(); $detail = $model->findOne($id); $s = $this->formatDetail($detail->toArray()); $this->result('查询成功!', $s, 200); } private function search($ops = []) { $pid = $this->pid; $model = new AcNotice(); $where = 'pid = :pid'; $params = [':pid' => $pid]; $post = $this->postdata; $search = isset($post['search']) ? $post['search'] : []; // 优先处理$ops传参,并同时删除$search中相应元素 if ($ops) { foreach ($ops as $key => $value) { $where .= ' & ' . $key . ' = :' . $key; $params[':' . $key] = $value; if (isset($search[$key])) { unset($search[$key]); } } } if (isset($search['title']) && !empty($search['title'])) { $search['title'] = trim($search['title']); $where .= ' & title like :title'; $params[':title'] = $search['title']; } if (!isset($params[':deleted'])) { $params[':deleted'] = 0; $where .= ' & deleted = :deleted'; } $page = $this->page; $pageSize = $this->pageSize; $data = $model->find()->where($where, $params); $pages = new Pagination(['totalCount' => $data->count(), 'pageSize' => $pageSize]); $pages->setPage($page - 1, TRUE); //设置分页的当前页面值 $_orderby = 'update_at DESC,id DESC'; $res = $data->offset($pages->offset)->limit($pages->limit)->orderby($_orderby)->all(); return ['res' => $res, 'data' => $data]; } private function formatList($res) { $unsets = ['pid', 'create_at', 'deleted']; $list = []; foreach ($res as $s) { $s = $s->toArray(); foreach ($unsets as $us) { unset($s[$us]); } $weekdays = [0 => '日', 1 => '一', 2 => '二', 3 => '三', 4 => '四', 5 => '五', 6 => '六']; $wk = date('w', $s['update_at']); $s['updateTime'] = date('Y-m-d ', $s['update_at']) . '星期' . $weekdays[$wk]; $list[] = $s; } unset($s); return $list; } private function formatDetail($s = []) { $unsets = ['pid', 'create_at', 'deleted', 'is_show']; foreach ($unsets as $us) { unset($s[$us]); } $weekdays = [0 => '日', 1 => '一', 2 => '二', 3 => '三', 4 => '四', 5 => '五', 6 => '六']; $wk = date('w', $s['update_at']); $s['updateTime'] = date('Y-m-d ', $s['update_at']) . '星期' . $weekdays[$wk]; return $s; } }