206 lines
8.0 KiB
PHP
206 lines
8.0 KiB
PHP
<?php
|
|
|
|
namespace App\Utils;
|
|
|
|
use App\Model\Area;
|
|
use App\Model\Hospital;
|
|
use App\Model\Product;
|
|
use App\Model\ProductPlatform;
|
|
use App\Model\TbHospitalMy;
|
|
use Hyperf\DbConnection\Db;
|
|
use Hyperf\Di\Annotation\Inject;
|
|
use Hyperf\Snowflake\IdGeneratorInterface;
|
|
use Psr\Container\ContainerInterface;
|
|
|
|
class Data
|
|
{
|
|
#[Inject]
|
|
protected ContainerInterface $container;
|
|
|
|
// 迁移医院数据
|
|
public function hospital()
|
|
{
|
|
$prov_name = [
|
|
'新疆维吾尔自治区'
|
|
];
|
|
$wg = new \Hyperf\Utils\WaitGroup();
|
|
$wg->add(count($prov_name));
|
|
|
|
foreach ($prov_name as $k => $v){
|
|
co(function () use ($wg,$v) {
|
|
$generator = $this->container->get(IdGeneratorInterface::class);
|
|
|
|
$params = array();
|
|
$params['prov_name'] = $v;
|
|
$params['id'] = 39458;
|
|
$hospital = TbHospitalMy::getList($params);
|
|
foreach ($hospital as $key => $value) {
|
|
dump(111);
|
|
$params = array();
|
|
$params['hospital_name'] = $value['name'];
|
|
$params['province'] = $value['prov_name'];
|
|
$params['city'] = $value['city_name'];
|
|
$res = Hospital::getOne($params);
|
|
if(!empty($res)){
|
|
dump("重复-跳过-".$value['name']);
|
|
$params = array();
|
|
$params['id'] = $value['id'];
|
|
$res = Db::table('tb_hospital_my')->where($params)->delete();
|
|
if (!$res) {
|
|
return "删除错误";
|
|
}
|
|
continue;
|
|
}
|
|
|
|
$data = array();
|
|
$data['hospital_id'] = $generator->generate();;
|
|
$data['hospital_name'] = $value['name'];
|
|
$data['hospital_status'] = 1;
|
|
|
|
if ($value['level'] == 0){
|
|
$data['hospital_level_name'] = "未知";
|
|
}elseif ($value['level'] == 1){
|
|
$data['hospital_level_name'] = "三甲";
|
|
}elseif ($value['level'] == 2){
|
|
$data['hospital_level_name'] = "三级";
|
|
}elseif ($value['level'] == 3){
|
|
$data['hospital_level_name'] = "二级";
|
|
}elseif ($value['level'] == 4){
|
|
$data['hospital_level_name'] = "其他";
|
|
}else{
|
|
continue;
|
|
}
|
|
|
|
$data['post_code'] = $value['postcode'];
|
|
$data['tele_phone'] = $value['office_phone'];
|
|
$data['lat'] = $value['lat'];
|
|
$data['lng'] = $value['lng'];
|
|
$data['desc'] = $value['info'];
|
|
$data['created_at'] = date('Y-m-d H:i:s',time());
|
|
$data['updated_at'] = date('Y-m-d H:i:s',time());
|
|
|
|
// 省
|
|
$params = array();
|
|
$params['area_name'] = $value['prov_name'];
|
|
$province = Area::getOne($params);
|
|
if(empty($province)){
|
|
dump("省份-未知-".$value['prov_name']);
|
|
continue;
|
|
}else{
|
|
$data['province_id'] = $province['area_id'];
|
|
$data['province'] = $province['area_name'];
|
|
}
|
|
|
|
// 市
|
|
$params = array();
|
|
$params['area_name'] = $value['city_name'];
|
|
$params['parent_id'] = $province['area_id'];
|
|
$city = Area::getOne($params);
|
|
if(empty($city)){
|
|
dump("市区-未知-".$value['city_name']);
|
|
continue;
|
|
}else{
|
|
$data['city_id'] = $city['area_id'];
|
|
$data['city'] = $city['area_name'];
|
|
}
|
|
|
|
$params = array();
|
|
$params['area_name'] = $value['county_name'];
|
|
$params['parent_id'] = $city['area_id'];
|
|
$county = Area::getOne($params);
|
|
if(empty($county)){
|
|
dump("区县-未知-".$value['county_name']);
|
|
continue;
|
|
}else{
|
|
$data['county_id'] = $county['area_id'];
|
|
$data['county'] = $county['area_name'];
|
|
}
|
|
|
|
$data['address'] = $value['address'];
|
|
|
|
$res = Hospital::addHospital($data);
|
|
if (empty($res)) {
|
|
dump("添加-失败-跳过");
|
|
continue;
|
|
}
|
|
|
|
$params = array();
|
|
$params['id'] = $value['id'];
|
|
$res = Db::table('tb_hospital_my')->where($params)->delete();
|
|
if (!$res) {
|
|
return "删除错误";
|
|
}
|
|
}
|
|
$wg->done();
|
|
});
|
|
}
|
|
|
|
// 等待协程 A 和协程 B 运行完成
|
|
$wg->wait();
|
|
|
|
|
|
|
|
return success();
|
|
}
|
|
|
|
// 处方平台商品入库
|
|
public function product(){
|
|
$product_platform_id = [
|
|
"518095343843098625",
|
|
"519091456971071489",
|
|
"517652954976141313",
|
|
"519151179795808256",
|
|
"517652642211086336",
|
|
"517653593286295552",
|
|
"517653183070781441",
|
|
"517653906999263232",
|
|
"517652642227863552",
|
|
"517653183100141569",
|
|
"517653906969903104",
|
|
"522376951584849921",
|
|
"522378613456175104",
|
|
];
|
|
|
|
foreach ($product_platform_id as $value){
|
|
$params = array();
|
|
$params['product_platform_id'] = $value;
|
|
$product_platform = ProductPlatform::getOne($params);
|
|
if (empty($product_platform)){
|
|
continue;
|
|
}
|
|
|
|
$params = array();
|
|
$params['product_platform_id'] = $value;
|
|
$product = Product::getOne($params);
|
|
if (empty($product)){
|
|
$data = array();
|
|
$data['product_platform_id'] = $value;
|
|
$data['common_name'] = $product_platform['product_name'];
|
|
$data['product_price'] = $product_platform['product_price'];
|
|
$data['product_type'] = $product_platform['product_type'];
|
|
$data['product_platform_code'] = $product_platform['product_platform_code'];
|
|
$data['product_pharmacy_code'] = $product_platform['product_pharmacy_code'];
|
|
$data['product_spec'] = $product_platform['product_spec'];
|
|
$data['license_number'] = $product_platform['license_number'];
|
|
$data['manufacturer'] = $product_platform['manufacturer'];
|
|
$data['packaging_unit'] = $product_platform['packaging_unit'];
|
|
Product::addProduct($data);
|
|
}else{
|
|
$params = array();
|
|
$params['product_id'] = $product['product_id'];
|
|
|
|
$data = array();
|
|
$data['common_name'] = $product_platform['product_name'];
|
|
$data['product_price'] = $product_platform['product_price'];
|
|
$data['product_type'] = $product_platform['product_type'];
|
|
$data['product_platform_code'] = $product_platform['product_platform_code'];
|
|
$data['product_pharmacy_code'] = $product_platform['product_pharmacy_code'];
|
|
$data['product_spec'] = $product_platform['product_spec'];
|
|
$data['license_number'] = $product_platform['license_number'];
|
|
$data['manufacturer'] = $product_platform['manufacturer'];
|
|
$data['packaging_unit'] = $product_platform['packaging_unit'];
|
|
Product::edit($params,$data);
|
|
}
|
|
}
|
|
}
|
|
} |