OrderCance.php 1.1 KB

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