Browse Source

添加疫苗优化

wanghaijun 4 years ago
parent
commit
7eabc8a99a

+ 3 - 3
app/Community/Actions/Vaccine/AddVaccine.php

xqd xqd
@@ -53,7 +53,7 @@ class AddVaccine extends RowAction
                 $vaccine_data ['created_at'] = Carbon::now();
                 $vaccine_data ['updated_at'] = Carbon::now();
                 OrderVaccine::insert($vaccine_data);
-                Vaccine::decrement('stock',1);
+                Vaccine::where('id',$id)->decrement('stock',1);
             }
 
             //删除并添加库存
@@ -61,12 +61,12 @@ class AddVaccine extends RowAction
                 $id = intval($id);
                 if(!in_array($id,$ids)){
                     OrderVaccine::where(['order_id'=>$order_id,'vaccine_id'=>$id])->delete();
-                    Vaccine::increment('stock',1);
+                    Vaccine::where('id',$id)->increment('stock',1);
                 }
             }
             DB::commit();
         } catch (\Exception $e){
-            dd($e->getMessage());
+            return $this->response()->error($e->getMessage());
             DB::rollBack();
         }
 

+ 6 - 10
app/Community/Controllers/VaccineController.php

xqd xqd xqd xqd xqd xqd
@@ -31,6 +31,7 @@ class VaccineController extends AdminController
     protected function grid()
     {
         $grid = new Grid(new Vaccine());
+        $grid->model()->orderByDesc('stock');
         $grid->model()->orderByDesc('id');
         $org_id = Admin::user()->org_id;
         if(!empty($org_id)){
@@ -41,7 +42,7 @@ class VaccineController extends AdminController
         $grid->column('id', __('ID'));
         $grid->column('name', __('疫苗名称'));
 
-        $grid->column('type', __('疫苗类型'))->using(OrganizationVaccine::getType())->label('info');
+        $grid->column('type', __('疫苗类型'))->using(Vaccine::getType())->label('info');
         $grid->column('price', __('价格'))->display(function ($p){
             $t = $this->type;
             if($t == 1)return '免费';
@@ -52,16 +53,10 @@ class VaccineController extends AdminController
             $actions->disableDelete();
         });
 
-//        $grid->column('stock', __('库存'));
-
         $grid->column('stock', __('剩余库存'))->display(function ($w){
             return !empty($w) ? $w :  0;
         });
-//        $grid->column('org_id', __('已使用量'))->display(function ()  {
-//           return Order::where(['product_type'=>4])->wherehas('orderVaccine',function ($query){
-//                $query->where('vaccine_id',$this->id);
-//            })->count();
-//        });
+//        $grid->column('use_count', __('已使用量'));
 //        $grid->column('today_num', __('今日预约'))->display(function ()  {
 //            return Order::where(['product_type'=>4])->wherehas('orderVaccine',function ($query){
 //                $query->where('vaccine_id',$this->id);
@@ -71,6 +66,7 @@ class VaccineController extends AdminController
         $grid->column('remark', __('备注'));
         $grid->filter(function ($fliter){
             $fliter->like('name','疫苗');
+            $fliter->equal('type','疫苗类型')->select(Vaccine::getType());
         });
 
         $grid->column('created_at', __('创建时间'));
@@ -95,7 +91,7 @@ class VaccineController extends AdminController
 
         $show->field('id', __('Id'));
         $show->field('name', __('疫苗'));
-        $show->field('type', __('疫苗类型'))->using(OrganizationVaccine::getType());
+        $show->field('type', __('疫苗类型'))->using(Vaccine::getType());
         $show->field('price', __('价格'))->as(function ($w){
             return round($w/100, 2).'元';
         });
@@ -131,7 +127,7 @@ class VaccineController extends AdminController
             $form->hidden('org_id', __('类型'))->value($org_id);
         }
         $form->text('name', __('疫苗名称'))->rules('required',['required'=>'请输入疫苗']);
-        $form->select('type', __('疫苗类型'))->options(OrganizationVaccine::getType())->when(1,function () use($form){
+        $form->select('type', __('疫苗类型'))->options(Vaccine::getType())->when(1,function () use($form){
             $form->hidden('price','价格')->value(0);
         })->when(2,function () use($form){
             $form->text('price','价格');

+ 18 - 4
app/Models/Vaccine.php

xqd xqd
@@ -4,11 +4,19 @@ namespace App\Models;
 
 class Vaccine extends BaseModel
 {
-    //
-    public static $_post_type = [
-        1=>"Ⅰ类疫苗",
-        2=>"Ⅱ类疫苗"
+
+    const FREETYPE = 1, NOFREETYPE =2;
+    protected $appends = ['use_count'];
+
+    protected static $_type = [
+        self::FREETYPE => 'Ⅰ类',
+        self::NOFREETYPE => 'Ⅱ类',
     ];
+
+    public static function getType(){
+        return self::$_type;
+    }
+
     //导入格式
     protected $fillable = ['type','price',"name","remark","supplier",'stock','states'];
 
@@ -16,6 +24,12 @@ class Vaccine extends BaseModel
     {
         return $this->belongsToMany(Organization::class,'org_id');
     }
+    protected function getUseCountAttribute()
+    {
+        $id = $this->attributes['id'];
+        if(empty($id)) return 0;
+        return OrderVaccine::where(['vaccine_id'=>$id])->count();
+    }
 
     public function organizationvaccines(){
         return $this->hasMany(OrganizationVaccines::class,'vaccine_id');