Files
zyt/server/app/adminapi/lists/tcm/DiagnosisLists.php
T
2026-03-05 11:19:36 +08:00

93 lines
3.1 KiB
PHP

<?php
// +----------------------------------------------------------------------
// | likeadmin快速开发前后端分离管理后台(PHP版)
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | 开源版本可自由商用,可去除界面版权logo
// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
// | github下载:https://github.com/likeshop-github/likeadmin
// | 访问官网:https://www.likeadmin.cn
// | likeadmin团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\adminapi\lists\tcm;
use app\adminapi\lists\BaseAdminDataLists;
use app\common\model\tcm\Diagnosis;
use app\common\model\auth\AdminRole;
use app\common\lists\ListsSearchInterface;
/**
* 中医辨房病因诊单列表
* Class DiagnosisLists
* @package app\adminapi\lists\tcm
*/
class DiagnosisLists extends BaseAdminDataLists implements ListsSearchInterface
{
/**
* @notes 设置搜索条件
* @return array
*/
public function setSearch(): array
{
return [
'%like%' => ['patient_name'],
'=' => ['patient_id', 'gender', 'diagnosis_type', 'syndrome_type', 'assistant_id', 'status'],
'between_time' => ['diagnosis_date'],
];
}
/**
* @notes 获取列表
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function lists(): array
{
// 获取当前管理员的角色ID
$roleIds = AdminRole::where('admin_id', $this->adminId)->column('role_id');
// 构建查询
$query = Diagnosis::where($this->searchWhere);
// 如果是医助角色(role_id=2),只显示自己添加的患者
if (in_array(2, $roleIds)) {
$query->where('assistant_id', $this->adminId);
}
$lists = $query
->field(['id', 'patient_id', 'patient_name', 'id_card', 'phone', 'gender', 'age', 'diagnosis_date', 'diagnosis_type', 'syndrome_type', 'assistant_id', 'status', 'create_time', 'update_time'])
->append(['gender_desc', 'status_desc', 'diagnosis_date_text'])
->order(['id' => 'desc'])
->limit($this->limitOffset, $this->limitLength)
->select()
->toArray();
return $lists;
}
/**
* @notes 获取数量
* @return int
*/
public function count(): int
{
// 获取当前管理员的角色ID
$roleIds = AdminRole::where('admin_id', $this->adminId)->column('role_id');
// 构建查询
$query = Diagnosis::where($this->searchWhere);
// 如果是医助角色(role_id=2),只显示自己添加的患者
if (in_array(2, $roleIds)) {
$query->where('assistant_id', $this->adminId);
}
return $query->count();
}
}