[''], 'allow'=>['index','read'] ]; Hook::listen('check_auth',$action); $request = Request::instance(); $a = strtolower($request->action()); if (!in_array($a, $action['permission'])) { parent::_initialize(); } } /** * 公告列表 * @author Michael_xu * @return */ public function index() { $announcementModel = model('Announcement'); $param = $this->param; $userInfo = $this->userInfo; $param['user_id'] = $userInfo['id']; $data = $announcementModel->getDataList($param); $data['is_create'] = 0; //权限判断 if (checkPerByAction('oa', 'announcement', 'save')) { $data['is_create'] = 1; } return resultArray(['data' => $data]); } /** * 添加公告 * @author Michael_xu * @return */ public function save() { $announcementModel = model('Announcement'); $param = $this->param; $userInfo = $this->userInfo; $param['create_user_id'] = $userInfo['id']; # 时间设置 $param['start_time'] = !empty($param['start_time']) ? strtotime($param['start_time']) : time(); $param['end_time'] = !empty($param['end_time']) ? strtotime($param['end_time']) : time(); //开始时间不能小于结束时间 // if ($param['start_time'] && $param['end_time']) { // if ($param['start_time'] > $param['end_time']) resultArray(['error' => '开始时间不能大于结束时间']); // } $res = $announcementModel->createData($param); if ($res) { $res['realname'] = $userInfo['realname']; return resultArray(['data' => $res]); } else { return resultArray(['error' => $announcementModel->getError()]); } } /** * 公告详情 * @author Michael_xu * @return */ public function read() { $announcementModel = model('Announcement'); $param = $this->param; $userInfo = $this->userInfo; $user_id = $userInfo['id']; if(!$param['announcement_id']) { return resultArray(['error'=>'参数错误']); } $data = $announcementModel->getDataById($param['announcement_id']); $adminTypes = adminGroupTypes($user_id); //判断权限 if (!in_array($user_id, stringToArray($data['owner_user_ids'])) && !in_array($userInfo['structure_id'], stringToArray($data['structure_ids'])) && !in_array(1,$adminTypes) && ($data['owner_user_ids'] && $data['structure_id'])) { header('Content-Type:application/json; charset=utf-8'); exit(json_encode(['code'=>102,'error'=>'没有权限'])); } if (!$data) { return resultArray(['error' => $announcementModel->getError()]); } //标记已读 $read_user_ids = stringToArray($data['read_user_ids']) ? array_merge(stringToArray($data['read_user_ids']),array($user_id)) : array($user_id); $res = Db::name('OaAnnouncement')->where(['announcement_id' => $param['announcement_id']])->update(['read_user_ids' => arrayToString($read_user_ids)]); return resultArray(['data' => $data]); } /** * 编辑公告 * @author Michael_xu * @return */ public function update() { $announcementModel = model('Announcement'); $param = $this->param; if (!$param['announcement_id']) { return resultArray(['error' => '参数错误']); } if (!trim($param['content'])) { return resultArray(['error' => '请填写公告正文']); } # 时间设置 $param['start_time'] = !empty($param['start_time']) ? strtotime($param['start_time']) : time(); $param['end_time'] = !empty($param['end_time']) ? strtotime($param['end_time']) : time(); $res = $announcementModel->updateDataById($param, $param['announcement_id']); if ($res) { return resultArray(['data' => '编辑成功']); } else { return resultArray(['error' => $announcementModel->getError()]); } } /** * 删除公告 * @author Michael_xu * @return */ public function delete() { $announcementModel = model('Announcement'); $param = $this->param; $userInfo = $this->userInfo; $param['user_id'] = $userInfo['id']; $data = $announcementModel->delDataById($param); if (!$data) { return resultArray(['error' => $announcementModel->getError()]); } return resultArray(['data' => '删除成功']); } }