You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
3.9 KiB
119 lines
3.9 KiB
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | Description: 项目回收站
|
|
// +----------------------------------------------------------------------
|
|
// | Author: yykun
|
|
// +----------------------------------------------------------------------
|
|
|
|
namespace app\work\controller;
|
|
|
|
use app\work\traits\WorkAuthTrait;
|
|
use think\Request;
|
|
use think\Session;
|
|
use think\Hook;
|
|
use app\admin\controller\ApiCommon;
|
|
use think\Db;
|
|
|
|
class Trash extends ApiCommon
|
|
{
|
|
use WorkAuthTrait;
|
|
|
|
/**
|
|
* 用于判断权限
|
|
* @permission 无限制
|
|
* @allow 登录用户可访问
|
|
* @other 其他根据系统设置
|
|
**/
|
|
public function _initialize()
|
|
{
|
|
$action = [
|
|
'permission'=>[''],
|
|
'allow'=>['index','delete','recover']
|
|
];
|
|
Hook::listen('check_auth',$action);
|
|
$request = Request::instance();
|
|
$a = strtolower($request->action());
|
|
if (!in_array($a, $action['permission'])) {
|
|
parent::_initialize();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 回收站列表
|
|
* @author yykun
|
|
* @return
|
|
*/
|
|
public function index()
|
|
{
|
|
$param = $this->param;
|
|
$userInfo = $this->userInfo;
|
|
$where = [];
|
|
$where['ishidden'] = 1;
|
|
$taskModel = new \app\work\model\Task();
|
|
$adminTypes = adminGroupTypes($userInfo['id']);
|
|
if (!in_array(1,$adminTypes) && !in_array(7,$adminTypes)) {
|
|
$str = ','.$userInfo['id'].',';
|
|
$where['whereStr'] = ' ( task.create_user_id ='.$userInfo['id'].' or ( task.owner_user_id like "%'.$str.'%") or ( task.main_user_id = '.$userInfo['id'].' ) )';
|
|
}
|
|
$data = $taskModel->getTaskList($where);
|
|
return resultArray(['data' =>$data]);
|
|
}
|
|
|
|
/**
|
|
* 回收站删除
|
|
* @author yykun
|
|
* @return
|
|
*/
|
|
public function delete()
|
|
{
|
|
$param = $this->param;
|
|
if (!$param['task_id']) return resultArray(['error'=>'参数错误']);
|
|
|
|
# 权限判断
|
|
$workId = Db::name('task')->where(['ishidden' => 1,'task_id' => $param['task_id']])->value('work_id');
|
|
if (!empty($workId) && !$this->checkWorkOperationAuth('cleanTask', $workId, $this->userInfo['id'])) {
|
|
header('Content-Type:application/json; charset=utf-8');
|
|
exit(json_encode(['code' => 102, 'error' => '无权操作!']));
|
|
}
|
|
|
|
$flag = Db::name('Task')->where(['ishidden' => 1,'task_id' => $param['task_id']])->delete();
|
|
if ($flag) {
|
|
// 删除附件
|
|
# 删除活动记录
|
|
Db::name('crm_activity')->where(['activity_type' => 11, 'activity_type_id' => $param['task_id']])->delete();
|
|
return resultArray(['data'=>'删除成功']);
|
|
} else {
|
|
return resultArray(['error'=>'删除失败']);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 恢复任务
|
|
*
|
|
* @return \think\response\Json
|
|
* @throws \think\Exception
|
|
* @throws \think\exception\PDOException
|
|
*/
|
|
public function recover()
|
|
{
|
|
$param = $this->param;
|
|
if (!$param['task_id']) return resultArray(['error'=>'参数错误']);
|
|
|
|
# 权限判断
|
|
$workId = Db::name('task')->where(['ishidden' => 1,'task_id' => $param['task_id']])->value('work_id');
|
|
if (!empty($workId) && !$this->checkWorkOperationAuth('restoreTask', $workId, $this->userInfo['id'])) {
|
|
header('Content-Type:application/json; charset=utf-8');
|
|
exit(json_encode(['code' => 102, 'error' => '无权操作!']));
|
|
}
|
|
|
|
$updateData = [];
|
|
$updateData['ishidden'] = 0;
|
|
# $updateData['class_id'] = 0;
|
|
$ret = Db::name('Task')->where(['ishidden' => 1,'task_id' => $param['task_id']])->update($updateData);
|
|
if ($ret) {
|
|
return resultArray(['data'=>'操作成功']);
|
|
} else {
|
|
return resultArray(['error'=>$model->getError()]);
|
|
}
|
|
}
|
|
} |