OrderCance.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace App\Community\Actions\Nurse;
  3. use App\Models\Order;
  4. use App\Models\User;
  5. use Encore\Admin\Actions\RowAction;
  6. use Illuminate\Database\Eloquent\Model;
  7. use Illuminate\Support\Facades\DB;
  8. class OrderCance extends RowAction
  9. {
  10. public $name = '取消订单';
  11. public function handle(Model $model)
  12. {
  13. $id = $this->row->order_id;
  14. $user_id = $this->row->orders->user_id;
  15. $money = $this->row->payment_amount;
  16. //退还余额
  17. $user_money = User::where(['id'=>$user_id])->value('balance');
  18. DB::beginTransaction();
  19. try {
  20. User::where('id',$user_id)->update(['balance'=>($user_money + $money)]);
  21. $res = Order::where('id',$id)->update(['order_status'=>Order::CANCELED]);
  22. DB::commit();
  23. } catch ( \Exception $e){
  24. dd($e->getMessage());
  25. DB::rollBack();
  26. return $this->response()->error('操作失败!');
  27. }
  28. if($res){
  29. return $this->response()->success('操作成功!')->refresh();
  30. }
  31. return $this->response()->error('操作失败!');
  32. }
  33. }