fix: 分页查询
This commit is contained in:
@@ -77,7 +77,7 @@ class Contract extends Common
|
||||
{
|
||||
$param = request()->post();
|
||||
|
||||
$FirstLeveType = db('partner_company')->where('company_type & 0x01', 1)->field('company_id as id, company_name as name')->select();
|
||||
$FirstLeveType = db('partner_company')->where('company_type & 0x01', 1)->field('company_id as id, company_name as name')->order('company_name asc')->select();
|
||||
|
||||
for ($i = 0; $i < count($FirstLeveType); $i++)
|
||||
{
|
||||
|
||||
@@ -237,6 +237,7 @@ class Partner extends Common
|
||||
//查找所有的签约客户公司
|
||||
$result = db('partner_company')->where('company_type & 0x01', 1)
|
||||
->field('company_id as id, company_name as name')
|
||||
->order('company_name asc')
|
||||
->select();
|
||||
|
||||
for ($i=0; $i<count($result); $i++)
|
||||
@@ -271,6 +272,7 @@ class Partner extends Common
|
||||
//查找所有的业主公司
|
||||
$OwnerList = db('partner_company')->where('company_type & 0x02', 2)
|
||||
->field('company_id as id, company_name as name')
|
||||
->order('company_name asc')
|
||||
->select();
|
||||
$ret = [];
|
||||
$item = [];
|
||||
|
||||
@@ -293,10 +293,10 @@ class Work extends Common
|
||||
if (1 == $user_info['user_role'])
|
||||
{
|
||||
$where = [];
|
||||
if($param['task_state'] != ''){
|
||||
if(isset($param['task_state']) && $param['task_state'] != ''){
|
||||
$where['s.task_state'] = $param['task_state'];
|
||||
}
|
||||
if($param['task_processor'] != ''){
|
||||
if(isset($param['task_processor']) && $param['task_processor'] != ''){
|
||||
$where['s.task_processor'] = $param['task_processor'];
|
||||
}
|
||||
$ret = db('work_task_info')->alias('s')
|
||||
@@ -318,7 +318,7 @@ class Work extends Common
|
||||
return $this->sendSuccess($ret);
|
||||
}else{
|
||||
$where = [];
|
||||
if($param['task_state'] != ''){
|
||||
if(isset($param['task_state']) && $param['task_state'] != ''){
|
||||
$where['s.task_state'] = $param['task_state'];
|
||||
}
|
||||
$ret = db('work_task_info')->alias('s')
|
||||
@@ -445,7 +445,7 @@ class Work extends Common
|
||||
if (1 == $user_info['user_role'])
|
||||
{
|
||||
$where = [];
|
||||
if($param['task_state'] != ''){
|
||||
if(isset($param['task_state']) && $param['task_state'] != ''){
|
||||
$where['s.task_state'] = $param['task_state'];
|
||||
}
|
||||
$ret = db('work_task_info')->alias('s')
|
||||
@@ -468,7 +468,7 @@ class Work extends Common
|
||||
return $this->sendSuccess($ret);
|
||||
}else{
|
||||
$where = [];
|
||||
if($param['task_state'] != ''){
|
||||
if(isset($param['task_state']) && $param['task_state'] != ''){
|
||||
$where['s.task_state'] = $param['task_state'];
|
||||
}
|
||||
$ret = db('work_task_info')->alias('s')
|
||||
@@ -572,7 +572,7 @@ class Work extends Common
|
||||
if (1 == $user_info['user_role'])
|
||||
{
|
||||
$where = [];
|
||||
if($param['task_state'] != ''){
|
||||
if(isset($param['task_state']) && $param['task_state'] != ''){
|
||||
$where['s.task_state'] = $param['task_state'];
|
||||
}
|
||||
$ret = db('work_task_info')->alias('s')
|
||||
@@ -586,7 +586,7 @@ class Work extends Common
|
||||
return $ret;
|
||||
}else{
|
||||
$where = [];
|
||||
if($param['task_state'] != ''){
|
||||
if(isset($param['task_state']) && $param['task_state'] != ''){
|
||||
$where['s.task_state'] = $param['task_state'];
|
||||
}
|
||||
$ret = db('work_task_info')->alias('s')
|
||||
@@ -824,4 +824,283 @@ class Work extends Common
|
||||
return $ret;
|
||||
}
|
||||
|
||||
//获取内部客户参与的项目 - 分页版本
|
||||
public function GetWorkInfoByLoginIdPaginated()
|
||||
{
|
||||
$param = request()->post();
|
||||
$user_id = $param['user_id'];
|
||||
$currPage = isset($param['currPage']) ? $param['currPage'] : 1;
|
||||
$pageSize = isset($param['pageSize']) ? $param['pageSize'] : 10;
|
||||
|
||||
$user = new User();
|
||||
$project_work = $this->GetProjectListPaginated($user_id, $currPage, $pageSize);
|
||||
|
||||
for ($i = 0; $i < count($project_work['list']); $i++) {
|
||||
$involve_manager = $project_work['list'][$i]['involve_manager'];
|
||||
$info = $user->GetUserInfoByLoginId($involve_manager);
|
||||
if ($info && isset($info['name'])) {
|
||||
$project_work['list'][$i]['issue_creator_name'] = $info['name'];
|
||||
}
|
||||
}
|
||||
|
||||
$res['list'] = $project_work['list'];
|
||||
$res['total'] = $project_work['total'];
|
||||
return $this->sendSuccess($res);
|
||||
}
|
||||
|
||||
//获取参与的客户项目列表 - 分页版本
|
||||
public function GetProjectListPaginated($user_id, $currPage, $pageSize)
|
||||
{
|
||||
//判断登录用户的角色,如果是管理员,就获取所有的项目信息
|
||||
$user_info = db('system_user')->where('id', $user_id)->find();
|
||||
|
||||
$query = db('project_info')->alias('p')
|
||||
->join('project_state s', 's.id =p.project_state', 'left')
|
||||
->where('p.project_state', '<', 10) //未关闭的项目
|
||||
->field('p.*, s.desp as project_state_name,1 as project_types');
|
||||
|
||||
if (1 != $user_info['user_role']) {
|
||||
$query->where(function ($query) use ($user_id) {
|
||||
$query->where('p.involve_manager', $user_id)
|
||||
->whereor('p.involve_members', 'like', $user_id . ',%')
|
||||
->whereor('p.involve_members', 'like', '%,' . $user_id . ',%')
|
||||
->whereor('p.involve_members', 'like', $user_id . '')
|
||||
->whereor('p.involve_members', 'like', '%,' . $user_id);
|
||||
});
|
||||
}
|
||||
|
||||
// 获取分页数据
|
||||
$ret = $query->page($currPage, $pageSize)->select();
|
||||
|
||||
// 获取总数
|
||||
$totalQuery = db('project_info')->alias('p')
|
||||
->join('project_state s', 's.id =p.project_state', 'left')
|
||||
->where('p.project_state', '<', 10);
|
||||
|
||||
if (1 != $user_info['user_role']) {
|
||||
$totalQuery->where(function ($query) use ($user_id) {
|
||||
$query->where('p.involve_manager', $user_id)
|
||||
->whereor('p.involve_members', 'like', $user_id . ',%')
|
||||
->whereor('p.involve_members', 'like', '%,' . $user_id . ',%')
|
||||
->whereor('p.involve_members', 'like', $user_id . '')
|
||||
->whereor('p.involve_members', 'like', '%,' . $user_id);
|
||||
});
|
||||
}
|
||||
|
||||
$total = $totalQuery->count();
|
||||
|
||||
//统计每个项目与登录用户有关的任务数
|
||||
for ($i = 0; $i < count($ret); $i++) {
|
||||
$ret[$i]['issue_count'] = $this->GetProjectIssueCount($user_id, $ret[$i]['project_id']);
|
||||
$ret[$i]['task_count'] = $this->GetProjectTaskCount($user_id, $ret[$i]['project_id']);
|
||||
}
|
||||
|
||||
return [
|
||||
'list' => $ret,
|
||||
'total' => $total
|
||||
];
|
||||
}
|
||||
|
||||
//获取项目问题列表 - 分页版本
|
||||
public function GetProjectIssueListPaginated()
|
||||
{
|
||||
$param = request()->post();
|
||||
$user = new User();
|
||||
$user_id = $param['user_id'];
|
||||
$project_id = $param['project_id'];
|
||||
$issue_state = $param['issue_state'];
|
||||
$currPage = isset($param['currPage']) ? $param['currPage'] : 1;
|
||||
$pageSize = isset($param['pageSize']) ? $param['pageSize'] : 10;
|
||||
|
||||
$user_info = db('system_user')->where('id', $user_id)->find();
|
||||
|
||||
if (1 == $user_info['user_role']) {
|
||||
$where = [];
|
||||
if ($issue_state == 1) {
|
||||
$where['s.issue_state'] = array('<', 10); //未关闭
|
||||
} else if ($issue_state == 2) {
|
||||
$where['s.issue_state'] = array('>', 10);//已关闭
|
||||
}
|
||||
|
||||
// 获取分页数据
|
||||
$query = db('project_issues')->alias('s')
|
||||
->join('project_info i', 'i.project_id =s.project_id', 'left')
|
||||
->join('project_issue_state t', 't.id =s.issue_state', 'left')
|
||||
->where('s.project_id', $project_id)
|
||||
->where($where)
|
||||
->field('s.*, i.project_name, i.project_number, t.desp as issue_state_name, i.involve_manager,1 as project_types');
|
||||
|
||||
$ret = $query->page($currPage, $pageSize)->select();
|
||||
|
||||
// 获取总数
|
||||
$total = db('project_issues')->alias('s')
|
||||
->join('project_info i', 'i.project_id =s.project_id', 'left')
|
||||
->join('project_issue_state t', 't.id =s.issue_state', 'left')
|
||||
->where('s.project_id', $project_id)
|
||||
->where($where)
|
||||
->count();
|
||||
|
||||
for ($i = 0; $i < count($ret); $i++) {
|
||||
$info = $user->GetUserInfoByLoginId($ret[$i]['issue_processor']);
|
||||
if ($info != "") {
|
||||
$ret[$i]['issue_processor_name'] = $info['name'];
|
||||
} else {
|
||||
$ret[$i]['issue_processor_name'] = '-';
|
||||
}
|
||||
$info = $user->GetUserInfoByLoginId($ret[$i]['issue_creator']);
|
||||
$ret[$i]['issue_creator_name'] = $info['name'];
|
||||
}
|
||||
|
||||
$res['list'] = $ret;
|
||||
$res['total'] = $total;
|
||||
return $this->sendSuccess($res);
|
||||
} else {
|
||||
$where = [];
|
||||
if ($issue_state == 1) {
|
||||
$where['s.issue_state'] = array('<', 10); //未关闭
|
||||
} else if ($issue_state == 2) {
|
||||
$where['s.issue_state'] = array('>', 10);//已关闭
|
||||
}
|
||||
|
||||
// 获取分页数据
|
||||
$query = db('project_issues')->alias('s')
|
||||
->join('project_info i', 'i.project_id =s.project_id', 'left')
|
||||
->join('project_issue_state t', 't.id =s.issue_state', 'left')
|
||||
->where('s.project_id', $project_id)
|
||||
->where(function ($query) use ($user_id) {
|
||||
$query->where('s.issue_processor', $user_id)
|
||||
->whereor('s.issue_creator', $user_id)
|
||||
->whereor('i.involve_manager', $user_id);
|
||||
})
|
||||
->where($where)
|
||||
->field('s.*, i.project_name, i.project_number, t.desp as issue_state_name, i.involve_manager,1 as project_types');
|
||||
|
||||
$ret = $query->page($currPage, $pageSize)->select();
|
||||
|
||||
// 获取总数
|
||||
$total = db('project_issues')->alias('s')
|
||||
->join('project_info i', 'i.project_id =s.project_id', 'left')
|
||||
->join('project_issue_state t', 't.id =s.issue_state', 'left')
|
||||
->where('s.project_id', $project_id)
|
||||
->where(function ($query) use ($user_id) {
|
||||
$query->where('s.issue_processor', $user_id)
|
||||
->whereor('s.issue_creator', $user_id)
|
||||
->whereor('i.involve_manager', $user_id);
|
||||
})
|
||||
->where($where)
|
||||
->count();
|
||||
|
||||
for ($i = 0; $i < count($ret); $i++) {
|
||||
$info = $user->GetUserInfoByLoginId($ret[$i]['issue_processor']);
|
||||
if ($info != "") {
|
||||
$ret[$i]['issue_processor_name'] = $info['name'];
|
||||
} else {
|
||||
$ret[$i]['issue_processor_name'] = '-';
|
||||
}
|
||||
$info = $user->GetUserInfoByLoginId($ret[$i]['issue_creator']);
|
||||
$ret[$i]['issue_creator_name'] = $info['name'];
|
||||
}
|
||||
|
||||
$res['list'] = $ret;
|
||||
$res['total'] = $total;
|
||||
return $this->sendSuccess($res);
|
||||
}
|
||||
}
|
||||
|
||||
//获取运营Story列表 - 分页版本
|
||||
public function GetOperationStoryListPaginated()
|
||||
{
|
||||
$param = request()->post();
|
||||
$user = new User();
|
||||
$user_id = $param['user_id'];
|
||||
$currPage = isset($param['currPage']) ? $param['currPage'] : 1;
|
||||
$pageSize = isset($param['pageSize']) ? $param['pageSize'] : 10;
|
||||
|
||||
$user_info = db('system_user')->where('id', $user_id)->find();
|
||||
|
||||
if (1 == $user_info['user_role']) {
|
||||
$where = [];
|
||||
if(isset($param['story_state']) && $param['story_state'] != ''){
|
||||
$where['y.story_state'] = $param['story_state'];
|
||||
}
|
||||
|
||||
// 获取分页数据
|
||||
$query = db('work_story_info')->alias('y')
|
||||
->join('work_story_state p', 'p.id =y.story_state', 'left')
|
||||
->where('y.story_type', 2)
|
||||
->where('y.story_state', '<', 4) //未完成的Story
|
||||
->where($where)
|
||||
->field('y.*, p.desp as story_state_desp');
|
||||
|
||||
$ret = $query->page($currPage, $pageSize)->select();
|
||||
|
||||
// 获取总数
|
||||
$total = db('work_story_info')->alias('y')
|
||||
->join('work_story_state p', 'p.id =y.story_state', 'left')
|
||||
->where('y.story_type', 2)
|
||||
->where('y.story_state', '<', 4)
|
||||
->where($where)
|
||||
->count();
|
||||
|
||||
for ($i=0; $i<count($ret); $i++) {
|
||||
//根据登录账号获取Story管理员用户姓名
|
||||
$user_info = $user->GetUserInfoByLoginId($ret[$i]['story_manager']);
|
||||
$ret[$i]['story_manager_name'] = $user_info['name'];
|
||||
$ret[$i]['story_tasks'] = $this->GetOperationTaskCount($user_id,$ret[$i]['story_id']);
|
||||
}
|
||||
|
||||
$res['list'] = $ret;
|
||||
$res['total'] = $total;
|
||||
return $this->sendSuccess($res);
|
||||
} else {
|
||||
$where = [];
|
||||
if(isset($param['story_state']) && $param['story_state'] != ''){
|
||||
$where['y.story_state'] = $param['story_state'];
|
||||
}
|
||||
|
||||
// 获取分页数据
|
||||
$query = db('work_story_info')->alias('y')
|
||||
->join('work_story_state p', 'p.id =y.story_state', 'left')
|
||||
->where('y.story_type', 2)
|
||||
->where('y.story_state', '<', 4) //未完成的Story
|
||||
->where($where)
|
||||
->where(function ($query) use ($user_id) {
|
||||
$query->where('y.story_manager', $user_id)
|
||||
->whereor('y.story_member', 'like', $user_id . ',%')
|
||||
->whereor('y.story_member', 'like', '%,' . $user_id . ',%')
|
||||
->whereor('y.story_member', $user_id)
|
||||
->whereor('y.story_member', 'like', '%,' . $user_id);
|
||||
})
|
||||
->field('y.*, p.desp as story_state_desp');
|
||||
|
||||
$ret = $query->page($currPage, $pageSize)->select();
|
||||
|
||||
// 获取总数
|
||||
$total = db('work_story_info')->alias('y')
|
||||
->join('work_story_state p', 'p.id =y.story_state', 'left')
|
||||
->where('y.story_type', 2)
|
||||
->where('y.story_state', '<', 4)
|
||||
->where($where)
|
||||
->where(function ($query) use ($user_id) {
|
||||
$query->where('y.story_manager', $user_id)
|
||||
->whereor('y.story_member', 'like', $user_id . ',%')
|
||||
->whereor('y.story_member', 'like', '%,' . $user_id . ',%')
|
||||
->whereor('y.story_member', $user_id)
|
||||
->whereor('y.story_member', 'like', '%,' . $user_id);
|
||||
})
|
||||
->count();
|
||||
|
||||
for ($i=0; $i<count($ret); $i++) {
|
||||
//根据登录账号获取Story管理员用户姓名
|
||||
$user_info = $user->GetUserInfoByLoginId($ret[$i]['story_manager']);
|
||||
$ret[$i]['story_manager_name'] = $user_info['name'];
|
||||
$ret[$i]['story_tasks'] = $this->GetOperationTaskCount($user_id,$ret[$i]['story_id']);
|
||||
}
|
||||
|
||||
$res['list'] = $ret;
|
||||
$res['total'] = $total;
|
||||
return $this->sendSuccess($res);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user