Invoice.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace addons\shopro\controller\order;
  3. use addons\shopro\controller\Common;
  4. use app\admin\model\shopro\order\Invoice as OrderInvoiceModel;
  5. //发票
  6. class Invoice extends Common
  7. {
  8. protected $noNeedLogin = [];
  9. protected $noNeedRight = ['*'];
  10. public function index()
  11. {
  12. $user = auth_user();
  13. $params = $this->request->param();
  14. $type = $params['type'] ?? 'all';
  15. $invoices = OrderInvoiceModel::where('user_id', $user->id);
  16. switch ($type) {
  17. case 'cancel':
  18. $invoices = $invoices->cancel();
  19. break;
  20. case 'waiting':
  21. $invoices = $invoices->waiting();
  22. break;
  23. case 'finish':
  24. $invoices = $invoices->finish();
  25. break;
  26. default :
  27. $invoices = $invoices->show(); // 除了未支付的
  28. break;
  29. }
  30. $invoices = $invoices->order('id', 'desc')->paginate($this->request->param('list_rows', 10));
  31. $this->success('获取成功', $invoices);
  32. }
  33. public function detail()
  34. {
  35. $user = auth_user();
  36. $id = $this->request->param('id');
  37. $invoice = OrderInvoiceModel::with(['order', 'order_items'])->where('user_id', $user->id)->where('id', $id)->find();
  38. if (!$invoice) {
  39. $this->error(__('No Results were found'));
  40. }
  41. $invoice->append(['order_items']); // 取消隐藏 order_items
  42. $this->success('获取成功', $invoice);
  43. }
  44. // 取消订单
  45. public function cancel()
  46. {
  47. $user = auth_user();
  48. $id = $this->request->param('id');
  49. $invoice = OrderInvoiceModel::where('user_id', $user->id)->waiting()->where('id', $id)->find();
  50. if (!$invoice) {
  51. $this->error(__('No Results were found'));
  52. }
  53. $invoice->status = 'cancel';
  54. $invoice->save();
  55. $this->success('取消成功', $invoice);
  56. }
  57. }