修正问诊类目录
This commit is contained in:
parent
fd8f2cb7b7
commit
d23afb5491
@ -113,4 +113,15 @@ class BasicDataController extends AbstractController
|
||||
$data = $BasicDataService->getDiseaseExpertiseList();
|
||||
return $this->response->json($data);
|
||||
}
|
||||
|
||||
// 搜索商品
|
||||
public function getProductSearch(): ResponseInterface
|
||||
{
|
||||
$request = $this->container->get(BasicDataRequest::class);
|
||||
$request->scene('getProductSearch')->validateResolved();
|
||||
|
||||
$BasicDataService = new BasicDataService();
|
||||
$data = $BasicDataService->getProductSearch();
|
||||
return $this->response->json($data);
|
||||
}
|
||||
}
|
||||
@ -2,23 +2,18 @@
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Amqp\Producer\AmqpDelayDirectProducer;
|
||||
use App\Constants\HttpEnumCode;
|
||||
use App\Request\InquiryRequest;
|
||||
use App\Request\OrderInquiryRequest;
|
||||
use App\Request\UserPatientRequest;
|
||||
use App\Services\InquiryService;
|
||||
use App\Services\OrderInquiryService;
|
||||
use Hyperf\Amqp\Producer;
|
||||
use Hyperf\Di\Annotation\Inject;
|
||||
use Hyperf\Utils\ApplicationContext;
|
||||
use Hyperf\Validation\Contract\ValidatorFactoryInterface;
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
/**
|
||||
* 问诊订单
|
||||
* 问诊
|
||||
*/
|
||||
class OrderInquiryController extends AbstractController
|
||||
class InquiryController extends AbstractController
|
||||
{
|
||||
/**
|
||||
* 创建问诊订单
|
||||
@ -38,11 +33,11 @@ class OrderInquiryController extends AbstractController
|
||||
// $producer = ApplicationContext::getContainer()->get(Producer::class);
|
||||
// $producer->produce($message);
|
||||
|
||||
$request = $this->container->get(OrderInquiryRequest::class);
|
||||
$request = $this->container->get(InquiryRequest::class);
|
||||
$request->scene('addInquiryOrder')->validateResolved();
|
||||
|
||||
$OrderInquiryService = new OrderInquiryService();
|
||||
$data = $OrderInquiryService->addInquiryOrder();
|
||||
$InquiryService = new InquiryService();
|
||||
$data = $InquiryService->addInquiryOrder();
|
||||
return $this->response->json($data);
|
||||
}
|
||||
}
|
||||
@ -6,6 +6,7 @@ namespace App\Model;
|
||||
|
||||
|
||||
|
||||
use Hyperf\Database\Model\Collection;
|
||||
use Hyperf\Database\Model\Relations\HasOne;
|
||||
use Hyperf\Snowflake\Concern\Snowflake;
|
||||
|
||||
@ -46,11 +47,6 @@ class Product extends Model
|
||||
*/
|
||||
protected array $fillable = ['product_id', 'product_platform_id', 'product_name', 'common_name', 'product_price', 'mnemonic_code', 'product_type', 'product_platform_code', 'product_pharmacy_code', 'product_cover_img', 'product_spec', 'license_number', 'manufacturer', 'single_unit', 'single_use', 'packaging_unit', 'frequency_use', 'available_days', 'product_remarks', 'created_at', 'updated_at'];
|
||||
|
||||
/**
|
||||
* The attributes that should be cast to native types.
|
||||
*/
|
||||
protected array $casts = ['product_id' => 'integer', 'product_platform_id' => 'integer', 'product_type' => 'integer', 'created_at' => 'datetime', 'updated_at' => 'datetime'];
|
||||
|
||||
protected string $primaryKey = "product_id";
|
||||
|
||||
/**
|
||||
@ -86,4 +82,15 @@ class Product extends Model
|
||||
->where($params)
|
||||
->first($fields);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据-多
|
||||
* @param array $params
|
||||
* @param array $fields
|
||||
* @return Collection|array
|
||||
*/
|
||||
public static function getList(array $params = [], array $fields = ['*']): Collection|array
|
||||
{
|
||||
return self::where($params)->get($fields);
|
||||
}
|
||||
}
|
||||
|
||||
@ -175,7 +175,6 @@ class UserDoctor extends Model
|
||||
$datas = self::with([
|
||||
'Hospital:hospital_id,hospital_name,hospital_level_name',
|
||||
'DoctorInquiryConfig',
|
||||
'DoctorInquiryConfig.SystemInquiryConfig'
|
||||
])
|
||||
->where($params)
|
||||
->orderBy("is_platform_deep_cooperation", "desc")
|
||||
|
||||
@ -17,6 +17,9 @@ class BasicDataRequest extends FormRequest
|
||||
],
|
||||
'getDiseaseSearch' => [ // 搜索疾病分类
|
||||
'disease_class_name',
|
||||
],
|
||||
'getProductSearch' => [ // 搜索商品
|
||||
'product_keyword',
|
||||
]
|
||||
];
|
||||
|
||||
@ -37,6 +40,7 @@ class BasicDataRequest extends FormRequest
|
||||
'province_id' => 'required_with:city_id,county_id',
|
||||
'city_id' => 'required_with:county_id',
|
||||
'disease_class_name' => 'required',
|
||||
'product_keyword' => 'required',
|
||||
];
|
||||
}
|
||||
|
||||
@ -49,6 +53,7 @@ class BasicDataRequest extends FormRequest
|
||||
'province_id.required_with' => "请选择省份",
|
||||
'city_id.required_with' => "请选择城市",
|
||||
'disease_class_name.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
|
||||
'product_keyword.required' => HttpEnumCode::getMessage(HttpEnumCode::CLIENT_HTTP_ERROR),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,10 +7,10 @@ namespace App\Request;
|
||||
use App\Constants\HttpEnumCode;
|
||||
use Hyperf\Validation\Request\FormRequest;
|
||||
|
||||
class OrderInquiryRequest extends FormRequest
|
||||
class InquiryRequest extends FormRequest
|
||||
{
|
||||
protected array $scenes = [
|
||||
'addInquiryOrder' => [
|
||||
'addInquiryOrder' => [ // 创建问诊订单
|
||||
'patient_id',
|
||||
'family_id',
|
||||
'disease_class_id',
|
||||
@ -8,6 +8,7 @@ use App\Model\DiseaseClassExpertise;
|
||||
use App\Model\Hospital;
|
||||
use App\Model\HospitalDepartmentCustom;
|
||||
use App\Model\OperationManual;
|
||||
use App\Model\Product;
|
||||
|
||||
/**
|
||||
* 基础数据服务类
|
||||
@ -189,4 +190,36 @@ class BasicDataService extends BaseService
|
||||
$disease_class_expertise = DiseaseClassExpertise::getOrderList($params,$fields);
|
||||
return success($disease_class_expertise);
|
||||
}
|
||||
|
||||
public function getProductSearch(){
|
||||
$product_keyword = $this->request->input('product_keyword');
|
||||
|
||||
$fields = [
|
||||
'product_id',
|
||||
'product_name',
|
||||
'product_cover_img',
|
||||
'product_spec',
|
||||
'manufacturer',
|
||||
'single_unit',
|
||||
'single_use',
|
||||
'packaging_unit',
|
||||
'frequency_use',
|
||||
'available_days',
|
||||
];
|
||||
$params = array();
|
||||
$params[] = ['product_name','like','%' . $product_keyword . '%'];
|
||||
|
||||
$product = Product::getList($params,$fields);
|
||||
if (empty($product)){
|
||||
return success();
|
||||
}
|
||||
|
||||
foreach ($product as &$item){
|
||||
$item['product_cover_img'] = addAliyunOssWebsite($item['product_cover_img']);
|
||||
|
||||
$item['product_name'] = $item['product_name'] . ' ' . $item['product_spec'];
|
||||
}
|
||||
|
||||
return success($product->toArray());
|
||||
}
|
||||
}
|
||||
@ -63,14 +63,14 @@ class IndexService extends BaseService
|
||||
return fail(HttpEnumCode::USER_STATUS_ERROR);
|
||||
}
|
||||
|
||||
$OrderInquiryService = new OrderInquiryService();
|
||||
$InquiryService = new InquiryService();
|
||||
$OrderPrescriptionService = new OrderPrescriptionService();
|
||||
|
||||
// 获取未接诊患者个数
|
||||
$not_accepted_inquiry_num = $OrderInquiryService->getDoctorNotAcceptedInquiryNum($doctor['doctor_id']);
|
||||
$not_accepted_inquiry_num = $InquiryService->getDoctorNotAcceptedInquiryNum($doctor['doctor_id']);
|
||||
|
||||
// 获取接诊中患者个数
|
||||
$accepting_inquiry_num = $OrderInquiryService->getDoctorAcceptingInquiryNum($doctor['doctor_id']);
|
||||
$accepting_inquiry_num = $InquiryService->getDoctorAcceptingInquiryNum($doctor['doctor_id']);
|
||||
|
||||
// 获取被驳回处方数据
|
||||
$reject_prescription_number = $OrderPrescriptionService->getDoctorExistsAuditFail($doctor['doctor_id']);
|
||||
|
||||
@ -4,17 +4,13 @@ namespace App\Services;
|
||||
|
||||
use App\Amqp\Producer\AmqpDelayDirectProducer;
|
||||
use App\Constants\HttpEnumCode;
|
||||
use App\Exception\BusinessException;
|
||||
use App\Model\DiseaseClass;
|
||||
use App\Model\DoctorInquiryConfig;
|
||||
use App\Model\InquiryCaseProduct;
|
||||
use App\Model\OrderInquiry;
|
||||
use App\Model\OrderInquiryCase;
|
||||
use App\Model\OrderInquiryCoupon;
|
||||
use App\Model\PatientFamily;
|
||||
use App\Model\Product;
|
||||
use App\Model\ProductPlatformAmount;
|
||||
use App\Model\SystemInquiryConfig;
|
||||
use App\Model\UserDoctor;
|
||||
use App\Utils\PcreMatch;
|
||||
use Hyperf\Amqp\Producer;
|
||||
@ -24,85 +20,10 @@ use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
|
||||
/**
|
||||
* 问诊订单
|
||||
* 问诊
|
||||
*/
|
||||
class OrderInquiryService extends BaseService
|
||||
class InquiryService extends BaseService
|
||||
{
|
||||
/**
|
||||
* 获取医生未接诊订单数量
|
||||
* @param string $doctor_id 医生id
|
||||
* @return int
|
||||
*/
|
||||
public function getDoctorNotAcceptedInquiryNum(string $doctor_id): int
|
||||
{
|
||||
$params = array();
|
||||
$params['doctor_id'] = $doctor_id;
|
||||
$params['inquiry_status'] = 3; // 待接诊
|
||||
$params['inquiry_refund_status'] = 0; // 无退款
|
||||
|
||||
$order_inquiry_count = OrderInquiry::getCount($params);
|
||||
if (!empty($order_inquiry_count) || $order_inquiry_count != 0) {
|
||||
$not_accepted_inquiry_num = $order_inquiry_count;
|
||||
} else {
|
||||
$not_accepted_inquiry_num = $order_inquiry_count;
|
||||
}
|
||||
|
||||
return $not_accepted_inquiry_num;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取医生接诊中订单数量
|
||||
* @param string $doctor_id 医生id
|
||||
* @return int
|
||||
*/
|
||||
public function getDoctorAcceptingInquiryNum(string $doctor_id): int
|
||||
{
|
||||
$params = array();
|
||||
$params['doctor_id'] = $doctor_id;
|
||||
$params['inquiry_status'] = 4; // 已接诊
|
||||
$params['inquiry_refund_status'] = 0; // 无退款
|
||||
|
||||
$order_inquiry_count = OrderInquiry::getCount($params);
|
||||
if (!empty($order_inquiry_count) || $order_inquiry_count != 0) {
|
||||
$accepting_inquiry_num = $order_inquiry_count;
|
||||
} else {
|
||||
$accepting_inquiry_num = $order_inquiry_count;
|
||||
}
|
||||
|
||||
return $accepting_inquiry_num;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取医生当日接诊的订单金额
|
||||
* 状态:已接诊-已完成
|
||||
* @param string $doctor_id
|
||||
* @param string $date
|
||||
* @return float
|
||||
*/
|
||||
public function getDoctorDayAmountTotal(string $doctor_id, string $date): float
|
||||
{
|
||||
// 获取当天开始时间
|
||||
$start_date = date('Y-m-d 00:00:00', strtotime($date));
|
||||
|
||||
// 获取当天结束时间
|
||||
$end_date = date('Y-m-d 23:59:59', strtotime($date));
|
||||
|
||||
// 获取医生当日接诊订单金额
|
||||
$params = array();
|
||||
$params['doctor_id'] = $doctor_id;
|
||||
$params['inquiry_refund_status'] = 0; // 问诊订单退款状态(0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭)
|
||||
$params['inquiry_pay_status'] = 2; // 支付状态(1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款)
|
||||
$params['settlement_status'] = 0; // 订单与医生结算状态(0:未结算 1:已结算)
|
||||
|
||||
$reception_time = [$start_date, $end_date];
|
||||
|
||||
$inquiry_status_params = [4, 5]; // 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)
|
||||
|
||||
$amount_total_sum = OrderInquiry::getOrderInquiryAmountTotalSum($params, $reception_time, $inquiry_status_params);
|
||||
|
||||
return $amount_total_sum ?: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建问诊订单
|
||||
* @return array
|
||||
@ -335,4 +256,79 @@ class OrderInquiryService extends BaseService
|
||||
|
||||
return success($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取医生未接诊订单数量
|
||||
* @param string $doctor_id 医生id
|
||||
* @return int
|
||||
*/
|
||||
public function getDoctorNotAcceptedInquiryNum(string $doctor_id): int
|
||||
{
|
||||
$params = array();
|
||||
$params['doctor_id'] = $doctor_id;
|
||||
$params['inquiry_status'] = 3; // 待接诊
|
||||
$params['inquiry_refund_status'] = 0; // 无退款
|
||||
|
||||
$order_inquiry_count = OrderInquiry::getCount($params);
|
||||
if (!empty($order_inquiry_count) || $order_inquiry_count != 0) {
|
||||
$not_accepted_inquiry_num = $order_inquiry_count;
|
||||
} else {
|
||||
$not_accepted_inquiry_num = $order_inquiry_count;
|
||||
}
|
||||
|
||||
return $not_accepted_inquiry_num;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取医生接诊中订单数量
|
||||
* @param string $doctor_id 医生id
|
||||
* @return int
|
||||
*/
|
||||
public function getDoctorAcceptingInquiryNum(string $doctor_id): int
|
||||
{
|
||||
$params = array();
|
||||
$params['doctor_id'] = $doctor_id;
|
||||
$params['inquiry_status'] = 4; // 已接诊
|
||||
$params['inquiry_refund_status'] = 0; // 无退款
|
||||
|
||||
$order_inquiry_count = OrderInquiry::getCount($params);
|
||||
if (!empty($order_inquiry_count) || $order_inquiry_count != 0) {
|
||||
$accepting_inquiry_num = $order_inquiry_count;
|
||||
} else {
|
||||
$accepting_inquiry_num = $order_inquiry_count;
|
||||
}
|
||||
|
||||
return $accepting_inquiry_num;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取医生当日接诊的订单金额
|
||||
* 状态:已接诊-已完成
|
||||
* @param string $doctor_id
|
||||
* @param string $date
|
||||
* @return float
|
||||
*/
|
||||
public function getDoctorDayAmountTotal(string $doctor_id, string $date): float
|
||||
{
|
||||
// 获取当天开始时间
|
||||
$start_date = date('Y-m-d 00:00:00', strtotime($date));
|
||||
|
||||
// 获取当天结束时间
|
||||
$end_date = date('Y-m-d 23:59:59', strtotime($date));
|
||||
|
||||
// 获取医生当日接诊订单金额
|
||||
$params = array();
|
||||
$params['doctor_id'] = $doctor_id;
|
||||
$params['inquiry_refund_status'] = 0; // 问诊订单退款状态(0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭)
|
||||
$params['inquiry_pay_status'] = 2; // 支付状态(1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款)
|
||||
$params['settlement_status'] = 0; // 订单与医生结算状态(0:未结算 1:已结算)
|
||||
|
||||
$reception_time = [$start_date, $end_date];
|
||||
|
||||
$inquiry_status_params = [4, 5]; // 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)
|
||||
|
||||
$amount_total_sum = OrderInquiry::getOrderInquiryAmountTotalSum($params, $reception_time, $inquiry_status_params);
|
||||
|
||||
return $amount_total_sum ?: 0;
|
||||
}
|
||||
}
|
||||
@ -485,8 +485,8 @@ class UserDoctorService extends BaseService
|
||||
}
|
||||
|
||||
// 获取医生当日接诊的订单金额
|
||||
$OrderInquiryService = new OrderInquiryService();
|
||||
$estimate_income = $OrderInquiryService->getDoctorDayAmountTotal($user_info['client_user_id'],date('Y-m-d',time()));
|
||||
$InquiryService = new InquiryService();
|
||||
$estimate_income = $InquiryService->getDoctorDayAmountTotal($user_info['client_user_id'],date('Y-m-d',time()));
|
||||
if (!empty($estimate_income)){
|
||||
$estimate_income = $estimate_income * 0.75;
|
||||
}
|
||||
|
||||
@ -15,6 +15,7 @@ use App\Controller\BasicDataController;
|
||||
use App\Controller\DoctorAccountController;
|
||||
use App\Controller\DoctorAuthController;
|
||||
use App\Controller\IndexController;
|
||||
use App\Controller\InquiryController;
|
||||
use App\Controller\LoginController;
|
||||
use App\Controller\CodeController;
|
||||
use App\Controller\OrderInquiryController;
|
||||
@ -60,7 +61,7 @@ Router::addGroup('/doctor', function () {
|
||||
Router::post('/multi', [DoctorAuthController::class, 'addAuthMulti']);
|
||||
});
|
||||
|
||||
// 问诊配置
|
||||
// 问诊
|
||||
Router::addGroup('/inquiry', function () {
|
||||
// 获取医生问诊配置
|
||||
Router::get('/config', [UserDoctorController::class, 'getInquiryConfig']);
|
||||
@ -70,6 +71,10 @@ Router::addGroup('/doctor', function () {
|
||||
|
||||
// 修改医生问诊配置
|
||||
Router::put('/config', [UserDoctorController::class, 'putInquiryConfig']);
|
||||
|
||||
// 获取医生问诊配置
|
||||
Router::get('/config', [UserDoctorController::class, 'getInquiryConfig']);
|
||||
|
||||
});
|
||||
|
||||
//银行卡
|
||||
@ -177,7 +182,7 @@ Router::addGroup('/patient', function () {
|
||||
// 订单
|
||||
Router::addGroup('/order', function () {
|
||||
// 创建订单
|
||||
Router::post('', [OrderInquiryController::class, 'addInquiryOrder']);
|
||||
Router::post('', [InquiryController::class, 'addInquiryOrder']);
|
||||
});
|
||||
|
||||
// 检测是否可以接诊
|
||||
@ -278,6 +283,13 @@ Router::addGroup('/basic', function () {
|
||||
// 搜索使用
|
||||
Router::get('/expertise', [BasicDataController::class, 'getDiseaseExpertiseList']);
|
||||
});
|
||||
|
||||
// 搜索商品
|
||||
Router::addGroup('/product', function () {
|
||||
// 搜索商品
|
||||
Router::get('/search', [BasicDataController::class, 'getProductSearch']);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// 获取医生评价
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user