diff --git a/app/Http/Controllers/Manager/OrdersController.php b/app/Http/Controllers/Manager/OrdersController.php index 354bd2d..dbf45a4 100644 --- a/app/Http/Controllers/Manager/OrdersController.php +++ b/app/Http/Controllers/Manager/OrdersController.php @@ -189,7 +189,9 @@ class OrdersController extends CommonController $order = $model->with([ "orderItems" => function ($query) { - } + }, + "recharges", + "refunds" ])->find($id); $order = $order->refreshTotal(); $order->balance = $order->customer->balance; diff --git a/app/Models/Orders.php b/app/Models/Orders.php index 5d5d2c4..459ab83 100755 --- a/app/Models/Orders.php +++ b/app/Models/Orders.php @@ -120,46 +120,33 @@ class Orders extends SoftDeletesModel public function firstItem() { - return $this->hasOne(OrderItems::class, "order_id")->with([ - "productItem", - "productParamedicLevel", - "bed", - "paramedic" - ]); + return $this->hasOne(OrderItems::class, "order_id"); } public function lastItem() { - return $this->hasOne(OrderItems::class, "order_id")->with([ - "productItem", - "productParamedicLevel", - "bed", - "paramedic" - ])->orderBy("id", "desc"); + return $this->hasOne(OrderItems::class, "order_id"); } public function orderItems() { return $this->hasMany(OrderItems::class, "order_id")->with([ - "productItem", - "productParamedicLevel", - "bed", - "paramedic" + "paramedic" => function ($query) { + $query + ->select("paramedic.id", "paramedic.name") + ->leftJoin("paramedic_level", "paramedic_level.id", "=", "paramedic.paramedic_level_id") + ->addSelect("paramedic_level.name as paramedic_level_name"); + }, + "bed" => function ($query) { + $query->select("bed.id", "bed.name") + ->leftJoin("building", "building.id", "=", "bed.building_id") + ->leftJoin("area", "area.id", "=", "bed.area_id") + ->leftJoin("room", "room.id", "=", "bed.room_id") + ->addSelect("room.name as room_name", "area.name as area_name", "building.name as building_name"); + } ]); } - public function handlingApprovalItem() - { - return $this->morphOne(ApprovalItems::class, "belongs")->whereHas("approval", function ($query) { - $query->where("status", Approval::STATUS_HANDLING)->whereRaw(" TIMESTAMPDIFF(SECOND,DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s'),`expire_at`) > 0 "); - })->orderBy("id", "desc"); - } - - public function lastApproval() - { - return $this->hasOne(Approval::class, "order_id", "id")->orderBy("id", "desc"); - } - public function customer() { return $this->belongsTo(Customer::class)->select(["id", "name", "mobile", "username", "sex", "balance", "openid", "unionid"]); @@ -227,7 +214,10 @@ class Orders extends SoftDeletesModel public function recharges() { - return $this->hasMany(Recharge::class, "order_id", "id")->whereNotNull("paid_at"); + return $this + ->hasMany(Recharge::class, "order_id", "id") + ->whereNotNull("paid_at") + ->select("id", "order_id", "serial", "money", "payment", "payment_serial", "remark"); } public function refunds() diff --git a/app/Models/Recharge.php b/app/Models/Recharge.php index 258fd61..ef890b0 100755 --- a/app/Models/Recharge.php +++ b/app/Models/Recharge.php @@ -8,25 +8,26 @@ use App\Manager; class Recharge extends SoftDeletesModel { protected $table = "recharge"; + protected $appends = ["payment_name"]; - public function getPaymentLabelAttribute() + public function getPaymentNameAttribute() { - $payment_label = $this->payment; + $payment_name = $this->payment; switch ($this->payment) { case "weixin": - $payment_label = "微信"; + $payment_name = "微信"; break; case "alipay": - $payment_label = "支付宝"; + $payment_name = "支付宝"; break; case "cash": - $payment_label = "现金"; + $payment_name = "现金"; break; case "pos": - $payment_label = "POS机"; + $payment_name = "POS机"; break; } - return $payment_label; + return $payment_name; } public function customer() @@ -44,12 +45,14 @@ class Recharge extends SoftDeletesModel return $this->belongsTo(Orders::class); } - public function patient() { - return $this->hasOneThrough(Patient::class, Orders::class,"id","id","order_id","patient_id"); + public function patient() + { + return $this->hasOneThrough(Patient::class, Orders::class, "id", "id", "order_id", "patient_id"); } - public function refunds() { - return $this->hasMany(Refund::class,"recharge_id"); + public function refunds() + { + return $this->hasMany(Refund::class, "recharge_id"); } public function getSerial()