Order.php 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace App\Models;
  3. use Carbon\Carbon;
  4. class Order extends BaseModel
  5. {
  6. public static function createOrderNumber()
  7. {
  8. $times = 10;
  9. $str = substr(Carbon::now()->format('Ymdhis'), 2);
  10. do {
  11. $str = $str . mt_rand(10000, 99999);
  12. $res = self::where('order_number', $str)->first();
  13. if(!$res) break;
  14. $times = $times - 1;
  15. } while($times);
  16. return $str;
  17. }
  18. public function user()
  19. {
  20. return $this->belongsTo('App\Models\User', 'user_id');
  21. }
  22. public function workPoint()
  23. {
  24. return $this->belongsTo('App\Models\WorkPoint', 'work_point_id');
  25. }
  26. public function getOrderStatus(Project $project, $user, $is_draft)
  27. {
  28. if($is_draft) {
  29. return Option::get('orders', 'status', 'checking');
  30. }
  31. if($project->isTopLevel($user)) {
  32. return Option::get('orders', 'status', 'pass');
  33. }
  34. return Option::get('orders', 'status', 'checking');
  35. }
  36. }