| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- <?php
- // +----------------------------------------------------------------------
- // | Description: 公告
- // +----------------------------------------------------------------------
- // | Author: yyk
- // +----------------------------------------------------------------------
-
- namespace app\oa\controller;
-
- use app\admin\controller\ApiCommon;
- use think\Hook;
- use think\Request;
- use think\Db;
-
- class Announcement extends ApiCommon
- {
- /**
- * 用于判断权限
- * @permission 无限制
- * @allow 登录用户可访问
- * @other 其他根据系统设置
- **/
- public function _initialize()
- {
- $action = [
- 'permission'=>[''],
- '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' => '删除成功']);
- }
- }
|