123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332 |
- <?php
- namespace app\admin\controller;
- use app\common\model\apply\ApiClass;
- use app\common\model\apply\ApiPath;
- use app\common\model\apply\ApplyClass;
- use app\common\model\base\org\Org;
- use app\common\model\base\org\OrgRole;
- use app\common\model\base\org\OrgType;
- use app\common\model\base\OrgTypeClass;
- use app\common\model\base\other\Area;
- use app\common\model\basic\BasicSchool;
- use daorui\platform\platformAuth;
- use daorui\weixin\work\workAuth;
- /**
- * 公告参数获取
- */
- class Comapi extends Base
- {
- protected $noNeedLogin = [
- ];
- protected $noNeedAuth = [
- 'getApiClassPage', 'getOrgRolePage', 'getOrgTypeClassCode', 'getOrgPage', 'getApplyClassPage', 'getArea', 'getSchoolNature',
- ];
- public function initialize()
- {
- parent::initialize();
- }
- /**
- * @title :[获取学校性质]
- * @param {参数类型} {参数字段名} {默认值} {描述}
- * @return json|{*}
- * @Author : byl
- * @Date :2024/12/27 16:34
- */
- public function getSchoolNature()
- {
- $info = BasicSchool::schoolNatureList();
- $list = [];
- if ($info) {
- foreach ($info as $k => $v) {
- $list[] = [
- 'label' => $v,
- 'value' => $k,
- ];
- }
- }
- return pageRes(1, '', count($list), $list);
- }
- /**
- * @title :[获取应用权限]
- * @param {参数类型} {参数字段名} {默认值} {描述}
- * @param {int} {pid} {0} {父级id}
- * @return json|{*}
- * @Author : byl
- * @Date :2025/1/2 10:12
- */
- public function getPermission()
- {
- $pid = input('pid/d', 0);
- $where = [];
- if ($pid >= 0) {
- $where[] = ['pid', '=', $pid];
- }
- $list = ApiClass::field('id,pid,class_name')
- ->where($where)
- ->select()
- ->each(function ($itme) {
- $w = [
- ['class_id', '=', $itme['id']],
- ];
- $itme['permission'] = ApiPath::field('id,api_name')->where($w)->select();
- if ($itme['pid'] == 0) {
- $itme['hasChildren'] = true;
- } else {
- $itme['hasChildren'] = false;
- $itme['children'] = null;
- }
- });
- if ($pid >= 0) {
- return res(1, '', $list);
- } else {
- $list = $list ? $list->toArray() : [];
- $list = array2tree($list, 'pid', 'id', 0, 'children');
- return res(1, '', $list);
- }
- }
- /**
- * @title :[接口分类]
- * @param {参数类型} {参数字段名} {默认值} {描述}
- * @param {int} {page} {1} {页码}
- * @param {int} {limit} {10} {条数}
- * @param {string} {kw} {''} {关键词}
- * @param {int} {org_id} {''} {所属组织}
- * @param {array} {val} {''} {查询指定值}
- * @return json|{*}
- * @Author : byl
- * @Date :2024/12/31 8:52
- */
- public function getApiClassPage()
- {
- $kw = input('kw/s', '');
- $page = input('page/d', 1);
- $limit = input('limit/d', 10);
- $pid = input('pid/d', 0);
- // 查询指定值
- $val = input('val/a', []);
- $where = [];
- if ($val) {
- if (is_array($val)) {
- // 查询指定值
- $where[] = ['id', 'IN', $val];
- } else {
- // 查询指定值
- $where[] = ['id', '=', $val];
- }
- $data = ApiClass::field('class_name AS label,id AS value')->where($where)->select();
- return pageRes(1, '', count($data), $data);
- } else {
- // 父级id
- if ($pid >= 0) {
- $where[] = ['pid', '=', $pid];
- }
- // 查询分页
- if ($kw) {
- $where[] = ['org_type_name|code', 'LIKE', "%$kw%"];
- }
- $res = ApiClass::field('class_name AS label,id AS value,pid')
- ->where($where)
- ->paginate(['list_rows' => $limit, 'page' => $page])
- ->each(function ($item) {
- $item['hasChildren'] = $item['pid'] == 0 ? true : false;
- });
- return pageRes(1, '', $res->total(), $res->items());
- }
- }
- /**
- * @title :[获取组织角色]
- * @param {参数类型} {参数字段名} {默认值} {描述}
- * @param {int} {page} {1} {页码}
- * @param {int} {limit} {10} {条数}
- * @param {string} {kw} {''} {关键词}
- * @param {int} {org_id} {''} {所属组织}
- * @param {array} {val} {''} {查询指定值}
- * @return json|{*}
- * @Author : byl
- * @Date :2024/12/30 11:17
- */
- public function getOrgRolePage()
- {
- $kw = input('kw/s', '');
- $org_id = input('org_id/d', 0);
- $page = input('page/d', 1);
- $limit = input('limit/d', 10);
- // 查询指定值
- $val = input('val/a', []);
- $where = [];
- if ($val) {
- // 查询指定值
- $where[] = ['role_id', 'IN', $val];
- $data = OrgRole::field('name AS label,role_id AS value')
- ->where($where)
- ->select()
- ->each(function ($item) {
- $item['right'] = OrgRole::getOrgPath($item['value']);
- });
- return pageRes(1, '', count($data), $data);
- } else {
- // 查询分页
- if ($kw) {
- $where[] = ['name|code', 'LIKE', "%$kw%"];
- }
- // 所属企业
- if ($org_id) {
- $where[] = ['org_id', '=', $org_id];
- }
- $res = OrgRole::field('name AS label,role_id AS value')
- ->where($where)
- ->paginate(['list_rows' => $limit, 'page' => $page])
- ->each(function ($item) {
- $item['right'] = OrgRole::getOrgPath($item['value']);
- });
- return pageRes(1, '', $res->total(), $res->items());
- }
- }
- /**
- * @title :[获取组织分类code值]
- * @param {参数类型} {参数字段名} {默认值} {描述}
- * @param {string} {type_class} {''} {关键词}
- * @return json|{*}
- * @Author : byl
- * @Date :2024/12/27 16:34
- */
- public function getOrgTypeClassCode()
- {
- $inCode = (new platformAuth())->interfaceRequest("getSchoolCode", []);
- $inCode = array_column($inCode['data'], 'code');
- $list = OrgType::where('code', 'in', $inCode)->column('code as value,org_type_name as label');
- return pageRes(1, '', count($list), $list);
- }
- /**
- * @title :[获取组织结构]
- * @param {参数类型} {参数字段名} {默认值} {描述}
- * @param {int} {page} {1} {页码}
- * @param {int} {limit} {10} {条数}
- * @param {string} {kw} {''} {关键词}
- * @param {array} {val} {''} {查询指定值}
- * @return json|{*}
- * @Author : byl
- * @Date :2024/12/23 17:45
- */
- public function getOrgTypePage()
- {
- $kw = input('kw/s', '');
- $page = input('page/d', 1);
- $limit = input('limit/d', 10);
- // 查询指定值
- $val = input('val/a', []);
- $where = [];
- if ($val) {
- // 查询指定值
- $where[] = ['code', 'IN', $val];
- $data = OrgType::field('org_type_name AS label,code AS value')->where($where)->select();
- return pageRes(1, '', count($data), $data);
- } else {
- // 查询分页
- if ($kw) {
- $where[] = ['org_type_name|code', 'LIKE', "%$kw%"];
- }
- $res = OrgType::field('org_type_name AS label,code AS value')->where($where)->paginate(['list_rows' => $limit, 'page' => $page]);
- return pageRes(1, '', $res->total(), $res->items());
- }
- }
- /**
- * @title :[获取应用类型]
- * @param {参数类型} {参数字段名} {默认值} {描述}
- * @param {int} {page} {1} {页码}
- * @param {int} {limit} {10} {条数}
- * @param {string} {kw} {''} {关键词}
- * @param {array} {val} {''} {查询指定值}
- * @return json|{*}
- * @Author : byl
- * @Date :2024/12/24 17:24
- */
- public function getApplyClassPage()
- {
- $kw = input('kw/s', '');
- $page = input('page/d', 1);
- $limit = input('limit/d', 10);
- // 查询指定值
- $val = input('val/a', []);
- $where = [];
- if ($val) {
- // 查询指定值
- $where[] = ['id', 'IN', $val];
- $data = OrgType::field('class_name AS label,id AS value')->where($where)->select();
- return pageRes(1, '', count($data), $data);
- } else {
- // 查询分页
- if ($kw) {
- $where[] = ['class_name|class_code', 'LIKE', "%$kw%"];
- }
- $res = ApplyClass::field('class_name AS label,id AS value')->where($where)->paginate(['list_rows' => $limit, 'page' => $page]);
- return pageRes(1, '', $res->total(), $res->items());
- }
- }
- /**
- * @title :[获取地区]
- * @param {参数类型} {参数字段名} {默认值} {描述}
- * @param {int} {page} {1} {页码}
- * @param {int} {limit} {10} {条数}
- * @param {string} {kw} {''} {关键词}
- * @param {array} {val} {''} {查询指定值}
- * @return json|{*}
- * @Author : byl
- * @Date :2024/12/27 9:36
- */
- public function getArea()
- {
- $kw = input('kw/s', '');
- $pid = input('pid/d', 1);
- $status = input('status/d', 0);
- $lazy = input('lazy/b', true);
- // 查询指定值
- $val = input('val/a', []);
- $where = [];
- if ($val) {
- // 查询指定值
- $where[] = ['id', 'IN', $val];
- } else {
- // 动态加载,则一级一级加载输出.非动态则输出全部
- if ($lazy) {
- $where[] = ['pid', '=', $pid];
- }
- if ($status) {
- $where[] = ['status', '=', $status];
- }
- if ($kw) {
- $where[] = ['name', 'LIKE', "%$kw%"];
- }
- }
- if ($lazy) {
- $data = Area::field('name AS label,id AS value,common,id,pid')
- ->where($where)
- ->order(['common' => 'DESC'])
- ->select();
- return res(1, '', $data);
- } else {
- $data = Area::where($where)
- ->order(['common' => 'DESC'])
- ->column('name AS label,id AS value,common,id,pid');
- $treeData = [];
- if ($data) {
- $treeData = array2tree($data, 'pid', 'id', $pid);
- }
- return res(1, '', $treeData);
- }
- }
- }
|