diff --git a/app/api/controller/BaseApiController.php b/app/api/controller/BaseApiController.php index 365105865..8c56eeeff 100755 --- a/app/api/controller/BaseApiController.php +++ b/app/api/controller/BaseApiController.php @@ -28,4 +28,11 @@ class BaseApiController extends BaseLikeAdminController $this->userId = $this->request->userInfo['user_id']; } } + + public function getPage() + { + $page = $this->request->get('page', 1); + $limit = $this->request->get('limit', 15); + return [$page, $limit]; + } } \ No newline at end of file diff --git a/app/api/controller/CompanyController.php b/app/api/controller/CompanyController.php index d3a3aad6d..001587523 100644 --- a/app/api/controller/CompanyController.php +++ b/app/api/controller/CompanyController.php @@ -4,6 +4,7 @@ namespace app\api\controller; use app\common\model\auth\Admin; use app\common\model\auth\AdminRole; +use app\common\model\auth\SystemRole; use app\common\model\Company; use app\common\model\contract\Contract; use think\facade\Db; @@ -17,8 +18,7 @@ class CompanyController extends BaseApiController public function index() { - $page = $this->request->get('page', 1); - $limit = $this->request->get('limit', 15); + [$page, $limit] = $this->getPage(); $admin = Admin::findOrEmpty($this->userInfo['admin_id']); $myCompany = Company::findOrEmpty($admin['company_id'])->toArray(); $companyIds = Contract::where('party_a', $myCompany['id'])->column('party_b'); @@ -71,4 +71,22 @@ class CompanyController extends BaseApiController return $this->success('success', $data); } + public function users() + { + [$page, $limit] = $this->getPage(); + $companyId = $this->request->param('company_id', 0); + $query = Admin::where('company_id', $companyId); + $count = $query->count(); + $users = $query->page($page)->limit($limit)->with(['company' => function ($query) { + $query->field('id,company_name'); + }])->field('id,avatar,name,account,phone,qualification,province,city,area,street,is_contract,company_id')->select()->toArray(); + foreach ($users as &$user) { + $roleIds = AdminRole::where('admin_id', $user['id'])->column('role_id'); + $user['roles'] = SystemRole::whereIn('id', $roleIds)->column('name'); + $user['qualification'] = $user['qualification'] != null ? json_decode($user['qualification'], true) : []; + unset($user['role_id'], $user['dept_id'], $user['jobs_id'], $user['id']); + } + return $this->success('success', ['count' => $count, 'data' => $users]); + } + } \ No newline at end of file diff --git a/app/api/controller/ContractController.php b/app/api/controller/ContractController.php index 27475fa32..58524a9e8 100644 --- a/app/api/controller/ContractController.php +++ b/app/api/controller/ContractController.php @@ -17,8 +17,7 @@ class ContractController extends BaseApiController public function index() { - $page = $this->request->get('page', 1); - $limit = $this->request->get('limit', 15); + [$page, $limit] = $this->getPage(); $admin = Admin::where('id', $this->userInfo['admin_id'])->find(); if (empty($admin)) { return $this->success();